NVIDIA DRIVE OS Linux API Reference

5.1.6.1 Release
For Test and Development only

 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 = 1U;
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 
286 
296 
310 
335 
347 
357 
371 
379 
387 
395 
403 
411 
419 
427 
435 
443 
451 
459 
467 
475 
483 
491 
499 
508 
516 
524 
532 
540 
549 
557 
565 
573 
581 
589 
600 
608 
619 
627 
636 
644 
652 
660 
668 
677 
686 
695 
702 
704 
717 typedef enum {
722 
726 typedef enum {
730 
734 typedef enum {
738 
742 typedef enum {
744  /* RAW PACKED */
786 
787  /* Semiplanar formats */
798 
799  /* PLANAR formats */
812 
813  /* Packed YUV formats */
820 
821  /* RGBA PACKED */
836 
839 
843 typedef enum {
857 
861 typedef enum {
876 
877 
898 typedef struct NvSciBufModuleRec* NvSciBufModule;
899 
906 typedef struct {
908  const void* value;
909  size_t len;
911 
919 typedef struct NvSciBufObjRefRec* NvSciBufObj;
920 
928 typedef struct NvSciBufAttrListRec* NvSciBufAttrList;
929 
933 typedef struct {
935 } __attribute__((packed)) NvSciBufObjIpcExportDescriptor;
936 
960 NvSciError NvSciBufAttrListCreate(NvSciBufModule module,
961  NvSciBufAttrList* newAttrList);
962 
970 void NvSciBufAttrListFree(NvSciBufAttrList attrList);
971 
986 NvSciError NvSciBufAttrListSetAttrs(NvSciBufAttrList attrList,
987  NvSciBufAttrKeyValuePair* pairArray, size_t pairCount);
988 
998 size_t NvSciBufAttrListGetSlotCount(NvSciBufAttrList attrList);
999 
1018 NvSciError NvSciBufAttrListGetAttrs(NvSciBufAttrList attrList,
1019  NvSciBufAttrKeyValuePair* pairArray, size_t pairCount);
1020 
1046 NvSciError NvSciBufAttrListSlotGetAttrs(NvSciBufAttrList attrList,
1047  size_t slotIndex, NvSciBufAttrKeyValuePair* pairArray, size_t pairCount);
1048 
1061 NvSciError NvSciBufAttrListDebugDump(NvSciBufAttrList attrList, void** buf,
1062  size_t* len);
1063 
1090 NvSciError NvSciBufAttrListReconcile(NvSciBufAttrList inputArray[],
1091  size_t inputCount, NvSciBufAttrList* newReconciledAttrList,
1092  NvSciBufAttrList* newConflictList);
1093 
1109 NvSciError NvSciBufAttrListClone(NvSciBufAttrList origAttrList,
1110  NvSciBufAttrList* newAttrList);
1111 
1131  const NvSciBufAttrList inputUnreconciledAttrListArray[],
1132  size_t inputUnreconciledAttrListCount,
1133  NvSciBufAttrList* newUnreconciledAttrList);
1134 
1147 NvSciError NvSciBufAttrListIsReconciled(NvSciBufAttrList attrList,
1148  bool* isReconciled);
1149 
1169  NvSciBufAttrList reconciledAttrList,
1170  const NvSciBufAttrList unreconciledAttrListArray[],
1171  size_t unreconciledAttrListCount, bool* isReconcileListValid);
1172 
1194 NvSciError NvSciBufObjDup(NvSciBufObj bufObj, NvSciBufObj* dupObj);
1195 
1218  NvSciBufAttrList attrListArray[], size_t attrListCount,
1219  NvSciBufObj* bufObj, NvSciBufAttrList* newConflictList);
1220 
1228 void NvSciBufObjFree(NvSciBufObj bufObj);
1229 
1248 NvSciError NvSciBufObjGetAttrList(NvSciBufObj bufObj,
1249  NvSciBufAttrList* bufAttrList);
1250 
1262 NvSciError NvSciBufObjGetCpuPtr(NvSciBufObj bufObj, void** ptr);
1263 
1276 NvSciError NvSciBufObjGetConstCpuPtr(NvSciBufObj bufObj, const void** ptr);
1277 
1290 NvSciError NvSciBufObjFlushCpuCacheRange(NvSciBufObj bufObj,
1291  uint64_t offset, uint64_t len);
1292 
1308 NvSciError NvSciBufObjAlloc(NvSciBufAttrList reconciledAttrList,
1309  NvSciBufObj* bufObj);
1340 NvSciError NvSciBufIpcExportAttrListAndObj(NvSciBufObj bufObj,
1341  NvSciBufAttrValAccessPerm permissions, NvSciIpcEndpoint ipcEndpoint,
1342  void** attrListAndObjDesc, size_t* attrListAndObjDescSize);
1343 
1369 NvSciError NvSciBufIpcImportAttrListAndObj(NvSciBufModule module,
1370  NvSciIpcEndpoint ipcEndpoint, const void* attrListAndObjDesc,
1371  size_t attrListAndObjDescSize, const NvSciBufAttrList attrList[],
1372  size_t count, NvSciBufAttrValAccessPerm minPermissions,
1373  int64_t timeoutUs, NvSciBufObj* bufObj);
1374 
1382 void NvSciiBufAttrListAndObjFreeDesc(void* attrListAndObjDescBuf);
1383 
1402 NvSciError NvSciBufObjIpcExport(NvSciBufObj bufObj,
1403  NvSciBufAttrValAccessPerm accPerm, NvSciIpcEndpoint ipcEndPoint,
1404  NvSciBufObjIpcExportDescriptor* exportData);
1405 
1431  const NvSciBufObjIpcExportDescriptor* desc,
1432  NvSciBufAttrList reconciledAttrList,
1433  NvSciBufAttrValAccessPerm minPermissions, int64_t timeoutUs,
1434  NvSciBufObj* bufObj);
1435 
1459  NvSciBufAttrList unreconciledAttrListArray[],
1460  size_t unreconciledAttrListCount, NvSciIpcEndpoint ipcEndpoint,
1461  void** descBuf, size_t* descLen);
1462 
1484  NvSciBufAttrList reconciledAttrList, NvSciIpcEndpoint ipcEndpoint,
1485  void** descBuf, size_t* descLen);
1486 
1515  NvSciIpcEndpoint ipcEndpoint, const void* descBuf, size_t descLen,
1516  NvSciBufAttrList* importedUnreconciledAttrList);
1517 
1549 NvSciError NvSciBufAttrListIpcImportReconciled(NvSciBufModule module,
1550  NvSciIpcEndpoint ipcEndpoint, const void* descBuf, size_t descLen,
1551  NvSciBufAttrList inputUnreconciledAttrListArray[],
1552  size_t inputUnreconciledAttrListCount,
1553  NvSciBufAttrList* importedReconciledAttrList);
1554 
1555 
1563 void NvSciBufAttrListFreeDesc(void* descBuf);
1564 
1587 NvSciError NvSciBufModuleOpen(NvSciBufModule* newModule);
1588 
1602 void NvSciBufModuleClose(NvSciBufModule module);
1603 
1610 #if defined(__cplusplus)
1611 }
1612 #endif // __cplusplus
1613 
1614 #endif /* INCLUDED_NVSCIBUF_H */
Defines the export data (blob) for NvSciBufObj.
Definition: nvscibuf.h:933
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:701
Indicates the channel count in the image plane.
Definition: nvscibuf.h:539
#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:556
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:843
NvSciBufAttrValDataType
Defines various numeric datatypes for NvSciBuf.
Definition: nvscibuf.h:861
NvSciBuf allocates the total buffer size considering all levels in an image pyramid and returns an ar...
Definition: nvscibuf.h:685
Specifies the access permissions that are provided.
Definition: nvscibuf.h:370
Specifies the buffer array capacity.
Definition: nvscibuf.h:643
Indicates the size of the image.
Definition: nvscibuf.h:442
Indicates the aligned height of the image plane.
Definition: nvscibuf.h:564
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:309
uint64_t NvSciIpcEndpoint
Handle to the IPC endpoint.
Definition: nvsciipc.h:67
Specifies the bottom padding for the image.
Definition: nvscibuf.h:410
void NvSciBufAttrListFreeDesc(void *descBuf)
Frees the NvSciBuf exported attribute list descriptor.
Specifies the VPR flag for the image.
Definition: nvscibuf.h:434
NvSciBufAttrValImageLayoutType
Defines the image layout type for NvSciBuf.
Definition: nvscibuf.h:726
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:588
Indicates whether the CPU is required to flush before reads and after writes.
Definition: nvscibuf.h:356
Specifies the size of each tensor dimension.
Definition: nvscibuf.h:599
Indicates the offset of the start of the second field, 0 for progressive valid for interlaced...
Definition: nvscibuf.h:548
Indicates the base alignment of a buffer array.
Definition: nvscibuf.h:659
Specifies a set of plane color standards.
Definition: nvscibuf.h:474
Specifies the data type of a buffer array.
Definition: nvscibuf.h:626
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
NvSciError NvSciBufObjIpcExport(NvSciBufObj bufObj, NvSciBufAttrValAccessPerm accPerm, NvSciIpcEndpoint ipcEndPoint, NvSciBufObjIpcExportDescriptor *exportData)
Exports a NvSciBuf object into an NvSciIpc-transferable object binary descriptor. ...
#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:531
Indicates the starting offset of the image plane.
Definition: nvscibuf.h:523
struct NvSciBufObjRefRec * NvSciBufObj
Holds a pointer to NvSciBufObjRefRec.
Definition: nvscibuf.h:919
Specifies the image plane width in pixels.
Definition: nvscibuf.h:490
Specifies the stride of each element in the buffer array.
Definition: nvscibuf.h:635
#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:515
Specifies the alignment requirement of raw buffer.
Definition: nvscibuf.h:386
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:394
Specifies the tensor data type.
Definition: nvscibuf.h:580
Specifies the scaling factor by which each successive image in a pyramid must be scaled.
Definition: nvscibuf.h:676
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:667
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:734
Specifies the size of the buffer to allocate.
Definition: nvscibuf.h:378
Specifies the right padding for the image.
Definition: nvscibuf.h:426
#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.
struct NvSciBufAttrListRec * NvSciBufAttrList
Holds a pointer to NvSciBufAttrListRec.
Definition: nvscibuf.h:928
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:506
#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 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:898
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:458
Specifies the left padding for the image.
Definition: nvscibuf.h:418
NvSciBufAttrValColorFmt
Defines the image color formats for NvSciBuf.
Definition: nvscibuf.h:742
GpuIDs of the GPUs in the system that will access the buffer.
Definition: nvscibuf.h:346
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:694
#define NV_SCI_BUF_GENERAL_ATTR_KEY_START
Indicates starting value of General attribute keys.
Definition: nvscibuf.h:217
Specifies the alignment constraints per tensor dimension.
Definition: nvscibuf.h:607
NvSciError NvSciBufModuleOpen(NvSciBufModule *newModule)
Initializes an instance of the NvSciBuf module within the calling process and provides an NvSciBufMod...
void NvSciiBufAttrListAndObjFreeDesc(void *attrListAndObjDescBuf)
Frees the descriptor used for exporting/importing both attrlist and NvSciBuf Object together...
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_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:466
void NvSciBufModuleClose(NvSciBufModule module)
Releases an instance of the NvSciBuf module obtained through an earlier call to NvSciBufModuleOpen()...
const void * value
Definition: nvscibuf.h:908
Specifies the image plane base address alignment.
Definition: nvscibuf.h:482
#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:334
Specifies if CPU access is required.
Definition: nvscibuf.h:295
Indicates the alignment for the image.
Definition: nvscibuf.h:450
Indicates the aligned size of the image plane.
Definition: nvscibuf.h:572
Specifies the buffer type that the attribute list is expected to have.
Definition: nvscibuf.h:285
Specifies the image plane height in pixels.
Definition: nvscibuf.h:498
NvSciError NvSciBufAttrListIsReconciled(NvSciBufAttrList attrList, bool *isReconciled)
Checks if an attribute list is reconciled.
NvSciBufAttrValAccessPerm
Defines access permissions for NvSciBuf.
Definition: nvscibuf.h:717
NvSciBufAttrKey key
Definition: nvscibuf.h:907
#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:906
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
Specifies the top padding for the image.
Definition: nvscibuf.h:402
Indicates the total size of a buffer array.
Definition: nvscibuf.h:651
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:618
NvSciError NvSciBufObjDup(NvSciBufObj bufObj, NvSciBufObj *dupObj)
Clones a NvSciBuf object.