11739a20eSAndy Ritger #define NVOC_SYSTEM_MEM_H_PRIVATE_ACCESS_ALLOWED
21739a20eSAndy Ritger #include "nvoc/runtime.h"
31739a20eSAndy Ritger #include "nvoc/rtti.h"
41739a20eSAndy Ritger #include "nvtypes.h"
51739a20eSAndy Ritger #include "nvport/nvport.h"
61739a20eSAndy Ritger #include "nvport/inline/util_valist.h"
71739a20eSAndy Ritger #include "utils/nvassert.h"
81739a20eSAndy Ritger #include "g_system_mem_nvoc.h"
91739a20eSAndy Ritger 
101739a20eSAndy Ritger #ifdef DEBUG
111739a20eSAndy Ritger char __nvoc_class_id_uniqueness_check_0x007a98 = 1;
121739a20eSAndy Ritger #endif
131739a20eSAndy Ritger 
141739a20eSAndy Ritger extern const struct NVOC_CLASS_DEF __nvoc_class_def_SystemMemory;
151739a20eSAndy Ritger 
161739a20eSAndy Ritger extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
171739a20eSAndy Ritger 
181739a20eSAndy Ritger extern const struct NVOC_CLASS_DEF __nvoc_class_def_RsResource;
191739a20eSAndy Ritger 
201739a20eSAndy Ritger extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResourceCommon;
211739a20eSAndy Ritger 
221739a20eSAndy Ritger extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResource;
231739a20eSAndy Ritger 
241739a20eSAndy Ritger extern const struct NVOC_CLASS_DEF __nvoc_class_def_Memory;
251739a20eSAndy Ritger 
261739a20eSAndy Ritger extern const struct NVOC_CLASS_DEF __nvoc_class_def_StandardMemory;
271739a20eSAndy Ritger 
281739a20eSAndy Ritger void __nvoc_init_SystemMemory(SystemMemory*);
291739a20eSAndy Ritger void __nvoc_init_funcTable_SystemMemory(SystemMemory*);
301739a20eSAndy Ritger NV_STATUS __nvoc_ctor_SystemMemory(SystemMemory*, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
311739a20eSAndy Ritger void __nvoc_init_dataField_SystemMemory(SystemMemory*);
321739a20eSAndy Ritger void __nvoc_dtor_SystemMemory(SystemMemory*);
331739a20eSAndy Ritger extern const struct NVOC_EXPORT_INFO __nvoc_export_info_SystemMemory;
341739a20eSAndy Ritger 
351739a20eSAndy Ritger static const struct NVOC_RTTI __nvoc_rtti_SystemMemory_SystemMemory = {
361739a20eSAndy Ritger     /*pClassDef=*/          &__nvoc_class_def_SystemMemory,
371739a20eSAndy Ritger     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_SystemMemory,
381739a20eSAndy Ritger     /*offset=*/             0,
391739a20eSAndy Ritger };
401739a20eSAndy Ritger 
411739a20eSAndy Ritger static const struct NVOC_RTTI __nvoc_rtti_SystemMemory_Object = {
421739a20eSAndy Ritger     /*pClassDef=*/          &__nvoc_class_def_Object,
431739a20eSAndy Ritger     /*dtor=*/               &__nvoc_destructFromBase,
441739a20eSAndy Ritger     /*offset=*/             NV_OFFSETOF(SystemMemory, __nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object),
451739a20eSAndy Ritger };
461739a20eSAndy Ritger 
471739a20eSAndy Ritger static const struct NVOC_RTTI __nvoc_rtti_SystemMemory_RsResource = {
481739a20eSAndy Ritger     /*pClassDef=*/          &__nvoc_class_def_RsResource,
491739a20eSAndy Ritger     /*dtor=*/               &__nvoc_destructFromBase,
501739a20eSAndy Ritger     /*offset=*/             NV_OFFSETOF(SystemMemory, __nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource),
511739a20eSAndy Ritger };
521739a20eSAndy Ritger 
531739a20eSAndy Ritger static const struct NVOC_RTTI __nvoc_rtti_SystemMemory_RmResourceCommon = {
541739a20eSAndy Ritger     /*pClassDef=*/          &__nvoc_class_def_RmResourceCommon,
551739a20eSAndy Ritger     /*dtor=*/               &__nvoc_destructFromBase,
561739a20eSAndy Ritger     /*offset=*/             NV_OFFSETOF(SystemMemory, __nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon),
571739a20eSAndy Ritger };
581739a20eSAndy Ritger 
591739a20eSAndy Ritger static const struct NVOC_RTTI __nvoc_rtti_SystemMemory_RmResource = {
601739a20eSAndy Ritger     /*pClassDef=*/          &__nvoc_class_def_RmResource,
611739a20eSAndy Ritger     /*dtor=*/               &__nvoc_destructFromBase,
621739a20eSAndy Ritger     /*offset=*/             NV_OFFSETOF(SystemMemory, __nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource),
631739a20eSAndy Ritger };
641739a20eSAndy Ritger 
651739a20eSAndy Ritger static const struct NVOC_RTTI __nvoc_rtti_SystemMemory_Memory = {
661739a20eSAndy Ritger     /*pClassDef=*/          &__nvoc_class_def_Memory,
671739a20eSAndy Ritger     /*dtor=*/               &__nvoc_destructFromBase,
681739a20eSAndy Ritger     /*offset=*/             NV_OFFSETOF(SystemMemory, __nvoc_base_StandardMemory.__nvoc_base_Memory),
691739a20eSAndy Ritger };
701739a20eSAndy Ritger 
711739a20eSAndy Ritger static const struct NVOC_RTTI __nvoc_rtti_SystemMemory_StandardMemory = {
721739a20eSAndy Ritger     /*pClassDef=*/          &__nvoc_class_def_StandardMemory,
731739a20eSAndy Ritger     /*dtor=*/               &__nvoc_destructFromBase,
741739a20eSAndy Ritger     /*offset=*/             NV_OFFSETOF(SystemMemory, __nvoc_base_StandardMemory),
751739a20eSAndy Ritger };
761739a20eSAndy Ritger 
771739a20eSAndy Ritger static const struct NVOC_CASTINFO __nvoc_castinfo_SystemMemory = {
781739a20eSAndy Ritger     /*numRelatives=*/       7,
791739a20eSAndy Ritger     /*relatives=*/ {
801739a20eSAndy Ritger         &__nvoc_rtti_SystemMemory_SystemMemory,
811739a20eSAndy Ritger         &__nvoc_rtti_SystemMemory_StandardMemory,
821739a20eSAndy Ritger         &__nvoc_rtti_SystemMemory_Memory,
831739a20eSAndy Ritger         &__nvoc_rtti_SystemMemory_RmResource,
841739a20eSAndy Ritger         &__nvoc_rtti_SystemMemory_RmResourceCommon,
851739a20eSAndy Ritger         &__nvoc_rtti_SystemMemory_RsResource,
861739a20eSAndy Ritger         &__nvoc_rtti_SystemMemory_Object,
871739a20eSAndy Ritger     },
881739a20eSAndy Ritger };
891739a20eSAndy Ritger 
901739a20eSAndy Ritger const struct NVOC_CLASS_DEF __nvoc_class_def_SystemMemory =
911739a20eSAndy Ritger {
921739a20eSAndy Ritger     /*classInfo=*/ {
931739a20eSAndy Ritger         /*size=*/               sizeof(SystemMemory),
941739a20eSAndy Ritger         /*classId=*/            classId(SystemMemory),
951739a20eSAndy Ritger         /*providerId=*/         &__nvoc_rtti_provider,
961739a20eSAndy Ritger #if NV_PRINTF_STRINGS_ALLOWED
971739a20eSAndy Ritger         /*name=*/               "SystemMemory",
981739a20eSAndy Ritger #endif
991739a20eSAndy Ritger     },
1001739a20eSAndy Ritger     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_SystemMemory,
1011739a20eSAndy Ritger     /*pCastInfo=*/          &__nvoc_castinfo_SystemMemory,
1021739a20eSAndy Ritger     /*pExportInfo=*/        &__nvoc_export_info_SystemMemory
1031739a20eSAndy Ritger };
1041739a20eSAndy Ritger 
__nvoc_thunk_Memory_sysmemCheckMemInterUnmap(struct SystemMemory * pMemory,NvBool bSubdeviceHandleProvided)1051739a20eSAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemCheckMemInterUnmap(struct SystemMemory *pMemory, NvBool bSubdeviceHandleProvided) {
1061739a20eSAndy Ritger     return memCheckMemInterUnmap((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), bSubdeviceHandleProvided);
1071739a20eSAndy Ritger }
1081739a20eSAndy Ritger 
__nvoc_thunk_RmResource_sysmemShareCallback(struct SystemMemory * pResource,struct RsClient * pInvokingClient,struct RsResourceRef * pParentRef,RS_SHARE_POLICY * pSharePolicy)1094397463eSAndy Ritger static NvBool __nvoc_thunk_RmResource_sysmemShareCallback(struct SystemMemory *pResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
1104397463eSAndy Ritger     return rmresShareCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RmResource.offset), pInvokingClient, pParentRef, pSharePolicy);
1114397463eSAndy Ritger }
1124397463eSAndy Ritger 
__nvoc_thunk_RsResource_sysmemMapTo(struct SystemMemory * pResource,RS_RES_MAP_TO_PARAMS * pParams)1134397463eSAndy Ritger static NV_STATUS __nvoc_thunk_RsResource_sysmemMapTo(struct SystemMemory *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
1144397463eSAndy Ritger     return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RsResource.offset), pParams);
1154397463eSAndy Ritger }
1164397463eSAndy Ritger 
__nvoc_thunk_Memory_sysmemGetMapAddrSpace(struct SystemMemory * pMemory,CALL_CONTEXT * pCallContext,NvU32 mapFlags,NV_ADDRESS_SPACE * pAddrSpace)1174397463eSAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemGetMapAddrSpace(struct SystemMemory *pMemory, CALL_CONTEXT *pCallContext, NvU32 mapFlags, NV_ADDRESS_SPACE *pAddrSpace) {
1184397463eSAndy Ritger     return memGetMapAddrSpace((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), pCallContext, mapFlags, pAddrSpace);
1194397463eSAndy Ritger }
1204397463eSAndy Ritger 
__nvoc_thunk_Memory_sysmemIsExportAllowed(struct SystemMemory * pMemory)121b5bf85a8SAndy Ritger static NvBool __nvoc_thunk_Memory_sysmemIsExportAllowed(struct SystemMemory *pMemory) {
122b5bf85a8SAndy Ritger     return memIsExportAllowed((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset));
123b5bf85a8SAndy Ritger }
124b5bf85a8SAndy Ritger 
__nvoc_thunk_RsResource_sysmemGetRefCount(struct SystemMemory * pResource)1254397463eSAndy Ritger static NvU32 __nvoc_thunk_RsResource_sysmemGetRefCount(struct SystemMemory *pResource) {
1264397463eSAndy Ritger     return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RsResource.offset));
1274397463eSAndy Ritger }
1284397463eSAndy Ritger 
__nvoc_thunk_RsResource_sysmemAddAdditionalDependants(struct RsClient * pClient,struct SystemMemory * pResource,RsResourceRef * pReference)1294397463eSAndy Ritger static void __nvoc_thunk_RsResource_sysmemAddAdditionalDependants(struct RsClient *pClient, struct SystemMemory *pResource, RsResourceRef *pReference) {
1304397463eSAndy Ritger     resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RsResource.offset), pReference);
1314397463eSAndy Ritger }
1324397463eSAndy Ritger 
__nvoc_thunk_RmResource_sysmemControl_Prologue(struct SystemMemory * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)1334397463eSAndy Ritger static NV_STATUS __nvoc_thunk_RmResource_sysmemControl_Prologue(struct SystemMemory *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1344397463eSAndy Ritger     return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RmResource.offset), pCallContext, pParams);
1354397463eSAndy Ritger }
1364397463eSAndy Ritger 
__nvoc_thunk_Memory_sysmemIsGpuMapAllowed(struct SystemMemory * pMemory,struct OBJGPU * pGpu)1374397463eSAndy Ritger static NvBool __nvoc_thunk_Memory_sysmemIsGpuMapAllowed(struct SystemMemory *pMemory, struct OBJGPU *pGpu) {
1384397463eSAndy Ritger     return memIsGpuMapAllowed((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), pGpu);
1394397463eSAndy Ritger }
1404397463eSAndy Ritger 
__nvoc_thunk_RsResource_sysmemUnmapFrom(struct SystemMemory * pResource,RS_RES_UNMAP_FROM_PARAMS * pParams)1414397463eSAndy Ritger static NV_STATUS __nvoc_thunk_RsResource_sysmemUnmapFrom(struct SystemMemory *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
1424397463eSAndy Ritger     return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RsResource.offset), pParams);
1434397463eSAndy Ritger }
1444397463eSAndy Ritger 
__nvoc_thunk_RmResource_sysmemControl_Epilogue(struct SystemMemory * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)1454397463eSAndy Ritger static void __nvoc_thunk_RmResource_sysmemControl_Epilogue(struct SystemMemory *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1464397463eSAndy Ritger     rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RmResource.offset), pCallContext, pParams);
1474397463eSAndy Ritger }
1484397463eSAndy Ritger 
__nvoc_thunk_Memory_sysmemControl(struct SystemMemory * pMemory,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)1491739a20eSAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemControl(struct SystemMemory *pMemory, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1501739a20eSAndy Ritger     return memControl((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), pCallContext, pParams);
1511739a20eSAndy Ritger }
1521739a20eSAndy Ritger 
__nvoc_thunk_Memory_sysmemUnmap(struct SystemMemory * pMemory,CALL_CONTEXT * pCallContext,RsCpuMapping * pCpuMapping)1531739a20eSAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemUnmap(struct SystemMemory *pMemory, CALL_CONTEXT *pCallContext, RsCpuMapping *pCpuMapping) {
1541739a20eSAndy Ritger     return memUnmap((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), pCallContext, pCpuMapping);
1551739a20eSAndy Ritger }
1561739a20eSAndy Ritger 
__nvoc_thunk_Memory_sysmemGetMemInterMapParams(struct SystemMemory * pMemory,RMRES_MEM_INTER_MAP_PARAMS * pParams)1571739a20eSAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemGetMemInterMapParams(struct SystemMemory *pMemory, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
1581739a20eSAndy Ritger     return memGetMemInterMapParams((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), pParams);
1591739a20eSAndy Ritger }
1601739a20eSAndy Ritger 
__nvoc_thunk_Memory_sysmemGetMemoryMappingDescriptor(struct SystemMemory * pMemory,MEMORY_DESCRIPTOR ** ppMemDesc)1611739a20eSAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemGetMemoryMappingDescriptor(struct SystemMemory *pMemory, MEMORY_DESCRIPTOR **ppMemDesc) {
1621739a20eSAndy Ritger     return memGetMemoryMappingDescriptor((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), ppMemDesc);
1631739a20eSAndy Ritger }
1641739a20eSAndy Ritger 
__nvoc_thunk_RsResource_sysmemControlFilter(struct SystemMemory * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)1651739a20eSAndy Ritger static NV_STATUS __nvoc_thunk_RsResource_sysmemControlFilter(struct SystemMemory *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1661739a20eSAndy Ritger     return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RsResource.offset), pCallContext, pParams);
1671739a20eSAndy Ritger }
1681739a20eSAndy Ritger 
__nvoc_thunk_RmResource_sysmemControlSerialization_Prologue(struct SystemMemory * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)1694397463eSAndy Ritger static NV_STATUS __nvoc_thunk_RmResource_sysmemControlSerialization_Prologue(struct SystemMemory *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1704397463eSAndy Ritger     return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RmResource.offset), pCallContext, pParams);
1711739a20eSAndy Ritger }
1721739a20eSAndy Ritger 
__nvoc_thunk_StandardMemory_sysmemCanCopy(struct SystemMemory * pStandardMemory)1731739a20eSAndy Ritger static NvBool __nvoc_thunk_StandardMemory_sysmemCanCopy(struct SystemMemory *pStandardMemory) {
1741739a20eSAndy Ritger     return stdmemCanCopy((struct StandardMemory *)(((unsigned char *)pStandardMemory) + __nvoc_rtti_SystemMemory_StandardMemory.offset));
1751739a20eSAndy Ritger }
1761739a20eSAndy Ritger 
__nvoc_thunk_RsResource_sysmemIsPartialUnmapSupported(struct SystemMemory * pResource)177*91676d66SBernhard Stoeckner static NvBool __nvoc_thunk_RsResource_sysmemIsPartialUnmapSupported(struct SystemMemory *pResource) {
178*91676d66SBernhard Stoeckner     return resIsPartialUnmapSupported((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RsResource.offset));
179*91676d66SBernhard Stoeckner }
180*91676d66SBernhard Stoeckner 
__nvoc_thunk_Memory_sysmemIsReady(struct SystemMemory * pMemory,NvBool bCopyConstructorContext)181758b4ee8SAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemIsReady(struct SystemMemory *pMemory, NvBool bCopyConstructorContext) {
182758b4ee8SAndy Ritger     return memIsReady((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), bCopyConstructorContext);
1831739a20eSAndy Ritger }
1841739a20eSAndy Ritger 
__nvoc_thunk_Memory_sysmemCheckCopyPermissions(struct SystemMemory * pMemory,struct OBJGPU * pDstGpu,struct Device * pDstDevice)185eb5c7665SAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemCheckCopyPermissions(struct SystemMemory *pMemory, struct OBJGPU *pDstGpu, struct Device *pDstDevice) {
186eb5c7665SAndy Ritger     return memCheckCopyPermissions((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), pDstGpu, pDstDevice);
1871739a20eSAndy Ritger }
1881739a20eSAndy Ritger 
__nvoc_thunk_RsResource_sysmemPreDestruct(struct SystemMemory * pResource)1891739a20eSAndy Ritger static void __nvoc_thunk_RsResource_sysmemPreDestruct(struct SystemMemory *pResource) {
1901739a20eSAndy Ritger     resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RsResource.offset));
1911739a20eSAndy Ritger }
1921739a20eSAndy Ritger 
__nvoc_thunk_Memory_sysmemIsDuplicate(struct SystemMemory * pMemory,NvHandle hMemory,NvBool * pDuplicate)193758b4ee8SAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemIsDuplicate(struct SystemMemory *pMemory, NvHandle hMemory, NvBool *pDuplicate) {
194758b4ee8SAndy Ritger     return memIsDuplicate((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), hMemory, pDuplicate);
195758b4ee8SAndy Ritger }
196758b4ee8SAndy Ritger 
__nvoc_thunk_RmResource_sysmemControlSerialization_Epilogue(struct SystemMemory * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)1974397463eSAndy Ritger static void __nvoc_thunk_RmResource_sysmemControlSerialization_Epilogue(struct SystemMemory *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
1984397463eSAndy Ritger     rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RmResource.offset), pCallContext, pParams);
1991739a20eSAndy Ritger }
2001739a20eSAndy Ritger 
__nvoc_thunk_Memory_sysmemMap(struct SystemMemory * pMemory,CALL_CONTEXT * pCallContext,struct RS_CPU_MAP_PARAMS * pParams,RsCpuMapping * pCpuMapping)2011739a20eSAndy Ritger static NV_STATUS __nvoc_thunk_Memory_sysmemMap(struct SystemMemory *pMemory, CALL_CONTEXT *pCallContext, struct RS_CPU_MAP_PARAMS *pParams, RsCpuMapping *pCpuMapping) {
2021739a20eSAndy Ritger     return memMap((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_SystemMemory_Memory.offset), pCallContext, pParams, pCpuMapping);
2031739a20eSAndy Ritger }
2041739a20eSAndy Ritger 
__nvoc_thunk_RmResource_sysmemAccessCallback(struct SystemMemory * pResource,struct RsClient * pInvokingClient,void * pAllocParams,RsAccessRight accessRight)2051739a20eSAndy Ritger static NvBool __nvoc_thunk_RmResource_sysmemAccessCallback(struct SystemMemory *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
2061739a20eSAndy Ritger     return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SystemMemory_RmResource.offset), pInvokingClient, pAllocParams, accessRight);
2071739a20eSAndy Ritger }
2081739a20eSAndy Ritger 
2091739a20eSAndy Ritger #if !defined(NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG)
2101739a20eSAndy Ritger #define NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(x)      (0)
2111739a20eSAndy Ritger #endif
2121739a20eSAndy Ritger 
2131739a20eSAndy Ritger static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_SystemMemory[] =
2141739a20eSAndy Ritger {
2151739a20eSAndy Ritger     {               /*  [0] */
216*91676d66SBernhard Stoeckner #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x801u)
2171739a20eSAndy Ritger         /*pFunc=*/      (void (*)(void)) NULL,
2181739a20eSAndy Ritger #else
2191739a20eSAndy Ritger         /*pFunc=*/      (void (*)(void)) sysmemCtrlCmdGetSurfaceNumPhysPages_IMPL,
220*91676d66SBernhard Stoeckner #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x801u)
221*91676d66SBernhard Stoeckner         /*flags=*/      0x801u,
2221739a20eSAndy Ritger         /*accessRight=*/0x0u,
2231739a20eSAndy Ritger         /*methodId=*/   0x3e0102u,
2241739a20eSAndy Ritger         /*paramSize=*/  sizeof(NV003E_CTRL_GET_SURFACE_NUM_PHYS_PAGES_PARAMS),
2251739a20eSAndy Ritger         /*pClassInfo=*/ &(__nvoc_class_def_SystemMemory.classInfo),
2261739a20eSAndy Ritger #if NV_PRINTF_STRINGS_ALLOWED
2271739a20eSAndy Ritger         /*func=*/       "sysmemCtrlCmdGetSurfaceNumPhysPages"
2281739a20eSAndy Ritger #endif
2291739a20eSAndy Ritger     },
2301739a20eSAndy Ritger     {               /*  [1] */
231*91676d66SBernhard Stoeckner #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x801u)
2321739a20eSAndy Ritger         /*pFunc=*/      (void (*)(void)) NULL,
2331739a20eSAndy Ritger #else
2341739a20eSAndy Ritger         /*pFunc=*/      (void (*)(void)) sysmemCtrlCmdGetSurfacePhysPages_IMPL,
235*91676d66SBernhard Stoeckner #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x801u)
236*91676d66SBernhard Stoeckner         /*flags=*/      0x801u,
2371739a20eSAndy Ritger         /*accessRight=*/0x0u,
2381739a20eSAndy Ritger         /*methodId=*/   0x3e0103u,
2391739a20eSAndy Ritger         /*paramSize=*/  sizeof(NV003E_CTRL_GET_SURFACE_PHYS_PAGES_PARAMS),
2401739a20eSAndy Ritger         /*pClassInfo=*/ &(__nvoc_class_def_SystemMemory.classInfo),
2411739a20eSAndy Ritger #if NV_PRINTF_STRINGS_ALLOWED
2421739a20eSAndy Ritger         /*func=*/       "sysmemCtrlCmdGetSurfacePhysPages"
2431739a20eSAndy Ritger #endif
2441739a20eSAndy Ritger     },
2451739a20eSAndy Ritger 
2461739a20eSAndy Ritger };
2471739a20eSAndy Ritger 
2481739a20eSAndy Ritger const struct NVOC_EXPORT_INFO __nvoc_export_info_SystemMemory =
2491739a20eSAndy Ritger {
2501739a20eSAndy Ritger     /*numEntries=*/     2,
2511739a20eSAndy Ritger     /*pExportEntries=*/ __nvoc_exported_method_def_SystemMemory
2521739a20eSAndy Ritger };
2531739a20eSAndy Ritger 
2541739a20eSAndy Ritger void __nvoc_dtor_StandardMemory(StandardMemory*);
__nvoc_dtor_SystemMemory(SystemMemory * pThis)2551739a20eSAndy Ritger void __nvoc_dtor_SystemMemory(SystemMemory *pThis) {
2561739a20eSAndy Ritger     __nvoc_dtor_StandardMemory(&pThis->__nvoc_base_StandardMemory);
2571739a20eSAndy Ritger     PORT_UNREFERENCED_VARIABLE(pThis);
2581739a20eSAndy Ritger }
2591739a20eSAndy Ritger 
__nvoc_init_dataField_SystemMemory(SystemMemory * pThis)2601739a20eSAndy Ritger void __nvoc_init_dataField_SystemMemory(SystemMemory *pThis) {
2611739a20eSAndy Ritger     PORT_UNREFERENCED_VARIABLE(pThis);
2621739a20eSAndy Ritger }
2631739a20eSAndy Ritger 
2641739a20eSAndy Ritger NV_STATUS __nvoc_ctor_StandardMemory(StandardMemory* , CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
__nvoc_ctor_SystemMemory(SystemMemory * pThis,CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)2651739a20eSAndy Ritger NV_STATUS __nvoc_ctor_SystemMemory(SystemMemory *pThis, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
2661739a20eSAndy Ritger     NV_STATUS status = NV_OK;
2671739a20eSAndy Ritger     status = __nvoc_ctor_StandardMemory(&pThis->__nvoc_base_StandardMemory, arg_pCallContext, arg_pParams);
2681739a20eSAndy Ritger     if (status != NV_OK) goto __nvoc_ctor_SystemMemory_fail_StandardMemory;
2691739a20eSAndy Ritger     __nvoc_init_dataField_SystemMemory(pThis);
2701739a20eSAndy Ritger 
2711739a20eSAndy Ritger     status = __nvoc_sysmemConstruct(pThis, arg_pCallContext, arg_pParams);
2721739a20eSAndy Ritger     if (status != NV_OK) goto __nvoc_ctor_SystemMemory_fail__init;
2731739a20eSAndy Ritger     goto __nvoc_ctor_SystemMemory_exit; // Success
2741739a20eSAndy Ritger 
2751739a20eSAndy Ritger __nvoc_ctor_SystemMemory_fail__init:
2761739a20eSAndy Ritger     __nvoc_dtor_StandardMemory(&pThis->__nvoc_base_StandardMemory);
2771739a20eSAndy Ritger __nvoc_ctor_SystemMemory_fail_StandardMemory:
2781739a20eSAndy Ritger __nvoc_ctor_SystemMemory_exit:
2791739a20eSAndy Ritger 
2801739a20eSAndy Ritger     return status;
2811739a20eSAndy Ritger }
2821739a20eSAndy Ritger 
__nvoc_init_funcTable_SystemMemory_1(SystemMemory * pThis)2831739a20eSAndy Ritger static void __nvoc_init_funcTable_SystemMemory_1(SystemMemory *pThis) {
2841739a20eSAndy Ritger     PORT_UNREFERENCED_VARIABLE(pThis);
2851739a20eSAndy Ritger 
286*91676d66SBernhard Stoeckner #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x801u)
2871739a20eSAndy Ritger     pThis->__sysmemCtrlCmdGetSurfaceNumPhysPages__ = &sysmemCtrlCmdGetSurfaceNumPhysPages_IMPL;
2881739a20eSAndy Ritger #endif
2891739a20eSAndy Ritger 
290*91676d66SBernhard Stoeckner #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x801u)
2911739a20eSAndy Ritger     pThis->__sysmemCtrlCmdGetSurfacePhysPages__ = &sysmemCtrlCmdGetSurfacePhysPages_IMPL;
2921739a20eSAndy Ritger #endif
2931739a20eSAndy Ritger 
2941739a20eSAndy Ritger     pThis->__sysmemCheckMemInterUnmap__ = &__nvoc_thunk_Memory_sysmemCheckMemInterUnmap;
2951739a20eSAndy Ritger 
2964397463eSAndy Ritger     pThis->__sysmemShareCallback__ = &__nvoc_thunk_RmResource_sysmemShareCallback;
2974397463eSAndy Ritger 
2984397463eSAndy Ritger     pThis->__sysmemMapTo__ = &__nvoc_thunk_RsResource_sysmemMapTo;
2994397463eSAndy Ritger 
3004397463eSAndy Ritger     pThis->__sysmemGetMapAddrSpace__ = &__nvoc_thunk_Memory_sysmemGetMapAddrSpace;
3014397463eSAndy Ritger 
302b5bf85a8SAndy Ritger     pThis->__sysmemIsExportAllowed__ = &__nvoc_thunk_Memory_sysmemIsExportAllowed;
303b5bf85a8SAndy Ritger 
3044397463eSAndy Ritger     pThis->__sysmemGetRefCount__ = &__nvoc_thunk_RsResource_sysmemGetRefCount;
3054397463eSAndy Ritger 
3064397463eSAndy Ritger     pThis->__sysmemAddAdditionalDependants__ = &__nvoc_thunk_RsResource_sysmemAddAdditionalDependants;
3074397463eSAndy Ritger 
3084397463eSAndy Ritger     pThis->__sysmemControl_Prologue__ = &__nvoc_thunk_RmResource_sysmemControl_Prologue;
3094397463eSAndy Ritger 
3104397463eSAndy Ritger     pThis->__sysmemIsGpuMapAllowed__ = &__nvoc_thunk_Memory_sysmemIsGpuMapAllowed;
3114397463eSAndy Ritger 
3124397463eSAndy Ritger     pThis->__sysmemUnmapFrom__ = &__nvoc_thunk_RsResource_sysmemUnmapFrom;
3134397463eSAndy Ritger 
3144397463eSAndy Ritger     pThis->__sysmemControl_Epilogue__ = &__nvoc_thunk_RmResource_sysmemControl_Epilogue;
3154397463eSAndy Ritger 
3161739a20eSAndy Ritger     pThis->__sysmemControl__ = &__nvoc_thunk_Memory_sysmemControl;
3171739a20eSAndy Ritger 
3181739a20eSAndy Ritger     pThis->__sysmemUnmap__ = &__nvoc_thunk_Memory_sysmemUnmap;
3191739a20eSAndy Ritger 
3201739a20eSAndy Ritger     pThis->__sysmemGetMemInterMapParams__ = &__nvoc_thunk_Memory_sysmemGetMemInterMapParams;
3211739a20eSAndy Ritger 
3221739a20eSAndy Ritger     pThis->__sysmemGetMemoryMappingDescriptor__ = &__nvoc_thunk_Memory_sysmemGetMemoryMappingDescriptor;
3231739a20eSAndy Ritger 
3241739a20eSAndy Ritger     pThis->__sysmemControlFilter__ = &__nvoc_thunk_RsResource_sysmemControlFilter;
3251739a20eSAndy Ritger 
3264397463eSAndy Ritger     pThis->__sysmemControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_sysmemControlSerialization_Prologue;
3271739a20eSAndy Ritger 
3281739a20eSAndy Ritger     pThis->__sysmemCanCopy__ = &__nvoc_thunk_StandardMemory_sysmemCanCopy;
3291739a20eSAndy Ritger 
330*91676d66SBernhard Stoeckner     pThis->__sysmemIsPartialUnmapSupported__ = &__nvoc_thunk_RsResource_sysmemIsPartialUnmapSupported;
331*91676d66SBernhard Stoeckner 
3321739a20eSAndy Ritger     pThis->__sysmemIsReady__ = &__nvoc_thunk_Memory_sysmemIsReady;
3331739a20eSAndy Ritger 
3341739a20eSAndy Ritger     pThis->__sysmemCheckCopyPermissions__ = &__nvoc_thunk_Memory_sysmemCheckCopyPermissions;
3351739a20eSAndy Ritger 
3361739a20eSAndy Ritger     pThis->__sysmemPreDestruct__ = &__nvoc_thunk_RsResource_sysmemPreDestruct;
3371739a20eSAndy Ritger 
338758b4ee8SAndy Ritger     pThis->__sysmemIsDuplicate__ = &__nvoc_thunk_Memory_sysmemIsDuplicate;
339758b4ee8SAndy Ritger 
3404397463eSAndy Ritger     pThis->__sysmemControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_sysmemControlSerialization_Epilogue;
3411739a20eSAndy Ritger 
3421739a20eSAndy Ritger     pThis->__sysmemMap__ = &__nvoc_thunk_Memory_sysmemMap;
3431739a20eSAndy Ritger 
3441739a20eSAndy Ritger     pThis->__sysmemAccessCallback__ = &__nvoc_thunk_RmResource_sysmemAccessCallback;
3451739a20eSAndy Ritger }
3461739a20eSAndy Ritger 
__nvoc_init_funcTable_SystemMemory(SystemMemory * pThis)3471739a20eSAndy Ritger void __nvoc_init_funcTable_SystemMemory(SystemMemory *pThis) {
3481739a20eSAndy Ritger     __nvoc_init_funcTable_SystemMemory_1(pThis);
3491739a20eSAndy Ritger }
3501739a20eSAndy Ritger 
3511739a20eSAndy Ritger void __nvoc_init_StandardMemory(StandardMemory*);
__nvoc_init_SystemMemory(SystemMemory * pThis)3521739a20eSAndy Ritger void __nvoc_init_SystemMemory(SystemMemory *pThis) {
3531739a20eSAndy Ritger     pThis->__nvoc_pbase_SystemMemory = pThis;
3541739a20eSAndy Ritger     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
3551739a20eSAndy Ritger     pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource;
3561739a20eSAndy Ritger     pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
3571739a20eSAndy Ritger     pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource;
3581739a20eSAndy Ritger     pThis->__nvoc_pbase_Memory = &pThis->__nvoc_base_StandardMemory.__nvoc_base_Memory;
3591739a20eSAndy Ritger     pThis->__nvoc_pbase_StandardMemory = &pThis->__nvoc_base_StandardMemory;
3601739a20eSAndy Ritger     __nvoc_init_StandardMemory(&pThis->__nvoc_base_StandardMemory);
3611739a20eSAndy Ritger     __nvoc_init_funcTable_SystemMemory(pThis);
3621739a20eSAndy Ritger }
3631739a20eSAndy Ritger 
__nvoc_objCreate_SystemMemory(SystemMemory ** ppThis,Dynamic * pParent,NvU32 createFlags,CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)364*91676d66SBernhard Stoeckner NV_STATUS __nvoc_objCreate_SystemMemory(SystemMemory **ppThis, Dynamic *pParent, NvU32 createFlags, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)
365*91676d66SBernhard Stoeckner {
3661739a20eSAndy Ritger     NV_STATUS status;
367*91676d66SBernhard Stoeckner     Object *pParentObj = NULL;
3681739a20eSAndy Ritger     SystemMemory *pThis;
3691739a20eSAndy Ritger 
370*91676d66SBernhard Stoeckner     // Assign `pThis`, allocating memory unless suppressed by flag.
3714397463eSAndy Ritger     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(SystemMemory), (void**)&pThis, (void**)ppThis);
3724397463eSAndy Ritger     if (status != NV_OK)
3734397463eSAndy Ritger         return status;
3741739a20eSAndy Ritger 
375*91676d66SBernhard Stoeckner     // Zero is the initial value for everything.
3761739a20eSAndy Ritger     portMemSet(pThis, 0, sizeof(SystemMemory));
3771739a20eSAndy Ritger 
378*91676d66SBernhard Stoeckner     // Initialize runtime type information.
3791739a20eSAndy Ritger     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_SystemMemory);
3801739a20eSAndy Ritger 
3814397463eSAndy Ritger     pThis->__nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
3824397463eSAndy Ritger 
383*91676d66SBernhard Stoeckner     // Link the child into the parent if there is one unless flagged not to do so.
3841739a20eSAndy Ritger     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
3851739a20eSAndy Ritger     {
3861739a20eSAndy Ritger         pParentObj = dynamicCast(pParent, Object);
3871739a20eSAndy Ritger         objAddChild(pParentObj, &pThis->__nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
3881739a20eSAndy Ritger     }
3891739a20eSAndy Ritger     else
3901739a20eSAndy Ritger     {
3911739a20eSAndy Ritger         pThis->__nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
3921739a20eSAndy Ritger     }
3931739a20eSAndy Ritger 
3941739a20eSAndy Ritger     __nvoc_init_SystemMemory(pThis);
3951739a20eSAndy Ritger     status = __nvoc_ctor_SystemMemory(pThis, arg_pCallContext, arg_pParams);
3961739a20eSAndy Ritger     if (status != NV_OK) goto __nvoc_objCreate_SystemMemory_cleanup;
3971739a20eSAndy Ritger 
398*91676d66SBernhard Stoeckner     // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
3991739a20eSAndy Ritger     *ppThis = pThis;
4004397463eSAndy Ritger 
4011739a20eSAndy Ritger     return NV_OK;
4021739a20eSAndy Ritger 
4031739a20eSAndy Ritger __nvoc_objCreate_SystemMemory_cleanup:
404*91676d66SBernhard Stoeckner 
405*91676d66SBernhard Stoeckner     // Unlink the child from the parent if it was linked above.
406*91676d66SBernhard Stoeckner     if (pParentObj != NULL)
407*91676d66SBernhard Stoeckner         objRemoveChild(pParentObj, &pThis->__nvoc_base_StandardMemory.__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
408*91676d66SBernhard Stoeckner 
409*91676d66SBernhard Stoeckner     // Do not call destructors here since the constructor already called them.
4104397463eSAndy Ritger     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
4114397463eSAndy Ritger         portMemSet(pThis, 0, sizeof(SystemMemory));
4124397463eSAndy Ritger     else
413*91676d66SBernhard Stoeckner     {
4141739a20eSAndy Ritger         portMemFree(pThis);
415*91676d66SBernhard Stoeckner         *ppThis = NULL;
416*91676d66SBernhard Stoeckner     }
4174397463eSAndy Ritger 
4184397463eSAndy Ritger     // coverity[leaked_storage:FALSE]
4191739a20eSAndy Ritger     return status;
4201739a20eSAndy Ritger }
4211739a20eSAndy Ritger 
__nvoc_objCreateDynamic_SystemMemory(SystemMemory ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)4221739a20eSAndy Ritger NV_STATUS __nvoc_objCreateDynamic_SystemMemory(SystemMemory **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
4231739a20eSAndy Ritger     NV_STATUS status;
4241739a20eSAndy Ritger     CALL_CONTEXT * arg_pCallContext = va_arg(args, CALL_CONTEXT *);
4251739a20eSAndy Ritger     struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
4261739a20eSAndy Ritger 
4271739a20eSAndy Ritger     status = __nvoc_objCreate_SystemMemory(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
4281739a20eSAndy Ritger 
4291739a20eSAndy Ritger     return status;
4301739a20eSAndy Ritger }
4311739a20eSAndy Ritger 
432