1 #define NVOC_KERNEL_CHANNEL_GROUP_API_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_kernel_channel_group_api_nvoc.h"
9 
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x2b5b80 = 1;
12 #endif
13 
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelChannelGroupApi;
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_KernelChannelGroupApi(KernelChannelGroupApi*);
27 void __nvoc_init_funcTable_KernelChannelGroupApi(KernelChannelGroupApi*);
28 NV_STATUS __nvoc_ctor_KernelChannelGroupApi(KernelChannelGroupApi*, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
29 void __nvoc_init_dataField_KernelChannelGroupApi(KernelChannelGroupApi*);
30 void __nvoc_dtor_KernelChannelGroupApi(KernelChannelGroupApi*);
31 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelChannelGroupApi;
32 
33 static const struct NVOC_RTTI __nvoc_rtti_KernelChannelGroupApi_KernelChannelGroupApi = {
34     /*pClassDef=*/          &__nvoc_class_def_KernelChannelGroupApi,
35     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_KernelChannelGroupApi,
36     /*offset=*/             0,
37 };
38 
39 static const struct NVOC_RTTI __nvoc_rtti_KernelChannelGroupApi_Object = {
40     /*pClassDef=*/          &__nvoc_class_def_Object,
41     /*dtor=*/               &__nvoc_destructFromBase,
42     /*offset=*/             NV_OFFSETOF(KernelChannelGroupApi, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object),
43 };
44 
45 static const struct NVOC_RTTI __nvoc_rtti_KernelChannelGroupApi_RsResource = {
46     /*pClassDef=*/          &__nvoc_class_def_RsResource,
47     /*dtor=*/               &__nvoc_destructFromBase,
48     /*offset=*/             NV_OFFSETOF(KernelChannelGroupApi, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource),
49 };
50 
51 static const struct NVOC_RTTI __nvoc_rtti_KernelChannelGroupApi_RmResourceCommon = {
52     /*pClassDef=*/          &__nvoc_class_def_RmResourceCommon,
53     /*dtor=*/               &__nvoc_destructFromBase,
54     /*offset=*/             NV_OFFSETOF(KernelChannelGroupApi, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon),
55 };
56 
57 static const struct NVOC_RTTI __nvoc_rtti_KernelChannelGroupApi_RmResource = {
58     /*pClassDef=*/          &__nvoc_class_def_RmResource,
59     /*dtor=*/               &__nvoc_destructFromBase,
60     /*offset=*/             NV_OFFSETOF(KernelChannelGroupApi, __nvoc_base_GpuResource.__nvoc_base_RmResource),
61 };
62 
63 static const struct NVOC_RTTI __nvoc_rtti_KernelChannelGroupApi_GpuResource = {
64     /*pClassDef=*/          &__nvoc_class_def_GpuResource,
65     /*dtor=*/               &__nvoc_destructFromBase,
66     /*offset=*/             NV_OFFSETOF(KernelChannelGroupApi, __nvoc_base_GpuResource),
67 };
68 
69 static const struct NVOC_CASTINFO __nvoc_castinfo_KernelChannelGroupApi = {
70     /*numRelatives=*/       6,
71     /*relatives=*/ {
72         &__nvoc_rtti_KernelChannelGroupApi_KernelChannelGroupApi,
73         &__nvoc_rtti_KernelChannelGroupApi_GpuResource,
74         &__nvoc_rtti_KernelChannelGroupApi_RmResource,
75         &__nvoc_rtti_KernelChannelGroupApi_RmResourceCommon,
76         &__nvoc_rtti_KernelChannelGroupApi_RsResource,
77         &__nvoc_rtti_KernelChannelGroupApi_Object,
78     },
79 };
80 
81 const struct NVOC_CLASS_DEF __nvoc_class_def_KernelChannelGroupApi =
82 {
83     /*classInfo=*/ {
84         /*size=*/               sizeof(KernelChannelGroupApi),
85         /*classId=*/            classId(KernelChannelGroupApi),
86         /*providerId=*/         &__nvoc_rtti_provider,
87 #if NV_PRINTF_STRINGS_ALLOWED
88         /*name=*/               "KernelChannelGroupApi",
89 #endif
90     },
91     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_KernelChannelGroupApi,
92     /*pCastInfo=*/          &__nvoc_castinfo_KernelChannelGroupApi,
93     /*pExportInfo=*/        &__nvoc_export_info_KernelChannelGroupApi
94 };
95 
96 static NvBool __nvoc_thunk_KernelChannelGroupApi_resCanCopy(struct RsResource *pKernelChannelGroupApi) {
97     return kchangrpapiCanCopy((struct KernelChannelGroupApi *)(((unsigned char *)pKernelChannelGroupApi) - __nvoc_rtti_KernelChannelGroupApi_RsResource.offset));
98 }
99 
100 static NV_STATUS __nvoc_thunk_KernelChannelGroupApi_gpuresControl(struct GpuResource *pKernelChannelGroupApi, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
101     return kchangrpapiControl((struct KernelChannelGroupApi *)(((unsigned char *)pKernelChannelGroupApi) - __nvoc_rtti_KernelChannelGroupApi_GpuResource.offset), pCallContext, pParams);
102 }
103 
104 static NvBool __nvoc_thunk_GpuResource_kchangrpapiShareCallback(struct KernelChannelGroupApi *pGpuResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
105     return gpuresShareCallback((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_KernelChannelGroupApi_GpuResource.offset), pInvokingClient, pParentRef, pSharePolicy);
106 }
107 
108 static NV_STATUS __nvoc_thunk_RmResource_kchangrpapiCheckMemInterUnmap(struct KernelChannelGroupApi *pRmResource, NvBool bSubdeviceHandleProvided) {
109     return rmresCheckMemInterUnmap((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_KernelChannelGroupApi_RmResource.offset), bSubdeviceHandleProvided);
110 }
111 
112 static NV_STATUS __nvoc_thunk_RsResource_kchangrpapiMapTo(struct KernelChannelGroupApi *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
113     return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RsResource.offset), pParams);
114 }
115 
116 static NV_STATUS __nvoc_thunk_GpuResource_kchangrpapiGetMapAddrSpace(struct KernelChannelGroupApi *pGpuResource, struct CALL_CONTEXT *pCallContext, NvU32 mapFlags, NV_ADDRESS_SPACE *pAddrSpace) {
117     return gpuresGetMapAddrSpace((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_KernelChannelGroupApi_GpuResource.offset), pCallContext, mapFlags, pAddrSpace);
118 }
119 
120 static NvU32 __nvoc_thunk_RsResource_kchangrpapiGetRefCount(struct KernelChannelGroupApi *pResource) {
121     return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RsResource.offset));
122 }
123 
124 static void __nvoc_thunk_RsResource_kchangrpapiAddAdditionalDependants(struct RsClient *pClient, struct KernelChannelGroupApi *pResource, RsResourceRef *pReference) {
125     resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RsResource.offset), pReference);
126 }
127 
128 static NV_STATUS __nvoc_thunk_RmResource_kchangrpapiControl_Prologue(struct KernelChannelGroupApi *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
129     return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RmResource.offset), pCallContext, pParams);
130 }
131 
132 static NV_STATUS __nvoc_thunk_GpuResource_kchangrpapiGetRegBaseOffsetAndSize(struct KernelChannelGroupApi *pGpuResource, struct OBJGPU *pGpu, NvU32 *pOffset, NvU32 *pSize) {
133     return gpuresGetRegBaseOffsetAndSize((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_KernelChannelGroupApi_GpuResource.offset), pGpu, pOffset, pSize);
134 }
135 
136 static NV_STATUS __nvoc_thunk_GpuResource_kchangrpapiInternalControlForward(struct KernelChannelGroupApi *pGpuResource, NvU32 command, void *pParams, NvU32 size) {
137     return gpuresInternalControlForward((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_KernelChannelGroupApi_GpuResource.offset), command, pParams, size);
138 }
139 
140 static NV_STATUS __nvoc_thunk_RsResource_kchangrpapiUnmapFrom(struct KernelChannelGroupApi *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
141     return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RsResource.offset), pParams);
142 }
143 
144 static void __nvoc_thunk_RmResource_kchangrpapiControl_Epilogue(struct KernelChannelGroupApi *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
145     rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RmResource.offset), pCallContext, pParams);
146 }
147 
148 static NV_STATUS __nvoc_thunk_RsResource_kchangrpapiControlLookup(struct KernelChannelGroupApi *pResource, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams, const struct NVOC_EXPORTED_METHOD_DEF **ppEntry) {
149     return resControlLookup((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RsResource.offset), pParams, ppEntry);
150 }
151 
152 static NvHandle __nvoc_thunk_GpuResource_kchangrpapiGetInternalObjectHandle(struct KernelChannelGroupApi *pGpuResource) {
153     return gpuresGetInternalObjectHandle((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_KernelChannelGroupApi_GpuResource.offset));
154 }
155 
156 static NV_STATUS __nvoc_thunk_GpuResource_kchangrpapiUnmap(struct KernelChannelGroupApi *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RsCpuMapping *pCpuMapping) {
157     return gpuresUnmap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_KernelChannelGroupApi_GpuResource.offset), pCallContext, pCpuMapping);
158 }
159 
160 static NV_STATUS __nvoc_thunk_RmResource_kchangrpapiGetMemInterMapParams(struct KernelChannelGroupApi *pRmResource, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
161     return rmresGetMemInterMapParams((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_KernelChannelGroupApi_RmResource.offset), pParams);
162 }
163 
164 static NV_STATUS __nvoc_thunk_RmResource_kchangrpapiGetMemoryMappingDescriptor(struct KernelChannelGroupApi *pRmResource, struct MEMORY_DESCRIPTOR **ppMemDesc) {
165     return rmresGetMemoryMappingDescriptor((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_KernelChannelGroupApi_RmResource.offset), ppMemDesc);
166 }
167 
168 static NV_STATUS __nvoc_thunk_RsResource_kchangrpapiControlFilter(struct KernelChannelGroupApi *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
169     return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RsResource.offset), pCallContext, pParams);
170 }
171 
172 static NV_STATUS __nvoc_thunk_RmResource_kchangrpapiControlSerialization_Prologue(struct KernelChannelGroupApi *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
173     return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RmResource.offset), pCallContext, pParams);
174 }
175 
176 static void __nvoc_thunk_RsResource_kchangrpapiPreDestruct(struct KernelChannelGroupApi *pResource) {
177     resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RsResource.offset));
178 }
179 
180 static NV_STATUS __nvoc_thunk_RsResource_kchangrpapiIsDuplicate(struct KernelChannelGroupApi *pResource, NvHandle hMemory, NvBool *pDuplicate) {
181     return resIsDuplicate((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RsResource.offset), hMemory, pDuplicate);
182 }
183 
184 static void __nvoc_thunk_RmResource_kchangrpapiControlSerialization_Epilogue(struct KernelChannelGroupApi *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
185     rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_RmResource.offset), pCallContext, pParams);
186 }
187 
188 static NV_STATUS __nvoc_thunk_GpuResource_kchangrpapiMap(struct KernelChannelGroupApi *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_CPU_MAP_PARAMS *pParams, struct RsCpuMapping *pCpuMapping) {
189     return gpuresMap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_KernelChannelGroupApi_GpuResource.offset), pCallContext, pParams, pCpuMapping);
190 }
191 
192 static NvBool __nvoc_thunk_RmResource_kchangrpapiAccessCallback(struct KernelChannelGroupApi *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
193     return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_KernelChannelGroupApi_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_KernelChannelGroupApi[] =
201 {
202     {               /*  [0] */
203 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
204         /*pFunc=*/      (void (*)(void)) NULL,
205 #else
206         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlSetTpcPartitionMode_a094e1,
207 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
208         /*flags=*/      0x10u,
209         /*accessRight=*/0x0u,
210         /*methodId=*/   0x900101u,
211         /*paramSize=*/  sizeof(NV0090_CTRL_TPC_PARTITION_MODE_PARAMS),
212         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
213 #if NV_PRINTF_STRINGS_ALLOWED
214         /*func=*/       "kchangrpapiCtrlSetTpcPartitionMode"
215 #endif
216     },
217     {               /*  [1] */
218 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
219         /*pFunc=*/      (void (*)(void)) NULL,
220 #else
221         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlGetTpcPartitionMode_a094e1,
222 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
223         /*flags=*/      0x10u,
224         /*accessRight=*/0x0u,
225         /*methodId=*/   0x900103u,
226         /*paramSize=*/  sizeof(NV0090_CTRL_TPC_PARTITION_MODE_PARAMS),
227         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
228 #if NV_PRINTF_STRINGS_ALLOWED
229         /*func=*/       "kchangrpapiCtrlGetTpcPartitionMode"
230 #endif
231     },
232     {               /*  [2] */
233 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
234         /*pFunc=*/      (void (*)(void)) NULL,
235 #else
236         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlGetMMUDebugMode_a094e1,
237 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
238         /*flags=*/      0x10u,
239         /*accessRight=*/0x0u,
240         /*methodId=*/   0x900105u,
241         /*paramSize=*/  sizeof(NV0090_CTRL_GET_MMU_DEBUG_MODE_PARAMS),
242         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
243 #if NV_PRINTF_STRINGS_ALLOWED
244         /*func=*/       "kchangrpapiCtrlGetMMUDebugMode"
245 #endif
246     },
247     {               /*  [3] */
248 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
249         /*pFunc=*/      (void (*)(void)) NULL,
250 #else
251         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlProgramVidmemPromote_a094e1,
252 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
253         /*flags=*/      0x10u,
254         /*accessRight=*/0x0u,
255         /*methodId=*/   0x900107u,
256         /*paramSize=*/  sizeof(NV0090_CTRL_PROGRAM_VIDMEM_PROMOTE_PARAMS),
257         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
258 #if NV_PRINTF_STRINGS_ALLOWED
259         /*func=*/       "kchangrpapiCtrlProgramVidmemPromote"
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)) kchangrpapiCtrlCmdGpFifoSchedule_IMPL,
267 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
268         /*flags=*/      0x10u,
269         /*accessRight=*/0x0u,
270         /*methodId=*/   0xa06c0101u,
271         /*paramSize=*/  sizeof(NVA06C_CTRL_GPFIFO_SCHEDULE_PARAMS),
272         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
273 #if NV_PRINTF_STRINGS_ALLOWED
274         /*func=*/       "kchangrpapiCtrlCmdGpFifoSchedule"
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)) kchangrpapiCtrlCmdBind_IMPL,
282 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
283         /*flags=*/      0x10u,
284         /*accessRight=*/0x0u,
285         /*methodId=*/   0xa06c0102u,
286         /*paramSize=*/  sizeof(NVA06C_CTRL_BIND_PARAMS),
287         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
288 #if NV_PRINTF_STRINGS_ALLOWED
289         /*func=*/       "kchangrpapiCtrlCmdBind"
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)) kchangrpapiCtrlCmdSetTimeslice_IMPL,
297 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
298         /*flags=*/      0x10u,
299         /*accessRight=*/0x0u,
300         /*methodId=*/   0xa06c0103u,
301         /*paramSize=*/  sizeof(NVA06C_CTRL_TIMESLICE_PARAMS),
302         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
303 #if NV_PRINTF_STRINGS_ALLOWED
304         /*func=*/       "kchangrpapiCtrlCmdSetTimeslice"
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)) kchangrpapiCtrlCmdGetTimeslice_IMPL,
312 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
313         /*flags=*/      0x10u,
314         /*accessRight=*/0x0u,
315         /*methodId=*/   0xa06c0104u,
316         /*paramSize=*/  sizeof(NVA06C_CTRL_TIMESLICE_PARAMS),
317         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
318 #if NV_PRINTF_STRINGS_ALLOWED
319         /*func=*/       "kchangrpapiCtrlCmdGetTimeslice"
320 #endif
321     },
322     {               /*  [8] */
323 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
324         /*pFunc=*/      (void (*)(void)) NULL,
325 #else
326         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlCmdPreempt_IMPL,
327 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
328         /*flags=*/      0x2210u,
329         /*accessRight=*/0x0u,
330         /*methodId=*/   0xa06c0105u,
331         /*paramSize=*/  sizeof(NVA06C_CTRL_PREEMPT_PARAMS),
332         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
333 #if NV_PRINTF_STRINGS_ALLOWED
334         /*func=*/       "kchangrpapiCtrlCmdPreempt"
335 #endif
336     },
337     {               /*  [9] */
338 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
339         /*pFunc=*/      (void (*)(void)) NULL,
340 #else
341         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlCmdGetInfo_IMPL,
342 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
343         /*flags=*/      0x10u,
344         /*accessRight=*/0x0u,
345         /*methodId=*/   0xa06c0106u,
346         /*paramSize=*/  sizeof(NVA06C_CTRL_GET_INFO_PARAMS),
347         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
348 #if NV_PRINTF_STRINGS_ALLOWED
349         /*func=*/       "kchangrpapiCtrlCmdGetInfo"
350 #endif
351     },
352     {               /*  [10] */
353 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x110u)
354         /*pFunc=*/      (void (*)(void)) NULL,
355 #else
356         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlCmdSetInterleaveLevel_IMPL,
357 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x110u)
358         /*flags=*/      0x110u,
359         /*accessRight=*/0x2u,
360         /*methodId=*/   0xa06c0107u,
361         /*paramSize=*/  sizeof(NVA06C_CTRL_INTERLEAVE_LEVEL_PARAMS),
362         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
363 #if NV_PRINTF_STRINGS_ALLOWED
364         /*func=*/       "kchangrpapiCtrlCmdSetInterleaveLevel"
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)) kchangrpapiCtrlCmdProgramVidmemPromote_IMPL,
372 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
373         /*flags=*/      0x2210u,
374         /*accessRight=*/0x0u,
375         /*methodId=*/   0xa06c0109u,
376         /*paramSize=*/  sizeof(NVA06C_CTRL_PROGRAM_VIDMEM_PROMOTE_PARAMS),
377         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
378 #if NV_PRINTF_STRINGS_ALLOWED
379         /*func=*/       "kchangrpapiCtrlCmdProgramVidmemPromote"
380 #endif
381     },
382     {               /*  [12] */
383 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x142200u)
384         /*pFunc=*/      (void (*)(void)) NULL,
385 #else
386         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlCmdInternalPromoteFaultMethodBuffers_IMPL,
387 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x142200u)
388         /*flags=*/      0x142200u,
389         /*accessRight=*/0x0u,
390         /*methodId=*/   0xa06c010au,
391         /*paramSize=*/  sizeof(NVA06C_CTRL_INTERNAL_PROMOTE_FAULT_METHOD_BUFFERS_PARAMS),
392         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
393 #if NV_PRINTF_STRINGS_ALLOWED
394         /*func=*/       "kchangrpapiCtrlCmdInternalPromoteFaultMethodBuffers"
395 #endif
396     },
397     {               /*  [13] */
398 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
399         /*pFunc=*/      (void (*)(void)) NULL,
400 #else
401         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlCmdMakeRealtime_IMPL,
402 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
403         /*flags=*/      0x210u,
404         /*accessRight=*/0x2u,
405         /*methodId=*/   0xa06c0110u,
406         /*paramSize=*/  sizeof(NVA06C_CTRL_MAKE_REALTIME_PARAMS),
407         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
408 #if NV_PRINTF_STRINGS_ALLOWED
409         /*func=*/       "kchangrpapiCtrlCmdMakeRealtime"
410 #endif
411     },
412     {               /*  [14] */
413 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2610u)
414         /*pFunc=*/      (void (*)(void)) NULL,
415 #else
416         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlCmdInternalGpFifoSchedule_IMPL,
417 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2610u)
418         /*flags=*/      0x2610u,
419         /*accessRight=*/0x0u,
420         /*methodId=*/   0xa06c0201u,
421         /*paramSize=*/  sizeof(NVA06C_CTRL_GPFIFO_SCHEDULE_PARAMS),
422         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
423 #if NV_PRINTF_STRINGS_ALLOWED
424         /*func=*/       "kchangrpapiCtrlCmdInternalGpFifoSchedule"
425 #endif
426     },
427     {               /*  [15] */
428 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2610u)
429         /*pFunc=*/      (void (*)(void)) NULL,
430 #else
431         /*pFunc=*/      (void (*)(void)) kchangrpapiCtrlCmdInternalSetTimeslice_IMPL,
432 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2610u)
433         /*flags=*/      0x2610u,
434         /*accessRight=*/0x0u,
435         /*methodId=*/   0xa06c0202u,
436         /*paramSize=*/  sizeof(NVA06C_CTRL_TIMESLICE_PARAMS),
437         /*pClassInfo=*/ &(__nvoc_class_def_KernelChannelGroupApi.classInfo),
438 #if NV_PRINTF_STRINGS_ALLOWED
439         /*func=*/       "kchangrpapiCtrlCmdInternalSetTimeslice"
440 #endif
441     },
442 
443 };
444 
445 const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelChannelGroupApi =
446 {
447     /*numEntries=*/     16,
448     /*pExportEntries=*/ __nvoc_exported_method_def_KernelChannelGroupApi
449 };
450 
451 void __nvoc_dtor_GpuResource(GpuResource*);
452 void __nvoc_dtor_KernelChannelGroupApi(KernelChannelGroupApi *pThis) {
453     __nvoc_kchangrpapiDestruct(pThis);
454     __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource);
455     PORT_UNREFERENCED_VARIABLE(pThis);
456 }
457 
458 void __nvoc_init_dataField_KernelChannelGroupApi(KernelChannelGroupApi *pThis) {
459     PORT_UNREFERENCED_VARIABLE(pThis);
460 }
461 
462 NV_STATUS __nvoc_ctor_GpuResource(GpuResource* , struct CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
463 NV_STATUS __nvoc_ctor_KernelChannelGroupApi(KernelChannelGroupApi *pThis, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
464     NV_STATUS status = NV_OK;
465     status = __nvoc_ctor_GpuResource(&pThis->__nvoc_base_GpuResource, arg_pCallContext, arg_pParams);
466     if (status != NV_OK) goto __nvoc_ctor_KernelChannelGroupApi_fail_GpuResource;
467     __nvoc_init_dataField_KernelChannelGroupApi(pThis);
468 
469     status = __nvoc_kchangrpapiConstruct(pThis, arg_pCallContext, arg_pParams);
470     if (status != NV_OK) goto __nvoc_ctor_KernelChannelGroupApi_fail__init;
471     goto __nvoc_ctor_KernelChannelGroupApi_exit; // Success
472 
473 __nvoc_ctor_KernelChannelGroupApi_fail__init:
474     __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource);
475 __nvoc_ctor_KernelChannelGroupApi_fail_GpuResource:
476 __nvoc_ctor_KernelChannelGroupApi_exit:
477 
478     return status;
479 }
480 
481 static void __nvoc_init_funcTable_KernelChannelGroupApi_1(KernelChannelGroupApi *pThis) {
482     PORT_UNREFERENCED_VARIABLE(pThis);
483 
484     pThis->__kchangrpapiCanCopy__ = &kchangrpapiCanCopy_IMPL;
485 
486     pThis->__kchangrpapiControl__ = &kchangrpapiControl_IMPL;
487 
488     pThis->__kchangrpapiSetLegacyMode__ = &kchangrpapiSetLegacyMode_IMPL;
489 
490 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
491     pThis->__kchangrpapiCtrlCmdGpFifoSchedule__ = &kchangrpapiCtrlCmdGpFifoSchedule_IMPL;
492 #endif
493 
494 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
495     pThis->__kchangrpapiCtrlCmdBind__ = &kchangrpapiCtrlCmdBind_IMPL;
496 #endif
497 
498 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
499     pThis->__kchangrpapiCtrlCmdSetTimeslice__ = &kchangrpapiCtrlCmdSetTimeslice_IMPL;
500 #endif
501 
502 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
503     pThis->__kchangrpapiCtrlCmdGetTimeslice__ = &kchangrpapiCtrlCmdGetTimeslice_IMPL;
504 #endif
505 
506 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
507     pThis->__kchangrpapiCtrlCmdPreempt__ = &kchangrpapiCtrlCmdPreempt_IMPL;
508 #endif
509 
510 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
511     pThis->__kchangrpapiCtrlCmdGetInfo__ = &kchangrpapiCtrlCmdGetInfo_IMPL;
512 #endif
513 
514 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x110u)
515     pThis->__kchangrpapiCtrlCmdSetInterleaveLevel__ = &kchangrpapiCtrlCmdSetInterleaveLevel_IMPL;
516 #endif
517 
518 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
519     pThis->__kchangrpapiCtrlCmdProgramVidmemPromote__ = &kchangrpapiCtrlCmdProgramVidmemPromote_IMPL;
520 #endif
521 
522 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x142200u)
523     pThis->__kchangrpapiCtrlCmdInternalPromoteFaultMethodBuffers__ = &kchangrpapiCtrlCmdInternalPromoteFaultMethodBuffers_IMPL;
524 #endif
525 
526 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
527     pThis->__kchangrpapiCtrlCmdMakeRealtime__ = &kchangrpapiCtrlCmdMakeRealtime_IMPL;
528 #endif
529 
530 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2610u)
531     pThis->__kchangrpapiCtrlCmdInternalGpFifoSchedule__ = &kchangrpapiCtrlCmdInternalGpFifoSchedule_IMPL;
532 #endif
533 
534 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2610u)
535     pThis->__kchangrpapiCtrlCmdInternalSetTimeslice__ = &kchangrpapiCtrlCmdInternalSetTimeslice_IMPL;
536 #endif
537 
538 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
539     pThis->__kchangrpapiCtrlGetTpcPartitionMode__ = &kchangrpapiCtrlGetTpcPartitionMode_a094e1;
540 #endif
541 
542 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
543     pThis->__kchangrpapiCtrlSetTpcPartitionMode__ = &kchangrpapiCtrlSetTpcPartitionMode_a094e1;
544 #endif
545 
546 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
547     pThis->__kchangrpapiCtrlGetMMUDebugMode__ = &kchangrpapiCtrlGetMMUDebugMode_a094e1;
548 #endif
549 
550 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
551     pThis->__kchangrpapiCtrlProgramVidmemPromote__ = &kchangrpapiCtrlProgramVidmemPromote_a094e1;
552 #endif
553 
554     pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__resCanCopy__ = &__nvoc_thunk_KernelChannelGroupApi_resCanCopy;
555 
556     pThis->__nvoc_base_GpuResource.__gpuresControl__ = &__nvoc_thunk_KernelChannelGroupApi_gpuresControl;
557 
558     pThis->__kchangrpapiShareCallback__ = &__nvoc_thunk_GpuResource_kchangrpapiShareCallback;
559 
560     pThis->__kchangrpapiCheckMemInterUnmap__ = &__nvoc_thunk_RmResource_kchangrpapiCheckMemInterUnmap;
561 
562     pThis->__kchangrpapiMapTo__ = &__nvoc_thunk_RsResource_kchangrpapiMapTo;
563 
564     pThis->__kchangrpapiGetMapAddrSpace__ = &__nvoc_thunk_GpuResource_kchangrpapiGetMapAddrSpace;
565 
566     pThis->__kchangrpapiGetRefCount__ = &__nvoc_thunk_RsResource_kchangrpapiGetRefCount;
567 
568     pThis->__kchangrpapiAddAdditionalDependants__ = &__nvoc_thunk_RsResource_kchangrpapiAddAdditionalDependants;
569 
570     pThis->__kchangrpapiControl_Prologue__ = &__nvoc_thunk_RmResource_kchangrpapiControl_Prologue;
571 
572     pThis->__kchangrpapiGetRegBaseOffsetAndSize__ = &__nvoc_thunk_GpuResource_kchangrpapiGetRegBaseOffsetAndSize;
573 
574     pThis->__kchangrpapiInternalControlForward__ = &__nvoc_thunk_GpuResource_kchangrpapiInternalControlForward;
575 
576     pThis->__kchangrpapiUnmapFrom__ = &__nvoc_thunk_RsResource_kchangrpapiUnmapFrom;
577 
578     pThis->__kchangrpapiControl_Epilogue__ = &__nvoc_thunk_RmResource_kchangrpapiControl_Epilogue;
579 
580     pThis->__kchangrpapiControlLookup__ = &__nvoc_thunk_RsResource_kchangrpapiControlLookup;
581 
582     pThis->__kchangrpapiGetInternalObjectHandle__ = &__nvoc_thunk_GpuResource_kchangrpapiGetInternalObjectHandle;
583 
584     pThis->__kchangrpapiUnmap__ = &__nvoc_thunk_GpuResource_kchangrpapiUnmap;
585 
586     pThis->__kchangrpapiGetMemInterMapParams__ = &__nvoc_thunk_RmResource_kchangrpapiGetMemInterMapParams;
587 
588     pThis->__kchangrpapiGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_kchangrpapiGetMemoryMappingDescriptor;
589 
590     pThis->__kchangrpapiControlFilter__ = &__nvoc_thunk_RsResource_kchangrpapiControlFilter;
591 
592     pThis->__kchangrpapiControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_kchangrpapiControlSerialization_Prologue;
593 
594     pThis->__kchangrpapiPreDestruct__ = &__nvoc_thunk_RsResource_kchangrpapiPreDestruct;
595 
596     pThis->__kchangrpapiIsDuplicate__ = &__nvoc_thunk_RsResource_kchangrpapiIsDuplicate;
597 
598     pThis->__kchangrpapiControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_kchangrpapiControlSerialization_Epilogue;
599 
600     pThis->__kchangrpapiMap__ = &__nvoc_thunk_GpuResource_kchangrpapiMap;
601 
602     pThis->__kchangrpapiAccessCallback__ = &__nvoc_thunk_RmResource_kchangrpapiAccessCallback;
603 }
604 
605 void __nvoc_init_funcTable_KernelChannelGroupApi(KernelChannelGroupApi *pThis) {
606     __nvoc_init_funcTable_KernelChannelGroupApi_1(pThis);
607 }
608 
609 void __nvoc_init_GpuResource(GpuResource*);
610 void __nvoc_init_KernelChannelGroupApi(KernelChannelGroupApi *pThis) {
611     pThis->__nvoc_pbase_KernelChannelGroupApi = pThis;
612     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
613     pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource;
614     pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
615     pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource;
616     pThis->__nvoc_pbase_GpuResource = &pThis->__nvoc_base_GpuResource;
617     __nvoc_init_GpuResource(&pThis->__nvoc_base_GpuResource);
618     __nvoc_init_funcTable_KernelChannelGroupApi(pThis);
619 }
620 
621 NV_STATUS __nvoc_objCreate_KernelChannelGroupApi(KernelChannelGroupApi **ppThis, Dynamic *pParent, NvU32 createFlags, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
622     NV_STATUS status;
623     Object *pParentObj;
624     KernelChannelGroupApi *pThis;
625 
626     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(KernelChannelGroupApi), (void**)&pThis, (void**)ppThis);
627     if (status != NV_OK)
628         return status;
629 
630     portMemSet(pThis, 0, sizeof(KernelChannelGroupApi));
631 
632     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_KernelChannelGroupApi);
633 
634     pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
635 
636     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
637     {
638         pParentObj = dynamicCast(pParent, Object);
639         objAddChild(pParentObj, &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
640     }
641     else
642     {
643         pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
644     }
645 
646     __nvoc_init_KernelChannelGroupApi(pThis);
647     status = __nvoc_ctor_KernelChannelGroupApi(pThis, arg_pCallContext, arg_pParams);
648     if (status != NV_OK) goto __nvoc_objCreate_KernelChannelGroupApi_cleanup;
649 
650     *ppThis = pThis;
651 
652     return NV_OK;
653 
654 __nvoc_objCreate_KernelChannelGroupApi_cleanup:
655     // do not call destructors here since the constructor already called them
656     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
657         portMemSet(pThis, 0, sizeof(KernelChannelGroupApi));
658     else
659         portMemFree(pThis);
660 
661     // coverity[leaked_storage:FALSE]
662     return status;
663 }
664 
665 NV_STATUS __nvoc_objCreateDynamic_KernelChannelGroupApi(KernelChannelGroupApi **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
666     NV_STATUS status;
667     struct CALL_CONTEXT * arg_pCallContext = va_arg(args, struct CALL_CONTEXT *);
668     struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
669 
670     status = __nvoc_objCreate_KernelChannelGroupApi(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
671 
672     return status;
673 }
674 
675