1 #define NVOC_GPU_MGR_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_gpu_mgr_nvoc.h" 9 10 #ifdef DEBUG 11 char __nvoc_class_id_uniqueness_check_0xcf1b25 = 1; 12 #endif 13 14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_OBJGPUMGR; 15 16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object; 17 18 void __nvoc_init_OBJGPUMGR(OBJGPUMGR*); 19 void __nvoc_init_funcTable_OBJGPUMGR(OBJGPUMGR*); 20 NV_STATUS __nvoc_ctor_OBJGPUMGR(OBJGPUMGR*); 21 void __nvoc_init_dataField_OBJGPUMGR(OBJGPUMGR*); 22 void __nvoc_dtor_OBJGPUMGR(OBJGPUMGR*); 23 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_OBJGPUMGR; 24 25 static const struct NVOC_RTTI __nvoc_rtti_OBJGPUMGR_OBJGPUMGR = { 26 /*pClassDef=*/ &__nvoc_class_def_OBJGPUMGR, 27 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_OBJGPUMGR, 28 /*offset=*/ 0, 29 }; 30 31 static const struct NVOC_RTTI __nvoc_rtti_OBJGPUMGR_Object = { 32 /*pClassDef=*/ &__nvoc_class_def_Object, 33 /*dtor=*/ &__nvoc_destructFromBase, 34 /*offset=*/ NV_OFFSETOF(OBJGPUMGR, __nvoc_base_Object), 35 }; 36 37 static const struct NVOC_CASTINFO __nvoc_castinfo_OBJGPUMGR = { 38 /*numRelatives=*/ 2, 39 /*relatives=*/ { 40 &__nvoc_rtti_OBJGPUMGR_OBJGPUMGR, 41 &__nvoc_rtti_OBJGPUMGR_Object, 42 }, 43 }; 44 45 const struct NVOC_CLASS_DEF __nvoc_class_def_OBJGPUMGR = 46 { 47 /*classInfo=*/ { 48 /*size=*/ sizeof(OBJGPUMGR), 49 /*classId=*/ classId(OBJGPUMGR), 50 /*providerId=*/ &__nvoc_rtti_provider, 51 #if NV_PRINTF_STRINGS_ALLOWED 52 /*name=*/ "OBJGPUMGR", 53 #endif 54 }, 55 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_OBJGPUMGR, 56 /*pCastInfo=*/ &__nvoc_castinfo_OBJGPUMGR, 57 /*pExportInfo=*/ &__nvoc_export_info_OBJGPUMGR 58 }; 59 60 const struct NVOC_EXPORT_INFO __nvoc_export_info_OBJGPUMGR = 61 { 62 /*numEntries=*/ 0, 63 /*pExportEntries=*/ 0 64 }; 65 66 void __nvoc_dtor_Object(Object*); 67 void __nvoc_dtor_OBJGPUMGR(OBJGPUMGR *pThis) { 68 __nvoc_gpumgrDestruct(pThis); 69 __nvoc_dtor_Object(&pThis->__nvoc_base_Object); 70 PORT_UNREFERENCED_VARIABLE(pThis); 71 } 72 73 void __nvoc_init_dataField_OBJGPUMGR(OBJGPUMGR *pThis) { 74 PORT_UNREFERENCED_VARIABLE(pThis); 75 } 76 77 NV_STATUS __nvoc_ctor_Object(Object* ); 78 NV_STATUS __nvoc_ctor_OBJGPUMGR(OBJGPUMGR *pThis) { 79 NV_STATUS status = NV_OK; 80 status = __nvoc_ctor_Object(&pThis->__nvoc_base_Object); 81 if (status != NV_OK) goto __nvoc_ctor_OBJGPUMGR_fail_Object; 82 __nvoc_init_dataField_OBJGPUMGR(pThis); 83 84 status = __nvoc_gpumgrConstruct(pThis); 85 if (status != NV_OK) goto __nvoc_ctor_OBJGPUMGR_fail__init; 86 goto __nvoc_ctor_OBJGPUMGR_exit; // Success 87 88 __nvoc_ctor_OBJGPUMGR_fail__init: 89 __nvoc_dtor_Object(&pThis->__nvoc_base_Object); 90 __nvoc_ctor_OBJGPUMGR_fail_Object: 91 __nvoc_ctor_OBJGPUMGR_exit: 92 93 return status; 94 } 95 96 static void __nvoc_init_funcTable_OBJGPUMGR_1(OBJGPUMGR *pThis) { 97 PORT_UNREFERENCED_VARIABLE(pThis); 98 } 99 100 void __nvoc_init_funcTable_OBJGPUMGR(OBJGPUMGR *pThis) { 101 __nvoc_init_funcTable_OBJGPUMGR_1(pThis); 102 } 103 104 void __nvoc_init_Object(Object*); 105 void __nvoc_init_OBJGPUMGR(OBJGPUMGR *pThis) { 106 pThis->__nvoc_pbase_OBJGPUMGR = pThis; 107 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_Object; 108 __nvoc_init_Object(&pThis->__nvoc_base_Object); 109 __nvoc_init_funcTable_OBJGPUMGR(pThis); 110 } 111 112 NV_STATUS __nvoc_objCreate_OBJGPUMGR(OBJGPUMGR **ppThis, Dynamic *pParent, NvU32 createFlags) { 113 NV_STATUS status; 114 Object *pParentObj; 115 OBJGPUMGR *pThis; 116 117 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(OBJGPUMGR), (void**)&pThis, (void**)ppThis); 118 if (status != NV_OK) 119 return status; 120 121 portMemSet(pThis, 0, sizeof(OBJGPUMGR)); 122 123 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_OBJGPUMGR); 124 125 pThis->__nvoc_base_Object.createFlags = createFlags; 126 127 if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY)) 128 { 129 pParentObj = dynamicCast(pParent, Object); 130 objAddChild(pParentObj, &pThis->__nvoc_base_Object); 131 } 132 else 133 { 134 pThis->__nvoc_base_Object.pParent = NULL; 135 } 136 137 __nvoc_init_OBJGPUMGR(pThis); 138 status = __nvoc_ctor_OBJGPUMGR(pThis); 139 if (status != NV_OK) goto __nvoc_objCreate_OBJGPUMGR_cleanup; 140 141 *ppThis = pThis; 142 143 return NV_OK; 144 145 __nvoc_objCreate_OBJGPUMGR_cleanup: 146 // do not call destructors here since the constructor already called them 147 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT) 148 portMemSet(pThis, 0, sizeof(OBJGPUMGR)); 149 else 150 portMemFree(pThis); 151 152 // coverity[leaked_storage:FALSE] 153 return status; 154 } 155 156 NV_STATUS __nvoc_objCreateDynamic_OBJGPUMGR(OBJGPUMGR **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) { 157 NV_STATUS status; 158 159 status = __nvoc_objCreate_OBJGPUMGR(ppThis, pParent, createFlags); 160 161 return status; 162 } 163 164