1 #define NVOC_MIG_CONFIG_SESSION_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_mig_config_session_nvoc.h"
9 
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x36a941 = 1;
12 #endif
13 
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_MIGConfigSession;
15 
16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
17 
18 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RsResource;
19 
20 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResourceCommon;
21 
22 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResource;
23 
24 void __nvoc_init_MIGConfigSession(MIGConfigSession*);
25 void __nvoc_init_funcTable_MIGConfigSession(MIGConfigSession*);
26 NV_STATUS __nvoc_ctor_MIGConfigSession(MIGConfigSession*, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
27 void __nvoc_init_dataField_MIGConfigSession(MIGConfigSession*);
28 void __nvoc_dtor_MIGConfigSession(MIGConfigSession*);
29 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_MIGConfigSession;
30 
31 static const struct NVOC_RTTI __nvoc_rtti_MIGConfigSession_MIGConfigSession = {
32     /*pClassDef=*/          &__nvoc_class_def_MIGConfigSession,
33     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_MIGConfigSession,
34     /*offset=*/             0,
35 };
36 
37 static const struct NVOC_RTTI __nvoc_rtti_MIGConfigSession_Object = {
38     /*pClassDef=*/          &__nvoc_class_def_Object,
39     /*dtor=*/               &__nvoc_destructFromBase,
40     /*offset=*/             NV_OFFSETOF(MIGConfigSession, __nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object),
41 };
42 
43 static const struct NVOC_RTTI __nvoc_rtti_MIGConfigSession_RsResource = {
44     /*pClassDef=*/          &__nvoc_class_def_RsResource,
45     /*dtor=*/               &__nvoc_destructFromBase,
46     /*offset=*/             NV_OFFSETOF(MIGConfigSession, __nvoc_base_RmResource.__nvoc_base_RsResource),
47 };
48 
49 static const struct NVOC_RTTI __nvoc_rtti_MIGConfigSession_RmResourceCommon = {
50     /*pClassDef=*/          &__nvoc_class_def_RmResourceCommon,
51     /*dtor=*/               &__nvoc_destructFromBase,
52     /*offset=*/             NV_OFFSETOF(MIGConfigSession, __nvoc_base_RmResource.__nvoc_base_RmResourceCommon),
53 };
54 
55 static const struct NVOC_RTTI __nvoc_rtti_MIGConfigSession_RmResource = {
56     /*pClassDef=*/          &__nvoc_class_def_RmResource,
57     /*dtor=*/               &__nvoc_destructFromBase,
58     /*offset=*/             NV_OFFSETOF(MIGConfigSession, __nvoc_base_RmResource),
59 };
60 
61 static const struct NVOC_CASTINFO __nvoc_castinfo_MIGConfigSession = {
62     /*numRelatives=*/       5,
63     /*relatives=*/ {
64         &__nvoc_rtti_MIGConfigSession_MIGConfigSession,
65         &__nvoc_rtti_MIGConfigSession_RmResource,
66         &__nvoc_rtti_MIGConfigSession_RmResourceCommon,
67         &__nvoc_rtti_MIGConfigSession_RsResource,
68         &__nvoc_rtti_MIGConfigSession_Object,
69     },
70 };
71 
72 const struct NVOC_CLASS_DEF __nvoc_class_def_MIGConfigSession =
73 {
74     /*classInfo=*/ {
75         /*size=*/               sizeof(MIGConfigSession),
76         /*classId=*/            classId(MIGConfigSession),
77         /*providerId=*/         &__nvoc_rtti_provider,
78 #if NV_PRINTF_STRINGS_ALLOWED
79         /*name=*/               "MIGConfigSession",
80 #endif
81     },
82     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_MIGConfigSession,
83     /*pCastInfo=*/          &__nvoc_castinfo_MIGConfigSession,
84     /*pExportInfo=*/        &__nvoc_export_info_MIGConfigSession
85 };
86 
87 static NvBool __nvoc_thunk_RmResource_migconfigsessionShareCallback(struct MIGConfigSession *pResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
88     return rmresShareCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RmResource.offset), pInvokingClient, pParentRef, pSharePolicy);
89 }
90 
91 static NV_STATUS __nvoc_thunk_RmResource_migconfigsessionCheckMemInterUnmap(struct MIGConfigSession *pRmResource, NvBool bSubdeviceHandleProvided) {
92     return rmresCheckMemInterUnmap((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_MIGConfigSession_RmResource.offset), bSubdeviceHandleProvided);
93 }
94 
95 static NV_STATUS __nvoc_thunk_RsResource_migconfigsessionControl(struct MIGConfigSession *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
96     return resControl((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset), pCallContext, pParams);
97 }
98 
99 static NV_STATUS __nvoc_thunk_RmResource_migconfigsessionGetMemInterMapParams(struct MIGConfigSession *pRmResource, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
100     return rmresGetMemInterMapParams((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_MIGConfigSession_RmResource.offset), pParams);
101 }
102 
103 static NV_STATUS __nvoc_thunk_RmResource_migconfigsessionGetMemoryMappingDescriptor(struct MIGConfigSession *pRmResource, struct MEMORY_DESCRIPTOR **ppMemDesc) {
104     return rmresGetMemoryMappingDescriptor((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_MIGConfigSession_RmResource.offset), ppMemDesc);
105 }
106 
107 static NvU32 __nvoc_thunk_RsResource_migconfigsessionGetRefCount(struct MIGConfigSession *pResource) {
108     return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset));
109 }
110 
111 static NV_STATUS __nvoc_thunk_RsResource_migconfigsessionControlFilter(struct MIGConfigSession *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
112     return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset), pCallContext, pParams);
113 }
114 
115 static void __nvoc_thunk_RsResource_migconfigsessionAddAdditionalDependants(struct RsClient *pClient, struct MIGConfigSession *pResource, RsResourceRef *pReference) {
116     resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset), pReference);
117 }
118 
119 static NV_STATUS __nvoc_thunk_RsResource_migconfigsessionUnmapFrom(struct MIGConfigSession *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
120     return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset), pParams);
121 }
122 
123 static NV_STATUS __nvoc_thunk_RmResource_migconfigsessionControlSerialization_Prologue(struct MIGConfigSession *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
124     return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RmResource.offset), pCallContext, pParams);
125 }
126 
127 static NV_STATUS __nvoc_thunk_RmResource_migconfigsessionControl_Prologue(struct MIGConfigSession *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
128     return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RmResource.offset), pCallContext, pParams);
129 }
130 
131 static NvBool __nvoc_thunk_RsResource_migconfigsessionCanCopy(struct MIGConfigSession *pResource) {
132     return resCanCopy((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset));
133 }
134 
135 static NV_STATUS __nvoc_thunk_RsResource_migconfigsessionUnmap(struct MIGConfigSession *pResource, struct CALL_CONTEXT *pCallContext, RsCpuMapping *pCpuMapping) {
136     return resUnmap((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset), pCallContext, pCpuMapping);
137 }
138 
139 static void __nvoc_thunk_RsResource_migconfigsessionPreDestruct(struct MIGConfigSession *pResource) {
140     resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset));
141 }
142 
143 static NV_STATUS __nvoc_thunk_RsResource_migconfigsessionMapTo(struct MIGConfigSession *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
144     return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset), pParams);
145 }
146 
147 static NV_STATUS __nvoc_thunk_RsResource_migconfigsessionIsDuplicate(struct MIGConfigSession *pResource, NvHandle hMemory, NvBool *pDuplicate) {
148     return resIsDuplicate((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset), hMemory, pDuplicate);
149 }
150 
151 static void __nvoc_thunk_RmResource_migconfigsessionControlSerialization_Epilogue(struct MIGConfigSession *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
152     rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RmResource.offset), pCallContext, pParams);
153 }
154 
155 static void __nvoc_thunk_RmResource_migconfigsessionControl_Epilogue(struct MIGConfigSession *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
156     rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RmResource.offset), pCallContext, pParams);
157 }
158 
159 static NV_STATUS __nvoc_thunk_RsResource_migconfigsessionControlLookup(struct MIGConfigSession *pResource, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams, const struct NVOC_EXPORTED_METHOD_DEF **ppEntry) {
160     return resControlLookup((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset), pParams, ppEntry);
161 }
162 
163 static NV_STATUS __nvoc_thunk_RsResource_migconfigsessionMap(struct MIGConfigSession *pResource, struct CALL_CONTEXT *pCallContext, RS_CPU_MAP_PARAMS *pParams, RsCpuMapping *pCpuMapping) {
164     return resMap((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RsResource.offset), pCallContext, pParams, pCpuMapping);
165 }
166 
167 static NvBool __nvoc_thunk_RmResource_migconfigsessionAccessCallback(struct MIGConfigSession *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
168     return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MIGConfigSession_RmResource.offset), pInvokingClient, pAllocParams, accessRight);
169 }
170 
171 const struct NVOC_EXPORT_INFO __nvoc_export_info_MIGConfigSession =
172 {
173     /*numEntries=*/     0,
174     /*pExportEntries=*/  0
175 };
176 
177 void __nvoc_dtor_RmResource(RmResource*);
178 void __nvoc_dtor_MIGConfigSession(MIGConfigSession *pThis) {
179     __nvoc_migconfigsessionDestruct(pThis);
180     __nvoc_dtor_RmResource(&pThis->__nvoc_base_RmResource);
181     PORT_UNREFERENCED_VARIABLE(pThis);
182 }
183 
184 void __nvoc_init_dataField_MIGConfigSession(MIGConfigSession *pThis) {
185     PORT_UNREFERENCED_VARIABLE(pThis);
186 }
187 
188 NV_STATUS __nvoc_ctor_RmResource(RmResource* , struct CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
189 NV_STATUS __nvoc_ctor_MIGConfigSession(MIGConfigSession *pThis, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
190     NV_STATUS status = NV_OK;
191     status = __nvoc_ctor_RmResource(&pThis->__nvoc_base_RmResource, arg_pCallContext, arg_pParams);
192     if (status != NV_OK) goto __nvoc_ctor_MIGConfigSession_fail_RmResource;
193     __nvoc_init_dataField_MIGConfigSession(pThis);
194 
195     status = __nvoc_migconfigsessionConstruct(pThis, arg_pCallContext, arg_pParams);
196     if (status != NV_OK) goto __nvoc_ctor_MIGConfigSession_fail__init;
197     goto __nvoc_ctor_MIGConfigSession_exit; // Success
198 
199 __nvoc_ctor_MIGConfigSession_fail__init:
200     __nvoc_dtor_RmResource(&pThis->__nvoc_base_RmResource);
201 __nvoc_ctor_MIGConfigSession_fail_RmResource:
202 __nvoc_ctor_MIGConfigSession_exit:
203 
204     return status;
205 }
206 
207 static void __nvoc_init_funcTable_MIGConfigSession_1(MIGConfigSession *pThis) {
208     PORT_UNREFERENCED_VARIABLE(pThis);
209 
210     pThis->__migconfigsessionShareCallback__ = &__nvoc_thunk_RmResource_migconfigsessionShareCallback;
211 
212     pThis->__migconfigsessionCheckMemInterUnmap__ = &__nvoc_thunk_RmResource_migconfigsessionCheckMemInterUnmap;
213 
214     pThis->__migconfigsessionControl__ = &__nvoc_thunk_RsResource_migconfigsessionControl;
215 
216     pThis->__migconfigsessionGetMemInterMapParams__ = &__nvoc_thunk_RmResource_migconfigsessionGetMemInterMapParams;
217 
218     pThis->__migconfigsessionGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_migconfigsessionGetMemoryMappingDescriptor;
219 
220     pThis->__migconfigsessionGetRefCount__ = &__nvoc_thunk_RsResource_migconfigsessionGetRefCount;
221 
222     pThis->__migconfigsessionControlFilter__ = &__nvoc_thunk_RsResource_migconfigsessionControlFilter;
223 
224     pThis->__migconfigsessionAddAdditionalDependants__ = &__nvoc_thunk_RsResource_migconfigsessionAddAdditionalDependants;
225 
226     pThis->__migconfigsessionUnmapFrom__ = &__nvoc_thunk_RsResource_migconfigsessionUnmapFrom;
227 
228     pThis->__migconfigsessionControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_migconfigsessionControlSerialization_Prologue;
229 
230     pThis->__migconfigsessionControl_Prologue__ = &__nvoc_thunk_RmResource_migconfigsessionControl_Prologue;
231 
232     pThis->__migconfigsessionCanCopy__ = &__nvoc_thunk_RsResource_migconfigsessionCanCopy;
233 
234     pThis->__migconfigsessionUnmap__ = &__nvoc_thunk_RsResource_migconfigsessionUnmap;
235 
236     pThis->__migconfigsessionPreDestruct__ = &__nvoc_thunk_RsResource_migconfigsessionPreDestruct;
237 
238     pThis->__migconfigsessionMapTo__ = &__nvoc_thunk_RsResource_migconfigsessionMapTo;
239 
240     pThis->__migconfigsessionIsDuplicate__ = &__nvoc_thunk_RsResource_migconfigsessionIsDuplicate;
241 
242     pThis->__migconfigsessionControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_migconfigsessionControlSerialization_Epilogue;
243 
244     pThis->__migconfigsessionControl_Epilogue__ = &__nvoc_thunk_RmResource_migconfigsessionControl_Epilogue;
245 
246     pThis->__migconfigsessionControlLookup__ = &__nvoc_thunk_RsResource_migconfigsessionControlLookup;
247 
248     pThis->__migconfigsessionMap__ = &__nvoc_thunk_RsResource_migconfigsessionMap;
249 
250     pThis->__migconfigsessionAccessCallback__ = &__nvoc_thunk_RmResource_migconfigsessionAccessCallback;
251 }
252 
253 void __nvoc_init_funcTable_MIGConfigSession(MIGConfigSession *pThis) {
254     __nvoc_init_funcTable_MIGConfigSession_1(pThis);
255 }
256 
257 void __nvoc_init_RmResource(RmResource*);
258 void __nvoc_init_MIGConfigSession(MIGConfigSession *pThis) {
259     pThis->__nvoc_pbase_MIGConfigSession = pThis;
260     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
261     pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_RmResource.__nvoc_base_RsResource;
262     pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
263     pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_RmResource;
264     __nvoc_init_RmResource(&pThis->__nvoc_base_RmResource);
265     __nvoc_init_funcTable_MIGConfigSession(pThis);
266 }
267 
268 NV_STATUS __nvoc_objCreate_MIGConfigSession(MIGConfigSession **ppThis, Dynamic *pParent, NvU32 createFlags, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
269     NV_STATUS status;
270     Object *pParentObj;
271     MIGConfigSession *pThis;
272 
273     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(MIGConfigSession), (void**)&pThis, (void**)ppThis);
274     if (status != NV_OK)
275         return status;
276 
277     portMemSet(pThis, 0, sizeof(MIGConfigSession));
278 
279     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_MIGConfigSession);
280 
281     pThis->__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
282 
283     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
284     {
285         pParentObj = dynamicCast(pParent, Object);
286         objAddChild(pParentObj, &pThis->__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
287     }
288     else
289     {
290         pThis->__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
291     }
292 
293     __nvoc_init_MIGConfigSession(pThis);
294     status = __nvoc_ctor_MIGConfigSession(pThis, arg_pCallContext, arg_pParams);
295     if (status != NV_OK) goto __nvoc_objCreate_MIGConfigSession_cleanup;
296 
297     *ppThis = pThis;
298 
299     return NV_OK;
300 
301 __nvoc_objCreate_MIGConfigSession_cleanup:
302     // do not call destructors here since the constructor already called them
303     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
304         portMemSet(pThis, 0, sizeof(MIGConfigSession));
305     else
306         portMemFree(pThis);
307 
308     // coverity[leaked_storage:FALSE]
309     return status;
310 }
311 
312 NV_STATUS __nvoc_objCreateDynamic_MIGConfigSession(MIGConfigSession **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
313     NV_STATUS status;
314     struct CALL_CONTEXT * arg_pCallContext = va_arg(args, struct CALL_CONTEXT *);
315     struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
316 
317     status = __nvoc_objCreate_MIGConfigSession(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
318 
319     return status;
320 }
321 
322