1 #define NVOC_CONF_COMPUTE_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_conf_compute_nvoc.h"
9 
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x9798cc = 1;
12 #endif
13 
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_ConfidentialCompute;
15 
16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
17 
18 extern const struct NVOC_CLASS_DEF __nvoc_class_def_OBJENGSTATE;
19 
20 void __nvoc_init_ConfidentialCompute(ConfidentialCompute*, RmHalspecOwner* );
21 void __nvoc_init_funcTable_ConfidentialCompute(ConfidentialCompute*, RmHalspecOwner* );
22 NV_STATUS __nvoc_ctor_ConfidentialCompute(ConfidentialCompute*, RmHalspecOwner* );
23 void __nvoc_init_dataField_ConfidentialCompute(ConfidentialCompute*, RmHalspecOwner* );
24 void __nvoc_dtor_ConfidentialCompute(ConfidentialCompute*);
25 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_ConfidentialCompute;
26 
27 static const struct NVOC_RTTI __nvoc_rtti_ConfidentialCompute_ConfidentialCompute = {
28     /*pClassDef=*/          &__nvoc_class_def_ConfidentialCompute,
29     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_ConfidentialCompute,
30     /*offset=*/             0,
31 };
32 
33 static const struct NVOC_RTTI __nvoc_rtti_ConfidentialCompute_Object = {
34     /*pClassDef=*/          &__nvoc_class_def_Object,
35     /*dtor=*/               &__nvoc_destructFromBase,
36     /*offset=*/             NV_OFFSETOF(ConfidentialCompute, __nvoc_base_OBJENGSTATE.__nvoc_base_Object),
37 };
38 
39 static const struct NVOC_RTTI __nvoc_rtti_ConfidentialCompute_OBJENGSTATE = {
40     /*pClassDef=*/          &__nvoc_class_def_OBJENGSTATE,
41     /*dtor=*/               &__nvoc_destructFromBase,
42     /*offset=*/             NV_OFFSETOF(ConfidentialCompute, __nvoc_base_OBJENGSTATE),
43 };
44 
45 static const struct NVOC_CASTINFO __nvoc_castinfo_ConfidentialCompute = {
46     /*numRelatives=*/       3,
47     /*relatives=*/ {
48         &__nvoc_rtti_ConfidentialCompute_ConfidentialCompute,
49         &__nvoc_rtti_ConfidentialCompute_OBJENGSTATE,
50         &__nvoc_rtti_ConfidentialCompute_Object,
51     },
52 };
53 
54 const struct NVOC_CLASS_DEF __nvoc_class_def_ConfidentialCompute =
55 {
56     /*classInfo=*/ {
57         /*size=*/               sizeof(ConfidentialCompute),
58         /*classId=*/            classId(ConfidentialCompute),
59         /*providerId=*/         &__nvoc_rtti_provider,
60 #if NV_PRINTF_STRINGS_ALLOWED
61         /*name=*/               "ConfidentialCompute",
62 #endif
63     },
64     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_ConfidentialCompute,
65     /*pCastInfo=*/          &__nvoc_castinfo_ConfidentialCompute,
66     /*pExportInfo=*/        &__nvoc_export_info_ConfidentialCompute
67 };
68 
69 static NV_STATUS __nvoc_thunk_ConfidentialCompute_engstateConstructEngine(struct OBJGPU *pGpu, struct OBJENGSTATE *pConfCompute, ENGDESCRIPTOR engDesc) {
70     return confComputeConstructEngine(pGpu, (struct ConfidentialCompute *)(((unsigned char *)pConfCompute) - __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset), engDesc);
71 }
72 
73 static NV_STATUS __nvoc_thunk_ConfidentialCompute_engstateStatePreInitLocked(struct OBJGPU *pGpu, struct OBJENGSTATE *pConfCompute) {
74     return confComputeStatePreInitLocked(pGpu, (struct ConfidentialCompute *)(((unsigned char *)pConfCompute) - __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset));
75 }
76 
77 static NV_STATUS __nvoc_thunk_ConfidentialCompute_engstateStateInitLocked(struct OBJGPU *pGpu, struct OBJENGSTATE *pConfCompute) {
78     return confComputeStateInitLocked(pGpu, (struct ConfidentialCompute *)(((unsigned char *)pConfCompute) - __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset));
79 }
80 
81 static NV_STATUS __nvoc_thunk_ConfidentialCompute_engstateStatePostLoad(struct OBJGPU *pGpu, struct OBJENGSTATE *pConfCompute, NvU32 flags) {
82     return confComputeStatePostLoad(pGpu, (struct ConfidentialCompute *)(((unsigned char *)pConfCompute) - __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset), flags);
83 }
84 
85 static NV_STATUS __nvoc_thunk_ConfidentialCompute_engstateStatePreUnload(struct OBJGPU *pGpu, struct OBJENGSTATE *pConfCompute, NvU32 flags) {
86     return confComputeStatePreUnload(pGpu, (struct ConfidentialCompute *)(((unsigned char *)pConfCompute) - __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset), flags);
87 }
88 
89 static void __nvoc_thunk_ConfidentialCompute_engstateStateDestroy(struct OBJGPU *pGpu, struct OBJENGSTATE *pConfCompute) {
90     confComputeStateDestroy(pGpu, (struct ConfidentialCompute *)(((unsigned char *)pConfCompute) - __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset));
91 }
92 
93 static NV_STATUS __nvoc_thunk_OBJENGSTATE_confComputeStateLoad(POBJGPU pGpu, struct ConfidentialCompute *pEngstate, NvU32 arg0) {
94     return engstateStateLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset), arg0);
95 }
96 
97 static NV_STATUS __nvoc_thunk_OBJENGSTATE_confComputeStateUnload(POBJGPU pGpu, struct ConfidentialCompute *pEngstate, NvU32 arg0) {
98     return engstateStateUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset), arg0);
99 }
100 
101 static NV_STATUS __nvoc_thunk_OBJENGSTATE_confComputeStatePreLoad(POBJGPU pGpu, struct ConfidentialCompute *pEngstate, NvU32 arg0) {
102     return engstateStatePreLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset), arg0);
103 }
104 
105 static NV_STATUS __nvoc_thunk_OBJENGSTATE_confComputeStatePostUnload(POBJGPU pGpu, struct ConfidentialCompute *pEngstate, NvU32 arg0) {
106     return engstateStatePostUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset), arg0);
107 }
108 
109 static NV_STATUS __nvoc_thunk_OBJENGSTATE_confComputeStateInitUnlocked(POBJGPU pGpu, struct ConfidentialCompute *pEngstate) {
110     return engstateStateInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset));
111 }
112 
113 static void __nvoc_thunk_OBJENGSTATE_confComputeInitMissing(POBJGPU pGpu, struct ConfidentialCompute *pEngstate) {
114     engstateInitMissing(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset));
115 }
116 
117 static NV_STATUS __nvoc_thunk_OBJENGSTATE_confComputeStatePreInitUnlocked(POBJGPU pGpu, struct ConfidentialCompute *pEngstate) {
118     return engstateStatePreInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset));
119 }
120 
121 static NvBool __nvoc_thunk_OBJENGSTATE_confComputeIsPresent(POBJGPU pGpu, struct ConfidentialCompute *pEngstate) {
122     return engstateIsPresent(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_ConfidentialCompute_OBJENGSTATE.offset));
123 }
124 
125 const struct NVOC_EXPORT_INFO __nvoc_export_info_ConfidentialCompute =
126 {
127     /*numEntries=*/     0,
128     /*pExportEntries=*/  0
129 };
130 
131 void __nvoc_dtor_OBJENGSTATE(OBJENGSTATE*);
132 void __nvoc_dtor_ConfidentialCompute(ConfidentialCompute *pThis) {
133     __nvoc_dtor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
134     PORT_UNREFERENCED_VARIABLE(pThis);
135 }
136 
137 void __nvoc_init_dataField_ConfidentialCompute(ConfidentialCompute *pThis, RmHalspecOwner *pRmhalspecowner) {
138     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
139     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
140     ChipHal *chipHal = &pRmhalspecowner->chipHal;
141     const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx;
142     PORT_UNREFERENCED_VARIABLE(pThis);
143     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
144     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
145     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
146     PORT_UNREFERENCED_VARIABLE(chipHal);
147     PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx);
148     pThis->setProperty(pThis, PDB_PROP_CONFCOMPUTE_ENABLED, ((NvBool)(0 != 0)));
149     pThis->setProperty(pThis, PDB_PROP_CONFCOMPUTE_CC_FEATURE_ENABLED, ((NvBool)(0 != 0)));
150     pThis->setProperty(pThis, PDB_PROP_CONFCOMPUTE_APM_FEATURE_ENABLED, ((NvBool)(0 != 0)));
151     pThis->setProperty(pThis, PDB_PROP_CONFCOMPUTE_DEVTOOLS_MODE_ENABLED, ((NvBool)(0 != 0)));
152     pThis->setProperty(pThis, PDB_PROP_CONFCOMPUTE_ENABLE_EARLY_INIT, ((NvBool)(0 != 0)));
153     pThis->setProperty(pThis, PDB_PROP_CONFCOMPUTE_GPUS_READY_CHECK_ENABLED, ((NvBool)(0 == 0)));
154     pThis->setProperty(pThis, PDB_PROP_CONFCOMPUTE_SPDM_ENABLED, ((NvBool)(0 != 0)));
155     pThis->setProperty(pThis, PDB_PROP_CONFCOMPUTE_ENCRYPT_READY, ((NvBool)(0 != 0)));
156     pThis->setProperty(pThis, PDB_PROP_CONFCOMPUTE_ENCRYPT_ENABLED, ((NvBool)(0 != 0)));
157 }
158 
159 NV_STATUS __nvoc_ctor_OBJENGSTATE(OBJENGSTATE* );
160 NV_STATUS __nvoc_ctor_ConfidentialCompute(ConfidentialCompute *pThis, RmHalspecOwner *pRmhalspecowner) {
161     NV_STATUS status = NV_OK;
162     status = __nvoc_ctor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
163     if (status != NV_OK) goto __nvoc_ctor_ConfidentialCompute_fail_OBJENGSTATE;
164     __nvoc_init_dataField_ConfidentialCompute(pThis, pRmhalspecowner);
165     goto __nvoc_ctor_ConfidentialCompute_exit; // Success
166 
167 __nvoc_ctor_ConfidentialCompute_fail_OBJENGSTATE:
168 __nvoc_ctor_ConfidentialCompute_exit:
169 
170     return status;
171 }
172 
173 static void __nvoc_init_funcTable_ConfidentialCompute_1(ConfidentialCompute *pThis, RmHalspecOwner *pRmhalspecowner) {
174     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
175     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
176     ChipHal *chipHal = &pRmhalspecowner->chipHal;
177     const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx;
178     PORT_UNREFERENCED_VARIABLE(pThis);
179     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
180     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
181     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
182     PORT_UNREFERENCED_VARIABLE(chipHal);
183     PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx);
184 
185     pThis->__confComputeConstructEngine__ = &confComputeConstructEngine_IMPL;
186 
187     // Hal function -- confComputeStatePreInitLocked
188     pThis->__confComputeStatePreInitLocked__ = &confComputeStatePreInitLocked_IMPL;
189 
190     pThis->__confComputeStateInitLocked__ = &confComputeStateInitLocked_IMPL;
191 
192     // Hal function -- confComputeStatePostLoad
193     pThis->__confComputeStatePostLoad__ = &confComputeStatePostLoad_IMPL;
194 
195     // Hal function -- confComputeStatePreUnload
196     pThis->__confComputeStatePreUnload__ = &confComputeStatePreUnload_56cd7a;
197 
198     // Hal function -- confComputeStateDestroy
199     pThis->__confComputeStateDestroy__ = &confComputeStateDestroy_IMPL;
200 
201     // Hal function -- confComputeKeyStoreRetrieveViaChannel
202     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
203     {
204         pThis->__confComputeKeyStoreRetrieveViaChannel__ = &confComputeKeyStoreRetrieveViaChannel_GH100;
205     }
206     // default
207     else
208     {
209         pThis->__confComputeKeyStoreRetrieveViaChannel__ = &confComputeKeyStoreRetrieveViaChannel_46f6a7;
210     }
211 
212     // Hal function -- confComputeKeyStoreRetrieveViaKeyId
213     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
214     {
215         pThis->__confComputeKeyStoreRetrieveViaKeyId__ = &confComputeKeyStoreRetrieveViaKeyId_GH100;
216     }
217     // default
218     else
219     {
220         pThis->__confComputeKeyStoreRetrieveViaKeyId__ = &confComputeKeyStoreRetrieveViaKeyId_46f6a7;
221     }
222 
223     // Hal function -- confComputeDeriveSecrets
224     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
225     {
226         pThis->__confComputeDeriveSecrets__ = &confComputeDeriveSecrets_GH100;
227     }
228     // default
229     else
230     {
231         pThis->__confComputeDeriveSecrets__ = &confComputeDeriveSecrets_46f6a7;
232     }
233 
234     // Hal function -- confComputeIsSpdmEnabled
235     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
236     {
237         pThis->__confComputeIsSpdmEnabled__ = &confComputeIsSpdmEnabled_cbe027;
238     }
239     // default
240     else
241     {
242         pThis->__confComputeIsSpdmEnabled__ = &confComputeIsSpdmEnabled_491d52;
243     }
244 
245     // Hal function -- confComputeIsDebugModeEnabled
246     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
247     {
248         pThis->__confComputeIsDebugModeEnabled__ = &confComputeIsDebugModeEnabled_GH100;
249     }
250     // default
251     else
252     {
253         pThis->__confComputeIsDebugModeEnabled__ = &confComputeIsDebugModeEnabled_491d52;
254     }
255 
256     // Hal function -- confComputeIsGpuCcCapable
257     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
258     {
259         pThis->__confComputeIsGpuCcCapable__ = &confComputeIsGpuCcCapable_GH100;
260     }
261     // default
262     else
263     {
264         pThis->__confComputeIsGpuCcCapable__ = &confComputeIsGpuCcCapable_491d52;
265     }
266 
267     // Hal function -- confComputeKeyStoreDepositIvMask
268     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
269     {
270         pThis->__confComputeKeyStoreDepositIvMask__ = &confComputeKeyStoreDepositIvMask_GH100;
271     }
272     // default
273     else
274     {
275         pThis->__confComputeKeyStoreDepositIvMask__ = &confComputeKeyStoreDepositIvMask_b3696a;
276     }
277 
278     // Hal function -- confComputeKeyStoreInit
279     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
280     {
281         pThis->__confComputeKeyStoreInit__ = &confComputeKeyStoreInit_GH100;
282     }
283     // default
284     else
285     {
286         pThis->__confComputeKeyStoreInit__ = &confComputeKeyStoreInit_46f6a7;
287     }
288 
289     // Hal function -- confComputeKeyStoreDeinit
290     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
291     {
292         pThis->__confComputeKeyStoreDeinit__ = &confComputeKeyStoreDeinit_GH100;
293     }
294     // default
295     else
296     {
297         pThis->__confComputeKeyStoreDeinit__ = &confComputeKeyStoreDeinit_b3696a;
298     }
299 
300     // Hal function -- confComputeKeyStoreGetExportMasterKey
301     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
302     {
303         pThis->__confComputeKeyStoreGetExportMasterKey__ = &confComputeKeyStoreGetExportMasterKey_GH100;
304     }
305     // default
306     else
307     {
308         pThis->__confComputeKeyStoreGetExportMasterKey__ = &confComputeKeyStoreGetExportMasterKey_fa6e19;
309     }
310 
311     // Hal function -- confComputeKeyStoreDeriveKey
312     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
313     {
314         pThis->__confComputeKeyStoreDeriveKey__ = &confComputeKeyStoreDeriveKey_GH100;
315     }
316     // default
317     else
318     {
319         pThis->__confComputeKeyStoreDeriveKey__ = &confComputeKeyStoreDeriveKey_46f6a7;
320     }
321 
322     // Hal function -- confComputeKeyStoreClearExportMasterKey
323     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
324     {
325         pThis->__confComputeKeyStoreClearExportMasterKey__ = &confComputeKeyStoreClearExportMasterKey_GH100;
326     }
327     // default
328     else
329     {
330         pThis->__confComputeKeyStoreClearExportMasterKey__ = &confComputeKeyStoreClearExportMasterKey_b3696a;
331     }
332 
333     // Hal function -- confComputeKeyStoreUpdateKey
334     if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x10000000UL) )) /* ChipHal: GH100 */
335     {
336         pThis->__confComputeKeyStoreUpdateKey__ = &confComputeKeyStoreUpdateKey_GH100;
337     }
338     // default
339     else
340     {
341         pThis->__confComputeKeyStoreUpdateKey__ = &confComputeKeyStoreUpdateKey_46f6a7;
342     }
343 
344     pThis->__nvoc_base_OBJENGSTATE.__engstateConstructEngine__ = &__nvoc_thunk_ConfidentialCompute_engstateConstructEngine;
345 
346     pThis->__nvoc_base_OBJENGSTATE.__engstateStatePreInitLocked__ = &__nvoc_thunk_ConfidentialCompute_engstateStatePreInitLocked;
347 
348     pThis->__nvoc_base_OBJENGSTATE.__engstateStateInitLocked__ = &__nvoc_thunk_ConfidentialCompute_engstateStateInitLocked;
349 
350     pThis->__nvoc_base_OBJENGSTATE.__engstateStatePostLoad__ = &__nvoc_thunk_ConfidentialCompute_engstateStatePostLoad;
351 
352     pThis->__nvoc_base_OBJENGSTATE.__engstateStatePreUnload__ = &__nvoc_thunk_ConfidentialCompute_engstateStatePreUnload;
353 
354     pThis->__nvoc_base_OBJENGSTATE.__engstateStateDestroy__ = &__nvoc_thunk_ConfidentialCompute_engstateStateDestroy;
355 
356     pThis->__confComputeStateLoad__ = &__nvoc_thunk_OBJENGSTATE_confComputeStateLoad;
357 
358     pThis->__confComputeStateUnload__ = &__nvoc_thunk_OBJENGSTATE_confComputeStateUnload;
359 
360     pThis->__confComputeStatePreLoad__ = &__nvoc_thunk_OBJENGSTATE_confComputeStatePreLoad;
361 
362     pThis->__confComputeStatePostUnload__ = &__nvoc_thunk_OBJENGSTATE_confComputeStatePostUnload;
363 
364     pThis->__confComputeStateInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_confComputeStateInitUnlocked;
365 
366     pThis->__confComputeInitMissing__ = &__nvoc_thunk_OBJENGSTATE_confComputeInitMissing;
367 
368     pThis->__confComputeStatePreInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_confComputeStatePreInitUnlocked;
369 
370     pThis->__confComputeIsPresent__ = &__nvoc_thunk_OBJENGSTATE_confComputeIsPresent;
371 }
372 
373 void __nvoc_init_funcTable_ConfidentialCompute(ConfidentialCompute *pThis, RmHalspecOwner *pRmhalspecowner) {
374     __nvoc_init_funcTable_ConfidentialCompute_1(pThis, pRmhalspecowner);
375 }
376 
377 void __nvoc_init_OBJENGSTATE(OBJENGSTATE*);
378 void __nvoc_init_ConfidentialCompute(ConfidentialCompute *pThis, RmHalspecOwner *pRmhalspecowner) {
379     pThis->__nvoc_pbase_ConfidentialCompute = pThis;
380     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object;
381     pThis->__nvoc_pbase_OBJENGSTATE = &pThis->__nvoc_base_OBJENGSTATE;
382     __nvoc_init_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
383     __nvoc_init_funcTable_ConfidentialCompute(pThis, pRmhalspecowner);
384 }
385 
386 NV_STATUS __nvoc_objCreate_ConfidentialCompute(ConfidentialCompute **ppThis, Dynamic *pParent, NvU32 createFlags) {
387     NV_STATUS status;
388     Object *pParentObj;
389     ConfidentialCompute *pThis;
390     RmHalspecOwner *pRmhalspecowner;
391 
392     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(ConfidentialCompute), (void**)&pThis, (void**)ppThis);
393     if (status != NV_OK)
394         return status;
395 
396     portMemSet(pThis, 0, sizeof(ConfidentialCompute));
397 
398     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_ConfidentialCompute);
399 
400     pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.createFlags = createFlags;
401 
402     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
403     {
404         pParentObj = dynamicCast(pParent, Object);
405         objAddChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object);
406     }
407     else
408     {
409         pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.pParent = NULL;
410     }
411 
412     if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
413         pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
414     NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
415 
416     __nvoc_init_ConfidentialCompute(pThis, pRmhalspecowner);
417     status = __nvoc_ctor_ConfidentialCompute(pThis, pRmhalspecowner);
418     if (status != NV_OK) goto __nvoc_objCreate_ConfidentialCompute_cleanup;
419 
420     *ppThis = pThis;
421 
422     return NV_OK;
423 
424 __nvoc_objCreate_ConfidentialCompute_cleanup:
425     // do not call destructors here since the constructor already called them
426     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
427         portMemSet(pThis, 0, sizeof(ConfidentialCompute));
428     else
429         portMemFree(pThis);
430 
431     // coverity[leaked_storage:FALSE]
432     return status;
433 }
434 
435 NV_STATUS __nvoc_objCreateDynamic_ConfidentialCompute(ConfidentialCompute **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
436     NV_STATUS status;
437 
438     status = __nvoc_objCreate_ConfidentialCompute(ppThis, pParent, createFlags);
439 
440     return status;
441 }
442 
443