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

    6.0.10.0 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-2024, 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 
    158 #if !defined (__cplusplus)
    159 #include <stddef.h>
    160 #include <stdbool.h>
    161 #include <stdint.h>
    162 #endif
    163 
    164 #include "nvscierror.h"
    165 #include "nvsciipc.h"
    166 #include "nvscibuf.h"
    167 
    168 #if defined (__cplusplus)
    169 extern "C"
    170 {
    171 #endif
    172 
    173 #if defined __GNUC__
    174  #define PACK_SYNC( __Declaration__, ... ) __Declaration__,##__VA_ARGS__ __attribute__((packed))
    175 #else
    176  #define PACK_SYNC( __Declaration__, ... ) __pragma(pack(push, 1)) __Declaration__,##__VA_ARGS__ __pragma(pack(pop))
    177 #endif
    178 
    184 static const uint32_t NvSciSyncMajorVersion = 2U;
    185 
    191 static const uint32_t NvSciSyncMinorVersion = 8U;
    192 
    198 static const int64_t NvSciSyncFenceMaxTimeout = (0x7fffffffffffffff / 1000);
    199 
    211 typedef struct NvSciSyncModuleRec* NvSciSyncModule;
    212 
    223 typedef struct NvSciSyncCpuWaitContextRec* NvSciSyncCpuWaitContext;
    224 
    256 typedef struct NvSciSyncFence {
    257  uint64_t payload[6];
    259 
    267 
    274 typedef struct {
    275  uint64_t payload[7];
    277 
    284 typedef struct {
    286  uint64_t payload[128];
    288 
    311 typedef struct NvSciSyncObjRec* NvSciSyncObj;
    312 
    317 typedef const struct NvSciSyncObjRec* NvSciSyncObjConst;
    318 
    330 typedef struct NvSciSyncAttrListRec* NvSciSyncAttrList;
    331 
    337 typedef uint64_t NvSciSyncAccessPerm;
    338 
    343 #if defined(__cplusplus)
    344  #define NvSciSyncAccessPerm_WaitOnly (static_cast<uint64_t>(1U) << 0U)
    345 #else
    346  #define NvSciSyncAccessPerm_WaitOnly ((uint64_t)1U << 0U)
    347 #endif
    348 
    353 #if defined(__cplusplus)
    354  #define NvSciSyncAccessPerm_SignalOnly (static_cast<uint64_t>(1U) << 1U)
    355 #else
    356  #define NvSciSyncAccessPerm_SignalOnly ((uint64_t)1U << 1U)
    357 #endif
    358 
    364 #define NvSciSyncAccessPerm_WaitSignal (NvSciSyncAccessPerm_WaitOnly | NvSciSyncAccessPerm_SignalOnly)
    365 
    370 #if defined(__cplusplus)
    371  #define NvSciSyncAccessPerm_Auto (static_cast<uint64_t>(1U) << 63U)
    372 #else
    373  #define NvSciSyncAccessPerm_Auto ((uint64_t)1U << 63U)
    374 #endif
    375 
    387 typedef enum {
    396 
    402 PACK_SYNC(typedef struct {
    404  uint64_t timestamp;
    406  uint32_t statusEngine;
    408  uint16_t subframe;
    412  uint16_t status;
    413 }) NvSciSyncTaskStatus;
    414 
    454 };
    455 
    462 
    475 typedef enum {
    639 
    660 
    668 typedef struct {
    674  const void* value;
    676  size_t len;
    678 
    682 typedef enum {
    692 
    726  NvSciSyncModule* newModule);
    727 
    768  NvSciSyncModule module);
    769 
    805  NvSciSyncModule module,
    806  NvSciSyncCpuWaitContext* newContext);
    807 
    837  NvSciSyncCpuWaitContext context);
    838 
    874  NvSciSyncModule module,
    875  NvSciSyncAttrList* attrList);
    876 
    906  NvSciSyncAttrList attrList);
    907 
    937  NvSciSyncAttrList attrList,
    938  bool* isReconciled);
    939 
    996  NvSciSyncAttrList reconciledAttrList,
    997  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    998  size_t inputUnreconciledAttrListCount,
    999  bool* isReconciledListValid);
    1000 
    1050  NvSciSyncAttrList attrList,
    1051  const NvSciSyncAttrKeyValuePair* pairArray,
    1052  size_t pairCount);
    1053 
    1099  NvSciSyncAttrList attrList,
    1100  NvSciSyncAttrKeyValuePair* pairArray,
    1101  size_t pairCount);
    1102 
    1127  NvSciSyncAttrList attrList);
    1128 
    1188  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1189  size_t inputUnreconciledAttrListCount,
    1190  NvSciSyncAttrList* newUnreconciledAttrList);
    1191 
    1234  NvSciSyncAttrList origAttrList,
    1235  NvSciSyncAttrList* newAttrList);
    1236 
    1287  NvSciSyncAttrList attrList,
    1288  size_t slotIndex,
    1289  NvSciSyncAttrKeyValuePair* pairArray,
    1290  size_t pairCount);
    1291 
    1297 #if (NV_IS_SAFETY == 0)
    1298 
    1304 #endif
    1305 
    1314 #if (NV_IS_SAFETY == 0)
    1315 
    1320 #else
    1321 
    1324 #endif
    1325 
    1340 #if (NV_IS_SAFETY == 0)
    1341 
    1343 #endif
    1344 
    1379  const NvSciSyncAttrList inputArray[],
    1380  size_t inputCount,
    1381  NvSciSyncAttrList* newReconciledList,
    1382  NvSciSyncAttrList* newConflictList);
    1383 
    1384 #if (NV_IS_SAFETY == 0)
    1385 
    1425 NvSciError NvSciSyncAttrListDebugDump(
    1427  NvSciSyncAttrList attrList,
    1428  void** buf,
    1429  size_t* len);
    1431 #endif
    1432 
    1474 #if (NV_IS_SAFETY == 0)
    1475 
    1478 #endif
    1479 
    1507  const NvSciSyncAttrList unreconciledAttrListArray[],
    1508  size_t unreconciledAttrListCount,
    1509  NvSciIpcEndpoint ipcEndpoint,
    1510  void** descBuf,
    1511  size_t* descLen);
    1512 
    1558  const NvSciSyncAttrList reconciledAttrList,
    1559  NvSciIpcEndpoint ipcEndpoint,
    1560  void** descBuf,
    1561  size_t* descLen);
    1562 
    1613  NvSciSyncModule module,
    1614  NvSciIpcEndpoint ipcEndpoint,
    1615  const void* descBuf,
    1616  size_t descLen,
    1617  NvSciSyncAttrList* importedUnreconciledAttrList);
    1618 
    1698  NvSciSyncModule module,
    1699  NvSciIpcEndpoint ipcEndpoint,
    1700  const void* descBuf,
    1701  size_t descLen,
    1702  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1703  size_t inputUnreconciledAttrListCount,
    1704  NvSciSyncAttrList* importedReconciledAttrList);
    1705 
    1734  void* descBuf);
    1735 
    1764 void NvSciSyncFenceClear(
    1765  NvSciSyncFence* syncFence);
    1766 
    1810  const NvSciSyncFence* srcSyncFence,
    1811  NvSciSyncFence* dstSyncFence);
    1812 
    1844  const NvSciSyncFence* syncFence,
    1845  uint64_t* id,
    1846  uint64_t* value);
    1847 
    1901  NvSciSyncObj syncObj,
    1902  uint64_t id,
    1903  uint64_t value,
    1904  NvSciSyncFence* syncFence);
    1905 
    1939  NvSciSyncFence* syncFence,
    1940  uint32_t timestampSlot);
    1941 
    1975  NvSciSyncFence* syncFence,
    1976  uint32_t taskStatusSlot);
    1977 
    2010  NvSciSyncFence* syncFence,
    2011  uint32_t* timeStampSlot);
    2012 
    2056  NvSciSyncAttrList reconciledList,
    2057  NvSciSyncObj* syncObj);
    2058 
    2099  NvSciSyncObj syncObj,
    2100  NvSciSyncObj* dupObj);
    2101 
    2136  NvSciSyncObj syncObj,
    2137  NvSciSyncAttrList* syncAttrList);
    2138 
    2177 void NvSciSyncObjFree(
    2178  NvSciSyncObj syncObj);
    2179 
    2217 #if (NV_L4T == 1)
    2218 
    2222 #endif
    2223 
    2243  NvSciSyncObj syncObj,
    2244  NvSciSyncAccessPerm permissions,
    2245  NvSciIpcEndpoint ipcEndpoint,
    2247 
    2319  NvSciIpcEndpoint ipcEndpoint,
    2320  const NvSciSyncObjIpcExportDescriptor* desc,
    2321  NvSciSyncAttrList inputAttrList,
    2322  NvSciSyncAccessPerm permissions,
    2323  int64_t timeoutUs,
    2324  NvSciSyncObj* syncObj);
    2325 
    2366  const NvSciSyncFence* syncFence,
    2367  NvSciIpcEndpoint ipcEndpoint,
    2369 
    2414  NvSciSyncObj syncObj,
    2416  NvSciSyncFence* syncFence);
    2417 
    2422 #if (NV_IS_SAFETY == 0)
    2423 
    2431 #else
    2432 
    2448 #endif
    2449 
    2469  NvSciSyncObj syncObj);
    2470 
    2486 #if (NV_IS_SAFETY == 0)
    2487 
    2490 #endif
    2491 
    2517  NvSciSyncObj syncObj,
    2518  NvSciSyncFence* syncFence);
    2519 
    2556  NvSciSyncObj syncObj);
    2557 
    2618  const NvSciSyncFence* syncFence,
    2619  NvSciSyncCpuWaitContext context,
    2620  int64_t timeoutUs);
    2621 
    2663  const NvSciSyncFence* syncFence,
    2664  uint64_t* timestampUS);
    2665 
    2701  const NvSciSyncFence* syncFence,
    2702  NvSciSyncTaskStatus* taskStatus);
    2703 
    2704 /*
    2705  * NvSciSync Utility functions
    2706  */
    2707 
    2750  NvSciSyncAttrList attrList,
    2751  NvSciSyncAttrKey key,
    2752  const void** value,
    2753  size_t* len);
    2754 
    2774 #if (NV_IS_SAFETY == 0)
    2775 
    2781 #else
    2782 
    2785 #endif
    2786 
    2801 #if (NV_IS_SAFETY == 0)
    2802 
    2804 #endif
    2805 
    2833  const NvSciSyncAttrList inputArray[],
    2834  size_t inputCount,
    2835  NvSciSyncObj* syncObj,
    2836  NvSciSyncAttrList* newConflictList);
    2837 
    2894  NvSciSyncObj syncObj,
    2895  NvSciSyncAccessPerm permissions,
    2896  NvSciIpcEndpoint ipcEndpoint,
    2897  void** attrListAndObjDesc,
    2898  size_t* attrListAndObjDescSize);
    2899 
    2930  void* attrListAndObjDescBuf);
    2931 
    3015  NvSciSyncModule module,
    3016  NvSciIpcEndpoint ipcEndpoint,
    3017  const void* attrListAndObjDesc,
    3018  size_t attrListAndObjDescSize,
    3019  NvSciSyncAttrList const attrList[],
    3020  size_t attrListCount,
    3021  NvSciSyncAccessPerm minPermissions,
    3022  int64_t timeoutUs,
    3023  NvSciSyncObj* syncObj);
    3024 
    3062  uint32_t majorVer,
    3063  uint32_t minorVer,
    3064  bool* isCompatible);
    3065 
    3114  NvSciSyncObj syncObj,
    3115  const NvSciSyncAttrList inputArray[],
    3116  size_t inputCount);
    3117 
    3152  NvSciSyncAttrList unrecAttrList,
    3153  NvSciSyncAccessPerm permissions);
    3154 
    3161 #if (NV_IS_SAFETY == 0)
    3162 
    3173 #else
    3174 
    3197 #endif
    3198 
    3218  NvSciSyncAttrList reconciledAttrList,
    3219  const NvSciSyncAttrKeyValuePair* pairArray,
    3220  size_t pairCount,
    3221  NvSciSyncAccessPerm permissions);
    3222 
    3296  const NvSciSyncFence* syncFence,
    3297  NvSciSyncCpuWaitContext context,
    3298  int64_t timeoutUs,
    3299  NvSciSyncWaitMode waitMode);
    3300 
    3301 #if defined(__cplusplus)
    3302 }
    3303 #endif // __cplusplus
    3304 
    3305 #endif // INCLUDED_NVSCISYNC_H
    NvSciSyncFenceClear
    void NvSciSyncFenceClear(NvSciSyncFence *syncFence)
    Frees any resources allocated for the NvSciSyncFence.
    NvSciSyncAttrValPrimitiveType_VidmemSemaphorePayload64b
    @ NvSciSyncAttrValPrimitiveType_VidmemSemaphorePayload64b
    16 bytes semaphore backed by video memory.
    Definition: nvscisync.h:451
    NvSciSyncAttrKey_RequireDeterministicFences
    @ NvSciSyncAttrKey_RequireDeterministicFences
    (bool, inout) Specifies if deterministic primitives are required.
    Definition: nvscisync.h:587
    NvSciSyncAccessPerm
    uint64_t NvSciSyncAccessPerm
    Describes NvSciSyncObj access permissions.
    Definition: nvscisync.h:337
    NvSciSyncObjValidate
    NvSciError NvSciSyncObjValidate(NvSciSyncObj syncObj)
    Validates the NvSciSyncObj satisfies the constraints of the NvSciSyncAttrList that it is associated w...
    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...
    NvSciSyncWaitMode_Default
    @ NvSciSyncWaitMode_Default
    same behavior as with NvSciSyncFenceWait()
    Definition: nvscisync.h:684
    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:505
    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...
    NvSciSyncAttrValPrimitiveType_SysmemSemaphore
    @ NvSciSyncAttrValPrimitiveType_SysmemSemaphore
    16 bytes semaphore backed by system memory.
    Definition: nvscisync.h:433
    NvSciSyncTaskStatus_Failure
    @ NvSciSyncTaskStatus_Failure
    The task has failed.
    Definition: nvscisync.h:391
    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...
    NvSciSyncAttrValPrimitiveType_Syncpoint
    @ NvSciSyncAttrValPrimitiveType_Syncpoint
    Syncpoint.
    Definition: nvscisync.h:427
    NvSciSyncAttrKeyValuePair::len
    size_t len
    Length of the value in bytes.
    Definition: nvscisync.h:676
    NvSciSyncTaskStatusVal
    NvSciSyncTaskStatusVal
    Status of the signaler's task that signals a particular NvSciSyncFence.
    Definition: nvscisync.h:387
    NvSciSyncFence::payload
    uint64_t payload[6]
    Definition: nvscisync.h:257
    NvSciSyncAttrKey_LowerBound
    @ NvSciSyncAttrKey_LowerBound
    Specifies the lower bound - for NvSciSync internal use only.
    Definition: nvscisync.h:477
    NvSciSyncTaskStatus_Invalid
    @ NvSciSyncTaskStatus_Invalid
    The signaler did not report any task status.
    Definition: nvscisync.h:394
    NvSciSyncWaitMode_BusyNoYield
    @ NvSciSyncWaitMode_BusyNoYield
    Polling with spin, no yielding.
    Definition: nvscisync.h:688
    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:672
    NvSciSyncIpcExportFence
    NvSciError NvSciSyncIpcExportFence(const NvSciSyncFence *syncFence, NvSciIpcEndpoint ipcEndpoint, NvSciSyncFenceIpcExportDescriptor *desc)
    Exports the input NvSciSyncFence into a binary descriptor shareable across the NvSciIpc channel.
    NvSciSyncFenceWaitWithMode
    NvSciError NvSciSyncFenceWaitWithMode(const NvSciSyncFence *syncFence, NvSciSyncCpuWaitContext context, int64_t timeoutUs, NvSciSyncWaitMode waitMode)
    Performs a synchronous wait on the NvSciSyncFence object until the NvSciSyncFence has been signaled o...
    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:184
    NvSciSyncAttrKey_PeerHwEngineArray
    @ NvSciSyncAttrKey_PeerHwEngineArray
    (NvSciBufPeerHwEngine[], inout) An attribute indicating engine information of late peer which are goi...
    Definition: nvscisync.h:656
    NvSciSyncAttrList
    struct NvSciSyncAttrListRec * NvSciSyncAttrList
    A container constituting an NvSciSyncAttrList which contains:
    Definition: nvscisync.h:330
    NvSciSyncAttrValPrimitiveType
    enum NvSciSyncAttrValPrimitiveTypeRec NvSciSyncAttrValPrimitiveType
    Alias for enum NvSciSyncAttrValPrimitiveTypeRec.
    Definition: nvscisync.h:461
    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:597
    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:575
    NvSciSyncAttrKeyValuePair::value
    const void * value
    Memory which contains the value corresponding to the key.
    Definition: nvscisync.h:674
    NvSciSyncAttrKey_MaxPrimitiveValue
    @ NvSciSyncAttrKey_MaxPrimitiveValue
    (uint64_t, out) Specifies the maximum value of the reconciled primitive.
    Definition: nvscisync.h:615
    NvSciSyncFenceMaxTimeout
    static const int64_t NvSciSyncFenceMaxTimeout
    Maximum supported timeout value.
    Definition: nvscisync.h:198
    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.
    NvSciSyncAttrKey_PeerLocationInfo
    @ NvSciSyncAttrKey_PeerLocationInfo
    (NvSciBufPeerLocationInfo[], inout) An attribute indicating location information of late peer which a...
    Definition: nvscisync.h:644
    NvSciSyncAttrListIsReconciled
    NvSciError NvSciSyncAttrListIsReconciled(NvSciSyncAttrList attrList, bool *isReconciled)
    Checks whether the NvSciSyncAttrList is reconciled.
    NvSciSyncFillC2cAttrs
    NvSciError NvSciSyncFillC2cAttrs(NvSciSyncAttrList unrecAttrList, NvSciSyncAccessPerm permissions)
    Fills appropriate attributes for C2C copy in the input NvSciSyncAttrList.
    NvSciSyncAttrKey_PrimitiveInfo
    @ NvSciSyncAttrKey_PrimitiveInfo
    (NvSciSyncAttrValPrimitiveType[], inout) supported primitive types.
    Definition: nvscisync.h:638
    NvSciSyncObjAttachPeer
    NvSciError NvSciSyncObjAttachPeer(NvSciSyncObj syncObj, const NvSciSyncAttrList inputArray[], size_t inputCount)
    Allows remote peer NvSciIpcEndpoint to gain access to already allocated NvSciSyncObj.
    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:317
    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:284
    NvSciSyncAttrValPrimitiveType_SysmemSemaphorePayload64b
    @ NvSciSyncAttrValPrimitiveType_SysmemSemaphorePayload64b
    16 bytes semaphore backed by system memory.
    Definition: nvscisync.h:445
    nvsciipc.h
    NVIDIA Software Communications Interface (SCI) : NvSci Inter-Process Communication
    NvSciSyncAttrValPrimitiveType_VidmemSemaphore
    @ NvSciSyncAttrValPrimitiveType_VidmemSemaphore
    16 bytes semaphore backed by video memory.
    Definition: nvscisync.h:439
    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:475
    NvSciSyncWaitMode_BusyWithYield
    @ NvSciSyncWaitMode_BusyWithYield
    Polling with processor yielding.
    Definition: nvscisync.h:686
    NvSciSyncObjAlloc
    NvSciError NvSciSyncObjAlloc(NvSciSyncAttrList reconciledList, NvSciSyncObj *syncObj)
    Allocates and initializes a NvSciSyncObj that meets all the constraints specified in the given reconc...
    NvSciSyncAttrKey_GpuId
    @ NvSciSyncAttrKey_GpuId
    (NvSciRmGpuId[], inout) GpuID of the GPU in the system that will access the semaphore buffer.
    Definition: nvscisync.h:650
    NvSciIpcEndpoint
    uint64_t NvSciIpcEndpoint
    Handle to the NvSciIpc endpoint.
    Definition: nvsciipc.h:302
    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:668
    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:513
    NvSciSyncAttrValPrimitiveTypeRec
    NvSciSyncAttrValPrimitiveTypeRec
    Types of synchronization primitives.
    Definition: nvscisync.h:420
    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:191
    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.
    NvSciSyncAttrValPrimitiveType_LowerBound
    @ NvSciSyncAttrValPrimitiveType_LowerBound
    For NvSciSync internal use only.
    Definition: nvscisync.h:422
    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 and al...
    NvSciSyncFence
    struct NvSciSyncFence NvSciSyncFence
    Defines the opaque NvSciSyncFence.
    NvSciSyncFence
    Defines the opaque NvSciSyncFence.
    Definition: nvscisync.h:256
    NvSciSyncAttrListValidateReconciledAgainstAttrs
    NvSciError NvSciSyncAttrListValidateReconciledAgainstAttrs(NvSciSyncAttrList reconciledAttrList, const NvSciSyncAttrKeyValuePair *pairArray, size_t pairCount, NvSciSyncAccessPerm permissions)
    Validates reconciledAttrList against the set of input attributes that the user has set in the unrecon...
    NvSciSyncObjGetAttrList
    NvSciError NvSciSyncObjGetAttrList(NvSciSyncObj syncObj, NvSciSyncAttrList *syncAttrList)
    Retrieves the reconciled NvSciSyncAttrList associated with an input NvSciSyncObj.
    nvscibuf.h
    NVIDIA Software Communications Interface (SCI) : NvSciBuf
    NvSciSyncWaitMode_Blocking
    @ NvSciSyncWaitMode_Blocking
    Blocked wait, released by a trigger, like an interrupt.
    Definition: nvscisync.h:690
    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:607
    NvSciSyncAttrKey_ActualPerm
    @ NvSciSyncAttrKey_ActualPerm
    (NvSciSyncAccessPerm, out) Actual permission granted after reconciliation.
    Definition: nvscisync.h:544
    NvSciSyncFenceExtractTimestampSlot
    NvSciError NvSciSyncFenceExtractTimestampSlot(NvSciSyncFence *syncFence, uint32_t *timeStampSlot)
    Reads the current timestamp slot index from the NvSciSyncFence.
    NvSciSyncAttrValPrimitiveType_UpperBound
    @ NvSciSyncAttrValPrimitiveType_UpperBound
    For NvSciSync internal use only.
    Definition: nvscisync.h:453
    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:211
    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:658
    NvSciSyncFenceInitializer
    static const NvSciSyncFence NvSciSyncFenceInitializer
    Defines the value used to zero-initialize the NvSciSyncFence object.
    Definition: nvscisync.h:266
    NvSciSyncObj
    struct NvSciSyncObjRec * NvSciSyncObj
    A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
    Definition: nvscisync.h:311
    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:176
    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:274
    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:389
    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:563
    NvSciSyncWaitMode
    NvSciSyncWaitMode
    Modes of CPU waiting.
    Definition: nvscisync.h:682
    NvSciSyncCpuWaitContext
    struct NvSciSyncCpuWaitContextRec * NvSciSyncCpuWaitContext
    Represents the right to perform a CPU wait on an NvSciSyncFence.
    Definition: nvscisync.h:223
    NvSciSyncFenceDup
    NvSciError NvSciSyncFenceDup(const NvSciSyncFence *srcSyncFence, NvSciSyncFence *dstSyncFence)
    Duplicates the given NvSciSyncFence, such that any wait on duplicated NvSciSyncFence will complete at...
    人人超碰97caoporen国产