NVIDIA DRIVE OS Linux SDK API Reference

6.0.5 Release
nvmedia_dla_nvscisync.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2019-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
22 #ifndef NVMEDIA_DLA_NVSCISYNC_H
23 #define NVMEDIA_DLA_NVSCISYNC_H
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #include "nvmedia_core.h"
30 #include "nvscisync.h"
31 #include "nvmedia_dla.h"
32 
44 #define NVMEDIA_DLA_NVSCISYNC_VERSION_MAJOR 1
45 
46 #define NVMEDIA_DLA_NVSCISYNC_VERSION_MINOR 6
47 
48 #define NVMEDIA_DLA_NVSCISYNC_VERSION_PATCH 0
49 
54 #define NVMEDIA_DLA_MAX_PRENVSCISYNCFENCES (8U)
55 
85  NvMediaVersion *version
86 );
87 
133  const NvMediaDla *dla,
134  NvSciSyncAttrList attrlist,
135  NvMediaNvSciSyncClientType clienttype
136 );
137 
184  const NvMediaDla* dla,
185  NvSciSyncAttrList attrlist,
186  NvMediaNvSciSyncClientType clienttype
187 );
188 
238  NvMediaDla *dla,
239  NvMediaNvSciSyncObjType syncobjtype,
240  NvSciSyncObj nvscisync
241 );
242 
284  NvMediaDla *dla,
285  NvSciSyncObj nvscisync
286 );
287 
331  NvMediaDla *dla,
332  NvSciSyncObj nvscisyncSOF
333 );
334 
378  NvMediaDla *dla,
379  NvSciSyncObj nvscisyncEOF
380 );
381 
432  NvMediaDla *dla,
433  const NvSciSyncFence *prenvscisyncfence
434 );
435 
492  const NvMediaDla *dla,
493  NvSciSyncObj sofnvscisyncobj,
494  NvSciSyncFence *sofnvscisyncfence
495 );
496 
554  const NvMediaDla *dla,
555  NvSciSyncObj eofnvscisyncobj,
556  NvSciSyncFence *eofnvscisyncfence
557 );
558 
604  NvMediaDla* dla,
605  NvSciSyncObj syncObj
606 );
607 
653  NvMediaDla* dla,
654  NvSciSyncObj syncObj
655 );
656 
657 /*
658  * \defgroup history_nvmedia_dla_nvscisync History
659  * Provides change history for the NvMedia Dla NvSciSync API
660  *
661  * \section history_nvmedia_dla_nvscisync Version History
662  *
663  * <b> Version 1.0 </b> March 14, 2019
664  * - Initial release
665  *
666  * <b> Version 1.1 </b> April 11, 2019
667  * - Add new API NvMediaDlaSetNvSciSyncObjforSOF and NvMediaDlaGetEOFNvSciSyncFence
668  * - Rename NvMediaDlaUnRegisterNvSciSyncObj to NvMediaDlaUnregisterNvSciSyncObj
669  *
670  * <b> Version 1.2 </b> Jan 22, 2020
671  * - Disable NvMediaDlaSetNvSciSyncObjforSOF and NvMediaDlaGetSOFNvSciSyncFence in
672  * safety build as they are currently unsupported.
673  *
674  * <b> Version 1.3 </b> Jul 20, 2020
675  * - Added support for NvSciSyncObj backed by deterministic primitive.
676  * - Currently timestamp feature is disabled with NvSciSyncObj backed by
677  * deterministic primitive.
678  * - Added new APIs: NvMediaDlaInsertEOFNvSciSyncObj,
679  * NvMediaDlaInsertSOFNvSciSyncObj (disabled in safety),
680  * NvMediaDlaFillNvSciSyncDeterministicAttrList
681  *
682  * <b> Version 1.4 </b> July 26, 2021
683  * - Update comments for NvMediaDlaGetEOFNvSciSyncFence and NvMediaDlaGetSOFNvSciSyncFence
684  *
685  * <b> Version 1.5 </b> August 20, 2021
686  * - Update doxygen comments for All APIs to have Thread safety information and API Group information
687  *
688  * <b> Version 1.6 </b> October 25, 2021
689  * - Enable SOF feature in safety builds.
690  * - Enable timestamp support for all primitives.
691  *
692  * <b> Version 1.6.0 </b> May 10, 2022
693  * - Added patch version number macro: NVMEDIA_DLA_NVSCISYNC_VERSION_PATCH.
694  *
695  */
696 
699 #ifdef __cplusplus
700 } /* extern "C" */
701 #endif
702 
703 #endif /* NVMEDIA_DLA_NVSCISYNC_H */
NvMediaDlaFillNvSciSyncAttrList
NvMediaStatus NvMediaDlaFillNvSciSyncAttrList(const NvMediaDla *dla, NvSciSyncAttrList attrlist, NvMediaNvSciSyncClientType clienttype)
Fills the NvMediaDla specific NvSciSync attributes.
nvmedia_dla.h
NVIDIA Media Interface: DLA
NvMediaDlaGetSOFNvSciSyncFence
NvMediaStatus NvMediaDlaGetSOFNvSciSyncFence(const NvMediaDla *dla, NvSciSyncObj sofnvscisyncobj, NvSciSyncFence *sofnvscisyncfence)
Gets an SOF NvSciSyncFence for a DLA submit operation.
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:104
NvMediaNvSciSyncObjType
NvMediaNvSciSyncObjType
Defines NvMedia NvSciSyncObj types.
Definition: nvmedia_core.h:202
NvMediaNvSciSyncClientType
NvMediaNvSciSyncClientType
NvMedia NvSciSync Client Type.
Definition: nvmedia_core.h:189
NvSciSyncAttrList
struct NvSciSyncAttrListRec * NvSciSyncAttrList
A container constituting an NvSciSyncAttrList which contains:
Definition: nvscisync.h:314
nvscisync.h
NVIDIA Software Communications Interface (SCI) : NvSciSync
NvMediaVersion
Holds NvMedia version information.
Definition: nvmedia_core.h:164
NvMediaDlaInsertPreNvSciSyncFence
NvMediaStatus NvMediaDlaInsertPreNvSciSyncFence(NvMediaDla *dla, const NvSciSyncFence *prenvscisyncfence)
Sets an NvSciSyncFence as a prefence for a DLA submit operation.
NvMediaDlaInsertEOFNvSciSyncObj
NvMediaStatus NvMediaDlaInsertEOFNvSciSyncObj(NvMediaDla *dla, NvSciSyncObj syncObj)
Sets NvSciSyncObj as a EOF for a DLA submit operation.
NvMediaDlaNvSciSyncGetVersion
NvMediaStatus NvMediaDlaNvSciSyncGetVersion(NvMediaVersion *version)
Returns the version information for the NvMedia DLA NvSciSync library.
nvmedia_core.h
NVIDIA Media Interface: Core
NvMediaDlaInsertSOFNvSciSyncObj
NvMediaStatus NvMediaDlaInsertSOFNvSciSyncObj(NvMediaDla *dla, NvSciSyncObj syncObj)
Sets NvSciSyncObj as a SOF for a DLA submit operation.
NvMediaDlaSetNvSciSyncObjforSOF
NvMediaStatus NvMediaDlaSetNvSciSyncObjforSOF(NvMediaDla *dla, NvSciSyncObj nvscisyncSOF)
Sets the NvSciSyncObj to be used for a Start of Frame (SOF) NvSciSyncFence.
NvMediaDlaGetEOFNvSciSyncFence
NvMediaStatus NvMediaDlaGetEOFNvSciSyncFence(const NvMediaDla *dla, NvSciSyncObj eofnvscisyncobj, NvSciSyncFence *eofnvscisyncfence)
Gets an EOF NvSciSyncFence for a DLA submit operation.
NvMediaDlaFillNvSciSyncDeterministicAttrList
NvMediaStatus NvMediaDlaFillNvSciSyncDeterministicAttrList(const NvMediaDla *dla, NvSciSyncAttrList attrlist, NvMediaNvSciSyncClientType clienttype)
Fills the NvMediaDla specific NvSciSync deterministic attributes.
NvMediaDlaUnregisterNvSciSyncObj
NvMediaStatus NvMediaDlaUnregisterNvSciSyncObj(NvMediaDla *dla, NvSciSyncObj nvscisync)
Unregisters an NvSciSyncObj with NvMediaDla.
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:240
NvMediaDla
struct NvMediaDla NvMediaDla
Holds a handle to the NvMedia DLA device.
Definition: nvmedia_dla.h:78
NvMediaDlaSetNvSciSyncObjforEOF
NvMediaStatus NvMediaDlaSetNvSciSyncObjforEOF(NvMediaDla *dla, NvSciSyncObj nvscisyncEOF)
Sets an NvSciSyncObj to be used for a End of Frame (EOF) NvSciSyncFence.
NvSciSyncObj
struct NvSciSyncObjRec * NvSciSyncObj
A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
Definition: nvscisync.h:295
NvMediaDlaRegisterNvSciSyncObj
NvMediaStatus NvMediaDlaRegisterNvSciSyncObj(NvMediaDla *dla, NvMediaNvSciSyncObjType syncobjtype, NvSciSyncObj nvscisync)
Registers an NvSciSyncObj with NvMediaDla.