1 #define NVOC_OBJSWENG_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_objsweng_nvoc.h"
9
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x95a6f5 = 1;
12 #endif
13
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_OBJSWENG;
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_OBJSWENG(OBJSWENG*);
21 void __nvoc_init_funcTable_OBJSWENG(OBJSWENG*);
22 NV_STATUS __nvoc_ctor_OBJSWENG(OBJSWENG*);
23 void __nvoc_init_dataField_OBJSWENG(OBJSWENG*);
24 void __nvoc_dtor_OBJSWENG(OBJSWENG*);
25 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_OBJSWENG;
26
27 static const struct NVOC_RTTI __nvoc_rtti_OBJSWENG_OBJSWENG = {
28 /*pClassDef=*/ &__nvoc_class_def_OBJSWENG,
29 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_OBJSWENG,
30 /*offset=*/ 0,
31 };
32
33 static const struct NVOC_RTTI __nvoc_rtti_OBJSWENG_Object = {
34 /*pClassDef=*/ &__nvoc_class_def_Object,
35 /*dtor=*/ &__nvoc_destructFromBase,
36 /*offset=*/ NV_OFFSETOF(OBJSWENG, __nvoc_base_OBJENGSTATE.__nvoc_base_Object),
37 };
38
39 static const struct NVOC_RTTI __nvoc_rtti_OBJSWENG_OBJENGSTATE = {
40 /*pClassDef=*/ &__nvoc_class_def_OBJENGSTATE,
41 /*dtor=*/ &__nvoc_destructFromBase,
42 /*offset=*/ NV_OFFSETOF(OBJSWENG, __nvoc_base_OBJENGSTATE),
43 };
44
45 static const struct NVOC_CASTINFO __nvoc_castinfo_OBJSWENG = {
46 /*numRelatives=*/ 3,
47 /*relatives=*/ {
48 &__nvoc_rtti_OBJSWENG_OBJSWENG,
49 &__nvoc_rtti_OBJSWENG_OBJENGSTATE,
50 &__nvoc_rtti_OBJSWENG_Object,
51 },
52 };
53
54 const struct NVOC_CLASS_DEF __nvoc_class_def_OBJSWENG =
55 {
56 /*classInfo=*/ {
57 /*size=*/ sizeof(OBJSWENG),
58 /*classId=*/ classId(OBJSWENG),
59 /*providerId=*/ &__nvoc_rtti_provider,
60 #if NV_PRINTF_STRINGS_ALLOWED
61 /*name=*/ "OBJSWENG",
62 #endif
63 },
64 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_OBJSWENG,
65 /*pCastInfo=*/ &__nvoc_castinfo_OBJSWENG,
66 /*pExportInfo=*/ &__nvoc_export_info_OBJSWENG
67 };
68
__nvoc_thunk_OBJSWENG_engstateConstructEngine(struct OBJGPU * pGpu,struct OBJENGSTATE * pSweng,ENGDESCRIPTOR arg0)69 static NV_STATUS __nvoc_thunk_OBJSWENG_engstateConstructEngine(struct OBJGPU *pGpu, struct OBJENGSTATE *pSweng, ENGDESCRIPTOR arg0) {
70 return swengConstructEngine(pGpu, (struct OBJSWENG *)(((unsigned char *)pSweng) - __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset), arg0);
71 }
72
__nvoc_thunk_OBJENGSTATE_swengStateLoad(POBJGPU pGpu,struct OBJSWENG * pEngstate,NvU32 arg0)73 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStateLoad(POBJGPU pGpu, struct OBJSWENG *pEngstate, NvU32 arg0) {
74 return engstateStateLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset), arg0);
75 }
76
__nvoc_thunk_OBJENGSTATE_swengStateUnload(POBJGPU pGpu,struct OBJSWENG * pEngstate,NvU32 arg0)77 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStateUnload(POBJGPU pGpu, struct OBJSWENG *pEngstate, NvU32 arg0) {
78 return engstateStateUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset), arg0);
79 }
80
__nvoc_thunk_OBJENGSTATE_swengStateInitLocked(POBJGPU pGpu,struct OBJSWENG * pEngstate)81 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStateInitLocked(POBJGPU pGpu, struct OBJSWENG *pEngstate) {
82 return engstateStateInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset));
83 }
84
__nvoc_thunk_OBJENGSTATE_swengStatePreLoad(POBJGPU pGpu,struct OBJSWENG * pEngstate,NvU32 arg0)85 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStatePreLoad(POBJGPU pGpu, struct OBJSWENG *pEngstate, NvU32 arg0) {
86 return engstateStatePreLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset), arg0);
87 }
88
__nvoc_thunk_OBJENGSTATE_swengStatePostUnload(POBJGPU pGpu,struct OBJSWENG * pEngstate,NvU32 arg0)89 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStatePostUnload(POBJGPU pGpu, struct OBJSWENG *pEngstate, NvU32 arg0) {
90 return engstateStatePostUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset), arg0);
91 }
92
__nvoc_thunk_OBJENGSTATE_swengStateDestroy(POBJGPU pGpu,struct OBJSWENG * pEngstate)93 static void __nvoc_thunk_OBJENGSTATE_swengStateDestroy(POBJGPU pGpu, struct OBJSWENG *pEngstate) {
94 engstateStateDestroy(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset));
95 }
96
__nvoc_thunk_OBJENGSTATE_swengStatePreUnload(POBJGPU pGpu,struct OBJSWENG * pEngstate,NvU32 arg0)97 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStatePreUnload(POBJGPU pGpu, struct OBJSWENG *pEngstate, NvU32 arg0) {
98 return engstateStatePreUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset), arg0);
99 }
100
__nvoc_thunk_OBJENGSTATE_swengStateInitUnlocked(POBJGPU pGpu,struct OBJSWENG * pEngstate)101 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStateInitUnlocked(POBJGPU pGpu, struct OBJSWENG *pEngstate) {
102 return engstateStateInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset));
103 }
104
__nvoc_thunk_OBJENGSTATE_swengInitMissing(POBJGPU pGpu,struct OBJSWENG * pEngstate)105 static void __nvoc_thunk_OBJENGSTATE_swengInitMissing(POBJGPU pGpu, struct OBJSWENG *pEngstate) {
106 engstateInitMissing(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset));
107 }
108
__nvoc_thunk_OBJENGSTATE_swengStatePreInitLocked(POBJGPU pGpu,struct OBJSWENG * pEngstate)109 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStatePreInitLocked(POBJGPU pGpu, struct OBJSWENG *pEngstate) {
110 return engstateStatePreInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset));
111 }
112
__nvoc_thunk_OBJENGSTATE_swengStatePreInitUnlocked(POBJGPU pGpu,struct OBJSWENG * pEngstate)113 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStatePreInitUnlocked(POBJGPU pGpu, struct OBJSWENG *pEngstate) {
114 return engstateStatePreInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset));
115 }
116
__nvoc_thunk_OBJENGSTATE_swengStatePostLoad(POBJGPU pGpu,struct OBJSWENG * pEngstate,NvU32 arg0)117 static NV_STATUS __nvoc_thunk_OBJENGSTATE_swengStatePostLoad(POBJGPU pGpu, struct OBJSWENG *pEngstate, NvU32 arg0) {
118 return engstateStatePostLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset), arg0);
119 }
120
__nvoc_thunk_OBJENGSTATE_swengIsPresent(POBJGPU pGpu,struct OBJSWENG * pEngstate)121 static NvBool __nvoc_thunk_OBJENGSTATE_swengIsPresent(POBJGPU pGpu, struct OBJSWENG *pEngstate) {
122 return engstateIsPresent(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_OBJSWENG_OBJENGSTATE.offset));
123 }
124
125 const struct NVOC_EXPORT_INFO __nvoc_export_info_OBJSWENG =
126 {
127 /*numEntries=*/ 0,
128 /*pExportEntries=*/ 0
129 };
130
131 void __nvoc_dtor_OBJENGSTATE(OBJENGSTATE*);
__nvoc_dtor_OBJSWENG(OBJSWENG * pThis)132 void __nvoc_dtor_OBJSWENG(OBJSWENG *pThis) {
133 __nvoc_dtor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
134 PORT_UNREFERENCED_VARIABLE(pThis);
135 }
136
__nvoc_init_dataField_OBJSWENG(OBJSWENG * pThis)137 void __nvoc_init_dataField_OBJSWENG(OBJSWENG *pThis) {
138 PORT_UNREFERENCED_VARIABLE(pThis);
139 }
140
141 NV_STATUS __nvoc_ctor_OBJENGSTATE(OBJENGSTATE* );
__nvoc_ctor_OBJSWENG(OBJSWENG * pThis)142 NV_STATUS __nvoc_ctor_OBJSWENG(OBJSWENG *pThis) {
143 NV_STATUS status = NV_OK;
144 status = __nvoc_ctor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
145 if (status != NV_OK) goto __nvoc_ctor_OBJSWENG_fail_OBJENGSTATE;
146 __nvoc_init_dataField_OBJSWENG(pThis);
147 goto __nvoc_ctor_OBJSWENG_exit; // Success
148
149 __nvoc_ctor_OBJSWENG_fail_OBJENGSTATE:
150 __nvoc_ctor_OBJSWENG_exit:
151
152 return status;
153 }
154
__nvoc_init_funcTable_OBJSWENG_1(OBJSWENG * pThis)155 static void __nvoc_init_funcTable_OBJSWENG_1(OBJSWENG *pThis) {
156 PORT_UNREFERENCED_VARIABLE(pThis);
157
158 pThis->__swengConstructEngine__ = &swengConstructEngine_IMPL;
159
160 pThis->__nvoc_base_OBJENGSTATE.__engstateConstructEngine__ = &__nvoc_thunk_OBJSWENG_engstateConstructEngine;
161
162 pThis->__swengStateLoad__ = &__nvoc_thunk_OBJENGSTATE_swengStateLoad;
163
164 pThis->__swengStateUnload__ = &__nvoc_thunk_OBJENGSTATE_swengStateUnload;
165
166 pThis->__swengStateInitLocked__ = &__nvoc_thunk_OBJENGSTATE_swengStateInitLocked;
167
168 pThis->__swengStatePreLoad__ = &__nvoc_thunk_OBJENGSTATE_swengStatePreLoad;
169
170 pThis->__swengStatePostUnload__ = &__nvoc_thunk_OBJENGSTATE_swengStatePostUnload;
171
172 pThis->__swengStateDestroy__ = &__nvoc_thunk_OBJENGSTATE_swengStateDestroy;
173
174 pThis->__swengStatePreUnload__ = &__nvoc_thunk_OBJENGSTATE_swengStatePreUnload;
175
176 pThis->__swengStateInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_swengStateInitUnlocked;
177
178 pThis->__swengInitMissing__ = &__nvoc_thunk_OBJENGSTATE_swengInitMissing;
179
180 pThis->__swengStatePreInitLocked__ = &__nvoc_thunk_OBJENGSTATE_swengStatePreInitLocked;
181
182 pThis->__swengStatePreInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_swengStatePreInitUnlocked;
183
184 pThis->__swengStatePostLoad__ = &__nvoc_thunk_OBJENGSTATE_swengStatePostLoad;
185
186 pThis->__swengIsPresent__ = &__nvoc_thunk_OBJENGSTATE_swengIsPresent;
187 }
188
__nvoc_init_funcTable_OBJSWENG(OBJSWENG * pThis)189 void __nvoc_init_funcTable_OBJSWENG(OBJSWENG *pThis) {
190 __nvoc_init_funcTable_OBJSWENG_1(pThis);
191 }
192
193 void __nvoc_init_OBJENGSTATE(OBJENGSTATE*);
__nvoc_init_OBJSWENG(OBJSWENG * pThis)194 void __nvoc_init_OBJSWENG(OBJSWENG *pThis) {
195 pThis->__nvoc_pbase_OBJSWENG = pThis;
196 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object;
197 pThis->__nvoc_pbase_OBJENGSTATE = &pThis->__nvoc_base_OBJENGSTATE;
198 __nvoc_init_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE);
199 __nvoc_init_funcTable_OBJSWENG(pThis);
200 }
201
__nvoc_objCreate_OBJSWENG(OBJSWENG ** ppThis,Dynamic * pParent,NvU32 createFlags)202 NV_STATUS __nvoc_objCreate_OBJSWENG(OBJSWENG **ppThis, Dynamic *pParent, NvU32 createFlags)
203 {
204 NV_STATUS status;
205 Object *pParentObj = NULL;
206 OBJSWENG *pThis;
207
208 // Assign `pThis`, allocating memory unless suppressed by flag.
209 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(OBJSWENG), (void**)&pThis, (void**)ppThis);
210 if (status != NV_OK)
211 return status;
212
213 // Zero is the initial value for everything.
214 portMemSet(pThis, 0, sizeof(OBJSWENG));
215
216 // Initialize runtime type information.
217 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_OBJSWENG);
218
219 pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.createFlags = createFlags;
220
221 // Link the child into the parent if there is one unless flagged not to do so.
222 if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
223 {
224 pParentObj = dynamicCast(pParent, Object);
225 objAddChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object);
226 }
227 else
228 {
229 pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.pParent = NULL;
230 }
231
232 __nvoc_init_OBJSWENG(pThis);
233 status = __nvoc_ctor_OBJSWENG(pThis);
234 if (status != NV_OK) goto __nvoc_objCreate_OBJSWENG_cleanup;
235
236 // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
237 *ppThis = pThis;
238
239 return NV_OK;
240
241 __nvoc_objCreate_OBJSWENG_cleanup:
242
243 // Unlink the child from the parent if it was linked above.
244 if (pParentObj != NULL)
245 objRemoveChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object);
246
247 // Do not call destructors here since the constructor already called them.
248 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
249 portMemSet(pThis, 0, sizeof(OBJSWENG));
250 else
251 {
252 portMemFree(pThis);
253 *ppThis = NULL;
254 }
255
256 // coverity[leaked_storage:FALSE]
257 return status;
258 }
259
__nvoc_objCreateDynamic_OBJSWENG(OBJSWENG ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)260 NV_STATUS __nvoc_objCreateDynamic_OBJSWENG(OBJSWENG **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
261 NV_STATUS status;
262
263 status = __nvoc_objCreate_OBJSWENG(ppThis, pParent, createFlags);
264
265 return status;
266 }
267
268