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