1 #define NVOC_OBJGPUMON_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_objgpumon_nvoc.h"
9 
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x2b424b = 1;
12 #endif
13 
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_OBJGPUMON;
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_OBJGPUMON(OBJGPUMON*, RmHalspecOwner* );
21 void __nvoc_init_funcTable_OBJGPUMON(OBJGPUMON*, RmHalspecOwner* );
22 NV_STATUS __nvoc_ctor_OBJGPUMON(OBJGPUMON*, RmHalspecOwner* );
23 void __nvoc_init_dataField_OBJGPUMON(OBJGPUMON*, RmHalspecOwner* );
24 void __nvoc_dtor_OBJGPUMON(OBJGPUMON*);
25 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_OBJGPUMON;
26 
27 static const struct NVOC_RTTI __nvoc_rtti_OBJGPUMON_OBJGPUMON = {
28     /*pClassDef=*/          &__nvoc_class_def_OBJGPUMON,
29     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_OBJGPUMON,
30     /*offset=*/             0,
31 };
32 
33 static const struct NVOC_RTTI __nvoc_rtti_OBJGPUMON_Object = {
34     /*pClassDef=*/          &__nvoc_class_def_Object,
35     /*dtor=*/               &__nvoc_destructFromBase,
36     /*offset=*/             NV_OFFSETOF(OBJGPUMON, __nvoc_base_OBJENGSTATE.__nvoc_base_Object),
37 };
38 
39 static const struct NVOC_RTTI __nvoc_rtti_OBJGPUMON_OBJENGSTATE = {
40     /*pClassDef=*/          &__nvoc_class_def_OBJENGSTATE,
41     /*dtor=*/               &__nvoc_destructFromBase,
42     /*offset=*/             NV_OFFSETOF(OBJGPUMON, __nvoc_base_OBJENGSTATE),
43 };
44 
45 static const struct NVOC_CASTINFO __nvoc_castinfo_OBJGPUMON = {
46     /*numRelatives=*/       3,
47     /*relatives=*/ {
48         &__nvoc_rtti_OBJGPUMON_OBJGPUMON,
49         &__nvoc_rtti_OBJGPUMON_OBJENGSTATE,
50         &__nvoc_rtti_OBJGPUMON_Object,
51     },
52 };
53 
54 const struct NVOC_CLASS_DEF __nvoc_class_def_OBJGPUMON =
55 {
56     /*classInfo=*/ {
57         /*size=*/               sizeof(OBJGPUMON),
58         /*classId=*/            classId(OBJGPUMON),
59         /*providerId=*/         &__nvoc_rtti_provider,
60 #if NV_PRINTF_STRINGS_ALLOWED
61         /*name=*/               "OBJGPUMON",
62 #endif
63     },
64     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_OBJGPUMON,
65     /*pCastInfo=*/          &__nvoc_castinfo_OBJGPUMON,
66     /*pExportInfo=*/        &__nvoc_export_info_OBJGPUMON
67 };
68 
__nvoc_thunk_OBJENGSTATE_gpumonStateLoad(POBJGPU pGpu,struct OBJGPUMON * pEngstate,NvU32 arg0)69 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStateLoad(POBJGPU pGpu, struct OBJGPUMON *pEngstate, NvU32 arg0) {
70     return engstateStateLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset), arg0);
71 }
72 
__nvoc_thunk_OBJENGSTATE_gpumonStateUnload(POBJGPU pGpu,struct OBJGPUMON * pEngstate,NvU32 arg0)73 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStateUnload(POBJGPU pGpu, struct OBJGPUMON *pEngstate, NvU32 arg0) {
74     return engstateStateUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset), arg0);
75 }
76 
__nvoc_thunk_OBJENGSTATE_gpumonStateInitLocked(POBJGPU pGpu,struct OBJGPUMON * pEngstate)77 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStateInitLocked(POBJGPU pGpu, struct OBJGPUMON *pEngstate) {
78     return engstateStateInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset));
79 }
80 
__nvoc_thunk_OBJENGSTATE_gpumonStatePreLoad(POBJGPU pGpu,struct OBJGPUMON * pEngstate,NvU32 arg0)81 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStatePreLoad(POBJGPU pGpu, struct OBJGPUMON *pEngstate, NvU32 arg0) {
82     return engstateStatePreLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset), arg0);
83 }
84 
__nvoc_thunk_OBJENGSTATE_gpumonStatePostUnload(POBJGPU pGpu,struct OBJGPUMON * pEngstate,NvU32 arg0)85 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStatePostUnload(POBJGPU pGpu, struct OBJGPUMON *pEngstate, NvU32 arg0) {
86     return engstateStatePostUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset), arg0);
87 }
88 
__nvoc_thunk_OBJENGSTATE_gpumonStateDestroy(POBJGPU pGpu,struct OBJGPUMON * pEngstate)89 static void __nvoc_thunk_OBJENGSTATE_gpumonStateDestroy(POBJGPU pGpu, struct OBJGPUMON *pEngstate) {
90     engstateStateDestroy(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset));
91 }
92 
__nvoc_thunk_OBJENGSTATE_gpumonStatePreUnload(POBJGPU pGpu,struct OBJGPUMON * pEngstate,NvU32 arg0)93 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStatePreUnload(POBJGPU pGpu, struct OBJGPUMON *pEngstate, NvU32 arg0) {
94     return engstateStatePreUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset), arg0);
95 }
96 
__nvoc_thunk_OBJENGSTATE_gpumonStateInitUnlocked(POBJGPU pGpu,struct OBJGPUMON * pEngstate)97 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStateInitUnlocked(POBJGPU pGpu, struct OBJGPUMON *pEngstate) {
98     return engstateStateInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset));
99 }
100 
__nvoc_thunk_OBJENGSTATE_gpumonInitMissing(POBJGPU pGpu,struct OBJGPUMON * pEngstate)101 static void __nvoc_thunk_OBJENGSTATE_gpumonInitMissing(POBJGPU pGpu, struct OBJGPUMON *pEngstate) {
102     engstateInitMissing(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset));
103 }
104 
__nvoc_thunk_OBJENGSTATE_gpumonStatePreInitLocked(POBJGPU pGpu,struct OBJGPUMON * pEngstate)105 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStatePreInitLocked(POBJGPU pGpu, struct OBJGPUMON *pEngstate) {
106     return engstateStatePreInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset));
107 }
108 
__nvoc_thunk_OBJENGSTATE_gpumonStatePreInitUnlocked(POBJGPU pGpu,struct OBJGPUMON * pEngstate)109 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStatePreInitUnlocked(POBJGPU pGpu, struct OBJGPUMON *pEngstate) {
110     return engstateStatePreInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset));
111 }
112 
__nvoc_thunk_OBJENGSTATE_gpumonStatePostLoad(POBJGPU pGpu,struct OBJGPUMON * pEngstate,NvU32 arg0)113 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonStatePostLoad(POBJGPU pGpu, struct OBJGPUMON *pEngstate, NvU32 arg0) {
114     return engstateStatePostLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset), arg0);
115 }
116 
__nvoc_thunk_OBJENGSTATE_gpumonConstructEngine(POBJGPU pGpu,struct OBJGPUMON * pEngstate,ENGDESCRIPTOR arg0)117 static NV_STATUS __nvoc_thunk_OBJENGSTATE_gpumonConstructEngine(POBJGPU pGpu, struct OBJGPUMON *pEngstate, ENGDESCRIPTOR arg0) {
118     return engstateConstructEngine(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset), arg0);
119 }
120 
__nvoc_thunk_OBJENGSTATE_gpumonIsPresent(POBJGPU pGpu,struct OBJGPUMON * pEngstate)121 static NvBool __nvoc_thunk_OBJENGSTATE_gpumonIsPresent(POBJGPU pGpu, struct OBJGPUMON *pEngstate) {
122     return engstateIsPresent(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJGPUMON_OBJENGSTATE.offset));
123 }
124 
125 const struct NVOC_EXPORT_INFO __nvoc_export_info_OBJGPUMON =
126 {
127     /*numEntries=*/     0,
128     /*pExportEntries=*/  0
129 };
130 
131 void __nvoc_dtor_OBJENGSTATE(OBJENGSTATE*);
__nvoc_dtor_OBJGPUMON(OBJGPUMON * pThis)132 void __nvoc_dtor_OBJGPUMON(OBJGPUMON *pThis) {
133     __nvoc_dtor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
134     PORT_UNREFERENCED_VARIABLE(pThis);
135 }
136 
__nvoc_init_dataField_OBJGPUMON(OBJGPUMON * pThis,RmHalspecOwner * pRmhalspecowner)137 void __nvoc_init_dataField_OBJGPUMON(OBJGPUMON *pThis, RmHalspecOwner *pRmhalspecowner) {
138     ChipHal *chipHal = &pRmhalspecowner->chipHal;
139     const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx;
140     PORT_UNREFERENCED_VARIABLE(pThis);
141     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
142     PORT_UNREFERENCED_VARIABLE(chipHal);
143     PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx);
144 }
145 
146 NV_STATUS __nvoc_ctor_OBJENGSTATE(OBJENGSTATE* );
__nvoc_ctor_OBJGPUMON(OBJGPUMON * pThis,RmHalspecOwner * pRmhalspecowner)147 NV_STATUS __nvoc_ctor_OBJGPUMON(OBJGPUMON *pThis, RmHalspecOwner *pRmhalspecowner) {
148     NV_STATUS status = NV_OK;
149     status = __nvoc_ctor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
150     if (status != NV_OK) goto __nvoc_ctor_OBJGPUMON_fail_OBJENGSTATE;
151     __nvoc_init_dataField_OBJGPUMON(pThis, pRmhalspecowner);
152     goto __nvoc_ctor_OBJGPUMON_exit; // Success
153 
154 __nvoc_ctor_OBJGPUMON_fail_OBJENGSTATE:
155 __nvoc_ctor_OBJGPUMON_exit:
156 
157     return status;
158 }
159 
__nvoc_init_funcTable_OBJGPUMON_1(OBJGPUMON * pThis,RmHalspecOwner * pRmhalspecowner)160 static void __nvoc_init_funcTable_OBJGPUMON_1(OBJGPUMON *pThis, RmHalspecOwner *pRmhalspecowner) {
161     ChipHal *chipHal = &pRmhalspecowner->chipHal;
162     const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx;
163     PORT_UNREFERENCED_VARIABLE(pThis);
164     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
165     PORT_UNREFERENCED_VARIABLE(chipHal);
166     PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx);
167 
168     pThis->__gpumonStateLoad__ = &__nvoc_thunk_OBJENGSTATE_gpumonStateLoad;
169 
170     pThis->__gpumonStateUnload__ = &__nvoc_thunk_OBJENGSTATE_gpumonStateUnload;
171 
172     pThis->__gpumonStateInitLocked__ = &__nvoc_thunk_OBJENGSTATE_gpumonStateInitLocked;
173 
174     pThis->__gpumonStatePreLoad__ = &__nvoc_thunk_OBJENGSTATE_gpumonStatePreLoad;
175 
176     pThis->__gpumonStatePostUnload__ = &__nvoc_thunk_OBJENGSTATE_gpumonStatePostUnload;
177 
178     pThis->__gpumonStateDestroy__ = &__nvoc_thunk_OBJENGSTATE_gpumonStateDestroy;
179 
180     pThis->__gpumonStatePreUnload__ = &__nvoc_thunk_OBJENGSTATE_gpumonStatePreUnload;
181 
182     pThis->__gpumonStateInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_gpumonStateInitUnlocked;
183 
184     pThis->__gpumonInitMissing__ = &__nvoc_thunk_OBJENGSTATE_gpumonInitMissing;
185 
186     pThis->__gpumonStatePreInitLocked__ = &__nvoc_thunk_OBJENGSTATE_gpumonStatePreInitLocked;
187 
188     pThis->__gpumonStatePreInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_gpumonStatePreInitUnlocked;
189 
190     pThis->__gpumonStatePostLoad__ = &__nvoc_thunk_OBJENGSTATE_gpumonStatePostLoad;
191 
192     pThis->__gpumonConstructEngine__ = &__nvoc_thunk_OBJENGSTATE_gpumonConstructEngine;
193 
194     pThis->__gpumonIsPresent__ = &__nvoc_thunk_OBJENGSTATE_gpumonIsPresent;
195 }
196 
__nvoc_init_funcTable_OBJGPUMON(OBJGPUMON * pThis,RmHalspecOwner * pRmhalspecowner)197 void __nvoc_init_funcTable_OBJGPUMON(OBJGPUMON *pThis, RmHalspecOwner *pRmhalspecowner) {
198     __nvoc_init_funcTable_OBJGPUMON_1(pThis, pRmhalspecowner);
199 }
200 
201 void __nvoc_init_OBJENGSTATE(OBJENGSTATE*);
__nvoc_init_OBJGPUMON(OBJGPUMON * pThis,RmHalspecOwner * pRmhalspecowner)202 void __nvoc_init_OBJGPUMON(OBJGPUMON *pThis, RmHalspecOwner *pRmhalspecowner) {
203     pThis->__nvoc_pbase_OBJGPUMON = pThis;
204     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object;
205     pThis->__nvoc_pbase_OBJENGSTATE = &pThis->__nvoc_base_OBJENGSTATE;
206     __nvoc_init_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
207     __nvoc_init_funcTable_OBJGPUMON(pThis, pRmhalspecowner);
208 }
209 
__nvoc_objCreate_OBJGPUMON(OBJGPUMON ** ppThis,Dynamic * pParent,NvU32 createFlags)210 NV_STATUS __nvoc_objCreate_OBJGPUMON(OBJGPUMON **ppThis, Dynamic *pParent, NvU32 createFlags)
211 {
212     NV_STATUS status;
213     Object *pParentObj = NULL;
214     OBJGPUMON *pThis;
215     RmHalspecOwner *pRmhalspecowner;
216 
217     // Assign `pThis`, allocating memory unless suppressed by flag.
218     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(OBJGPUMON), (void**)&pThis, (void**)ppThis);
219     if (status != NV_OK)
220         return status;
221 
222     // Zero is the initial value for everything.
223     portMemSet(pThis, 0, sizeof(OBJGPUMON));
224 
225     // Initialize runtime type information.
226     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_OBJGPUMON);
227 
228     pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.createFlags = createFlags;
229 
230     // pParent must be a valid object that derives from a halspec owner class.
231     NV_ASSERT_OR_RETURN(pParent != NULL, NV_ERR_INVALID_ARGUMENT);
232 
233     // Link the child into the parent unless flagged not to do so.
234     if (!(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
235     {
236         pParentObj = dynamicCast(pParent, Object);
237         objAddChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object);
238     }
239     else
240     {
241         pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.pParent = NULL;
242     }
243 
244     if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
245         pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
246     NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
247 
248     __nvoc_init_OBJGPUMON(pThis, pRmhalspecowner);
249     status = __nvoc_ctor_OBJGPUMON(pThis, pRmhalspecowner);
250     if (status != NV_OK) goto __nvoc_objCreate_OBJGPUMON_cleanup;
251 
252     // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
253     *ppThis = pThis;
254 
255     return NV_OK;
256 
257 __nvoc_objCreate_OBJGPUMON_cleanup:
258 
259     // Unlink the child from the parent if it was linked above.
260     if (pParentObj != NULL)
261         objRemoveChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object);
262 
263     // Do not call destructors here since the constructor already called them.
264     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
265         portMemSet(pThis, 0, sizeof(OBJGPUMON));
266     else
267     {
268         portMemFree(pThis);
269         *ppThis = NULL;
270     }
271 
272     // coverity[leaked_storage:FALSE]
273     return status;
274 }
275 
__nvoc_objCreateDynamic_OBJGPUMON(OBJGPUMON ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)276 NV_STATUS __nvoc_objCreateDynamic_OBJGPUMON(OBJGPUMON **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
277     NV_STATUS status;
278 
279     status = __nvoc_objCreate_OBJGPUMON(ppThis, pParent, createFlags);
280 
281     return status;
282 }
283 
284