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