NVIDIA Software Communications Interface (SCI) : NvSciBuf
Allows applications to allocate and exchange buffers in memory.
Definition in file nvscibuf.h.
|
enum | NvSciBufType {
NvSciBufType_General,
NvSciBufType_RawBuffer,
NvSciBufType_Image,
NvSciBufType_Tensor,
NvSciBufType_Array,
NvSciBufType_Pyramid,
NvSciBufType_MaxValid,
NvSciBufType_UpperBound
} |
| Enum definitions of NvSciBuf Buffer datatype. More...
|
|
enum | NvSciBufAttrKey {
NvSciBufAttrKey_LowerBound = NV_SCI_BUF_GENERAL_ATTR_KEY_START,
NvSciBufGeneralAttrKey_Types,
NvSciBufGeneralAttrKey_NeedCpuAccess,
NvSciBufGeneralAttrKey_RequiredPerm,
NvSciBufGeneralAttrKey_EnableCpuCache,
NvSciBufGeneralAttrKey_GpuId,
NvSciBufGeneralAttrKey_CpuNeedSwCacheCoherency,
NvSciBufGeneralAttrKey_ActualPerm,
NvSciBufGeneralAttrKey_VidMem_GpuId,
NvSciBufRawBufferAttrKey_Size = NV_SCI_BUF_RAW_BUF_ATTR_KEY_START,
NvSciBufRawBufferAttrKey_Align,
NvSciBufImageAttrKey_Layout = NV_SCI_BUF_IMAGE_ATTR_KEY_START,
NvSciBufImageAttrKey_TopPadding,
NvSciBufImageAttrKey_BottomPadding,
NvSciBufImageAttrKey_LeftPadding,
NvSciBufImageAttrKey_RightPadding,
NvSciBufImageAttrKey_VprFlag,
NvSciBufImageAttrKey_Size,
NvSciBufImageAttrKey_Alignment,
NvSciBufImageAttrKey_PlaneCount,
NvSciBufImageAttrKey_PlaneColorFormat,
NvSciBufImageAttrKey_PlaneColorStd,
NvSciBufImageAttrKey_PlaneBaseAddrAlign,
NvSciBufImageAttrKey_PlaneWidth,
NvSciBufImageAttrKey_PlaneHeight,
NvSciBufImageAttrKey_PlaneScanType,
NvSciBufImageAttrKey_ScanType = NvSciBufImageAttrKey_PlaneScanType,
NvSciBufImageAttrKey_PlaneBitsPerPixel,
NvSciBufImageAttrKey_PlaneOffset,
NvSciBufImageAttrKey_PlaneDatatype,
NvSciBufImageAttrKey_PlaneChannelCount,
NvSciBufImageAttrKey_PlaneSecondFieldOffset,
NvSciBufImageAttrKey_PlanePitch,
NvSciBufImageAttrKey_PlaneAlignedHeight,
NvSciBufImageAttrKey_PlaneAlignedSize,
NvSciBufImageAttrKey_ImageCount,
NvSciBufTensorAttrKey_DataType = NV_SCI_BUF_TENSOR_ATTR_KEY_START,
NvSciBufTensorAttrKey_NumDims,
NvSciBufTensorAttrKey_SizePerDim,
NvSciBufTensorAttrKey_AlignmentPerDim,
NvSciBufTensorAttrKey_StridesPerDim,
NvSciBufTensorAttrKey_PixelFormat,
NvSciBufTensorAttrKey_BaseAddrAlign,
NvSciBufTensorAttrKey_Size,
NvSciBufArrayAttrKey_DataType = NV_SCI_BUF_ARRAY_ATTR_KEY_START,
NvSciBufArrayAttrKey_Stride,
NvSciBufArrayAttrKey_Capacity,
NvSciBufArrayAttrKey_Size,
NvSciBufArrayAttrKey_Alignment,
NvSciBufPyramidAttrKey_NumLevels = NV_SCI_BUF_PYRAMID_ATTR_KEY_START,
NvSciBufPyramidAttrKey_Scale,
NvSciBufPyramidAttrKey_LevelOffset,
NvSciBufPyramidAttrKey_LevelSize,
NvSciBufPyramidAttrKey_Alignment,
NvSciBufAttrKey_UpperBound
} |
| Describes the public attribute keys. More...
|
|
enum | NvSciBufAttrValAccessPerm {
NvSciBufAccessPerm_Readonly = 1,
NvSciBufAccessPerm_ReadWrite = 3,
NvSciBufAccessPerm_Auto,
NvSciBufAccessPerm_Invalid
} |
| Defines access permissions for NvSciBuf. More...
|
|
enum | NvSciBufAttrValImageLayoutType {
NvSciBufImage_BlockLinearType,
NvSciBufImage_PitchLinearType
} |
| Defines the image layout type for NvSciBuf. More...
|
|
enum | NvSciBufAttrValImageScanType {
NvSciBufScan_ProgressiveType,
NvSciBufScan_InterlaceType
} |
| Defines the image scan type for NvSciBuf. More...
|
|
enum | NvSciBufAttrValColorFmt {
NvSciColor_LowerBound,
NvSciColor_Bayer8RGGB,
NvSciColor_Bayer8CCCC,
NvSciColor_Bayer8BGGR,
NvSciColor_Bayer8GBRG,
NvSciColor_Bayer8GRBG,
NvSciColor_Bayer16BGGR,
NvSciColor_Bayer16CCCC,
NvSciColor_Bayer16GBRG,
NvSciColor_Bayer16GRBG,
NvSciColor_Bayer16RGGB,
NvSciColor_Bayer16RCCB,
NvSciColor_Bayer16BCCR,
NvSciColor_Bayer16CRBC,
NvSciColor_Bayer16CBRC,
NvSciColor_Bayer16RCCC,
NvSciColor_Bayer16CCCR,
NvSciColor_Bayer16CRCC,
NvSciColor_Bayer16CCRC,
NvSciColor_X2Bayer14GBRG,
NvSciColor_X4Bayer12GBRG,
NvSciColor_X6Bayer10GBRG,
NvSciColor_X2Bayer14GRBG,
NvSciColor_X4Bayer12GRBG,
NvSciColor_X6Bayer10GRBG,
NvSciColor_X2Bayer14BGGR,
NvSciColor_X4Bayer12BGGR,
NvSciColor_X6Bayer10BGGR,
NvSciColor_X2Bayer14RGGB,
NvSciColor_X4Bayer12RGGB,
NvSciColor_X6Bayer10RGGB,
NvSciColor_X2Bayer14CCCC,
NvSciColor_X4Bayer12CCCC,
NvSciColor_X6Bayer10CCCC,
NvSciColor_X4Bayer12RCCB,
NvSciColor_X4Bayer12BCCR,
NvSciColor_X4Bayer12CRBC,
NvSciColor_X4Bayer12CBRC,
NvSciColor_X4Bayer12RCCC,
NvSciColor_X4Bayer12CCCR,
NvSciColor_X4Bayer12CRCC,
NvSciColor_X4Bayer12CCRC,
NvSciColor_Signed_X2Bayer14CCCC,
NvSciColor_Signed_X4Bayer12CCCC,
NvSciColor_Signed_X6Bayer10CCCC,
NvSciColor_Signed_Bayer16CCCC,
NvSciColor_FloatISP_Bayer16CCCC,
NvSciColor_FloatISP_Bayer16RGGB,
NvSciColor_FloatISP_Bayer16BGGR,
NvSciColor_FloatISP_Bayer16GRBG,
NvSciColor_FloatISP_Bayer16GBRG,
NvSciColor_FloatISP_Bayer16RCCB,
NvSciColor_FloatISP_Bayer16BCCR,
NvSciColor_FloatISP_Bayer16CRBC,
NvSciColor_FloatISP_Bayer16CBRC,
NvSciColor_FloatISP_Bayer16RCCC,
NvSciColor_FloatISP_Bayer16CCCR,
NvSciColor_FloatISP_Bayer16CRCC,
NvSciColor_FloatISP_Bayer16CCRC,
NvSciColor_X12Bayer20CCCC,
NvSciColor_X12Bayer20BGGR,
NvSciColor_X12Bayer20RGGB,
NvSciColor_X12Bayer20GRBG,
NvSciColor_X12Bayer20GBRG,
NvSciColor_X12Bayer20RCCB,
NvSciColor_X12Bayer20BCCR,
NvSciColor_X12Bayer20CRBC,
NvSciColor_X12Bayer20CBRC,
NvSciColor_X12Bayer20RCCC,
NvSciColor_X12Bayer20CCCR,
NvSciColor_X12Bayer20CRCC,
NvSciColor_X12Bayer20CCRC,
NvSciColor_Signed_X12Bayer20CCCC,
NvSciColor_Signed_X12Bayer20GBRG,
NvSciColor_U8V8,
NvSciColor_U8_V8,
NvSciColor_V8U8,
NvSciColor_V8_U8,
NvSciColor_U10V10,
NvSciColor_V10U10,
NvSciColor_U12V12,
NvSciColor_V12U12,
NvSciColor_U16V16,
NvSciColor_V16U16,
NvSciColor_Y8,
NvSciColor_Y10,
NvSciColor_Y12,
NvSciColor_Y16,
NvSciColor_U8,
NvSciColor_V8,
NvSciColor_U10,
NvSciColor_V10,
NvSciColor_U12,
NvSciColor_V12,
NvSciColor_U16,
NvSciColor_V16,
NvSciColor_A8Y8U8V8,
NvSciColor_Y8U8Y8V8,
NvSciColor_Y8V8Y8U8,
NvSciColor_U8Y8V8Y8,
NvSciColor_V8Y8U8Y8,
NvSciColor_A16Y16U16V16,
NvSciColor_A8,
NvSciColor_Signed_A8,
NvSciColor_B8G8R8A8,
NvSciColor_A8R8G8B8,
NvSciColor_A8B8G8R8,
NvSciColor_A2R10G10B10,
NvSciColor_A16,
NvSciColor_Signed_A16,
NvSciColor_Signed_R16G16,
NvSciColor_A16B16G16R16,
NvSciColor_Signed_A16B16G16R16,
NvSciColor_Float_A16B16G16R16,
NvSciColor_A32,
NvSciColor_Signed_A32,
NvSciColor_Float_A16,
NvSciColor_UpperBound
} |
| Defines the image color formats for NvSciBuf. More...
|
|
enum | NvSciBufAttrValColorStd {
NvSciColorStd_SRGB,
NvSciColorStd_REC601_SR,
NvSciColorStd_REC601_ER,
NvSciColorStd_REC709_SR,
NvSciColorStd_REC709_ER,
NvSciColorStd_REC2020_RGB,
NvSciColorStd_REC2020_SR,
NvSciColorStd_REC2020_ER,
NvSciColorStd_YcCbcCrc_SR,
NvSciColorStd_YcCbcCrc_ER,
NvSciColorStd_SENSOR_RGBA,
NvSciColorStd_REQ2020PQ_ER
} |
| Defines the image color standard for NvSciBuf. More...
|
|
enum | NvSciBufAttrValDataType {
NvSciDataType_Int4,
NvSciDataType_Uint4,
NvSciDataType_Int8,
NvSciDataType_Uint8,
NvSciDataType_Int16,
NvSciDataType_Uint16,
NvSciDataType_Int32,
NvSciDataType_Uint32,
NvSciDataType_Float16,
NvSciDataType_Float32,
NvSciDataType_FloatISP,
NvSciDataType_Bool,
NvSciDataType_UpperBound
} |
| Defines various numeric datatypes for NvSciBuf. More...
|
|
|
NvSciError | NvSciBufAttrListCreate (NvSciBufModule module, NvSciBufAttrList *newAttrList) |
| Creates an attribute list holding the attributes of the NvSciBufObj to be allocated. More...
|
|
void | NvSciBufAttrListFree (NvSciBufAttrList attrList) |
| Frees the memory of an attribute list. More...
|
|
NvSciError | NvSciBufAttrListSetAttrs (NvSciBufAttrList attrList, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount) |
| Sets the attribute values in the attribute list. More...
|
|
size_t | NvSciBufAttrListGetSlotCount (NvSciBufAttrList attrList) |
| Returns the slot count per key in an attribute list. More...
|
|
NvSciError | NvSciBufAttrListGetAttrs (NvSciBufAttrList attrList, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount) |
| Returns an array of attribute key/value pairs for a given set of keys. More...
|
|
NvSciError | NvSciBufAttrListSlotGetAttrs (NvSciBufAttrList attrList, size_t slotIndex, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount) |
| Returns an array of attribute key/value pairs from a multi-slot unreconciled attribute list at the given slot index. More...
|
|
NvSciError | NvSciBufAttrListDebugDump (NvSciBufAttrList attrList, void **buf, size_t *len) |
| Allocates a buffer and then dumps the contents of the specified attribute list into the buffer. More...
|
|
NvSciError | NvSciBufAttrListReconcile (NvSciBufAttrList inputArray[], size_t inputCount, NvSciBufAttrList *newReconciledAttrList, NvSciBufAttrList *newConflictList) |
| Reconciles the given unreconciled attribute list(s) into a new reconciled attribute list. More...
|
|
NvSciError | NvSciBufAttrListClone (NvSciBufAttrList origAttrList, NvSciBufAttrList *newAttrList) |
| Clones an unreconciled/reconciled attribute list. More...
|
|
NvSciError | NvSciBufAttrListAppendUnreconciled (const NvSciBufAttrList inputUnreconciledAttrListArray[], size_t inputUnreconciledAttrListCount, NvSciBufAttrList *newUnreconciledAttrList) |
| Append multiple unreconciled attribute lists together, forming a single new unreconciled attribute list with a slot count equal to the sum of all the slot counts in the input list. More...
|
|
NvSciError | NvSciBufAttrListIsReconciled (NvSciBufAttrList attrList, bool *isReconciled) |
| Checks if an attribute list is reconciled. More...
|
|
NvSciError | NvSciBufAttrListValidateReconciled (NvSciBufAttrList reconciledAttrList, const NvSciBufAttrList unreconciledAttrListArray[], size_t unreconciledAttrListCount, bool *isReconcileListValid) |
| Validates a reconciled attribute list against a set of unreconciled attribute lists. More...
|
|
NvSciError | NvSciBufObjDup (NvSciBufObj bufObj, NvSciBufObj *dupObj) |
| Clones a NvSciBuf object. More...
|
|
NvSciError | NvSciBufAttrListReconcileAndObjAlloc (NvSciBufAttrList attrListArray[], size_t attrListCount, NvSciBufObj *bufObj, NvSciBufAttrList *newConflictList) |
| Reconcile the input unreconciled attribute list(s) into a new reconciled attribute list and allocate NvSciBuf object that meets all the constraints in the new reconciled attribute list. More...
|
|
void | NvSciBufObjFree (NvSciBufObj bufObj) |
| Destroys the NvSciBuf object, which frees any memory allocated for it. More...
|
|
NvSciError | NvSciBufObjGetAttrList (NvSciBufObj bufObj, NvSciBufAttrList *bufAttrList) |
| Retrieves the attribute list from an NvSciBuf object. More...
|
|
NvSciError | NvSciBufObjGetCpuPtr (NvSciBufObj bufObj, void **ptr) |
| Gets the CPU virtual address (VA) of the NvSciBufObj. More...
|
|
NvSciError | NvSciBufObjGetConstCpuPtr (NvSciBufObj bufObj, const void **ptr) |
| Gets the CPU virtual address (VA) of the NvSciBufObj. More...
|
|
NvSciError | NvSciBufObjFlushCpuCacheRange (NvSciBufObj bufObj, uint64_t offset, uint64_t len) |
| Flushes the given len bytes at starting offset offset in NvSciBufObj from all CPU-managed caches. More...
|
|
NvSciError | NvSciBufObjAlloc (NvSciBufAttrList reconciledAttrList, NvSciBufObj *bufObj) |
| Allocates an NvSciBuf object that meets all the constraints in the specified reconciled attribute list. More...
|
|
NvSciError | NvSciBufObjDupWithReducePerm (NvSciBufObj bufObj, NvSciBufAttrValAccessPerm reducedPerm, NvSciBufObj *newBufObj) |
| Creates a Duplicate NvSciBufObj with reduced access permissions. More...
|
|
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 | NvSciBufAttrListAndObjFreeDesc (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...
|
|
NvSciError | NvSciBufModuleOpen (NvSciBufModule *newModule) |
| Initializes an instance of the NvSciBuf module within the calling process and provides an NvSciBufModule representing the instance. More...
|
|
void | NvSciBufModuleClose (NvSciBufModule module) |
| Releases an instance of the NvSciBuf module obtained through an earlier call to NvSciBufModuleOpen(). More...
|
|
NvSciError | NvSciBufCheckVersionCompatibility (uint32_t majorVer, uint32_t minorVer, bool *isCompatible) |
| API to check if loaded library version is compatible with passed library build version. More...
|
|