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.5 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 
    149 #if !defined (__cplusplus)
    150 #include <stddef.h>
    151 #include <stdbool.h>
    152 #include <stdint.h>
    153 #endif
    154 
    155 #include <nvscierror.h>
    156 #include <nvsciipc.h>
    157 
    158 #if defined (__cplusplus)
    159 extern "C"
    160 {
    161 #endif
    162 
    168 static const uint32_t NvSciSyncMajorVersion = 2U;
    169 
    175 static const uint32_t NvSciSyncMinorVersion = 3U;
    176 
    182 static const int64_t NvSciSyncFenceMaxTimeout = (0x7fffffffffffffff / 1000);
    183 
    195 typedef struct NvSciSyncModuleRec* NvSciSyncModule;
    196 
    207 typedef struct NvSciSyncCpuWaitContextRec* NvSciSyncCpuWaitContext;
    208 
    240 typedef struct {
    241  uint64_t payload[6];
    243 
    251 
    258 typedef struct {
    259  uint64_t payload[7];
    261 
    268 typedef struct {
    270  uint64_t payload[128];
    272 
    295 typedef struct NvSciSyncObjRec* NvSciSyncObj;
    296 
    301 typedef const struct NvSciSyncObjRec* NvSciSyncObjConst;
    302 
    314 typedef struct NvSciSyncAttrListRec* NvSciSyncAttrList;
    315 
    321 typedef enum {
    326  NvSciSyncAccessPerm_WaitOnly = (uint64_t)1U << 0U,
    331  NvSciSyncAccessPerm_SignalOnly = (uint64_t)1U << 1U,
    343  NvSciSyncAccessPerm_Auto = (uint64_t)1U << 63U,
    345 
    357 typedef enum {
    366 
    372 typedef struct {
    374  uint64_t timestamp;
    376  uint32_t statusEngine ;
    378  uint16_t subframe;
    382  uint16_t status;
    383 } __attribute__((packed)) NvSciSyncTaskStatus;
    384 
    397 typedef enum {
    528 
    536 typedef struct {
    542  const void* value;
    544  size_t len;
    546 
    580  NvSciSyncModule* newModule);
    581 
    620  NvSciSyncModule module);
    621 
    656  NvSciSyncModule module,
    657  NvSciSyncCpuWaitContext* newContext);
    658 
    686  NvSciSyncCpuWaitContext context);
    687 
    722  NvSciSyncModule module,
    723  NvSciSyncAttrList* attrList);
    724 
    752  NvSciSyncAttrList attrList);
    753 
    782  NvSciSyncAttrList attrList,
    783  bool* isReconciled);
    784 
    837  NvSciSyncAttrList reconciledAttrList,
    838  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    839  size_t inputUnreconciledAttrListCount,
    840  bool* isReconciledListValid);
    841 
    890  NvSciSyncAttrList attrList,
    891  const NvSciSyncAttrKeyValuePair* pairArray,
    892  size_t pairCount);
    893 
    936  NvSciSyncAttrList attrList,
    937  NvSciSyncAttrKeyValuePair* pairArray,
    938  size_t pairCount);
    939 
    964  NvSciSyncAttrList attrList);
    965 
    1019  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1020  size_t inputUnreconciledAttrListCount,
    1021  NvSciSyncAttrList* newUnreconciledAttrList);
    1022 
    1063  NvSciSyncAttrList origAttrList,
    1064  NvSciSyncAttrList* newAttrList);
    1065 
    1114  NvSciSyncAttrList attrList,
    1115  size_t slotIndex,
    1116  NvSciSyncAttrKeyValuePair* pairArray,
    1117  size_t pairCount);
    1118 
    1127 #if (NV_IS_SAFETY == 0)
    1128 
    1134 #endif
    1135 
    1145 #if (NV_IS_SAFETY == 0)
    1146 
    1151 #else
    1152 
    1155 #endif
    1156 
    1169 #if (NV_IS_SAFETY == 0)
    1170 
    1172 #endif
    1173 
    1203  const NvSciSyncAttrList inputArray[],
    1204  size_t inputCount,
    1205  NvSciSyncAttrList* newReconciledList,
    1206  NvSciSyncAttrList* newConflictList);
    1207 
    1208 #if (NV_IS_SAFETY == 0)
    1209 
    1241  NvSciSyncAttrList attrList,
    1242  void** buf,
    1243  size_t* len);
    1244 #endif
    1245 
    1290 #if (NV_IS_SAFETY == 0)
    1291 
    1294 #endif
    1295 
    1318  const NvSciSyncAttrList unreconciledAttrListArray[],
    1319  size_t unreconciledAttrListCount,
    1320  NvSciIpcEndpoint ipcEndpoint,
    1321  void** descBuf,
    1322  size_t* descLen);
    1323 
    1369  const NvSciSyncAttrList reconciledAttrList,
    1370  NvSciIpcEndpoint ipcEndpoint,
    1371  void** descBuf,
    1372  size_t* descLen);
    1373 
    1423  NvSciSyncModule module,
    1424  NvSciIpcEndpoint ipcEndpoint,
    1425  const void* descBuf,
    1426  size_t descLen,
    1427  NvSciSyncAttrList* importedUnreconciledAttrList);
    1428 
    1506  NvSciSyncModule module,
    1507  NvSciIpcEndpoint ipcEndpoint,
    1508  const void* descBuf,
    1509  size_t descLen,
    1510  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1511  size_t inputUnreconciledAttrListCount,
    1512  NvSciSyncAttrList* importedReconciledAttrList);
    1513 
    1541  void* descBuf);
    1542 
    1571 void NvSciSyncFenceClear(
    1572  NvSciSyncFence* syncFence);
    1573 
    1614  const NvSciSyncFence* srcSyncFence,
    1615  NvSciSyncFence* dstSyncFence);
    1616 
    1648  const NvSciSyncFence* syncFence,
    1649  uint64_t* id,
    1650  uint64_t* value);
    1651 
    1704  NvSciSyncObj syncObj,
    1705  uint64_t id,
    1706  uint64_t value,
    1707  NvSciSyncFence* syncFence);
    1708 
    1742  NvSciSyncFence* syncFence,
    1743  uint32_t timestampSlot);
    1744 
    1778  NvSciSyncFence* syncFence,
    1779  uint32_t taskStatusSlot);
    1780 
    1814  NvSciSyncFence* syncFence,
    1815  uint32_t* timeStampSlot);
    1816 
    1859  NvSciSyncAttrList reconciledList,
    1860  NvSciSyncObj* syncObj);
    1861 
    1902  NvSciSyncObj syncObj,
    1903  NvSciSyncObj* dupObj);
    1904 
    1939  NvSciSyncObj syncObj,
    1940  NvSciSyncAttrList* syncAttrList);
    1941 
    1978 void NvSciSyncObjFree(
    1979  NvSciSyncObj syncObj);
    1980 
    2017 #if (NV_L4T == 1)
    2018 
    2022 #endif
    2023 
    2044  NvSciSyncObj syncObj,
    2045  NvSciSyncAccessPerm permissions,
    2046  NvSciIpcEndpoint ipcEndpoint,
    2048 
    2118  NvSciIpcEndpoint ipcEndpoint,
    2119  const NvSciSyncObjIpcExportDescriptor* desc,
    2120  NvSciSyncAttrList inputAttrList,
    2121  NvSciSyncAccessPerm permissions,
    2122  int64_t timeoutUs,
    2123  NvSciSyncObj* syncObj);
    2124 
    2166  const NvSciSyncFence* syncFence,
    2167  NvSciIpcEndpoint ipcEndpoint,
    2169 
    2215  NvSciSyncObj syncObj,
    2217  NvSciSyncFence* syncFence);
    2218 
    2234 #if (NV_IS_SAFETY == 0)
    2235 
    2238 #endif
    2239 
    2264  NvSciSyncObj syncObj,
    2265  NvSciSyncFence* syncFence);
    2266 
    2271 #if (NV_IS_SAFETY == 0)
    2272 
    2275 #endif
    2276 
    2307  NvSciSyncObj syncObj);
    2308 
    2367  const NvSciSyncFence* syncFence,
    2368  NvSciSyncCpuWaitContext context,
    2369  int64_t timeoutUs);
    2370 
    2410  const NvSciSyncFence* syncFence,
    2411  uint64_t* timestampUS);
    2412 
    2446  const NvSciSyncFence* syncFence,
    2447  NvSciSyncTaskStatus* taskStatus);
    2448 
    2449 /*
    2450  * NvSciSync Utility functions
    2451  */
    2452 
    2492  NvSciSyncAttrList attrList,
    2493  NvSciSyncAttrKey key,
    2494  const void** value,
    2495  size_t* len);
    2496 
    2514 #if (NV_IS_SAFETY == 0)
    2515 
    2521 #else
    2522 
    2525 #endif
    2526 
    2539 #if (NV_IS_SAFETY == 0)
    2540 
    2542 #endif
    2543 
    2571  const NvSciSyncAttrList inputArray[],
    2572  size_t inputCount,
    2573  NvSciSyncObj* syncObj,
    2574  NvSciSyncAttrList* newConflictList);
    2575 
    2632  NvSciSyncObj syncObj,
    2633  NvSciSyncAccessPerm permissions,
    2634  NvSciIpcEndpoint ipcEndpoint,
    2635  void** attrListAndObjDesc,
    2636  size_t* attrListAndObjDescSize);
    2637 
    2667  void* attrListAndObjDescBuf);
    2668 
    2750  NvSciSyncModule module,
    2751  NvSciIpcEndpoint ipcEndpoint,
    2752  const void* attrListAndObjDesc,
    2753  size_t attrListAndObjDescSize,
    2754  NvSciSyncAttrList const attrList[],
    2755  size_t attrListCount,
    2756  NvSciSyncAccessPerm minPermissions,
    2757  int64_t timeoutUs,
    2758  NvSciSyncObj* syncObj);
    2759 
    2794 #if (NV_IS_SAFETY == 0)
    2795 
    2798 #endif
    2800  uint32_t majorVer,
    2801  uint32_t minorVer,
    2802  bool* isCompatible);
    2803 
    2804 #if defined(__cplusplus)
    2805 }
    2806 #endif // __cplusplus
    2807 
    2808 #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:496
    NvSciError
    NvSciError
    Return/error codes for all NvSci functions.
    Definition: nvscierror.h:45
    NvSciSyncTaskStatus::subframe
    uint16_t subframe
    unused
    Definition: nvscisync.h:378
    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:420
    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:361
    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:331
    NvSciSyncAttrKeyValuePair::len
    size_t len
    Length of the value in bytes.
    Definition: nvscisync.h:544
    NvSciSyncTaskStatusVal
    NvSciSyncTaskStatusVal
    Status of the signaler's task that signals a particular NvSciSyncFence.
    Definition: nvscisync.h:357
    NvSciSyncAttrKey_LowerBound
    @ NvSciSyncAttrKey_LowerBound
    Specifies the lower bound - for NvSciSync internal use only.
    Definition: nvscisync.h:399
    NvSciSyncTaskStatus_Invalid
    @ NvSciSyncTaskStatus_Invalid
    The signaler did not report any task status.
    Definition: nvscisync.h:364
    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:540
    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:168
    NvSciSyncAttrList
    struct NvSciSyncAttrListRec * NvSciSyncAttrList
    A container constituting an NvSciSyncAttrList which contains:
    Definition: nvscisync.h:314
    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:506
    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:484
    NvSciSyncAttrKeyValuePair::value
    const void * value
    Memory which contains the value corresponding to the key.
    Definition: nvscisync.h:542
    NvSciSyncAttrKey_MaxPrimitiveValue
    @ NvSciSyncAttrKey_MaxPrimitiveValue
    (uint64_t, out) Specifies the maximum value of the reconciled primitive.
    Definition: nvscisync.h:524
    NvSciSyncFenceMaxTimeout
    static const int64_t NvSciSyncFenceMaxTimeout
    Maximum supported timeout value.
    Definition: nvscisync.h:182
    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:301
    NvSciSyncModuleClose
    void NvSciSyncModuleClose(NvSciSyncModule module)
    Closes an instance of the NvSciSyncModule that was obtained through an earlier call to NvSciSyncModul...
    NvSciSyncAccessPerm_WaitOnly
    @ NvSciSyncAccessPerm_WaitOnly
    This represents the capability to wait on an NvSciSyncObj as it progresses through points on its sync...
    Definition: nvscisync.h:326
    NvSciSyncObjIpcExportDescriptor
    Defines the exported form of NvSciSyncObj intended to be shared across an NvSciIpc channel.
    Definition: nvscisync.h:268
    NvSciSyncTaskStatus::statusEngine
    uint32_t statusEngine
    unused
    Definition: nvscisync.h:376
    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:397
    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:284
    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:536
    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:428
    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:175
    NvSciSyncAccessPerm
    NvSciSyncAccessPerm
    Describes NvSciSyncObj access permissions.
    Definition: nvscisync.h:321
    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...
    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:343
    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:240
    NvSciSyncTaskStatus
    A single slot in the task status buffer.
    Definition: nvscisync.h:372
    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:516
    NvSciSyncAttrKey_ActualPerm
    @ NvSciSyncAttrKey_ActualPerm
    (NvSciSyncAccessPerm, out) Actual permission granted after reconciliation.
    Definition: nvscisync.h:459
    NvSciSyncFenceExtractTimestampSlot
    NvSciError NvSciSyncFenceExtractTimestampSlot(NvSciSyncFence *syncFence, uint32_t *timeStampSlot)
    Reads the current timestamp slot index from the NvSciSyncFence.
    NvSciSyncTaskStatus::status
    uint16_t status
    A status word filled with NvSciSyncTaskStatusVal values.
    Definition: nvscisync.h:382
    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:195
    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:526
    NvSciSyncFenceInitializer
    static const NvSciSyncFence NvSciSyncFenceInitializer
    Defines the value used to zero-initialize the NvSciSyncFence object.
    Definition: nvscisync.h:250
    NvSciSyncObj
    struct NvSciSyncObjRec * NvSciSyncObj
    A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
    Definition: nvscisync.h:295
    NvSciSyncAttrListCreate
    NvSciError NvSciSyncAttrListCreate(NvSciSyncModule module, NvSciSyncAttrList *attrList)
    Creates a new, single-slot unreconciled NvSciSyncAttrList associated with the input NvSciSyncModule w...
    NvSciSyncTaskStatus::timestamp
    uint64_t timestamp
    unused
    Definition: nvscisync.h:374
    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:258
    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:359
    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:337
    NvSciSyncAttrKey_WaiterContextInsensitiveFenceExports
    @ NvSciSyncAttrKey_WaiterContextInsensitiveFenceExports
    (bool, inout) Importing and then exporting an NvSciSyncFenceIpcExportDescriptor has no side effects a...
    Definition: nvscisync.h:478
    NvSciSyncCpuWaitContext
    struct NvSciSyncCpuWaitContextRec * NvSciSyncCpuWaitContext
    Represents the right to perform a CPU wait on an NvSciSyncFence.
    Definition: nvscisync.h:207
    NvSciSyncFenceDup
    NvSciError NvSciSyncFenceDup(const NvSciSyncFence *srcSyncFence, NvSciSyncFence *dstSyncFence)
    Duplicates the given NvSciSyncFence, such that any wait on duplicated NvSciSyncFence will complete at...
    人人超碰97caoporen国产