1 #define NVOC_KERNEL_VIDEO_ENGINE_H_PRIVATE_ACCESS_ALLOWED
2 #include "nvoc/runtime.h"
3 #include "nvoc/rtti.h"
4 #include "nvtypes.h"
5 #include "nvport/nvport.h"
6 #include "nvport/inline/util_valist.h"
7 #include "utils/nvassert.h"
8 #include "g_kernel_video_engine_nvoc.h"
9
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x9e2f3e = 1;
12 #endif
13
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelVideoEngine;
15
16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
17
18 void __nvoc_init_KernelVideoEngine(KernelVideoEngine*, RmHalspecOwner* );
19 void __nvoc_init_funcTable_KernelVideoEngine(KernelVideoEngine*, RmHalspecOwner* );
20 NV_STATUS __nvoc_ctor_KernelVideoEngine(KernelVideoEngine*, RmHalspecOwner* , struct OBJGPU * arg_pGpu, ENGDESCRIPTOR arg_physEngDesc);
21 void __nvoc_init_dataField_KernelVideoEngine(KernelVideoEngine*, RmHalspecOwner* );
22 void __nvoc_dtor_KernelVideoEngine(KernelVideoEngine*);
23 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelVideoEngine;
24
25 static const struct NVOC_RTTI __nvoc_rtti_KernelVideoEngine_KernelVideoEngine = {
26 /*pClassDef=*/ &__nvoc_class_def_KernelVideoEngine,
27 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_KernelVideoEngine,
28 /*offset=*/ 0,
29 };
30
31 static const struct NVOC_RTTI __nvoc_rtti_KernelVideoEngine_Object = {
32 /*pClassDef=*/ &__nvoc_class_def_Object,
33 /*dtor=*/ &__nvoc_destructFromBase,
34 /*offset=*/ NV_OFFSETOF(KernelVideoEngine, __nvoc_base_Object),
35 };
36
37 static const struct NVOC_CASTINFO __nvoc_castinfo_KernelVideoEngine = {
38 /*numRelatives=*/ 2,
39 /*relatives=*/ {
40 &__nvoc_rtti_KernelVideoEngine_KernelVideoEngine,
41 &__nvoc_rtti_KernelVideoEngine_Object,
42 },
43 };
44
45 const struct NVOC_CLASS_DEF __nvoc_class_def_KernelVideoEngine =
46 {
47 /*classInfo=*/ {
48 /*size=*/ sizeof(KernelVideoEngine),
49 /*classId=*/ classId(KernelVideoEngine),
50 /*providerId=*/ &__nvoc_rtti_provider,
51 #if NV_PRINTF_STRINGS_ALLOWED
52 /*name=*/ "KernelVideoEngine",
53 #endif
54 },
55 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_KernelVideoEngine,
56 /*pCastInfo=*/ &__nvoc_castinfo_KernelVideoEngine,
57 /*pExportInfo=*/ &__nvoc_export_info_KernelVideoEngine
58 };
59
60 const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelVideoEngine =
61 {
62 /*numEntries=*/ 0,
63 /*pExportEntries=*/ 0
64 };
65
66 void __nvoc_dtor_Object(Object*);
__nvoc_dtor_KernelVideoEngine(KernelVideoEngine * pThis)67 void __nvoc_dtor_KernelVideoEngine(KernelVideoEngine *pThis) {
68 __nvoc_dtor_Object(&pThis->__nvoc_base_Object);
69 PORT_UNREFERENCED_VARIABLE(pThis);
70 }
71
__nvoc_init_dataField_KernelVideoEngine(KernelVideoEngine * pThis,RmHalspecOwner * pRmhalspecowner)72 void __nvoc_init_dataField_KernelVideoEngine(KernelVideoEngine *pThis, RmHalspecOwner *pRmhalspecowner) {
73 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
74 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
75 PORT_UNREFERENCED_VARIABLE(pThis);
76 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
77 PORT_UNREFERENCED_VARIABLE(rmVariantHal);
78 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
79 }
80
81 NV_STATUS __nvoc_ctor_Object(Object* );
__nvoc_ctor_KernelVideoEngine(KernelVideoEngine * pThis,RmHalspecOwner * pRmhalspecowner,struct OBJGPU * arg_pGpu,ENGDESCRIPTOR arg_physEngDesc)82 NV_STATUS __nvoc_ctor_KernelVideoEngine(KernelVideoEngine *pThis, RmHalspecOwner *pRmhalspecowner, struct OBJGPU * arg_pGpu, ENGDESCRIPTOR arg_physEngDesc) {
83 NV_STATUS status = NV_OK;
84 status = __nvoc_ctor_Object(&pThis->__nvoc_base_Object);
85 if (status != NV_OK) goto __nvoc_ctor_KernelVideoEngine_fail_Object;
86 __nvoc_init_dataField_KernelVideoEngine(pThis, pRmhalspecowner);
87
88 status = __nvoc_kvidengConstruct(pThis, arg_pGpu, arg_physEngDesc);
89 if (status != NV_OK) goto __nvoc_ctor_KernelVideoEngine_fail__init;
90 goto __nvoc_ctor_KernelVideoEngine_exit; // Success
91
92 __nvoc_ctor_KernelVideoEngine_fail__init:
93 __nvoc_dtor_Object(&pThis->__nvoc_base_Object);
94 __nvoc_ctor_KernelVideoEngine_fail_Object:
95 __nvoc_ctor_KernelVideoEngine_exit:
96
97 return status;
98 }
99
__nvoc_init_funcTable_KernelVideoEngine_1(KernelVideoEngine * pThis,RmHalspecOwner * pRmhalspecowner)100 static void __nvoc_init_funcTable_KernelVideoEngine_1(KernelVideoEngine *pThis, RmHalspecOwner *pRmhalspecowner) {
101 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
102 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
103 PORT_UNREFERENCED_VARIABLE(pThis);
104 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
105 PORT_UNREFERENCED_VARIABLE(rmVariantHal);
106 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
107
108 // Hal function -- kvidengInitLogging
109 if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000001UL) )) /* RmVariantHal: VF */
110 {
111 pThis->__kvidengInitLogging__ = &kvidengInitLogging_46f6a7;
112 }
113 else
114 {
115 pThis->__kvidengInitLogging__ = &kvidengInitLogging_KERNEL;
116 }
117
118 // Hal function -- kvidengFreeLogging
119 if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000001UL) )) /* RmVariantHal: VF */
120 {
121 pThis->__kvidengFreeLogging__ = &kvidengFreeLogging_b3696a;
122 }
123 else
124 {
125 pThis->__kvidengFreeLogging__ = &kvidengFreeLogging_KERNEL;
126 }
127 }
128
__nvoc_init_funcTable_KernelVideoEngine(KernelVideoEngine * pThis,RmHalspecOwner * pRmhalspecowner)129 void __nvoc_init_funcTable_KernelVideoEngine(KernelVideoEngine *pThis, RmHalspecOwner *pRmhalspecowner) {
130 __nvoc_init_funcTable_KernelVideoEngine_1(pThis, pRmhalspecowner);
131 }
132
133 void __nvoc_init_Object(Object*);
__nvoc_init_KernelVideoEngine(KernelVideoEngine * pThis,RmHalspecOwner * pRmhalspecowner)134 void __nvoc_init_KernelVideoEngine(KernelVideoEngine *pThis, RmHalspecOwner *pRmhalspecowner) {
135 pThis->__nvoc_pbase_KernelVideoEngine = pThis;
136 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_Object;
137 __nvoc_init_Object(&pThis->__nvoc_base_Object);
138 __nvoc_init_funcTable_KernelVideoEngine(pThis, pRmhalspecowner);
139 }
140
__nvoc_objCreate_KernelVideoEngine(KernelVideoEngine ** ppThis,Dynamic * pParent,NvU32 createFlags,struct OBJGPU * arg_pGpu,ENGDESCRIPTOR arg_physEngDesc)141 NV_STATUS __nvoc_objCreate_KernelVideoEngine(KernelVideoEngine **ppThis, Dynamic *pParent, NvU32 createFlags, struct OBJGPU * arg_pGpu, ENGDESCRIPTOR arg_physEngDesc)
142 {
143 NV_STATUS status;
144 Object *pParentObj = NULL;
145 KernelVideoEngine *pThis;
146 RmHalspecOwner *pRmhalspecowner;
147
148 // Assign `pThis`, allocating memory unless suppressed by flag.
149 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(KernelVideoEngine), (void**)&pThis, (void**)ppThis);
150 if (status != NV_OK)
151 return status;
152
153 // Zero is the initial value for everything.
154 portMemSet(pThis, 0, sizeof(KernelVideoEngine));
155
156 // Initialize runtime type information.
157 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_KernelVideoEngine);
158
159 pThis->__nvoc_base_Object.createFlags = createFlags;
160
161 // pParent must be a valid object that derives from a halspec owner class.
162 NV_ASSERT_OR_RETURN(pParent != NULL, NV_ERR_INVALID_ARGUMENT);
163
164 // Link the child into the parent unless flagged not to do so.
165 if (!(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
166 {
167 pParentObj = dynamicCast(pParent, Object);
168 objAddChild(pParentObj, &pThis->__nvoc_base_Object);
169 }
170 else
171 {
172 pThis->__nvoc_base_Object.pParent = NULL;
173 }
174
175 if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
176 pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
177 NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
178
179 __nvoc_init_KernelVideoEngine(pThis, pRmhalspecowner);
180 status = __nvoc_ctor_KernelVideoEngine(pThis, pRmhalspecowner, arg_pGpu, arg_physEngDesc);
181 if (status != NV_OK) goto __nvoc_objCreate_KernelVideoEngine_cleanup;
182
183 // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
184 *ppThis = pThis;
185
186 return NV_OK;
187
188 __nvoc_objCreate_KernelVideoEngine_cleanup:
189
190 // Unlink the child from the parent if it was linked above.
191 if (pParentObj != NULL)
192 objRemoveChild(pParentObj, &pThis->__nvoc_base_Object);
193
194 // Do not call destructors here since the constructor already called them.
195 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
196 portMemSet(pThis, 0, sizeof(KernelVideoEngine));
197 else
198 {
199 portMemFree(pThis);
200 *ppThis = NULL;
201 }
202
203 // coverity[leaked_storage:FALSE]
204 return status;
205 }
206
__nvoc_objCreateDynamic_KernelVideoEngine(KernelVideoEngine ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)207 NV_STATUS __nvoc_objCreateDynamic_KernelVideoEngine(KernelVideoEngine **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
208 NV_STATUS status;
209 struct OBJGPU * arg_pGpu = va_arg(args, struct OBJGPU *);
210 ENGDESCRIPTOR arg_physEngDesc = va_arg(args, ENGDESCRIPTOR);
211
212 status = __nvoc_objCreate_KernelVideoEngine(ppThis, pParent, createFlags, arg_pGpu, arg_physEngDesc);
213
214 return status;
215 }
216
217