NVIDIA DRIVE OS Linux SDK API Reference

5.1.12.0 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nvscibuf.h
Go to the documentation of this file.
1 /*
2  * Header file for NvSciBuf APIs
3  *
4  * Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved.
5  *
6  * NVIDIA Corporation and its licensors retain all intellectual property
7  * and proprietary rights in and to this software, related documentation
8  * and any modifications thereto. Any use, reproduction, disclosure or
9  * distribution of this software and related documentation without an express
10  * license agreement from NVIDIA Corporation is strictly prohibited.
11  */
19 #ifndef INCLUDED_NVSCIBUF_H
20 #define INCLUDED_NVSCIBUF_H
21 
22 #include <stddef.h>
23 #include <stdbool.h>
24 #include <stdint.h>
25 #include "nvscierror.h"
26 #include <nvsciipc.h>
27 
28 #if defined(__cplusplus)
29 extern "C"
30 {
31 #endif
32 
50 typedef enum {
61 } NvSciBufType;
62 
76 static const uint32_t NvSciBufMajorVersion = 2U;
77 
81 static const uint32_t NvSciBufMinorVersion = 0U;
82 
83 #if defined(__cplusplus)
84 
88 static const int NV_SCI_BUF_TENSOR_MAX_DIMS = 8;
89 
93 static const int NV_SCI_BUF_IMAGE_MAX_PLANES = 3;
94 
98 static const int NV_SCI_BUF_PYRAMID_MAX_LEVELS = 10;
99 
103 static const int NVSCIBUF_EXPORT_DESC_SIZE = 32;
104 
109 static const int NV_SCI_BUF_ATTRKEY_BIT_COUNT = 16;
110 
115 static const int NV_SCI_BUF_DATATYPE_BIT_COUNT = 10;
116 
120 static const int NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC = 0;
121 
122 /*
123  * @brief Global constant to specify the start-bit of attribute Keytype.
124  */
125 static const int NV_SCI_BUF_KEYTYPE_BIT_START =
126  (NV_SCI_BUF_DATATYPE_BIT_COUNT + NV_SCI_BUF_ATTRKEY_BIT_COUNT);
127 
131 static const int NV_SCI_BUF_GENERAL_ATTR_KEY_START =
132  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) |
133  (NvSciBufType_General << NV_SCI_BUF_ATTRKEY_BIT_COUNT);
134 
138 static const int NV_SCI_BUF_RAW_BUF_ATTR_KEY_START =
139  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) |
140  (NvSciBufType_RawBuffer << NV_SCI_BUF_ATTRKEY_BIT_COUNT);
141 
145 static const int NV_SCI_BUF_IMAGE_ATTR_KEY_START =
146  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) |
147  (NvSciBufType_Image << NV_SCI_BUF_ATTRKEY_BIT_COUNT);
151 static const int NV_SCI_BUF_PYRAMID_ATTR_KEY_START =
152  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) |
153  (NvSciBufType_Pyramid << NV_SCI_BUF_ATTRKEY_BIT_COUNT);
154 
158 static const int NV_SCI_BUF_ARRAY_ATTR_KEY_START =
159  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) |
160  (NvSciBufType_Array << NV_SCI_BUF_ATTRKEY_BIT_COUNT);
161 
165 static const int NV_SCI_BUF_TENSOR_ATTR_KEY_START =
166  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) |
167  (NvSciBufType_Tensor << NV_SCI_BUF_ATTRKEY_BIT_COUNT);
168 
169 #else
170 
174 #define NV_SCI_BUF_TENSOR_MAX_DIMS 8u
175 
179 #define NV_SCI_BUF_IMAGE_MAX_PLANES 3u
180 
184 #define NV_SCI_BUF_PYRAMID_MAX_LEVELS 10u
185 
189 #define NVSCIBUF_EXPORT_DESC_SIZE 32u
190 
195 #define NV_SCI_BUF_ATTRKEY_BIT_COUNT 16u
196 
201 #define NV_SCI_BUF_DATATYPE_BIT_COUNT 10u
202 
206 #define NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC 0
207 
211 #define NV_SCI_BUF_KEYTYPE_BIT_START \
212  (NV_SCI_BUF_DATATYPE_BIT_COUNT + NV_SCI_BUF_ATTRKEY_BIT_COUNT)
213 
217 #define NV_SCI_BUF_GENERAL_ATTR_KEY_START \
218  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
219  (NvSciBufType_General << NV_SCI_BUF_ATTRKEY_BIT_COUNT)
220 
224 #define NV_SCI_BUF_RAW_BUF_ATTR_KEY_START \
225  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
226  (NvSciBufType_RawBuffer << NV_SCI_BUF_ATTRKEY_BIT_COUNT)
227 
231 #define NV_SCI_BUF_IMAGE_ATTR_KEY_START \
232  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
233  (NvSciBufType_Image << NV_SCI_BUF_ATTRKEY_BIT_COUNT)
234 
238 #define NV_SCI_BUF_PYRAMID_ATTR_KEY_START \
239  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
240  (NvSciBufType_Pyramid << NV_SCI_BUF_ATTRKEY_BIT_COUNT)
241 
245 #define NV_SCI_BUF_ARRAY_ATTR_KEY_START \
246  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
247  (NvSciBufType_Array << NV_SCI_BUF_ATTRKEY_BIT_COUNT)
248 
252 #define NV_SCI_BUF_TENSOR_ATTR_KEY_START \
253  (NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
254  (NvSciBufType_Tensor << NV_SCI_BUF_ATTRKEY_BIT_COUNT)
255 
256 #endif
257 
271 typedef enum {
277 
290 
300 
314 
339 
351 
361 
375 
386 
394 
402 
410 
418 
426 
434 
442 
450 
458 
466 
474 
482 
490 
498 
506 
514 
523 
531 
539 
547 
555 
564 
572 
580 
588 
595 
603 
611 
622 
630 
641 
650 
657 
665 
673 
682 
690 
698 
706 
714 
723 
732 
741 
748 
755 
757 
770 typedef enum {
780 
784 typedef enum {
788 
792 typedef enum {
796 
800 typedef enum {
802  /* RAW PACKED */
876 
877  /* Semiplanar formats */
888 
889  /* PLANAR formats */
902 
903  /* Packed YUV formats */
910 
911  /* RGBA PACKED */
929 
933 typedef enum {
947 
951 typedef enum {
966 
970 typedef struct {
971  uint8_t bytes[16];
972 } NvSciRmGpuId;
973 
994 typedef struct NvSciBufModuleRec* NvSciBufModule;
995 
1002 typedef struct {
1004  const void* value;
1005  size_t len;
1007 
1015 typedef struct NvSciBufObjRefRec* NvSciBufObj;
1016 
1024 typedef struct NvSciBufAttrListRec* NvSciBufAttrList;
1025 
1029 typedef struct {
1031 } __attribute__((packed)) NvSciBufObjIpcExportDescriptor;
1032 
1056 NvSciError NvSciBufAttrListCreate(NvSciBufModule module,
1057  NvSciBufAttrList* newAttrList);
1058 
1066 void NvSciBufAttrListFree(NvSciBufAttrList attrList);
1067 
1082 NvSciError NvSciBufAttrListSetAttrs(NvSciBufAttrList attrList,
1083  NvSciBufAttrKeyValuePair* pairArray, size_t pairCount);
1084 
1094 size_t NvSciBufAttrListGetSlotCount(NvSciBufAttrList attrList);
1095 
1114 NvSciError NvSciBufAttrListGetAttrs(NvSciBufAttrList attrList,
1115  NvSciBufAttrKeyValuePair* pairArray, size_t pairCount);
1116 
1142 NvSciError NvSciBufAttrListSlotGetAttrs(NvSciBufAttrList attrList,
1143  size_t slotIndex, NvSciBufAttrKeyValuePair* pairArray, size_t pairCount);
1144 
1157 NvSciError NvSciBufAttrListDebugDump(NvSciBufAttrList attrList, void** buf,
1158  size_t* len);
1159 
1186 NvSciError NvSciBufAttrListReconcile(NvSciBufAttrList inputArray[],
1187  size_t inputCount, NvSciBufAttrList* newReconciledAttrList,
1188  NvSciBufAttrList* newConflictList);
1189 
1205 NvSciError NvSciBufAttrListClone(NvSciBufAttrList origAttrList,
1206  NvSciBufAttrList* newAttrList);
1207 
1227  const NvSciBufAttrList inputUnreconciledAttrListArray[],
1228  size_t inputUnreconciledAttrListCount,
1229  NvSciBufAttrList* newUnreconciledAttrList);
1230 
1243 NvSciError NvSciBufAttrListIsReconciled(NvSciBufAttrList attrList,
1244  bool* isReconciled);
1245 
1265  NvSciBufAttrList reconciledAttrList,
1266  const NvSciBufAttrList unreconciledAttrListArray[],
1267  size_t unreconciledAttrListCount, bool* isReconcileListValid);
1268 
1290 NvSciError NvSciBufObjDup(NvSciBufObj bufObj, NvSciBufObj* dupObj);
1291 
1314  NvSciBufAttrList attrListArray[], size_t attrListCount,
1315  NvSciBufObj* bufObj, NvSciBufAttrList* newConflictList);
1316 
1324 void NvSciBufObjFree(NvSciBufObj bufObj);
1325 
1344 NvSciError NvSciBufObjGetAttrList(NvSciBufObj bufObj,
1345  NvSciBufAttrList* bufAttrList);
1346 
1358 NvSciError NvSciBufObjGetCpuPtr(NvSciBufObj bufObj, void** ptr);
1359 
1372 NvSciError NvSciBufObjGetConstCpuPtr(NvSciBufObj bufObj, const void** ptr);
1373 
1386 NvSciError NvSciBufObjFlushCpuCacheRange(NvSciBufObj bufObj,
1387  uint64_t offset, uint64_t len);
1388 
1404 NvSciError NvSciBufObjAlloc(NvSciBufAttrList reconciledAttrList,
1405  NvSciBufObj* bufObj);
1406 
1422  NvSciBufObj bufObj,
1423  NvSciBufAttrValAccessPerm reducedPerm,
1424  NvSciBufObj* newBufObj);
1425 
1456 NvSciError NvSciBufIpcExportAttrListAndObj(NvSciBufObj bufObj,
1457  NvSciBufAttrValAccessPerm permissions, NvSciIpcEndpoint ipcEndpoint,
1458  void** attrListAndObjDesc, size_t* attrListAndObjDescSize);
1459 
1485 NvSciError NvSciBufIpcImportAttrListAndObj(NvSciBufModule module,
1486  NvSciIpcEndpoint ipcEndpoint, const void* attrListAndObjDesc,
1487  size_t attrListAndObjDescSize, const NvSciBufAttrList attrList[],
1488  size_t count, NvSciBufAttrValAccessPerm minPermissions,
1489  int64_t timeoutUs, NvSciBufObj* bufObj);
1490 
1498 void NvSciBufAttrListAndObjFreeDesc(void* attrListAndObjDescBuf);
1499 
1518 NvSciError NvSciBufObjIpcExport(NvSciBufObj bufObj,
1519  NvSciBufAttrValAccessPerm accPerm, NvSciIpcEndpoint ipcEndpoint,
1520  NvSciBufObjIpcExportDescriptor* exportData);
1521 
1547  const NvSciBufObjIpcExportDescriptor* desc,
1548  NvSciBufAttrList reconciledAttrList,
1549  NvSciBufAttrValAccessPerm minPermissions, int64_t timeoutUs,
1550  NvSciBufObj* bufObj);
1551 
1575  NvSciBufAttrList unreconciledAttrListArray[],
1576  size_t unreconciledAttrListCount, NvSciIpcEndpoint ipcEndpoint,
1577  void** descBuf, size_t* descLen);
1578 
1600  NvSciBufAttrList reconciledAttrList, NvSciIpcEndpoint ipcEndpoint,
1601  void** descBuf, size_t* descLen);
1602 
1631  NvSciIpcEndpoint ipcEndpoint, const void* descBuf, size_t descLen,
1632  NvSciBufAttrList* importedUnreconciledAttrList);
1633 
1665 NvSciError NvSciBufAttrListIpcImportReconciled(NvSciBufModule module,
1666  NvSciIpcEndpoint ipcEndpoint, const void* descBuf, size_t descLen,
1667  NvSciBufAttrList inputUnreconciledAttrListArray[],
1668  size_t inputUnreconciledAttrListCount,
1669  NvSciBufAttrList* importedReconciledAttrList);
1670 
1671 
1679 void NvSciBufAttrListFreeDesc(void* descBuf);
1680 
1703 NvSciError NvSciBufModuleOpen(NvSciBufModule* newModule);
1704 
1718 void NvSciBufModuleClose(NvSciBufModule module);
1719 
1738  uint32_t majorVer,
1739  uint32_t minorVer,
1740  bool* isCompatible);
1741 
1748 #if defined(__cplusplus)
1749 }
1750 #endif // __cplusplus
1751 
1752 #endif /* INCLUDED_NVSCIBUF_H */
Defines the export data (blob) for NvSciBufObj.
Definition: nvscibuf.h:1029
NvSciError NvSciBufAttrListCreate(NvSciBufModule module, NvSciBufAttrList *newAttrList)
Creates an attribute list holding the attributes of the NvSciBufObj to be allocated.
NvSciError NvSciBufAttrListGetAttrs(NvSciBufAttrList attrList, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount)
Returns an array of attribute key/value pairs for a given set of keys.
NvSciError NvSciBufAttrListValidateReconciled(NvSciBufAttrList reconciledAttrList, const NvSciBufAttrList unreconciledAttrListArray[], size_t unreconciledAttrListCount, bool *isReconcileListValid)
Validates a reconciled attribute list against a set of unreconciled attribute lists.
NvSciError NvSciBufObjGetConstCpuPtr(NvSciBufObj bufObj, const void **ptr)
Gets the CPU virtual address (VA) of the NvSciBufObj.
Specifies the maximum number of NvSciBuf attribute keys.
Definition: nvscibuf.h:754
Indicates the channel count in the image plane.
Definition: nvscibuf.h:554
#define NVSCIBUF_EXPORT_DESC_SIZE
Indicates the size of export descriptor.
Definition: nvscibuf.h:189
Indicates the pitch of the image plane.
Definition: nvscibuf.h:571
NvSciError NvSciBufAttrListReconcile(NvSciBufAttrList inputArray[], size_t inputCount, NvSciBufAttrList *newReconciledAttrList, NvSciBufAttrList *newConflictList)
Reconciles the given unreconciled attribute list(s) into a new reconciled attribute list...
NvSciBufAttrValColorStd
Defines the image color standard for NvSciBuf.
Definition: nvscibuf.h:933
NvSciBufAttrValDataType
Defines various numeric datatypes for NvSciBuf.
Definition: nvscibuf.h:951
NvSciBuf allocates the total buffer size considering all levels in an image pyramid and returns an ar...
Definition: nvscibuf.h:731
Attribute providing pixel format of the tensor.
Definition: nvscibuf.h:649
Defines GPU ID structure.
Definition: nvscibuf.h:970
Specifies the access permissions that are provided.
Definition: nvscibuf.h:374
Specifies the buffer array capacity.
Definition: nvscibuf.h:689
Indicates the size of the image.
Definition: nvscibuf.h:457
Indicates the aligned height of the image plane.
Definition: nvscibuf.h:579
NVIDIA Software Communications Interface (SCI): Error Handling
void NvSciBufObjFree(NvSciBufObj bufObj)
Destroys the NvSciBuf object, which frees any memory allocated for it.
Specifies which access permissions are required.
Definition: nvscibuf.h:313
uint64_t NvSciIpcEndpoint
Handle to the IPC endpoint.
Definition: nvsciipc.h:62
Specifies the bottom padding for the image.
Definition: nvscibuf.h:425
void NvSciBufAttrListFreeDesc(void *descBuf)
Frees the NvSciBuf exported attribute list descriptor.
void NvSciBufAttrListAndObjFreeDesc(void *attrListAndObjDescBuf)
Frees the descriptor used for exporting/importing both attrlist and NvSciBuf Object together...
Specifies the VPR flag for the image.
Definition: nvscibuf.h:449
NvSciBufAttrValImageLayoutType
Defines the image layout type for NvSciBuf.
Definition: nvscibuf.h:784
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 ...
NvSciError NvSciBufAttrListAppendUnreconciled(const NvSciBufAttrList inputUnreconciledAttrListArray[], size_t inputUnreconciledAttrListCount, NvSciBufAttrList *newUnreconciledAttrList)
Append multiple unreconciled attribute lists together, forming a single new unreconciled attribute li...
Specifies the number of tensor dimensions.
Definition: nvscibuf.h:610
Indicates whether the CPU is required to flush before reads and after writes.
Definition: nvscibuf.h:360
Specifies the size of each tensor dimension.
Definition: nvscibuf.h:621
Indicates the offset of the start of the second field, 0 for progressive valid for interlaced...
Definition: nvscibuf.h:563
Indicates the base alignment of a buffer array.
Definition: nvscibuf.h:705
Specifies a set of plane color standards.
Definition: nvscibuf.h:489
Specifies the data type of a buffer array.
Definition: nvscibuf.h:672
static const uint32_t NvSciBufMajorVersion
API Major version number.
Definition: nvscibuf.h:76
#define NV_SCI_BUF_TENSOR_ATTR_KEY_START
Macro to specify the start of Tensor Datatype keys.
Definition: nvscibuf.h:252
#define NV_SCI_BUF_IMAGE_ATTR_KEY_START
Indicates the start of Image Datatype keys.
Definition: nvscibuf.h:231
#define NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC
Indicates the attribute key is a public key type.
Definition: nvscibuf.h:206
size_t NvSciBufAttrListGetSlotCount(NvSciBufAttrList attrList)
Returns the slot count per key in an attribute list.
Indicates the color format of the image plane.
Definition: nvscibuf.h:546
Indicates the starting offset of the image plane.
Definition: nvscibuf.h:538
struct NvSciBufObjRefRec * NvSciBufObj
Holds a pointer to NvSciBufObjRefRec.
Definition: nvscibuf.h:1015
Specifies the image plane width in pixels.
Definition: nvscibuf.h:505
Specifies the stride of each element in the buffer array.
Definition: nvscibuf.h:681
#define NV_SCI_BUF_ARRAY_ATTR_KEY_START
Indicates the start of NvSciBuf Array Datatype keys.
Definition: nvscibuf.h:245
#define NV_SCI_BUF_TENSOR_MAX_DIMS
Maximum number of dimensions supported by tensor datatype.
Definition: nvscibuf.h:174
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...
Indicates the image plane in bits per pixel.
Definition: nvscibuf.h:530
Specifies the alignment requirement of raw buffer.
Definition: nvscibuf.h:401
void NvSciBufAttrListFree(NvSciBufAttrList attrList)
Frees the memory of an attribute list.
Reserved for General keys.
Definition: nvscibuf.h:53
NvSciError NvSciBufAttrListSetAttrs(NvSciBufAttrList attrList, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount)
Sets the attribute values in the attribute list.
Specifies the layout: Block-linear or Pitch-linear.
Definition: nvscibuf.h:409
Specifies the tensor data type.
Definition: nvscibuf.h:602
Specifies the scaling factor by which each successive image in a pyramid must be scaled.
Definition: nvscibuf.h:722
Alignment attribute of pyramid.
Definition: nvscibuf.h:747
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...
Specifies the number of levels of images in a pyramid.
Definition: nvscibuf.h:713
Usage of Auto permissions is restricted only for export, ! import APIs and shouldn't be used to set v...
Definition: nvscibuf.h:777
NvSciError NvSciBufObjGetCpuPtr(NvSciBufObj bufObj, void **ptr)
Gets the CPU virtual address (VA) of the NvSciBufObj.
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 ...
NvSciBufAttrValImageScanType
Defines the image scan type for NvSciBuf.
Definition: nvscibuf.h:792
Specifies the size of the buffer to allocate.
Definition: nvscibuf.h:393
Specifies the right padding for the image.
Definition: nvscibuf.h:441
#define NV_SCI_BUF_PYRAMID_MAX_LEVELS
Maximum number of levels supported by pyramid datatype.
Definition: nvscibuf.h:184
NvSciError NvSciBufAttrListClone(NvSciBufAttrList origAttrList, NvSciBufAttrList *newAttrList)
Clones an unreconciled/reconciled attribute list.
NvSciError NvSciBufCheckVersionCompatibility(uint32_t majorVer, uint32_t minorVer, bool *isCompatible)
API to check if loaded library version is compatible with passed library build version.
struct NvSciBufAttrListRec * NvSciBufAttrList
Holds a pointer to NvSciBufAttrListRec.
Definition: nvscibuf.h:1024
NVIDIA Software Communications Interface (SCI) : NvSci Inter-Process Communication ...
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 transport...
Specifies the image scan type: Progressive or Interlaced.
Definition: nvscibuf.h:521
#define NV_SCI_BUF_PYRAMID_ATTR_KEY_START
Indicates the start of ImagePyramid Datatype keys.
Definition: nvscibuf.h:238
#define NV_SCI_BUF_IMAGE_MAX_PLANES
Maximum number of planes supported by image datatype.
Definition: nvscibuf.h:179
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 transport...
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...
NvSciError NvSciBufObjDupWithReducePerm(NvSciBufObj bufObj, NvSciBufAttrValAccessPerm reducedPerm, NvSciBufObj *newBufObj)
Creates a Duplicate NvSciBufObj with reduced access permissions.
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.
NvSciError NvSciBufObjAlloc(NvSciBufAttrList reconciledAttrList, NvSciBufObj *bufObj)
Allocates an NvSciBuf object that meets all the constraints in the specified reconciled attribute lis...
struct NvSciBufModuleRec * NvSciBufModule
Holds a pointer to NvSciBufModuleRec.
Definition: nvscibuf.h:994
NvSciBufAttrKey
Describes the public attribute keys.
Definition: nvscibuf.h:271
enum NvSciErrorRec NvSciError
Return/error codes for all NvSci functions.
#define NV_SCI_BUF_DATATYPE_BIT_COUNT
Indicates number of bits used for defining datatype of a key.
Definition: nvscibuf.h:201
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 gi...
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.
Specifies the number of image planes.
Definition: nvscibuf.h:473
Specifies the left padding for the image.
Definition: nvscibuf.h:433
NvSciBufAttrValColorFmt
Defines the image color formats for NvSciBuf.
Definition: nvscibuf.h:800
GPU ID of dGPU from which vidmem allocation should come when multiple GPUs are sharing buffer and all...
Definition: nvscibuf.h:385
GpuIDs of the GPUs in the system that will access the buffer.
Definition: nvscibuf.h:350
NvSciBufType
Enum definitions of NvSciBuf Buffer datatype.
Definition: nvscibuf.h:50
NvSciBuf allocates the total buffer size considering all levels in an image pyramid and returns an ar...
Definition: nvscibuf.h:740
#define NV_SCI_BUF_GENERAL_ATTR_KEY_START
Indicates starting value of General attribute keys.
Definition: nvscibuf.h:217
NvSciError NvSciBufObjIpcExport(NvSciBufObj bufObj, NvSciBufAttrValAccessPerm accPerm, NvSciIpcEndpoint ipcEndpoint, NvSciBufObjIpcExportDescriptor *exportData)
Exports a NvSciBuf object into an NvSciIpc-transferable object binary descriptor. ...
Specifies the alignment constraints per tensor dimension.
Definition: nvscibuf.h:629
Attribute to specify number of images for which buffer should be allocated Type: Input attribute Data...
Definition: nvscibuf.h:594
NvSciError NvSciBufModuleOpen(NvSciBufModule *newModule)
Initializes an instance of the NvSciBuf module within the calling process and provides an NvSciBufMod...
#define NV_SCI_BUF_ATTRKEY_BIT_COUNT
Indicates number of bits used for defining an attribute key.
Definition: nvscibuf.h:195
Specifies the color format of the image plane.
Definition: nvscibuf.h:481
void NvSciBufModuleClose(NvSciBufModule module)
Releases an instance of the NvSciBuf module obtained through an earlier call to NvSciBufModuleOpen()...
Specifies the image plane base address alignment.
Definition: nvscibuf.h:497
#define NV_SCI_BUF_KEYTYPE_BIT_START
Global constant to specify the start-bit of attribute Keytype.
Definition: nvscibuf.h:211
Specifies whether to enable/disable CPU caching.
Definition: nvscibuf.h:338
Specifies if CPU access is required.
Definition: nvscibuf.h:299
Indicates the alignment for the image.
Definition: nvscibuf.h:465
Indicates the aligned size of the image plane.
Definition: nvscibuf.h:587
An array of all types that the buffer is expected to have.
Definition: nvscibuf.h:289
Specifies the image plane height in pixels.
Definition: nvscibuf.h:513
NvSciError NvSciBufAttrListIsReconciled(NvSciBufAttrList attrList, bool *isReconciled)
Checks if an attribute list is reconciled.
NvSciBufAttrValAccessPerm
Defines access permissions for NvSciBuf.
Definition: nvscibuf.h:770
NvSciBufAttrKey key
Definition: nvscibuf.h:1003
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...
#define NV_SCI_BUF_RAW_BUF_ATTR_KEY_START
Indicates the start of Raw-buffer Datatype keys.
Definition: nvscibuf.h:224
Defines a key/value pair of attribute to be set.
Definition: nvscibuf.h:1002
NvSciError NvSciBufObjGetAttrList(NvSciBufObj bufObj, NvSciBufAttrList *bufAttrList)
Retrieves the attribute list from an NvSciBuf object.
static const uint32_t NvSciBufMinorVersion
API Minor version number.
Definition: nvscibuf.h:81
Attribute providing base address alignment requirements for tensor.
Definition: nvscibuf.h:656
Specifies the top padding for the image.
Definition: nvscibuf.h:417
Indicates the total size of a buffer array.
Definition: nvscibuf.h:697
Specifies the lower bound value to check for a valid NvSciBuf attribute key type. ...
Definition: nvscibuf.h:276
Returns the stride value (in bytes) for each tensor dimension.
Definition: nvscibuf.h:640
NvSciError NvSciBufObjDup(NvSciBufObj bufObj, NvSciBufObj *dupObj)
Clones a NvSciBuf object.
Size of buffer allocated for 'N' tensors.
Definition: nvscibuf.h:664