NVIDIA Software Communications Interface (SCI) : NvSciBuf
Allows applications to allocate and exchange buffers in memory.
Definition in file nvscibuf.h.
|
enum | NvSciBufType {
NvSciBufType_General = 0U,
NvSciBufType_RawBuffer = 1U,
NvSciBufType_Image = 2U,
NvSciBufType_Tensor = 3U,
NvSciBufType_Array = 4U,
NvSciBufType_Pyramid = 5U,
NvSciBufType_MaxValid = 6U,
NvSciBufType_UpperBound = 6U
} |
| Enum definitions of NvSciBuf datatypes. 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 = 0x3ffffffU
} |
| Describes the NvSciBuf public attribute keys holding corresponding values specifying buffer constraints. More...
|
|
enum | NvSciBufAttrValAccessPerm {
NvSciBufAccessPerm_Readonly = 1,
NvSciBufAccessPerm_ReadWrite = 3,
NvSciBufAccessPerm_Auto,
NvSciBufAccessPerm_Invalid
} |
| Defines buffer access permissions for NvSciBufObj. More...
|
|
enum | NvSciBufAttrValImageLayoutType {
NvSciBufImage_BlockLinearType,
NvSciBufImage_PitchLinearType
} |
| Defines the image layout type for NvSciBufType_Image. More...
|
|
enum | NvSciBufAttrValImageScanType {
NvSciBufScan_ProgressiveType,
NvSciBufScan_InterlaceType
} |
| Defines the image scan type for NvSciBufType_Image. 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 NvSciBufType_Image. 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 NvSciBufType_Image. 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 a new, single slot, unreconciled NvSciBufAttrList associated with the input NvSciBufModule with empty NvSciBufAttrKeys. More...
|
|
void | NvSciBufAttrListFree (NvSciBufAttrList attrList) |
| Frees the NvSciBufAttrList and removes its association with the NvSciBufModule with which it was created. More...
|
|
NvSciError | NvSciBufAttrListSetAttrs (NvSciBufAttrList attrList, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount) |
| Sets the values for NvSciBufAttrKey(s) in the NvSciBufAttrList. More...
|
|
size_t | NvSciBufAttrListGetSlotCount (NvSciBufAttrList attrList) |
| Returns the slot count per NvSciBufAttrKey in a NvSciBufAttrList. More...
|
|
NvSciError | NvSciBufAttrListGetAttrs (NvSciBufAttrList attrList, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount) |
| Returns an array of NvSciBufAttrKeyValuePair for a given set of NvSciBufAttrKey(s). More...
|
|
NvSciError | NvSciBufAttrListSlotGetAttrs (NvSciBufAttrList attrList, size_t slotIndex, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount) |
| Returns an array of NvSciBufAttrKeyValuePair(s) from a multi-slot unreconciled NvSciBufAttrList 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 (const NvSciBufAttrList inputArray[], size_t inputCount, NvSciBufAttrList *newReconciledAttrList, NvSciBufAttrList *newConflictList) |
| Reconciles the given unreconciled NvSciBufAttrList(s) into a new reconciled NvSciBufAttrList. More...
|
|
NvSciError | NvSciBufAttrListClone (NvSciBufAttrList origAttrList, NvSciBufAttrList *newAttrList) |
| Clones an unreconciled/reconciled NvSciBufAttrList. More...
|
|
NvSciError | NvSciBufAttrListAppendUnreconciled (const NvSciBufAttrList inputUnreconciledAttrListArray[], size_t inputUnreconciledAttrListCount, NvSciBufAttrList *newUnreconciledAttrList) |
| Appends multiple unreconciled NvSciBufAttrList(s) together, forming a single new unreconciled NvSciBufAttrList with a slot count equal to the sum of all the slot counts of NvSciBufAttrList(s) in the input array. More...
|
|
NvSciError | NvSciBufAttrListIsReconciled (NvSciBufAttrList attrList, bool *isReconciled) |
| Checks if the NvSciBufAttrList is reconciled. More...
|
|
NvSciError | NvSciBufAttrListValidateReconciled (NvSciBufAttrList reconciledAttrList, const NvSciBufAttrList unreconciledAttrListArray[], size_t unreconciledAttrListCount, bool *isReconcileListValid) |
| Validates a reconciled NvSciBufAttrList against a set of unreconciled NvSciBufAttrList(s). More...
|
|
NvSciError | NvSciBufObjDup (NvSciBufObj bufObj, NvSciBufObj *dupObj) |
| Creates a new NvSciBufObj holding reference to the same Memory object to which input NvSciBufObj holds the reference. More...
|
|
NvSciError | NvSciBufAttrListReconcileAndObjAlloc (const NvSciBufAttrList attrListArray[], size_t attrListCount, NvSciBufObj *bufObj, NvSciBufAttrList *newConflictList) |
| Reconciles the input unreconciled NvSciBufAttrList(s) into a new reconciled NvSciBufAttrList and allocates NvSciBufObj that meets all the constraints in the reconciled NvSciBufAttrList. More...
|
|
void | NvSciBufObjFree (NvSciBufObj bufObj) |
| Removes reference to the Memory object by destroying the NvSciBufObj. More...
|
|
NvSciError | NvSciBufObjGetAttrList (NvSciBufObj bufObj, NvSciBufAttrList *bufAttrList) |
| Retrieves the reconciled NvSciBufAttrList whose attributes define the constraints of the allocated buffer from the NvSciBufObj. More...
|
|
NvSciError | NvSciBufObjGetCpuPtr (NvSciBufObj bufObj, void **ptr) |
| Gets the CPU virtual address (VA) of the read/write buffer referenced by the NvSciBufObj. More...
|
|
NvSciError | NvSciBufObjGetConstCpuPtr (NvSciBufObj bufObj, const void **ptr) |
| Gets the CPU virtual address (VA) of the read-only buffer referenced by the NvSciBufObj. More...
|
|
NvSciError | NvSciBufObjFlushCpuCacheRange (NvSciBufObj bufObj, uint64_t offset, uint64_t len) |
| Flushes the given len bytes at starting offset in the buffer referenced by the NvSciBufObj. More...
|
|
NvSciError | NvSciBufObjAlloc (NvSciBufAttrList reconciledAttrList, NvSciBufObj *bufObj) |
| Allocates a buffer that satisfies all the constraints defined by the attributes of the specified reconciled NvSciBufAttrList, and outputs a new NvSciBufObj referencing the Memory object containing the allocated buffer properties. More...
|
|
NvSciError | NvSciBufObjDupWithReducePerm (NvSciBufObj bufObj, NvSciBufAttrValAccessPerm reducedPerm, NvSciBufObj *newBufObj) |
| Creates a new memory object containing a buffer handle representing new NvSciBufAttrValAccessPerm to the same buffer for which buffer handle is contained in the input memory object referenced by input NvSciBufObj and creates a new NvSciBufObj referencing it provided NvSciBufAttrValAccessPerm are less than permissions represented by buffer handle in the memory object referenced by input NvSciBufObj. More...
|
|
NvSciError | NvSciBufIpcExportAttrListAndObj (NvSciBufObj bufObj, NvSciBufAttrValAccessPerm permissions, NvSciIpcEndpoint ipcEndpoint, void **attrListAndObjDesc, size_t *attrListAndObjDescSize) |
| Exports NvSciBufAttrList and NvSciBufObj into an NvSciIpc-transferable object export 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 the importing process after it receives the object export descriptor sent by the other process who has created descriptor. More...
|
|
void | NvSciBufAttrListAndObjFreeDesc (void *attrListAndObjDescBuf) |
| Frees the descriptor used for exporting both NvSciBufAttrList and NvSciBufObj together. More...
|
|
NvSciError | NvSciBufObjIpcExport (NvSciBufObj bufObj, NvSciBufAttrValAccessPerm accPerm, NvSciIpcEndpoint ipcEndpoint, NvSciBufObjIpcExportDescriptor *exportData) |
| Exports the NvSciBufObj into an NvSciIpc-transferable object export descriptor. More...
|
|
NvSciError | NvSciBufObjIpcImport (NvSciIpcEndpoint ipcEndpoint, const NvSciBufObjIpcExportDescriptor *desc, NvSciBufAttrList reconciledAttrList, NvSciBufAttrValAccessPerm minPermissions, int64_t timeoutUs, NvSciBufObj *bufObj) |
| Creates the NvSciBufObj based on supplied object export descriptor and returns the NvSciBufObj. More...
|
|
NvSciError | NvSciBufAttrListIpcExportUnreconciled (const NvSciBufAttrList unreconciledAttrListArray[], size_t unreconciledAttrListCount, NvSciIpcEndpoint ipcEndpoint, void **descBuf, size_t *descLen) |
| Transforms the input unreconciled NvSciBufAttrList(s) to an exportable unreconciled NvSciBufAttrList descriptor that can be transported by the application to any remote process as a serialized set of bytes over an NvSciIpc channel. More...
|
|
NvSciError | NvSciBufAttrListIpcExportReconciled (NvSciBufAttrList reconciledAttrList, NvSciIpcEndpoint ipcEndpoint, void **descBuf, size_t *descLen) |
| Transforms the reconciled NvSciBufAttrList to an exportable reconciled NvSciBufAttrList descriptor that can be transported by the application to any remote process as a serialized set of bytes over an NvSciIpc channel. More...
|
|
NvSciError | NvSciBufAttrListIpcImportUnreconciled (NvSciBufModule module, NvSciIpcEndpoint ipcEndpoint, const void *descBuf, size_t descLen, NvSciBufAttrList *importedUnreconciledAttrList) |
| Translates an exported unreconciled NvSciBufAttrList descriptor (potentially received from any process) into an unreconciled NvSciBufAttrList. More...
|
|
NvSciError | NvSciBufAttrListIpcImportReconciled (NvSciBufModule module, NvSciIpcEndpoint ipcEndpoint, const void *descBuf, size_t descLen, const NvSciBufAttrList inputUnreconciledAttrListArray[], size_t inputUnreconciledAttrListCount, NvSciBufAttrList *importedReconciledAttrList) |
| Translates an exported reconciled NvSciBufAttrList descriptor (potentially received from any process) into a reconciled NvSciBufAttrList. More...
|
|
void | NvSciBufAttrListFreeDesc (void *descBuf) |
| Frees the NvSciBuf exported NvSciBufAttrList descriptor. More...
|
|
NvSciError | NvSciBufModuleOpen (NvSciBufModule *newModule) |
| Initializes and returns a new NvSciBufModule with no NvSciBufAttrLists, buffers, or NvSciBufObjs bound to it. More...
|
|
void | NvSciBufModuleClose (NvSciBufModule module) |
| Releases the NvSciBufModule obtained through an earlier call to NvSciBufModuleOpen(). More...
|
|
NvSciError | NvSciBufCheckVersionCompatibility (uint32_t majorVer, uint32_t minorVer, bool *isCompatible) |
| Checks if loaded NvSciBuf library version is compatible with NvSciBuf library version with which elements dependent on NvSciBuf were built. More...
|
|