1 #define NVOC_PROFILER_V2_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_profiler_v2_nvoc.h"
9 
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x4976fc = 1;
12 #endif
13 
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_ProfilerBase;
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 extern const struct NVOC_CLASS_DEF __nvoc_class_def_GpuResource;
25 
26 void __nvoc_init_ProfilerBase(ProfilerBase*, RmHalspecOwner* );
27 void __nvoc_init_funcTable_ProfilerBase(ProfilerBase*, RmHalspecOwner* );
28 NV_STATUS __nvoc_ctor_ProfilerBase(ProfilerBase*, RmHalspecOwner* , struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
29 void __nvoc_init_dataField_ProfilerBase(ProfilerBase*, RmHalspecOwner* );
30 void __nvoc_dtor_ProfilerBase(ProfilerBase*);
31 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_ProfilerBase;
32 
33 static const struct NVOC_RTTI __nvoc_rtti_ProfilerBase_ProfilerBase = {
34     /*pClassDef=*/          &__nvoc_class_def_ProfilerBase,
35     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_ProfilerBase,
36     /*offset=*/             0,
37 };
38 
39 static const struct NVOC_RTTI __nvoc_rtti_ProfilerBase_Object = {
40     /*pClassDef=*/          &__nvoc_class_def_Object,
41     /*dtor=*/               &__nvoc_destructFromBase,
42     /*offset=*/             NV_OFFSETOF(ProfilerBase, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object),
43 };
44 
45 static const struct NVOC_RTTI __nvoc_rtti_ProfilerBase_RsResource = {
46     /*pClassDef=*/          &__nvoc_class_def_RsResource,
47     /*dtor=*/               &__nvoc_destructFromBase,
48     /*offset=*/             NV_OFFSETOF(ProfilerBase, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource),
49 };
50 
51 static const struct NVOC_RTTI __nvoc_rtti_ProfilerBase_RmResourceCommon = {
52     /*pClassDef=*/          &__nvoc_class_def_RmResourceCommon,
53     /*dtor=*/               &__nvoc_destructFromBase,
54     /*offset=*/             NV_OFFSETOF(ProfilerBase, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon),
55 };
56 
57 static const struct NVOC_RTTI __nvoc_rtti_ProfilerBase_RmResource = {
58     /*pClassDef=*/          &__nvoc_class_def_RmResource,
59     /*dtor=*/               &__nvoc_destructFromBase,
60     /*offset=*/             NV_OFFSETOF(ProfilerBase, __nvoc_base_GpuResource.__nvoc_base_RmResource),
61 };
62 
63 static const struct NVOC_RTTI __nvoc_rtti_ProfilerBase_GpuResource = {
64     /*pClassDef=*/          &__nvoc_class_def_GpuResource,
65     /*dtor=*/               &__nvoc_destructFromBase,
66     /*offset=*/             NV_OFFSETOF(ProfilerBase, __nvoc_base_GpuResource),
67 };
68 
69 static const struct NVOC_CASTINFO __nvoc_castinfo_ProfilerBase = {
70     /*numRelatives=*/       6,
71     /*relatives=*/ {
72         &__nvoc_rtti_ProfilerBase_ProfilerBase,
73         &__nvoc_rtti_ProfilerBase_GpuResource,
74         &__nvoc_rtti_ProfilerBase_RmResource,
75         &__nvoc_rtti_ProfilerBase_RmResourceCommon,
76         &__nvoc_rtti_ProfilerBase_RsResource,
77         &__nvoc_rtti_ProfilerBase_Object,
78     },
79 };
80 
81 const struct NVOC_CLASS_DEF __nvoc_class_def_ProfilerBase =
82 {
83     /*classInfo=*/ {
84         /*size=*/               sizeof(ProfilerBase),
85         /*classId=*/            classId(ProfilerBase),
86         /*providerId=*/         &__nvoc_rtti_provider,
87 #if NV_PRINTF_STRINGS_ALLOWED
88         /*name=*/               "ProfilerBase",
89 #endif
90     },
91     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_ProfilerBase,
92     /*pCastInfo=*/          &__nvoc_castinfo_ProfilerBase,
93     /*pExportInfo=*/        &__nvoc_export_info_ProfilerBase
94 };
95 
96 static NvBool __nvoc_thunk_GpuResource_profilerBaseShareCallback(struct ProfilerBase *pGpuResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
97     return gpuresShareCallback((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerBase_GpuResource.offset), pInvokingClient, pParentRef, pSharePolicy);
98 }
99 
100 static NV_STATUS __nvoc_thunk_RmResource_profilerBaseCheckMemInterUnmap(struct ProfilerBase *pRmResource, NvBool bSubdeviceHandleProvided) {
101     return rmresCheckMemInterUnmap((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_ProfilerBase_RmResource.offset), bSubdeviceHandleProvided);
102 }
103 
104 static NV_STATUS __nvoc_thunk_RsResource_profilerBaseMapTo(struct ProfilerBase *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
105     return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RsResource.offset), pParams);
106 }
107 
108 static NV_STATUS __nvoc_thunk_GpuResource_profilerBaseGetMapAddrSpace(struct ProfilerBase *pGpuResource, struct CALL_CONTEXT *pCallContext, NvU32 mapFlags, NV_ADDRESS_SPACE *pAddrSpace) {
109     return gpuresGetMapAddrSpace((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerBase_GpuResource.offset), pCallContext, mapFlags, pAddrSpace);
110 }
111 
112 static NvU32 __nvoc_thunk_RsResource_profilerBaseGetRefCount(struct ProfilerBase *pResource) {
113     return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RsResource.offset));
114 }
115 
116 static void __nvoc_thunk_RsResource_profilerBaseAddAdditionalDependants(struct RsClient *pClient, struct ProfilerBase *pResource, RsResourceRef *pReference) {
117     resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RsResource.offset), pReference);
118 }
119 
120 static NV_STATUS __nvoc_thunk_RmResource_profilerBaseControl_Prologue(struct ProfilerBase *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
121     return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RmResource.offset), pCallContext, pParams);
122 }
123 
124 static NV_STATUS __nvoc_thunk_GpuResource_profilerBaseGetRegBaseOffsetAndSize(struct ProfilerBase *pGpuResource, struct OBJGPU *pGpu, NvU32 *pOffset, NvU32 *pSize) {
125     return gpuresGetRegBaseOffsetAndSize((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerBase_GpuResource.offset), pGpu, pOffset, pSize);
126 }
127 
128 static NV_STATUS __nvoc_thunk_GpuResource_profilerBaseInternalControlForward(struct ProfilerBase *pGpuResource, NvU32 command, void *pParams, NvU32 size) {
129     return gpuresInternalControlForward((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerBase_GpuResource.offset), command, pParams, size);
130 }
131 
132 static NV_STATUS __nvoc_thunk_RsResource_profilerBaseUnmapFrom(struct ProfilerBase *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
133     return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RsResource.offset), pParams);
134 }
135 
136 static void __nvoc_thunk_RmResource_profilerBaseControl_Epilogue(struct ProfilerBase *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
137     rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RmResource.offset), pCallContext, pParams);
138 }
139 
140 static NV_STATUS __nvoc_thunk_RsResource_profilerBaseControlLookup(struct ProfilerBase *pResource, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams, const struct NVOC_EXPORTED_METHOD_DEF **ppEntry) {
141     return resControlLookup((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RsResource.offset), pParams, ppEntry);
142 }
143 
144 static NvHandle __nvoc_thunk_GpuResource_profilerBaseGetInternalObjectHandle(struct ProfilerBase *pGpuResource) {
145     return gpuresGetInternalObjectHandle((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerBase_GpuResource.offset));
146 }
147 
148 static NV_STATUS __nvoc_thunk_GpuResource_profilerBaseControl(struct ProfilerBase *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
149     return gpuresControl((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerBase_GpuResource.offset), pCallContext, pParams);
150 }
151 
152 static NV_STATUS __nvoc_thunk_GpuResource_profilerBaseUnmap(struct ProfilerBase *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RsCpuMapping *pCpuMapping) {
153     return gpuresUnmap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerBase_GpuResource.offset), pCallContext, pCpuMapping);
154 }
155 
156 static NV_STATUS __nvoc_thunk_RmResource_profilerBaseGetMemInterMapParams(struct ProfilerBase *pRmResource, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
157     return rmresGetMemInterMapParams((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_ProfilerBase_RmResource.offset), pParams);
158 }
159 
160 static NV_STATUS __nvoc_thunk_RmResource_profilerBaseGetMemoryMappingDescriptor(struct ProfilerBase *pRmResource, struct MEMORY_DESCRIPTOR **ppMemDesc) {
161     return rmresGetMemoryMappingDescriptor((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_ProfilerBase_RmResource.offset), ppMemDesc);
162 }
163 
164 static NV_STATUS __nvoc_thunk_RsResource_profilerBaseControlFilter(struct ProfilerBase *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
165     return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RsResource.offset), pCallContext, pParams);
166 }
167 
168 static NV_STATUS __nvoc_thunk_RmResource_profilerBaseControlSerialization_Prologue(struct ProfilerBase *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
169     return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RmResource.offset), pCallContext, pParams);
170 }
171 
172 static NvBool __nvoc_thunk_RsResource_profilerBaseCanCopy(struct ProfilerBase *pResource) {
173     return resCanCopy((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RsResource.offset));
174 }
175 
176 static void __nvoc_thunk_RsResource_profilerBasePreDestruct(struct ProfilerBase *pResource) {
177     resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RsResource.offset));
178 }
179 
180 static NV_STATUS __nvoc_thunk_RsResource_profilerBaseIsDuplicate(struct ProfilerBase *pResource, NvHandle hMemory, NvBool *pDuplicate) {
181     return resIsDuplicate((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RsResource.offset), hMemory, pDuplicate);
182 }
183 
184 static void __nvoc_thunk_RmResource_profilerBaseControlSerialization_Epilogue(struct ProfilerBase *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
185     rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RmResource.offset), pCallContext, pParams);
186 }
187 
188 static NV_STATUS __nvoc_thunk_GpuResource_profilerBaseMap(struct ProfilerBase *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_CPU_MAP_PARAMS *pParams, struct RsCpuMapping *pCpuMapping) {
189     return gpuresMap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerBase_GpuResource.offset), pCallContext, pParams, pCpuMapping);
190 }
191 
192 static NvBool __nvoc_thunk_RmResource_profilerBaseAccessCallback(struct ProfilerBase *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
193     return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerBase_RmResource.offset), pInvokingClient, pAllocParams, accessRight);
194 }
195 
196 #if !defined(NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG)
197 #define NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(x)      (0)
198 #endif
199 
200 static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_ProfilerBase[] =
201 {
202     {               /*  [0] */
203 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2010u)
204         /*pFunc=*/      (void (*)(void)) NULL,
205 #else
206         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReserveHwpmLegacy_IMPL,
207 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2010u)
208         /*flags=*/      0x2010u,
209         /*accessRight=*/0x0u,
210         /*methodId=*/   0xb0cc0101u,
211         /*paramSize=*/  sizeof(NVB0CC_CTRL_RESERVE_HWPM_LEGACY_PARAMS),
212         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
213 #if NV_PRINTF_STRINGS_ALLOWED
214         /*func=*/       "profilerBaseCtrlCmdReserveHwpmLegacy"
215 #endif
216     },
217     {               /*  [1] */
218 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
219         /*pFunc=*/      (void (*)(void)) NULL,
220 #else
221         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReleaseHwpmLegacy_IMPL,
222 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
223         /*flags=*/      0x210u,
224         /*accessRight=*/0x0u,
225         /*methodId=*/   0xb0cc0102u,
226         /*paramSize=*/  0,
227         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
228 #if NV_PRINTF_STRINGS_ALLOWED
229         /*func=*/       "profilerBaseCtrlCmdReleaseHwpmLegacy"
230 #endif
231     },
232     {               /*  [2] */
233 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
234         /*pFunc=*/      (void (*)(void)) NULL,
235 #else
236         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReservePmAreaSmpc_IMPL,
237 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
238         /*flags=*/      0x210u,
239         /*accessRight=*/0x0u,
240         /*methodId=*/   0xb0cc0103u,
241         /*paramSize=*/  sizeof(NVB0CC_CTRL_RESERVE_PM_AREA_SMPC_PARAMS),
242         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
243 #if NV_PRINTF_STRINGS_ALLOWED
244         /*func=*/       "profilerBaseCtrlCmdReservePmAreaSmpc"
245 #endif
246     },
247     {               /*  [3] */
248 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
249         /*pFunc=*/      (void (*)(void)) NULL,
250 #else
251         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReleasePmAreaSmpc_IMPL,
252 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
253         /*flags=*/      0x210u,
254         /*accessRight=*/0x0u,
255         /*methodId=*/   0xb0cc0104u,
256         /*paramSize=*/  0,
257         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
258 #if NV_PRINTF_STRINGS_ALLOWED
259         /*func=*/       "profilerBaseCtrlCmdReleasePmAreaSmpc"
260 #endif
261     },
262     {               /*  [4] */
263 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
264         /*pFunc=*/      (void (*)(void)) NULL,
265 #else
266         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdAllocPmaStream_IMPL,
267 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
268         /*flags=*/      0x10u,
269         /*accessRight=*/0x0u,
270         /*methodId=*/   0xb0cc0105u,
271         /*paramSize=*/  sizeof(NVB0CC_CTRL_ALLOC_PMA_STREAM_PARAMS),
272         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
273 #if NV_PRINTF_STRINGS_ALLOWED
274         /*func=*/       "profilerBaseCtrlCmdAllocPmaStream"
275 #endif
276     },
277     {               /*  [5] */
278 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
279         /*pFunc=*/      (void (*)(void)) NULL,
280 #else
281         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdFreePmaStream_IMPL,
282 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
283         /*flags=*/      0x10u,
284         /*accessRight=*/0x0u,
285         /*methodId=*/   0xb0cc0106u,
286         /*paramSize=*/  sizeof(NVB0CC_CTRL_FREE_PMA_STREAM_PARAMS),
287         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
288 #if NV_PRINTF_STRINGS_ALLOWED
289         /*func=*/       "profilerBaseCtrlCmdFreePmaStream"
290 #endif
291     },
292     {               /*  [6] */
293 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
294         /*pFunc=*/      (void (*)(void)) NULL,
295 #else
296         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdBindPmResources_IMPL,
297 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
298         /*flags=*/      0x10u,
299         /*accessRight=*/0x0u,
300         /*methodId=*/   0xb0cc0107u,
301         /*paramSize=*/  0,
302         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
303 #if NV_PRINTF_STRINGS_ALLOWED
304         /*func=*/       "profilerBaseCtrlCmdBindPmResources"
305 #endif
306     },
307     {               /*  [7] */
308 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
309         /*pFunc=*/      (void (*)(void)) NULL,
310 #else
311         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdUnbindPmResources_IMPL,
312 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
313         /*flags=*/      0x10u,
314         /*accessRight=*/0x0u,
315         /*methodId=*/   0xb0cc0108u,
316         /*paramSize=*/  0,
317         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
318 #if NV_PRINTF_STRINGS_ALLOWED
319         /*func=*/       "profilerBaseCtrlCmdUnbindPmResources"
320 #endif
321     },
322     {               /*  [8] */
323 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
324         /*pFunc=*/      (void (*)(void)) NULL,
325 #else
326         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdPmaStreamUpdateGetPut_IMPL,
327 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
328         /*flags=*/      0x210u,
329         /*accessRight=*/0x0u,
330         /*methodId=*/   0xb0cc0109u,
331         /*paramSize=*/  sizeof(NVB0CC_CTRL_PMA_STREAM_UPDATE_GET_PUT_PARAMS),
332         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
333 #if NV_PRINTF_STRINGS_ALLOWED
334         /*func=*/       "profilerBaseCtrlCmdPmaStreamUpdateGetPut"
335 #endif
336     },
337     {               /*  [9] */
338 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
339         /*pFunc=*/      (void (*)(void)) NULL,
340 #else
341         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdExecRegops_IMPL,
342 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
343         /*flags=*/      0x2210u,
344         /*accessRight=*/0x0u,
345         /*methodId=*/   0xb0cc010au,
346         /*paramSize=*/  sizeof(NVB0CC_CTRL_EXEC_REG_OPS_PARAMS),
347         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
348 #if NV_PRINTF_STRINGS_ALLOWED
349         /*func=*/       "profilerBaseCtrlCmdExecRegops"
350 #endif
351     },
352     {               /*  [10] */
353 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
354         /*pFunc=*/      (void (*)(void)) NULL,
355 #else
356         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReservePmAreaPcSampler_IMPL,
357 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
358         /*flags=*/      0x2210u,
359         /*accessRight=*/0x0u,
360         /*methodId=*/   0xb0cc010bu,
361         /*paramSize=*/  0,
362         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
363 #if NV_PRINTF_STRINGS_ALLOWED
364         /*func=*/       "profilerBaseCtrlCmdReservePmAreaPcSampler"
365 #endif
366     },
367     {               /*  [11] */
368 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
369         /*pFunc=*/      (void (*)(void)) NULL,
370 #else
371         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReleasePmAreaPcSampler_IMPL,
372 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
373         /*flags=*/      0x2210u,
374         /*accessRight=*/0x0u,
375         /*methodId=*/   0xb0cc010cu,
376         /*paramSize=*/  0,
377         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
378 #if NV_PRINTF_STRINGS_ALLOWED
379         /*func=*/       "profilerBaseCtrlCmdReleasePmAreaPcSampler"
380 #endif
381     },
382     {               /*  [12] */
383 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
384         /*pFunc=*/      (void (*)(void)) NULL,
385 #else
386         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdGetTotalHsCredits_IMPL,
387 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
388         /*flags=*/      0x2210u,
389         /*accessRight=*/0x0u,
390         /*methodId=*/   0xb0cc010du,
391         /*paramSize=*/  sizeof(NVB0CC_CTRL_GET_TOTAL_HS_CREDITS_PARAMS),
392         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
393 #if NV_PRINTF_STRINGS_ALLOWED
394         /*func=*/       "profilerBaseCtrlCmdGetTotalHsCredits"
395 #endif
396     },
397     {               /*  [13] */
398 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
399         /*pFunc=*/      (void (*)(void)) NULL,
400 #else
401         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdSetHsCredits_IMPL,
402 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
403         /*flags=*/      0x2210u,
404         /*accessRight=*/0x0u,
405         /*methodId=*/   0xb0cc010eu,
406         /*paramSize=*/  sizeof(NVB0CC_CTRL_SET_HS_CREDITS_PARAMS),
407         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
408 #if NV_PRINTF_STRINGS_ALLOWED
409         /*func=*/       "profilerBaseCtrlCmdSetHsCredits"
410 #endif
411     },
412     {               /*  [14] */
413 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
414         /*pFunc=*/      (void (*)(void)) NULL,
415 #else
416         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdGetHsCredits_IMPL,
417 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
418         /*flags=*/      0x2210u,
419         /*accessRight=*/0x0u,
420         /*methodId=*/   0xb0cc010fu,
421         /*paramSize=*/  sizeof(NVB0CC_CTRL_GET_HS_CREDITS_PARAMS),
422         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
423 #if NV_PRINTF_STRINGS_ALLOWED
424         /*func=*/       "profilerBaseCtrlCmdGetHsCredits"
425 #endif
426     },
427     {               /*  [15] */
428 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
429         /*pFunc=*/      (void (*)(void)) NULL,
430 #else
431         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReserveHes_IMPL,
432 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
433         /*flags=*/      0x210u,
434         /*accessRight=*/0x0u,
435         /*methodId=*/   0xb0cc0113u,
436         /*paramSize=*/  sizeof(NVB0CC_CTRL_RESERVE_HES_PARAMS),
437         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
438 #if NV_PRINTF_STRINGS_ALLOWED
439         /*func=*/       "profilerBaseCtrlCmdReserveHes"
440 #endif
441     },
442     {               /*  [16] */
443 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
444         /*pFunc=*/      (void (*)(void)) NULL,
445 #else
446         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReleaseHes_IMPL,
447 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
448         /*flags=*/      0x210u,
449         /*accessRight=*/0x0u,
450         /*methodId=*/   0xb0cc0114u,
451         /*paramSize=*/  sizeof(NVB0CC_CTRL_RELEASE_HES_PARAMS),
452         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
453 #if NV_PRINTF_STRINGS_ALLOWED
454         /*func=*/       "profilerBaseCtrlCmdReleaseHes"
455 #endif
456     },
457     {               /*  [17] */
458 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
459         /*pFunc=*/      (void (*)(void)) NULL,
460 #else
461         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdDisableDynamicMMABoost_IMPL,
462 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
463         /*flags=*/      0x210u,
464         /*accessRight=*/0x0u,
465         /*methodId=*/   0xb0cc0117u,
466         /*paramSize=*/  sizeof(NVB0CC_CTRL_DISABLE_DYNAMIC_MMA_BOOST_PARAMS),
467         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
468 #if NV_PRINTF_STRINGS_ALLOWED
469         /*func=*/       "profilerBaseCtrlCmdDisableDynamicMMABoost"
470 #endif
471     },
472     {               /*  [18] */
473 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
474         /*pFunc=*/      (void (*)(void)) NULL,
475 #else
476         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdGetDynamicMMABoostStatus_IMPL,
477 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
478         /*flags=*/      0x210u,
479         /*accessRight=*/0x0u,
480         /*methodId=*/   0xb0cc0118u,
481         /*paramSize=*/  sizeof(NVB0CC_CTRL_GET_DYNAMIC_MMA_BOOST_STATUS_PARAMS),
482         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
483 #if NV_PRINTF_STRINGS_ALLOWED
484         /*func=*/       "profilerBaseCtrlCmdGetDynamicMMABoostStatus"
485 #endif
486     },
487     {               /*  [19] */
488 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
489         /*pFunc=*/      (void (*)(void)) NULL,
490 #else
491         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdInternalPermissionsInit_IMPL,
492 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
493         /*flags=*/      0x610u,
494         /*accessRight=*/0x0u,
495         /*methodId=*/   0xb0cc0203u,
496         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_PERMISSIONS_INIT_PARAMS),
497         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
498 #if NV_PRINTF_STRINGS_ALLOWED
499         /*func=*/       "profilerBaseCtrlCmdInternalPermissionsInit"
500 #endif
501     },
502     {               /*  [20] */
503 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
504         /*pFunc=*/      (void (*)(void)) NULL,
505 #else
506         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdInternalAllocPmaStream_IMPL,
507 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
508         /*flags=*/      0x610u,
509         /*accessRight=*/0x0u,
510         /*methodId=*/   0xb0cc0204u,
511         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_ALLOC_PMA_STREAM_PARAMS),
512         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
513 #if NV_PRINTF_STRINGS_ALLOWED
514         /*func=*/       "profilerBaseCtrlCmdInternalAllocPmaStream"
515 #endif
516     },
517     {               /*  [21] */
518 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
519         /*pFunc=*/      (void (*)(void)) NULL,
520 #else
521         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdInternalFreePmaStream_IMPL,
522 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
523         /*flags=*/      0x610u,
524         /*accessRight=*/0x0u,
525         /*methodId=*/   0xb0cc0206u,
526         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_FREE_PMA_STREAM_PARAMS),
527         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
528 #if NV_PRINTF_STRINGS_ALLOWED
529         /*func=*/       "profilerBaseCtrlCmdInternalFreePmaStream"
530 #endif
531     },
532     {               /*  [22] */
533 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
534         /*pFunc=*/      (void (*)(void)) NULL,
535 #else
536         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdInternalGetMaxPmas_IMPL,
537 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
538         /*flags=*/      0x610u,
539         /*accessRight=*/0x0u,
540         /*methodId=*/   0xb0cc0207u,
541         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_GET_MAX_PMAS_PARAMS),
542         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
543 #if NV_PRINTF_STRINGS_ALLOWED
544         /*func=*/       "profilerBaseCtrlCmdInternalGetMaxPmas"
545 #endif
546     },
547     {               /*  [23] */
548 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
549         /*pFunc=*/      (void (*)(void)) NULL,
550 #else
551         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdInternalBindPmResources_IMPL,
552 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
553         /*flags=*/      0x610u,
554         /*accessRight=*/0x0u,
555         /*methodId=*/   0xb0cc0208u,
556         /*paramSize=*/  0,
557         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
558 #if NV_PRINTF_STRINGS_ALLOWED
559         /*func=*/       "profilerBaseCtrlCmdInternalBindPmResources"
560 #endif
561     },
562     {               /*  [24] */
563 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
564         /*pFunc=*/      (void (*)(void)) NULL,
565 #else
566         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdInternalUnbindPmResources_IMPL,
567 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
568         /*flags=*/      0x610u,
569         /*accessRight=*/0x0u,
570         /*methodId=*/   0xb0cc0209u,
571         /*paramSize=*/  0,
572         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
573 #if NV_PRINTF_STRINGS_ALLOWED
574         /*func=*/       "profilerBaseCtrlCmdInternalUnbindPmResources"
575 #endif
576     },
577     {               /*  [25] */
578 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
579         /*pFunc=*/      (void (*)(void)) NULL,
580 #else
581         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdInternalReserveHwpmLegacy_IMPL,
582 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
583         /*flags=*/      0x610u,
584         /*accessRight=*/0x0u,
585         /*methodId=*/   0xb0cc020au,
586         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_RESERVE_HWPM_LEGACY_PARAMS),
587         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
588 #if NV_PRINTF_STRINGS_ALLOWED
589         /*func=*/       "profilerBaseCtrlCmdInternalReserveHwpmLegacy"
590 #endif
591     },
592     {               /*  [26] */
593 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
594         /*pFunc=*/      (void (*)(void)) NULL,
595 #else
596         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdRequestCgControls_IMPL,
597 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
598         /*flags=*/      0x210u,
599         /*accessRight=*/0x0u,
600         /*methodId=*/   0xb0cc0301u,
601         /*paramSize=*/  sizeof(NVB0CC_CTRL_POWER_REQUEST_FEATURES_PARAMS),
602         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
603 #if NV_PRINTF_STRINGS_ALLOWED
604         /*func=*/       "profilerBaseCtrlCmdRequestCgControls"
605 #endif
606     },
607     {               /*  [27] */
608 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
609         /*pFunc=*/      (void (*)(void)) NULL,
610 #else
611         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReleaseCgControls_IMPL,
612 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
613         /*flags=*/      0x210u,
614         /*accessRight=*/0x0u,
615         /*methodId=*/   0xb0cc0302u,
616         /*paramSize=*/  sizeof(NVB0CC_CTRL_POWER_RELEASE_FEATURES_PARAMS),
617         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
618 #if NV_PRINTF_STRINGS_ALLOWED
619         /*func=*/       "profilerBaseCtrlCmdReleaseCgControls"
620 #endif
621     },
622 
623 };
624 
625 const struct NVOC_EXPORT_INFO __nvoc_export_info_ProfilerBase =
626 {
627     /*numEntries=*/     28,
628     /*pExportEntries=*/ __nvoc_exported_method_def_ProfilerBase
629 };
630 
631 void __nvoc_dtor_GpuResource(GpuResource*);
632 void __nvoc_dtor_ProfilerBase(ProfilerBase *pThis) {
633     __nvoc_profilerBaseDestruct(pThis);
634     __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource);
635     PORT_UNREFERENCED_VARIABLE(pThis);
636 }
637 
638 void __nvoc_init_dataField_ProfilerBase(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner) {
639     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
640     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
641     PORT_UNREFERENCED_VARIABLE(pThis);
642     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
643     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
644     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
645 }
646 
647 NV_STATUS __nvoc_ctor_GpuResource(GpuResource* , struct CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
648 NV_STATUS __nvoc_ctor_ProfilerBase(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
649     NV_STATUS status = NV_OK;
650     status = __nvoc_ctor_GpuResource(&pThis->__nvoc_base_GpuResource, arg_pCallContext, arg_pParams);
651     if (status != NV_OK) goto __nvoc_ctor_ProfilerBase_fail_GpuResource;
652     __nvoc_init_dataField_ProfilerBase(pThis, pRmhalspecowner);
653 
654     status = __nvoc_profilerBaseConstruct(pThis, arg_pCallContext, arg_pParams);
655     if (status != NV_OK) goto __nvoc_ctor_ProfilerBase_fail__init;
656     goto __nvoc_ctor_ProfilerBase_exit; // Success
657 
658 __nvoc_ctor_ProfilerBase_fail__init:
659     __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource);
660 __nvoc_ctor_ProfilerBase_fail_GpuResource:
661 __nvoc_ctor_ProfilerBase_exit:
662 
663     return status;
664 }
665 
666 static void __nvoc_init_funcTable_ProfilerBase_1(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner) {
667     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
668     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
669     PORT_UNREFERENCED_VARIABLE(pThis);
670     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
671     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
672     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
673 
674 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2010u)
675     pThis->__profilerBaseCtrlCmdReserveHwpmLegacy__ = &profilerBaseCtrlCmdReserveHwpmLegacy_IMPL;
676 #endif
677 
678 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
679     pThis->__profilerBaseCtrlCmdInternalReserveHwpmLegacy__ = &profilerBaseCtrlCmdInternalReserveHwpmLegacy_IMPL;
680 #endif
681 
682 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
683     pThis->__profilerBaseCtrlCmdReleaseHwpmLegacy__ = &profilerBaseCtrlCmdReleaseHwpmLegacy_IMPL;
684 #endif
685 
686 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
687     pThis->__profilerBaseCtrlCmdReservePmAreaSmpc__ = &profilerBaseCtrlCmdReservePmAreaSmpc_IMPL;
688 #endif
689 
690 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
691     pThis->__profilerBaseCtrlCmdReleasePmAreaSmpc__ = &profilerBaseCtrlCmdReleasePmAreaSmpc_IMPL;
692 #endif
693 
694 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
695     pThis->__profilerBaseCtrlCmdAllocPmaStream__ = &profilerBaseCtrlCmdAllocPmaStream_IMPL;
696 #endif
697 
698 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
699     pThis->__profilerBaseCtrlCmdFreePmaStream__ = &profilerBaseCtrlCmdFreePmaStream_IMPL;
700 #endif
701 
702 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
703     pThis->__profilerBaseCtrlCmdInternalFreePmaStream__ = &profilerBaseCtrlCmdInternalFreePmaStream_IMPL;
704 #endif
705 
706 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
707     pThis->__profilerBaseCtrlCmdInternalGetMaxPmas__ = &profilerBaseCtrlCmdInternalGetMaxPmas_IMPL;
708 #endif
709 
710 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
711     pThis->__profilerBaseCtrlCmdBindPmResources__ = &profilerBaseCtrlCmdBindPmResources_IMPL;
712 #endif
713 
714 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
715     pThis->__profilerBaseCtrlCmdUnbindPmResources__ = &profilerBaseCtrlCmdUnbindPmResources_IMPL;
716 #endif
717 
718 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
719     pThis->__profilerBaseCtrlCmdInternalBindPmResources__ = &profilerBaseCtrlCmdInternalBindPmResources_IMPL;
720 #endif
721 
722 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
723     pThis->__profilerBaseCtrlCmdInternalUnbindPmResources__ = &profilerBaseCtrlCmdInternalUnbindPmResources_IMPL;
724 #endif
725 
726 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
727     pThis->__profilerBaseCtrlCmdPmaStreamUpdateGetPut__ = &profilerBaseCtrlCmdPmaStreamUpdateGetPut_IMPL;
728 #endif
729 
730 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
731     pThis->__profilerBaseCtrlCmdExecRegops__ = &profilerBaseCtrlCmdExecRegops_IMPL;
732 #endif
733 
734 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
735     pThis->__profilerBaseCtrlCmdInternalAllocPmaStream__ = &profilerBaseCtrlCmdInternalAllocPmaStream_IMPL;
736 #endif
737 
738 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
739     pThis->__profilerBaseCtrlCmdInternalPermissionsInit__ = &profilerBaseCtrlCmdInternalPermissionsInit_IMPL;
740 #endif
741 
742 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
743     pThis->__profilerBaseCtrlCmdReservePmAreaPcSampler__ = &profilerBaseCtrlCmdReservePmAreaPcSampler_IMPL;
744 #endif
745 
746 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
747     pThis->__profilerBaseCtrlCmdReleasePmAreaPcSampler__ = &profilerBaseCtrlCmdReleasePmAreaPcSampler_IMPL;
748 #endif
749 
750 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
751     pThis->__profilerBaseCtrlCmdGetTotalHsCredits__ = &profilerBaseCtrlCmdGetTotalHsCredits_IMPL;
752 #endif
753 
754 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
755     pThis->__profilerBaseCtrlCmdGetHsCredits__ = &profilerBaseCtrlCmdGetHsCredits_IMPL;
756 #endif
757 
758 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
759     pThis->__profilerBaseCtrlCmdSetHsCredits__ = &profilerBaseCtrlCmdSetHsCredits_IMPL;
760 #endif
761 
762 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
763     pThis->__profilerBaseCtrlCmdReserveHes__ = &profilerBaseCtrlCmdReserveHes_IMPL;
764 #endif
765 
766 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
767     pThis->__profilerBaseCtrlCmdReleaseHes__ = &profilerBaseCtrlCmdReleaseHes_IMPL;
768 #endif
769 
770 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
771     pThis->__profilerBaseCtrlCmdRequestCgControls__ = &profilerBaseCtrlCmdRequestCgControls_IMPL;
772 #endif
773 
774 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
775     pThis->__profilerBaseCtrlCmdReleaseCgControls__ = &profilerBaseCtrlCmdReleaseCgControls_IMPL;
776 #endif
777 
778 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
779     pThis->__profilerBaseCtrlCmdDisableDynamicMMABoost__ = &profilerBaseCtrlCmdDisableDynamicMMABoost_IMPL;
780 #endif
781 
782 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
783     pThis->__profilerBaseCtrlCmdGetDynamicMMABoostStatus__ = &profilerBaseCtrlCmdGetDynamicMMABoostStatus_IMPL;
784 #endif
785 
786     pThis->__profilerBaseShareCallback__ = &__nvoc_thunk_GpuResource_profilerBaseShareCallback;
787 
788     pThis->__profilerBaseCheckMemInterUnmap__ = &__nvoc_thunk_RmResource_profilerBaseCheckMemInterUnmap;
789 
790     pThis->__profilerBaseMapTo__ = &__nvoc_thunk_RsResource_profilerBaseMapTo;
791 
792     pThis->__profilerBaseGetMapAddrSpace__ = &__nvoc_thunk_GpuResource_profilerBaseGetMapAddrSpace;
793 
794     pThis->__profilerBaseGetRefCount__ = &__nvoc_thunk_RsResource_profilerBaseGetRefCount;
795 
796     pThis->__profilerBaseAddAdditionalDependants__ = &__nvoc_thunk_RsResource_profilerBaseAddAdditionalDependants;
797 
798     pThis->__profilerBaseControl_Prologue__ = &__nvoc_thunk_RmResource_profilerBaseControl_Prologue;
799 
800     pThis->__profilerBaseGetRegBaseOffsetAndSize__ = &__nvoc_thunk_GpuResource_profilerBaseGetRegBaseOffsetAndSize;
801 
802     pThis->__profilerBaseInternalControlForward__ = &__nvoc_thunk_GpuResource_profilerBaseInternalControlForward;
803 
804     pThis->__profilerBaseUnmapFrom__ = &__nvoc_thunk_RsResource_profilerBaseUnmapFrom;
805 
806     pThis->__profilerBaseControl_Epilogue__ = &__nvoc_thunk_RmResource_profilerBaseControl_Epilogue;
807 
808     pThis->__profilerBaseControlLookup__ = &__nvoc_thunk_RsResource_profilerBaseControlLookup;
809 
810     pThis->__profilerBaseGetInternalObjectHandle__ = &__nvoc_thunk_GpuResource_profilerBaseGetInternalObjectHandle;
811 
812     pThis->__profilerBaseControl__ = &__nvoc_thunk_GpuResource_profilerBaseControl;
813 
814     pThis->__profilerBaseUnmap__ = &__nvoc_thunk_GpuResource_profilerBaseUnmap;
815 
816     pThis->__profilerBaseGetMemInterMapParams__ = &__nvoc_thunk_RmResource_profilerBaseGetMemInterMapParams;
817 
818     pThis->__profilerBaseGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_profilerBaseGetMemoryMappingDescriptor;
819 
820     pThis->__profilerBaseControlFilter__ = &__nvoc_thunk_RsResource_profilerBaseControlFilter;
821 
822     pThis->__profilerBaseControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_profilerBaseControlSerialization_Prologue;
823 
824     pThis->__profilerBaseCanCopy__ = &__nvoc_thunk_RsResource_profilerBaseCanCopy;
825 
826     pThis->__profilerBasePreDestruct__ = &__nvoc_thunk_RsResource_profilerBasePreDestruct;
827 
828     pThis->__profilerBaseIsDuplicate__ = &__nvoc_thunk_RsResource_profilerBaseIsDuplicate;
829 
830     pThis->__profilerBaseControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_profilerBaseControlSerialization_Epilogue;
831 
832     pThis->__profilerBaseMap__ = &__nvoc_thunk_GpuResource_profilerBaseMap;
833 
834     pThis->__profilerBaseAccessCallback__ = &__nvoc_thunk_RmResource_profilerBaseAccessCallback;
835 }
836 
837 void __nvoc_init_funcTable_ProfilerBase(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner) {
838     __nvoc_init_funcTable_ProfilerBase_1(pThis, pRmhalspecowner);
839 }
840 
841 void __nvoc_init_GpuResource(GpuResource*);
842 void __nvoc_init_ProfilerBase(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner) {
843     pThis->__nvoc_pbase_ProfilerBase = pThis;
844     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
845     pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource;
846     pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
847     pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource;
848     pThis->__nvoc_pbase_GpuResource = &pThis->__nvoc_base_GpuResource;
849     __nvoc_init_GpuResource(&pThis->__nvoc_base_GpuResource);
850     __nvoc_init_funcTable_ProfilerBase(pThis, pRmhalspecowner);
851 }
852 
853 NV_STATUS __nvoc_objCreate_ProfilerBase(ProfilerBase **ppThis, Dynamic *pParent, NvU32 createFlags, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
854     NV_STATUS status;
855     Object *pParentObj;
856     ProfilerBase *pThis;
857     RmHalspecOwner *pRmhalspecowner;
858 
859     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(ProfilerBase), (void**)&pThis, (void**)ppThis);
860     if (status != NV_OK)
861         return status;
862 
863     portMemSet(pThis, 0, sizeof(ProfilerBase));
864 
865     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_ProfilerBase);
866 
867     pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
868 
869     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
870     {
871         pParentObj = dynamicCast(pParent, Object);
872         objAddChild(pParentObj, &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
873     }
874     else
875     {
876         pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
877     }
878 
879     if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
880         pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
881     NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
882 
883     __nvoc_init_ProfilerBase(pThis, pRmhalspecowner);
884     status = __nvoc_ctor_ProfilerBase(pThis, pRmhalspecowner, arg_pCallContext, arg_pParams);
885     if (status != NV_OK) goto __nvoc_objCreate_ProfilerBase_cleanup;
886 
887     *ppThis = pThis;
888 
889     return NV_OK;
890 
891 __nvoc_objCreate_ProfilerBase_cleanup:
892     // do not call destructors here since the constructor already called them
893     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
894         portMemSet(pThis, 0, sizeof(ProfilerBase));
895     else
896         portMemFree(pThis);
897 
898     // coverity[leaked_storage:FALSE]
899     return status;
900 }
901 
902 NV_STATUS __nvoc_objCreateDynamic_ProfilerBase(ProfilerBase **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
903     NV_STATUS status;
904     struct CALL_CONTEXT * arg_pCallContext = va_arg(args, struct CALL_CONTEXT *);
905     struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
906 
907     status = __nvoc_objCreate_ProfilerBase(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
908 
909     return status;
910 }
911 
912 #ifdef DEBUG
913 char __nvoc_class_id_uniqueness_check_0x54d077 = 1;
914 #endif
915 
916 extern const struct NVOC_CLASS_DEF __nvoc_class_def_ProfilerDev;
917 
918 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
919 
920 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RsResource;
921 
922 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResourceCommon;
923 
924 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResource;
925 
926 extern const struct NVOC_CLASS_DEF __nvoc_class_def_GpuResource;
927 
928 extern const struct NVOC_CLASS_DEF __nvoc_class_def_ProfilerBase;
929 
930 void __nvoc_init_ProfilerDev(ProfilerDev*, RmHalspecOwner* );
931 void __nvoc_init_funcTable_ProfilerDev(ProfilerDev*, RmHalspecOwner* );
932 NV_STATUS __nvoc_ctor_ProfilerDev(ProfilerDev*, RmHalspecOwner* , struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
933 void __nvoc_init_dataField_ProfilerDev(ProfilerDev*, RmHalspecOwner* );
934 void __nvoc_dtor_ProfilerDev(ProfilerDev*);
935 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_ProfilerDev;
936 
937 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_ProfilerDev = {
938     /*pClassDef=*/          &__nvoc_class_def_ProfilerDev,
939     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_ProfilerDev,
940     /*offset=*/             0,
941 };
942 
943 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_Object = {
944     /*pClassDef=*/          &__nvoc_class_def_Object,
945     /*dtor=*/               &__nvoc_destructFromBase,
946     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object),
947 };
948 
949 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_RsResource = {
950     /*pClassDef=*/          &__nvoc_class_def_RsResource,
951     /*dtor=*/               &__nvoc_destructFromBase,
952     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource),
953 };
954 
955 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_RmResourceCommon = {
956     /*pClassDef=*/          &__nvoc_class_def_RmResourceCommon,
957     /*dtor=*/               &__nvoc_destructFromBase,
958     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon),
959 };
960 
961 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_RmResource = {
962     /*pClassDef=*/          &__nvoc_class_def_RmResource,
963     /*dtor=*/               &__nvoc_destructFromBase,
964     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource),
965 };
966 
967 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_GpuResource = {
968     /*pClassDef=*/          &__nvoc_class_def_GpuResource,
969     /*dtor=*/               &__nvoc_destructFromBase,
970     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource),
971 };
972 
973 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_ProfilerBase = {
974     /*pClassDef=*/          &__nvoc_class_def_ProfilerBase,
975     /*dtor=*/               &__nvoc_destructFromBase,
976     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase),
977 };
978 
979 static const struct NVOC_CASTINFO __nvoc_castinfo_ProfilerDev = {
980     /*numRelatives=*/       7,
981     /*relatives=*/ {
982         &__nvoc_rtti_ProfilerDev_ProfilerDev,
983         &__nvoc_rtti_ProfilerDev_ProfilerBase,
984         &__nvoc_rtti_ProfilerDev_GpuResource,
985         &__nvoc_rtti_ProfilerDev_RmResource,
986         &__nvoc_rtti_ProfilerDev_RmResourceCommon,
987         &__nvoc_rtti_ProfilerDev_RsResource,
988         &__nvoc_rtti_ProfilerDev_Object,
989     },
990 };
991 
992 const struct NVOC_CLASS_DEF __nvoc_class_def_ProfilerDev =
993 {
994     /*classInfo=*/ {
995         /*size=*/               sizeof(ProfilerDev),
996         /*classId=*/            classId(ProfilerDev),
997         /*providerId=*/         &__nvoc_rtti_provider,
998 #if NV_PRINTF_STRINGS_ALLOWED
999         /*name=*/               "ProfilerDev",
1000 #endif
1001     },
1002     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_ProfilerDev,
1003     /*pCastInfo=*/          &__nvoc_castinfo_ProfilerDev,
1004     /*pExportInfo=*/        &__nvoc_export_info_ProfilerDev
1005 };
1006 
1007 static NvBool __nvoc_thunk_GpuResource_profilerDevShareCallback(struct ProfilerDev *pGpuResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
1008     return gpuresShareCallback((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pInvokingClient, pParentRef, pSharePolicy);
1009 }
1010 
1011 static NV_STATUS __nvoc_thunk_RmResource_profilerDevCheckMemInterUnmap(struct ProfilerDev *pRmResource, NvBool bSubdeviceHandleProvided) {
1012     return rmresCheckMemInterUnmap((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), bSubdeviceHandleProvided);
1013 }
1014 
1015 static NV_STATUS __nvoc_thunk_RsResource_profilerDevMapTo(struct ProfilerDev *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
1016     return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pParams);
1017 }
1018 
1019 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevGetMapAddrSpace(struct ProfilerDev *pGpuResource, struct CALL_CONTEXT *pCallContext, NvU32 mapFlags, NV_ADDRESS_SPACE *pAddrSpace) {
1020     return gpuresGetMapAddrSpace((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pCallContext, mapFlags, pAddrSpace);
1021 }
1022 
1023 static NvU32 __nvoc_thunk_RsResource_profilerDevGetRefCount(struct ProfilerDev *pResource) {
1024     return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset));
1025 }
1026 
1027 static void __nvoc_thunk_RsResource_profilerDevAddAdditionalDependants(struct RsClient *pClient, struct ProfilerDev *pResource, RsResourceRef *pReference) {
1028     resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pReference);
1029 }
1030 
1031 static NV_STATUS __nvoc_thunk_RmResource_profilerDevControl_Prologue(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1032     return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pCallContext, pParams);
1033 }
1034 
1035 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevGetRegBaseOffsetAndSize(struct ProfilerDev *pGpuResource, struct OBJGPU *pGpu, NvU32 *pOffset, NvU32 *pSize) {
1036     return gpuresGetRegBaseOffsetAndSize((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pGpu, pOffset, pSize);
1037 }
1038 
1039 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevInternalControlForward(struct ProfilerDev *pGpuResource, NvU32 command, void *pParams, NvU32 size) {
1040     return gpuresInternalControlForward((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), command, pParams, size);
1041 }
1042 
1043 static NV_STATUS __nvoc_thunk_RsResource_profilerDevUnmapFrom(struct ProfilerDev *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
1044     return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pParams);
1045 }
1046 
1047 static void __nvoc_thunk_RmResource_profilerDevControl_Epilogue(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1048     rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pCallContext, pParams);
1049 }
1050 
1051 static NV_STATUS __nvoc_thunk_RsResource_profilerDevControlLookup(struct ProfilerDev *pResource, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams, const struct NVOC_EXPORTED_METHOD_DEF **ppEntry) {
1052     return resControlLookup((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pParams, ppEntry);
1053 }
1054 
1055 static NvHandle __nvoc_thunk_GpuResource_profilerDevGetInternalObjectHandle(struct ProfilerDev *pGpuResource) {
1056     return gpuresGetInternalObjectHandle((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset));
1057 }
1058 
1059 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevControl(struct ProfilerDev *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1060     return gpuresControl((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pCallContext, pParams);
1061 }
1062 
1063 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevUnmap(struct ProfilerDev *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RsCpuMapping *pCpuMapping) {
1064     return gpuresUnmap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pCallContext, pCpuMapping);
1065 }
1066 
1067 static NV_STATUS __nvoc_thunk_RmResource_profilerDevGetMemInterMapParams(struct ProfilerDev *pRmResource, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
1068     return rmresGetMemInterMapParams((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pParams);
1069 }
1070 
1071 static NV_STATUS __nvoc_thunk_RmResource_profilerDevGetMemoryMappingDescriptor(struct ProfilerDev *pRmResource, struct MEMORY_DESCRIPTOR **ppMemDesc) {
1072     return rmresGetMemoryMappingDescriptor((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), ppMemDesc);
1073 }
1074 
1075 static NV_STATUS __nvoc_thunk_RsResource_profilerDevControlFilter(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1076     return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pCallContext, pParams);
1077 }
1078 
1079 static NV_STATUS __nvoc_thunk_RmResource_profilerDevControlSerialization_Prologue(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1080     return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pCallContext, pParams);
1081 }
1082 
1083 static NvBool __nvoc_thunk_RsResource_profilerDevCanCopy(struct ProfilerDev *pResource) {
1084     return resCanCopy((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset));
1085 }
1086 
1087 static void __nvoc_thunk_RsResource_profilerDevPreDestruct(struct ProfilerDev *pResource) {
1088     resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset));
1089 }
1090 
1091 static NV_STATUS __nvoc_thunk_RsResource_profilerDevIsDuplicate(struct ProfilerDev *pResource, NvHandle hMemory, NvBool *pDuplicate) {
1092     return resIsDuplicate((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), hMemory, pDuplicate);
1093 }
1094 
1095 static void __nvoc_thunk_RmResource_profilerDevControlSerialization_Epilogue(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1096     rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pCallContext, pParams);
1097 }
1098 
1099 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevMap(struct ProfilerDev *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_CPU_MAP_PARAMS *pParams, struct RsCpuMapping *pCpuMapping) {
1100     return gpuresMap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pCallContext, pParams, pCpuMapping);
1101 }
1102 
1103 static NvBool __nvoc_thunk_RmResource_profilerDevAccessCallback(struct ProfilerDev *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
1104     return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pInvokingClient, pAllocParams, accessRight);
1105 }
1106 
1107 const struct NVOC_EXPORT_INFO __nvoc_export_info_ProfilerDev =
1108 {
1109     /*numEntries=*/     0,
1110     /*pExportEntries=*/  0
1111 };
1112 
1113 void __nvoc_dtor_ProfilerBase(ProfilerBase*);
1114 void __nvoc_dtor_ProfilerDev(ProfilerDev *pThis) {
1115     __nvoc_profilerDevDestruct(pThis);
1116     __nvoc_dtor_ProfilerBase(&pThis->__nvoc_base_ProfilerBase);
1117     PORT_UNREFERENCED_VARIABLE(pThis);
1118 }
1119 
1120 void __nvoc_init_dataField_ProfilerDev(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner) {
1121     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
1122     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
1123     PORT_UNREFERENCED_VARIABLE(pThis);
1124     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
1125     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
1126     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
1127 }
1128 
1129 NV_STATUS __nvoc_ctor_ProfilerBase(ProfilerBase* , RmHalspecOwner* , struct CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
1130 NV_STATUS __nvoc_ctor_ProfilerDev(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
1131     NV_STATUS status = NV_OK;
1132     status = __nvoc_ctor_ProfilerBase(&pThis->__nvoc_base_ProfilerBase, pRmhalspecowner, arg_pCallContext, arg_pParams);
1133     if (status != NV_OK) goto __nvoc_ctor_ProfilerDev_fail_ProfilerBase;
1134     __nvoc_init_dataField_ProfilerDev(pThis, pRmhalspecowner);
1135 
1136     status = __nvoc_profilerDevConstruct(pThis, arg_pCallContext, arg_pParams);
1137     if (status != NV_OK) goto __nvoc_ctor_ProfilerDev_fail__init;
1138     goto __nvoc_ctor_ProfilerDev_exit; // Success
1139 
1140 __nvoc_ctor_ProfilerDev_fail__init:
1141     __nvoc_dtor_ProfilerBase(&pThis->__nvoc_base_ProfilerBase);
1142 __nvoc_ctor_ProfilerDev_fail_ProfilerBase:
1143 __nvoc_ctor_ProfilerDev_exit:
1144 
1145     return status;
1146 }
1147 
1148 static void __nvoc_init_funcTable_ProfilerDev_1(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner) {
1149     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
1150     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
1151     PORT_UNREFERENCED_VARIABLE(pThis);
1152     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
1153     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
1154     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
1155 
1156     pThis->__profilerDevShareCallback__ = &__nvoc_thunk_GpuResource_profilerDevShareCallback;
1157 
1158     pThis->__profilerDevCheckMemInterUnmap__ = &__nvoc_thunk_RmResource_profilerDevCheckMemInterUnmap;
1159 
1160     pThis->__profilerDevMapTo__ = &__nvoc_thunk_RsResource_profilerDevMapTo;
1161 
1162     pThis->__profilerDevGetMapAddrSpace__ = &__nvoc_thunk_GpuResource_profilerDevGetMapAddrSpace;
1163 
1164     pThis->__profilerDevGetRefCount__ = &__nvoc_thunk_RsResource_profilerDevGetRefCount;
1165 
1166     pThis->__profilerDevAddAdditionalDependants__ = &__nvoc_thunk_RsResource_profilerDevAddAdditionalDependants;
1167 
1168     pThis->__profilerDevControl_Prologue__ = &__nvoc_thunk_RmResource_profilerDevControl_Prologue;
1169 
1170     pThis->__profilerDevGetRegBaseOffsetAndSize__ = &__nvoc_thunk_GpuResource_profilerDevGetRegBaseOffsetAndSize;
1171 
1172     pThis->__profilerDevInternalControlForward__ = &__nvoc_thunk_GpuResource_profilerDevInternalControlForward;
1173 
1174     pThis->__profilerDevUnmapFrom__ = &__nvoc_thunk_RsResource_profilerDevUnmapFrom;
1175 
1176     pThis->__profilerDevControl_Epilogue__ = &__nvoc_thunk_RmResource_profilerDevControl_Epilogue;
1177 
1178     pThis->__profilerDevControlLookup__ = &__nvoc_thunk_RsResource_profilerDevControlLookup;
1179 
1180     pThis->__profilerDevGetInternalObjectHandle__ = &__nvoc_thunk_GpuResource_profilerDevGetInternalObjectHandle;
1181 
1182     pThis->__profilerDevControl__ = &__nvoc_thunk_GpuResource_profilerDevControl;
1183 
1184     pThis->__profilerDevUnmap__ = &__nvoc_thunk_GpuResource_profilerDevUnmap;
1185 
1186     pThis->__profilerDevGetMemInterMapParams__ = &__nvoc_thunk_RmResource_profilerDevGetMemInterMapParams;
1187 
1188     pThis->__profilerDevGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_profilerDevGetMemoryMappingDescriptor;
1189 
1190     pThis->__profilerDevControlFilter__ = &__nvoc_thunk_RsResource_profilerDevControlFilter;
1191 
1192     pThis->__profilerDevControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_profilerDevControlSerialization_Prologue;
1193 
1194     pThis->__profilerDevCanCopy__ = &__nvoc_thunk_RsResource_profilerDevCanCopy;
1195 
1196     pThis->__profilerDevPreDestruct__ = &__nvoc_thunk_RsResource_profilerDevPreDestruct;
1197 
1198     pThis->__profilerDevIsDuplicate__ = &__nvoc_thunk_RsResource_profilerDevIsDuplicate;
1199 
1200     pThis->__profilerDevControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_profilerDevControlSerialization_Epilogue;
1201 
1202     pThis->__profilerDevMap__ = &__nvoc_thunk_GpuResource_profilerDevMap;
1203 
1204     pThis->__profilerDevAccessCallback__ = &__nvoc_thunk_RmResource_profilerDevAccessCallback;
1205 }
1206 
1207 void __nvoc_init_funcTable_ProfilerDev(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner) {
1208     __nvoc_init_funcTable_ProfilerDev_1(pThis, pRmhalspecowner);
1209 }
1210 
1211 void __nvoc_init_ProfilerBase(ProfilerBase*, RmHalspecOwner* );
1212 void __nvoc_init_ProfilerDev(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner) {
1213     pThis->__nvoc_pbase_ProfilerDev = pThis;
1214     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
1215     pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource;
1216     pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
1217     pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource;
1218     pThis->__nvoc_pbase_GpuResource = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource;
1219     pThis->__nvoc_pbase_ProfilerBase = &pThis->__nvoc_base_ProfilerBase;
1220     __nvoc_init_ProfilerBase(&pThis->__nvoc_base_ProfilerBase, pRmhalspecowner);
1221     __nvoc_init_funcTable_ProfilerDev(pThis, pRmhalspecowner);
1222 }
1223 
1224 NV_STATUS __nvoc_objCreate_ProfilerDev(ProfilerDev **ppThis, Dynamic *pParent, NvU32 createFlags, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
1225     NV_STATUS status;
1226     Object *pParentObj;
1227     ProfilerDev *pThis;
1228     RmHalspecOwner *pRmhalspecowner;
1229 
1230     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(ProfilerDev), (void**)&pThis, (void**)ppThis);
1231     if (status != NV_OK)
1232         return status;
1233 
1234     portMemSet(pThis, 0, sizeof(ProfilerDev));
1235 
1236     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_ProfilerDev);
1237 
1238     pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
1239 
1240     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
1241     {
1242         pParentObj = dynamicCast(pParent, Object);
1243         objAddChild(pParentObj, &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
1244     }
1245     else
1246     {
1247         pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
1248     }
1249 
1250     if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
1251         pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
1252     NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
1253 
1254     __nvoc_init_ProfilerDev(pThis, pRmhalspecowner);
1255     status = __nvoc_ctor_ProfilerDev(pThis, pRmhalspecowner, arg_pCallContext, arg_pParams);
1256     if (status != NV_OK) goto __nvoc_objCreate_ProfilerDev_cleanup;
1257 
1258     *ppThis = pThis;
1259 
1260     return NV_OK;
1261 
1262 __nvoc_objCreate_ProfilerDev_cleanup:
1263     // do not call destructors here since the constructor already called them
1264     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
1265         portMemSet(pThis, 0, sizeof(ProfilerDev));
1266     else
1267         portMemFree(pThis);
1268 
1269     // coverity[leaked_storage:FALSE]
1270     return status;
1271 }
1272 
1273 NV_STATUS __nvoc_objCreateDynamic_ProfilerDev(ProfilerDev **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
1274     NV_STATUS status;
1275     struct CALL_CONTEXT * arg_pCallContext = va_arg(args, struct CALL_CONTEXT *);
1276     struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
1277 
1278     status = __nvoc_objCreate_ProfilerDev(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
1279 
1280     return status;
1281 }
1282 
1283