NVIDIA DRIVE OS Linux SDK API Reference

5.2.0 Release
For Test and Development only
nvscisync.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA Corporation and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA Corporation is strictly prohibited.
9  */
18 #ifndef INCLUDED_NVSCISYNC_H
19 #define INCLUDED_NVSCISYNC_H
20 
144 #if !defined (__cplusplus)
145 #include <stddef.h>
146 #include <stdbool.h>
147 #include <stdint.h>
148 #endif
149 
150 #include <nvscierror.h>
151 #include <nvsciipc.h>
152 
153 #if defined (__cplusplus)
154 extern "C"
155 {
156 #endif
157 
163 static const uint32_t NvSciSyncMajorVersion = 2U;
164 
170 static const uint32_t NvSciSyncMinorVersion = 0U;
171 
177 static const int64_t NvSciSyncFenceMaxTimeout = (0x7fffffffffffffff / 1000);
178 
190 typedef struct NvSciSyncModuleRec* NvSciSyncModule;
191 
202 typedef struct NvSciSyncCpuWaitContextRec* NvSciSyncCpuWaitContext;
203 
224 #if (NV_IS_SAFETY == 0)
225 
230 #endif
231 
234 typedef struct {
235  uint64_t payload[6];
237 
245 
252 typedef struct {
253  uint64_t payload[7];
255 
262 typedef struct {
264  uint64_t payload[128];
266 
274 #if (NV_IS_SAFETY == 0)
275 
280 #endif
281 
289 typedef struct NvSciSyncObjRec* NvSciSyncObj;
290 
294 typedef const struct NvSciSyncObjRec* NvSciSyncObjConst;
295 
307 typedef struct NvSciSyncAttrListRec* NvSciSyncAttrList;
308 
314 typedef enum {
319  NvSciSyncAccessPerm_WaitOnly = (uint64_t)1U << 0U,
324  NvSciSyncAccessPerm_SignalOnly = (uint64_t)1U << 1U,
336  NvSciSyncAccessPerm_Auto = (uint64_t)1U << 63U,
338 
351 typedef enum {
383 
391 typedef struct {
397  const void* value;
399  size_t len;
401 
419  NvSciSyncModule* newModule);
420 
437  NvSciSyncModule module);
438 
457  NvSciSyncModule module,
458  NvSciSyncCpuWaitContext* newContext);
459 
469  NvSciSyncCpuWaitContext context);
470 
489  NvSciSyncModule module,
490  NvSciSyncAttrList* attrList);
491 
501  NvSciSyncAttrList attrList);
502 
515  NvSciSyncAttrList attrList,
516  bool* isReconciled);
517 
552  NvSciSyncAttrList reconciledAttrList,
553  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
554  size_t inputUnreconciledAttrListCount,
555  bool* isReconciledListValid);
556 
588  NvSciSyncAttrList attrList,
589  const NvSciSyncAttrKeyValuePair* pairArray,
590  size_t pairCount);
591 
618  NvSciSyncAttrList attrList,
619  NvSciSyncAttrKeyValuePair* pairArray,
620  size_t pairCount);
621 
630  NvSciSyncAttrList attrList);
631 
668  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
669  size_t inputUnreconciledAttrListCount,
670  NvSciSyncAttrList* newUnreconciledAttrList);
671 
695  NvSciSyncAttrList origAttrList,
696  NvSciSyncAttrList* newAttrList);
697 
736  NvSciSyncAttrList attrList,
737  size_t slotIndex,
738  NvSciSyncAttrKeyValuePair* pairArray,
739  size_t pairCount);
740 
749 #if (NV_IS_SAFETY == 0)
750 
756 #endif
757 
767 #if (NV_IS_SAFETY == 0)
768 
773 #else
774 
777 #endif
778 
791 #if (NV_IS_SAFETY == 0)
792 
794 #endif
795 
804  const NvSciSyncAttrList inputArray[],
805  size_t inputCount,
806  NvSciSyncAttrList* newReconciledList,
807  NvSciSyncAttrList* newConflictList);
808 
809 #if (NV_IS_SAFETY == 0)
810 
826  NvSciSyncAttrList attrList,
827  void** buf,
828  size_t* len);
829 #endif
830 
873  const NvSciSyncAttrList unreconciledAttrListArray[],
874  size_t unreconciledAttrListCount,
875  NvSciIpcEndpoint ipcEndpoint,
876  void** descBuf,
877  size_t* descLen);
878 
907  const NvSciSyncAttrList reconciledAttrList,
908  NvSciIpcEndpoint ipcEndpoint,
909  void** descBuf,
910  size_t* descLen);
911 
942  NvSciSyncModule module,
943  NvSciIpcEndpoint ipcEndpoint,
944  const void* descBuf,
945  size_t descLen,
946  NvSciSyncAttrList* importedUnreconciledAttrList);
947 
1004  NvSciSyncModule module,
1005  NvSciIpcEndpoint ipcEndpoint,
1006  const void* descBuf,
1007  size_t descLen,
1008  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
1009  size_t inputUnreconciledAttrListCount,
1010  NvSciSyncAttrList* importedReconciledAttrList);
1011 
1021  void* descBuf);
1022 
1033 void NvSciSyncFenceClear(
1034  NvSciSyncFence* syncFence);
1035 
1057  const NvSciSyncFence* srcSyncFence,
1058  NvSciSyncFence* dstSyncFence);
1059 
1084  NvSciSyncAttrList reconciledList,
1085  NvSciSyncObj* syncObj);
1086 
1107  NvSciSyncObj syncObj,
1108  NvSciSyncObj* dupObj);
1109 
1128  NvSciSyncObj syncObj,
1129  NvSciSyncAttrList* syncAttrList);
1130 
1140 void NvSciSyncObjFree(
1141  NvSciSyncObj syncObj);
1142 
1173  NvSciSyncObj syncObj,
1174  NvSciSyncAccessPerm permissions,
1175  NvSciIpcEndpoint ipcEndpoint,
1177 
1219  NvSciIpcEndpoint ipcEndpoint,
1220  const NvSciSyncObjIpcExportDescriptor* desc,
1221  NvSciSyncAttrList inputAttrList,
1222  NvSciSyncAccessPerm permissions,
1223  int64_t timeoutUs,
1224  NvSciSyncObj* syncObj);
1225 
1250  const NvSciSyncFence* syncFence,
1251  NvSciIpcEndpoint ipcEndpoint,
1253 
1278  NvSciSyncObj syncObj,
1280  NvSciSyncFence* syncFence);
1281 
1299  NvSciSyncObj syncObj,
1300  NvSciSyncFence* syncFence);
1301 
1318  NvSciSyncObj syncObj);
1319 
1356  const NvSciSyncFence* syncFence,
1357  NvSciSyncCpuWaitContext context,
1358  int64_t timeoutUs);
1359 
1360 #if (NV_IS_SAFETY == 0)
1361 
1379  const NvSciSyncFence* syncFence,
1380  uint64_t* timestampUS);
1381 #endif
1382 
1383 /*
1384  * NvSciSync Utility functions
1385  */
1386 
1410  NvSciSyncAttrList attrList,
1411  NvSciSyncAttrKey key,
1412  const void** value,
1413  size_t* len);
1414 
1432 #if (NV_IS_SAFETY == 0)
1433 
1439 #else
1440 
1443 #endif
1444 
1457 #if (NV_IS_SAFETY == 0)
1458 
1460 #endif
1461 
1470  const NvSciSyncAttrList inputArray[],
1471  size_t inputCount,
1472  NvSciSyncObj* syncObj,
1473  NvSciSyncAttrList* newConflictList);
1474 
1508  NvSciSyncObj syncObj,
1509  NvSciSyncAccessPerm permissions,
1510  NvSciIpcEndpoint ipcEndpoint,
1511  void** attrListAndObjDesc,
1512  size_t* attrListAndObjDescSize);
1513 
1523  void* attrListAndObjDescBuf);
1524 
1579  NvSciSyncModule module,
1580  NvSciIpcEndpoint ipcEndpoint,
1581  const void* attrListAndObjDesc,
1582  size_t attrListAndObjDescSize,
1583  NvSciSyncAttrList const attrList[],
1584  size_t attrListCount,
1585  NvSciSyncAccessPerm minPermissions,
1586  int64_t timeoutUs,
1587  NvSciSyncObj* syncObj);
1588 
1609  uint32_t majorVer,
1610  uint32_t minorVer,
1611  bool* isCompatible);
1612 
1613 #if defined(__cplusplus)
1614 }
1615 #endif // __cplusplus
1616 
1617 #endif // INCLUDED_NVSCISYNC_H
NvSciSyncFenceClear
void NvSciSyncFenceClear(NvSciSyncFence *syncFence)
Frees any resources allocated for the NvSciSyncFence.
NvSciError
NvSciError
Return/error codes for all NvSci functions.
Definition: nvscierror.h:45
NvSciSyncAttrListAndObjFreeDesc
void NvSciSyncAttrListAndObjFreeDesc(void *attrListAndObjDescBuf)
Frees an NvSciSyncIpcExportAttrListAndObj descriptor returned by a successful call to NvSciSyncIpcExp...
NvSciSyncIpcImportFence
NvSciError NvSciSyncIpcImportFence(NvSciSyncObj syncObj, const NvSciSyncFenceIpcExportDescriptor *desc, NvSciSyncFence *syncFence)
Fills in the NvSciSyncFence based on the input binary descriptor.
NvSciSyncAttrKey_NeedCpuAccess
@ NvSciSyncAttrKey_NeedCpuAccess
(bool, inout) Specifies if CPU access is required.
Definition: nvscisync.h:355
NvSciSyncObjIpcExport
NvSciError NvSciSyncObjIpcExport(NvSciSyncObj syncObj, NvSciSyncAccessPerm permissions, NvSciIpcEndpoint ipcEndpoint, NvSciSyncObjIpcExportDescriptor *desc)
Exports an NvSciSyncObj into an NvSciIpc-transferable object binary descriptor.
NvSciSyncObjIpcImport
NvSciError NvSciSyncObjIpcImport(NvSciIpcEndpoint ipcEndpoint, const NvSciSyncObjIpcExportDescriptor *desc, NvSciSyncAttrList inputAttrList, NvSciSyncAccessPerm permissions, int64_t timeoutUs, NvSciSyncObj *syncObj)
Creates and returns an NvSciSyncObj based on the supplied binary descriptor describing an exported Nv...
NvSciSyncAttrListFreeDesc
void NvSciSyncAttrListFreeDesc(void *descBuf)
Frees an exported NvSciSyncAttrList descriptor previously returned by any NvSciSyncAttrList exporting...
NvSciSyncIpcImportAttrListAndObj
NvSciError NvSciSyncIpcImportAttrListAndObj(NvSciSyncModule module, NvSciIpcEndpoint ipcEndpoint, const void *attrListAndObjDesc, size_t attrListAndObjDescSize, NvSciSyncAttrList const attrList[], size_t attrListCount, NvSciSyncAccessPerm minPermissions, int64_t timeoutUs, NvSciSyncObj *syncObj)
Creates an NvSciSyncObj based on the supplied binary descriptor returned from a successful call to Nv...
NvSciSyncAccessPerm_SignalOnly
@ NvSciSyncAccessPerm_SignalOnly
This represents the capability to advance an NvSciSyncObj to its next point on its sync timeline.
Definition: nvscisync.h:324
NvSciSyncAttrKeyValuePair::len
size_t len
Length of the value in bytes.
Definition: nvscisync.h:399
NvSciSyncAttrKey_LowerBound
@ NvSciSyncAttrKey_LowerBound
Specifies the lower bound - for NvSciSync internal use only.
Definition: nvscisync.h:353
NvSciSyncCpuWaitContextFree
void NvSciSyncCpuWaitContextFree(NvSciSyncCpuWaitContext context)
Releases the NvSciSyncCpuWaitContext.
NvSciSyncAttrListSetAttrs
NvSciError NvSciSyncAttrListSetAttrs(NvSciSyncAttrList attrList, const NvSciSyncAttrKeyValuePair *pairArray, size_t pairCount)
Sets the values for NvSciSyncAttrKey(s) in slot 0 of the input NvSciSyncAttrList.
NvSciSyncAttrKeyValuePair::attrKey
NvSciSyncAttrKey attrKey
NvSciSyncAttrKey for which value needs to be set/retrieved.
Definition: nvscisync.h:395
NvSciSyncIpcExportFence
NvSciError NvSciSyncIpcExportFence(const NvSciSyncFence *syncFence, NvSciIpcEndpoint ipcEndpoint, NvSciSyncFenceIpcExportDescriptor *desc)
Exports the input NvSciSyncFence into a binary descriptor shareable across the NvSciIpc channel.
NvSciSyncAttrListIpcImportReconciled
NvSciError NvSciSyncAttrListIpcImportReconciled(NvSciSyncModule module, NvSciIpcEndpoint ipcEndpoint, const void *descBuf, size_t descLen, const NvSciSyncAttrList inputUnreconciledAttrListArray[], size_t inputUnreconciledAttrListCount, NvSciSyncAttrList *importedReconciledAttrList)
Translates an exported reconciled NvSciSyncAttrList descriptor (potentially received from any process...
NvSciSyncMajorVersion
static const uint32_t NvSciSyncMajorVersion
NvSciSync major version number.
Definition: nvscisync.h:163
NvSciSyncAttrList
struct NvSciSyncAttrListRec * NvSciSyncAttrList
A container constituting an NvSciSyncAttrList which contains:
Definition: nvscisync.h:307
NvSciSyncCpuWaitContextAlloc
NvSciError NvSciSyncCpuWaitContextAlloc(NvSciSyncModule module, NvSciSyncCpuWaitContext *newContext)
Allocates a new NvSciSyncCpuWaitContext.
NvSciSyncObjFree
void NvSciSyncObjFree(NvSciSyncObj syncObj)
Destroys a valid NvSciSyncObj and frees any resources that were allocated for it.
NvSciSyncAttrKey_WaiterRequireTimestamps
@ NvSciSyncAttrKey_WaiterRequireTimestamps
(bool, inout) Specifies if timestamps are required.
Definition: nvscisync.h:379
NvSciSyncAttrKeyValuePair::value
const void * value
Memory which contains the value corresponding to the key.
Definition: nvscisync.h:397
NvSciSyncFenceMaxTimeout
static const int64_t NvSciSyncFenceMaxTimeout
Maximum supported timeout value.
Definition: nvscisync.h:177
NvSciSyncObjGenerateFence
NvSciError NvSciSyncObjGenerateFence(NvSciSyncObj syncObj, NvSciSyncFence *syncFence)
Generates next point on sync timeline of an NvSciSyncObj and fills in the supplied NvSciSyncFence obj...
NvSciSyncAttrListGetAttrs
NvSciError NvSciSyncAttrListGetAttrs(NvSciSyncAttrList attrList, NvSciSyncAttrKeyValuePair *pairArray, size_t pairCount)
Gets the value of NvSciSyncAttrKey from slot 0 of the input NvSciSyncAttrList.
NvSciSyncAttrListIsReconciled
NvSciError NvSciSyncAttrListIsReconciled(NvSciSyncAttrList attrList, bool *isReconciled)
Checks if the NvSciSyncAttrList is reconciled.
NvSciSyncFenceGetTimestamp
NvSciError NvSciSyncFenceGetTimestamp(const NvSciSyncFence *syncFence, uint64_t *timestampUS)
Read the timestamp associated with the NvSciSyncFence.
NvSciSyncObjConst
const struct NvSciSyncObjRec * NvSciSyncObjConst
A reference to an immutable Synchronization Object.
Definition: nvscisync.h:294
NvSciSyncModuleClose
void NvSciSyncModuleClose(NvSciSyncModule module)
Releases an instance of the NvSciSyncModule that was obtained through an earlier call to NvSciSyncMod...
NvSciSyncAccessPerm_WaitOnly
@ NvSciSyncAccessPerm_WaitOnly
This represents the capability to monitor an NvSciSyncObj as it progresses through points on its sync...
Definition: nvscisync.h:319
NvSciSyncObjIpcExportDescriptor
Defines the exported form of NvSciSyncObj intended to be shared across an NvSciIpc channel.
Definition: nvscisync.h:262
NvSciIpcEndpoint
uint64_t NvSciIpcEndpoint
Handle to the NvSciIpc endpoint.
Definition: nvsciipc.h:84
nvsciipc.h
NVIDIA Software Communications Interface (SCI) : NvSci Inter-Process Communication
NvSciSyncAttrListGetAttr
NvSciError NvSciSyncAttrListGetAttr(NvSciSyncAttrList attrList, NvSciSyncAttrKey key, const void **value, size_t *len)
Gets the attribute value from the slot 0 of the passed NvSciSyncAttrList with the given NvSciSyncAttr...
NvSciSyncAttrKey
NvSciSyncAttrKey
Describes the NvSciSync public attribute keys holding corresponding values specifying synchronization...
Definition: nvscisync.h:351
NvSciSyncObjAlloc
NvSciError NvSciSyncObjAlloc(NvSciSyncAttrList reconciledList, NvSciSyncObj *syncObj)
Allocates and initializes a NvSciSyncObj that meets all the constraints specified in the given Reconc...
NvSciSyncObjDup
NvSciError NvSciSyncObjDup(NvSciSyncObj syncObj, NvSciSyncObj *dupObj)
Creates a new NvSciSyncObj holding a reference to the original resources to which the input NvSciSync...
NvSciSyncCheckVersionCompatibility
NvSciError NvSciSyncCheckVersionCompatibility(uint32_t majorVer, uint32_t minorVer, bool *isCompatible)
Checks if loaded library version is compatible with the supplied library build version.
NvSciSyncAttrListIpcExportUnreconciled
NvSciError NvSciSyncAttrListIpcExportUnreconciled(const NvSciSyncAttrList unreconciledAttrListArray[], size_t unreconciledAttrListCount, NvSciIpcEndpoint ipcEndpoint, void **descBuf, size_t *descLen)
Transforms the input unreconciled NvSciSyncAttrList(s) to an exportable unreconciled NvSciSyncAttrLis...
NvSciSyncAttrKeyValuePair
This structure defines a key/value pair used to get or set the NvSciSyncAttrKey(s) and their correspo...
Definition: nvscisync.h:391
NvSciSyncAttrKey_RequiredPerm
@ NvSciSyncAttrKey_RequiredPerm
(NvSciSyncAccessPerm, inout) Specifies the required access permissions.
Definition: nvscisync.h:363
NvSciSyncAttrListIpcImportUnreconciled
NvSciError NvSciSyncAttrListIpcImportUnreconciled(NvSciSyncModule module, NvSciIpcEndpoint ipcEndpoint, const void *descBuf, size_t descLen, NvSciSyncAttrList *importedUnreconciledAttrList)
Transforms an exported unreconciled NvSciSyncAttrList descriptor (potentially received from any proce...
NvSciSyncMinorVersion
static const uint32_t NvSciSyncMinorVersion
NvSciSync minor version number.
Definition: nvscisync.h:170
NvSciSyncAccessPerm
NvSciSyncAccessPerm
Describes NvSciSyncObj access permissions.
Definition: nvscisync.h:314
NvSciSyncObjSignal
NvSciError NvSciSyncObjSignal(NvSciSyncObj syncObj)
Signals the NvSciSyncObj using the reconciled primitive that was allocated along with the NvSciSyncOb...
NvSciSyncAttrListReconcile
NvSciError NvSciSyncAttrListReconcile(const NvSciSyncAttrList inputArray[], size_t inputCount, NvSciSyncAttrList *newReconciledList, NvSciSyncAttrList *newConflictList)
Reconciles the input unreconciled NvSciSyncAttrLists into a new reconciled NvSciSyncAttrList.
NvSciSyncFenceWait
NvSciError NvSciSyncFenceWait(const NvSciSyncFence *syncFence, NvSciSyncCpuWaitContext context, int64_t timeoutUs)
Performs a synchronous wait on the NvSciSyncFence object until the NvSciSyncFence has been signaled o...
NvSciSyncAccessPerm_Auto
@ NvSciSyncAccessPerm_Auto
Usage of Auto permissions is restricted only for export/import APIs and shouldn't be used as valid va...
Definition: nvscisync.h:336
NvSciSyncModuleOpen
NvSciError NvSciSyncModuleOpen(NvSciSyncModule *newModule)
Initializes and returns a new NvSciSyncModule with no NvSciSyncAttrLists, NvSciSyncCpuWaitContexts,...
NvSciSyncAttrListReconcileAndObjAlloc
NvSciError NvSciSyncAttrListReconcileAndObjAlloc(const NvSciSyncAttrList inputArray[], size_t inputCount, NvSciSyncObj *syncObj, NvSciSyncAttrList *newConflictList)
Reconciles the input Unreconciled NvSciSyncAttrList(s) into a new Reconciled NvSciSyncAttrList.
NvSciSyncAttrListDebugDump
NvSciError NvSciSyncAttrListDebugDump(NvSciSyncAttrList attrList, void **buf, size_t *len)
Dumps the NvSciSyncAttrList into a binary descriptor.
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:234
NvSciSyncObjGetAttrList
NvSciError NvSciSyncObjGetAttrList(NvSciSyncObj syncObj, NvSciSyncAttrList *syncAttrList)
Retrieves the Reconciled NvSciSyncAttrList associated with an input NvSciSyncObj.
NvSciSyncAttrListValidateReconciled
NvSciError NvSciSyncAttrListValidateReconciled(NvSciSyncAttrList reconciledAttrList, const NvSciSyncAttrList inputUnreconciledAttrListArray[], size_t inputUnreconciledAttrListCount, bool *isReconciledListValid)
Validates a reconciled NvSciSyncAttrList against a set of input unreconciled NvSciSyncAttrLists.
NvSciSyncAttrKey_ActualPerm
@ NvSciSyncAttrKey_ActualPerm
(NvSciSyncAccessPerm, out) Actual permission granted after reconciliation.
Definition: nvscisync.h:368
NvSciSyncAttrListSlotGetAttrs
NvSciError NvSciSyncAttrListSlotGetAttrs(NvSciSyncAttrList attrList, size_t slotIndex, NvSciSyncAttrKeyValuePair *pairArray, size_t pairCount)
Gets the value(s) of NvSciSyncAttrKey(s) from an NvSciSyncAttrList at given slot index in a multi-slo...
NvSciSyncAttrListFree
void NvSciSyncAttrListFree(NvSciSyncAttrList attrList)
Frees the NvSciSyncAttrList and removes its association with the NvSciSyncModule with which it was cr...
NvSciSyncAttrListGetSlotCount
size_t NvSciSyncAttrListGetSlotCount(NvSciSyncAttrList attrList)
Gets the slot count per NvSciSyncAttrKey in a NvSciSyncAttrList.
NvSciSyncModule
struct NvSciSyncModuleRec * NvSciSyncModule
Represents an instance of the NvSciSyncModule.
Definition: nvscisync.h:190
nvscierror.h
NvSciSyncAttrKey_UpperBound
@ NvSciSyncAttrKey_UpperBound
Specifies the upper bound - for NvSciSync internal use only.
Definition: nvscisync.h:381
NvSciSyncFenceInitializer
static const NvSciSyncFence NvSciSyncFenceInitializer
Defines the value used to zero-initialize the NvSciSyncFence object.
Definition: nvscisync.h:244
NvSciSyncObj
struct NvSciSyncObjRec * NvSciSyncObj
A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
Definition: nvscisync.h:289
NvSciSyncAttrListCreate
NvSciError NvSciSyncAttrListCreate(NvSciSyncModule module, NvSciSyncAttrList *attrList)
Creates a new, single-slot unreconciled NvSciSyncAttrList associated with the input NvSciSyncModule w...
NvSciSyncAttrListAppendUnreconciled
NvSciError NvSciSyncAttrListAppendUnreconciled(const NvSciSyncAttrList inputUnreconciledAttrListArray[], size_t inputUnreconciledAttrListCount, NvSciSyncAttrList *newUnreconciledAttrList)
Appends multiple unreconciled NvSciSyncAttrLists together, forming a single new unreconciled NvSciSyn...
NvSciSyncAttrListIpcExportReconciled
NvSciError NvSciSyncAttrListIpcExportReconciled(const NvSciSyncAttrList reconciledAttrList, NvSciIpcEndpoint ipcEndpoint, void **descBuf, size_t *descLen)
Transforms the reconciled NvSciSyncAttrList to an exportable reconciled NvSciSyncAttrList descriptor ...
NvSciSyncFenceIpcExportDescriptor
Defines the exported form of NvSciSyncFence intended to be shared across an NvSciIpc channel.
Definition: nvscisync.h:252
NvSciSyncIpcExportAttrListAndObj
NvSciError NvSciSyncIpcExportAttrListAndObj(NvSciSyncObj syncObj, NvSciSyncAccessPerm permissions, NvSciIpcEndpoint ipcEndpoint, void **attrListAndObjDesc, size_t *attrListAndObjDescSize)
Exports an NvSciSyncAttrList and NvSciSyncObj into an NvSciIpc-transferable object binary descriptor ...
NvSciSyncAttrListClone
NvSciError NvSciSyncAttrListClone(NvSciSyncAttrList origAttrList, NvSciSyncAttrList *newAttrList)
Clones an NvSciSyncAttrList.
NvSciSyncAccessPerm_WaitSignal
@ NvSciSyncAccessPerm_WaitSignal
This represents the capability to advance an NvSciSyncObj to its next point on its sync timeline and ...
Definition: nvscisync.h:330
NvSciSyncAttrKey_WaiterContextInsensitiveFenceExports
@ NvSciSyncAttrKey_WaiterContextInsensitiveFenceExports
(bool, inout) Importing and then exporting an NvSciSyncFenceIpcExportDescriptor has no side effects a...
Definition: nvscisync.h:376
NvSciSyncCpuWaitContext
struct NvSciSyncCpuWaitContextRec * NvSciSyncCpuWaitContext
Represents the right to perform a CPU wait on an NvSciSyncFence.
Definition: nvscisync.h:202
NvSciSyncFenceDup
NvSciError NvSciSyncFenceDup(const NvSciSyncFence *srcSyncFence, NvSciSyncFence *dstSyncFence)
Duplicates the given NvSciSyncFence, such that any wait on duplicated NvSciSyncFence will complete at...