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.8 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 
    151 #if !defined (__cplusplus)
    152 #include <stddef.h>
    153 #include <stdbool.h>
    154 #include <stdint.h>
    155 #endif
    156 
    157 #include "nvscierror.h"
    158 #include "nvsciipc.h"
    159 #include "nvscibuf.h"
    160 
    161 #if defined (__cplusplus)
    162 extern "C"
    163 {
    164 #endif
    165 
    166 #if defined __GNUC__
    167  #define PACK_SYNC( __Declaration__, ... ) __Declaration__,##__VA_ARGS__ __attribute__((packed))
    168 #else
    169  #define PACK_SYNC( __Declaration__, ... ) __pragma(pack(push, 1)) __Declaration__,##__VA_ARGS__ __pragma(pack(pop))
    170 #endif
    171 
    177 static const uint32_t NvSciSyncMajorVersion = 2U;
    178 
    184 static const uint32_t NvSciSyncMinorVersion = 8U;
    185 
    191 static const int64_t NvSciSyncFenceMaxTimeout = (0x7fffffffffffffff / 1000);
    192 
    204 typedef struct NvSciSyncModuleRec* NvSciSyncModule;
    205 
    216 typedef struct NvSciSyncCpuWaitContextRec* NvSciSyncCpuWaitContext;
    217 
    249 typedef struct NvSciSyncFence {
    250  uint64_t payload[6];
    252 
    260 
    267 typedef struct {
    268  uint64_t payload[7];
    270 
    277 typedef struct {
    279  uint64_t payload[128];
    281 
    304 typedef struct NvSciSyncObjRec* NvSciSyncObj;
    305 
    310 typedef const struct NvSciSyncObjRec* NvSciSyncObjConst;
    311 
    323 typedef struct NvSciSyncAttrListRec* NvSciSyncAttrList;
    324 
    330 typedef uint64_t NvSciSyncAccessPerm;
    331 
    336 #if defined(__cplusplus)
    337  #define NvSciSyncAccessPerm_WaitOnly (static_cast<uint64_t>(1U) << 0U)
    338 #else
    339  #define NvSciSyncAccessPerm_WaitOnly ((uint64_t)1U << 0U)
    340 #endif
    341 
    346 #if defined(__cplusplus)
    347  #define NvSciSyncAccessPerm_SignalOnly (static_cast<uint64_t>(1U) << 1U)
    348 #else
    349  #define NvSciSyncAccessPerm_SignalOnly ((uint64_t)1U << 1U)
    350 #endif
    351 
    357 #define NvSciSyncAccessPerm_WaitSignal (NvSciSyncAccessPerm_WaitOnly | NvSciSyncAccessPerm_SignalOnly)
    358 
    363 #if defined(__cplusplus)
    364  #define NvSciSyncAccessPerm_Auto (static_cast<uint64_t>(1U) << 63U)
    365 #else
    366  #define NvSciSyncAccessPerm_Auto ((uint64_t)1U << 63U)
    367 #endif
    368 
    380 typedef enum {
    389 
    395 PACK_SYNC(typedef struct {
    397  uint64_t timestamp;
    399  uint32_t statusEngine;
    401  uint16_t subframe;
    405  uint16_t status;
    406 }) NvSciSyncTaskStatus;
    407 
    447 };
    448 
    455 
    468 typedef enum {
    626 
    632 #if (NV_IS_SAFETY == 0)
    633 
    638 #else
    639 
    642 #endif
    653 
    661 typedef struct {
    667  const void* value;
    669  size_t len;
    671 
    675 typedef enum {
    685 
    720  NvSciSyncModule* newModule);
    721 
    762  NvSciSyncModule module);
    763 
    799  NvSciSyncModule module,
    800  NvSciSyncCpuWaitContext* newContext);
    801 
    831  NvSciSyncCpuWaitContext context);
    832 
    868  NvSciSyncModule module,
    869  NvSciSyncAttrList* attrList);
    870 
    900  NvSciSyncAttrList attrList);
    901 
    931  NvSciSyncAttrList attrList,
    932  bool* isReconciled);
    933 
    989  NvSciSyncAttrList reconciledAttrList,
    990  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    991  size_t inputUnreconciledAttrListCount,
    992  bool* isReconciledListValid);
    993 
    1043  NvSciSyncAttrList attrList,
    1044  const NvSciSyncAttrKeyValuePair* pairArray,
    1045  size_t pairCount);
    1046 
    1090  NvSciSyncAttrList attrList,
    1091  NvSciSyncAttrKeyValuePair* pairArray,
    1092  size_t pairCount);
    1093 
    1118  NvSciSyncAttrList attrList);
    1119 
    1176  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1177  size_t inputUnreconciledAttrListCount,
    1178  NvSciSyncAttrList* newUnreconciledAttrList);
    1179 
    1221  NvSciSyncAttrList origAttrList,
    1222  NvSciSyncAttrList* newAttrList);
    1223 
    1272  NvSciSyncAttrList attrList,
    1273  size_t slotIndex,
    1274  NvSciSyncAttrKeyValuePair* pairArray,
    1275  size_t pairCount);
    1276 
    1285 #if (NV_IS_SAFETY == 0)
    1286 
    1292 #endif
    1293 
    1303 #if (NV_IS_SAFETY == 0)
    1304 
    1309 #else
    1310 
    1313 #endif
    1314 
    1329 #if (NV_IS_SAFETY == 0)
    1330 
    1332 #endif
    1333 
    1363  const NvSciSyncAttrList inputArray[],
    1364  size_t inputCount,
    1365  NvSciSyncAttrList* newReconciledList,
    1366  NvSciSyncAttrList* newConflictList);
    1367 
    1368 #if (NV_IS_SAFETY == 0)
    1369 
    1406  NvSciSyncAttrList attrList,
    1407  void** buf,
    1408  size_t* len);
    1409 #endif
    1410 
    1458 #if (NV_IS_SAFETY == 0)
    1459 
    1462 #endif
    1463 
    1486  const NvSciSyncAttrList unreconciledAttrListArray[],
    1487  size_t unreconciledAttrListCount,
    1488  NvSciIpcEndpoint ipcEndpoint,
    1489  void** descBuf,
    1490  size_t* descLen);
    1491 
    1538  const NvSciSyncAttrList reconciledAttrList,
    1539  NvSciIpcEndpoint ipcEndpoint,
    1540  void** descBuf,
    1541  size_t* descLen);
    1542 
    1593  NvSciSyncModule module,
    1594  NvSciIpcEndpoint ipcEndpoint,
    1595  const void* descBuf,
    1596  size_t descLen,
    1597  NvSciSyncAttrList* importedUnreconciledAttrList);
    1598 
    1679  NvSciSyncModule module,
    1680  NvSciIpcEndpoint ipcEndpoint,
    1681  const void* descBuf,
    1682  size_t descLen,
    1683  const NvSciSyncAttrList inputUnreconciledAttrListArray[],
    1684  size_t inputUnreconciledAttrListCount,
    1685  NvSciSyncAttrList* importedReconciledAttrList);
    1686 
    1715  void* descBuf);
    1716 
    1745 void NvSciSyncFenceClear(
    1746  NvSciSyncFence* syncFence);
    1747 
    1788  const NvSciSyncFence* srcSyncFence,
    1789  NvSciSyncFence* dstSyncFence);
    1790 
    1822  const NvSciSyncFence* syncFence,
    1823  uint64_t* id,
    1824  uint64_t* value);
    1825 
    1878  NvSciSyncObj syncObj,
    1879  uint64_t id,
    1880  uint64_t value,
    1881  NvSciSyncFence* syncFence);
    1882 
    1916  NvSciSyncFence* syncFence,
    1917  uint32_t timestampSlot);
    1918 
    1952  NvSciSyncFence* syncFence,
    1953  uint32_t taskStatusSlot);
    1954 
    1987  NvSciSyncFence* syncFence,
    1988  uint32_t* timeStampSlot);
    1989 
    2033  NvSciSyncAttrList reconciledList,
    2034  NvSciSyncObj* syncObj);
    2035 
    2077  NvSciSyncObj syncObj,
    2078  NvSciSyncObj* dupObj);
    2079 
    2114  NvSciSyncObj syncObj,
    2115  NvSciSyncAttrList* syncAttrList);
    2116 
    2155 void NvSciSyncObjFree(
    2156  NvSciSyncObj syncObj);
    2157 
    2195 #if (NV_L4T == 1)
    2196 
    2200 #endif
    2201 
    2222  NvSciSyncObj syncObj,
    2223  NvSciSyncAccessPerm permissions,
    2224  NvSciIpcEndpoint ipcEndpoint,
    2226 
    2297  NvSciIpcEndpoint ipcEndpoint,
    2298  const NvSciSyncObjIpcExportDescriptor* desc,
    2299  NvSciSyncAttrList inputAttrList,
    2300  NvSciSyncAccessPerm permissions,
    2301  int64_t timeoutUs,
    2302  NvSciSyncObj* syncObj);
    2303 
    2345  const NvSciSyncFence* syncFence,
    2346  NvSciIpcEndpoint ipcEndpoint,
    2348 
    2394  NvSciSyncObj syncObj,
    2396  NvSciSyncFence* syncFence);
    2397 
    2402 #if (NV_IS_SAFETY == 0)
    2403 
    2411 #else
    2412 
    2427 #endif
    2428 
    2446  NvSciSyncObj syncObj);
    2447 
    2463 #if (NV_IS_SAFETY == 0)
    2464 
    2467 #endif
    2468 
    2493  NvSciSyncObj syncObj,
    2494  NvSciSyncFence* syncFence);
    2495 
    2500 #if (NV_IS_SAFETY == 0)
    2501 
    2504 #endif
    2505 
    2536  NvSciSyncObj syncObj);
    2537 
    2596  const NvSciSyncFence* syncFence,
    2597  NvSciSyncCpuWaitContext context,
    2598  int64_t timeoutUs);
    2599 
    2638  const NvSciSyncFence* syncFence,
    2639  uint64_t* timestampUS);
    2640 
    2675  const NvSciSyncFence* syncFence,
    2676  NvSciSyncTaskStatus* taskStatus);
    2677 
    2678 /*
    2679  * NvSciSync Utility functions
    2680  */
    2681 
    2722  NvSciSyncAttrList attrList,
    2723  NvSciSyncAttrKey key,
    2724  const void** value,
    2725  size_t* len);
    2726 
    2744 #if (NV_IS_SAFETY == 0)
    2745 
    2751 #else
    2752 
    2755 #endif
    2756 
    2771 #if (NV_IS_SAFETY == 0)
    2772 
    2774 #endif
    2775 
    2803  const NvSciSyncAttrList inputArray[],
    2804  size_t inputCount,
    2805  NvSciSyncObj* syncObj,
    2806  NvSciSyncAttrList* newConflictList);
    2807 
    2865  NvSciSyncObj syncObj,
    2866  NvSciSyncAccessPerm permissions,
    2867  NvSciIpcEndpoint ipcEndpoint,
    2868  void** attrListAndObjDesc,
    2869  size_t* attrListAndObjDescSize);
    2870 
    2901  void* attrListAndObjDescBuf);
    2902 
    2986  NvSciSyncModule module,
    2987  NvSciIpcEndpoint ipcEndpoint,
    2988  const void* attrListAndObjDesc,
    2989  size_t attrListAndObjDescSize,
    2990  NvSciSyncAttrList const attrList[],
    2991  size_t attrListCount,
    2992  NvSciSyncAccessPerm minPermissions,
    2993  int64_t timeoutUs,
    2994  NvSciSyncObj* syncObj);
    2995 
    3031 #if (NV_IS_SAFETY == 0)
    3032 
    3035 #endif
    3037  uint32_t majorVer,
    3038  uint32_t minorVer,
    3039  bool* isCompatible);
    3040 
    3087  NvSciSyncObj syncObj,
    3088  const NvSciSyncAttrList inputArray[],
    3089  size_t inputCount);
    3090 
    3125  NvSciSyncAttrList unrecAttrList,
    3126  NvSciSyncAccessPerm permissions);
    3127 
    3134 #if (NV_IS_SAFETY == 0)
    3135 
    3146 #else
    3147 
    3168 #endif
    3169 
    3187  NvSciSyncAttrList reconciledAttrList,
    3188  const NvSciSyncAttrKeyValuePair* pairArray,
    3189  size_t pairCount,
    3190  NvSciSyncAccessPerm permissions);
    3191 
    3263  const NvSciSyncFence* syncFence,
    3264  NvSciSyncCpuWaitContext context,
    3265  int64_t timeoutUs,
    3266  NvSciSyncWaitMode waitMode);
    3267 
    3268 #if defined(__cplusplus)
    3269 }
    3270 #endif // __cplusplus
    3271 
    3272 #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:444
    NvSciSyncAttrKey_RequireDeterministicFences
    @ NvSciSyncAttrKey_RequireDeterministicFences
    (bool, inout) Specifies if deterministic primitives are required.
    Definition: nvscisync.h:574
    NvSciSyncAccessPerm
    uint64_t NvSciSyncAccessPerm
    Describes NvSciSyncObj access permissions.
    Definition: nvscisync.h:330
    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:677
    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:498
    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:426
    NvSciSyncTaskStatus_Failure
    @ NvSciSyncTaskStatus_Failure
    The task has failed.
    Definition: nvscisync.h:384
    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:420
    NvSciSyncAttrKeyValuePair::len
    size_t len
    Length of the value in bytes.
    Definition: nvscisync.h:669
    NvSciSyncTaskStatusVal
    NvSciSyncTaskStatusVal
    Status of the signaler's task that signals a particular NvSciSyncFence.
    Definition: nvscisync.h:380
    NvSciSyncFence::payload
    uint64_t payload[6]
    Definition: nvscisync.h:250
    NvSciSyncAttrKey_LowerBound
    @ NvSciSyncAttrKey_LowerBound
    Specifies the lower bound - for NvSciSync internal use only.
    Definition: nvscisync.h:470
    NvSciSyncTaskStatus_Invalid
    @ NvSciSyncTaskStatus_Invalid
    The signaler did not report any task status.
    Definition: nvscisync.h:387
    NvSciSyncWaitMode_BusyNoYield
    @ NvSciSyncWaitMode_BusyNoYield
    Polling with spin, no yielding.
    Definition: nvscisync.h:681
    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:665
    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:177
    NvSciSyncAttrKey_PeerHwEngineArray
    @ NvSciSyncAttrKey_PeerHwEngineArray
    (NvSciBufPeerHwEngine[], inout) An attribute indicating engine information of late peer which are goi...
    Definition: nvscisync.h:649
    NvSciSyncAttrList
    struct NvSciSyncAttrListRec * NvSciSyncAttrList
    A container constituting an NvSciSyncAttrList which contains:
    Definition: nvscisync.h:323
    NvSciSyncAttrValPrimitiveType
    enum NvSciSyncAttrValPrimitiveTypeRec NvSciSyncAttrValPrimitiveType
    Alias for enum NvSciSyncAttrValPrimitiveTypeRec.
    Definition: nvscisync.h:454
    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:584
    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:562
    NvSciSyncAttrKeyValuePair::value
    const void * value
    Memory which contains the value corresponding to the key.
    Definition: nvscisync.h:667
    NvSciSyncAttrKey_MaxPrimitiveValue
    @ NvSciSyncAttrKey_MaxPrimitiveValue
    (uint64_t, out) Specifies the maximum value of the reconciled primitive.
    Definition: nvscisync.h:602
    NvSciSyncFenceMaxTimeout
    static const int64_t NvSciSyncFenceMaxTimeout
    Maximum supported timeout value.
    Definition: nvscisync.h:191
    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:631
    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:625
    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:310
    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:277
    NvSciSyncAttrValPrimitiveType_SysmemSemaphorePayload64b
    @ NvSciSyncAttrValPrimitiveType_SysmemSemaphorePayload64b
    16 bytes semaphore backed by system memory.
    Definition: nvscisync.h:438
    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:432
    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:468
    NvSciSyncWaitMode_BusyWithYield
    @ NvSciSyncWaitMode_BusyWithYield
    Polling with processor yielding.
    Definition: nvscisync.h:679
    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:643
    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:661
    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:506
    NvSciSyncAttrValPrimitiveTypeRec
    NvSciSyncAttrValPrimitiveTypeRec
    Types of synchronization primitives.
    Definition: nvscisync.h:413
    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:184
    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:415
    NvSciSyncAttrListReconcile
    NvSciError NvSciSyncAttrListReconcile(const NvSciSyncAttrList inputArray[], size_t inputCount, NvSciSyncAttrList *newReconciledList, NvSciSyncAttrList *newConflictList)
    Reconciles the input unreconciled NvSciSyncAttrLists into a new reconciled NvSciSyncAttrList.
    NvSciSyncFenceWait
    NvSciError NvSciSyncFenceWait(const NvSciSyncFence *syncFence, NvSciSyncCpuWaitContext context, int64_t timeoutUs)
    Performs a synchronous wait on the NvSciSyncFence object until the NvSciSyncFence has been signaled o...
    NvSciSyncModuleOpen
    NvSciError NvSciSyncModuleOpen(NvSciSyncModule *newModule)
    Initializes and returns a new NvSciSyncModule with no NvSciSyncAttrLists, NvSciSyncCpuWaitContexts,...
    NvSciSyncAttrListReconcileAndObjAlloc
    NvSciError NvSciSyncAttrListReconcileAndObjAlloc(const NvSciSyncAttrList inputArray[], size_t inputCount, NvSciSyncObj *syncObj, NvSciSyncAttrList *newConflictList)
    Reconciles the input unreconciled NvSciSyncAttrList(s) into a new reconciled NvSciSyncAttrList.
    NvSciSyncAttrListDebugDump
    NvSciError NvSciSyncAttrListDebugDump(NvSciSyncAttrList attrList, void **buf, size_t *len)
    Dumps the NvSciSyncAttrList into a binary descriptor.
    NvSciSyncFence
    struct NvSciSyncFence NvSciSyncFence
    Defines the opaque NvSciSyncFence.
    NvSciSyncFence
    Defines the opaque NvSciSyncFence.
    Definition: nvscisync.h:249
    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:683
    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:594
    NvSciSyncAttrKey_ActualPerm
    @ NvSciSyncAttrKey_ActualPerm
    (NvSciSyncAccessPerm, out) Actual permission granted after reconciliation.
    Definition: nvscisync.h:537
    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:446
    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:204
    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:651
    NvSciSyncFenceInitializer
    static const NvSciSyncFence NvSciSyncFenceInitializer
    Defines the value used to zero-initialize the NvSciSyncFence object.
    Definition: nvscisync.h:259
    NvSciSyncObj
    struct NvSciSyncObjRec * NvSciSyncObj
    A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
    Definition: nvscisync.h:304
    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:169
    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:267
    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:382
    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:556
    NvSciSyncWaitMode
    NvSciSyncWaitMode
    Modes of CPU waiting.
    Definition: nvscisync.h:675
    NvSciSyncCpuWaitContext
    struct NvSciSyncCpuWaitContextRec * NvSciSyncCpuWaitContext
    Represents the right to perform a CPU wait on an NvSciSyncFence.
    Definition: nvscisync.h:216
    NvSciSyncFenceDup
    NvSciError NvSciSyncFenceDup(const NvSciSyncFence *srcSyncFence, NvSciSyncFence *dstSyncFence)
    Duplicates the given NvSciSyncFence, such that any wait on duplicated NvSciSyncFence will complete at...
    人人超碰97caoporen国产