1 #define NVOC_MEM_MULTICAST_FABRIC_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_mem_multicast_fabric_nvoc.h"
9 
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x130210 = 1;
12 #endif
13 
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_MemoryMulticastFabric;
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_Memory;
25 
26 void __nvoc_init_MemoryMulticastFabric(MemoryMulticastFabric*);
27 void __nvoc_init_funcTable_MemoryMulticastFabric(MemoryMulticastFabric*);
28 NV_STATUS __nvoc_ctor_MemoryMulticastFabric(MemoryMulticastFabric*, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
29 void __nvoc_init_dataField_MemoryMulticastFabric(MemoryMulticastFabric*);
30 void __nvoc_dtor_MemoryMulticastFabric(MemoryMulticastFabric*);
31 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_MemoryMulticastFabric;
32 
33 static const struct NVOC_RTTI __nvoc_rtti_MemoryMulticastFabric_MemoryMulticastFabric = {
34     /*pClassDef=*/          &__nvoc_class_def_MemoryMulticastFabric,
35     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_MemoryMulticastFabric,
36     /*offset=*/             0,
37 };
38 
39 static const struct NVOC_RTTI __nvoc_rtti_MemoryMulticastFabric_Object = {
40     /*pClassDef=*/          &__nvoc_class_def_Object,
41     /*dtor=*/               &__nvoc_destructFromBase,
42     /*offset=*/             NV_OFFSETOF(MemoryMulticastFabric, __nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object),
43 };
44 
45 static const struct NVOC_RTTI __nvoc_rtti_MemoryMulticastFabric_RsResource = {
46     /*pClassDef=*/          &__nvoc_class_def_RsResource,
47     /*dtor=*/               &__nvoc_destructFromBase,
48     /*offset=*/             NV_OFFSETOF(MemoryMulticastFabric, __nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource),
49 };
50 
51 static const struct NVOC_RTTI __nvoc_rtti_MemoryMulticastFabric_RmResourceCommon = {
52     /*pClassDef=*/          &__nvoc_class_def_RmResourceCommon,
53     /*dtor=*/               &__nvoc_destructFromBase,
54     /*offset=*/             NV_OFFSETOF(MemoryMulticastFabric, __nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon),
55 };
56 
57 static const struct NVOC_RTTI __nvoc_rtti_MemoryMulticastFabric_RmResource = {
58     /*pClassDef=*/          &__nvoc_class_def_RmResource,
59     /*dtor=*/               &__nvoc_destructFromBase,
60     /*offset=*/             NV_OFFSETOF(MemoryMulticastFabric, __nvoc_base_Memory.__nvoc_base_RmResource),
61 };
62 
63 static const struct NVOC_RTTI __nvoc_rtti_MemoryMulticastFabric_Memory = {
64     /*pClassDef=*/          &__nvoc_class_def_Memory,
65     /*dtor=*/               &__nvoc_destructFromBase,
66     /*offset=*/             NV_OFFSETOF(MemoryMulticastFabric, __nvoc_base_Memory),
67 };
68 
69 static const struct NVOC_CASTINFO __nvoc_castinfo_MemoryMulticastFabric = {
70     /*numRelatives=*/       6,
71     /*relatives=*/ {
72         &__nvoc_rtti_MemoryMulticastFabric_MemoryMulticastFabric,
73         &__nvoc_rtti_MemoryMulticastFabric_Memory,
74         &__nvoc_rtti_MemoryMulticastFabric_RmResource,
75         &__nvoc_rtti_MemoryMulticastFabric_RmResourceCommon,
76         &__nvoc_rtti_MemoryMulticastFabric_RsResource,
77         &__nvoc_rtti_MemoryMulticastFabric_Object,
78     },
79 };
80 
81 const struct NVOC_CLASS_DEF __nvoc_class_def_MemoryMulticastFabric =
82 {
83     /*classInfo=*/ {
84         /*size=*/               sizeof(MemoryMulticastFabric),
85         /*classId=*/            classId(MemoryMulticastFabric),
86         /*providerId=*/         &__nvoc_rtti_provider,
87 #if NV_PRINTF_STRINGS_ALLOWED
88         /*name=*/               "MemoryMulticastFabric",
89 #endif
90     },
91     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_MemoryMulticastFabric,
92     /*pCastInfo=*/          &__nvoc_castinfo_MemoryMulticastFabric,
93     /*pExportInfo=*/        &__nvoc_export_info_MemoryMulticastFabric
94 };
95 
__nvoc_thunk_MemoryMulticastFabric_resCanCopy(struct RsResource * pMemoryMulticastFabric)96 static NvBool __nvoc_thunk_MemoryMulticastFabric_resCanCopy(struct RsResource *pMemoryMulticastFabric) {
97     return memorymulticastfabricCanCopy((struct MemoryMulticastFabric *)(((unsigned char *)pMemoryMulticastFabric) - __nvoc_rtti_MemoryMulticastFabric_RsResource.offset));
98 }
99 
__nvoc_thunk_MemoryMulticastFabric_memIsReady(struct Memory * pMemoryMulticastFabric,NvBool bCopyConstructorContext)100 static NV_STATUS __nvoc_thunk_MemoryMulticastFabric_memIsReady(struct Memory *pMemoryMulticastFabric, NvBool bCopyConstructorContext) {
101     return memorymulticastfabricIsReady((struct MemoryMulticastFabric *)(((unsigned char *)pMemoryMulticastFabric) - __nvoc_rtti_MemoryMulticastFabric_Memory.offset), bCopyConstructorContext);
102 }
103 
__nvoc_thunk_MemoryMulticastFabric_memControl(struct Memory * pMemoryMulticastFabric,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)104 static NV_STATUS __nvoc_thunk_MemoryMulticastFabric_memControl(struct Memory *pMemoryMulticastFabric, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
105     return memorymulticastfabricControl((struct MemoryMulticastFabric *)(((unsigned char *)pMemoryMulticastFabric) - __nvoc_rtti_MemoryMulticastFabric_Memory.offset), pCallContext, pParams);
106 }
107 
__nvoc_thunk_MemoryMulticastFabric_memIsGpuMapAllowed(struct Memory * pMemoryMulticastFabric,struct OBJGPU * pGpu)108 static NvBool __nvoc_thunk_MemoryMulticastFabric_memIsGpuMapAllowed(struct Memory *pMemoryMulticastFabric, struct OBJGPU *pGpu) {
109     return memorymulticastfabricIsGpuMapAllowed((struct MemoryMulticastFabric *)(((unsigned char *)pMemoryMulticastFabric) - __nvoc_rtti_MemoryMulticastFabric_Memory.offset), pGpu);
110 }
111 
__nvoc_thunk_MemoryMulticastFabric_memIsExportAllowed(struct Memory * pMemoryMulticastFabric)112 static NvBool __nvoc_thunk_MemoryMulticastFabric_memIsExportAllowed(struct Memory *pMemoryMulticastFabric) {
113     return memorymulticastfabricIsExportAllowed((struct MemoryMulticastFabric *)(((unsigned char *)pMemoryMulticastFabric) - __nvoc_rtti_MemoryMulticastFabric_Memory.offset));
114 }
115 
__nvoc_thunk_MemoryMulticastFabric_memGetMapAddrSpace(struct Memory * pMemoryMulticastFabric,CALL_CONTEXT * pCallContext,NvU32 mapFlags,NV_ADDRESS_SPACE * pAddrSpace)116 static NV_STATUS __nvoc_thunk_MemoryMulticastFabric_memGetMapAddrSpace(struct Memory *pMemoryMulticastFabric, CALL_CONTEXT *pCallContext, NvU32 mapFlags, NV_ADDRESS_SPACE *pAddrSpace) {
117     return memorymulticastfabricGetMapAddrSpace((struct MemoryMulticastFabric *)(((unsigned char *)pMemoryMulticastFabric) - __nvoc_rtti_MemoryMulticastFabric_Memory.offset), pCallContext, mapFlags, pAddrSpace);
118 }
119 
__nvoc_thunk_Memory_memorymulticastfabricCheckMemInterUnmap(struct MemoryMulticastFabric * pMemory,NvBool bSubdeviceHandleProvided)120 static NV_STATUS __nvoc_thunk_Memory_memorymulticastfabricCheckMemInterUnmap(struct MemoryMulticastFabric *pMemory, NvBool bSubdeviceHandleProvided) {
121     return memCheckMemInterUnmap((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_MemoryMulticastFabric_Memory.offset), bSubdeviceHandleProvided);
122 }
123 
__nvoc_thunk_RmResource_memorymulticastfabricShareCallback(struct MemoryMulticastFabric * pResource,struct RsClient * pInvokingClient,struct RsResourceRef * pParentRef,RS_SHARE_POLICY * pSharePolicy)124 static NvBool __nvoc_thunk_RmResource_memorymulticastfabricShareCallback(struct MemoryMulticastFabric *pResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
125     return rmresShareCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RmResource.offset), pInvokingClient, pParentRef, pSharePolicy);
126 }
127 
__nvoc_thunk_RsResource_memorymulticastfabricMapTo(struct MemoryMulticastFabric * pResource,RS_RES_MAP_TO_PARAMS * pParams)128 static NV_STATUS __nvoc_thunk_RsResource_memorymulticastfabricMapTo(struct MemoryMulticastFabric *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
129     return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RsResource.offset), pParams);
130 }
131 
__nvoc_thunk_RsResource_memorymulticastfabricGetRefCount(struct MemoryMulticastFabric * pResource)132 static NvU32 __nvoc_thunk_RsResource_memorymulticastfabricGetRefCount(struct MemoryMulticastFabric *pResource) {
133     return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RsResource.offset));
134 }
135 
__nvoc_thunk_RsResource_memorymulticastfabricAddAdditionalDependants(struct RsClient * pClient,struct MemoryMulticastFabric * pResource,RsResourceRef * pReference)136 static void __nvoc_thunk_RsResource_memorymulticastfabricAddAdditionalDependants(struct RsClient *pClient, struct MemoryMulticastFabric *pResource, RsResourceRef *pReference) {
137     resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RsResource.offset), pReference);
138 }
139 
__nvoc_thunk_RmResource_memorymulticastfabricControl_Prologue(struct MemoryMulticastFabric * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)140 static NV_STATUS __nvoc_thunk_RmResource_memorymulticastfabricControl_Prologue(struct MemoryMulticastFabric *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
141     return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RmResource.offset), pCallContext, pParams);
142 }
143 
__nvoc_thunk_RsResource_memorymulticastfabricUnmapFrom(struct MemoryMulticastFabric * pResource,RS_RES_UNMAP_FROM_PARAMS * pParams)144 static NV_STATUS __nvoc_thunk_RsResource_memorymulticastfabricUnmapFrom(struct MemoryMulticastFabric *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
145     return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RsResource.offset), pParams);
146 }
147 
__nvoc_thunk_RmResource_memorymulticastfabricControl_Epilogue(struct MemoryMulticastFabric * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)148 static void __nvoc_thunk_RmResource_memorymulticastfabricControl_Epilogue(struct MemoryMulticastFabric *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
149     rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RmResource.offset), pCallContext, pParams);
150 }
151 
__nvoc_thunk_Memory_memorymulticastfabricUnmap(struct MemoryMulticastFabric * pMemory,CALL_CONTEXT * pCallContext,RsCpuMapping * pCpuMapping)152 static NV_STATUS __nvoc_thunk_Memory_memorymulticastfabricUnmap(struct MemoryMulticastFabric *pMemory, CALL_CONTEXT *pCallContext, RsCpuMapping *pCpuMapping) {
153     return memUnmap((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_MemoryMulticastFabric_Memory.offset), pCallContext, pCpuMapping);
154 }
155 
__nvoc_thunk_Memory_memorymulticastfabricGetMemInterMapParams(struct MemoryMulticastFabric * pMemory,RMRES_MEM_INTER_MAP_PARAMS * pParams)156 static NV_STATUS __nvoc_thunk_Memory_memorymulticastfabricGetMemInterMapParams(struct MemoryMulticastFabric *pMemory, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
157     return memGetMemInterMapParams((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_MemoryMulticastFabric_Memory.offset), pParams);
158 }
159 
__nvoc_thunk_Memory_memorymulticastfabricGetMemoryMappingDescriptor(struct MemoryMulticastFabric * pMemory,MEMORY_DESCRIPTOR ** ppMemDesc)160 static NV_STATUS __nvoc_thunk_Memory_memorymulticastfabricGetMemoryMappingDescriptor(struct MemoryMulticastFabric *pMemory, MEMORY_DESCRIPTOR **ppMemDesc) {
161     return memGetMemoryMappingDescriptor((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_MemoryMulticastFabric_Memory.offset), ppMemDesc);
162 }
163 
__nvoc_thunk_RsResource_memorymulticastfabricControlFilter(struct MemoryMulticastFabric * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)164 static NV_STATUS __nvoc_thunk_RsResource_memorymulticastfabricControlFilter(struct MemoryMulticastFabric *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
165     return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RsResource.offset), pCallContext, pParams);
166 }
167 
__nvoc_thunk_RmResource_memorymulticastfabricControlSerialization_Prologue(struct MemoryMulticastFabric * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)168 static NV_STATUS __nvoc_thunk_RmResource_memorymulticastfabricControlSerialization_Prologue(struct MemoryMulticastFabric *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
169     return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RmResource.offset), pCallContext, pParams);
170 }
171 
__nvoc_thunk_RsResource_memorymulticastfabricIsPartialUnmapSupported(struct MemoryMulticastFabric * pResource)172 static NvBool __nvoc_thunk_RsResource_memorymulticastfabricIsPartialUnmapSupported(struct MemoryMulticastFabric *pResource) {
173     return resIsPartialUnmapSupported((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RsResource.offset));
174 }
175 
__nvoc_thunk_Memory_memorymulticastfabricCheckCopyPermissions(struct MemoryMulticastFabric * pMemory,struct OBJGPU * pDstGpu,struct Device * pDstDevice)176 static NV_STATUS __nvoc_thunk_Memory_memorymulticastfabricCheckCopyPermissions(struct MemoryMulticastFabric *pMemory, struct OBJGPU *pDstGpu, struct Device *pDstDevice) {
177     return memCheckCopyPermissions((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_MemoryMulticastFabric_Memory.offset), pDstGpu, pDstDevice);
178 }
179 
__nvoc_thunk_RsResource_memorymulticastfabricPreDestruct(struct MemoryMulticastFabric * pResource)180 static void __nvoc_thunk_RsResource_memorymulticastfabricPreDestruct(struct MemoryMulticastFabric *pResource) {
181     resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RsResource.offset));
182 }
183 
__nvoc_thunk_Memory_memorymulticastfabricIsDuplicate(struct MemoryMulticastFabric * pMemory,NvHandle hMemory,NvBool * pDuplicate)184 static NV_STATUS __nvoc_thunk_Memory_memorymulticastfabricIsDuplicate(struct MemoryMulticastFabric *pMemory, NvHandle hMemory, NvBool *pDuplicate) {
185     return memIsDuplicate((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_MemoryMulticastFabric_Memory.offset), hMemory, pDuplicate);
186 }
187 
__nvoc_thunk_RmResource_memorymulticastfabricControlSerialization_Epilogue(struct MemoryMulticastFabric * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)188 static void __nvoc_thunk_RmResource_memorymulticastfabricControlSerialization_Epilogue(struct MemoryMulticastFabric *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
189     rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RmResource.offset), pCallContext, pParams);
190 }
191 
__nvoc_thunk_Memory_memorymulticastfabricMap(struct MemoryMulticastFabric * pMemory,CALL_CONTEXT * pCallContext,struct RS_CPU_MAP_PARAMS * pParams,RsCpuMapping * pCpuMapping)192 static NV_STATUS __nvoc_thunk_Memory_memorymulticastfabricMap(struct MemoryMulticastFabric *pMemory, CALL_CONTEXT *pCallContext, struct RS_CPU_MAP_PARAMS *pParams, RsCpuMapping *pCpuMapping) {
193     return memMap((struct Memory *)(((unsigned char *)pMemory) + __nvoc_rtti_MemoryMulticastFabric_Memory.offset), pCallContext, pParams, pCpuMapping);
194 }
195 
__nvoc_thunk_RmResource_memorymulticastfabricAccessCallback(struct MemoryMulticastFabric * pResource,struct RsClient * pInvokingClient,void * pAllocParams,RsAccessRight accessRight)196 static NvBool __nvoc_thunk_RmResource_memorymulticastfabricAccessCallback(struct MemoryMulticastFabric *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
197     return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_MemoryMulticastFabric_RmResource.offset), pInvokingClient, pAllocParams, accessRight);
198 }
199 
200 #if !defined(NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG)
201 #define NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(x)      (0)
202 #endif
203 
204 static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_MemoryMulticastFabric[] =
205 {
206     {               /*  [0] */
207 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x813u)
208         /*pFunc=*/      (void (*)(void)) NULL,
209 #else
210         /*pFunc=*/      (void (*)(void)) memorymulticastfabricCtrlGetInfo_IMPL,
211 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x813u)
212         /*flags=*/      0x813u,
213         /*accessRight=*/0x0u,
214         /*methodId=*/   0xfd0101u,
215         /*paramSize=*/  sizeof(NV00FD_CTRL_GET_INFO_PARAMS),
216         /*pClassInfo=*/ &(__nvoc_class_def_MemoryMulticastFabric.classInfo),
217 #if NV_PRINTF_STRINGS_ALLOWED
218         /*func=*/       "memorymulticastfabricCtrlGetInfo"
219 #endif
220     },
221     {               /*  [1] */
222 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
223         /*pFunc=*/      (void (*)(void)) NULL,
224 #else
225         /*pFunc=*/      (void (*)(void)) memorymulticastfabricCtrlAttachMem_IMPL,
226 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
227         /*flags=*/      0x811u,
228         /*accessRight=*/0x0u,
229         /*methodId=*/   0xfd0102u,
230         /*paramSize=*/  sizeof(NV00FD_CTRL_ATTACH_MEM_PARAMS),
231         /*pClassInfo=*/ &(__nvoc_class_def_MemoryMulticastFabric.classInfo),
232 #if NV_PRINTF_STRINGS_ALLOWED
233         /*func=*/       "memorymulticastfabricCtrlAttachMem"
234 #endif
235     },
236     {               /*  [2] */
237 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x813u)
238         /*pFunc=*/      (void (*)(void)) NULL,
239 #else
240         /*pFunc=*/      (void (*)(void)) memorymulticastfabricCtrlRegisterEvent_IMPL,
241 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x813u)
242         /*flags=*/      0x813u,
243         /*accessRight=*/0x0u,
244         /*methodId=*/   0xfd0103u,
245         /*paramSize=*/  sizeof(NV00FD_CTRL_REGISTER_EVENT_PARAMS),
246         /*pClassInfo=*/ &(__nvoc_class_def_MemoryMulticastFabric.classInfo),
247 #if NV_PRINTF_STRINGS_ALLOWED
248         /*func=*/       "memorymulticastfabricCtrlRegisterEvent"
249 #endif
250     },
251     {               /*  [3] */
252 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
253         /*pFunc=*/      (void (*)(void)) NULL,
254 #else
255         /*pFunc=*/      (void (*)(void)) memorymulticastfabricCtrlAttachGpu_IMPL,
256 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
257         /*flags=*/      0x811u,
258         /*accessRight=*/0x0u,
259         /*methodId=*/   0xfd0104u,
260         /*paramSize=*/  sizeof(NV00FD_CTRL_ATTACH_GPU_PARAMS),
261         /*pClassInfo=*/ &(__nvoc_class_def_MemoryMulticastFabric.classInfo),
262 #if NV_PRINTF_STRINGS_ALLOWED
263         /*func=*/       "memorymulticastfabricCtrlAttachGpu"
264 #endif
265     },
266     {               /*  [4] */
267 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
268         /*pFunc=*/      (void (*)(void)) NULL,
269 #else
270         /*pFunc=*/      (void (*)(void)) memorymulticastfabricCtrlDetachMem_IMPL,
271 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
272         /*flags=*/      0x811u,
273         /*accessRight=*/0x0u,
274         /*methodId=*/   0xfd0105u,
275         /*paramSize=*/  sizeof(NV00FD_CTRL_DETACH_MEM_PARAMS),
276         /*pClassInfo=*/ &(__nvoc_class_def_MemoryMulticastFabric.classInfo),
277 #if NV_PRINTF_STRINGS_ALLOWED
278         /*func=*/       "memorymulticastfabricCtrlDetachMem"
279 #endif
280     },
281     {               /*  [5] */
282 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
283         /*pFunc=*/      (void (*)(void)) NULL,
284 #else
285         /*pFunc=*/      (void (*)(void)) memorymulticastfabricCtrlAttachRemoteGpu_IMPL,
286 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
287         /*flags=*/      0x811u,
288         /*accessRight=*/0x0u,
289         /*methodId=*/   0xfd0106u,
290         /*paramSize=*/  sizeof(NV00FD_CTRL_ATTACH_REMOTE_GPU_PARAMS),
291         /*pClassInfo=*/ &(__nvoc_class_def_MemoryMulticastFabric.classInfo),
292 #if NV_PRINTF_STRINGS_ALLOWED
293         /*func=*/       "memorymulticastfabricCtrlAttachRemoteGpu"
294 #endif
295     },
296     {               /*  [6] */
297 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x813u)
298         /*pFunc=*/      (void (*)(void)) NULL,
299 #else
300         /*pFunc=*/      (void (*)(void)) memorymulticastfabricCtrlSetFailure_IMPL,
301 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x813u)
302         /*flags=*/      0x813u,
303         /*accessRight=*/0x0u,
304         /*methodId=*/   0xfd0107u,
305         /*paramSize=*/  sizeof(NV00FD_CTRL_SET_FAILURE_PARAMS),
306         /*pClassInfo=*/ &(__nvoc_class_def_MemoryMulticastFabric.classInfo),
307 #if NV_PRINTF_STRINGS_ALLOWED
308         /*func=*/       "memorymulticastfabricCtrlSetFailure"
309 #endif
310     },
311 
312 };
313 
314 const struct NVOC_EXPORT_INFO __nvoc_export_info_MemoryMulticastFabric =
315 {
316     /*numEntries=*/     7,
317     /*pExportEntries=*/ __nvoc_exported_method_def_MemoryMulticastFabric
318 };
319 
320 void __nvoc_dtor_Memory(Memory*);
__nvoc_dtor_MemoryMulticastFabric(MemoryMulticastFabric * pThis)321 void __nvoc_dtor_MemoryMulticastFabric(MemoryMulticastFabric *pThis) {
322     __nvoc_memorymulticastfabricDestruct(pThis);
323     __nvoc_dtor_Memory(&pThis->__nvoc_base_Memory);
324     PORT_UNREFERENCED_VARIABLE(pThis);
325 }
326 
__nvoc_init_dataField_MemoryMulticastFabric(MemoryMulticastFabric * pThis)327 void __nvoc_init_dataField_MemoryMulticastFabric(MemoryMulticastFabric *pThis) {
328     PORT_UNREFERENCED_VARIABLE(pThis);
329 }
330 
331 NV_STATUS __nvoc_ctor_Memory(Memory* , CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
__nvoc_ctor_MemoryMulticastFabric(MemoryMulticastFabric * pThis,CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)332 NV_STATUS __nvoc_ctor_MemoryMulticastFabric(MemoryMulticastFabric *pThis, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
333     NV_STATUS status = NV_OK;
334     status = __nvoc_ctor_Memory(&pThis->__nvoc_base_Memory, arg_pCallContext, arg_pParams);
335     if (status != NV_OK) goto __nvoc_ctor_MemoryMulticastFabric_fail_Memory;
336     __nvoc_init_dataField_MemoryMulticastFabric(pThis);
337 
338     status = __nvoc_memorymulticastfabricConstruct(pThis, arg_pCallContext, arg_pParams);
339     if (status != NV_OK) goto __nvoc_ctor_MemoryMulticastFabric_fail__init;
340     goto __nvoc_ctor_MemoryMulticastFabric_exit; // Success
341 
342 __nvoc_ctor_MemoryMulticastFabric_fail__init:
343     __nvoc_dtor_Memory(&pThis->__nvoc_base_Memory);
344 __nvoc_ctor_MemoryMulticastFabric_fail_Memory:
345 __nvoc_ctor_MemoryMulticastFabric_exit:
346 
347     return status;
348 }
349 
__nvoc_init_funcTable_MemoryMulticastFabric_1(MemoryMulticastFabric * pThis)350 static void __nvoc_init_funcTable_MemoryMulticastFabric_1(MemoryMulticastFabric *pThis) {
351     PORT_UNREFERENCED_VARIABLE(pThis);
352 
353     pThis->__memorymulticastfabricCanCopy__ = &memorymulticastfabricCanCopy_IMPL;
354 
355     pThis->__memorymulticastfabricCopyConstruct__ = &memorymulticastfabricCopyConstruct_IMPL;
356 
357     pThis->__memorymulticastfabricIsReady__ = &memorymulticastfabricIsReady_IMPL;
358 
359     pThis->__memorymulticastfabricControl__ = &memorymulticastfabricControl_IMPL;
360 
361     pThis->__memorymulticastfabricIsGpuMapAllowed__ = &memorymulticastfabricIsGpuMapAllowed_IMPL;
362 
363     pThis->__memorymulticastfabricIsExportAllowed__ = &memorymulticastfabricIsExportAllowed_IMPL;
364 
365     pThis->__memorymulticastfabricGetMapAddrSpace__ = &memorymulticastfabricGetMapAddrSpace_IMPL;
366 
367 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x813u)
368     pThis->__memorymulticastfabricCtrlGetInfo__ = &memorymulticastfabricCtrlGetInfo_IMPL;
369 #endif
370 
371 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
372     pThis->__memorymulticastfabricCtrlAttachMem__ = &memorymulticastfabricCtrlAttachMem_IMPL;
373 #endif
374 
375 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
376     pThis->__memorymulticastfabricCtrlDetachMem__ = &memorymulticastfabricCtrlDetachMem_IMPL;
377 #endif
378 
379 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
380     pThis->__memorymulticastfabricCtrlAttachGpu__ = &memorymulticastfabricCtrlAttachGpu_IMPL;
381 #endif
382 
383 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x813u)
384     pThis->__memorymulticastfabricCtrlRegisterEvent__ = &memorymulticastfabricCtrlRegisterEvent_IMPL;
385 #endif
386 
387 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x811u)
388     pThis->__memorymulticastfabricCtrlAttachRemoteGpu__ = &memorymulticastfabricCtrlAttachRemoteGpu_IMPL;
389 #endif
390 
391 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x813u)
392     pThis->__memorymulticastfabricCtrlSetFailure__ = &memorymulticastfabricCtrlSetFailure_IMPL;
393 #endif
394 
395     pThis->__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__resCanCopy__ = &__nvoc_thunk_MemoryMulticastFabric_resCanCopy;
396 
397     pThis->__nvoc_base_Memory.__memIsReady__ = &__nvoc_thunk_MemoryMulticastFabric_memIsReady;
398 
399     pThis->__nvoc_base_Memory.__memControl__ = &__nvoc_thunk_MemoryMulticastFabric_memControl;
400 
401     pThis->__nvoc_base_Memory.__memIsGpuMapAllowed__ = &__nvoc_thunk_MemoryMulticastFabric_memIsGpuMapAllowed;
402 
403     pThis->__nvoc_base_Memory.__memIsExportAllowed__ = &__nvoc_thunk_MemoryMulticastFabric_memIsExportAllowed;
404 
405     pThis->__nvoc_base_Memory.__memGetMapAddrSpace__ = &__nvoc_thunk_MemoryMulticastFabric_memGetMapAddrSpace;
406 
407     pThis->__memorymulticastfabricCheckMemInterUnmap__ = &__nvoc_thunk_Memory_memorymulticastfabricCheckMemInterUnmap;
408 
409     pThis->__memorymulticastfabricShareCallback__ = &__nvoc_thunk_RmResource_memorymulticastfabricShareCallback;
410 
411     pThis->__memorymulticastfabricMapTo__ = &__nvoc_thunk_RsResource_memorymulticastfabricMapTo;
412 
413     pThis->__memorymulticastfabricGetRefCount__ = &__nvoc_thunk_RsResource_memorymulticastfabricGetRefCount;
414 
415     pThis->__memorymulticastfabricAddAdditionalDependants__ = &__nvoc_thunk_RsResource_memorymulticastfabricAddAdditionalDependants;
416 
417     pThis->__memorymulticastfabricControl_Prologue__ = &__nvoc_thunk_RmResource_memorymulticastfabricControl_Prologue;
418 
419     pThis->__memorymulticastfabricUnmapFrom__ = &__nvoc_thunk_RsResource_memorymulticastfabricUnmapFrom;
420 
421     pThis->__memorymulticastfabricControl_Epilogue__ = &__nvoc_thunk_RmResource_memorymulticastfabricControl_Epilogue;
422 
423     pThis->__memorymulticastfabricUnmap__ = &__nvoc_thunk_Memory_memorymulticastfabricUnmap;
424 
425     pThis->__memorymulticastfabricGetMemInterMapParams__ = &__nvoc_thunk_Memory_memorymulticastfabricGetMemInterMapParams;
426 
427     pThis->__memorymulticastfabricGetMemoryMappingDescriptor__ = &__nvoc_thunk_Memory_memorymulticastfabricGetMemoryMappingDescriptor;
428 
429     pThis->__memorymulticastfabricControlFilter__ = &__nvoc_thunk_RsResource_memorymulticastfabricControlFilter;
430 
431     pThis->__memorymulticastfabricControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_memorymulticastfabricControlSerialization_Prologue;
432 
433     pThis->__memorymulticastfabricIsPartialUnmapSupported__ = &__nvoc_thunk_RsResource_memorymulticastfabricIsPartialUnmapSupported;
434 
435     pThis->__memorymulticastfabricCheckCopyPermissions__ = &__nvoc_thunk_Memory_memorymulticastfabricCheckCopyPermissions;
436 
437     pThis->__memorymulticastfabricPreDestruct__ = &__nvoc_thunk_RsResource_memorymulticastfabricPreDestruct;
438 
439     pThis->__memorymulticastfabricIsDuplicate__ = &__nvoc_thunk_Memory_memorymulticastfabricIsDuplicate;
440 
441     pThis->__memorymulticastfabricControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_memorymulticastfabricControlSerialization_Epilogue;
442 
443     pThis->__memorymulticastfabricMap__ = &__nvoc_thunk_Memory_memorymulticastfabricMap;
444 
445     pThis->__memorymulticastfabricAccessCallback__ = &__nvoc_thunk_RmResource_memorymulticastfabricAccessCallback;
446 }
447 
__nvoc_init_funcTable_MemoryMulticastFabric(MemoryMulticastFabric * pThis)448 void __nvoc_init_funcTable_MemoryMulticastFabric(MemoryMulticastFabric *pThis) {
449     __nvoc_init_funcTable_MemoryMulticastFabric_1(pThis);
450 }
451 
452 void __nvoc_init_Memory(Memory*);
__nvoc_init_MemoryMulticastFabric(MemoryMulticastFabric * pThis)453 void __nvoc_init_MemoryMulticastFabric(MemoryMulticastFabric *pThis) {
454     pThis->__nvoc_pbase_MemoryMulticastFabric = pThis;
455     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
456     pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource;
457     pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
458     pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_Memory.__nvoc_base_RmResource;
459     pThis->__nvoc_pbase_Memory = &pThis->__nvoc_base_Memory;
460     __nvoc_init_Memory(&pThis->__nvoc_base_Memory);
461     __nvoc_init_funcTable_MemoryMulticastFabric(pThis);
462 }
463 
__nvoc_objCreate_MemoryMulticastFabric(MemoryMulticastFabric ** ppThis,Dynamic * pParent,NvU32 createFlags,CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)464 NV_STATUS __nvoc_objCreate_MemoryMulticastFabric(MemoryMulticastFabric **ppThis, Dynamic *pParent, NvU32 createFlags, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)
465 {
466     NV_STATUS status;
467     Object *pParentObj = NULL;
468     MemoryMulticastFabric *pThis;
469 
470     // Assign `pThis`, allocating memory unless suppressed by flag.
471     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(MemoryMulticastFabric), (void**)&pThis, (void**)ppThis);
472     if (status != NV_OK)
473         return status;
474 
475     // Zero is the initial value for everything.
476     portMemSet(pThis, 0, sizeof(MemoryMulticastFabric));
477 
478     // Initialize runtime type information.
479     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_MemoryMulticastFabric);
480 
481     pThis->__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
482 
483     // Link the child into the parent if there is one unless flagged not to do so.
484     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
485     {
486         pParentObj = dynamicCast(pParent, Object);
487         objAddChild(pParentObj, &pThis->__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
488     }
489     else
490     {
491         pThis->__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
492     }
493 
494     __nvoc_init_MemoryMulticastFabric(pThis);
495     status = __nvoc_ctor_MemoryMulticastFabric(pThis, arg_pCallContext, arg_pParams);
496     if (status != NV_OK) goto __nvoc_objCreate_MemoryMulticastFabric_cleanup;
497 
498     // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
499     *ppThis = pThis;
500 
501     return NV_OK;
502 
503 __nvoc_objCreate_MemoryMulticastFabric_cleanup:
504 
505     // Unlink the child from the parent if it was linked above.
506     if (pParentObj != NULL)
507         objRemoveChild(pParentObj, &pThis->__nvoc_base_Memory.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
508 
509     // Do not call destructors here since the constructor already called them.
510     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
511         portMemSet(pThis, 0, sizeof(MemoryMulticastFabric));
512     else
513     {
514         portMemFree(pThis);
515         *ppThis = NULL;
516     }
517 
518     // coverity[leaked_storage:FALSE]
519     return status;
520 }
521 
__nvoc_objCreateDynamic_MemoryMulticastFabric(MemoryMulticastFabric ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)522 NV_STATUS __nvoc_objCreateDynamic_MemoryMulticastFabric(MemoryMulticastFabric **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
523     NV_STATUS status;
524     CALL_CONTEXT * arg_pCallContext = va_arg(args, CALL_CONTEXT *);
525     struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
526 
527     status = __nvoc_objCreate_MemoryMulticastFabric(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
528 
529     return status;
530 }
531 
532