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