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