NVIDIA DRIVE OS Linux SDK API Reference

6.0.6 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 
87  NvMediaVersion *version
88 );
89 
146  const NvMediaDla *dla,
147  NvSciSyncAttrList attrlist,
148  NvMediaNvSciSyncClientType clienttype
149 );
150 
208  const NvMediaDla* dla,
209  NvSciSyncAttrList attrlist,
210  NvMediaNvSciSyncClientType clienttype
211 );
212 
266  NvMediaDla *dla,
267  NvMediaNvSciSyncObjType syncobjtype,
268  NvSciSyncObj nvscisync
269 );
270 
316  NvMediaDla *dla,
317  NvSciSyncObj nvscisync
318 );
319 
367  NvMediaDla *dla,
368  NvSciSyncObj nvscisyncSOF
369 );
370 
418  NvMediaDla *dla,
419  NvSciSyncObj nvscisyncEOF
420 );
421 
477  NvMediaDla *dla,
478  const NvSciSyncFence *prenvscisyncfence
479 );
480 
543  const NvMediaDla *dla,
544  NvSciSyncObj sofnvscisyncobj,
545  NvSciSyncFence *sofnvscisyncfence
546 );
547 
610  const NvMediaDla *dla,
611  NvSciSyncObj eofnvscisyncobj,
612  NvSciSyncFence *eofnvscisyncfence
613 );
614 
666  NvMediaDla* dla,
667  NvSciSyncObj syncObj
668 );
669 
721  NvMediaDla* dla,
722  NvSciSyncObj syncObj
723 );
724 
725 /*
726  * \defgroup history_nvmedia_dla_nvscisync History
727  * Provides change history for the NvMedia Dla NvSciSync API
728  *
729  * \section history_nvmedia_dla_nvscisync Version History
730  *
731  * <b> Version 1.0 </b> March 14, 2019
732  * - Initial release
733  *
734  * <b> Version 1.1 </b> April 11, 2019
735  * - Add new API NvMediaDlaSetNvSciSyncObjforSOF and NvMediaDlaGetEOFNvSciSyncFence
736  * - Rename NvMediaDlaUnRegisterNvSciSyncObj to NvMediaDlaUnregisterNvSciSyncObj
737  *
738  * <b> Version 1.2 </b> Jan 22, 2020
739  * - Disable NvMediaDlaSetNvSciSyncObjforSOF and NvMediaDlaGetSOFNvSciSyncFence in
740  * safety build as they are currently unsupported.
741  *
742  * <b> Version 1.3 </b> Jul 20, 2020
743  * - Added support for NvSciSyncObj backed by deterministic primitive.
744  * - Currently timestamp feature is disabled with NvSciSyncObj backed by
745  * deterministic primitive.
746  * - Added new APIs: NvMediaDlaInsertEOFNvSciSyncObj,
747  * NvMediaDlaInsertSOFNvSciSyncObj (disabled in safety),
748  * NvMediaDlaFillNvSciSyncDeterministicAttrList
749  *
750  * <b> Version 1.4 </b> July 26, 2021
751  * - Update comments for NvMediaDlaGetEOFNvSciSyncFence and NvMediaDlaGetSOFNvSciSyncFence
752  *
753  * <b> Version 1.5 </b> August 20, 2021
754  * - Update doxygen comments for All APIs to have Thread safety information and API Group information
755  *
756  * <b> Version 1.6 </b> October 25, 2021
757  * - Enable SOF feature in safety builds.
758  * - Enable timestamp support for all primitives.
759  *
760  * <b> Version 1.6.0 </b> May 10, 2022
761  * - Added patch version number macro: NVMEDIA_DLA_NVSCISYNC_VERSION_PATCH.
762  *
763  */
764 
767 #ifdef __cplusplus
768 } /* extern "C" */
769 #endif
770 
771 #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:322
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:248
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:303
NvMediaDlaRegisterNvSciSyncObj
NvMediaStatus NvMediaDlaRegisterNvSciSyncObj(NvMediaDla *dla, NvMediaNvSciSyncObjType syncobjtype, NvSciSyncObj nvscisync)
Registers an NvSciSyncObj with NvMediaDla.