1 #define NVOC_VIDMEM_ACCESS_BIT_BUFFER_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_vidmem_access_bit_buffer_nvoc.h" 9 10 #ifdef DEBUG 11 char __nvoc_class_id_uniqueness_check_0xebb6da = 1; 12 #endif 13 14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_VidmemAccessBitBuffer; 15 16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object; 17 18 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RsResource; 19 20 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResourceCommon; 21 22 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResource; 23 24 extern const struct NVOC_CLASS_DEF __nvoc_class_def_GpuResource; 25 26 extern const struct NVOC_CLASS_DEF __nvoc_class_def_INotifier; 27 28 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Notifier; 29 30 void __nvoc_init_VidmemAccessBitBuffer(VidmemAccessBitBuffer*, RmHalspecOwner* ); 31 void __nvoc_init_funcTable_VidmemAccessBitBuffer(VidmemAccessBitBuffer*, RmHalspecOwner* ); 32 NV_STATUS __nvoc_ctor_VidmemAccessBitBuffer(VidmemAccessBitBuffer*, RmHalspecOwner* , CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams); 33 void __nvoc_init_dataField_VidmemAccessBitBuffer(VidmemAccessBitBuffer*, RmHalspecOwner* ); 34 void __nvoc_dtor_VidmemAccessBitBuffer(VidmemAccessBitBuffer*); 35 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_VidmemAccessBitBuffer; 36 37 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_VidmemAccessBitBuffer = { 38 /*pClassDef=*/ &__nvoc_class_def_VidmemAccessBitBuffer, 39 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_VidmemAccessBitBuffer, 40 /*offset=*/ 0, 41 }; 42 43 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_Object = { 44 /*pClassDef=*/ &__nvoc_class_def_Object, 45 /*dtor=*/ &__nvoc_destructFromBase, 46 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object), 47 }; 48 49 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_RsResource = { 50 /*pClassDef=*/ &__nvoc_class_def_RsResource, 51 /*dtor=*/ &__nvoc_destructFromBase, 52 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource), 53 }; 54 55 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_RmResourceCommon = { 56 /*pClassDef=*/ &__nvoc_class_def_RmResourceCommon, 57 /*dtor=*/ &__nvoc_destructFromBase, 58 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon), 59 }; 60 61 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_RmResource = { 62 /*pClassDef=*/ &__nvoc_class_def_RmResource, 63 /*dtor=*/ &__nvoc_destructFromBase, 64 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource.__nvoc_base_RmResource), 65 }; 66 67 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_GpuResource = { 68 /*pClassDef=*/ &__nvoc_class_def_GpuResource, 69 /*dtor=*/ &__nvoc_destructFromBase, 70 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource), 71 }; 72 73 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_INotifier = { 74 /*pClassDef=*/ &__nvoc_class_def_INotifier, 75 /*dtor=*/ &__nvoc_destructFromBase, 76 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_Notifier.__nvoc_base_INotifier), 77 }; 78 79 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_Notifier = { 80 /*pClassDef=*/ &__nvoc_class_def_Notifier, 81 /*dtor=*/ &__nvoc_destructFromBase, 82 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_Notifier), 83 }; 84 85 static const struct NVOC_CASTINFO __nvoc_castinfo_VidmemAccessBitBuffer = { 86 /*numRelatives=*/ 8, 87 /*relatives=*/ { 88 &__nvoc_rtti_VidmemAccessBitBuffer_VidmemAccessBitBuffer, 89 &__nvoc_rtti_VidmemAccessBitBuffer_Notifier, 90 &__nvoc_rtti_VidmemAccessBitBuffer_INotifier, 91 &__nvoc_rtti_VidmemAccessBitBuffer_GpuResource, 92 &__nvoc_rtti_VidmemAccessBitBuffer_RmResource, 93 &__nvoc_rtti_VidmemAccessBitBuffer_RmResourceCommon, 94 &__nvoc_rtti_VidmemAccessBitBuffer_RsResource, 95 &__nvoc_rtti_VidmemAccessBitBuffer_Object, 96 }, 97 }; 98 99 const struct NVOC_CLASS_DEF __nvoc_class_def_VidmemAccessBitBuffer = 100 { 101 /*classInfo=*/ { 102 /*size=*/ sizeof(VidmemAccessBitBuffer), 103 /*classId=*/ classId(VidmemAccessBitBuffer), 104 /*providerId=*/ &__nvoc_rtti_provider, 105 #if NV_PRINTF_STRINGS_ALLOWED 106 /*name=*/ "VidmemAccessBitBuffer", 107 #endif 108 }, 109 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_VidmemAccessBitBuffer, 110 /*pCastInfo=*/ &__nvoc_castinfo_VidmemAccessBitBuffer, 111 /*pExportInfo=*/ &__nvoc_export_info_VidmemAccessBitBuffer 112 }; 113 114 static NvBool __nvoc_thunk_GpuResource_vidmemAccessBitBufShareCallback(struct VidmemAccessBitBuffer *pGpuResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) { 115 return gpuresShareCallback((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pInvokingClient, pParentRef, pSharePolicy); 116 } 117 118 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufCheckMemInterUnmap(struct VidmemAccessBitBuffer *pRmResource, NvBool bSubdeviceHandleProvided) { 119 return rmresCheckMemInterUnmap((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), bSubdeviceHandleProvided); 120 } 121 122 static NV_STATUS __nvoc_thunk_Notifier_vidmemAccessBitBufGetOrAllocNotifShare(struct VidmemAccessBitBuffer *pNotifier, NvHandle hNotifierClient, NvHandle hNotifierResource, struct NotifShare **ppNotifShare) { 123 return notifyGetOrAllocNotifShare((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset), hNotifierClient, hNotifierResource, ppNotifShare); 124 } 125 126 static NV_STATUS __nvoc_thunk_RsResource_vidmemAccessBitBufMapTo(struct VidmemAccessBitBuffer *pResource, RS_RES_MAP_TO_PARAMS *pParams) { 127 return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), pParams); 128 } 129 130 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufGetMapAddrSpace(struct VidmemAccessBitBuffer *pGpuResource, struct CALL_CONTEXT *pCallContext, NvU32 mapFlags, NV_ADDRESS_SPACE *pAddrSpace) { 131 return gpuresGetMapAddrSpace((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pCallContext, mapFlags, pAddrSpace); 132 } 133 134 static void __nvoc_thunk_Notifier_vidmemAccessBitBufSetNotificationShare(struct VidmemAccessBitBuffer *pNotifier, struct NotifShare *pNotifShare) { 135 notifySetNotificationShare((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset), pNotifShare); 136 } 137 138 static NvU32 __nvoc_thunk_RsResource_vidmemAccessBitBufGetRefCount(struct VidmemAccessBitBuffer *pResource) { 139 return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset)); 140 } 141 142 static void __nvoc_thunk_RsResource_vidmemAccessBitBufAddAdditionalDependants(struct RsClient *pClient, struct VidmemAccessBitBuffer *pResource, RsResourceRef *pReference) { 143 resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), pReference); 144 } 145 146 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufControl_Prologue(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) { 147 return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pCallContext, pParams); 148 } 149 150 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufGetRegBaseOffsetAndSize(struct VidmemAccessBitBuffer *pGpuResource, struct OBJGPU *pGpu, NvU32 *pOffset, NvU32 *pSize) { 151 return gpuresGetRegBaseOffsetAndSize((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pGpu, pOffset, pSize); 152 } 153 154 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufInternalControlForward(struct VidmemAccessBitBuffer *pGpuResource, NvU32 command, void *pParams, NvU32 size) { 155 return gpuresInternalControlForward((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), command, pParams, size); 156 } 157 158 static NV_STATUS __nvoc_thunk_RsResource_vidmemAccessBitBufUnmapFrom(struct VidmemAccessBitBuffer *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) { 159 return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), pParams); 160 } 161 162 static void __nvoc_thunk_RmResource_vidmemAccessBitBufControl_Epilogue(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) { 163 rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pCallContext, pParams); 164 } 165 166 static NV_STATUS __nvoc_thunk_RsResource_vidmemAccessBitBufControlLookup(struct VidmemAccessBitBuffer *pResource, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams, const struct NVOC_EXPORTED_METHOD_DEF **ppEntry) { 167 return resControlLookup((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), pParams, ppEntry); 168 } 169 170 static NvHandle __nvoc_thunk_GpuResource_vidmemAccessBitBufGetInternalObjectHandle(struct VidmemAccessBitBuffer *pGpuResource) { 171 return gpuresGetInternalObjectHandle((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset)); 172 } 173 174 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufControl(struct VidmemAccessBitBuffer *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) { 175 return gpuresControl((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pCallContext, pParams); 176 } 177 178 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufUnmap(struct VidmemAccessBitBuffer *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RsCpuMapping *pCpuMapping) { 179 return gpuresUnmap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pCallContext, pCpuMapping); 180 } 181 182 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufGetMemInterMapParams(struct VidmemAccessBitBuffer *pRmResource, RMRES_MEM_INTER_MAP_PARAMS *pParams) { 183 return rmresGetMemInterMapParams((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pParams); 184 } 185 186 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufGetMemoryMappingDescriptor(struct VidmemAccessBitBuffer *pRmResource, struct MEMORY_DESCRIPTOR **ppMemDesc) { 187 return rmresGetMemoryMappingDescriptor((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), ppMemDesc); 188 } 189 190 static NV_STATUS __nvoc_thunk_RsResource_vidmemAccessBitBufControlFilter(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) { 191 return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), pCallContext, pParams); 192 } 193 194 static NV_STATUS __nvoc_thunk_Notifier_vidmemAccessBitBufUnregisterEvent(struct VidmemAccessBitBuffer *pNotifier, NvHandle hNotifierClient, NvHandle hNotifierResource, NvHandle hEventClient, NvHandle hEvent) { 195 return notifyUnregisterEvent((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset), hNotifierClient, hNotifierResource, hEventClient, hEvent); 196 } 197 198 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Prologue(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) { 199 return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pCallContext, pParams); 200 } 201 202 static NvBool __nvoc_thunk_RsResource_vidmemAccessBitBufCanCopy(struct VidmemAccessBitBuffer *pResource) { 203 return resCanCopy((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset)); 204 } 205 206 static void __nvoc_thunk_RsResource_vidmemAccessBitBufPreDestruct(struct VidmemAccessBitBuffer *pResource) { 207 resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset)); 208 } 209 210 static NV_STATUS __nvoc_thunk_RsResource_vidmemAccessBitBufIsDuplicate(struct VidmemAccessBitBuffer *pResource, NvHandle hMemory, NvBool *pDuplicate) { 211 return resIsDuplicate((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), hMemory, pDuplicate); 212 } 213 214 static void __nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Epilogue(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) { 215 rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pCallContext, pParams); 216 } 217 218 static PEVENTNOTIFICATION *__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationListPtr(struct VidmemAccessBitBuffer *pNotifier) { 219 return notifyGetNotificationListPtr((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset)); 220 } 221 222 static struct NotifShare *__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationShare(struct VidmemAccessBitBuffer *pNotifier) { 223 return notifyGetNotificationShare((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset)); 224 } 225 226 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufMap(struct VidmemAccessBitBuffer *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_CPU_MAP_PARAMS *pParams, struct RsCpuMapping *pCpuMapping) { 227 return gpuresMap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pCallContext, pParams, pCpuMapping); 228 } 229 230 static NvBool __nvoc_thunk_RmResource_vidmemAccessBitBufAccessCallback(struct VidmemAccessBitBuffer *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) { 231 return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pInvokingClient, pAllocParams, accessRight); 232 } 233 234 #if !defined(NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG) 235 #define NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(x) (0) 236 #endif 237 238 static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_VidmemAccessBitBuffer[] = 239 { 240 { /* [0] */ 241 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x160200u) 242 /*pFunc=*/ (void (*)(void)) NULL, 243 #else 244 /*pFunc=*/ (void (*)(void)) vidmemAccessBitBufCtrlCmdVidmemAccessBitDump_IMPL, 245 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x160200u) 246 /*flags=*/ 0x160200u, 247 /*accessRight=*/0x0u, 248 /*methodId=*/ 0xc7630103u, 249 /*paramSize=*/ sizeof(NVC763_CTRL_VIDMEM_ACCESS_BIT_BUFFER_DUMP_PARAMS), 250 /*pClassInfo=*/ &(__nvoc_class_def_VidmemAccessBitBuffer.classInfo), 251 #if NV_PRINTF_STRINGS_ALLOWED 252 /*func=*/ "vidmemAccessBitBufCtrlCmdVidmemAccessBitDump" 253 #endif 254 }, 255 256 }; 257 258 const struct NVOC_EXPORT_INFO __nvoc_export_info_VidmemAccessBitBuffer = 259 { 260 /*numEntries=*/ 1, 261 /*pExportEntries=*/ __nvoc_exported_method_def_VidmemAccessBitBuffer 262 }; 263 264 void __nvoc_dtor_GpuResource(GpuResource*); 265 void __nvoc_dtor_Notifier(Notifier*); 266 void __nvoc_dtor_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis) { 267 __nvoc_vidmemAccessBitBufDestruct(pThis); 268 __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource); 269 __nvoc_dtor_Notifier(&pThis->__nvoc_base_Notifier); 270 PORT_UNREFERENCED_VARIABLE(pThis); 271 } 272 273 void __nvoc_init_dataField_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner) { 274 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal; 275 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx; 276 PORT_UNREFERENCED_VARIABLE(pThis); 277 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner); 278 PORT_UNREFERENCED_VARIABLE(rmVariantHal); 279 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx); 280 } 281 282 NV_STATUS __nvoc_ctor_GpuResource(GpuResource* , CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *); 283 NV_STATUS __nvoc_ctor_Notifier(Notifier* , CALL_CONTEXT *); 284 NV_STATUS __nvoc_ctor_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) { 285 NV_STATUS status = NV_OK; 286 status = __nvoc_ctor_GpuResource(&pThis->__nvoc_base_GpuResource, arg_pCallContext, arg_pParams); 287 if (status != NV_OK) goto __nvoc_ctor_VidmemAccessBitBuffer_fail_GpuResource; 288 status = __nvoc_ctor_Notifier(&pThis->__nvoc_base_Notifier, arg_pCallContext); 289 if (status != NV_OK) goto __nvoc_ctor_VidmemAccessBitBuffer_fail_Notifier; 290 __nvoc_init_dataField_VidmemAccessBitBuffer(pThis, pRmhalspecowner); 291 292 status = __nvoc_vidmemAccessBitBufConstruct(pThis, arg_pCallContext, arg_pParams); 293 if (status != NV_OK) goto __nvoc_ctor_VidmemAccessBitBuffer_fail__init; 294 goto __nvoc_ctor_VidmemAccessBitBuffer_exit; // Success 295 296 __nvoc_ctor_VidmemAccessBitBuffer_fail__init: 297 __nvoc_dtor_Notifier(&pThis->__nvoc_base_Notifier); 298 __nvoc_ctor_VidmemAccessBitBuffer_fail_Notifier: 299 __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource); 300 __nvoc_ctor_VidmemAccessBitBuffer_fail_GpuResource: 301 __nvoc_ctor_VidmemAccessBitBuffer_exit: 302 303 return status; 304 } 305 306 static void __nvoc_init_funcTable_VidmemAccessBitBuffer_1(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner) { 307 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal; 308 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx; 309 PORT_UNREFERENCED_VARIABLE(pThis); 310 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner); 311 PORT_UNREFERENCED_VARIABLE(rmVariantHal); 312 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx); 313 314 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x160200u) 315 pThis->__vidmemAccessBitBufCtrlCmdVidmemAccessBitDump__ = &vidmemAccessBitBufCtrlCmdVidmemAccessBitDump_IMPL; 316 #endif 317 318 pThis->__vidmemAccessBitBufShareCallback__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufShareCallback; 319 320 pThis->__vidmemAccessBitBufCheckMemInterUnmap__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufCheckMemInterUnmap; 321 322 pThis->__vidmemAccessBitBufGetOrAllocNotifShare__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufGetOrAllocNotifShare; 323 324 pThis->__vidmemAccessBitBufMapTo__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufMapTo; 325 326 pThis->__vidmemAccessBitBufGetMapAddrSpace__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufGetMapAddrSpace; 327 328 pThis->__vidmemAccessBitBufSetNotificationShare__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufSetNotificationShare; 329 330 pThis->__vidmemAccessBitBufGetRefCount__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufGetRefCount; 331 332 pThis->__vidmemAccessBitBufAddAdditionalDependants__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufAddAdditionalDependants; 333 334 pThis->__vidmemAccessBitBufControl_Prologue__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufControl_Prologue; 335 336 pThis->__vidmemAccessBitBufGetRegBaseOffsetAndSize__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufGetRegBaseOffsetAndSize; 337 338 pThis->__vidmemAccessBitBufInternalControlForward__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufInternalControlForward; 339 340 pThis->__vidmemAccessBitBufUnmapFrom__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufUnmapFrom; 341 342 pThis->__vidmemAccessBitBufControl_Epilogue__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufControl_Epilogue; 343 344 pThis->__vidmemAccessBitBufControlLookup__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufControlLookup; 345 346 pThis->__vidmemAccessBitBufGetInternalObjectHandle__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufGetInternalObjectHandle; 347 348 pThis->__vidmemAccessBitBufControl__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufControl; 349 350 pThis->__vidmemAccessBitBufUnmap__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufUnmap; 351 352 pThis->__vidmemAccessBitBufGetMemInterMapParams__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufGetMemInterMapParams; 353 354 pThis->__vidmemAccessBitBufGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufGetMemoryMappingDescriptor; 355 356 pThis->__vidmemAccessBitBufControlFilter__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufControlFilter; 357 358 pThis->__vidmemAccessBitBufUnregisterEvent__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufUnregisterEvent; 359 360 pThis->__vidmemAccessBitBufControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Prologue; 361 362 pThis->__vidmemAccessBitBufCanCopy__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufCanCopy; 363 364 pThis->__vidmemAccessBitBufPreDestruct__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufPreDestruct; 365 366 pThis->__vidmemAccessBitBufIsDuplicate__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufIsDuplicate; 367 368 pThis->__vidmemAccessBitBufControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Epilogue; 369 370 pThis->__vidmemAccessBitBufGetNotificationListPtr__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationListPtr; 371 372 pThis->__vidmemAccessBitBufGetNotificationShare__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationShare; 373 374 pThis->__vidmemAccessBitBufMap__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufMap; 375 376 pThis->__vidmemAccessBitBufAccessCallback__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufAccessCallback; 377 } 378 379 void __nvoc_init_funcTable_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner) { 380 __nvoc_init_funcTable_VidmemAccessBitBuffer_1(pThis, pRmhalspecowner); 381 } 382 383 void __nvoc_init_GpuResource(GpuResource*); 384 void __nvoc_init_Notifier(Notifier*); 385 void __nvoc_init_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner) { 386 pThis->__nvoc_pbase_VidmemAccessBitBuffer = pThis; 387 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object; 388 pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource; 389 pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon; 390 pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource; 391 pThis->__nvoc_pbase_GpuResource = &pThis->__nvoc_base_GpuResource; 392 pThis->__nvoc_pbase_INotifier = &pThis->__nvoc_base_Notifier.__nvoc_base_INotifier; 393 pThis->__nvoc_pbase_Notifier = &pThis->__nvoc_base_Notifier; 394 __nvoc_init_GpuResource(&pThis->__nvoc_base_GpuResource); 395 __nvoc_init_Notifier(&pThis->__nvoc_base_Notifier); 396 __nvoc_init_funcTable_VidmemAccessBitBuffer(pThis, pRmhalspecowner); 397 } 398 399 NV_STATUS __nvoc_objCreate_VidmemAccessBitBuffer(VidmemAccessBitBuffer **ppThis, Dynamic *pParent, NvU32 createFlags, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) { 400 NV_STATUS status; 401 Object *pParentObj; 402 VidmemAccessBitBuffer *pThis; 403 RmHalspecOwner *pRmhalspecowner; 404 405 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(VidmemAccessBitBuffer), (void**)&pThis, (void**)ppThis); 406 if (status != NV_OK) 407 return status; 408 409 portMemSet(pThis, 0, sizeof(VidmemAccessBitBuffer)); 410 411 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_VidmemAccessBitBuffer); 412 413 pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags; 414 415 if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY)) 416 { 417 pParentObj = dynamicCast(pParent, Object); 418 objAddChild(pParentObj, &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object); 419 } 420 else 421 { 422 pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL; 423 } 424 425 if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL) 426 pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent); 427 NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT); 428 429 __nvoc_init_VidmemAccessBitBuffer(pThis, pRmhalspecowner); 430 status = __nvoc_ctor_VidmemAccessBitBuffer(pThis, pRmhalspecowner, arg_pCallContext, arg_pParams); 431 if (status != NV_OK) goto __nvoc_objCreate_VidmemAccessBitBuffer_cleanup; 432 433 *ppThis = pThis; 434 435 return NV_OK; 436 437 __nvoc_objCreate_VidmemAccessBitBuffer_cleanup: 438 // do not call destructors here since the constructor already called them 439 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT) 440 portMemSet(pThis, 0, sizeof(VidmemAccessBitBuffer)); 441 else 442 portMemFree(pThis); 443 444 // coverity[leaked_storage:FALSE] 445 return status; 446 } 447 448 NV_STATUS __nvoc_objCreateDynamic_VidmemAccessBitBuffer(VidmemAccessBitBuffer **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) { 449 NV_STATUS status; 450 CALL_CONTEXT * arg_pCallContext = va_arg(args, CALL_CONTEXT *); 451 struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *); 452 453 status = __nvoc_objCreate_VidmemAccessBitBuffer(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams); 454 455 return status; 456 } 457 458