1 #define NVOC_KERNEL_RC_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_rc_nvoc.h"
9 
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x4888db = 1;
12 #endif
13 
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelRc;
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_KernelRc(KernelRc*, RmHalspecOwner* );
21 void __nvoc_init_funcTable_KernelRc(KernelRc*, RmHalspecOwner* );
22 NV_STATUS __nvoc_ctor_KernelRc(KernelRc*, RmHalspecOwner* );
23 void __nvoc_init_dataField_KernelRc(KernelRc*, RmHalspecOwner* );
24 void __nvoc_dtor_KernelRc(KernelRc*);
25 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelRc;
26 
27 static const struct NVOC_RTTI __nvoc_rtti_KernelRc_KernelRc = {
28     /*pClassDef=*/          &__nvoc_class_def_KernelRc,
29     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_KernelRc,
30     /*offset=*/             0,
31 };
32 
33 static const struct NVOC_RTTI __nvoc_rtti_KernelRc_Object = {
34     /*pClassDef=*/          &__nvoc_class_def_Object,
35     /*dtor=*/               &__nvoc_destructFromBase,
36     /*offset=*/             NV_OFFSETOF(KernelRc, __nvoc_base_OBJENGSTATE.__nvoc_base_Object),
37 };
38 
39 static const struct NVOC_RTTI __nvoc_rtti_KernelRc_OBJENGSTATE = {
40     /*pClassDef=*/          &__nvoc_class_def_OBJENGSTATE,
41     /*dtor=*/               &__nvoc_destructFromBase,
42     /*offset=*/             NV_OFFSETOF(KernelRc, __nvoc_base_OBJENGSTATE),
43 };
44 
45 static const struct NVOC_CASTINFO __nvoc_castinfo_KernelRc = {
46     /*numRelatives=*/       3,
47     /*relatives=*/ {
48         &__nvoc_rtti_KernelRc_KernelRc,
49         &__nvoc_rtti_KernelRc_OBJENGSTATE,
50         &__nvoc_rtti_KernelRc_Object,
51     },
52 };
53 
54 const struct NVOC_CLASS_DEF __nvoc_class_def_KernelRc =
55 {
56     /*classInfo=*/ {
57         /*size=*/               sizeof(KernelRc),
58         /*classId=*/            classId(KernelRc),
59         /*providerId=*/         &__nvoc_rtti_provider,
60 #if NV_PRINTF_STRINGS_ALLOWED
61         /*name=*/               "KernelRc",
62 #endif
63     },
64     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_KernelRc,
65     /*pCastInfo=*/          &__nvoc_castinfo_KernelRc,
66     /*pExportInfo=*/        &__nvoc_export_info_KernelRc
67 };
68 
69 static NV_STATUS __nvoc_thunk_KernelRc_engstateConstructEngine(struct OBJGPU *pGpu, struct OBJENGSTATE *pKernelRc, ENGDESCRIPTOR engDescriptor) {
70     return krcConstructEngine(pGpu, (struct KernelRc *)(((unsigned char *)pKernelRc) - __nvoc_rtti_KernelRc_OBJENGSTATE.offset), engDescriptor);
71 }
72 
73 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStateLoad(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) {
74     return engstateStateLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0);
75 }
76 
77 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStateUnload(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) {
78     return engstateStateUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0);
79 }
80 
81 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStateInitLocked(POBJGPU pGpu, struct KernelRc *pEngstate) {
82     return engstateStateInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset));
83 }
84 
85 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePreLoad(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) {
86     return engstateStatePreLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0);
87 }
88 
89 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePostUnload(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) {
90     return engstateStatePostUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0);
91 }
92 
93 static void __nvoc_thunk_OBJENGSTATE_krcStateDestroy(POBJGPU pGpu, struct KernelRc *pEngstate) {
94     engstateStateDestroy(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset));
95 }
96 
97 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePreUnload(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) {
98     return engstateStatePreUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0);
99 }
100 
101 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStateInitUnlocked(POBJGPU pGpu, struct KernelRc *pEngstate) {
102     return engstateStateInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset));
103 }
104 
105 static void __nvoc_thunk_OBJENGSTATE_krcInitMissing(POBJGPU pGpu, struct KernelRc *pEngstate) {
106     engstateInitMissing(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset));
107 }
108 
109 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePreInitLocked(POBJGPU pGpu, struct KernelRc *pEngstate) {
110     return engstateStatePreInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset));
111 }
112 
113 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePreInitUnlocked(POBJGPU pGpu, struct KernelRc *pEngstate) {
114     return engstateStatePreInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset));
115 }
116 
117 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePostLoad(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) {
118     return engstateStatePostLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0);
119 }
120 
121 static NvBool __nvoc_thunk_OBJENGSTATE_krcIsPresent(POBJGPU pGpu, struct KernelRc *pEngstate) {
122     return engstateIsPresent(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset));
123 }
124 
125 const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelRc =
126 {
127     /*numEntries=*/     0,
128     /*pExportEntries=*/  0
129 };
130 
131 void __nvoc_dtor_OBJENGSTATE(OBJENGSTATE*);
132 void __nvoc_dtor_KernelRc(KernelRc *pThis) {
133     __nvoc_dtor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
134     PORT_UNREFERENCED_VARIABLE(pThis);
135 }
136 
137 void __nvoc_init_dataField_KernelRc(KernelRc *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 }
149 
150 NV_STATUS __nvoc_ctor_OBJENGSTATE(OBJENGSTATE* );
151 NV_STATUS __nvoc_ctor_KernelRc(KernelRc *pThis, RmHalspecOwner *pRmhalspecowner) {
152     NV_STATUS status = NV_OK;
153     status = __nvoc_ctor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
154     if (status != NV_OK) goto __nvoc_ctor_KernelRc_fail_OBJENGSTATE;
155     __nvoc_init_dataField_KernelRc(pThis, pRmhalspecowner);
156     goto __nvoc_ctor_KernelRc_exit; // Success
157 
158 __nvoc_ctor_KernelRc_fail_OBJENGSTATE:
159 __nvoc_ctor_KernelRc_exit:
160 
161     return status;
162 }
163 
164 static void __nvoc_init_funcTable_KernelRc_1(KernelRc *pThis, RmHalspecOwner *pRmhalspecowner) {
165     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
166     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
167     ChipHal *chipHal = &pRmhalspecowner->chipHal;
168     const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx;
169     PORT_UNREFERENCED_VARIABLE(pThis);
170     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
171     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
172     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
173     PORT_UNREFERENCED_VARIABLE(chipHal);
174     PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx);
175 
176     pThis->__krcConstructEngine__ = &krcConstructEngine_IMPL;
177 
178     pThis->__nvoc_base_OBJENGSTATE.__engstateConstructEngine__ = &__nvoc_thunk_KernelRc_engstateConstructEngine;
179 
180     pThis->__krcStateLoad__ = &__nvoc_thunk_OBJENGSTATE_krcStateLoad;
181 
182     pThis->__krcStateUnload__ = &__nvoc_thunk_OBJENGSTATE_krcStateUnload;
183 
184     pThis->__krcStateInitLocked__ = &__nvoc_thunk_OBJENGSTATE_krcStateInitLocked;
185 
186     pThis->__krcStatePreLoad__ = &__nvoc_thunk_OBJENGSTATE_krcStatePreLoad;
187 
188     pThis->__krcStatePostUnload__ = &__nvoc_thunk_OBJENGSTATE_krcStatePostUnload;
189 
190     pThis->__krcStateDestroy__ = &__nvoc_thunk_OBJENGSTATE_krcStateDestroy;
191 
192     pThis->__krcStatePreUnload__ = &__nvoc_thunk_OBJENGSTATE_krcStatePreUnload;
193 
194     pThis->__krcStateInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_krcStateInitUnlocked;
195 
196     pThis->__krcInitMissing__ = &__nvoc_thunk_OBJENGSTATE_krcInitMissing;
197 
198     pThis->__krcStatePreInitLocked__ = &__nvoc_thunk_OBJENGSTATE_krcStatePreInitLocked;
199 
200     pThis->__krcStatePreInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_krcStatePreInitUnlocked;
201 
202     pThis->__krcStatePostLoad__ = &__nvoc_thunk_OBJENGSTATE_krcStatePostLoad;
203 
204     pThis->__krcIsPresent__ = &__nvoc_thunk_OBJENGSTATE_krcIsPresent;
205 }
206 
207 void __nvoc_init_funcTable_KernelRc(KernelRc *pThis, RmHalspecOwner *pRmhalspecowner) {
208     __nvoc_init_funcTable_KernelRc_1(pThis, pRmhalspecowner);
209 }
210 
211 void __nvoc_init_OBJENGSTATE(OBJENGSTATE*);
212 void __nvoc_init_KernelRc(KernelRc *pThis, RmHalspecOwner *pRmhalspecowner) {
213     pThis->__nvoc_pbase_KernelRc = pThis;
214     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object;
215     pThis->__nvoc_pbase_OBJENGSTATE = &pThis->__nvoc_base_OBJENGSTATE;
216     __nvoc_init_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
217     __nvoc_init_funcTable_KernelRc(pThis, pRmhalspecowner);
218 }
219 
220 NV_STATUS __nvoc_objCreate_KernelRc(KernelRc **ppThis, Dynamic *pParent, NvU32 createFlags) {
221     NV_STATUS status;
222     Object *pParentObj;
223     KernelRc *pThis;
224     RmHalspecOwner *pRmhalspecowner;
225 
226     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(KernelRc), (void**)&pThis, (void**)ppThis);
227     if (status != NV_OK)
228         return status;
229 
230     portMemSet(pThis, 0, sizeof(KernelRc));
231 
232     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_KernelRc);
233 
234     pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.createFlags = createFlags;
235 
236     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
237     {
238         pParentObj = dynamicCast(pParent, Object);
239         objAddChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object);
240     }
241     else
242     {
243         pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.pParent = NULL;
244     }
245 
246     if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
247         pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
248     NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
249 
250     __nvoc_init_KernelRc(pThis, pRmhalspecowner);
251     status = __nvoc_ctor_KernelRc(pThis, pRmhalspecowner);
252     if (status != NV_OK) goto __nvoc_objCreate_KernelRc_cleanup;
253 
254     *ppThis = pThis;
255 
256     return NV_OK;
257 
258 __nvoc_objCreate_KernelRc_cleanup:
259     // do not call destructors here since the constructor already called them
260     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
261         portMemSet(pThis, 0, sizeof(KernelRc));
262     else
263         portMemFree(pThis);
264 
265     // coverity[leaked_storage:FALSE]
266     return status;
267 }
268 
269 NV_STATUS __nvoc_objCreateDynamic_KernelRc(KernelRc **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
270     NV_STATUS status;
271 
272     status = __nvoc_objCreate_KernelRc(ppThis, pParent, createFlags);
273 
274     return status;
275 }
276 
277