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(0x610u)
459         /*pFunc=*/      (void (*)(void)) NULL,
460 #else
461         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdInternalPermissionsInit_IMPL,
462 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
463         /*flags=*/      0x610u,
464         /*accessRight=*/0x0u,
465         /*methodId=*/   0xb0cc0203u,
466         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_PERMISSIONS_INIT_PARAMS),
467         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
468 #if NV_PRINTF_STRINGS_ALLOWED
469         /*func=*/       "profilerBaseCtrlCmdInternalPermissionsInit"
470 #endif
471     },
472     {               /*  [18] */
473 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
474         /*pFunc=*/      (void (*)(void)) NULL,
475 #else
476         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdInternalAllocPmaStream_IMPL,
477 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
478         /*flags=*/      0x610u,
479         /*accessRight=*/0x0u,
480         /*methodId=*/   0xb0cc0204u,
481         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_ALLOC_PMA_STREAM_PARAMS),
482         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
483 #if NV_PRINTF_STRINGS_ALLOWED
484         /*func=*/       "profilerBaseCtrlCmdInternalAllocPmaStream"
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)) profilerBaseCtrlCmdInternalFreePmaStream_IMPL,
492 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
493         /*flags=*/      0x610u,
494         /*accessRight=*/0x0u,
495         /*methodId=*/   0xb0cc0206u,
496         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_FREE_PMA_STREAM_PARAMS),
497         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
498 #if NV_PRINTF_STRINGS_ALLOWED
499         /*func=*/       "profilerBaseCtrlCmdInternalFreePmaStream"
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)) profilerBaseCtrlCmdInternalGetMaxPmas_IMPL,
507 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
508         /*flags=*/      0x610u,
509         /*accessRight=*/0x0u,
510         /*methodId=*/   0xb0cc0207u,
511         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_GET_MAX_PMAS_PARAMS),
512         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
513 #if NV_PRINTF_STRINGS_ALLOWED
514         /*func=*/       "profilerBaseCtrlCmdInternalGetMaxPmas"
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)) profilerBaseCtrlCmdInternalBindPmResources_IMPL,
522 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
523         /*flags=*/      0x610u,
524         /*accessRight=*/0x0u,
525         /*methodId=*/   0xb0cc0208u,
526         /*paramSize=*/  0,
527         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
528 #if NV_PRINTF_STRINGS_ALLOWED
529         /*func=*/       "profilerBaseCtrlCmdInternalBindPmResources"
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)) profilerBaseCtrlCmdInternalUnbindPmResources_IMPL,
537 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
538         /*flags=*/      0x610u,
539         /*accessRight=*/0x0u,
540         /*methodId=*/   0xb0cc0209u,
541         /*paramSize=*/  0,
542         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
543 #if NV_PRINTF_STRINGS_ALLOWED
544         /*func=*/       "profilerBaseCtrlCmdInternalUnbindPmResources"
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)) profilerBaseCtrlCmdInternalReserveHwpmLegacy_IMPL,
552 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
553         /*flags=*/      0x610u,
554         /*accessRight=*/0x0u,
555         /*methodId=*/   0xb0cc020au,
556         /*paramSize=*/  sizeof(NVB0CC_CTRL_INTERNAL_RESERVE_HWPM_LEGACY_PARAMS),
557         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
558 #if NV_PRINTF_STRINGS_ALLOWED
559         /*func=*/       "profilerBaseCtrlCmdInternalReserveHwpmLegacy"
560 #endif
561     },
562     {               /*  [24] */
563 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
564         /*pFunc=*/      (void (*)(void)) NULL,
565 #else
566         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdRequestCgControls_IMPL,
567 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
568         /*flags=*/      0x210u,
569         /*accessRight=*/0x0u,
570         /*methodId=*/   0xb0cc0301u,
571         /*paramSize=*/  sizeof(NVB0CC_CTRL_POWER_REQUEST_FEATURES_PARAMS),
572         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
573 #if NV_PRINTF_STRINGS_ALLOWED
574         /*func=*/       "profilerBaseCtrlCmdRequestCgControls"
575 #endif
576     },
577     {               /*  [25] */
578 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
579         /*pFunc=*/      (void (*)(void)) NULL,
580 #else
581         /*pFunc=*/      (void (*)(void)) profilerBaseCtrlCmdReleaseCgControls_IMPL,
582 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
583         /*flags=*/      0x210u,
584         /*accessRight=*/0x0u,
585         /*methodId=*/   0xb0cc0302u,
586         /*paramSize=*/  sizeof(NVB0CC_CTRL_POWER_RELEASE_FEATURES_PARAMS),
587         /*pClassInfo=*/ &(__nvoc_class_def_ProfilerBase.classInfo),
588 #if NV_PRINTF_STRINGS_ALLOWED
589         /*func=*/       "profilerBaseCtrlCmdReleaseCgControls"
590 #endif
591     },
592 
593 };
594 
595 const struct NVOC_EXPORT_INFO __nvoc_export_info_ProfilerBase =
596 {
597     /*numEntries=*/     26,
598     /*pExportEntries=*/ __nvoc_exported_method_def_ProfilerBase
599 };
600 
601 void __nvoc_dtor_GpuResource(GpuResource*);
602 void __nvoc_dtor_ProfilerBase(ProfilerBase *pThis) {
603     __nvoc_profilerBaseDestruct(pThis);
604     __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource);
605     PORT_UNREFERENCED_VARIABLE(pThis);
606 }
607 
608 void __nvoc_init_dataField_ProfilerBase(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner) {
609     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
610     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
611     PORT_UNREFERENCED_VARIABLE(pThis);
612     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
613     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
614     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
615 }
616 
617 NV_STATUS __nvoc_ctor_GpuResource(GpuResource* , struct CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
618 NV_STATUS __nvoc_ctor_ProfilerBase(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
619     NV_STATUS status = NV_OK;
620     status = __nvoc_ctor_GpuResource(&pThis->__nvoc_base_GpuResource, arg_pCallContext, arg_pParams);
621     if (status != NV_OK) goto __nvoc_ctor_ProfilerBase_fail_GpuResource;
622     __nvoc_init_dataField_ProfilerBase(pThis, pRmhalspecowner);
623 
624     status = __nvoc_profilerBaseConstruct(pThis, arg_pCallContext, arg_pParams);
625     if (status != NV_OK) goto __nvoc_ctor_ProfilerBase_fail__init;
626     goto __nvoc_ctor_ProfilerBase_exit; // Success
627 
628 __nvoc_ctor_ProfilerBase_fail__init:
629     __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource);
630 __nvoc_ctor_ProfilerBase_fail_GpuResource:
631 __nvoc_ctor_ProfilerBase_exit:
632 
633     return status;
634 }
635 
636 static void __nvoc_init_funcTable_ProfilerBase_1(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner) {
637     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
638     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
639     PORT_UNREFERENCED_VARIABLE(pThis);
640     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
641     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
642     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
643 
644 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2010u)
645     pThis->__profilerBaseCtrlCmdReserveHwpmLegacy__ = &profilerBaseCtrlCmdReserveHwpmLegacy_IMPL;
646 #endif
647 
648 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
649     pThis->__profilerBaseCtrlCmdInternalReserveHwpmLegacy__ = &profilerBaseCtrlCmdInternalReserveHwpmLegacy_IMPL;
650 #endif
651 
652 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
653     pThis->__profilerBaseCtrlCmdReleaseHwpmLegacy__ = &profilerBaseCtrlCmdReleaseHwpmLegacy_IMPL;
654 #endif
655 
656 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
657     pThis->__profilerBaseCtrlCmdReservePmAreaSmpc__ = &profilerBaseCtrlCmdReservePmAreaSmpc_IMPL;
658 #endif
659 
660 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
661     pThis->__profilerBaseCtrlCmdReleasePmAreaSmpc__ = &profilerBaseCtrlCmdReleasePmAreaSmpc_IMPL;
662 #endif
663 
664 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
665     pThis->__profilerBaseCtrlCmdAllocPmaStream__ = &profilerBaseCtrlCmdAllocPmaStream_IMPL;
666 #endif
667 
668 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
669     pThis->__profilerBaseCtrlCmdFreePmaStream__ = &profilerBaseCtrlCmdFreePmaStream_IMPL;
670 #endif
671 
672 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
673     pThis->__profilerBaseCtrlCmdInternalFreePmaStream__ = &profilerBaseCtrlCmdInternalFreePmaStream_IMPL;
674 #endif
675 
676 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
677     pThis->__profilerBaseCtrlCmdInternalGetMaxPmas__ = &profilerBaseCtrlCmdInternalGetMaxPmas_IMPL;
678 #endif
679 
680 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
681     pThis->__profilerBaseCtrlCmdBindPmResources__ = &profilerBaseCtrlCmdBindPmResources_IMPL;
682 #endif
683 
684 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
685     pThis->__profilerBaseCtrlCmdUnbindPmResources__ = &profilerBaseCtrlCmdUnbindPmResources_IMPL;
686 #endif
687 
688 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
689     pThis->__profilerBaseCtrlCmdInternalBindPmResources__ = &profilerBaseCtrlCmdInternalBindPmResources_IMPL;
690 #endif
691 
692 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
693     pThis->__profilerBaseCtrlCmdInternalUnbindPmResources__ = &profilerBaseCtrlCmdInternalUnbindPmResources_IMPL;
694 #endif
695 
696 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
697     pThis->__profilerBaseCtrlCmdPmaStreamUpdateGetPut__ = &profilerBaseCtrlCmdPmaStreamUpdateGetPut_IMPL;
698 #endif
699 
700 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
701     pThis->__profilerBaseCtrlCmdExecRegops__ = &profilerBaseCtrlCmdExecRegops_IMPL;
702 #endif
703 
704 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
705     pThis->__profilerBaseCtrlCmdInternalAllocPmaStream__ = &profilerBaseCtrlCmdInternalAllocPmaStream_IMPL;
706 #endif
707 
708 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x610u)
709     pThis->__profilerBaseCtrlCmdInternalPermissionsInit__ = &profilerBaseCtrlCmdInternalPermissionsInit_IMPL;
710 #endif
711 
712 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
713     pThis->__profilerBaseCtrlCmdReservePmAreaPcSampler__ = &profilerBaseCtrlCmdReservePmAreaPcSampler_IMPL;
714 #endif
715 
716 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
717     pThis->__profilerBaseCtrlCmdReleasePmAreaPcSampler__ = &profilerBaseCtrlCmdReleasePmAreaPcSampler_IMPL;
718 #endif
719 
720 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
721     pThis->__profilerBaseCtrlCmdGetTotalHsCredits__ = &profilerBaseCtrlCmdGetTotalHsCredits_IMPL;
722 #endif
723 
724 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
725     pThis->__profilerBaseCtrlCmdGetHsCredits__ = &profilerBaseCtrlCmdGetHsCredits_IMPL;
726 #endif
727 
728 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
729     pThis->__profilerBaseCtrlCmdSetHsCredits__ = &profilerBaseCtrlCmdSetHsCredits_IMPL;
730 #endif
731 
732 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
733     pThis->__profilerBaseCtrlCmdReserveHes__ = &profilerBaseCtrlCmdReserveHes_IMPL;
734 #endif
735 
736 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
737     pThis->__profilerBaseCtrlCmdReleaseHes__ = &profilerBaseCtrlCmdReleaseHes_IMPL;
738 #endif
739 
740 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
741     pThis->__profilerBaseCtrlCmdRequestCgControls__ = &profilerBaseCtrlCmdRequestCgControls_IMPL;
742 #endif
743 
744 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
745     pThis->__profilerBaseCtrlCmdReleaseCgControls__ = &profilerBaseCtrlCmdReleaseCgControls_IMPL;
746 #endif
747 
748     pThis->__profilerBaseShareCallback__ = &__nvoc_thunk_GpuResource_profilerBaseShareCallback;
749 
750     pThis->__profilerBaseCheckMemInterUnmap__ = &__nvoc_thunk_RmResource_profilerBaseCheckMemInterUnmap;
751 
752     pThis->__profilerBaseMapTo__ = &__nvoc_thunk_RsResource_profilerBaseMapTo;
753 
754     pThis->__profilerBaseGetMapAddrSpace__ = &__nvoc_thunk_GpuResource_profilerBaseGetMapAddrSpace;
755 
756     pThis->__profilerBaseGetRefCount__ = &__nvoc_thunk_RsResource_profilerBaseGetRefCount;
757 
758     pThis->__profilerBaseAddAdditionalDependants__ = &__nvoc_thunk_RsResource_profilerBaseAddAdditionalDependants;
759 
760     pThis->__profilerBaseControl_Prologue__ = &__nvoc_thunk_RmResource_profilerBaseControl_Prologue;
761 
762     pThis->__profilerBaseGetRegBaseOffsetAndSize__ = &__nvoc_thunk_GpuResource_profilerBaseGetRegBaseOffsetAndSize;
763 
764     pThis->__profilerBaseInternalControlForward__ = &__nvoc_thunk_GpuResource_profilerBaseInternalControlForward;
765 
766     pThis->__profilerBaseUnmapFrom__ = &__nvoc_thunk_RsResource_profilerBaseUnmapFrom;
767 
768     pThis->__profilerBaseControl_Epilogue__ = &__nvoc_thunk_RmResource_profilerBaseControl_Epilogue;
769 
770     pThis->__profilerBaseControlLookup__ = &__nvoc_thunk_RsResource_profilerBaseControlLookup;
771 
772     pThis->__profilerBaseGetInternalObjectHandle__ = &__nvoc_thunk_GpuResource_profilerBaseGetInternalObjectHandle;
773 
774     pThis->__profilerBaseControl__ = &__nvoc_thunk_GpuResource_profilerBaseControl;
775 
776     pThis->__profilerBaseUnmap__ = &__nvoc_thunk_GpuResource_profilerBaseUnmap;
777 
778     pThis->__profilerBaseGetMemInterMapParams__ = &__nvoc_thunk_RmResource_profilerBaseGetMemInterMapParams;
779 
780     pThis->__profilerBaseGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_profilerBaseGetMemoryMappingDescriptor;
781 
782     pThis->__profilerBaseControlFilter__ = &__nvoc_thunk_RsResource_profilerBaseControlFilter;
783 
784     pThis->__profilerBaseControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_profilerBaseControlSerialization_Prologue;
785 
786     pThis->__profilerBaseCanCopy__ = &__nvoc_thunk_RsResource_profilerBaseCanCopy;
787 
788     pThis->__profilerBasePreDestruct__ = &__nvoc_thunk_RsResource_profilerBasePreDestruct;
789 
790     pThis->__profilerBaseIsDuplicate__ = &__nvoc_thunk_RsResource_profilerBaseIsDuplicate;
791 
792     pThis->__profilerBaseControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_profilerBaseControlSerialization_Epilogue;
793 
794     pThis->__profilerBaseMap__ = &__nvoc_thunk_GpuResource_profilerBaseMap;
795 
796     pThis->__profilerBaseAccessCallback__ = &__nvoc_thunk_RmResource_profilerBaseAccessCallback;
797 }
798 
799 void __nvoc_init_funcTable_ProfilerBase(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner) {
800     __nvoc_init_funcTable_ProfilerBase_1(pThis, pRmhalspecowner);
801 }
802 
803 void __nvoc_init_GpuResource(GpuResource*);
804 void __nvoc_init_ProfilerBase(ProfilerBase *pThis, RmHalspecOwner *pRmhalspecowner) {
805     pThis->__nvoc_pbase_ProfilerBase = pThis;
806     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
807     pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource;
808     pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
809     pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource;
810     pThis->__nvoc_pbase_GpuResource = &pThis->__nvoc_base_GpuResource;
811     __nvoc_init_GpuResource(&pThis->__nvoc_base_GpuResource);
812     __nvoc_init_funcTable_ProfilerBase(pThis, pRmhalspecowner);
813 }
814 
815 NV_STATUS __nvoc_objCreate_ProfilerBase(ProfilerBase **ppThis, Dynamic *pParent, NvU32 createFlags, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
816     NV_STATUS status;
817     Object *pParentObj;
818     ProfilerBase *pThis;
819     RmHalspecOwner *pRmhalspecowner;
820 
821     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(ProfilerBase), (void**)&pThis, (void**)ppThis);
822     if (status != NV_OK)
823         return status;
824 
825     portMemSet(pThis, 0, sizeof(ProfilerBase));
826 
827     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_ProfilerBase);
828 
829     pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
830 
831     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
832     {
833         pParentObj = dynamicCast(pParent, Object);
834         objAddChild(pParentObj, &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
835     }
836     else
837     {
838         pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
839     }
840 
841     if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
842         pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
843     NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
844 
845     __nvoc_init_ProfilerBase(pThis, pRmhalspecowner);
846     status = __nvoc_ctor_ProfilerBase(pThis, pRmhalspecowner, arg_pCallContext, arg_pParams);
847     if (status != NV_OK) goto __nvoc_objCreate_ProfilerBase_cleanup;
848 
849     *ppThis = pThis;
850 
851     return NV_OK;
852 
853 __nvoc_objCreate_ProfilerBase_cleanup:
854     // do not call destructors here since the constructor already called them
855     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
856         portMemSet(pThis, 0, sizeof(ProfilerBase));
857     else
858         portMemFree(pThis);
859 
860     // coverity[leaked_storage:FALSE]
861     return status;
862 }
863 
864 NV_STATUS __nvoc_objCreateDynamic_ProfilerBase(ProfilerBase **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
865     NV_STATUS status;
866     struct CALL_CONTEXT * arg_pCallContext = va_arg(args, struct CALL_CONTEXT *);
867     struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
868 
869     status = __nvoc_objCreate_ProfilerBase(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
870 
871     return status;
872 }
873 
874 #ifdef DEBUG
875 char __nvoc_class_id_uniqueness_check_0x54d077 = 1;
876 #endif
877 
878 extern const struct NVOC_CLASS_DEF __nvoc_class_def_ProfilerDev;
879 
880 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
881 
882 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RsResource;
883 
884 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResourceCommon;
885 
886 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResource;
887 
888 extern const struct NVOC_CLASS_DEF __nvoc_class_def_GpuResource;
889 
890 extern const struct NVOC_CLASS_DEF __nvoc_class_def_ProfilerBase;
891 
892 void __nvoc_init_ProfilerDev(ProfilerDev*, RmHalspecOwner* );
893 void __nvoc_init_funcTable_ProfilerDev(ProfilerDev*, RmHalspecOwner* );
894 NV_STATUS __nvoc_ctor_ProfilerDev(ProfilerDev*, RmHalspecOwner* , struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
895 void __nvoc_init_dataField_ProfilerDev(ProfilerDev*, RmHalspecOwner* );
896 void __nvoc_dtor_ProfilerDev(ProfilerDev*);
897 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_ProfilerDev;
898 
899 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_ProfilerDev = {
900     /*pClassDef=*/          &__nvoc_class_def_ProfilerDev,
901     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_ProfilerDev,
902     /*offset=*/             0,
903 };
904 
905 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_Object = {
906     /*pClassDef=*/          &__nvoc_class_def_Object,
907     /*dtor=*/               &__nvoc_destructFromBase,
908     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object),
909 };
910 
911 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_RsResource = {
912     /*pClassDef=*/          &__nvoc_class_def_RsResource,
913     /*dtor=*/               &__nvoc_destructFromBase,
914     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource),
915 };
916 
917 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_RmResourceCommon = {
918     /*pClassDef=*/          &__nvoc_class_def_RmResourceCommon,
919     /*dtor=*/               &__nvoc_destructFromBase,
920     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon),
921 };
922 
923 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_RmResource = {
924     /*pClassDef=*/          &__nvoc_class_def_RmResource,
925     /*dtor=*/               &__nvoc_destructFromBase,
926     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource),
927 };
928 
929 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_GpuResource = {
930     /*pClassDef=*/          &__nvoc_class_def_GpuResource,
931     /*dtor=*/               &__nvoc_destructFromBase,
932     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase.__nvoc_base_GpuResource),
933 };
934 
935 static const struct NVOC_RTTI __nvoc_rtti_ProfilerDev_ProfilerBase = {
936     /*pClassDef=*/          &__nvoc_class_def_ProfilerBase,
937     /*dtor=*/               &__nvoc_destructFromBase,
938     /*offset=*/             NV_OFFSETOF(ProfilerDev, __nvoc_base_ProfilerBase),
939 };
940 
941 static const struct NVOC_CASTINFO __nvoc_castinfo_ProfilerDev = {
942     /*numRelatives=*/       7,
943     /*relatives=*/ {
944         &__nvoc_rtti_ProfilerDev_ProfilerDev,
945         &__nvoc_rtti_ProfilerDev_ProfilerBase,
946         &__nvoc_rtti_ProfilerDev_GpuResource,
947         &__nvoc_rtti_ProfilerDev_RmResource,
948         &__nvoc_rtti_ProfilerDev_RmResourceCommon,
949         &__nvoc_rtti_ProfilerDev_RsResource,
950         &__nvoc_rtti_ProfilerDev_Object,
951     },
952 };
953 
954 const struct NVOC_CLASS_DEF __nvoc_class_def_ProfilerDev =
955 {
956     /*classInfo=*/ {
957         /*size=*/               sizeof(ProfilerDev),
958         /*classId=*/            classId(ProfilerDev),
959         /*providerId=*/         &__nvoc_rtti_provider,
960 #if NV_PRINTF_STRINGS_ALLOWED
961         /*name=*/               "ProfilerDev",
962 #endif
963     },
964     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_ProfilerDev,
965     /*pCastInfo=*/          &__nvoc_castinfo_ProfilerDev,
966     /*pExportInfo=*/        &__nvoc_export_info_ProfilerDev
967 };
968 
969 static NvBool __nvoc_thunk_GpuResource_profilerDevShareCallback(struct ProfilerDev *pGpuResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
970     return gpuresShareCallback((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pInvokingClient, pParentRef, pSharePolicy);
971 }
972 
973 static NV_STATUS __nvoc_thunk_RmResource_profilerDevCheckMemInterUnmap(struct ProfilerDev *pRmResource, NvBool bSubdeviceHandleProvided) {
974     return rmresCheckMemInterUnmap((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), bSubdeviceHandleProvided);
975 }
976 
977 static NV_STATUS __nvoc_thunk_RsResource_profilerDevMapTo(struct ProfilerDev *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
978     return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pParams);
979 }
980 
981 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevGetMapAddrSpace(struct ProfilerDev *pGpuResource, struct CALL_CONTEXT *pCallContext, NvU32 mapFlags, NV_ADDRESS_SPACE *pAddrSpace) {
982     return gpuresGetMapAddrSpace((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pCallContext, mapFlags, pAddrSpace);
983 }
984 
985 static NvU32 __nvoc_thunk_RsResource_profilerDevGetRefCount(struct ProfilerDev *pResource) {
986     return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset));
987 }
988 
989 static void __nvoc_thunk_RsResource_profilerDevAddAdditionalDependants(struct RsClient *pClient, struct ProfilerDev *pResource, RsResourceRef *pReference) {
990     resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pReference);
991 }
992 
993 static NV_STATUS __nvoc_thunk_RmResource_profilerDevControl_Prologue(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
994     return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pCallContext, pParams);
995 }
996 
997 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevGetRegBaseOffsetAndSize(struct ProfilerDev *pGpuResource, struct OBJGPU *pGpu, NvU32 *pOffset, NvU32 *pSize) {
998     return gpuresGetRegBaseOffsetAndSize((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pGpu, pOffset, pSize);
999 }
1000 
1001 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevInternalControlForward(struct ProfilerDev *pGpuResource, NvU32 command, void *pParams, NvU32 size) {
1002     return gpuresInternalControlForward((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), command, pParams, size);
1003 }
1004 
1005 static NV_STATUS __nvoc_thunk_RsResource_profilerDevUnmapFrom(struct ProfilerDev *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
1006     return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pParams);
1007 }
1008 
1009 static void __nvoc_thunk_RmResource_profilerDevControl_Epilogue(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1010     rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pCallContext, pParams);
1011 }
1012 
1013 static NV_STATUS __nvoc_thunk_RsResource_profilerDevControlLookup(struct ProfilerDev *pResource, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams, const struct NVOC_EXPORTED_METHOD_DEF **ppEntry) {
1014     return resControlLookup((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pParams, ppEntry);
1015 }
1016 
1017 static NvHandle __nvoc_thunk_GpuResource_profilerDevGetInternalObjectHandle(struct ProfilerDev *pGpuResource) {
1018     return gpuresGetInternalObjectHandle((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset));
1019 }
1020 
1021 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevControl(struct ProfilerDev *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1022     return gpuresControl((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pCallContext, pParams);
1023 }
1024 
1025 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevUnmap(struct ProfilerDev *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RsCpuMapping *pCpuMapping) {
1026     return gpuresUnmap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pCallContext, pCpuMapping);
1027 }
1028 
1029 static NV_STATUS __nvoc_thunk_RmResource_profilerDevGetMemInterMapParams(struct ProfilerDev *pRmResource, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
1030     return rmresGetMemInterMapParams((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pParams);
1031 }
1032 
1033 static NV_STATUS __nvoc_thunk_RmResource_profilerDevGetMemoryMappingDescriptor(struct ProfilerDev *pRmResource, struct MEMORY_DESCRIPTOR **ppMemDesc) {
1034     return rmresGetMemoryMappingDescriptor((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), ppMemDesc);
1035 }
1036 
1037 static NV_STATUS __nvoc_thunk_RsResource_profilerDevControlFilter(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1038     return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), pCallContext, pParams);
1039 }
1040 
1041 static NV_STATUS __nvoc_thunk_RmResource_profilerDevControlSerialization_Prologue(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1042     return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pCallContext, pParams);
1043 }
1044 
1045 static NvBool __nvoc_thunk_RsResource_profilerDevCanCopy(struct ProfilerDev *pResource) {
1046     return resCanCopy((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset));
1047 }
1048 
1049 static void __nvoc_thunk_RsResource_profilerDevPreDestruct(struct ProfilerDev *pResource) {
1050     resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset));
1051 }
1052 
1053 static NV_STATUS __nvoc_thunk_RsResource_profilerDevIsDuplicate(struct ProfilerDev *pResource, NvHandle hMemory, NvBool *pDuplicate) {
1054     return resIsDuplicate((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RsResource.offset), hMemory, pDuplicate);
1055 }
1056 
1057 static void __nvoc_thunk_RmResource_profilerDevControlSerialization_Epilogue(struct ProfilerDev *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1058     rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pCallContext, pParams);
1059 }
1060 
1061 static NV_STATUS __nvoc_thunk_GpuResource_profilerDevMap(struct ProfilerDev *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_CPU_MAP_PARAMS *pParams, struct RsCpuMapping *pCpuMapping) {
1062     return gpuresMap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_ProfilerDev_GpuResource.offset), pCallContext, pParams, pCpuMapping);
1063 }
1064 
1065 static NvBool __nvoc_thunk_RmResource_profilerDevAccessCallback(struct ProfilerDev *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
1066     return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_ProfilerDev_RmResource.offset), pInvokingClient, pAllocParams, accessRight);
1067 }
1068 
1069 const struct NVOC_EXPORT_INFO __nvoc_export_info_ProfilerDev =
1070 {
1071     /*numEntries=*/     0,
1072     /*pExportEntries=*/  0
1073 };
1074 
1075 void __nvoc_dtor_ProfilerBase(ProfilerBase*);
1076 void __nvoc_dtor_ProfilerDev(ProfilerDev *pThis) {
1077     __nvoc_profilerDevDestruct(pThis);
1078     __nvoc_dtor_ProfilerBase(&pThis->__nvoc_base_ProfilerBase);
1079     PORT_UNREFERENCED_VARIABLE(pThis);
1080 }
1081 
1082 void __nvoc_init_dataField_ProfilerDev(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner) {
1083     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
1084     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
1085     PORT_UNREFERENCED_VARIABLE(pThis);
1086     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
1087     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
1088     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
1089 }
1090 
1091 NV_STATUS __nvoc_ctor_ProfilerBase(ProfilerBase* , RmHalspecOwner* , struct CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
1092 NV_STATUS __nvoc_ctor_ProfilerDev(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
1093     NV_STATUS status = NV_OK;
1094     status = __nvoc_ctor_ProfilerBase(&pThis->__nvoc_base_ProfilerBase, pRmhalspecowner, arg_pCallContext, arg_pParams);
1095     if (status != NV_OK) goto __nvoc_ctor_ProfilerDev_fail_ProfilerBase;
1096     __nvoc_init_dataField_ProfilerDev(pThis, pRmhalspecowner);
1097 
1098     status = __nvoc_profilerDevConstruct(pThis, arg_pCallContext, arg_pParams);
1099     if (status != NV_OK) goto __nvoc_ctor_ProfilerDev_fail__init;
1100     goto __nvoc_ctor_ProfilerDev_exit; // Success
1101 
1102 __nvoc_ctor_ProfilerDev_fail__init:
1103     __nvoc_dtor_ProfilerBase(&pThis->__nvoc_base_ProfilerBase);
1104 __nvoc_ctor_ProfilerDev_fail_ProfilerBase:
1105 __nvoc_ctor_ProfilerDev_exit:
1106 
1107     return status;
1108 }
1109 
1110 static void __nvoc_init_funcTable_ProfilerDev_1(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner) {
1111     RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
1112     const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
1113     PORT_UNREFERENCED_VARIABLE(pThis);
1114     PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
1115     PORT_UNREFERENCED_VARIABLE(rmVariantHal);
1116     PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
1117 
1118     pThis->__profilerDevShareCallback__ = &__nvoc_thunk_GpuResource_profilerDevShareCallback;
1119 
1120     pThis->__profilerDevCheckMemInterUnmap__ = &__nvoc_thunk_RmResource_profilerDevCheckMemInterUnmap;
1121 
1122     pThis->__profilerDevMapTo__ = &__nvoc_thunk_RsResource_profilerDevMapTo;
1123 
1124     pThis->__profilerDevGetMapAddrSpace__ = &__nvoc_thunk_GpuResource_profilerDevGetMapAddrSpace;
1125 
1126     pThis->__profilerDevGetRefCount__ = &__nvoc_thunk_RsResource_profilerDevGetRefCount;
1127 
1128     pThis->__profilerDevAddAdditionalDependants__ = &__nvoc_thunk_RsResource_profilerDevAddAdditionalDependants;
1129 
1130     pThis->__profilerDevControl_Prologue__ = &__nvoc_thunk_RmResource_profilerDevControl_Prologue;
1131 
1132     pThis->__profilerDevGetRegBaseOffsetAndSize__ = &__nvoc_thunk_GpuResource_profilerDevGetRegBaseOffsetAndSize;
1133 
1134     pThis->__profilerDevInternalControlForward__ = &__nvoc_thunk_GpuResource_profilerDevInternalControlForward;
1135 
1136     pThis->__profilerDevUnmapFrom__ = &__nvoc_thunk_RsResource_profilerDevUnmapFrom;
1137 
1138     pThis->__profilerDevControl_Epilogue__ = &__nvoc_thunk_RmResource_profilerDevControl_Epilogue;
1139 
1140     pThis->__profilerDevControlLookup__ = &__nvoc_thunk_RsResource_profilerDevControlLookup;
1141 
1142     pThis->__profilerDevGetInternalObjectHandle__ = &__nvoc_thunk_GpuResource_profilerDevGetInternalObjectHandle;
1143 
1144     pThis->__profilerDevControl__ = &__nvoc_thunk_GpuResource_profilerDevControl;
1145 
1146     pThis->__profilerDevUnmap__ = &__nvoc_thunk_GpuResource_profilerDevUnmap;
1147 
1148     pThis->__profilerDevGetMemInterMapParams__ = &__nvoc_thunk_RmResource_profilerDevGetMemInterMapParams;
1149 
1150     pThis->__profilerDevGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_profilerDevGetMemoryMappingDescriptor;
1151 
1152     pThis->__profilerDevControlFilter__ = &__nvoc_thunk_RsResource_profilerDevControlFilter;
1153 
1154     pThis->__profilerDevControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_profilerDevControlSerialization_Prologue;
1155 
1156     pThis->__profilerDevCanCopy__ = &__nvoc_thunk_RsResource_profilerDevCanCopy;
1157 
1158     pThis->__profilerDevPreDestruct__ = &__nvoc_thunk_RsResource_profilerDevPreDestruct;
1159 
1160     pThis->__profilerDevIsDuplicate__ = &__nvoc_thunk_RsResource_profilerDevIsDuplicate;
1161 
1162     pThis->__profilerDevControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_profilerDevControlSerialization_Epilogue;
1163 
1164     pThis->__profilerDevMap__ = &__nvoc_thunk_GpuResource_profilerDevMap;
1165 
1166     pThis->__profilerDevAccessCallback__ = &__nvoc_thunk_RmResource_profilerDevAccessCallback;
1167 }
1168 
1169 void __nvoc_init_funcTable_ProfilerDev(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner) {
1170     __nvoc_init_funcTable_ProfilerDev_1(pThis, pRmhalspecowner);
1171 }
1172 
1173 void __nvoc_init_ProfilerBase(ProfilerBase*, RmHalspecOwner* );
1174 void __nvoc_init_ProfilerDev(ProfilerDev *pThis, RmHalspecOwner *pRmhalspecowner) {
1175     pThis->__nvoc_pbase_ProfilerDev = pThis;
1176     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
1177     pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource;
1178     pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
1179     pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource;
1180     pThis->__nvoc_pbase_GpuResource = &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource;
1181     pThis->__nvoc_pbase_ProfilerBase = &pThis->__nvoc_base_ProfilerBase;
1182     __nvoc_init_ProfilerBase(&pThis->__nvoc_base_ProfilerBase, pRmhalspecowner);
1183     __nvoc_init_funcTable_ProfilerDev(pThis, pRmhalspecowner);
1184 }
1185 
1186 NV_STATUS __nvoc_objCreate_ProfilerDev(ProfilerDev **ppThis, Dynamic *pParent, NvU32 createFlags, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
1187     NV_STATUS status;
1188     Object *pParentObj;
1189     ProfilerDev *pThis;
1190     RmHalspecOwner *pRmhalspecowner;
1191 
1192     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(ProfilerDev), (void**)&pThis, (void**)ppThis);
1193     if (status != NV_OK)
1194         return status;
1195 
1196     portMemSet(pThis, 0, sizeof(ProfilerDev));
1197 
1198     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_ProfilerDev);
1199 
1200     pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
1201 
1202     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
1203     {
1204         pParentObj = dynamicCast(pParent, Object);
1205         objAddChild(pParentObj, &pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
1206     }
1207     else
1208     {
1209         pThis->__nvoc_base_ProfilerBase.__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
1210     }
1211 
1212     if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
1213         pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
1214     NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
1215 
1216     __nvoc_init_ProfilerDev(pThis, pRmhalspecowner);
1217     status = __nvoc_ctor_ProfilerDev(pThis, pRmhalspecowner, arg_pCallContext, arg_pParams);
1218     if (status != NV_OK) goto __nvoc_objCreate_ProfilerDev_cleanup;
1219 
1220     *ppThis = pThis;
1221 
1222     return NV_OK;
1223 
1224 __nvoc_objCreate_ProfilerDev_cleanup:
1225     // do not call destructors here since the constructor already called them
1226     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
1227         portMemSet(pThis, 0, sizeof(ProfilerDev));
1228     else
1229         portMemFree(pThis);
1230 
1231     // coverity[leaked_storage:FALSE]
1232     return status;
1233 }
1234 
1235 NV_STATUS __nvoc_objCreateDynamic_ProfilerDev(ProfilerDev **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
1236     NV_STATUS status;
1237     struct CALL_CONTEXT * arg_pCallContext = va_arg(args, struct CALL_CONTEXT *);
1238     struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
1239 
1240     status = __nvoc_objCreate_ProfilerDev(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
1241 
1242     return status;
1243 }
1244 
1245