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). */
|
/** 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);
|
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. */
|
/** Read data from the P-ROC. */
|
||||||
PINPROC_API PRResult PRReadData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer);
|
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;
|
PRResult res;
|
||||||
uint32_t * buffer;
|
uint32_t * buffer;
|
||||||
@@ -1208,6 +1208,19 @@ PRResult PRDevice::WriteDataRaw(uint32_t moduleSelect, uint32_t startingAddr, in
|
|||||||
return res;
|
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)
|
PRResult PRDevice::ReadDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer)
|
||||||
{
|
{
|
||||||
uint32_t rc;
|
uint32_t rc;
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ public:
|
|||||||
|
|
||||||
PRResult FlushWriteData();
|
PRResult FlushWriteData();
|
||||||
PRResult WriteDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * buffer);
|
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 ReadDataRaw(uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer);
|
||||||
|
|
||||||
PRResult ManagerUpdateConfig(PRManagerConfig *managerConfig);
|
PRResult ManagerUpdateConfig(PRManagerConfig *managerConfig);
|
||||||
|
|||||||
@@ -119,12 +119,18 @@ PRResult PRFlushWriteData(PRHandle handle)
|
|||||||
return handleAsDevice->FlushWriteData();
|
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)
|
PRResult PRWriteData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numWriteWords, uint32_t * writeBuffer)
|
||||||
{
|
{
|
||||||
return handleAsDevice->WriteDataRaw(moduleSelect, startingAddr, numWriteWords, 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. */
|
/** Read data from the P-ROC. */
|
||||||
PRResult PRReadData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer)
|
PRResult PRReadData(PRHandle handle, uint32_t moduleSelect, uint32_t startingAddr, int32_t numReadWords, uint32_t * readBuffer)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user