Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.6 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    nvscisync.h
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2019-2022, 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 
    151 #if !defined (__cplusplus)
    152 #include <stddef.h>
    153 #include <stdbool.h>
    154 #include <stdint.h>
    155 #endif
    156 
    157 #include <nvscierror.h>
    158 #include <nvsciipc.h>
    159 
    160 #if defined (__cplusplus)
    161 extern "C"
    162 {
    163 #endif
    164 
    165 #if defined __GNUC__
    166  #define PACK_SYNC( __Declaration__, ... ) __Declaration__,##__VA_ARGS__ __attribute__((packed))
    167 #else
    168  #define PACK_SYNC( __Declaration__, ... ) __pragma(pack(push, 1)) __Declaration__,##__VA_ARGS__ __pragma(pack(pop))
    169 #endif
    170 
    176 static const uint32_t NvSciSyncMajorVersion = 2U;
    177 
    183 static const uint32_t NvSciSyncMinorVersion = 4U;
    184 
    190 static const int64_t NvSciSyncFenceMaxTimeout = (0x7fffffffffffffff / 1000);
    191 
    203 typedef struct NvSciSyncModuleRec* NvSciSyncModule;
    204 
    215 typedef struct NvSciSyncCpuWaitContextRec* NvSciSyncCpuWaitContext;
    216 
    248 typedef struct {
    249  uint64_t payload[6];
    251 
    259 
    266 typedef struct {
    267  uint64_t payload[7];
    269 
    276 typedef struct {
    278  uint64_t payload[128];
    280 
    303 typedef struct NvSciSyncObjRec* NvSciSyncObj;
    304 
    309 typedef const struct NvSciSyncObjRec* NvSciSyncObjConst;
    310 
    322 typedef struct NvSciSyncAttrListRec* NvSciSyncAttrList;
    323 
    329 typedef uint64_t NvSciSyncAccessPerm;
    330 
    335 #define NvSciSyncAccessPerm_WaitOnly ((uint64_t)1U << 0U)
    336 
    340 #define NvSciSyncAccessPerm_SignalOnly ((uint64_t)1U << 1U)
    341 
    346 #define NvSciSyncAccessPerm_WaitSignal (NvSciSyncAccessPerm_WaitOnly | NvSciSyncAccessPerm_SignalOnly)
    347 
    352 #define NvSciSyncAccessPerm_Auto ((uint64_t)1U << 63U)
    353 
    365 typedef enum {
    374 
    380 PACK_SYNC(typedef struct {
    382  uint64_t timestamp;
    384  uint32_t statusEngine;
    386  uint16_t subframe;
    390  uint16_t status;
    391 }) NvSciSyncTaskStatus;
    392 
    405 typedef enum {
    536 
    544 typedef struct {
    550  const void* value;
    552  size_t len;
    554 
    588  NvSciSyncModule* newModule);
    589 
    628  NvSciSyncModule module);
    629 
    664  NvSciSyncModule module,
    665  NvSciSyncCpuWaitContext* newContext);
    666 
    694  NvSciSyncCpuWaitContext context);
    695 
    730  NvSciSyncModule module,
    731  NvSciSyncAttrList* attrList);
    732 
    760  NvSciSyncAttrList attrList);
    761 
    790  NvSciSyncAttrList attrList,
    791  bool* isReconciled);
    792 
    847  NvSciSyncAttrList reconciledAttrList,
    848  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    849  size_t inputUnreconciledAttrListCount,
    850  bool* isReconciledListValid);
    851 
    900  NvSciSyncAttrList attrList,
    901  const NvSciSyncAttrKeyValuePair* pairArray,
    902  size_t pairCount);
    903 
    946  NvSciSyncAttrList attrList,
    947  NvSciSyncAttrKeyValuePair* pairArray,
    948  size_t pairCount);
    949 
    974  NvSciSyncAttrList attrList);
    975 
    1031  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1032  size_t inputUnreconciledAttrListCount,
    1033  NvSciSyncAttrList* newUnreconciledAttrList);
    1034 
    1075  NvSciSyncAttrList origAttrList,
    1076  NvSciSyncAttrList* newAttrList);
    1077 
    1126  NvSciSyncAttrList attrList,
    1127  size_t slotIndex,
    1128  NvSciSyncAttrKeyValuePair* pairArray,
    1129  size_t pairCount);
    1130 
    1139 #if (NV_IS_SAFETY == 0)
    1140 
    1146 #endif
    1147 
    1157 #if (NV_IS_SAFETY == 0)
    1158 
    1163 #else
    1164 
    1167 #endif
    1168 
    1182 #if (NV_IS_SAFETY == 0)
    1183 
    1185 #endif
    1186 
    1216  const NvSciSyncAttrList inputArray[],
    1217  size_t inputCount,
    1218  NvSciSyncAttrList* newReconciledList,
    1219  NvSciSyncAttrList* newConflictList);
    1220 
    1221 #if (NV_IS_SAFETY == 0)
    1222 
    1258  NvSciSyncAttrList attrList,
    1259  void** buf,
    1260  size_t* len);
    1261 #endif
    1262 
    1309 #if (NV_IS_SAFETY == 0)
    1310 
    1313 #endif
    1314 
    1337  const NvSciSyncAttrList unreconciledAttrListArray[],
    1338  size_t unreconciledAttrListCount,
    1339  NvSciIpcEndpoint ipcEndpoint,
    1340  void** descBuf,
    1341  size_t* descLen);
    1342 
    1388  const NvSciSyncAttrList reconciledAttrList,
    1389  NvSciIpcEndpoint ipcEndpoint,
    1390  void** descBuf,
    1391  size_t* descLen);
    1392 
    1442  NvSciSyncModule module,
    1443  NvSciIpcEndpoint ipcEndpoint,
    1444  const void* descBuf,
    1445  size_t descLen,
    1446  NvSciSyncAttrList* importedUnreconciledAttrList);
    1447 
    1527  NvSciSyncModule module,
    1528  NvSciIpcEndpoint ipcEndpoint,
    1529  const void* descBuf,
    1530  size_t descLen,
    1531  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1532  size_t inputUnreconciledAttrListCount,
    1533  NvSciSyncAttrList* importedReconciledAttrList);
    1534 
    1562  void* descBuf);
    1563 
    1592 void NvSciSyncFenceClear(
    1593  NvSciSyncFence* syncFence);
    1594 
    1635  const NvSciSyncFence* srcSyncFence,
    1636  NvSciSyncFence* dstSyncFence);
    1637 
    1669  const NvSciSyncFence* syncFence,
    1670  uint64_t* id,
    1671  uint64_t* value);
    1672 
    1725  NvSciSyncObj syncObj,
    1726  uint64_t id,
    1727  uint64_t value,
    1728  NvSciSyncFence* syncFence);
    1729 
    1763  NvSciSyncFence* syncFence,
    1764  uint32_t timestampSlot);
    1765 
    1799  NvSciSyncFence* syncFence,
    1800  uint32_t taskStatusSlot);
    1801 
    1835  NvSciSyncFence* syncFence,
    1836  uint32_t* timeStampSlot);
    1837 
    1880  NvSciSyncAttrList reconciledList,
    1881  NvSciSyncObj* syncObj);
    1882 
    1923  NvSciSyncObj syncObj,
    1924  NvSciSyncObj* dupObj);
    1925 
    1960  NvSciSyncObj syncObj,
    1961  NvSciSyncAttrList* syncAttrList);
    1962 
    1999 void NvSciSyncObjFree(
    2000  NvSciSyncObj syncObj);
    2001 
    2038 #if (NV_L4T == 1)
    2039 
    2043 #endif
    2044 
    2065  NvSciSyncObj syncObj,
    2066  NvSciSyncAccessPerm permissions,
    2067  NvSciIpcEndpoint ipcEndpoint,
    2069 
    2139  NvSciIpcEndpoint ipcEndpoint,
    2140  const NvSciSyncObjIpcExportDescriptor* desc,
    2141  NvSciSyncAttrList inputAttrList,
    2142  NvSciSyncAccessPerm permissions,
    2143  int64_t timeoutUs,
    2144  NvSciSyncObj* syncObj);
    2145 
    2187  const NvSciSyncFence* syncFence,
    2188  NvSciIpcEndpoint ipcEndpoint,
    2190 
    2236  NvSciSyncObj syncObj,
    2238  NvSciSyncFence* syncFence);
    2239 
    2255 #if (NV_IS_SAFETY == 0)
    2256 
    2259 #endif
    2260 
    2285  NvSciSyncObj syncObj,
    2286  NvSciSyncFence* syncFence);
    2287 
    2292 #if (NV_IS_SAFETY == 0)
    2293 
    2296 #endif
    2297 
    2328  NvSciSyncObj syncObj);
    2329 
    2388  const NvSciSyncFence* syncFence,
    2389  NvSciSyncCpuWaitContext context,
    2390  int64_t timeoutUs);
    2391 
    2431  const NvSciSyncFence* syncFence,
    2432  uint64_t* timestampUS);
    2433 
    2467  const NvSciSyncFence* syncFence,
    2468  NvSciSyncTaskStatus* taskStatus);
    2469 
    2470 /*
    2471  * NvSciSync Utility functions
    2472  */
    2473 
    2513  NvSciSyncAttrList attrList,
    2514  NvSciSyncAttrKey key,
    2515  const void** value,
    2516  size_t* len);
    2517 
    2535 #if (NV_IS_SAFETY == 0)
    2536 
    2542 #else
    2543 
    2546 #endif
    2547 
    2561 #if (NV_IS_SAFETY == 0)
    2562 
    2564 #endif
    2565 
    2593  const NvSciSyncAttrList inputArray[],
    2594  size_t inputCount,
    2595  NvSciSyncObj* syncObj,
    2596  NvSciSyncAttrList* newConflictList);
    2597 
    2654  NvSciSyncObj syncObj,
    2655  NvSciSyncAccessPerm permissions,
    2656  NvSciIpcEndpoint ipcEndpoint,
    2657  void** attrListAndObjDesc,
    2658  size_t* attrListAndObjDescSize);
    2659 
    2689  void* attrListAndObjDescBuf);
    2690 
    2773  NvSciSyncModule module,
    2774  NvSciIpcEndpoint ipcEndpoint,
    2775  const void* attrListAndObjDesc,
    2776  size_t attrListAndObjDescSize,
    2777  NvSciSyncAttrList const attrList[],
    2778  size_t attrListCount,
    2779  NvSciSyncAccessPerm minPermissions,
    2780  int64_t timeoutUs,
    2781  NvSciSyncObj* syncObj);
    2782 
    2817 #if (NV_IS_SAFETY == 0)
    2818 
    2821 #endif
    2823  uint32_t majorVer,
    2824  uint32_t minorVer,
    2825  bool* isCompatible);
    2826 
    2827 #if defined(__cplusplus)
    2828 }
    2829 #endif // __cplusplus
    2830 
    2831 #endif // INCLUDED_NVSCISYNC_H
    NvSciSyncFenceClear
    void NvSciSyncFenceClear(NvSciSyncFence *syncFence)
    Frees any resources allocated for the NvSciSyncFence.
    NvSciSyncAttrKey_RequireDeterministicFences
    @ NvSciSyncAttrKey_RequireDeterministicFences
    (bool, inout) Specifies if deterministic primitives are required.
    Definition: nvscisync.h:504
    NvSciSyncAccessPerm
    uint64_t NvSciSyncAccessPerm
    Describes NvSciSyncObj access permissions.
    Definition: nvscisync.h:329
    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:428
    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...
    NvSciSyncTaskStatus_Failure
    @ NvSciSyncTaskStatus_Failure
    The task has failed.
    Definition: nvscisync.h:369
    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...
    NvSciSyncAttrKeyValuePair::len
    size_t len
    Length of the value in bytes.
    Definition: nvscisync.h:552
    NvSciSyncTaskStatusVal
    NvSciSyncTaskStatusVal
    Status of the signaler's task that signals a particular NvSciSyncFence.
    Definition: nvscisync.h:365
    NvSciSyncAttrKey_LowerBound
    @ NvSciSyncAttrKey_LowerBound
    Specifies the lower bound - for NvSciSync internal use only.
    Definition: nvscisync.h:407
    NvSciSyncTaskStatus_Invalid
    @ NvSciSyncTaskStatus_Invalid
    The signaler did not report any task status.
    Definition: nvscisync.h:372
    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.
    NvSciSyncFenceAddTaskStatusSlot
    NvSciError NvSciSyncFenceAddTaskStatusSlot(NvSciSyncFence *syncFence, uint32_t taskStatusSlot)
    Sets the current task status slot index to the NvSciSyncFence.
    NvSciSyncAttrKeyValuePair::attrKey
    NvSciSyncAttrKey attrKey
    NvSciSyncAttrKey for which value needs to be set/retrieved.
    Definition: nvscisync.h:548
    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:176
    NvSciSyncAttrList
    struct NvSciSyncAttrListRec * NvSciSyncAttrList
    A container constituting an NvSciSyncAttrList which contains:
    Definition: nvscisync.h:322
    NvSciSyncCpuWaitContextAlloc
    NvSciError NvSciSyncCpuWaitContextAlloc(NvSciSyncModule module, NvSciSyncCpuWaitContext *newContext)
    Allocates a new NvSciSyncCpuWaitContext.
    NvSciSyncAttrKey_NumTimestampSlots
    @ NvSciSyncAttrKey_NumTimestampSlots
    (uint32_t, out) Specifies the total number of slots in the timestamps buffer.
    Definition: nvscisync.h:514
    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:492
    NvSciSyncAttrKeyValuePair::value
    const void * value
    Memory which contains the value corresponding to the key.
    Definition: nvscisync.h:550
    NvSciSyncAttrKey_MaxPrimitiveValue
    @ NvSciSyncAttrKey_MaxPrimitiveValue
    (uint64_t, out) Specifies the maximum value of the reconciled primitive.
    Definition: nvscisync.h:532
    NvSciSyncFenceMaxTimeout
    static const int64_t NvSciSyncFenceMaxTimeout
    Maximum supported timeout value.
    Definition: nvscisync.h:190
    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 whether 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, that is not modifiable, to a particular Synchronization Object.
    Definition: nvscisync.h:309
    NvSciSyncModuleClose
    void NvSciSyncModuleClose(NvSciSyncModule module)
    Closes an instance of the NvSciSyncModule that was obtained through an earlier call to NvSciSyncModul...
    NvSciSyncObjIpcExportDescriptor
    Defines the exported form of NvSciSyncObj intended to be shared across an NvSciIpc channel.
    Definition: nvscisync.h:276
    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 the corresponding values specifying synchroniza...
    Definition: nvscisync.h:405
    NvSciSyncObjAlloc
    NvSciError NvSciSyncObjAlloc(NvSciSyncAttrList reconciledList, NvSciSyncObj *syncObj)
    Allocates and initializes a NvSciSyncObj that meets all the constraints specified in the given reconc...
    NvSciIpcEndpoint
    uint64_t NvSciIpcEndpoint
    Handle to the NvSciIpc endpoint.
    Definition: nvsciipc.h:291
    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 the loaded library version is compatible with the version the application was compiled agai...
    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:544
    NvSciSyncFenceExtractFence
    NvSciError NvSciSyncFenceExtractFence(const NvSciSyncFence *syncFence, uint64_t *id, uint64_t *value)
    Extracts the id and value from the input NvSciSyncFence.
    NvSciSyncAttrKey_RequiredPerm
    @ NvSciSyncAttrKey_RequiredPerm
    (NvSciSyncAccessPerm, inout) Specifies the required access permissions.
    Definition: nvscisync.h:436
    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:183
    NvSciSyncObjSignal
    NvSciError NvSciSyncObjSignal(NvSciSyncObj syncObj)
    Signals the NvSciSyncObj using the reconciled primitive that was allocated along with the NvSciSyncOb...
    NvSciSyncFenceAddTimestampSlot
    NvSciError NvSciSyncFenceAddTimestampSlot(NvSciSyncFence *syncFence, uint32_t timestampSlot)
    Sets the current timestamp slot index in the NvSciSyncFence.
    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...
    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:248
    NvSciSyncObjGetAttrList
    NvSciError NvSciSyncObjGetAttrList(NvSciSyncObj syncObj, NvSciSyncAttrList *syncAttrList)
    Retrieves the reconciled NvSciSyncAttrList associated with an input NvSciSyncObj.
    NvSciSyncFenceGetTaskStatus
    NvSciError NvSciSyncFenceGetTaskStatus(const NvSciSyncFence *syncFence, NvSciSyncTaskStatus *taskStatus)
    Reads the task status associated with the NvSciSyncFence and stores it in the user provided out param...
    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_NumTaskStatusSlots
    @ NvSciSyncAttrKey_NumTaskStatusSlots
    (uint32_t, out) Specifies the total number of slots in the task status buffer.
    Definition: nvscisync.h:524
    NvSciSyncAttrKey_ActualPerm
    @ NvSciSyncAttrKey_ActualPerm
    (NvSciSyncAccessPerm, out) Actual permission granted after reconciliation.
    Definition: nvscisync.h:467
    NvSciSyncFenceExtractTimestampSlot
    NvSciError NvSciSyncFenceExtractTimestampSlot(NvSciSyncFence *syncFence, uint32_t *timeStampSlot)
    Reads the current timestamp slot index from the NvSciSyncFence.
    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 of the given NvSciSyncAttrList.
    NvSciSyncModule
    struct NvSciSyncModuleRec * NvSciSyncModule
    Represents an instance of the NvSciSyncModule.
    Definition: nvscisync.h:203
    NvSciSyncFenceUpdateFence
    NvSciError NvSciSyncFenceUpdateFence(NvSciSyncObj syncObj, uint64_t id, uint64_t value, NvSciSyncFence *syncFence)
    Populates the input NvSciSyncFence based on the input id and value.
    nvscierror.h
    NvSciSyncAttrKey_UpperBound
    @ NvSciSyncAttrKey_UpperBound
    Specifies the upper bound - for NvSciSync internal use only.
    Definition: nvscisync.h:534
    NvSciSyncFenceInitializer
    static const NvSciSyncFence NvSciSyncFenceInitializer
    Defines the value used to zero-initialize the NvSciSyncFence object.
    Definition: nvscisync.h:258
    NvSciSyncObj
    struct NvSciSyncObjRec * NvSciSyncObj
    A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
    Definition: nvscisync.h:303
    NvSciSyncAttrListCreate
    NvSciError NvSciSyncAttrListCreate(NvSciSyncModule module, NvSciSyncAttrList *attrList)
    Creates a new, single-slot unreconciled NvSciSyncAttrList associated with the input NvSciSyncModule w...
    PACK_SYNC
    #define PACK_SYNC(__Declaration__,...)
    Definition: nvscisync.h:168
    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:266
    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 ...
    NvSciSyncTaskStatus_Success
    @ NvSciSyncTaskStatus_Success
    The task has completed successfully.
    Definition: nvscisync.h:367
    NvSciSyncAttrListClone
    NvSciError NvSciSyncAttrListClone(NvSciSyncAttrList origAttrList, NvSciSyncAttrList *newAttrList)
    Clones an NvSciSyncAttrList.
    NvSciSyncAttrKey_WaiterContextInsensitiveFenceExports
    @ NvSciSyncAttrKey_WaiterContextInsensitiveFenceExports
    (bool, inout) Importing and then exporting an NvSciSyncFenceIpcExportDescriptor has no side effects a...
    Definition: nvscisync.h:486
    NvSciSyncCpuWaitContext
    struct NvSciSyncCpuWaitContextRec * NvSciSyncCpuWaitContext
    Represents the right to perform a CPU wait on an NvSciSyncFence.
    Definition: nvscisync.h:215
    NvSciSyncFenceDup
    NvSciError NvSciSyncFenceDup(const NvSciSyncFence *srcSyncFence, NvSciSyncFence *dstSyncFence)
    Duplicates the given NvSciSyncFence, such that any wait on duplicated NvSciSyncFence will complete at...
    人人超碰97caoporen国产