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