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