1 #define NVOC_KERNEL_RC_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_rc_nvoc.h" 9 10 #ifdef DEBUG 11 char __nvoc_class_id_uniqueness_check_0x4888db = 1; 12 #endif 13 14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelRc; 15 16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object; 17 18 extern const struct NVOC_CLASS_DEF __nvoc_class_def_OBJENGSTATE; 19 20 void __nvoc_init_KernelRc(KernelRc*, RmHalspecOwner* ); 21 void __nvoc_init_funcTable_KernelRc(KernelRc*, RmHalspecOwner* ); 22 NV_STATUS __nvoc_ctor_KernelRc(KernelRc*, RmHalspecOwner* ); 23 void __nvoc_init_dataField_KernelRc(KernelRc*, RmHalspecOwner* ); 24 void __nvoc_dtor_KernelRc(KernelRc*); 25 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelRc; 26 27 static const struct NVOC_RTTI __nvoc_rtti_KernelRc_KernelRc = { 28 /*pClassDef=*/ &__nvoc_class_def_KernelRc, 29 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_KernelRc, 30 /*offset=*/ 0, 31 }; 32 33 static const struct NVOC_RTTI __nvoc_rtti_KernelRc_Object = { 34 /*pClassDef=*/ &__nvoc_class_def_Object, 35 /*dtor=*/ &__nvoc_destructFromBase, 36 /*offset=*/ NV_OFFSETOF(KernelRc, __nvoc_base_OBJENGSTATE.__nvoc_base_Object), 37 }; 38 39 static const struct NVOC_RTTI __nvoc_rtti_KernelRc_OBJENGSTATE = { 40 /*pClassDef=*/ &__nvoc_class_def_OBJENGSTATE, 41 /*dtor=*/ &__nvoc_destructFromBase, 42 /*offset=*/ NV_OFFSETOF(KernelRc, __nvoc_base_OBJENGSTATE), 43 }; 44 45 static const struct NVOC_CASTINFO __nvoc_castinfo_KernelRc = { 46 /*numRelatives=*/ 3, 47 /*relatives=*/ { 48 &__nvoc_rtti_KernelRc_KernelRc, 49 &__nvoc_rtti_KernelRc_OBJENGSTATE, 50 &__nvoc_rtti_KernelRc_Object, 51 }, 52 }; 53 54 const struct NVOC_CLASS_DEF __nvoc_class_def_KernelRc = 55 { 56 /*classInfo=*/ { 57 /*size=*/ sizeof(KernelRc), 58 /*classId=*/ classId(KernelRc), 59 /*providerId=*/ &__nvoc_rtti_provider, 60 #if NV_PRINTF_STRINGS_ALLOWED 61 /*name=*/ "KernelRc", 62 #endif 63 }, 64 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_KernelRc, 65 /*pCastInfo=*/ &__nvoc_castinfo_KernelRc, 66 /*pExportInfo=*/ &__nvoc_export_info_KernelRc 67 }; 68 69 static NV_STATUS __nvoc_thunk_KernelRc_engstateConstructEngine(struct OBJGPU *pGpu, struct OBJENGSTATE *pKernelRc, ENGDESCRIPTOR engDescriptor) { 70 return krcConstructEngine(pGpu, (struct KernelRc *)(((unsigned char *)pKernelRc) - __nvoc_rtti_KernelRc_OBJENGSTATE.offset), engDescriptor); 71 } 72 73 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStateLoad(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) { 74 return engstateStateLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0); 75 } 76 77 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStateUnload(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) { 78 return engstateStateUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0); 79 } 80 81 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStateInitLocked(POBJGPU pGpu, struct KernelRc *pEngstate) { 82 return engstateStateInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset)); 83 } 84 85 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePreLoad(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) { 86 return engstateStatePreLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0); 87 } 88 89 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePostUnload(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) { 90 return engstateStatePostUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0); 91 } 92 93 static void __nvoc_thunk_OBJENGSTATE_krcStateDestroy(POBJGPU pGpu, struct KernelRc *pEngstate) { 94 engstateStateDestroy(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset)); 95 } 96 97 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePreUnload(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) { 98 return engstateStatePreUnload(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0); 99 } 100 101 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStateInitUnlocked(POBJGPU pGpu, struct KernelRc *pEngstate) { 102 return engstateStateInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset)); 103 } 104 105 static void __nvoc_thunk_OBJENGSTATE_krcInitMissing(POBJGPU pGpu, struct KernelRc *pEngstate) { 106 engstateInitMissing(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset)); 107 } 108 109 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePreInitLocked(POBJGPU pGpu, struct KernelRc *pEngstate) { 110 return engstateStatePreInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset)); 111 } 112 113 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePreInitUnlocked(POBJGPU pGpu, struct KernelRc *pEngstate) { 114 return engstateStatePreInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset)); 115 } 116 117 static NV_STATUS __nvoc_thunk_OBJENGSTATE_krcStatePostLoad(POBJGPU pGpu, struct KernelRc *pEngstate, NvU32 arg0) { 118 return engstateStatePostLoad(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset), arg0); 119 } 120 121 static NvBool __nvoc_thunk_OBJENGSTATE_krcIsPresent(POBJGPU pGpu, struct KernelRc *pEngstate) { 122 return engstateIsPresent(pGpu, (struct OBJENGSTATE *)(((unsigned char *)pEngstate) + __nvoc_rtti_KernelRc_OBJENGSTATE.offset)); 123 } 124 125 const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelRc = 126 { 127 /*numEntries=*/ 0, 128 /*pExportEntries=*/ 0 129 }; 130 131 void __nvoc_dtor_OBJENGSTATE(OBJENGSTATE*); 132 void __nvoc_dtor_KernelRc(KernelRc *pThis) { 133 __nvoc_dtor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE); 134 PORT_UNREFERENCED_VARIABLE(pThis); 135 } 136 137 void __nvoc_init_dataField_KernelRc(KernelRc *pThis, RmHalspecOwner *pRmhalspecowner) { 138 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal; 139 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx; 140 ChipHal *chipHal = &pRmhalspecowner->chipHal; 141 const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx; 142 PORT_UNREFERENCED_VARIABLE(pThis); 143 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner); 144 PORT_UNREFERENCED_VARIABLE(rmVariantHal); 145 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx); 146 PORT_UNREFERENCED_VARIABLE(chipHal); 147 PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx); 148 } 149 150 NV_STATUS __nvoc_ctor_OBJENGSTATE(OBJENGSTATE* ); 151 NV_STATUS __nvoc_ctor_KernelRc(KernelRc *pThis, RmHalspecOwner *pRmhalspecowner) { 152 NV_STATUS status = NV_OK; 153 status = __nvoc_ctor_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE); 154 if (status != NV_OK) goto __nvoc_ctor_KernelRc_fail_OBJENGSTATE; 155 __nvoc_init_dataField_KernelRc(pThis, pRmhalspecowner); 156 goto __nvoc_ctor_KernelRc_exit; // Success 157 158 __nvoc_ctor_KernelRc_fail_OBJENGSTATE: 159 __nvoc_ctor_KernelRc_exit: 160 161 return status; 162 } 163 164 static void __nvoc_init_funcTable_KernelRc_1(KernelRc *pThis, RmHalspecOwner *pRmhalspecowner) { 165 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal; 166 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx; 167 ChipHal *chipHal = &pRmhalspecowner->chipHal; 168 const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx; 169 PORT_UNREFERENCED_VARIABLE(pThis); 170 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner); 171 PORT_UNREFERENCED_VARIABLE(rmVariantHal); 172 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx); 173 PORT_UNREFERENCED_VARIABLE(chipHal); 174 PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx); 175 176 pThis->__krcConstructEngine__ = &krcConstructEngine_IMPL; 177 178 pThis->__nvoc_base_OBJENGSTATE.__engstateConstructEngine__ = &__nvoc_thunk_KernelRc_engstateConstructEngine; 179 180 pThis->__krcStateLoad__ = &__nvoc_thunk_OBJENGSTATE_krcStateLoad; 181 182 pThis->__krcStateUnload__ = &__nvoc_thunk_OBJENGSTATE_krcStateUnload; 183 184 pThis->__krcStateInitLocked__ = &__nvoc_thunk_OBJENGSTATE_krcStateInitLocked; 185 186 pThis->__krcStatePreLoad__ = &__nvoc_thunk_OBJENGSTATE_krcStatePreLoad; 187 188 pThis->__krcStatePostUnload__ = &__nvoc_thunk_OBJENGSTATE_krcStatePostUnload; 189 190 pThis->__krcStateDestroy__ = &__nvoc_thunk_OBJENGSTATE_krcStateDestroy; 191 192 pThis->__krcStatePreUnload__ = &__nvoc_thunk_OBJENGSTATE_krcStatePreUnload; 193 194 pThis->__krcStateInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_krcStateInitUnlocked; 195 196 pThis->__krcInitMissing__ = &__nvoc_thunk_OBJENGSTATE_krcInitMissing; 197 198 pThis->__krcStatePreInitLocked__ = &__nvoc_thunk_OBJENGSTATE_krcStatePreInitLocked; 199 200 pThis->__krcStatePreInitUnlocked__ = &__nvoc_thunk_OBJENGSTATE_krcStatePreInitUnlocked; 201 202 pThis->__krcStatePostLoad__ = &__nvoc_thunk_OBJENGSTATE_krcStatePostLoad; 203 204 pThis->__krcIsPresent__ = &__nvoc_thunk_OBJENGSTATE_krcIsPresent; 205 } 206 207 void __nvoc_init_funcTable_KernelRc(KernelRc *pThis, RmHalspecOwner *pRmhalspecowner) { 208 __nvoc_init_funcTable_KernelRc_1(pThis, pRmhalspecowner); 209 } 210 211 void __nvoc_init_OBJENGSTATE(OBJENGSTATE*); 212 void __nvoc_init_KernelRc(KernelRc *pThis, RmHalspecOwner *pRmhalspecowner) { 213 pThis->__nvoc_pbase_KernelRc = pThis; 214 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object; 215 pThis->__nvoc_pbase_OBJENGSTATE = &pThis->__nvoc_base_OBJENGSTATE; 216 __nvoc_init_OBJENGSTATE(&pThis->__nvoc_base_OBJENGSTATE); 217 __nvoc_init_funcTable_KernelRc(pThis, pRmhalspecowner); 218 } 219 220 NV_STATUS __nvoc_objCreate_KernelRc(KernelRc **ppThis, Dynamic *pParent, NvU32 createFlags) { 221 NV_STATUS status; 222 Object *pParentObj; 223 KernelRc *pThis; 224 RmHalspecOwner *pRmhalspecowner; 225 226 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(KernelRc), (void**)&pThis, (void**)ppThis); 227 if (status != NV_OK) 228 return status; 229 230 portMemSet(pThis, 0, sizeof(KernelRc)); 231 232 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_KernelRc); 233 234 pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.createFlags = createFlags; 235 236 if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY)) 237 { 238 pParentObj = dynamicCast(pParent, Object); 239 objAddChild(pParentObj, &pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object); 240 } 241 else 242 { 243 pThis->__nvoc_base_OBJENGSTATE.__nvoc_base_Object.pParent = NULL; 244 } 245 246 if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL) 247 pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent); 248 NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT); 249 250 __nvoc_init_KernelRc(pThis, pRmhalspecowner); 251 status = __nvoc_ctor_KernelRc(pThis, pRmhalspecowner); 252 if (status != NV_OK) goto __nvoc_objCreate_KernelRc_cleanup; 253 254 *ppThis = pThis; 255 256 return NV_OK; 257 258 __nvoc_objCreate_KernelRc_cleanup: 259 // do not call destructors here since the constructor already called them 260 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT) 261 portMemSet(pThis, 0, sizeof(KernelRc)); 262 else 263 portMemFree(pThis); 264 265 // coverity[leaked_storage:FALSE] 266 return status; 267 } 268 269 NV_STATUS __nvoc_objCreateDynamic_KernelRc(KernelRc **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) { 270 NV_STATUS status; 271 272 status = __nvoc_objCreate_KernelRc(ppThis, pParent, createFlags); 273 274 return status; 275 } 276 277