1 #define NVOC_FBSR_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_fbsr_nvoc.h" 9 10 #ifdef DEBUG 11 char __nvoc_class_id_uniqueness_check_0xa30fe6 = 1; 12 #endif 13 14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_OBJFBSR; 15 16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object; 17 18 void __nvoc_init_OBJFBSR(OBJFBSR*, RmHalspecOwner* ); 19 void __nvoc_init_funcTable_OBJFBSR(OBJFBSR*, RmHalspecOwner* ); 20 NV_STATUS __nvoc_ctor_OBJFBSR(OBJFBSR*, RmHalspecOwner* ); 21 void __nvoc_init_dataField_OBJFBSR(OBJFBSR*, RmHalspecOwner* ); 22 void __nvoc_dtor_OBJFBSR(OBJFBSR*); 23 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_OBJFBSR; 24 25 static const struct NVOC_RTTI __nvoc_rtti_OBJFBSR_OBJFBSR = { 26 /*pClassDef=*/ &__nvoc_class_def_OBJFBSR, 27 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_OBJFBSR, 28 /*offset=*/ 0, 29 }; 30 31 static const struct NVOC_RTTI __nvoc_rtti_OBJFBSR_Object = { 32 /*pClassDef=*/ &__nvoc_class_def_Object, 33 /*dtor=*/ &__nvoc_destructFromBase, 34 /*offset=*/ NV_OFFSETOF(OBJFBSR, __nvoc_base_Object), 35 }; 36 37 static const struct NVOC_CASTINFO __nvoc_castinfo_OBJFBSR = { 38 /*numRelatives=*/ 2, 39 /*relatives=*/ { 40 &__nvoc_rtti_OBJFBSR_OBJFBSR, 41 &__nvoc_rtti_OBJFBSR_Object, 42 }, 43 }; 44 45 const struct NVOC_CLASS_DEF __nvoc_class_def_OBJFBSR = 46 { 47 /*classInfo=*/ { 48 /*size=*/ sizeof(OBJFBSR), 49 /*classId=*/ classId(OBJFBSR), 50 /*providerId=*/ &__nvoc_rtti_provider, 51 #if NV_PRINTF_STRINGS_ALLOWED 52 /*name=*/ "OBJFBSR", 53 #endif 54 }, 55 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_OBJFBSR, 56 /*pCastInfo=*/ &__nvoc_castinfo_OBJFBSR, 57 /*pExportInfo=*/ &__nvoc_export_info_OBJFBSR 58 }; 59 60 const struct NVOC_EXPORT_INFO __nvoc_export_info_OBJFBSR = 61 { 62 /*numEntries=*/ 0, 63 /*pExportEntries=*/ 0 64 }; 65 66 void __nvoc_dtor_Object(Object*); 67 void __nvoc_dtor_OBJFBSR(OBJFBSR *pThis) { 68 __nvoc_dtor_Object(&pThis->__nvoc_base_Object); 69 PORT_UNREFERENCED_VARIABLE(pThis); 70 } 71 72 void __nvoc_init_dataField_OBJFBSR(OBJFBSR *pThis, RmHalspecOwner *pRmhalspecowner) { 73 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal; 74 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx; 75 ChipHal *chipHal = &pRmhalspecowner->chipHal; 76 const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx; 77 PORT_UNREFERENCED_VARIABLE(pThis); 78 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner); 79 PORT_UNREFERENCED_VARIABLE(rmVariantHal); 80 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx); 81 PORT_UNREFERENCED_VARIABLE(chipHal); 82 PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx); 83 } 84 85 NV_STATUS __nvoc_ctor_Object(Object* ); 86 NV_STATUS __nvoc_ctor_OBJFBSR(OBJFBSR *pThis, RmHalspecOwner *pRmhalspecowner) { 87 NV_STATUS status = NV_OK; 88 status = __nvoc_ctor_Object(&pThis->__nvoc_base_Object); 89 if (status != NV_OK) goto __nvoc_ctor_OBJFBSR_fail_Object; 90 __nvoc_init_dataField_OBJFBSR(pThis, pRmhalspecowner); 91 goto __nvoc_ctor_OBJFBSR_exit; // Success 92 93 __nvoc_ctor_OBJFBSR_fail_Object: 94 __nvoc_ctor_OBJFBSR_exit: 95 96 return status; 97 } 98 99 static void __nvoc_init_funcTable_OBJFBSR_1(OBJFBSR *pThis, RmHalspecOwner *pRmhalspecowner) { 100 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal; 101 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx; 102 ChipHal *chipHal = &pRmhalspecowner->chipHal; 103 const unsigned long chipHal_HalVarIdx = (unsigned long)chipHal->__nvoc_HalVarIdx; 104 PORT_UNREFERENCED_VARIABLE(pThis); 105 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner); 106 PORT_UNREFERENCED_VARIABLE(rmVariantHal); 107 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx); 108 PORT_UNREFERENCED_VARIABLE(chipHal); 109 PORT_UNREFERENCED_VARIABLE(chipHal_HalVarIdx); 110 111 // Hal function -- fbsrBegin 112 if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000002UL) )) /* RmVariantHal: PF_KERNEL_ONLY */ 113 { 114 if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x01f0fc00UL) )) /* ChipHal: GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 */ 115 { 116 pThis->__fbsrBegin__ = &fbsrBegin_GA100; 117 } 118 else if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x100003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GH100 */ 119 { 120 pThis->__fbsrBegin__ = &fbsrBegin_GM107; 121 } 122 } 123 124 // Hal function -- fbsrEnd 125 if (( ((rmVariantHal_HalVarIdx >> 5) == 0UL) && ((1UL << (rmVariantHal_HalVarIdx & 0x1f)) & 0x00000002UL) )) /* RmVariantHal: PF_KERNEL_ONLY */ 126 { 127 if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x01f0fc00UL) )) /* ChipHal: GA100 | GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD106 | AD107 */ 128 { 129 pThis->__fbsrEnd__ = &fbsrEnd_GA100; 130 } 131 else if (( ((chipHal_HalVarIdx >> 5) == 1UL) && ((1UL << (chipHal_HalVarIdx & 0x1f)) & 0x100003e0UL) )) /* ChipHal: TU102 | TU104 | TU106 | TU116 | TU117 | GH100 */ 132 { 133 pThis->__fbsrEnd__ = &fbsrEnd_GM107; 134 } 135 } 136 } 137 138 void __nvoc_init_funcTable_OBJFBSR(OBJFBSR *pThis, RmHalspecOwner *pRmhalspecowner) { 139 __nvoc_init_funcTable_OBJFBSR_1(pThis, pRmhalspecowner); 140 } 141 142 void __nvoc_init_Object(Object*); 143 void __nvoc_init_OBJFBSR(OBJFBSR *pThis, RmHalspecOwner *pRmhalspecowner) { 144 pThis->__nvoc_pbase_OBJFBSR = pThis; 145 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_Object; 146 __nvoc_init_Object(&pThis->__nvoc_base_Object); 147 __nvoc_init_funcTable_OBJFBSR(pThis, pRmhalspecowner); 148 } 149 150 NV_STATUS __nvoc_objCreate_OBJFBSR(OBJFBSR **ppThis, Dynamic *pParent, NvU32 createFlags) { 151 NV_STATUS status; 152 Object *pParentObj; 153 OBJFBSR *pThis; 154 RmHalspecOwner *pRmhalspecowner; 155 156 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(OBJFBSR), (void**)&pThis, (void**)ppThis); 157 if (status != NV_OK) 158 return status; 159 160 portMemSet(pThis, 0, sizeof(OBJFBSR)); 161 162 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_OBJFBSR); 163 164 pThis->__nvoc_base_Object.createFlags = createFlags; 165 166 if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY)) 167 { 168 pParentObj = dynamicCast(pParent, Object); 169 objAddChild(pParentObj, &pThis->__nvoc_base_Object); 170 } 171 else 172 { 173 pThis->__nvoc_base_Object.pParent = NULL; 174 } 175 176 if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL) 177 pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent); 178 NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT); 179 180 __nvoc_init_OBJFBSR(pThis, pRmhalspecowner); 181 status = __nvoc_ctor_OBJFBSR(pThis, pRmhalspecowner); 182 if (status != NV_OK) goto __nvoc_objCreate_OBJFBSR_cleanup; 183 184 *ppThis = pThis; 185 186 return NV_OK; 187 188 __nvoc_objCreate_OBJFBSR_cleanup: 189 // do not call destructors here since the constructor already called them 190 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT) 191 portMemSet(pThis, 0, sizeof(OBJFBSR)); 192 else 193 portMemFree(pThis); 194 195 // coverity[leaked_storage:FALSE] 196 return status; 197 } 198 199 NV_STATUS __nvoc_objCreateDynamic_OBJFBSR(OBJFBSR **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) { 200 NV_STATUS status; 201 202 status = __nvoc_objCreate_OBJFBSR(ppThis, pParent, createFlags); 203 204 return status; 205 } 206 207