NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
nvscibuf.h
Go to the documentation of this file.
1 /*
2  * Header file for NvSciBuf APIs
3  *
4  * SPDX-FileCopyrightText: Copyright (c) 2018-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
5  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
6  *
7  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
8  * property and proprietary rights in and to this material, related
9  * documentation and any modifications thereto. Any use, reproduction,
10  * disclosure or distribution of this material and related documentation
11  * without an express license agreement from NVIDIA CORPORATION or
12  * its affiliates is strictly prohibited.
13  */
21 #ifndef INCLUDED_NVSCIBUF_H
22 #define INCLUDED_NVSCIBUF_H
23 
24 #include <stddef.h>
25 #include <stdbool.h>
26 #include <stdint.h>
27 #include "nvscierror.h"
28 #include "nvsciipc.h"
29 
30 #if defined(__cplusplus)
31 extern "C"
32 {
33 #endif
34 
35 #if defined __GNUC__
36  #define PACK_BUF( __Declaration__ ) __Declaration__ __attribute__((packed))
37 #else
38  #define PACK_BUF( __Declaration__ ) __pragma(pack(push, 1)) __Declaration__ __pragma(pack(pop))
39 #endif
40 
131 typedef enum {
143 } NvSciBufType;
144 
160 static const uint32_t NvSciBufMajorVersion = 2U;
161 
167 static const uint32_t NvSciBufMinorVersion = 11U;
168 
169 #if defined(__cplusplus)
170 
174 static const int NV_SCI_BUF_TENSOR_MAX_DIMS = 8;
175 
179 static const int NV_SCI_BUF_IMAGE_MAX_PLANES = 3;
180 
184 static const int NV_SCI_BUF_PYRAMID_MAX_LEVELS = 10;
185 
189 static const int NVSCIBUF_EXPORT_DESC_SIZE = 32;
190 
194 static const uint32_t NV_SCI_BUF_PEER_INFO_MAX_NUMBER = 128U;
195 
199 static const uint32_t NV_SCI_BUF_PEER_INFO_SELF_SOCID = 0xFFFFFFFFu;
200 
204 static const uint32_t NV_SCI_BUF_PEER_INFO_SELF_VMID = 0xFFFFFFFFu;
205 
209 static const int NV_SCI_BUF_PEER_HW_ENGINE_MAX_NUMBER = 128U;
210 
215 static const uint32_t NV_SCI_BUF_MAX_GPUS = 16u;
216 
221 static const int NV_SCI_BUF_ATTRKEY_BIT_COUNT = 16;
222 
227 static const int NV_SCI_BUF_DATATYPE_BIT_COUNT = 10;
228 
232 static const int NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC = 0;
233 
234 /*
235  * @brief Global constant to specify the start-bit of attribute Keytype.
236  */
237 static const int NV_SCI_BUF_KEYTYPE_BIT_START =
239 
243 static const int NV_SCI_BUF_GENERAL_ATTR_KEY_START =
246 
250 static const int NV_SCI_BUF_RAW_BUF_ATTR_KEY_START =
253 
257 static const int NV_SCI_BUF_IMAGE_ATTR_KEY_START =
260 
264 static const int NV_SCI_BUF_PYRAMID_ATTR_KEY_START =
267 
271 static const int NV_SCI_BUF_ARRAY_ATTR_KEY_START =
274 
278 static const int NV_SCI_BUF_TENSOR_ATTR_KEY_START =
281 
282 #else
283 
289 #define NV_SCI_BUF_TENSOR_MAX_DIMS 8u
290 
296 #define NV_SCI_BUF_IMAGE_MAX_PLANES 3u
297 
301 #define NV_SCI_BUF_PYRAMID_MAX_LEVELS 10u
302 
306 #define NVSCIBUF_EXPORT_DESC_SIZE 32u
307 
311 #define NV_SCI_BUF_PEER_INFO_MAX_NUMBER 128u
312 
316 #define NV_SCI_BUF_PEER_INFO_SELF_SOCID 0xFFFFFFFFu
317 
321 #define NV_SCI_BUF_PEER_INFO_SELF_VMID 0xFFFFFFFFu
322 
327 #define NV_SCI_BUF_PEER_HW_ENGINE_MAX_NUMBER 128U
328 
333 #define NV_SCI_BUF_MAX_GPUS 16
334 
340 #define NV_SCI_BUF_ATTRKEY_BIT_COUNT 16u
341 
347 #define NV_SCI_BUF_DATATYPE_BIT_COUNT 10u
348 
352 #define NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC 0u
353 
357 #define NV_SCI_BUF_KEYTYPE_BIT_START \
358  (NV_SCI_BUF_DATATYPE_BIT_COUNT + NV_SCI_BUF_ATTRKEY_BIT_COUNT)
359 
363 #define NV_SCI_BUF_GENERAL_ATTR_KEY_START \
364  ((NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
365  (NvSciBufType_General << NV_SCI_BUF_ATTRKEY_BIT_COUNT))
366 
370 #define NV_SCI_BUF_RAW_BUF_ATTR_KEY_START \
371  ((NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
372  (NvSciBufType_RawBuffer << NV_SCI_BUF_ATTRKEY_BIT_COUNT))
373 
377 #define NV_SCI_BUF_IMAGE_ATTR_KEY_START \
378  ((NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
379  (NvSciBufType_Image << NV_SCI_BUF_ATTRKEY_BIT_COUNT))
380 
384 #define NV_SCI_BUF_PYRAMID_ATTR_KEY_START \
385  ((NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
386  (NvSciBufType_Pyramid << NV_SCI_BUF_ATTRKEY_BIT_COUNT))
387 
391 #define NV_SCI_BUF_ARRAY_ATTR_KEY_START \
392  ((NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
393  (NvSciBufType_Array << NV_SCI_BUF_ATTRKEY_BIT_COUNT))
394 
398 #define NV_SCI_BUF_TENSOR_ATTR_KEY_START \
399  ((NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC << NV_SCI_BUF_KEYTYPE_BIT_START) | \
400  (NvSciBufType_Tensor << NV_SCI_BUF_ATTRKEY_BIT_COUNT))
401 
402 #endif
403 
444 typedef enum {
450 
483 
514 
533 
568 
598 
620 
659 
679 
719 
746 
812 
846 
873 
900 
929 
957 
986 
1015 
1044 
1073 
1096 
1122 
1145 
1173 
1198 
1225 
1263 
1287 
1311 
1341 
1361 
1381 
1401 
1419 
1439 
1470 
1504 
1539 
1571 
1603 
1635 
1669 
1701 
1733 
1766 
1799 
1834 
1858 
1886 
1923 
1956 
1978 
2013 
2045 
2067 
2094 
2122 
2147 
2176 
2198 
2225 
2253 
2277 
2305 
2328 
2335 
2336 } NvSciBufAttrKey;
2337 
2352 typedef enum {
2361 
2367 typedef enum {
2378 
2384 typedef enum {
2388 
2429 typedef enum {
2431  /* RAW PACKED */
2432  /* Bit ordering for little endian machine is as follows
2433  * for NvSciColor_X12Bayer20GBRG
2434  * pattern BBBBBBBB BBBBBBBB BBBB**** ******** GGGGGGGG GGGGGGGG GGGG**** ********
2435  * +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
2436  * bit 63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
2437  * +---------------------------------+ +---------------------------------+
2438  * pixel 1 0
2439  * +---------------------------------------------------------------------+
2440  * pitch 0
2441  *
2442  * pattern GGGGGGGG GGGGGGGG GGGG**** ******** RRRRRRRR RRRRRRRR RRRR**** ********
2443  * +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
2444  * bit 63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
2445  * +---------------------------------+ +---------------------------------+
2446  * pixel 1 0
2447  * +---------------------------------------------------------------------+
2448  * pitch 1
2449  *
2450  * '*' means undefined bit value
2451  */
2524  /*
2525  * Note: This is currently not supported, and setting this attribute key
2526  * will fail.
2527  */
2529 
2530  /* Semiplanar formats */
2531  /* Bit ordering for little endian machine is as follows
2532  * for NvSciColor_V8U8
2533  * pattern VVVVVVVV UUUUUUUU
2534  * +------+ +------+
2535  * bit 15 8 7 0
2536  * +---------------+
2537  * pixel 0
2538  *
2539  * for NvSciColor_U8_V8
2540  * pattern VVVVVVVV UUUUUUUU
2541  * +------+ +------+
2542  * bit 15 8 7 0
2543  * +---------------+
2544  * pixel 0
2545  *
2546  * for NvSciColor_V10U10
2547  * pattern VVVVVVVV VV****** UUUUUUUU UU******
2548  * +------+ +------+ +------+ +------+
2549  * bit 31 24 23 16 15 8 7 0
2550  * +---------------------------------+
2551  * pixel 0
2552  *
2553  * '*' means undefined bit value
2554  */
2573 
2574  /* PLANAR formats */
2575  /* Bit ordering for little endian machine is as follows
2576  * for NvSciColor_Y12
2577  * pattern YYYYYYYY YYYY****
2578  * +------+ +------+
2579  * bit 15 8 7 0
2580  * +---------------+
2581  * pixel 0
2582  * '*' means undefined bit value
2583  */
2596 
2597  /* Packed YUV formats */
2598  /* NvSciColor_Y8U8Y8V8, NvSciColor_Y8V8Y8U8, NvSciColor_U8Y8V8Y8, NvSciColor_V8Y8U8Y8 follow
2599  * different component order than generic word representation.
2600  *
2601  * Bit ordering for little endian machine is as follows
2602  * for NvSciColor_U8Y8V8Y8
2603  * pattern YYYYYYYY VVVVVVVV YYYYYYYY UUUUUUUU
2604  * +------+ +------+ +------+ +------+
2605  * bit 31 24 23 16 15 8 7 0
2606  * +---------------------------------+
2607  * pixel 0
2608  *
2609  * for NvSciColor_A16Y16U16V16
2610  * pattern AAAAAAAAAAAAAAAA YYYYYYYYYYYYYYYY UUUUUUUUUUUUUUUU VVVVVVVVVVVVVVVV
2611  * +--------------+ +--------------+ +--------------+ +--------------+
2612  * bit 63 48 47 32 31 16 15 0
2613  * +-----------------------------------------------------------------+
2614  * pixel 0
2615  *
2616  */
2623 
2624  /* RGBA PACKED */
2625  /* Bit ordering for little endian machine is as follows
2626  * for NvSciColor_A2R10G10B10
2627  * pattern AARRRRRR RRRRGGGG GGGGGGBB BBBBBBBB
2628  * +------+ +------+ +------+ +------+
2629  * bit 31 24 23 16 15 8 7 0
2630  * +---------------------------------+
2631  * pixel 0
2632  *
2633  */
2649 
2650  /* 10-bit 4x4 RGB-IR Bayer formats */
2651  /* Bit ordering for little endian machine is as follows
2652  * for NvSciColor_X6Bayer10BGGI_RGGI
2653  * pattern GGGGGGGG GG****** RRRRRRRR RR****** GGGGGGGG GG****** BBBBBBBB BB******
2654  * +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
2655  * bit 63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
2656  * +---------------+ +---------------+ +---------------+ +---------------+
2657  * pixel 3 2 1 0
2658  * +---------------------------------------------------------------------+
2659  * pitch 0
2660  *
2661  * pattern IIIIIIII II****** GGGGGGGG GG****** IIIIIIII II****** GGGGGGGG GG******
2662  * +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
2663  * bit 63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
2664  * +---------------+ +---------------+ +---------------+ +---------------+
2665  * pixel 3 2 1 0
2666  * +---------------------------------------------------------------------+
2667  * pitch 1
2668  *
2669  * pattern GGGGGGGG GG****** BBBBBBBB BB****** GGGGGGGG GG****** RRRRRRRR RR******
2670  * +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
2671  * bit 63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
2672  * +---------------+ +---------------+ +---------------+ +---------------+
2673  * pixel 3 2 1 0
2674  * +---------------------------------------------------------------------+
2675  * pitch 2
2676  *
2677  * pattern IIIIIIII II****** GGGGGGGG GG****** IIIIIIII II****** GGGGGGGG GG******
2678  * +------+ +------+ +------+ +------+ +------+ +------+ +------+ +------+
2679  * bit 63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
2680  * +---------------+ +---------------+ +---------------+ +---------------+
2681  * pixel 3 2 1 0
2682  * +---------------------------------------------------------------------+
2683  * pitch 3
2684  *
2685  * '*' means undefined bit value
2686  */
2695 
2696  /* 12-bit 4x4 RGB-IR Bayer formats */
2705 
2706  /* 14-bit 4x4 RGB-IR Bayer formats */
2715 
2716  /* 16-bit 4x4 RGB-IR Bayer formats */
2725 
2726  /* Right-justified Bayer RAW format */
2727  /* Bit ordering for little endian machine is as follows
2728  * for NvSciColor_X4Bayer12RGGB_RJ
2729  * pattern ****GGGG GGGGGGGG ****RRRR RRRRRRRR
2730  * +------+ +------+ +------+ +------+
2731  * bit 31 24 23 16 15 8 7 0
2732  * +---------------+ +---------------+
2733  * pixel 1 0
2734  * +---------------------------------+
2735  * pitch 0
2736  *
2737  * pattern ****BBBB BBBBBBBB ****GGGG GGGGGGGG
2738  * +------+ +------+ +------+ +------+
2739  * bit 31 24 23 16 15 8 7 0
2740  * +---------------+ +---------------+
2741  * pixel 1 0
2742  * +---------------------------------+
2743  * pitch 1
2744  *
2745  * '*' means undefined bit value
2746  */
2748 
2749  /* RGB PLANAR */
2753 
2756 
3175 typedef enum {
3189 
3195 typedef enum {
3214 
3220 typedef enum {
3237 
3243 typedef enum {
3256 
3262 typedef enum {
3281 } NvSciBufSurfBPC;
3282 
3288 typedef enum {
3297 
3303 typedef enum {
3318 
3322 typedef enum {
3334 
3346 
3353 typedef struct {
3356  uint8_t bytes[16];
3357 } NvSciRmGpuId;
3358 
3364 typedef struct {
3369 
3376 
3380 typedef struct {
3385 
3391 
3398 typedef struct {
3400  uint64_t x0;
3402  uint64_t y0;
3404  uint64_t x1;
3406  uint64_t y1;
3407 } NvSciBufRect;
3408 
3414 typedef enum {
3432 
3437 typedef enum {
3449 
3454 PACK_BUF(typedef struct {
3457  NvSciBufHwEngName engName;
3460  NvSciBufPlatformName platName;
3461 }) NvSciBufPeerHwEngine;
3462 
3484 typedef struct NvSciBufModuleRec* NvSciBufModule;
3485 
3496 typedef struct {
3501 
3504  const void* value;
3505 
3507  size_t len;
3509 
3525 typedef struct NvSciBufObjRefRec* NvSciBufObj;
3526 
3530 typedef const struct NvSciBufObjRefRec* NvSciBufObjConst;
3531 
3532 
3543 typedef struct NvSciBufAttrListRec* NvSciBufAttrList;
3544 
3560 PACK_BUF(typedef struct {
3562  uint64_t data[NVSCIBUF_EXPORT_DESC_SIZE];
3563 }) NvSciBufObjIpcExportDescriptor;
3564 
3571 PACK_BUF(typedef struct {
3573  uint32_t socID;
3575  uint32_t vmID;
3577  uint64_t reserved;
3578 }) NvSciBufPeerLocationInfo;
3579 
3601 #if (defined(NV_QNX))
3602 /*
3603  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
3604  */
3605 #endif
3606 /*
3607  * - NvSciError_BadParameter if any of the following occurs:
3608  * - @a module is NULL
3609  * - @a newAttrList is NULL
3610  * - NvSciError_InsufficientMemory if insufficient system memory to
3611  * create a NvSciBufAttrList.
3612  * - NvSciError_InvalidState if a new NvSciBufAttrList cannot be associated
3613  * with the given NvSciBufModule.
3614  * - NvSciError_ResourceError if system lacks resource other than memory.
3615  * - panics if @a module is invalid.
3616  *
3617  * @pre @id{NvSciBufAttrListCreate_Precond_001} @asil{QM}
3618  * Valid NvSciBufModule is obtained.
3619  *
3620  * @usage
3621  * - Allowed context for the API call
3622  * - Interrupt handler: No
3623  * - Signal handler: No
3624  * - Thread-safe: Yes
3625  * - Re-entrant: No
3626  * - Async/Sync: Sync
3627  * - Required privileges: None
3628  * - API group
3629  * - Init: Yes
3630  * - Runtime: No
3631  * - De-Init: No
3632  */
3634  NvSciBufModule module,
3635  NvSciBufAttrList* newAttrList);
3636 
3667  NvSciBufAttrList attrList);
3668 
3693 #if (defined(NV_QNX))
3694 /*
3695  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
3696  */
3697 #endif
3698 /*
3699  * - NvSciError_BadParameter if any of the following occurs:
3700  * - @a attrList is NULL
3701  * - @a attrList is reconciled
3702  * - @a attrList is an unreconciled NvSciBufAttrList obtained from
3703  * NvSciBufAttrListAppendUnreconciled or
3704  * NvSciBufAttrListIpcImportUnreconciled
3705  * - @a pairArray is NULL
3706  * - @a pairCount is 0
3707  * - any of the NvSciBufAttrKey(s) specified in the NvSciBufAttrKeyValuePair
3708  * array is output only
3709  * - any of the NvSciBufAttrKey(s) specified in the NvSciBufAttrKeyValuePair
3710  * array has already been set
3711  * - the NvSciBufGeneralAttrKey_Types key set (or currently being set) on
3712  * @a attrList does not contain the NvSciBufType of the datatype
3713  * NvSciBufAttrKey(s)
3714  * - any of the NvSciBufAttrKey(s) specified in the NvSciBufAttrKeyValuePair
3715  * array occurs more than once
3716  * - any of the NvSciBufAttrKey(s) specified in @a pairArray is not a
3717  * valid enumeration value defined by the NvSciBufAttrKey enum
3718  * - length(s) set for NvSciBufAttrKey(s) in @a pairArray are invalid
3719  * - value(s) set for NvSciBufAttrKey(s) in @a pairArray are invalid
3720  * - NvSciError_InsufficientMemory if not enough system memory.
3721  * - Panics if any of the following occurs:
3722  * - @a attrList is not valid
3723  *
3724  * @pre @id{NvSciBufAttrListSetAttrs_Precond_001} @asil{QM}
3725  * Valid unreconciled NvSciBufAttrList is obtained.
3726  * @post @id{NvSciBufAttrListSetAttrs_Postcond_001} @asil{QM}
3727  * pairArray values are copied to attrList. Set attributes are made
3728  * non-writeable in NvSciBufAttrList.
3729  *
3730  * @usage
3731  * - Allowed context for the API call
3732  * - Interrupt handler: No
3733  * - Signal handler: No
3734  * - Thread-safe: Yes
3735  * - Re-entrant: No
3736  * - Async/Sync: Sync
3737  * - Required privileges: None
3738  * - API group
3739  * - Init: Yes
3740  * - Runtime: No
3741  * - De-Init: No
3742  */
3744  NvSciBufAttrList attrList,
3745  NvSciBufAttrKeyValuePair* pairArray,
3746  size_t pairCount);
3747 
3775  NvSciBufAttrList attrList);
3776 
3829  NvSciBufAttrList attrList,
3830  NvSciBufAttrKeyValuePair* pairArray,
3831  size_t pairCount);
3832 
3896  NvSciBufAttrList attrList,
3897  size_t slotIndex,
3898  NvSciBufAttrKeyValuePair* pairArray,
3899  size_t pairCount);
3900 
3901 #if (NV_IS_SAFETY == 0)
3902 
3915 #if (defined(NV_QNX))
3916 /*
3917  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
3918  */
3919 #endif
3920 /*
3921  * - NvSciError_BadParameter if @a attrList is invalid.
3922  *
3923  * @note This API is deprecated and will be removed in a future version. This
3924  * prototype is only provided to not break compiliation of older code. Its use
3925  * is not supported. Do not rely on using this API.
3926  *
3927  * @pre
3928  * - Valid unreconciled NvSciBufAttrList is obtained.
3929  *
3930  * @usage
3931  * - Allowed context for the API call
3932  * - Interrupt handler: No
3933  * - Signal handler: No
3934  * - Thread-safe: Yes
3935  * - Re-entrant: No
3936  * - Async/Sync: Sync
3937  * - Required privileges: None
3938  * - API group
3939  * - Init: Yes
3940  * - Runtime: No
3941  * - De-Init: No
3942  *
3943  * @endif
3944  */
3946 NvSciError NvSciBufAttrListDebugDump(
3947  NvSciBufAttrList attrList,
3948  void** buf,
3949  size_t* len);
3951 #endif
3952 
3967 #if (NV_IS_SAFETY == 0)
3968 
3973 #else
3974 
3977 #endif
3978 
3983 #if (defined(NV_QNX))
3984 /*
3985  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
3986  */
3987 #endif
3988 /*
3989  * - NvSciError_BadParameter if any of the following occurs:
3990  * - @a inputArray[] is NULL
3991  * - @a inputCount is 0
3992  * -conciliation is
3993  * unset
3994  * - an attribute key is set to an unsupported value considering the data
3995  * type(s) of the NvSciBufAttrList(s) involved in reconciliation
3996  */
3997 #if (NV_IS_SAFETY == 0)
3998 
4000 #endif
4001 
4035  const NvSciBufAttrList inputArray[],
4036  size_t inputCount,
4037  NvSciBufAttrList* newReconciledAttrList,
4038  NvSciBufAttrList* newConflictList);
4039 
4054 #if (defined(NV_QNX))
4055 /*
4056  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
4057  */
4058 #endif
4059 /*
4060  * - NvSciError_BadParameter if any of the following occurs:
4061  * - @a origAttrList is NULL
4062  * - @a newAttrList is NULL
4063  * - the NvSciBufGeneralAttrKey_Types key is not set on @a origAttrList
4064  * - NvSciError_InsufficientMemory if there is insufficient system memory
4065  * to create a new NvSciBufAttrList.
4066  * - NvSciError_InvalidState if a new NvSciBufAttrList cannot be associated
4067  * with the NvSciBufModule of @a origAttrList to create the new
4068  * NvSciBufAttrList.
4069  * - NvSciError_ResourceError if system lacks resource other than memory.
4070  * - panics if @a origAttrList is invalid
4071  *
4072  * @pre @id{NvSciBufAttrListClone_PreCond_001} @asil{QM}
4073  * Valid NvSciBufAttrList is obtained.
4074  * @post @id{NvSciBufAttrListClone_PostCond_001}
4075  * If the original NvSciBufAttrList is unreconciled, then modification will be
4076  * allowed on the cloned NvSciBufAttrList using set attributes APIs even if the
4077  * attributes had been set in the original NvSciBufAttrList, but the calls to
4078  * set attributes in either NvSciBufAttrList will not affect the other.
4079  *
4080  * @usage
4081  * - Allowed context for the API call
4082  * - Interrupt handler: No
4083  * - Signal handler: No
4084  * - Thread-safe: Yes
4085  * - Re-entrant: No
4086  * - Async/Sync: Sync
4087  * - Required privileges: None
4088  * - API group
4089  * - Init: Yes
4090  * - Runtime: No
4091  * - De-Init: No
4092  */
4094  NvSciBufAttrList origAttrList,
4095  NvSciBufAttrList* newAttrList);
4096 
4117 #if (defined(NV_QNX))
4118 /*
4119  * - NvSciError_InvalidState if the Init Mode API is called in Runtime Mode.
4120  */
4121 #endif
4122 /*
4123  * - NvSciError_BadParameter if any of the following occurs:
4124  * - @a inputUnreconciledAttrListArray is NULL
4125  * - @a inputUnreconciledAttrListCount is 0
4126  * - @a newUnreconciledAttrList is NULL
4127  * - any of the NvSciBufAttrList(s) in @a inputUnreconciledAttrListArray
4128  * is reconciled
4129  * - not all the NvSciBufAttrLists in @a inputUnreconciledAttrListArray
4130  * are bound to the same NvSciBufModule instance.
4131  * - an NvSciBufAttrList appears multiple times in @a inputUnreconciledAttrListArray
4132  * - the NvSciBufGeneralAttrKey_Types key is not set on any of the
4133  * NvSciBufAttrList(s) in @a inputUnreconciledAttrListArray
4134  * - NvSciError_InsufficientMemory if memory allocation failed.
4135  * - NvSciError_InvalidState if a new NvSciBufAttrList cannot be associated
4136  * with the NvSciBufModule associated with the NvSciBufAttrList(s) in the
4137  * given @a inputUnreconciledAttrListArray to create the new NvSciBufAttrList.
4138  * - NvSciError_ResourceError if system lacks resource other than memory.
4139  * - panics if @a any NvSciBufAttrList in the @a
4140  * inputUnreconciledAttrListArray is invalid
4141  *
4142  * @pre @id{NvSciBufAttrListAppendUnreconciled_PreCond_001} @asil{QM}
4143  * Valid unreconciled NvSciBufAttrList(s) are obtained.
4144  * @post @id{NvSciBufAttrListAppendUnreconciled_PostCond_001}
4145  * Appended NvSciBufAttrList is read-only and the attribute values in the
4146  * list cannot be modified using set attribute APIs.
4147  *
4148  * @usage
4149  * - Allowed context for the API call
4150  * - Interrupt handler: No
4151  * - Signal handler: No
4152  * - Thread-safe: Yes
4153  * - Re-entrant: No
4154  * - Async/Sync: Sync
4155  * - Required privileges: None
4156  * - API group
4157  * - Init: Yes
4158  * - Runtime: No
4159  * - De-Init: No
4160  */
4162  const NvSciBufAttrList inputUnreconciledAttrListArray[],
4163  size_t inputUnreconciledAttrListCount,
4164  NvSciBufAttrList* newUnreconciledAttrList);
4165 
4176 #if (defined(NV_QNX))
4177 /*
4178  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
4179  */
4180 #endif
4181 /*
4182  * - NvSciError_BadParameter if any of the following occurs:
4183  * - @a attrList is NULL
4184  * - @a isReconciled is NULL
4185  * - panics if @a attrList is invalid
4186  *
4187  * @pre @id{NvSciBufAttrListIsReconciled_PreCond_001} @asil{QM}
4188  * Valid NvSciBufAttrList is obtained.
4189  *
4190  * @usage
4191  * - Allowed context for the API call
4192  * - Interrupt handler: No
4193  * - Signal handler: No
4194  * - Thread-safe: Yes
4195  * - Re-entrant: No
4196  * - Async/Sync: Sync
4197  * - Required privileges: None
4198  * - API group
4199  * - Init: Yes
4200  * - Runtime: No
4201  * - De-Init: No
4202  */
4204  NvSciBufAttrList attrList,
4205  bool* isReconciled);
4206 
4225 #if (defined(NV_QNX))
4226 /*
4227  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
4228  */
4229 #endif
4230 /*
4231  * - NvSciError_BadParameter if any of the following occurs:
4232  * - @a reconciledAttrList is NULL or
4233  * - @a unreconciledAttrListArray[] is NULL or
4234  * - @a unreconciledAttrListCount is zero or
4235  * - @a isReconcileListValid is NULL
4236  * - any of the NvSciBufAttrList in @a unreconciledAttrListArray is
4237  * reconciled.
4238  * - not all the NvSciBufAttrLists in @a unreconciledAttrListArray are
4239  * bound to the same NvSciBufModule.
4240  * - an NvSciBufAttrList appears multiple times in @a unreconciledAttrListArray
4241  * - NvSciError_ReconciliationFailed if validation of reconciled
4242  * NvSciBufAttrList failed against input unreconciled NvSciBufAttrList(s).
4243  * - NvSciError_InsufficientMemory if internal memory allocation failed.
4244  * - NvSciError_Overflow if internal integer overflow occurs.
4245  * - Panics if:
4246  * - @a unreconciled NvSciBufAttrList(s) in unreconciledAttrListArray
4247  * is invalid.
4248  * - @a reconciledAttrList is not valid.
4249  *
4250  * @pre @id{NvSciBufAttrListValidateReconciled_PreCond_001} @asil{QM}
4251  * Valid reconciled NvSciBufAttrList is obtained.
4252  * @pre @id{NvSciBufAttrListValidateReconciled_PreCond_002} @asil{QM}
4253  * Valid unreconciled NvSciBufAttrList(s) are obtained.
4254  *
4255  * @usage
4256  * - Allowed context for the API call
4257  * - Interrupt handler: No
4258  * - Signal handler: No
4259  * - Thread-safe: Yes
4260  * - Re-entrant: No
4261  * - Async/Sync: Sync
4262  * - Required privileges: None
4263  * - API group
4264  * - Init: Yes
4265  * - Runtime: No
4266  * - De-Init: No
4267  */
4269  NvSciBufAttrList reconciledAttrList,
4270  const NvSciBufAttrList unreconciledAttrListArray[],
4271  size_t unreconciledAttrListCount,
4272  bool* isReconcileListValid);
4273 
4298 #if (defined(NV_QNX))
4299 /*
4300  * - NvSciError_InvalidState if the Init Mode API is called in Runtime Mode.
4301  */
4302 #endif
4303 /*
4304  * - NvSciError_BadParameter if any of the following occurs:
4305  * - @a bufObj is NULL
4306  * - @a dupObj is NULL
4307  * - NvSciError_InsufficientMemory if memory allocation is failed.
4308  * - NvSciError_InvalidState if the total number of NvSciBufObjs referencing
4309  * the memory object is INT32_MAX and the caller tries to take one more
4310  * reference using this API.
4311  * - NvSciError_ResourceError if system lacks resource other than memory
4312  * - Panics if @a bufObj is invalid.
4313  *
4314  * @pre @id{NvSciBufObjDup_PreCond_001} @asil{QM}
4315  * Valid NvSciBufObj is obtained.
4316  * @post @id{NvSciBufObjDup_PostCond_001}
4317  * The duplicated NvSciBufObj is not a completely new NvSciBufObj. Therefore,
4318  * read write operations from one affects the state the other, because it is the same underlying memory.
4319  * @arr @id{NvSciBufDupObjDup_REC_001} @asil{QM}
4320  * The resulting NvSciBufDupObj must be freed separately by the user.
4321  *
4322  * @usage
4323  * - Allowed context for the API call
4324  * - Interrupt handler: No
4325  * - Signal handler: No
4326  * - Thread-safe: Yes
4327  * - Re-entrant: No
4328  * - Async/Sync: Sync
4329  * - Required privileges: None
4330  * - API group
4331  * - Init: Yes
4332  * - Runtime: No
4333  * - De-Init: No
4334  */
4337  NvSciBufObj* dupObj);
4338 
4355 #if (NV_IS_SAFETY == 0)
4356 
4361 #else
4362 
4365 #endif
4366 
4370 #if (defined(NV_QNX))
4371 /*
4372  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
4373  */
4374 #endif
4375 /*
4376  * - NvSciError_BadParameter if any of the following occurs:
4377  * - @a attrListCount is 0
4378  * - @a attrListArray is NULL
4379  * - @a bufObj is NULL
4380  * - any of the NvSciBufAttrList in @a attrListArray is reconciled.
4381  * - not all the NvSciBufAttrLists in @a attrListArray are bound to
4382  * the same NvSciBufModule.
4383  * - an NvSciBufAttrList appears multiple times in @a attrListArray
4384  * - an attribute key necessary for reconciling against the given data
4385  * type(s) of the NvSciBufAttrList(s) involved in reconciliation is
4386  * unset
4387  * - an attribute key is set to an unsupported value considering the data
4388  * type(s) of the NvSciBufAttrList(s) involved in reconciliation
4389  */
4390 #if (NV_IS_SAFETY == 0)
4391 
4394 #endif
4395 
4428  const NvSciBufAttrList attrListArray[],
4429  size_t attrListCount,
4431  NvSciBufAttrList* newConflictList);
4432 
4469 void NvSciBufObjFree(
4471 
4509  NvSciBufAttrList* bufAttrList);
4510 
4548  void** ptr);
4549 
4587  const void** ptr);
4588 
4634  uint64_t offset,
4635  uint64_t len);
4636 
4650 #if (defined(NV_QNX))
4651 /*
4652  * - NvSciError_InvalidState if the Init Mode API is called in Runtime Mode.
4653  */
4654 #endif
4655 /*
4656  * - NvSciError_BadParameter if any of the following occurs:
4657  * - @a reconciledAttrList is NULL
4658  * - @a reconciledAttrList is not a reconciled NvSciBufAttrList
4659  * - @a bufObj is NULL
4660  * - NvSciError_InsufficientMemory if there is insufficient memory
4661  * to complete the operation.
4662  * - NvSciError_InvalidState if a new NvSciBufObj cannot be associated
4663  * with the NvSciBufModule with which @a reconciledAttrList is associated to
4664  * create the new NvSciBufObj.
4665  * - NvSciError_ResourceError if any of the following occurs:
4666  * - NVIDIA driver stack failed during buffer allocation
4667  * - system lacks resource other than memory
4668  * - Panics if @a reconciledAttrList is invalid.
4669  *
4670  * @pre @id{NvSciBufObjAlloc_PreCond_001} @asil{QM}
4671  * Valid reconciled NvSciBufAttrList is obtained.
4672  * @arr @id{NvSciBufObjAlloc_RES_001} @asil{QM}
4673  * The allocator process will have read write permission to the newly Allocated NvSciBufObj.
4674  * @arr @id{NvSciBufObjAlloc_REC_002} @asil{QM}
4675  * This function does not take ownership of the reconciled NvSciBufAttrList.
4676  * The caller remains responsible for freeing the reconciled NvSciBufAttrList.
4677  * The caller may free the reconciled NvSciBufAttrList any time after this
4678  * function is called.
4679  * @arr @id{NvSciBufObjAlloc_RES_003} @asil{D}
4680  * It is not guaranteed that the input reconciled NvSciBufAttrList in this
4681  * API is the same NvSciBufAttrList that is associated with the allocated
4682  * NvSciBufObj. However, the attributes describing CPU accessibility and
4683  * buffer size are guaranteed to be the same in both NvSciBufAttrLists.
4684  *
4685  * However, in general, it is recommended that in order to query the
4686  * value(s) of attribute(s) from the reconciled NvSciBufAttrList associated
4687  * with an NvSciBufObj after allocation, they must first obtain the reconciled
4688  * NvSciBufAttrList from the NvSciBufObj using NvSciBufObjGetAttrList()
4689  * rather than using a saved NvSciBufAttrList.
4690  *
4691  * @usage
4692  * - Allowed context for the API call
4693  * - Interrupt handler: No
4694  * - Signal handler: No
4695  * - Thread-safe: Yes
4696  * - Re-entrant: No
4697  * - Async/Sync: Sync
4698  * - Required privileges: None
4699  * - API group
4700  * - Init: Yes
4701  * - Runtime: No
4702  * - De-Init: No
4703  */
4705  NvSciBufAttrList reconciledAttrList,
4706  NvSciBufObj* bufObj);
4707 
4735 #if (defined(NV_QNX))
4736 /*
4737  * - NvSciError_InvalidState if the Init Mode API is called in Runtime Mode.
4738  */
4739 #endif
4740 /*
4741  * - NvSciError_BadParameter if any of the following occurs:
4742  * - @a bufObj is NULL
4743  * - @a newBufObj is NULL
4744  * - @a reducedPerm is not NvSciBufAccessPerm_Readonly or
4745  * NvSciBufAccessPerm_ReadWrite
4746  * - @a reducedPerm is greater than the permissions specified in the value
4747  * of the NvSciBufGeneralAttrKey_ActualPerm key
4748  * - NvSciError_InsufficientMemory if memory allocation failed.
4749  * - NvSciError_InvalidState if any of the following occurs:
4750  * - the total number of NvSciBufObj(s) referencing the memory object is
4751  * INT32_MAX and the caller tries to take one more reference using this
4752  * API.
4753  * - a new NvSciBufObj cannot be associated with the NvSciBufModule with
4754  * which @a bufObj is associated to create the new NvSciBufAttrList
4755  * when the requested access permissions are less than the permissions
4756  * represented by the input NvSciBufObj
4757  * - NvSciError_ResourceError if any of the following occurs:
4758  * - NVIDIA driver stack failed while assigning new permission to the buffer handle
4759  * - system lacks resource other than memory
4760  */
4761 #if (NV_IS_SAFETY == 0)
4762 
4766 #endif
4767 
4793  NvSciBufAttrValAccessPerm reducedPerm,
4794  NvSciBufObj* newBufObj);
4795 
4897  const NvSciBufRect* rect,
4898  void** dstPtrs,
4899  const uint32_t* dstPtrSizes,
4900  const uint32_t* dstPitches);
4901 
5014  const NvSciBufRect* rect,
5015  const void** srcPtrs,
5016  const uint32_t* srcPtrSizes,
5017  const uint32_t* srcPitches);
5018 
5055 #if (defined(NV_QNX))
5056 /*
5057  * - NvSciError_InvalidState if the Init Mode API is called in Runtime Mode.
5058  */
5059 #endif
5060 /*
5061  * - NvSciError_BadParameter if any of the following occurs:
5062  * - @a attrListAndObjDesc is NULL
5063  * - @a attrListAndObjDescSize is NULL
5064  * - @a bufObj is NULL
5065  * - @a ipcEndpoint is invalid
5066  * - @a permissions takes value other than NvSciBufAccessPerm_Readonly,
5067  * NvSciBufAccessPerm_ReadWrite or NvSciBufAccessPerm_Auto.
5068  * - NvSciError_InsufficientMemory if memory allocation failed
5069  * - NvSciError_InvalidOperation if reconciled NvSciBufAttrList of @a bufObj
5070  * has greater permissions for the @a ipcEndpoint peer than the
5071  * @a permissions
5072  * - NvSciError_Overflow if an arithmetic overflow occurs due to an invalid
5073  * export descriptor
5074  * - NvSciError_NotPermitted if NvSciBufObj and NvSciBufAttrList associated
5075  * with it are not being exported in the reverse direction of IPC path in
5076  * which unreconciled NvSciBufAttrLists involved in reconciliation of
5077  * NvSciBufAttrList associated with the input NvScibufObj were exported.
5078  * - NvSciError_ResourceError if the NVIDIA driver stack failed.
5079  * - NvSciError_TryItAgain if current operation needs to be retried by the
5080  * user. This error is returned only when communication boundary is chip to
5081  * chip (C2c).
5082  * - Panic if @a bufObj is invalid
5083  *
5084  * @pre @id{NvSciBufIpcExportAttrListAndObj_PreCond_001} @asil{QM}
5085  * Valid NvSciBufObj obtained.
5086  * @pre @id{NvSciBufIpcExportAttrListAndObj_PreCond_002} @asil{QM}
5087  * Valid NvSciIpcEndpoint is obtained.
5088  *
5089  * @usage
5090  * - Allowed context for the API call
5091  * - Interrupt handler: No
5092  * - Signal handler: No
5093  * - Thread-safe: Yes
5094  * - Re-entrant: No
5095  * - Async/Sync: Sync
5096  * - Required privileges: None
5097  * - API group
5098  * - Init: Yes
5099  * - Runtime: No
5100  * - De-Init: No
5101  */
5104  NvSciBufAttrValAccessPerm permissions,
5105  NvSciIpcEndpoint ipcEndpoint,
5106  void** attrListAndObjDesc,
5107  size_t* attrListAndObjDescSize);
5108 
5144 #if (defined(NV_QNX))
5145 /*
5146  * - NvSciError_InvalidState if the Init Mode API is called in Runtime Mode.
5147  */
5148 #endif
5149 /*
5150  * - NvSciError_BadParameter if any of the following occurs:
5151  * - @a module is NULL
5152  * - @a ipcEndpoint is invalid
5153  * - @a attrListAndObjDesc is NULL
5154  * - @a attrListAndObjDesc represents an NvSciBufAttrList with invalid
5155  * attribute key values set
5156  * - @a attrListAndObjDesc represents an NvSciBufAttrList which is
5157  * unreconciled.
5158  * - @a attrListAndObjDesc is invalid
5159  * - @a attrListAndObjDescSize is 0
5160  * - @a count is 0, provided @a attrList is non-NULL
5161  * - @a minPermissions are invalid.
5162  * - @a bufObj is NULL
5163  * - NvSciError_NotSupported if any of the following occurs:
5164  * - @a attrListAndObjDesc is incompatible
5165  * - Internal attribute of the imported NvSciBufAttrList represents
5166  * memory domain which is not supported.
5167  * - NvSciError_AccessDenied if @a minPermissions are greater than permissions
5168  * with which NvSciBufObj was exported
5169  * - NvSciError_AttrListValidationFailed if any of the following occurs:
5170  * - input unreconciled NvSciBufAttrList(s)' contraints are not satisfied
5171  * by attributes associated with the imported NvSciBufObj
5172  * - an NvSciBufAttrList appears multiple times in @a attrList
5173  * - NvSciError_InsufficientMemory if memory allocation failed
5174  * - NvSciError_ResourceError if any of the following occurs:
5175  * - NVIDIA driver stack failed
5176  * - system lacks resource other than memory
5177  * - NvSciError_TryItAgain if current operation needs to be retried by the
5178  * user. This error is returned only when communication boundary is chip to
5179  * chip (C2c).
5180  * - NvSciError_InvalidState if any of the following occurs:
5181  * - Imported NvSciBufAttrList cannot be associated with @a module.
5182  * - Imported NvSciBufObj cannot be associated with @a module.
5183  * - Panic if:
5184  * - @a any of the unreconciled NvSciBufAttrList(s) are not valid
5185  * - @a module is invalid
5186  *
5187  * @pre @id{NvSciBufIpcImportAttrListAndObj_PreCond_001} @asil{QM}
5188  * Valid NvSciBufModule is obtained.
5189  * @pre @id{NvSciBufIpcImportAttrListAndObj_PreCond_002} @asil{QM}
5190  * Valid unreconciled NvSciBufAttrList(s) are obtained.
5191  * @pre @id{NvSciBufIpcImportAttrListAndObj_PreCond_003} @asil{QM}
5192  * Valid NvSciIpcEndpoint is obtained.
5193  *
5194  * @usage
5195  * - Allowed context for the API call
5196  * - Interrupt handler: No
5197  * - Signal handler: No
5198  * - Thread-safe: Yes
5199  * - Re-entrant: No
5200  * - Async/Sync: Sync
5201  * - Required privileges: None
5202  * - API group
5203  * - Init: Yes
5204  * - Runtime: No
5205  * - De-Init: No
5206  */
5208  NvSciBufModule module,
5209  NvSciIpcEndpoint ipcEndpoint,
5210  const void* attrListAndObjDesc,
5211  size_t attrListAndObjDescSize,
5212  const NvSciBufAttrList attrList[],
5213  size_t count,
5214  NvSciBufAttrValAccessPerm minPermissions,
5215  int64_t timeoutUs,
5216  NvSciBufObj* bufObj);
5217 
5250  void* attrListAndObjDescBuf);
5251 
5278 #if (defined(NV_QNX))
5279 /*
5280  * - NvSciError_InvalidState if the Init Mode API is called in Runtime Mode.
5281  */
5282 #endif
5283 /*
5284  * - NvSciError_BadParameter if any of the following occurs:
5285  * - @a bufObj is NULL
5286  * - @a accPerm takes value other than NvSciBufAccessPerm_Readonly,
5287  * NvSciBufAccessPerm_ReadWrite or NvSciBufAccessPerm_Auto.
5288  * - @a ipcEndpoint is invalid
5289  * - @a exportData is NULL
5290  * - NvSciError_InsufficientMemory if memory allocation failed.
5291  * - NvSciError_InvalidOperation if reconciled NvSciBufAttrList of @a bufObj
5292  * has greater permissions for the @a ipcEndpoint peer than the
5293  * @a accPerm
5294  * - NvSciError_NotPermitted if NvSciBufObj is not being exported in the
5295  * reverse direction of IPC path in which unreconciled NvSciBufAttrLists
5296  * involved in reconciliation of NvSciBufAttrList associated with the input
5297  * NvScibufObj were exported.
5298  * - NvSciError_ResourceError if the NVIDIA driver stack failed.
5299  * - NvSciError_TryItAgain if current operation needs to be retried by the
5300  * user. This error is returned only when communication boundary is chip to
5301  * chip (C2c).
5302  * - Panic if @a bufObj is invalid
5303  *
5304  * @pre @id{NvSciBufObjIpcExport_PreCond_001} @asil{QM}
5305  * Valid NvSciBufObj is obtained.
5306  * @pre @id{NvSciBufObjIpcExport_PreCond_002} @asil{QM}
5307  * Valid NvSciIpcEndpoint is obtained.
5308  *
5309  * @usage
5310  * - Allowed context for the API call
5311  * - Interrupt handler: No
5312  * - Signal handler: No
5313  * - Thread-safe: Yes
5314  * - Re-entrant: No
5315  * - Async/Sync: Sync
5316  * - Required privileges: None
5317  * - API group
5318  * - Init: Yes
5319  * - Runtime: No
5320  * - De-Init: No
5321  */
5324  NvSciBufAttrValAccessPerm accPerm,
5325  NvSciIpcEndpoint ipcEndpoint,
5326  NvSciBufObjIpcExportDescriptor* exportData);
5327 
5362 #if (defined(NV_QNX))
5363 /*
5364  * - NvSciError_InvalidState if the Init Mode API is called in Runtime Mode.
5365  */
5366 #endif
5367 /*
5368  * - NvSciError_AccessDenied if minPermissions are greater than permissions
5369  * with which object was exported
5370  * - NvSciError_BadParameter if any of the following occurs:
5371  * - @a ipcEndpoint is invalid
5372  * - @a desc is NULL or invalid
5373  * - @a reconciledAttrList is NULL
5374  * - @a reconciledAttrList is unreconciled.
5375  * - @a minPermissions are invalid.
5376  * - @a bufObj is NULL
5377  * - NvSciError_InsufficientMemory if there is insufficient system memory.
5378  * - NvSciError_Overflow if an arithmetic overflow occurs due to an invalid
5379  * export descriptor
5380  * - NvSciError_ResourceError if any of the following occurs:
5381  * - NVIDIA driver stack failed
5382  * - system lacks resource other than memory
5383  * - NvSciError_TryItAgain if current operation needs to be retried by the
5384  * user. This error is returned only when communication boundary is chip to
5385  * chip (C2c).
5386  */
5387 #if defined (BACKEND_RESMAN)
5388 #if (BACKEND_RESMAN)
5389 
5393 #endif
5394 #endif
5395 
5430  NvSciIpcEndpoint ipcEndpoint,
5431  const NvSciBufObjIpcExportDescriptor* desc,
5432  NvSciBufAttrList reconciledAttrList,
5433  NvSciBufAttrValAccessPerm minPermissions,
5434  int64_t timeoutUs,
5435  NvSciBufObj* bufObj);
5436 
5454 #if (defined(NV_QNX))
5455 /*
5456  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
5457  */
5458 #endif
5459 /*
5460  * - NvSciError_BadParameter if any of the following occurs:
5461  * - @a inputArray is NULL
5462  * - @a inputCount is 0
5463  * - @a bufObj is NULL
5464  * - not all the NvSciBufAttrList(s) in @a inputArray and the reconciled
5465  * NvSciBufAttrList bound to @a bufObj are bound to same NvSciBufModule
5466  * instance.
5467  * - an NvSciBufAttrList appears multiple times in @a inputArray
5468  * - if any of the NvSciBufAttrList is reconciled in @a inputArray
5469  * - the NvSciBufGeneralAttrKey_Types key is not set on any of the
5470  * NvSciBufAttrList(s) in @a inputArray
5471  * - NvSciError_InsufficientMemory if internal memory allocation failed.
5472  * - NvSciError_ResourceError if system lacks resource other than memory.
5473  * - NvSciError_ReconciliationFailed if validation of reconciled
5474  * NvSciBufAttrList associated with input @a bufObj failed against input
5475  * unreconciled NvSciBufAttrList(s) in @a inputArray.
5476  * - NvSciError_Overflow if internal integer overflow occurs.
5477  * - panics if @a any NvSciBufAttrList in the @a
5478  * inputArray is invalid
5479  *
5480  * @pre @id{NvSciBufObjAttachPeer_PreCond_001} @asil{QM}
5481  * Valid NvSciBufObj is allocated.
5482  * @pre @id{NvSciBufObjAttachPeer_PreCond_002} @asil{QM}
5483  * Valid unreconciled NvSciBufAttrList(s) inside @a inputArray.
5484  * @post @id{NvSciBufObjAttachPeer_PostCond_001}
5485  * NvSciBufObj and reconciled NvSciBufAttrList associated with @a bufObj is exportable
5486  * to remote peers NvSciIpcEndpoints whose unreconciled NvSciBufAttrList was provided
5487  * as input to this function if the operation is successful.
5488  *
5489  * @usage
5490  * - Allowed context for the API call
5491  * - Interrupt handler: No
5492  * - Signal handler: No
5493  * - Thread-safe: Yes, with the following conditions:
5494  * - Provided there is no active operation involving the input
5495  * NvSciBufAttrList @a attrList
5496  * - Re-entrant: No
5497  * - Async/Sync: Sync
5498  * - Required privileges: None
5499  * - API group
5500  * - Init: Yes
5501  * - Runtime: No
5502  * - De-Init: No
5503  */
5506  const NvSciBufAttrList inputArray[],
5507  size_t inputCount);
5508 
5533 #if (defined(NV_QNX))
5534 /*
5535  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
5536  */
5537 #endif
5538 /*
5539  * - NvSciError_BadParameter if any of the following occurs:
5540  * - @a unreconciledAttrListArray is NULL
5541  * - any of the NvSciBufAttrLists in the @a unreconciledAttrListArray is
5542  * reconciled.
5543  * - not all the NvSciBufAttrLists in the @a unreconciledAttrListArray are
5544  * bound to the same NvSciBufModule.
5545  * - an NvSciBufAttrList appears multiple times in @a unreconciledAttrListArray
5546  * - @a unreconciledAttrListCount is 0
5547  * - @a ipcEndpoint is invalid
5548  * - @a descBuf is NULL
5549  * - @a descLen is NULL
5550  * - NvSciError_InsufficientResource if any of the following occurs:
5551  * - the API is unable to implicitly append an additional attribute key
5552  * when needed
5553  * - NvSciError_InsufficientMemory if memory allocation failed.
5554  * - Panic if @a any of the NvSciBufAttrList(s) in @a unreconciledAttrListArray
5555  * is invalid.
5556  *
5557  * @pre @id{NvSciBufAttrListIpcExportUnreconciled_PreCond_001} @asil{QM}
5558  * Valid unreconciled NvSciBufAttrList(s) are obtained.
5559  * @pre @id{NvSciBufAttrListIpcExportUnreconciled_PreCond_002} @asil{QM}
5560  * Valid NvSciIpcEndpoint is obtained.
5561  * @post @id{NvSciBufAttrListIpcExportUnreconciled_PostCond_001}
5562  * When exporting an array containing multiple unreconciled
5563  * NvSciBufAttrLists, the importing endpoint still imports just one unreconciled
5564  * NvSciBufAttrList. This unreconciled NvSciBufAttrList is referred to as a
5565  * multi-slot NvSciBufAttrList. It logically represents an array of
5566  * NvSciBufAttrLists.
5567  *
5568  * @usage
5569  * - Allowed context for the API call
5570  * - Interrupt handler: No
5571  * - Signal handler: No
5572  * - Thread-safe: Yes
5573  * - Re-entrant: No
5574  * - Async/Sync: Sync
5575  * - Required privileges: None
5576  * - API group
5577  * - Init: Yes
5578  * - Runtime: No
5579  * - De-Init: No
5580  */
5582  const NvSciBufAttrList unreconciledAttrListArray[],
5583  size_t unreconciledAttrListCount,
5584  NvSciIpcEndpoint ipcEndpoint,
5585  void** descBuf,
5586  size_t* descLen);
5587 
5607 #if (defined(NV_QNX))
5608 /*
5609  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
5610  */
5611 #endif
5612 /*
5613  * - NvSciError_BadParameter if any of the following occurs:
5614  * - @a reconciledAttrList is NULL
5615  * - @a reconciledAttrList is unreconciled.
5616  * - @a ipcEndpoint is invalid
5617  * - @a descBuf is NULL
5618  * - @a descLen is NULL
5619  * - NvSciError_InsufficientMemory if memory allocation failed.
5620  * - NvSciError_NotPermitted if reconciled NvSciBufAttrList is not being
5621  * exported in the reverse direction of IPC path in which unreconciled
5622  * NvSciBufAttrLists involved in reconciliation of input NvSciBufAttrList were
5623  * exported.
5624  * - Panic if @a reconciledAttrList is invalid.
5625  *
5626  * @pre @id{NvSciBufAttrListIpcExportReconciled_PreCond_001} @asil{QM}
5627  * Valid reconciled NvSciBufAttrList is obtained.
5628  * @pre @id{NvSciBufAttrListIpcExportReconciled_PreCond_002} @asil{QM}
5629  * Valid NvSciIpcEndpoint is obtained.
5630  *
5631  * @usage
5632  * - Allowed context for the API call
5633  * - Interrupt handler: No
5634  * - Signal handler: No
5635  * - Thread-safe: Yes
5636  * - Re-entrant: No
5637  * - Async/Sync: Sync
5638  * - Required privileges: None
5639  * - API group
5640  * - Init: Yes
5641  * - Runtime: No
5642  * - De-Init: No
5643  */
5645  NvSciBufAttrList reconciledAttrList,
5646  NvSciIpcEndpoint ipcEndpoint,
5647  void** descBuf,
5648  size_t* descLen);
5649 
5672 #if (defined(NV_QNX))
5673 /*
5674  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
5675  */
5676 #endif
5677 /*
5678  * - NvSciError_BadParameter if any of the following occurs:
5679  * - @a module is NULL
5680  * - @a ipcEndpoint is invalid
5681  * - @a descBuf is NULL
5682  * - @a descBuf represents an NvSciBufAttrList with invalid attribute key
5683  * values set
5684  * - @a descBuf represents an NvSciBufAttrList which is reconciled.
5685  * - @a descBuf is invalid
5686  * - @a descLen is 0
5687  * - @a importedUnreconciledAttrList is NULL
5688  * - NvSciError_NotSupported if @a descBuf represents an NvSciBufAttrList with
5689  * same key multiple times.
5690  * - NvSciError_InsufficientMemory if insufficient system memory.
5691  * - NvSciError_InvalidState if imported NvSciBufAttrList cannot be
5692  * associated with @a module.
5693  * - NvSciError_ResourceError if system lacks resource other than memory.
5694  * - Panic if @a module is invalid
5695  *
5696  * @pre @id{NvSciBufAttrListIpcImportUnreconciled_PreCond_001} @asil{QM}
5697  * Valid NvSciBufModule is obtained.
5698  * @pre @id{NvSciBufAttrListIpcImportUnreconciled_PreCond_002} @asil{QM}
5699  * Valid NvSciIpcEndpoint is obtained.
5700  * @post @id{NvSciBufAttrListAppendUnreconciled_PostCond_001}
5701  * Imported NvSciBufAttrList is no longer writable.
5702  *
5703  * @usage
5704  * - Allowed context for the API call
5705  * - Interrupt handler: No
5706  * - Signal handler: No
5707  * - Thread-safe: Yes
5708  * - Re-entrant: No
5709  * - Async/Sync: Sync
5710  * - Required privileges: None
5711  * - API group
5712  * - Init: Yes
5713  * - Runtime: No
5714  * - De-Init: No
5715  */
5717  NvSciBufModule module,
5718  NvSciIpcEndpoint ipcEndpoint,
5719  const void* descBuf,
5720  size_t descLen,
5721  NvSciBufAttrList* importedUnreconciledAttrList);
5722 
5762 #if (defined(NV_QNX))
5763 /*
5764  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
5765  */
5766 #endif
5767 /*
5768  * - NvSciError_BadParameter if any of the following occurs:
5769  * - @a module is NULL
5770  * - @a ipcEndpoint is invalid
5771  * - @a descBuf is NULL
5772  * - @a descBuf represents an NvSciBufAttrList with invalid attribute key
5773  * values set
5774  * - @a descBuf represents an NvSciBufAttrList which is unreconciled.
5775  * - @a descBuf is invalid
5776  * - @a descLen is 0
5777  * - @a importedReconciledAttrList is NULL
5778  * - @a inputUnreconciledAttrListCount is 0 provided
5779  * @a inputUnreconciledAttrListArray is non-NULL
5780  * - NvSciError_NotSupported if any of the following occurs:
5781  * - @a descBuf is incompatible
5782  * - NvSciError_InsufficientMemory if memory allocation failed.
5783  * - NvSciError_AttrListValidationFailed if any of the following occurs:
5784  * - input unreconciled NvSciBufAttrList(s)' attribute constraints are not
5785  * satisfied by attributes associated with the imported importedReconciledAttrList.
5786  * - an NvSciBufAttrList appears multiple times in @a inputUnreconciledAttrListArray
5787  * - NvSciError_InvalidState if imported NvSciBufAttrList cannot be
5788  * associated with @a module.
5789  * - NvSciError_ResourceError if system lacks resource other than memory.
5790  * - Panic if:
5791  * - @a any of the NvSciBufAttrList in
5792  * inputUnreconciledAttrListArray is invalid
5793  * - @a module is invalid
5794  *
5795  * @pre @id{NvSciBufAttrListIpcImportReconciled_PreCond_001} @asil{QM}
5796  * Valid NvSciBufModule is obtained.
5797  * @pre @id{NvSciBufAttrListIpcImportReconciled_PreCond_002} @asil{QM}
5798  * Valid unreconciled NvSciBufAttrList(s) are obtained.
5799  * @pre @id{NvSciBufAttrListIpcImportReconciled_PreCond_003} @asil{QM}
5800  * Valid NvSciIpcEndpoint is obtained.
5801  * @arr @id{NvSciBufAttrListIpcImportReconciled_REC_001} @asil{QM}
5802  * It is recommended that the importing process validates the reconciled
5803  * NvSciBufAttrList against the input unreconciled NvSciBufAttrList(s),
5804  * so that the importing process can be sure that an NvSciBufObj will
5805  * satisfy the input constraints.
5806  *
5807  * @usage
5808  * - Allowed context for the API call
5809  * - Interrupt handler: No
5810  * - Signal handler: No
5811  * - Thread-safe: Yes
5812  * - Re-entrant: No
5813  * - Async/Sync: Sync
5814  * - Required privileges: None
5815  * - API group
5816  * - Init: Yes
5817  * - Runtime: No
5818  * - De-Init: No
5819  */
5821  NvSciBufModule module,
5822  NvSciIpcEndpoint ipcEndpoint,
5823  const void* descBuf,
5824  size_t descLen,
5825  const NvSciBufAttrList inputUnreconciledAttrListArray[],
5826  size_t inputUnreconciledAttrListCount,
5827  NvSciBufAttrList* importedReconciledAttrList);
5828 
5829 
5860  void* descBuf);
5861 
5883 #if (defined(NV_QNX))
5884 /*
5885  * - NvSciError_InvalidState if the Init Mode API is called in Runtime Mode.
5886  */
5887 #endif
5888 /*
5889  * - NvSciError_BadParameter if @a newModule is NULL.
5890  * - NvSciError_InsufficientMemory if memory is not available.
5891  * - NvSciError_ResourceError if any of the following occurs:
5892  * - NVIDIA driver stack failed
5893  * - system lacks resource other than memory
5894  *
5895  * @usage
5896  * - Allowed context for the API call
5897  * - Interrupt handler: No
5898  * - Signal handler: No
5899  * - Thread-safe: Yes
5900  * - Re-entrant: No
5901  * - Async/Sync: Sync
5902  * - Required privileges: None
5903  * - API group
5904  * - Init: Yes
5905  * - Runtime: No
5906  * - De-Init: No
5907  */
5909  NvSciBufModule* newModule);
5910 
5947 void NvSciBufModuleClose(
5948  NvSciBufModule module);
5949 
5959 #if (NV_IS_SAFETY == 0)
5960 
5965 #endif
5966 
5977 #if (defined(NV_QNX))
5978 /*
5979  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
5980  */
5981 #endif
5982 /*
5983  * - NvSciError_BadParameter if any of the following occurs:
5984  * - @a isCompatible is NULL
5985  */
5986 #if (NV_IS_SAFETY == 0)
5987 
5990 #endif
5991 
6007  uint32_t majorVer,
6008  uint32_t minorVer,
6009  bool* isCompatible);
6010 
6015 #if (NV_IS_SAFETY == 0)
6016 
6024 #else
6025 
6047 #endif
6048 
6065 
6084 #if (defined(NV_QNX))
6085 /*
6086  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
6087  */
6088 #endif
6089 /*
6090  * - NvSciError_InsufficientMemory If any allocation of memory fails for validation.
6091  * - NvSciError_BadParameter if any of the following occurs:
6092  * - @a reconciledAttrList is NULL
6093  * - @a pairArray is NULL
6094  * - NvSciBufAttrKey specified in @a pairArray is invalid.
6095  * - @a pairCount is 0.
6096  * - NvSciError_AttrListValidationFailed indicates that reconciled
6097  * NvSciBufAttrList is not valid against the user provided key value pair(s).
6098  * - panics if @a reconciledAttrList is invalid.
6099  *
6100  * @pre @id{NvSciBufAttrListValidateReconciledAgainstAttrs_PreCond_001} @asil{B}
6101  * Valid reconciled NvSciBufAttrList is obtained.
6102  *
6103  * @usage
6104  * - Allowed context for the API call
6105  * - Interrupt handler: No
6106  * - Signal handler: No
6107  * - Thread-safe: Yes
6108  * - Re-entrant: No
6109  * - Async/Sync: Sync
6110  * - Required privileges: None
6111  * - API group
6112  * - Init: Yes
6113  * - Runtime: No
6114  * - De-Init: No
6115  */
6117  const NvSciBufAttrList reconciledAttrList,
6118  const NvSciBufAttrKeyValuePair* pairArray,
6119  const size_t pairCount);
6120 
6139 #if (defined(NV_QNX))
6140 /*
6141  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
6142  */
6143 #endif
6144 /*
6145  * - NvSciError_BadParameter if any of the following occurs:
6146  * - @a bufObj is NULL
6147  * - @a ipcEndpoint is invalid
6148  * - @a accPerm is NULL.
6149  * - panics if @a bufObj is invalid.
6150  *
6151  * @pre @id{NvSciBufObjGetMaxPerm_PreCond_001} @asil{B}
6152  * Valid NvSciBufObj is obtained.
6153  * @pre @id{NvSciBufObjGetMaxPerm_PreCond_002} @asil{QM}
6154  * Valid NvSciIpcEndpoint is obtained.
6155  *
6156  * @usage
6157  * - Allowed context for the API call
6158  * - Interrupt handler: No
6159  * - Signal handler: No
6160  * - Thread-safe: Yes
6161  * - Re-entrant: No
6162  * - Async/Sync: Sync
6163  * - Required privileges: None
6164  * - API group
6165  * - Init: No
6166  * - Runtime: Yes
6167  * - De-Init: No
6168  */
6169 
6171  const NvSciBufObj bufObj,
6172  const NvSciIpcEndpoint ipcEndpoint,
6173  NvSciBufAttrValAccessPerm* accPerm);
6174 
6175 
6188 #ifndef __QNX__
6189 
6199 #if (defined(NV_QNX))
6200 /*
6201  * - NvSciError_InvalidState If the Init Mode API is called in Runtime Mode.
6202  */
6203 #endif
6204 /*
6205  * - NvSciError_ResourceError if system lacks resource other than memory.
6206  * - panics if @a bufObj is invalid.
6207  */
6208 #else
6209 
6213 #endif
6214 
6237  int* fd);
6238 
6239 
6246 #if defined(__cplusplus)
6247 }
6248 #endif // __cplusplus
6249 
6250 #endif /* INCLUDED_NVSCIBUF_H */
NvSciBufImageAttrKey_BottomPadding
@ NvSciBufImageAttrKey_BottomPadding
Specifies the bottom padding for the NvSciBufType_Image.
Definition: nvscibuf.h:1014
NvSciBufPlatformName_Thor
@ NvSciBufPlatformName_Thor
Late attaching peer(s) runs on DRIVEOS Thor platform.
Definition: nvscibuf.h:3446
NvSciColor_X4Bayer12CCCC
@ NvSciColor_X4Bayer12CCCC
Definition: nvscibuf.h:2483
NvSciColor_X2Bayer14BGGI_RGGI
@ NvSciColor_X2Bayer14BGGI_RGGI
Definition: nvscibuf.h:2707
NvSciColor_Bayer8CCCC
@ NvSciColor_Bayer8CCCC
Definition: nvscibuf.h:2453
NV_SCI_BUF_GENERAL_ATTR_KEY_START
#define NV_SCI_BUF_GENERAL_ATTR_KEY_START
Indicates starting value of NvSciBufAttrKey for NvSciBufType_General.
Definition: nvscibuf.h:363
NV_SCI_BUF_IMAGE_MAX_PLANES
#define NV_SCI_BUF_IMAGE_MAX_PLANES
Maximum number of planes supported by NvSciBufType_Image.
Definition: nvscibuf.h:296
NvSciColor_X6Bayer10GRBG
@ NvSciColor_X6Bayer10GRBG
Definition: nvscibuf.h:2475
NvSciBufObjFlushCpuCacheRange
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.
NvSciSurfBPC_10
@ NvSciSurfBPC_10
10 bits per component
Definition: nvscibuf.h:3270
NvSciBufRawBufferAttrKey_Align
@ NvSciBufRawBufferAttrKey_Align
Specifies the alignment requirement of NvSciBufType_RawBuffer.
Definition: nvscibuf.h:928
NvSciDataType_Int8
@ NvSciDataType_Int8
Definition: nvscibuf.h:3306
NvSciBufObjDupWithReducePerm
NvSciError NvSciBufObjDupWithReducePerm(NvSciBufObj bufObj, NvSciBufAttrValAccessPerm reducedPerm, NvSciBufObj *newBufObj)
Creates a new memory object containing a buffer handle representing the new NvSciBufAttrValAccessPerm...
NvSciColor_Signed_X6Bayer10CCCC
@ NvSciColor_Signed_X6Bayer10CCCC
Definition: nvscibuf.h:2495
NvSciDataType_Int32
@ NvSciDataType_Int32
Definition: nvscibuf.h:3310
NvSciError
NvSciError
Return/error codes for all NvSci functions.
Definition: nvscierror.h:45
NvSciBufHwEngName_Isp
@ NvSciBufHwEngName_Isp
Definition: nvscibuf.h:3417
NvSciColor_X6Bayer10GBIG_GRIG
@ NvSciColor_X6Bayer10GBIG_GRIG
Definition: nvscibuf.h:2688
NvSciBufPyramidAttrKey_Alignment
@ NvSciBufPyramidAttrKey_Alignment
Alignment attribute of pyramid.
Definition: nvscibuf.h:2327
NvSciColor_X4Bayer12BCCR
@ NvSciColor_X4Bayer12BCCR
Definition: nvscibuf.h:2486
NvSciBufAttrValGpuCache::cacheability
bool cacheability
boolean value specifying cacheability preference.
Definition: nvscibuf.h:3374
NvSciSurfBPC_16
@ NvSciSurfBPC_16
16 bits per component
Definition: nvscibuf.h:3279
NvSciBufHwEngName_Vi
@ NvSciBufHwEngName_Vi
Definition: nvscibuf.h:3418
NvSciBufImageAttrKey_SurfHeightBase
@ NvSciBufImageAttrKey_SurfHeightBase
Specifies the Surface base height.
Definition: nvscibuf.h:1798
NvSciBufImageAttrKey_SurfComponentOrder
@ NvSciBufImageAttrKey_SurfComponentOrder
Specifies the NvSciSurfComponentOrder.
Definition: nvscibuf.h:1732
NvSciBufAttrListClone
NvSciError NvSciBufAttrListClone(NvSciBufAttrList origAttrList, NvSciBufAttrList *newAttrList)
Clones an unreconciled/reconciled NvSciBufAttrList.
NvSciColor_Bayer16RGGB
@ NvSciColor_Bayer16RGGB
Definition: nvscibuf.h:2461
NvSciColor_X12Bayer20CCRC
@ NvSciColor_X12Bayer20CCRC
Definition: nvscibuf.h:2522
NV_SCI_BUF_PYRAMID_ATTR_KEY_START
#define NV_SCI_BUF_PYRAMID_ATTR_KEY_START
Indicates the starting value of NvSciBufAttrKey for NvSciBufType_Pyramid.
Definition: nvscibuf.h:384
NvSciBufAttrListGetAttrs
NvSciError NvSciBufAttrListGetAttrs(NvSciBufAttrList attrList, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount)
Returns an array of NvSciBufAttrKeyValuePair for a given set of NvSciBufAttrKey(s) from slot 0 of inp...
NvSciSurfSampleType_444
@ NvSciSurfSampleType_444
4:4:4 subsampling
Definition: nvscibuf.h:3249
NvSciBufImageAttrKey_PlaneSecondFieldOffset
@ NvSciBufImageAttrKey_PlaneSecondFieldOffset
Indicates the offset of the start of the second field, 0 for progressive valid for interlaced.
Definition: nvscibuf.h:1438
NV_SCI_BUF_ATTRKEY_BIT_COUNT
#define NV_SCI_BUF_ATTRKEY_BIT_COUNT
Global constant to indicate number of bits used for defining an attribute key.
Definition: nvscibuf.h:340
NvSciBufImageAttrKey_PlaneBaseAddrAlign
@ NvSciBufImageAttrKey_PlaneBaseAddrAlign
Specifies the NvSciBufType_Image plane base address alignment for every plane in terms of an array.
Definition: nvscibuf.h:1262
NvSciBufObjPutPixels
NvSciError NvSciBufObjPutPixels(NvSciBufObj bufObj, const NvSciBufRect *rect, const void **srcPtrs, const uint32_t *srcPtrSizes, const uint32_t *srcPitches)
Writes pixels to the buffer represented by memory object pointed to by bufObj provided NvSciBufGenera...
NvSciDataType_Uint32
@ NvSciDataType_Uint32
Definition: nvscibuf.h:3311
NvSciRmGpuId
Defines GPU ID structure.
Definition: nvscibuf.h:3353
NvSciColor_Signed_A8
@ NvSciColor_Signed_A8
Definition: nvscibuf.h:2635
NvSciColor_Y8U8Y8V8
@ NvSciColor_Y8U8Y8V8
Definition: nvscibuf.h:2618
NV_SCI_BUF_PEER_INFO_MAX_NUMBER
#define NV_SCI_BUF_PEER_INFO_MAX_NUMBER
Maxium number of peer info supported.
Definition: nvscibuf.h:311
NvSciColor_A16B16G16R16
@ NvSciColor_A16B16G16R16
Definition: nvscibuf.h:2643
NvSciColorStd_REC601_ER
@ NvSciColorStd_REC601_ER
Definition: nvscibuf.h:3178
NvSciSurfSampleType_400
@ NvSciSurfSampleType_400
4:0:0 subsampling
Definition: nvscibuf.h:3253
NvSciBufGeneralAttrKey_VidMem_GpuId
@ NvSciBufGeneralAttrKey_VidMem_GpuId
GPU ID of dGPU from which vidmem allocation should come when multiple GPUs are sharing buffer.
Definition: nvscibuf.h:678
NvSciColor_U16
@ NvSciColor_U16
Definition: nvscibuf.h:2594
NvSciColor_FloatISP_Bayer16CCCR
@ NvSciColor_FloatISP_Bayer16CCCR
Definition: nvscibuf.h:2507
NvSciBufHwEngName_OFA
@ NvSciBufHwEngName_OFA
Definition: nvscibuf.h:3428
PACK_BUF
#define PACK_BUF(__Declaration__)
Definition: nvscibuf.h:38
NvSciBufObjGetDmaBufFd
NvSciError NvSciBufObjGetDmaBufFd(NvSciBufObj bufObj, int *fd)
Generate a new dma-buf file descriptor corresponding to the provided NvSciBufObj.
NvSciBufType_UpperBound
@ NvSciBufType_UpperBound
Definition: nvscibuf.h:142
NvSciBufAttrListGetSlotCount
size_t NvSciBufAttrListGetSlotCount(NvSciBufAttrList attrList)
Returns the slot count per NvSciBufAttrKey in a NvSciBufAttrList.
NvSciBufGeneralAttrKey_PeerHwEngineArray
@ NvSciBufGeneralAttrKey_PeerHwEngineArray
An attribute indicating list of hardware engines which will access the allocated buffer on late attac...
Definition: nvscibuf.h:872
NvSciColor_LowerBound
@ NvSciColor_LowerBound
Definition: nvscibuf.h:2430
NvSciBufType_Array
@ NvSciBufType_Array
Definition: nvscibuf.h:139
NvSciBufObjFree
void NvSciBufObjFree(NvSciBufObj bufObj)
Removes reference to the Memory object by freeing the NvSciBufObj.
NvSciColor_X12Bayer20CRCC
@ NvSciColor_X12Bayer20CRCC
Definition: nvscibuf.h:2521
NvSciColor_X12Bayer20GBRG
@ NvSciColor_X12Bayer20GBRG
Definition: nvscibuf.h:2514
NvSciBufObjIpcExport
NvSciError NvSciBufObjIpcExport(NvSciBufObj bufObj, NvSciBufAttrValAccessPerm accPerm, NvSciIpcEndpoint ipcEndpoint, NvSciBufObjIpcExportDescriptor *exportData)
Exports the NvSciBufObj into an NvSciIpc-transferable object export descriptor.
NvSciBufImageAttrKey_PlaneAlignedHeight
@ NvSciBufImageAttrKey_PlaneAlignedHeight
Outputs the aligned height of every plane in terms of number of pixels.
Definition: nvscibuf.h:1503
NvSciBufAttrListAppendUnreconciled
NvSciError NvSciBufAttrListAppendUnreconciled(const NvSciBufAttrList inputUnreconciledAttrListArray[], size_t inputUnreconciledAttrListCount, NvSciBufAttrList *newUnreconciledAttrList)
Appends multiple unreconciled NvSciBufAttrList(s) together, forming a single new unreconciled NvSciBu...
NvSciColor_X4Bayer12RCCB
@ NvSciColor_X4Bayer12RCCB
Definition: nvscibuf.h:2485
NvSciColor_A8B8G8R8
@ NvSciColor_A8B8G8R8
Definition: nvscibuf.h:2638
NvSciBufObjAlloc
NvSciError NvSciBufObjAlloc(NvSciBufAttrList reconciledAttrList, NvSciBufObj *bufObj)
Allocates a buffer that satisfies all the constraints defined by the attributes of the specified reco...
NvSciBufCheckVersionCompatibility
NvSciError NvSciBufCheckVersionCompatibility(uint32_t majorVer, uint32_t minorVer, bool *isCompatible)
Checks if loaded NvSciBuf library version is compatible with NvSciBuf library version with which elem...
NvSciColor_X6Bayer10IGGB_IGGR
@ NvSciColor_X6Bayer10IGGB_IGGR
Definition: nvscibuf.h:2690
NvSciColorStd_REC709_SR
@ NvSciColorStd_REC709_SR
Definition: nvscibuf.h:3179
NvSciBufTensorAttrKey_BaseAddrAlign
@ NvSciBufTensorAttrKey_BaseAddrAlign
Attribute providing base address alignment requirements for tensor.
Definition: nvscibuf.h:2044
NvSciColor_X4Bayer12GBIG_GRIG
@ NvSciColor_X4Bayer12GBIG_GRIG
Definition: nvscibuf.h:2698
NvSciColor_X4Bayer12RGGB
@ NvSciColor_X4Bayer12RGGB
Definition: nvscibuf.h:2480
NvSciColor_Signed_X4Bayer12CCCC
@ NvSciColor_Signed_X4Bayer12CCCC
Definition: nvscibuf.h:2494
NvSciBufTensorAttrKey_SizePerDim
@ NvSciBufTensorAttrKey_SizePerDim
Specifies the size of each tensor dimension.
Definition: nvscibuf.h:1922
NvSciColor_X12Bayer20CRBC
@ NvSciColor_X12Bayer20CRBC
Definition: nvscibuf.h:2517
NvSciBufObjAttachPeer
NvSciError NvSciBufObjAttachPeer(NvSciBufObj bufObj, const NvSciBufAttrList inputArray[], size_t inputCount)
Allows remote peer NvSciIpcEndpoint to gain access to already allocated NvSciBufObj.
NvSciBufImageAttrKey_SurfBPC
@ NvSciBufImageAttrKey_SurfBPC
Specifies the NvSciBufSurfBPC.
Definition: nvscibuf.h:1700
NvSciBufCompressionType
NvSciBufCompressionType
an enum spcifying various GPU compression values supported by NvSciBuf
Definition: nvscibuf.h:3322
NvSciColor_U10
@ NvSciColor_U10
Definition: nvscibuf.h:2590
NvSciBufTensorAttrKey_NumDims
@ NvSciBufTensorAttrKey_NumDims
Specifies the number of tensor dimensions.
Definition: nvscibuf.h:1885
NvSciBufAttrKeyValuePair::key
NvSciBufAttrKey key
NvSciBufAttrKey for which value needs to be set/retrieved.
Definition: nvscibuf.h:3500
NV_SCI_BUF_RAW_BUF_ATTR_KEY_START
#define NV_SCI_BUF_RAW_BUF_ATTR_KEY_START
Indicates starting value of NvSciBufAttrKey for NvSciBufType_RawBuffer.
Definition: nvscibuf.h:370
NvSciBufPyramidAttrKey_NumLevels
@ NvSciBufPyramidAttrKey_NumLevels
Specifies the number of levels of images in a pyramid.
Definition: nvscibuf.h:2224
NvSciColor_A16Y16U16V16
@ NvSciColor_A16Y16U16V16
Definition: nvscibuf.h:2622
NvSciDataType_Uint8
@ NvSciDataType_Uint8
Definition: nvscibuf.h:3307
NvSciBufScan_InterlaceType
@ NvSciBufScan_InterlaceType
Definition: nvscibuf.h:2386
NvSciColor_X12Bayer20RCCB
@ NvSciColor_X12Bayer20RCCB
Definition: nvscibuf.h:2515
NvSciBufImage_BlockLinearType
@ NvSciBufImage_BlockLinearType
Block linear layout format.
Definition: nvscibuf.h:2372
NvSciColor_U8Y8V8Y8
@ NvSciColor_U8Y8V8Y8
Definition: nvscibuf.h:2620
NvSciSurfMemLayout_Planar
@ NvSciSurfMemLayout_Planar
Planar format.
Definition: nvscibuf.h:3234
NvSciBufSurfBPC
NvSciBufSurfBPC
Bits Per Component.
Definition: nvscibuf.h:3262
NvSciBufGeneralAttrKey_EnableGpuCompression
@ NvSciBufGeneralAttrKey_EnableGpuCompression
Specifies whether to enable/disable GPU compression for the particular GPU.
Definition: nvscibuf.h:811
NvSciColorStd_REC2020_ER
@ NvSciColorStd_REC2020_ER
Definition: nvscibuf.h:3183
NV_SCI_BUF_KEYTYPE_BIT_START
#define NV_SCI_BUF_KEYTYPE_BIT_START
Global constant to specify the start-bit of attribute key type.
Definition: nvscibuf.h:357
NvSciBufPlatformName_LowerBound
@ NvSciBufPlatformName_LowerBound
Definition: nvscibuf.h:3438
NV_SCI_BUF_MAX_GPUS
#define NV_SCI_BUF_MAX_GPUS
Maximum number of GPUs that can share the NvSciBufObj.
Definition: nvscibuf.h:333
NvSciBufObjGetCpuPtr
NvSciError NvSciBufObjGetCpuPtr(NvSciBufObj bufObj, void **ptr)
Gets the CPU virtual address (VA) of the read/write buffer referenced by the NvSciBufObj.
NvSciBufTensorAttrKey_Size
@ NvSciBufTensorAttrKey_Size
Specifies the size of the NvSciBufType_Tensor NvSciBufObj with NvSciBufTensorAttrKey_NumDims tensor d...
Definition: nvscibuf.h:2066
bufObj
const WFDPipeline NvSciBufObj *const bufObj
Definition: wfdext.h:82
NvSciBufImageAttrKey_SurfMemLayout
@ NvSciBufImageAttrKey_SurfMemLayout
Specifies the NvSciBufSurfMemLayout.
Definition: nvscibuf.h:1634
NvSciBufAttrListReconcile
NvSciError NvSciBufAttrListReconcile(const NvSciBufAttrList inputArray[], size_t inputCount, NvSciBufAttrList *newReconciledAttrList, NvSciBufAttrList *newConflictList)
Reconciles the given unreconciled NvSciBufAttrList(s) into a new reconciled NvSciBufAttrList.
NvSciColor_FloatISP_Bayer16CRCC
@ NvSciColor_FloatISP_Bayer16CRCC
Definition: nvscibuf.h:2508
NvSciBufAttrKey_LowerBound
@ NvSciBufAttrKey_LowerBound
Specifies the lower bound value to check for a valid NvSciBuf attribute key type.
Definition: nvscibuf.h:449
NvSciColor_X2Bayer14IGGR_IGGB
@ NvSciColor_X2Bayer14IGGR_IGGB
Definition: nvscibuf.h:2714
NvSciDataType_Uint16
@ NvSciDataType_Uint16
Definition: nvscibuf.h:3309
NvSciSurfBPC_14
@ NvSciSurfBPC_14
14 bits per component
Definition: nvscibuf.h:3277
NvSciBufMinorVersion
static const uint32_t NvSciBufMinorVersion
NvSciBuf API Minor version number.
Definition: nvscibuf.h:167
NvSciColor_Bayer16RCCC
@ NvSciColor_Bayer16RCCC
Definition: nvscibuf.h:2466
NvSciBufScan_ProgressiveType
@ NvSciBufScan_ProgressiveType
Definition: nvscibuf.h:2385
NvSciColor_X12Bayer20RGGB
@ NvSciColor_X12Bayer20RGGB
Definition: nvscibuf.h:2512
NvSciBufTensorAttrKey_DataType
@ NvSciBufTensorAttrKey_DataType
Specifies the tensor data type.
Definition: nvscibuf.h:1857
NvSciBufImageAttrKey_SurfColorStd
@ NvSciBufImageAttrKey_SurfColorStd
Specifies the NvSciBufAttrValColorStd applicable to all the surface's planes.
Definition: nvscibuf.h:1833
NvSciDataType_Uint4
@ NvSciDataType_Uint4
Definition: nvscibuf.h:3305
reserved
uint8_t reserved[504]
Reserved.
Definition: IMUTypes.h:181
NvSciBufArrayAttrKey_Alignment
@ NvSciBufArrayAttrKey_Alignment
Indicates the base alignment of a NvSciBufType_Array.
Definition: nvscibuf.h:2197
NvSciColor_Bayer16GBRG
@ NvSciColor_Bayer16GBRG
Definition: nvscibuf.h:2459
NvSciBufAttrListSlotGetAttrs
NvSciError NvSciBufAttrListSlotGetAttrs(NvSciBufAttrList attrList, size_t slotIndex, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount)
Returns an array of NvSciBufAttrKeyValuePair(s) from input NvSciBufAttrList at the given slot index.
NvSciColor_FloatISP_Bayer16GRBG
@ NvSciColor_FloatISP_Bayer16GRBG
Definition: nvscibuf.h:2500
NvSciBufAttrListIpcImportReconciled
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)...
NvSciColor_Bayer16BGGR
@ NvSciColor_Bayer16BGGR
Definition: nvscibuf.h:2457
NvSciBufImageAttrKey_PlaneOffset
@ NvSciBufImageAttrKey_PlaneOffset
Indicates the starting offset of the NvSciBufType_Image plane from the first plane.
Definition: nvscibuf.h:1380
NvSciColor_X2Bayer14GBIG_GRIG
@ NvSciColor_X2Bayer14GBIG_GRIG
Definition: nvscibuf.h:2708
NvSciColor_X2Bayer14RGGI_BGGI
@ NvSciColor_X2Bayer14RGGI_BGGI
Definition: nvscibuf.h:2711
NvSciBufHwEngName_NVJPG
@ NvSciBufHwEngName_NVJPG
Definition: nvscibuf.h:3424
NvSciColor_X2Bayer14CCCC
@ NvSciColor_X2Bayer14CCCC
Definition: nvscibuf.h:2482
NvSciBufObj
struct NvSciBufObjRefRec * NvSciBufObj
A memory object is a container holding the reconciled NvSciBufAttrList defining constraints of the bu...
Definition: nvscibuf.h:3525
NvSciColor_V8Y8U8Y8
@ NvSciColor_V8Y8U8Y8
Definition: nvscibuf.h:2621
NvSciBufObj
struct NvSciBufObjRefRec * NvSciBufObj
Definition: wfdext.h:71
NvSciBufGeneralAttrKey_GpuId
@ NvSciBufGeneralAttrKey_GpuId
GpuIDs of the GPUs in the system that will access the buffer.
Definition: nvscibuf.h:597
NvSciBufImageAttrKey_SurfType
@ NvSciBufImageAttrKey_SurfType
Specifies the NvSciBufSurfType.
Definition: nvscibuf.h:1602
NvSciSurfSampleType_422R
@ NvSciSurfSampleType_422R
4:2:2 (transposed) subsampling
Definition: nvscibuf.h:3251
NvSciBufAttrValGpuCompression
Datatype specifying compression type needed for a particular GPU ID.
Definition: nvscibuf.h:3380
NvSciColor_Signed_X2Bayer14CCCC
@ NvSciColor_Signed_X2Bayer14CCCC
Definition: nvscibuf.h:2493
NvSciBufGeneralAttrKey_CpuNeedSwCacheCoherency
@ NvSciBufGeneralAttrKey_CpuNeedSwCacheCoherency
Indicates whether the CPU is required to flush before reads and after writes.
Definition: nvscibuf.h:619
NvSciBufHwEngName_Vic
@ NvSciBufHwEngName_Vic
Definition: nvscibuf.h:3420
NvSciBufSurfType
NvSciBufSurfType
Surface types.
Definition: nvscibuf.h:3195
NvSciColor_X2Bayer14GIRG_GIBG
@ NvSciColor_X2Bayer14GIRG_GIBG
Definition: nvscibuf.h:2713
NvSciBufAttrList
struct NvSciBufAttrListRec * NvSciBufAttrList
Definition: wfdext.h:73
NvSciBufImageAttrKey_ImageCount
@ NvSciBufImageAttrKey_ImageCount
Attribute to specify number of NvSciBufType_Image(s) for which buffer should be allocated.
Definition: nvscibuf.h:1570
NvSciBufHwEngName_NPM
@ NvSciBufHwEngName_NPM
Definition: nvscibuf.h:3429
NvSciBufImageAttrKey_PlaneAlignedSize
@ NvSciBufImageAttrKey_PlaneAlignedSize
Indicates the aligned size of every plane.
Definition: nvscibuf.h:1538
NvSciColor_Bayer16BGGI_RGGI
@ NvSciColor_Bayer16BGGI_RGGI
Definition: nvscibuf.h:2717
NvSciColor_X4Bayer12CBRC
@ NvSciColor_X4Bayer12CBRC
Definition: nvscibuf.h:2488
NvSciBufType_RawBuffer
@ NvSciBufType_RawBuffer
Definition: nvscibuf.h:136
NvSciColor_Bayer16RGGI_BGGI
@ NvSciColor_Bayer16RGGI_BGGI
Definition: nvscibuf.h:2721
NvSciBufAccessPerm_Auto
@ NvSciBufAccessPerm_Auto
Usage of Auto permissions is restricted only for export, import APIs and shouldn't be used to set val...
Definition: nvscibuf.h:2358
NvSciBufImageAttrKey_VprFlag
@ NvSciBufImageAttrKey_VprFlag
Specifies the VPR flag for the NvSciBufType_Image.
Definition: nvscibuf.h:1095
NvSciBufAttrListIpcExportUnreconciled
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 ...
NvSciColor_Signed_X12Bayer20GBRG
@ NvSciColor_Signed_X12Bayer20GBRG
Definition: nvscibuf.h:2528
NvSciBufArrayAttrKey_Size
@ NvSciBufArrayAttrKey_Size
Specifies the size of the NvSciBufType_Array NvSciBufObj that the underlying buffer allocation satisf...
Definition: nvscibuf.h:2175
NvSciColor_X4Bayer12IGGB_IGGR
@ NvSciColor_X4Bayer12IGGB_IGGR
Definition: nvscibuf.h:2700
NvSciColor_FloatISP_Bayer16CCRC
@ NvSciColor_FloatISP_Bayer16CCRC
Definition: nvscibuf.h:2509
NvSciColorStd_YcCbcCrc_ER
@ NvSciColorStd_YcCbcCrc_ER
Definition: nvscibuf.h:3185
NvSciBufObjGetMaxPerm
NvSciError NvSciBufObjGetMaxPerm(const NvSciBufObj bufObj, const NvSciIpcEndpoint ipcEndpoint, NvSciBufAttrValAccessPerm *accPerm)
Retrieve the NvSciBufAttrValAccessPerm of an NvSciBufObj for given NvSciIpcEndpoint.
NvSciColor_X4Bayer12RGGB_RJ
@ NvSciColor_X4Bayer12RGGB_RJ
Definition: nvscibuf.h:2747
NvSciColor_X2Bayer14GIBG_GIRG
@ NvSciColor_X2Bayer14GIBG_GIRG
Definition: nvscibuf.h:2709
NvSciBufAttrValAccessPerm
NvSciBufAttrValAccessPerm
Defines buffer access permissions for NvSciBufObj.
Definition: nvscibuf.h:2352
NvSciBufAttrListCreate
NvSciError NvSciBufAttrListCreate(NvSciBufModule module, NvSciBufAttrList *newAttrList)
Creates a new, single slot, unreconciled NvSciBufAttrList associated with the input NvSciBufModule wi...
NvSciBufImageAttrKey_ScanType
@ NvSciBufImageAttrKey_ScanType
Definition: nvscibuf.h:1340
NvSciColor_U12V12
@ NvSciColor_U12V12
Definition: nvscibuf.h:2569
NvSciColor_V12U12
@ NvSciColor_V12U12
Definition: nvscibuf.h:2570
NvSciColor_Bayer16CRBC
@ NvSciColor_Bayer16CRBC
Definition: nvscibuf.h:2464
NvSciBufModuleClose
void NvSciBufModuleClose(NvSciBufModule module)
Releases the NvSciBufModule obtained through an earlier call to NvSciBufModuleOpen().
NvSciColor_V12
@ NvSciColor_V12
Definition: nvscibuf.h:2593
NvSciDataType_FloatISP
@ NvSciDataType_FloatISP
Definition: nvscibuf.h:3314
NVSCIBUF_EXPORT_DESC_SIZE
#define NVSCIBUF_EXPORT_DESC_SIZE
Indicates the size of export descriptor.
Definition: nvscibuf.h:306
NvSciBufAttrListValidateReconciledAgainstAttrs
NvSciError NvSciBufAttrListValidateReconciledAgainstAttrs(const NvSciBufAttrList reconciledAttrList, const NvSciBufAttrKeyValuePair *pairArray, const size_t pairCount)
Validate the reconciled NvSciBufAttrList against the set of all attributes that the user has set in t...
NvSciBufPlatformName_UpperBound
@ NvSciBufPlatformName_UpperBound
Definition: nvscibuf.h:3447
NvSciBufAttrListValidateReconciled
NvSciError NvSciBufAttrListValidateReconciled(NvSciBufAttrList reconciledAttrList, const NvSciBufAttrList unreconciledAttrListArray[], size_t unreconciledAttrListCount, bool *isReconcileListValid)
Validates a reconciled NvSciBufAttrList against a set of unreconciled NvSciBufAttrList(s).
NvSciBufHwEngName_PCIe
@ NvSciBufHwEngName_PCIe
Definition: nvscibuf.h:3427
NvSciColor_X4Bayer12GIBG_GIRG
@ NvSciColor_X4Bayer12GIBG_GIRG
Definition: nvscibuf.h:2699
NvSciBufSurfMemLayout
NvSciBufSurfMemLayout
Memory type.
Definition: nvscibuf.h:3220
NvSciColor_FloatISP_Bayer16BGGR
@ NvSciColor_FloatISP_Bayer16BGGR
Definition: nvscibuf.h:2499
NvSciColor_Signed_A16
@ NvSciColor_Signed_A16
Definition: nvscibuf.h:2641
NvSciBufPlatformName_Orin
@ NvSciBufPlatformName_Orin
Late attaching peer(s) runs on DRIVEOS Orin platform.
Definition: nvscibuf.h:3440
NvSciColor_X4Bayer12BGGR
@ NvSciColor_X4Bayer12BGGR
Definition: nvscibuf.h:2477
NvSciColor_X4Bayer12GRIG_GBIG
@ NvSciColor_X4Bayer12GRIG_GBIG
Definition: nvscibuf.h:2702
NvSciColor_Float_A16B16G16R16
@ NvSciColor_Float_A16B16G16R16
Definition: nvscibuf.h:2645
NvSciColor_Signed_X12Bayer20CCCC
@ NvSciColor_Signed_X12Bayer20CCCC
Definition: nvscibuf.h:2523
NvSciBufPlatformName
NvSciBufPlatformName
Enum to identify the platform on which late attaching peer(s) is running.
Definition: nvscibuf.h:3437
NvSciColor_Y8V8Y8U8
@ NvSciColor_Y8V8Y8U8
Definition: nvscibuf.h:2619
NvSciColor_X2Bayer14BGGR
@ NvSciColor_X2Bayer14BGGR
Definition: nvscibuf.h:2476
NvSciColor_Bayer16IGGB_IGGR
@ NvSciColor_Bayer16IGGB_IGGR
Definition: nvscibuf.h:2720
NvSciBufAccessPerm_ReadWrite
@ NvSciBufAccessPerm_ReadWrite
Definition: nvscibuf.h:2354
NvSciColor_V16
@ NvSciColor_V16
Definition: nvscibuf.h:2595
NvSciColor_X6Bayer10IGGR_IGGB
@ NvSciColor_X6Bayer10IGGR_IGGB
Definition: nvscibuf.h:2694
NvSciBufAttrKeyValuePair::len
size_t len
Length of the value in bytes.
Definition: nvscibuf.h:3507
NvSciBufImageAttrKey_Size
@ NvSciBufImageAttrKey_Size
Specifies the size of the NvSciBufType_Image NvSciBufObj that the underlying buffer allocation satisf...
Definition: nvscibuf.h:1121
NvSciBufObjDup
NvSciError NvSciBufObjDup(NvSciBufObj bufObj, NvSciBufObj *dupObj)
Creates a new NvSciBufObj holding reference to the same Memory object to which input NvSciBufObj hold...
NvSciColorStd_REC2020_RGB
@ NvSciColorStd_REC2020_RGB
Definition: nvscibuf.h:3181
NvSciBufAttrValColorStd
NvSciBufAttrValColorStd
Defines the image color standard for NvSciBufType_Image.
Definition: nvscibuf.h:3175
NvSciColor_X6Bayer10GIBG_GIRG
@ NvSciColor_X6Bayer10GIBG_GIRG
Definition: nvscibuf.h:2689
NvSciColor_X12Bayer20BCCR
@ NvSciColor_X12Bayer20BCCR
Definition: nvscibuf.h:2516
NvSciBufAttrListIpcImportUnreconciled
NvSciError NvSciBufAttrListIpcImportUnreconciled(NvSciBufModule module, NvSciIpcEndpoint ipcEndpoint, const void *descBuf, size_t descLen, NvSciBufAttrList *importedUnreconciledAttrList)
Translates an exported unreconciled NvSciBufAttrList descriptor (potentially received from any proces...
NvSciBufHwEngName_Gpu
@ NvSciBufHwEngName_Gpu
Definition: nvscibuf.h:3421
NvSciBufObjConst
const struct NvSciBufObjRefRec * NvSciBufObjConst
A reference, that is not modifiable, to a particular Memory Object.
Definition: nvscibuf.h:3530
NvSciColor_X6Bayer10RGGB
@ NvSciColor_X6Bayer10RGGB
Definition: nvscibuf.h:2481
NvSciBufHwEngName_Num
@ NvSciBufHwEngName_Num
Definition: nvscibuf.h:3430
NvSciBufTensorAttrKey_AlignmentPerDim
@ NvSciBufTensorAttrKey_AlignmentPerDim
Specifies the alignment constraints per tensor dimension.
Definition: nvscibuf.h:1955
NvSciBufGeneralAttrKey_NeedCpuAccess
@ NvSciBufGeneralAttrKey_NeedCpuAccess
Specifies if CPU access is required for the buffer.
Definition: nvscibuf.h:513
NvSciBufAttrListIsReconciled
NvSciError NvSciBufAttrListIsReconciled(NvSciBufAttrList attrList, bool *isReconciled)
Checks if the NvSciBufAttrList is reconciled.
NvSciColor_X4Bayer12GRBG
@ NvSciColor_X4Bayer12GRBG
Definition: nvscibuf.h:2474
NvSciBufType_Image
@ NvSciBufType_Image
Definition: nvscibuf.h:137
NvSciColor_G8
@ NvSciColor_G8
Definition: nvscibuf.h:2751
NvSciSurfSampleType_420
@ NvSciSurfSampleType_420
4:2:0 subsampling
Definition: nvscibuf.h:3245
NvSciColor_Bayer16CCCR
@ NvSciColor_Bayer16CCCR
Definition: nvscibuf.h:2467
NvSciColor_Signed_Bayer16CCCC
@ NvSciColor_Signed_Bayer16CCCC
Definition: nvscibuf.h:2496
NvSciDataType_Float32
@ NvSciDataType_Float32
Definition: nvscibuf.h:3313
NvSciBufGeneralAttrKey_Types
@ NvSciBufGeneralAttrKey_Types
An array of all types that the buffer is expected to have.
Definition: nvscibuf.h:482
NvSciSurfBPC_Layout_10_8_8
@ NvSciSurfBPC_Layout_10_8_8
10:8:8 bits per component layout
Definition: nvscibuf.h:3266
NvSciBufRect::y1
uint64_t y1
Bottom Y co-ordinate.
Definition: nvscibuf.h:3406
NvSciBufPyramidAttrKey_Scale
@ NvSciBufPyramidAttrKey_Scale
Specifies the scaling factor by which each successive image in a pyramid must be scaled.
Definition: nvscibuf.h:2252
NvSciBufCompressionType_GenericCompressible
@ NvSciBufCompressionType_GenericCompressible
Enum to request all possible GPU compression including enabling PLC (Post L-2 Compression).
Definition: nvscibuf.h:3344
NvSciColor_Bayer16CCRC
@ NvSciColor_Bayer16CCRC
Definition: nvscibuf.h:2469
NvSciBufObjIpcImport
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 bound ...
NvSciBufType
NvSciBufType
Enum definitions of NvSciBuf datatypes.
Definition: nvscibuf.h:131
NvSciColor_Y16
@ NvSciColor_Y16
Definition: nvscibuf.h:2587
NvSciBufSurfSampleType
NvSciBufSurfSampleType
Subsampling type.
Definition: nvscibuf.h:3243
NvSciBufObjGetAttrList
NvSciError NvSciBufObjGetAttrList(NvSciBufObj bufObj, NvSciBufAttrList *bufAttrList)
Retrieves the reconciled NvSciBufAttrList whose attributes define the constraints of the allocated bu...
NvSciBufHwEngName_Invalid
@ NvSciBufHwEngName_Invalid
Definition: nvscibuf.h:3415
nvsciipc.h
NVIDIA Software Communications Interface (SCI) : NvSci Inter-Process Communication
NvSciBufCompressionType_None
@ NvSciBufCompressionType_None
Default value spcifying that GPU compression defaults to incompressible kind.
Definition: nvscibuf.h:3333
NvSciColor_R8
@ NvSciColor_R8
Definition: nvscibuf.h:2750
NvSciColor_Bayer16GIBG_GIRG
@ NvSciColor_Bayer16GIBG_GIRG
Definition: nvscibuf.h:2719
NvSciColor_X4Bayer12BGGI_RGGI
@ NvSciColor_X4Bayer12BGGI_RGGI
Definition: nvscibuf.h:2697
NvSciBufAccessPerm_Readonly
@ NvSciBufAccessPerm_Readonly
Definition: nvscibuf.h:2353
NvSciBufArrayAttrKey_DataType
@ NvSciBufArrayAttrKey_DataType
Specifies the data type of a NvSciBufType_Array.
Definition: nvscibuf.h:2093
NvSciColor_A32
@ NvSciColor_A32
Definition: nvscibuf.h:2646
NvSciColor_Bayer16GIRG_GIBG
@ NvSciColor_Bayer16GIRG_GIBG
Definition: nvscibuf.h:2723
NvSciColor_V16U16
@ NvSciColor_V16U16
Definition: nvscibuf.h:2572
NvSciBufObjValidate
NvSciError NvSciBufObjValidate(NvSciBufObj bufObj)
Validates the NvSciBufObj satisfies the constraints of the NvSciBufAttrList that it is associated wit...
NvSciColor_FloatISP_Bayer16RGGB
@ NvSciColor_FloatISP_Bayer16RGGB
Definition: nvscibuf.h:2498
NvSciColor_U16V16
@ NvSciColor_U16V16
Definition: nvscibuf.h:2571
NvSciColor_X12Bayer20CCCR
@ NvSciColor_X12Bayer20CCCR
Definition: nvscibuf.h:2520
NvSciBufHwEngName_NVDEC
@ NvSciBufHwEngName_NVDEC
Definition: nvscibuf.h:3423
NvSciColor_Bayer16IGGR_IGGB
@ NvSciColor_Bayer16IGGR_IGGB
Definition: nvscibuf.h:2724
NvSciColor_A8
@ NvSciColor_A8
Definition: nvscibuf.h:2634
NvSciBufGeneralAttrKey_PeerLocationInfo
@ NvSciBufGeneralAttrKey_PeerLocationInfo
An attribute indicating location information of late attaching peer(s) which are going to gain access...
Definition: nvscibuf.h:845
NvSciColorStd_REQ2020PQ_ER
@ NvSciColorStd_REQ2020PQ_ER
Definition: nvscibuf.h:3187
NvSciSurfBPC_12
@ NvSciSurfBPC_12
12 bits per component
Definition: nvscibuf.h:3272
NvSciBufHwEngName_MSENC
@ NvSciBufHwEngName_MSENC
Definition: nvscibuf.h:3422
NvSciColor_B8
@ NvSciColor_B8
Definition: nvscibuf.h:2752
NvSciIpcEndpoint
uint64_t NvSciIpcEndpoint
Handle to the NvSciIpc endpoint.
Definition: nvsciipc.h:304
NV_SCI_BUF_IMAGE_ATTR_KEY_START
#define NV_SCI_BUF_IMAGE_ATTR_KEY_START
Indicates the starting value of NvSciBufAttrKey for NvSciBufType_Image.
Definition: nvscibuf.h:377
NV_SCI_BUF_ARRAY_ATTR_KEY_START
#define NV_SCI_BUF_ARRAY_ATTR_KEY_START
Indicates the starting value of NvSciBufAttrKey for NvSciBufType_Array.
Definition: nvscibuf.h:391
NvSciSurfSampleType_422
@ NvSciSurfSampleType_422
4:2:2 subsampling
Definition: nvscibuf.h:3247
NvSciColor_Bayer16CBRC
@ NvSciColor_Bayer16CBRC
Definition: nvscibuf.h:2465
NvSciBufAttrKey
NvSciBufAttrKey
Describes the NvSciBuf public attribute keys holding corresponding values specifying buffer constrain...
Definition: nvscibuf.h:444
NvSciBufImageAttrKey_PlanePitch
@ NvSciBufImageAttrKey_PlanePitch
Outputs the pitch (aka width in bytes) for every plane.
Definition: nvscibuf.h:1469
NvSciBufObjGetConstCpuPtr
NvSciError NvSciBufObjGetConstCpuPtr(NvSciBufObj bufObj, const void **ptr)
Gets the CPU virtual address (VA) of the read-only buffer referenced by the NvSciBufObj.
NvSciBufAttrKey_UpperBound
@ NvSciBufAttrKey_UpperBound
Specifies the maximum number of NvSciBuf attribute keys.
Definition: nvscibuf.h:2334
NvSciBufImageAttrKey_RightPadding
@ NvSciBufImageAttrKey_RightPadding
Specifies the right padding for the NvSciBufType_Image.
Definition: nvscibuf.h:1072
NvSciSurfComponentOrder_YVU
@ NvSciSurfComponentOrder_YVU
YVU component order.
Definition: nvscibuf.h:3292
NvSciColor_U8
@ NvSciColor_U8
Definition: nvscibuf.h:2588
NvSciColor_Bayer16CRCC
@ NvSciColor_Bayer16CRCC
Definition: nvscibuf.h:2468
NvSciDataType_Int16
@ NvSciDataType_Int16
Definition: nvscibuf.h:3308
NvSciBufImageAttrKey_PlaneCount
@ NvSciBufImageAttrKey_PlaneCount
Specifies the number of planes for NvSciBufType_Image.
Definition: nvscibuf.h:1172
NvSciBufRect::x1
uint64_t x1
Right X co-ordinate.
Definition: nvscibuf.h:3404
NvSciBufModuleOpen
NvSciError NvSciBufModuleOpen(NvSciBufModule *newModule)
Initializes and returns a new NvSciBufModule with no NvSciBufAttrLists, buffers, or NvSciBufObjs boun...
NvSciSurfBPC_Layout_16_8_8
@ NvSciSurfBPC_Layout_16_8_8
16:8:8 bits per component layout
Definition: nvscibuf.h:3264
NvSciBufRawBufferAttrKey_Size
@ NvSciBufRawBufferAttrKey_Size
Specifies the size of the NvSciBufType_RawBuffer NvSciBufObj that the underlying buffer allocation sa...
Definition: nvscibuf.h:899
NvSciBufHwEngName_Csi
@ NvSciBufHwEngName_Csi
Definition: nvscibuf.h:3419
NvSciColor_X6Bayer10GBRG
@ NvSciColor_X6Bayer10GBRG
Definition: nvscibuf.h:2472
NvSciColor_A8R8G8B8
@ NvSciColor_A8R8G8B8
Definition: nvscibuf.h:2637
NV_SCI_BUF_PEER_INFO_SELF_SOCID
#define NV_SCI_BUF_PEER_INFO_SELF_SOCID
Self SOC ID value if the late peer is from same SoC.
Definition: nvscibuf.h:316
NvSciBufPyramidAttrKey_LevelSize
@ NvSciBufPyramidAttrKey_LevelSize
Buffer size per pyramid level.
Definition: nvscibuf.h:2304
NvSciBufImageAttrKey_TopPadding
@ NvSciBufImageAttrKey_TopPadding
Specifies the top padding for the NvSciBufType_Image.
Definition: nvscibuf.h:985
NvSciColor_Bayer16CCCC
@ NvSciColor_Bayer16CCCC
Definition: nvscibuf.h:2458
NvSciBufGeneralAttrKey_EnableCpuCache
@ NvSciBufGeneralAttrKey_EnableCpuCache
Specifies whether to enable/disable CPU caching.
Definition: nvscibuf.h:567
NvSciBufImageAttrKey_PlaneScanType
@ NvSciBufImageAttrKey_PlaneScanType
Specifies the NvSciBufType_Image scan type: Progressive or Interlaced.
Definition: nvscibuf.h:1339
NvSciColor_X4Bayer12GIRG_GIBG
@ NvSciColor_X4Bayer12GIRG_GIBG
Definition: nvscibuf.h:2703
NvSciColor_X2Bayer14GBRG
@ NvSciColor_X2Bayer14GBRG
Definition: nvscibuf.h:2470
NvSciColor_X4Bayer12GBRG
@ NvSciColor_X4Bayer12GBRG
Definition: nvscibuf.h:2471
NvSciColor_X6Bayer10BGGR
@ NvSciColor_X6Bayer10BGGR
Definition: nvscibuf.h:2478
NvSciBufModule
struct NvSciBufModuleRec * NvSciBufModule
top-level container for the following set of resources: NvSciBufAttrLists, memory objects,...
Definition: nvscibuf.h:3484
NvSciColor_Y8
@ NvSciColor_Y8
Definition: nvscibuf.h:2584
NvSciColor_U12
@ NvSciColor_U12
Definition: nvscibuf.h:2592
NvSciBufAttrKeyValuePair
This structure defines a key/value pair used to get or set the NvSciBufAttrKey(s) and their correspon...
Definition: nvscibuf.h:3496
NvSciDataType_Float16
@ NvSciDataType_Float16
Definition: nvscibuf.h:3312
NvSciBufHwEngName_PVA
@ NvSciBufHwEngName_PVA
Definition: nvscibuf.h:3425
NvSciBufAttrList
struct NvSciBufAttrListRec * NvSciBufAttrList
A container constituting an attribute list which contains.
Definition: nvscibuf.h:3543
NvSciColor_X6Bayer10BGGI_RGGI
@ NvSciColor_X6Bayer10BGGI_RGGI
Definition: nvscibuf.h:2687
NvSciBufTensorAttrKey_StridesPerDim
@ NvSciBufTensorAttrKey_StridesPerDim
Returns the stride value (in bytes) for each tensor dimension.
Definition: nvscibuf.h:1977
NvSciBufMajorVersion
static const uint32_t NvSciBufMajorVersion
NvSciBuf API Major version number.
Definition: nvscibuf.h:160
NvSciColor_A16
@ NvSciColor_A16
Definition: nvscibuf.h:2640
NvSciColor_Bayer16RCCB
@ NvSciColor_Bayer16RCCB
Definition: nvscibuf.h:2462
NvSciBufAttrListSetAttrs
NvSciError NvSciBufAttrListSetAttrs(NvSciBufAttrList attrList, NvSciBufAttrKeyValuePair *pairArray, size_t pairCount)
Sets the values for NvSciBufAttrKey(s) in the slot 0 of input NvSciBufAttrList.
NvSciBufType_Tensor
@ NvSciBufType_Tensor
Definition: nvscibuf.h:138
NvSciColor_X6Bayer10GRIG_GBIG
@ NvSciColor_X6Bayer10GRIG_GBIG
Definition: nvscibuf.h:2692
NvSciBufImageAttrKey_LeftPadding
@ NvSciBufImageAttrKey_LeftPadding
Specifies the left padding for the NvSciBufType_Image.
Definition: nvscibuf.h:1043
NvSciBufAttrValGpuCache::gpuId
NvSciRmGpuId gpuId
GPU ID for which cache preference need to be specified.
Definition: nvscibuf.h:3368
NvSciBufAttrKeyValuePair::value
const void * value
Pointer to the value corresponding to the attribute.
Definition: nvscibuf.h:3504
NvSciColor_Y10
@ NvSciColor_Y10
Definition: nvscibuf.h:2585
NvSciColor_UpperBound
@ NvSciColor_UpperBound
Definition: nvscibuf.h:2754
NvSciBufImageAttrKey_PlaneColorStd
@ NvSciBufImageAttrKey_PlaneColorStd
Specifies a set of plane color standards.
Definition: nvscibuf.h:1224
NvSciColor_A8Y8U8V8
@ NvSciColor_A8Y8U8V8
Definition: nvscibuf.h:2617
NvSciBufAttrValImageScanType
NvSciBufAttrValImageScanType
Defines the image scan type for NvSciBufType_Image.
Definition: nvscibuf.h:2384
NvSciColorStd_SENSOR_RGBA
@ NvSciColorStd_SENSOR_RGBA
Definition: nvscibuf.h:3186
NvSciBufAttrValGpuCache
Datatype specifying GPU cacheability preference for a particular GPU ID.
Definition: nvscibuf.h:3364
NvSciBufArrayAttrKey_Stride
@ NvSciBufArrayAttrKey_Stride
Specifies the stride of each element in the NvSciBufType_Array.
Definition: nvscibuf.h:2121
NvSciBufPlatformName_PG199
@ NvSciBufPlatformName_PG199
Late attaching peer(s) runs on x86 PG199 platform.
Definition: nvscibuf.h:3444
NvSciSurfMemLayout_MaxValid
@ NvSciSurfMemLayout_MaxValid
Definition: nvscibuf.h:3235
NvSciBufObjGetPixels
NvSciError NvSciBufObjGetPixels(NvSciBufObj bufObj, const NvSciBufRect *rect, void **dstPtrs, const uint32_t *dstPtrSizes, const uint32_t *dstPitches)
Gets pixels from the buffer represented by memory object pointed to by bufObj provided NvSciBufGenera...
NvSciBufAttrValDataType
NvSciBufAttrValDataType
Defines various numeric datatypes for NvSciBuf.
Definition: nvscibuf.h:3303
NvSciColor_Bayer8RGGB
@ NvSciColor_Bayer8RGGB
Definition: nvscibuf.h:2452
NvSciBufRect::x0
uint64_t x0
Left X co-ordinate.
Definition: nvscibuf.h:3400
NvSciColor_X12Bayer20CBRC
@ NvSciColor_X12Bayer20CBRC
Definition: nvscibuf.h:2518
NvSciColor_Signed_R16G16
@ NvSciColor_Signed_R16G16
Definition: nvscibuf.h:2642
NvSciColor_X4Bayer12CRBC
@ NvSciColor_X4Bayer12CRBC
Definition: nvscibuf.h:2487
NvSciColor_X6Bayer10CCCC
@ NvSciColor_X6Bayer10CCCC
Definition: nvscibuf.h:2484
NvSciSurfMemLayout_Packed
@ NvSciSurfMemLayout_Packed
Packed format.
Definition: nvscibuf.h:3226
NvSciColor_FloatISP_Bayer16RCCB
@ NvSciColor_FloatISP_Bayer16RCCB
Definition: nvscibuf.h:2502
NvSciBufImageAttrKey_PlaneChannelCount
@ NvSciBufImageAttrKey_PlaneChannelCount
Outputs number of channels per plane.
Definition: nvscibuf.h:1418
NvSciColor_Bayer8BGGR
@ NvSciColor_Bayer8BGGR
Definition: nvscibuf.h:2454
NvSciColor_FloatISP_Bayer16CCCC
@ NvSciColor_FloatISP_Bayer16CCCC
Definition: nvscibuf.h:2497
NvSciColor_Bayer16BCCR
@ NvSciColor_Bayer16BCCR
Definition: nvscibuf.h:2463
NvSciColor_FloatISP_Bayer16GBRG
@ NvSciColor_FloatISP_Bayer16GBRG
Definition: nvscibuf.h:2501
NvSciColor_Bayer16GBIG_GRIG
@ NvSciColor_Bayer16GBIG_GRIG
Definition: nvscibuf.h:2718
NvSciDataType_UpperBound
@ NvSciDataType_UpperBound
Definition: nvscibuf.h:3316
NvSciBufImageAttrKey_PlaneColorFormat
@ NvSciBufImageAttrKey_PlaneColorFormat
Specifies the NvSciBufAttrValColorFmt of the NvSciBufType_Image plane.
Definition: nvscibuf.h:1197
NvSciColor_X12Bayer20BGGR
@ NvSciColor_X12Bayer20BGGR
Definition: nvscibuf.h:2511
NvSciColor_X12Bayer20GRBG
@ NvSciColor_X12Bayer20GRBG
Definition: nvscibuf.h:2513
NvSciBufAttrValGpuCompression::gpuId
NvSciRmGpuId gpuId
GPU ID for which compression needs to be specified.
Definition: nvscibuf.h:3384
NvSciColor_X4Bayer12CRCC
@ NvSciColor_X4Bayer12CRCC
Definition: nvscibuf.h:2491
NvSciColorStd_REC601_SR
@ NvSciColorStd_REC601_SR
Definition: nvscibuf.h:3177
NvSciBufImageAttrKey_PlaneBitsPerPixel
@ NvSciBufImageAttrKey_PlaneBitsPerPixel
Outputs number of bits per pixel corresponding to the NvSciBufAttrValColorFmt for each plane specifie...
Definition: nvscibuf.h:1360
NvSciColor_FloatISP_Bayer16CBRC
@ NvSciColor_FloatISP_Bayer16CBRC
Definition: nvscibuf.h:2505
NvSciColor_X4Bayer12RCCC
@ NvSciColor_X4Bayer12RCCC
Definition: nvscibuf.h:2489
NV_SCI_BUF_TENSOR_MAX_DIMS
#define NV_SCI_BUF_TENSOR_MAX_DIMS
Maximum number of dimensions supported by NvSciBufType_Tensor.
Definition: nvscibuf.h:289
NvSciBufArrayAttrKey_Capacity
@ NvSciBufArrayAttrKey_Capacity
Specifies the NvSciBufType_Array capacity.
Definition: nvscibuf.h:2146
NvSciBufAttrListReconcileAndObjAlloc
NvSciError NvSciBufAttrListReconcileAndObjAlloc(const NvSciBufAttrList attrListArray[], size_t attrListCount, NvSciBufObj *bufObj, NvSciBufAttrList *newConflictList)
Reconciles the input unreconciled NvSciBufAttrList(s) into a new reconciled NvSciBufAttrList and allo...
NvSciBufTensorAttrKey_PixelFormat
@ NvSciBufTensorAttrKey_PixelFormat
Attribute providing pixel format of the tensor.
Definition: nvscibuf.h:2012
NvSciColor_Float_A16
@ NvSciColor_Float_A16
Definition: nvscibuf.h:2648
NvSciBufHwEngName
NvSciBufHwEngName
Enum to identify hardware engines.
Definition: nvscibuf.h:3414
NvSciColor_X4Bayer12RGGI_BGGI
@ NvSciColor_X4Bayer12RGGI_BGGI
Definition: nvscibuf.h:2701
NvSciBufType_MaxValid
@ NvSciBufType_MaxValid
Definition: nvscibuf.h:141
NvSciBufGeneralAttrKey_RequiredPerm
@ NvSciBufGeneralAttrKey_RequiredPerm
Specifies buffer access permissions.
Definition: nvscibuf.h:532
NvSciColor_X6Bayer10GIRG_GIBG
@ NvSciColor_X6Bayer10GIRG_GIBG
Definition: nvscibuf.h:2693
NvSciBufAttrValImageLayoutType
NvSciBufAttrValImageLayoutType
Defines the image layout type for NvSciBufType_Image.
Definition: nvscibuf.h:2367
NvSciColor_Bayer8GRBG
@ NvSciColor_Bayer8GRBG
Definition: nvscibuf.h:2456
NvSciColorStd_SRGB
@ NvSciColorStd_SRGB
Definition: nvscibuf.h:3176
NvSciDataType_Int4
@ NvSciDataType_Int4
Definition: nvscibuf.h:3304
NvSciBufIpcImportAttrListAndObj
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 t...
NvSciSurfType_MaxValid
@ NvSciSurfType_MaxValid
Definition: nvscibuf.h:3212
NvSciBufAttrListAndObjFreeDesc
void NvSciBufAttrListAndObjFreeDesc(void *attrListAndObjDescBuf)
Frees the descriptor used for exporting both NvSciBufAttrList and NvSciBufObj together.
NvSciColor_Bayer16GRBG
@ NvSciColor_Bayer16GRBG
Definition: nvscibuf.h:2460
NvSciBufPlatformName_PG189
@ NvSciBufPlatformName_PG189
Late attaching peer(s) runs on x86 PG189 platform.
Definition: nvscibuf.h:3442
NvSciBufHwEngName_Display
@ NvSciBufHwEngName_Display
Definition: nvscibuf.h:3416
NvSciColor_V8
@ NvSciColor_V8
Definition: nvscibuf.h:2589
NvSciBufAttrListFree
void NvSciBufAttrListFree(NvSciBufAttrList attrList)
Frees the NvSciBufAttrList and removes its association with the NvSciBufModule with which it was crea...
NvSciColor_Signed_A16B16G16R16
@ NvSciColor_Signed_A16B16G16R16
Definition: nvscibuf.h:2644
NvSciSurfComponentOrder_MaxValid
@ NvSciSurfComponentOrder_MaxValid
Definition: nvscibuf.h:3295
NvSciSurfType_RGBA
@ NvSciSurfType_RGBA
RGBA surface.
Definition: nvscibuf.h:3204
NvSciSurfBPC_MaxValid
@ NvSciSurfBPC_MaxValid
Definition: nvscibuf.h:3280
NvSciBufImageAttrKey_PlaneHeight
@ NvSciBufImageAttrKey_PlaneHeight
Specifies the NvSciBufType_Image plane height in number of pixels.
Definition: nvscibuf.h:1310
NvSciColor_A2R10G10B10
@ NvSciColor_A2R10G10B10
Definition: nvscibuf.h:2639
NvSciDataType_Bool
@ NvSciDataType_Bool
Definition: nvscibuf.h:3315
NvSciColor_FloatISP_Bayer16CRBC
@ NvSciColor_FloatISP_Bayer16CRBC
Definition: nvscibuf.h:2504
NvSciBufGeneralAttrKey_EnableGpuCache
@ NvSciBufGeneralAttrKey_EnableGpuCache
An array of NvSciBufAttrValGpuCache[] specifying GPU cacheability requirements.
Definition: nvscibuf.h:718
NvSciBufRect::y0
uint64_t y0
Top Y co-ordinate.
Definition: nvscibuf.h:3402
NvSciColor_X12Bayer20CCCC
@ NvSciColor_X12Bayer20CCCC
Definition: nvscibuf.h:2510
NvSciColor_X2Bayer14IGGB_IGGR
@ NvSciColor_X2Bayer14IGGB_IGGR
Definition: nvscibuf.h:2710
NvSciColor_X4Bayer12CCCR
@ NvSciColor_X4Bayer12CCCR
Definition: nvscibuf.h:2490
NV_SCI_BUF_DATATYPE_BIT_COUNT
#define NV_SCI_BUF_DATATYPE_BIT_COUNT
Global constant to indicate number of bits used for defining NvSciBufType of an attribute key.
Definition: nvscibuf.h:347
NvSciBufHwEngName_DLA
@ NvSciBufHwEngName_DLA
Definition: nvscibuf.h:3426
NvSciColor_X2Bayer14GRBG
@ NvSciColor_X2Bayer14GRBG
Definition: nvscibuf.h:2473
NvSciColorStd_REC2020_SR
@ NvSciColorStd_REC2020_SR
Definition: nvscibuf.h:3182
NvSciBufIpcExportAttrListAndObj
NvSciError NvSciBufIpcExportAttrListAndObj(NvSciBufObj bufObj, NvSciBufAttrValAccessPerm permissions, NvSciIpcEndpoint ipcEndpoint, void **attrListAndObjDesc, size_t *attrListAndObjDescSize)
Exports NvSciBufAttrList and NvSciBufObj into an NvSciIpc-transferable object export descriptor.
NvSciSurfComponentOrder_YUV
@ NvSciSurfComponentOrder_YUV
YUV component order.
Definition: nvscibuf.h:3290
NvSciBufImageAttrKey_PlaneWidth
@ NvSciBufImageAttrKey_PlaneWidth
Specifies the NvSciBufType_Image plane width in pixels.
Definition: nvscibuf.h:1286
NvSciColorStd_YcCbcCrc_SR
@ NvSciColorStd_YcCbcCrc_SR
Definition: nvscibuf.h:3184
nvscierror.h
NvSciColor_Bayer8GBRG
@ NvSciColor_Bayer8GBRG
Definition: nvscibuf.h:2455
NvSciSurfMemLayout_SemiPlanar
@ NvSciSurfMemLayout_SemiPlanar
Semi-planar format.
Definition: nvscibuf.h:3230
NvSciBufRect
Datatype specifying the surface co-ordinates for NvSciBufObjGetPixels / NvSciBufObjPutPixels function...
Definition: nvscibuf.h:3398
NvSciBufAttrValColorFmt
NvSciBufAttrValColorFmt
Defines the image color formats for NvSciBufType_Image.
Definition: nvscibuf.h:2429
NvSciColor_X12Bayer20RCCC
@ NvSciColor_X12Bayer20RCCC
Definition: nvscibuf.h:2519
NvSciBufGeneralAttrKey_GpuSwNeedCacheCoherency
@ NvSciBufGeneralAttrKey_GpuSwNeedCacheCoherency
An attribute indicating whether application needs to perform GPU cache maintenance before read and af...
Definition: nvscibuf.h:745
NvSciColor_Y12
@ NvSciColor_Y12
Definition: nvscibuf.h:2586
NvSciColor_V8_U8
@ NvSciColor_V8_U8
Note : NvSciColor_V8_U8 will be deprecated in future release.
Definition: nvscibuf.h:2566
NV_SCI_BUF_PEER_INFO_SELF_VMID
#define NV_SCI_BUF_PEER_INFO_SELF_VMID
Self VM ID value if the late peer is from same VM.
Definition: nvscibuf.h:321
NvSciSurfType_RAW
@ NvSciSurfType_RAW
RAW surface.
Definition: nvscibuf.h:3211
NvSciBufAttrValGpuCompression::compressionType
NvSciBufCompressionType compressionType
Type of compression.
Definition: nvscibuf.h:3389
NvSciBufImageAttrKey_SurfSampleType
@ NvSciBufImageAttrKey_SurfSampleType
Specifies the NvSciBufSurfSampleType.
Definition: nvscibuf.h:1668
NvSciBufImage_PitchLinearType
@ NvSciBufImage_PitchLinearType
Pitch linear layout format.
Definition: nvscibuf.h:2376
NV_SCI_BUF_PEER_HW_ENGINE_MAX_NUMBER
#define NV_SCI_BUF_PEER_HW_ENGINE_MAX_NUMBER
Global Constant to define maximum number of NvSciBufPeerHwEngine supported.
Definition: nvscibuf.h:327
NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC
#define NV_SCI_BUF_ATTR_KEY_TYPE_PUBLIC
Global constant to indicate the attribute key type is public.
Definition: nvscibuf.h:352
NvSciSurfType_YUV
@ NvSciSurfType_YUV
YUV surface.
Definition: nvscibuf.h:3197
NvSciColor_U8V8
@ NvSciColor_U8V8
Definition: nvscibuf.h:2555
NvSciBufType_General
@ NvSciBufType_General
Reserved for General keys.
Definition: nvscibuf.h:135
NvSciColor_Bayer16GRIG_GBIG
@ NvSciColor_Bayer16GRIG_GBIG
Definition: nvscibuf.h:2722
NvSciBufPyramidAttrKey_LevelOffset
@ NvSciBufPyramidAttrKey_LevelOffset
Buffer offset per level.
Definition: nvscibuf.h:2276
NvSciColor_X6Bayer10RGGI_BGGI
@ NvSciColor_X6Bayer10RGGI_BGGI
Definition: nvscibuf.h:2691
NvSciColor_U10V10
@ NvSciColor_U10V10
Definition: nvscibuf.h:2567
NvSciSurfSampleType_MaxValid
@ NvSciSurfSampleType_MaxValid
Definition: nvscibuf.h:3254
NvSciBufAccessPerm_Invalid
@ NvSciBufAccessPerm_Invalid
Definition: nvscibuf.h:2359
NvSciColor_U8_V8
@ NvSciColor_U8_V8
Note : NvSciColor_U8_V8 will be deprecated in future release.
Definition: nvscibuf.h:2560
NvSciColor_B8G8R8A8
@ NvSciColor_B8G8R8A8
Definition: nvscibuf.h:2636
NvSciBufAttrListIpcExportReconciled
NvSciError NvSciBufAttrListIpcExportReconciled(NvSciBufAttrList reconciledAttrList, NvSciIpcEndpoint ipcEndpoint, void **descBuf, size_t *descLen)
Transforms the reconciled NvSciBufAttrList to an exportable reconciled NvSciBufAttrList descriptor th...
NvSciBufGeneralAttrKey_ActualPerm
@ NvSciBufGeneralAttrKey_ActualPerm
Specifies the buffer access permissions to the NvSciBufObj.
Definition: nvscibuf.h:658
NvSciColor_FloatISP_Bayer16BCCR
@ NvSciColor_FloatISP_Bayer16BCCR
Definition: nvscibuf.h:2503
NvSciBufImageAttrKey_PlaneDatatype
@ NvSciBufImageAttrKey_PlaneDatatype
Outputs the NvSciBufAttrValDataType of each plane based on the NvSciBufAttrValColorFmt provided in Nv...
Definition: nvscibuf.h:1400
NvSciColor_V10
@ NvSciColor_V10
Definition: nvscibuf.h:2591
NvSciColor_X4Bayer12CCRC
@ NvSciColor_X4Bayer12CCRC
Definition: nvscibuf.h:2492
NvSciBufImageAttrKey_Alignment
@ NvSciBufImageAttrKey_Alignment
Output alignment of the NvSciBufType_Image after successful reconciliation.
Definition: nvscibuf.h:1144
NvSciColorStd_REC709_ER
@ NvSciColorStd_REC709_ER
Definition: nvscibuf.h:3180
NvSciColor_V8U8
@ NvSciColor_V8U8
Definition: nvscibuf.h:2561
NvSciBufImageAttrKey_SurfWidthBase
@ NvSciBufImageAttrKey_SurfWidthBase
Specifies the surface base width.
Definition: nvscibuf.h:1765
NvSciColor_Signed_A32
@ NvSciColor_Signed_A32
Definition: nvscibuf.h:2647
NvSciColor_FloatISP_Bayer16RCCC
@ NvSciColor_FloatISP_Bayer16RCCC
Definition: nvscibuf.h:2506
NvSciSurfComponentOrder_Luma
@ NvSciSurfComponentOrder_Luma
Luma-only ordering.
Definition: nvscibuf.h:3294
NvSciColor_X2Bayer14GRIG_GBIG
@ NvSciColor_X2Bayer14GRIG_GBIG
Definition: nvscibuf.h:2712
NvSciBufSurfComponentOrder
NvSciBufSurfComponentOrder
Component ordering.
Definition: nvscibuf.h:3288
NvSciBufAttrListFreeDesc
void NvSciBufAttrListFreeDesc(void *descBuf)
Frees the NvSciBuf exported NvSciBufAttrList descriptor.
NV_SCI_BUF_TENSOR_ATTR_KEY_START
#define NV_SCI_BUF_TENSOR_ATTR_KEY_START
Indicates the starting value of NvSciBufAttrKey for NvSciBufType_Tensor.
Definition: nvscibuf.h:398
NvSciBufType_Pyramid
@ NvSciBufType_Pyramid
Definition: nvscibuf.h:140
NvSciColor_V10U10
@ NvSciColor_V10U10
Definition: nvscibuf.h:2568
NvSciSurfBPC_8
@ NvSciSurfBPC_8
8 bits per component
Definition: nvscibuf.h:3268
NvSciColor_X2Bayer14RGGB
@ NvSciColor_X2Bayer14RGGB
Definition: nvscibuf.h:2479
NvSciBufImageAttrKey_Layout
@ NvSciBufImageAttrKey_Layout
Specifies the layout of NvSciBufType_Image: Block-linear or Pitch-linear.
Definition: nvscibuf.h:956
NvSciColor_X4Bayer12IGGR_IGGB
@ NvSciColor_X4Bayer12IGGR_IGGB
Definition: nvscibuf.h:2704
NV_SCI_BUF_PYRAMID_MAX_LEVELS
#define NV_SCI_BUF_PYRAMID_MAX_LEVELS
Maximum number of levels supported by NvSciBufType_Pyramid.
Definition: nvscibuf.h:301