NVIDIA DRIVE OS Linux SDK API Reference5.1.6.0 Release |
List of APIs to transport NvSciBuf buffers and attribute list objects across various communication boundaries that interact using NvSciIpc.
Functions | |
NvSciError | NvSciBufIpcExportAttrListAndObj (NvSciBufObj bufObj, NvSciBufAttrValAccessPerm permissions, NvSciIpcEndpoint ipcEndpoint, void **attrListAndObjDesc, size_t *attrListAndObjDescSize) |
Exports an NvSciBuf attribute list and object into an NvSciIpc-transferable object binary descriptor. More... | |
NvSciError | NvSciBufIpcImportAttrListAndObj (NvSciBufModule module, NvSciIpcEndpoint ipcEndpoint, const void *attrListAndObjDesc, size_t attrListAndObjDescSize, const NvSciBufAttrList attrList[], size_t count, NvSciBufAttrValAccessPerm minPermissions, int64_t timeoutUs, NvSciBufObj *bufObj) |
This API is invoked by importing process after it receives the binary blob sent by the other process who has created the binary descriptor. More... | |
void | NvSciiBufAttrListAndObjFreeDesc (void *attrListAndObjDescBuf) |
Frees the descriptor used for exporting/importing both attrlist and NvSciBuf Object together. More... | |
NvSciError | NvSciBufObjIpcExport (NvSciBufObj bufObj, NvSciBufAttrValAccessPerm accPerm, NvSciIpcEndpoint ipcEndPoint, NvSciBufObjIpcExportDescriptor *exportData) |
Exports a NvSciBuf object into an NvSciIpc-transferable object binary descriptor. More... | |
NvSciError | NvSciBufObjIpcImport (NvSciIpcEndpoint ipcEndPoint, const NvSciBufObjIpcExportDescriptor *desc, NvSciBufAttrList reconciledAttrList, NvSciBufAttrValAccessPerm minPermissions, int64_t timeoutUs, NvSciBufObj *bufObj) |
Creates a NvSciBuf object based on supplied binary descriptor and returns the NvSciBuf object. More... | |
NvSciError | NvSciBufAttrListIpcExportUnreconciled (NvSciBufAttrList unreconciledAttrListArray[], size_t unreconciledAttrListCount, NvSciIpcEndpoint ipcEndpoint, void **descBuf, size_t *descLen) |
Transforms the input attribute list(s) to an exported attribute list descriptor that can be transported by the application to any remote process as serialized set of bytes over an IPC/IVC/nvIPC channel. More... | |
NvSciError | NvSciBufAttrListIpcExportReconciled (NvSciBufAttrList reconciledAttrList, NvSciIpcEndpoint ipcEndpoint, void **descBuf, size_t *descLen) |
Transforms the input attribute list(s) to an exported attribute list descriptor that can be transported by the application to any remote process as serialized set of bytes over an IPC/IVC/nvIPC channel. More... | |
NvSciError | NvSciBufAttrListIpcImportUnreconciled (NvSciBufModule module, NvSciIpcEndpoint ipcEndpoint, const void *descBuf, size_t descLen, NvSciBufAttrList *importedUnreconciledAttrList) |
Retrieves the attribute list from the attribute descriptor received over IPC channel. More... | |
NvSciError | NvSciBufAttrListIpcImportReconciled (NvSciBufModule module, NvSciIpcEndpoint ipcEndpoint, const void *descBuf, size_t descLen, NvSciBufAttrList inputUnreconciledAttrListArray[], size_t inputUnreconciledAttrListCount, NvSciBufAttrList *importedReconciledAttrList) |
Retrieves the attribute list from the attribute descriptor received over IPC channel. More... | |
void | NvSciBufAttrListFreeDesc (void *descBuf) |
Frees the NvSciBuf exported attribute list descriptor. More... | |
void NvSciBufAttrListFreeDesc | ( | void * | descBuf | ) |
Frees the NvSciBuf exported attribute list descriptor.
[in] | descBuf | Attribute list descriptor to be freed. |
NvSciError NvSciBufAttrListIpcExportReconciled | ( | NvSciBufAttrList | reconciledAttrList, |
NvSciIpcEndpoint | ipcEndpoint, | ||
void ** | descBuf, | ||
size_t * | descLen | ||
) |
Transforms the input attribute list(s) to an exported attribute list descriptor that can be transported by the application to any remote process as serialized set of bytes over an IPC/IVC/nvIPC channel.
[in] | reconciledAttrList | Reconciled attribute list. |
[in] | ipcEndpoint | The NvSciIpc endpoint through which the caller may send the exported attribute list descriptor provided by this function. |
[out] | descBuf | Address at which pointer to exported attribute list descriptor is to be stored. |
[out] | descLen | Address at which the size of the exported attribute list descriptor is to be stored. |
NvSciError NvSciBufAttrListIpcExportUnreconciled | ( | NvSciBufAttrList | unreconciledAttrListArray[], |
size_t | unreconciledAttrListCount, | ||
NvSciIpcEndpoint | ipcEndpoint, | ||
void ** | descBuf, | ||
size_t * | descLen | ||
) |
Transforms the input attribute list(s) to an exported attribute list descriptor that can be transported by the application to any remote process as serialized set of bytes over an IPC/IVC/nvIPC channel.
[in] | unreconciledAttrListArray[] | Array of unreconciled attribute lists. |
[in] | unreconciledAttrListCount | Number of unreconciled attribute lists in unreconciledAttrListArray[]. |
[in] | ipcEndpoint | The NvSciIpc endpoint through which the caller may send the exported attribute list descriptor provided by this function. |
[out] | descBuf | Address at which the pointer to exported attribute list descriptor is to be stored. |
[out] | descLen | Address at which the size of the exported attribute list descriptor is to be stored. |
NvSciError NvSciBufAttrListIpcImportReconciled | ( | NvSciBufModule | module, |
NvSciIpcEndpoint | ipcEndpoint, | ||
const void * | descBuf, | ||
size_t | descLen, | ||
NvSciBufAttrList | inputUnreconciledAttrListArray[], | ||
size_t | inputUnreconciledAttrListCount, | ||
NvSciBufAttrList * | importedReconciledAttrList | ||
) |
Retrieves the attribute list from the attribute descriptor received over IPC channel.
When importing a reconciled attribute list, it will also validate the attribute list to be imported against the provided input unreconciled attribute lists. (This is required while importing a reconciled attribute list to cause NvSciBuf to validate the reconciled attributes against the input attributes so that the process can be sure that a buffer consistent with the imported reconciled list will satisfy the input constraints.)
[in] | module | The NvSciBuf module instance with which to associate the imported NvSciBufAttrList. |
[in] | ipcEndpoint | The NvSciIpc endpoint through which the caller may send the exported attribute list descriptor provided by this function. |
[in] | descBuf | Address at which pointer to imported attribute list descriptor is to be stored. |
[in] | descLen | The size of the imported attribute list descriptor. |
[in] | inputUnreconciledAttrListArray | Array of unreconciled list against imported reconciled list will be verified. |
[in] | inputUnreconciledAttrListCount | Number of unreconciled attribute list in unreconciledAttrListArray[]. |
[out] | importedReconciledAttrList | The imported reconciled attribute list. |
NvSciError NvSciBufAttrListIpcImportUnreconciled | ( | NvSciBufModule | module, |
NvSciIpcEndpoint | ipcEndpoint, | ||
const void * | descBuf, | ||
size_t | descLen, | ||
NvSciBufAttrList * | importedUnreconciledAttrList | ||
) |
Retrieves the attribute list from the attribute descriptor received over IPC channel.
When importing a reconciled attribute list, it will also validate the attribute list to be imported against the provided input unreconciled attribute lists. (This is required while importing a reconciled attribute list to cause NvSciBuf to validate the reconciled attributes against the input attributes so that the process can be sure that a buffer consistent with the imported reconciled list will satisfy the input constraints.)
[in] | module | The NvSciBuf module instance with which to associate the imported NvSciBufAttrList. |
[in] | ipcEndpoint | The NvSciIpc endpoint through which the caller may send the exported attribute list descriptor provided by this function. |
[in] | descBuf | Address at which pointer to imported attribute list descriptor is to be stored. |
[in] | descLen | The size of the imported attribute list descriptor. |
[out] | importedUnreconciledAttrList | The imported unreconciled attribute list. |
NvSciError NvSciBufIpcExportAttrListAndObj | ( | NvSciBufObj | bufObj, |
NvSciBufAttrValAccessPerm | permissions, | ||
NvSciIpcEndpoint | ipcEndpoint, | ||
void ** | attrListAndObjDesc, | ||
size_t * | attrListAndObjDescSize | ||
) |
Exports an NvSciBuf attribute list and object into an NvSciIpc-transferable object binary descriptor.
The blob can be transferred to the other processes to create a matching NvSciBuf object.
[in] | bufObj | NvSciBuf Object to export. |
[in] | permissions | Flag indicating the expected access permission (see NvSciBufAttrValAccessPerm). |
[in] | ipcEndpoint | NvSciIpcEndpoint to identify the peer process. |
[out] | attrListAndObjDesc | NvSciBuf allocates and fills in the exported form of NvSciBufObj and its corresponding attribute list to be shared across an NvSciIpc channel. |
[out] | attrListAndObjDescSize | Size of the exported blob. |
NvSciError NvSciBufIpcImportAttrListAndObj | ( | NvSciBufModule | module, |
NvSciIpcEndpoint | ipcEndpoint, | ||
const void * | attrListAndObjDesc, | ||
size_t | attrListAndObjDescSize, | ||
const NvSciBufAttrList | attrList[], | ||
size_t | count, | ||
NvSciBufAttrValAccessPerm | minPermissions, | ||
int64_t | timeoutUs, | ||
NvSciBufObj * | bufObj | ||
) |
This API is invoked by importing process after it receives the binary blob sent by the other process who has created the binary descriptor.
Importing process will create its own NvSciBuf object and return as output.
[in] | module | Instance of the NvSciBufModule to be used for importing NvSciBuf Object. |
[in] | ipcEndpoint | NvSciIpcEndpoint to identify the peer process. |
[in] | attrListAndObjDesc | The exported form of attribute list and NvSciBufObj. |
[in] | attrListAndObjDescSize | Size of the imported blob. |
[in] | attrList[] | Receiver side array of attribute lists against which the imported attrList has to be validated. |
[in] | count | Number of NvSciBufAttrList objects in the array. |
[in] | minPermissions | Minimum permissions of the buffer that the process is expecting to import the buffer (see NvSciBufAttrValAccessPerm). |
[in] | timeoutUs | Maximum delay (in microseconds) before an NvSciBuf object times out. |
[out] | bufObj | NvSciBuf Object duplicated and exported during the importing process. It contains the attribute list to be shared across an NvSciIpc channel. |
[out] | attrListAndObjDescSize | Size of the exported blob. |
NvSciError NvSciBufObjIpcExport | ( | NvSciBufObj | bufObj, |
NvSciBufAttrValAccessPerm | accPerm, | ||
NvSciIpcEndpoint | ipcEndPoint, | ||
NvSciBufObjIpcExportDescriptor * | exportData | ||
) |
Exports a NvSciBuf object into an NvSciIpc-transferable object binary descriptor.
Descriptor can be transferred to other end of IPC where matching NvSciBuf object can be created from the descriptor.
[in] | bufObj | NvSciBuf object to export. |
[in] | accPerm | Flag indicating the expected access permission (see NvSciBufAttrValAccessPerm). |
[in] | ipcEndPoint | Handle to IPC endpoint. |
[out] | exportData | NvSciBuf populates the return value with exported form of NvSciBufObj shared across an NvSciIpc channel. |
NvSciError NvSciBufObjIpcImport | ( | NvSciIpcEndpoint | ipcEndPoint, |
const NvSciBufObjIpcExportDescriptor * | desc, | ||
NvSciBufAttrList | reconciledAttrList, | ||
NvSciBufAttrValAccessPerm | minPermissions, | ||
int64_t | timeoutUs, | ||
NvSciBufObj * | bufObj | ||
) |
Creates a NvSciBuf object based on supplied binary descriptor and returns the NvSciBuf object.
[in] | ipcEndPoint | Identifier of type NvSciIpcEndpoint. |
[in] | desc | A pointer to an NvSciBufObjIpcExportedDescriptor, an exported form of NvSciBufObj received via the NvIpc channel. |
[in] | reconciledAttrList | Reconciled attribute list returned by NvSciBufAttrListImport(). |
[in] | minPermissions | Flag indicating the expected access permission. |
[in] | timeoutUs | Import timeout in micro seconds, -1 for infinite wait. |
[out] | bufObj | Imported NvSciBufObj created from the descriptor. |
reconciledAttrList
constraints are not met by attributes of the imported NvSciBuf object.void NvSciiBufAttrListAndObjFreeDesc | ( | void * | attrListAndObjDescBuf | ) |
Frees the descriptor used for exporting/importing both attrlist and NvSciBuf Object together.
[in] | attrListAndObjDescBuf | Descriptor to be freed. |