mirror of
https://github.com/preble/libpinproc
synced 2026-02-24 18:25:23 +01:00
add new PRWriteDataUnbuffered to libpinproc
This commit is contained in:
@@ -138,6 +138,9 @@ PINPROC_API PRResult PRFlushWriteData(PRHandle handle);
|
||||
/** Write data out to the P-ROC immediately (does not require a call to PRFlushWriteData). */
|
||||
PINPROC_API PRResult PRWriteData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer);
|
||||
|
||||
/** Write data buffered to P-ROC (does require a call to PRFlushWriteData). */
|
||||
PINPROC_API PRResult PRWriteDataUnbuffered(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer);
|
||||
|
||||
/** Read data from the P-ROC. */
|
||||
PINPROC_API PRResult PRReadData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer);
|
||||
|
||||
|
||||
@@ -1195,7 +1195,7 @@ PRResult PRDevice::WriteData(uint32_t * words, int32_t numWords)
|
||||
}
|
||||
}
|
||||
|
||||
PRResult PRDevice::WriteDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer)
|
||||
PRResult PRDevice::WriteDataRawUnbuffered(uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer)
|
||||
{
|
||||
PRResult res;
|
||||
uint32_t * buffer;
|
||||
@@ -1208,6 +1208,19 @@ PRResult PRDevice::WriteDataRaw(uint32_t moduleSelect, uint32_t startingAddr, in
|
||||
return res;
|
||||
}
|
||||
|
||||
PRResult PRDevice::WriteDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer)
|
||||
{
|
||||
PRResult res;
|
||||
uint32_t * buffer;
|
||||
|
||||
buffer = (uint32_t *)malloc((numWriteWords * 4) + 4);
|
||||
buffer[0] = CreateBurstCommand(moduleSelect, startingAddr, numWriteWords);
|
||||
memcpy(buffer+1, writeBuffer, numWriteWords * 4);
|
||||
res = WriteData(buffer, numWriteWords + 1);
|
||||
free (buffer);
|
||||
return res;
|
||||
}
|
||||
|
||||
PRResult PRDevice::ReadDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer)
|
||||
{
|
||||
uint32_t rc;
|
||||
|
||||
@@ -60,6 +60,7 @@ public:
|
||||
|
||||
PRResult FlushWriteData();
|
||||
PRResult WriteDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * buffer);
|
||||
PRResult WriteDataRawUnbuffered(uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * buffer);
|
||||
PRResult ReadDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer);
|
||||
|
||||
PRResult ManagerUpdateConfig(PRManagerConfig *managerConfig);
|
||||
|
||||
@@ -119,12 +119,18 @@ PRResult PRFlushWriteData(PRHandle handle)
|
||||
return handleAsDevice->FlushWriteData();
|
||||
}
|
||||
|
||||
/** Write data out to the P-ROC immediately (does not require a call to PRFlushWriteData */
|
||||
/** Write data out to the P-ROC immediately (does not require a call to PRFlushWriteData). */
|
||||
PRResult PRWriteData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer)
|
||||
{
|
||||
return handleAsDevice->WriteDataRaw(moduleSelect, startingAddr, numWriteWords, writeBuffer);
|
||||
}
|
||||
|
||||
/** Write data buffered to P-ROC (does require a call to PRFlushWriteData). */
|
||||
PRResult PRWriteDataUnbuffered(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer)
|
||||
{
|
||||
return handleAsDevice->WriteDataRawUnbuffered(moduleSelect, startingAddr, numWriteWords, writeBuffer);
|
||||
}
|
||||
|
||||
/** Read data from the P-ROC. */
|
||||
PRResult PRReadData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user