NVIDIA DRIVE OS Linux SDK API Reference

6.0.9 Release
nvmedia_dla_nvscisync.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2019-2023 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 
88  NvMediaVersion *version
89 );
90 
149  const NvMediaDla *dla,
150  NvSciSyncAttrList attrlist,
151  NvMediaNvSciSyncClientType clienttype
152 );
153 
213  const NvMediaDla* dla,
214  NvSciSyncAttrList attrlist,
215  NvMediaNvSciSyncClientType clienttype
216 );
217 
273  NvMediaDla *dla,
274  NvMediaNvSciSyncObjType syncobjtype,
275  NvSciSyncObj nvscisync
276 );
277 
325  NvMediaDla *dla,
326  NvSciSyncObj scisyncobj
327 );
328 
378  NvMediaDla *dla,
379  NvSciSyncObj nvscisyncSOF
380 );
381 
431  NvMediaDla *dla,
432  NvSciSyncObj nvscisyncEOF
433 );
434 
492  NvMediaDla *dla,
493  const NvSciSyncFence *prenvscisyncfence
494 );
495 
560  const NvMediaDla *dla,
561  NvSciSyncObj sofnvscisyncobj,
562  NvSciSyncFence *sofnvscisyncfence
563 );
564 
629  const NvMediaDla *dla,
630  NvSciSyncObj eofnvscisyncobj,
631  NvSciSyncFence *eofnvscisyncfence
632 );
633 
687  NvMediaDla* dla,
688  NvSciSyncObj syncObj
689 );
690 
744  NvMediaDla* dla,
745  NvSciSyncObj syncObj
746 );
747 
748 /*
749  * \defgroup history_nvmedia_dla_nvscisync History
750  * Provides change history for the NvMedia Dla NvSciSync API
751  *
752  * \section history_nvmedia_dla_nvscisync Version History
753  *
754  * <b> Version 1.0 </b> March 14, 2019
755  * - Initial release
756  *
757  * <b> Version 1.1 </b> April 11, 2019
758  * - Add new API NvMediaDlaSetNvSciSyncObjforSOF and NvMediaDlaGetEOFNvSciSyncFence
759  * - Rename NvMediaDlaUnRegisterNvSciSyncObj to NvMediaDlaUnregisterNvSciSyncObj
760  *
761  * <b> Version 1.2 </b> Jan 22, 2020
762  * - Disable NvMediaDlaSetNvSciSyncObjforSOF and NvMediaDlaGetSOFNvSciSyncFence in
763  * safety build as they are currently unsupported.
764  *
765  * <b> Version 1.3 </b> Jul 20, 2020
766  * - Added support for NvSciSyncObj backed by deterministic primitive.
767  * - Currently timestamp feature is disabled with NvSciSyncObj backed by
768  * deterministic primitive.
769  * - Added new APIs: NvMediaDlaInsertEOFNvSciSyncObj,
770  * NvMediaDlaInsertSOFNvSciSyncObj (disabled in safety),
771  * NvMediaDlaFillNvSciSyncDeterministicAttrList
772  *
773  * <b> Version 1.4 </b> July 26, 2021
774  * - Update comments for NvMediaDlaGetEOFNvSciSyncFence and NvMediaDlaGetSOFNvSciSyncFence
775  *
776  * <b> Version 1.5 </b> August 20, 2021
777  * - Update doxygen comments for All APIs to have Thread safety information and API Group information
778  *
779  * <b> Version 1.6 </b> October 25, 2021
780  * - Enable SOF feature in safety builds.
781  * - Enable timestamp support for all primitives.
782  *
783  * <b> Version 1.6.0 </b> May 10, 2022
784  * - Added patch version number macro: NVMEDIA_DLA_NVSCISYNC_VERSION_PATCH.
785  *
786  */
787 
790 #ifdef __cplusplus
791 } /* extern "C" */
792 #endif
793 
794 #endif /* NVMEDIA_DLA_NVSCISYNC_H */
NvMediaDlaFillNvSciSyncAttrList
NvMediaStatus NvMediaDlaFillNvSciSyncAttrList(const NvMediaDla *dla, NvSciSyncAttrList attrlist, NvMediaNvSciSyncClientType clienttype)
Fills the NvMediaDla specific NvSciSync attributes.
NvMediaDlaUnregisterNvSciSyncObj
NvMediaStatus NvMediaDlaUnregisterNvSciSyncObj(NvMediaDla *dla, NvSciSyncObj scisyncobj)
Unregisters an NvSciSyncObj with NvMediaDla.
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:330
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.
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:256
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:311
NvMediaDlaRegisterNvSciSyncObj
NvMediaStatus NvMediaDlaRegisterNvSciSyncObj(NvMediaDla *dla, NvMediaNvSciSyncObjType syncobjtype, NvSciSyncObj nvscisync)
Registers an NvSciSyncObj with NvMediaDla.