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.9 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-2023, 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 
    727  NvSciSyncModule* newModule);
    728 
    769  NvSciSyncModule module);
    770 
    806  NvSciSyncModule module,
    807  NvSciSyncCpuWaitContext* newContext);
    808 
    838  NvSciSyncCpuWaitContext context);
    839 
    875  NvSciSyncModule module,
    876  NvSciSyncAttrList* attrList);
    877 
    907  NvSciSyncAttrList attrList);
    908 
    938  NvSciSyncAttrList attrList,
    939  bool* isReconciled);
    940 
    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 
    1097  NvSciSyncAttrList attrList,
    1098  NvSciSyncAttrKeyValuePair* pairArray,
    1099  size_t pairCount);
    1100 
    1125  NvSciSyncAttrList attrList);
    1126 
    1183  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1184  size_t inputUnreconciledAttrListCount,
    1185  NvSciSyncAttrList* newUnreconciledAttrList);
    1186 
    1228  NvSciSyncAttrList origAttrList,
    1229  NvSciSyncAttrList* newAttrList);
    1230 
    1279  NvSciSyncAttrList attrList,
    1280  size_t slotIndex,
    1281  NvSciSyncAttrKeyValuePair* pairArray,
    1282  size_t pairCount);
    1283 
    1292 #if (NV_IS_SAFETY == 0)
    1293 
    1299 #endif
    1300 
    1310 #if (NV_IS_SAFETY == 0)
    1311 
    1316 #else
    1317 
    1320 #endif
    1321 
    1336 #if (NV_IS_SAFETY == 0)
    1337 
    1339 #endif
    1340 
    1370  const NvSciSyncAttrList inputArray[],
    1371  size_t inputCount,
    1372  NvSciSyncAttrList* newReconciledList,
    1373  NvSciSyncAttrList* newConflictList);
    1374 
    1375 #if (NV_IS_SAFETY == 0)
    1376 
    1416 NvSciError NvSciSyncAttrListDebugDump(
    1418  NvSciSyncAttrList attrList,
    1419  void** buf,
    1420  size_t* len);
    1422 #endif
    1423 
    1471 #if (NV_IS_SAFETY == 0)
    1472 
    1475 #endif
    1476 
    1501  const NvSciSyncAttrList unreconciledAttrListArray[],
    1502  size_t unreconciledAttrListCount,
    1503  NvSciIpcEndpoint ipcEndpoint,
    1504  void** descBuf,
    1505  size_t* descLen);
    1506 
    1555  const NvSciSyncAttrList reconciledAttrList,
    1556  NvSciIpcEndpoint ipcEndpoint,
    1557  void** descBuf,
    1558  size_t* descLen);
    1559 
    1610  NvSciSyncModule module,
    1611  NvSciIpcEndpoint ipcEndpoint,
    1612  const void* descBuf,
    1613  size_t descLen,
    1614  NvSciSyncAttrList* importedUnreconciledAttrList);
    1615 
    1696  NvSciSyncModule module,
    1697  NvSciIpcEndpoint ipcEndpoint,
    1698  const void* descBuf,
    1699  size_t descLen,
    1700  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1701  size_t inputUnreconciledAttrListCount,
    1702  NvSciSyncAttrList* importedReconciledAttrList);
    1703 
    1732  void* descBuf);
    1733 
    1762 void NvSciSyncFenceClear(
    1763  NvSciSyncFence* syncFence);
    1764 
    1805  const NvSciSyncFence* srcSyncFence,
    1806  NvSciSyncFence* dstSyncFence);
    1807 
    1839  const NvSciSyncFence* syncFence,
    1840  uint64_t* id,
    1841  uint64_t* value);
    1842 
    1895  NvSciSyncObj syncObj,
    1896  uint64_t id,
    1897  uint64_t value,
    1898  NvSciSyncFence* syncFence);
    1899 
    1933  NvSciSyncFence* syncFence,
    1934  uint32_t timestampSlot);
    1935 
    1969  NvSciSyncFence* syncFence,
    1970  uint32_t taskStatusSlot);
    1971 
    2004  NvSciSyncFence* syncFence,
    2005  uint32_t* timeStampSlot);
    2006 
    2050  NvSciSyncAttrList reconciledList,
    2051  NvSciSyncObj* syncObj);
    2052 
    2094  NvSciSyncObj syncObj,
    2095  NvSciSyncObj* dupObj);
    2096 
    2131  NvSciSyncObj syncObj,
    2132  NvSciSyncAttrList* syncAttrList);
    2133 
    2172 void NvSciSyncObjFree(
    2173  NvSciSyncObj syncObj);
    2174 
    2212 #if (NV_L4T == 1)
    2213 
    2217 #endif
    2218 
    2239  NvSciSyncObj syncObj,
    2240  NvSciSyncAccessPerm permissions,
    2241  NvSciIpcEndpoint ipcEndpoint,
    2243 
    2314  NvSciIpcEndpoint ipcEndpoint,
    2315  const NvSciSyncObjIpcExportDescriptor* desc,
    2316  NvSciSyncAttrList inputAttrList,
    2317  NvSciSyncAccessPerm permissions,
    2318  int64_t timeoutUs,
    2319  NvSciSyncObj* syncObj);
    2320 
    2362  const NvSciSyncFence* syncFence,
    2363  NvSciIpcEndpoint ipcEndpoint,
    2365 
    2411  NvSciSyncObj syncObj,
    2413  NvSciSyncFence* syncFence);
    2414 
    2419 #if (NV_IS_SAFETY == 0)
    2420 
    2428 #else
    2429 
    2444 #endif
    2445 
    2463  NvSciSyncObj syncObj);
    2464 
    2480 #if (NV_IS_SAFETY == 0)
    2481 
    2484 #endif
    2485 
    2510  NvSciSyncObj syncObj,
    2511  NvSciSyncFence* syncFence);
    2512 
    2517 #if (NV_IS_SAFETY == 0)
    2518 
    2521 #endif
    2522 
    2553  NvSciSyncObj syncObj);
    2554 
    2613  const NvSciSyncFence* syncFence,
    2614  NvSciSyncCpuWaitContext context,
    2615  int64_t timeoutUs);
    2616 
    2655  const NvSciSyncFence* syncFence,
    2656  uint64_t* timestampUS);
    2657 
    2692  const NvSciSyncFence* syncFence,
    2693  NvSciSyncTaskStatus* taskStatus);
    2694 
    2695 /*
    2696  * NvSciSync Utility functions
    2697  */
    2698 
    2739  NvSciSyncAttrList attrList,
    2740  NvSciSyncAttrKey key,
    2741  const void** value,
    2742  size_t* len);
    2743 
    2761 #if (NV_IS_SAFETY == 0)
    2762 
    2768 #else
    2769 
    2772 #endif
    2773 
    2788 #if (NV_IS_SAFETY == 0)
    2789 
    2791 #endif
    2792 
    2820  const NvSciSyncAttrList inputArray[],
    2821  size_t inputCount,
    2822  NvSciSyncObj* syncObj,
    2823  NvSciSyncAttrList* newConflictList);
    2824 
    2882  NvSciSyncObj syncObj,
    2883  NvSciSyncAccessPerm permissions,
    2884  NvSciIpcEndpoint ipcEndpoint,
    2885  void** attrListAndObjDesc,
    2886  size_t* attrListAndObjDescSize);
    2887 
    2918  void* attrListAndObjDescBuf);
    2919 
    3003  NvSciSyncModule module,
    3004  NvSciIpcEndpoint ipcEndpoint,
    3005  const void* attrListAndObjDesc,
    3006  size_t attrListAndObjDescSize,
    3007  NvSciSyncAttrList const attrList[],
    3008  size_t attrListCount,
    3009  NvSciSyncAccessPerm minPermissions,
    3010  int64_t timeoutUs,
    3011  NvSciSyncObj* syncObj);
    3012 
    3048 #if (NV_IS_SAFETY == 0)
    3049 
    3052 #endif
    3054  uint32_t majorVer,
    3055  uint32_t minorVer,
    3056  bool* isCompatible);
    3057 
    3104  NvSciSyncObj syncObj,
    3105  const NvSciSyncAttrList inputArray[],
    3106  size_t inputCount);
    3107 
    3142  NvSciSyncAttrList unrecAttrList,
    3143  NvSciSyncAccessPerm permissions);
    3144 
    3151 #if (NV_IS_SAFETY == 0)
    3152 
    3163 #else
    3164 
    3185 #endif
    3186 
    3204  NvSciSyncAttrList reconciledAttrList,
    3205  const NvSciSyncAttrKeyValuePair* pairArray,
    3206  size_t pairCount,
    3207  NvSciSyncAccessPerm permissions);
    3208 
    3280  const NvSciSyncFence* syncFence,
    3281  NvSciSyncCpuWaitContext context,
    3282  int64_t timeoutUs,
    3283  NvSciSyncWaitMode waitMode);
    3284 
    3285 #if defined(__cplusplus)
    3286 }
    3287 #endif // __cplusplus
    3288 
    3289 #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:322
    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.
    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国产