1 #ifndef _G_FLA_MEM_NVOC_H_
2 #define _G_FLA_MEM_NVOC_H_
3 #include "nvoc/runtime.h"
4 
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8 
9 /*
10  * SPDX-FileCopyrightText: Copyright (c) 2018-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
11  * SPDX-License-Identifier: MIT
12  *
13  * Permission is hereby granted, free of charge, to any person obtaining a
14  * copy of this software and associated documentation files (the "Software"),
15  * to deal in the Software without restriction, including without limitation
16  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
17  * and/or sell copies of the Software, and to permit persons to whom the
18  * Software is furnished to do so, subject to the following conditions:
19  *
20  * The above copyright notice and this permission notice shall be included in
21  * all copies or substantial portions of the Software.
22  *
23  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29  * DEALINGS IN THE SOFTWARE.
30  */
31 
32 #include "g_fla_mem_nvoc.h"
33 
34 #ifndef _FLA_MEMORY_H_
35 #define _FLA_MEMORY_H_
36 
37 #include "mem_mgr/mem.h"
38 
39 /*!
40  * This class is used by the FLA clients to allocate FLA memory handle
41  */
42 
43 // Private field names are wrapped in PRIVATE_FIELD, which does nothing for
44 // the matching C source file, but causes diagnostics to be issued if another
45 // source file references the field.
46 #ifdef NVOC_FLA_MEM_H_PRIVATE_ACCESS_ALLOWED
47 #define PRIVATE_FIELD(x) x
48 #else
49 #define PRIVATE_FIELD(x) NVOC_PRIVATE_FIELD(x)
50 #endif
51 
52 struct FlaMemory {
53     const struct NVOC_RTTI *__nvoc_rtti;
54     struct Memory __nvoc_base_Memory;
55     struct Object *__nvoc_pbase_Object;
56     struct RsResource *__nvoc_pbase_RsResource;
57     struct RmResourceCommon *__nvoc_pbase_RmResourceCommon;
58     struct RmResource *__nvoc_pbase_RmResource;
59     struct Memory *__nvoc_pbase_Memory;
60     struct FlaMemory *__nvoc_pbase_FlaMemory;
61     NvBool (*__flamemCanCopy__)(struct FlaMemory *);
62     NV_STATUS (*__flamemCopyConstruct__)(struct FlaMemory *, CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
63     NV_STATUS (*__flamemCheckMemInterUnmap__)(struct FlaMemory *, NvBool);
64     NvBool (*__flamemShareCallback__)(struct FlaMemory *, struct RsClient *, struct RsResourceRef *, RS_SHARE_POLICY *);
65     NV_STATUS (*__flamemMapTo__)(struct FlaMemory *, RS_RES_MAP_TO_PARAMS *);
66     NV_STATUS (*__flamemGetMapAddrSpace__)(struct FlaMemory *, CALL_CONTEXT *, NvU32, NV_ADDRESS_SPACE *);
67     NvBool (*__flamemIsExportAllowed__)(struct FlaMemory *);
68     NvU32 (*__flamemGetRefCount__)(struct FlaMemory *);
69     void (*__flamemAddAdditionalDependants__)(struct RsClient *, struct FlaMemory *, RsResourceRef *);
70     NV_STATUS (*__flamemControl_Prologue__)(struct FlaMemory *, CALL_CONTEXT *, struct RS_RES_CONTROL_PARAMS_INTERNAL *);
71     NvBool (*__flamemIsGpuMapAllowed__)(struct FlaMemory *, struct OBJGPU *);
72     NV_STATUS (*__flamemUnmapFrom__)(struct FlaMemory *, RS_RES_UNMAP_FROM_PARAMS *);
73     void (*__flamemControl_Epilogue__)(struct FlaMemory *, CALL_CONTEXT *, struct RS_RES_CONTROL_PARAMS_INTERNAL *);
74     NV_STATUS (*__flamemControl__)(struct FlaMemory *, CALL_CONTEXT *, struct RS_RES_CONTROL_PARAMS_INTERNAL *);
75     NV_STATUS (*__flamemUnmap__)(struct FlaMemory *, CALL_CONTEXT *, RsCpuMapping *);
76     NV_STATUS (*__flamemGetMemInterMapParams__)(struct FlaMemory *, RMRES_MEM_INTER_MAP_PARAMS *);
77     NV_STATUS (*__flamemGetMemoryMappingDescriptor__)(struct FlaMemory *, MEMORY_DESCRIPTOR **);
78     NV_STATUS (*__flamemControlFilter__)(struct FlaMemory *, struct CALL_CONTEXT *, struct RS_RES_CONTROL_PARAMS_INTERNAL *);
79     NV_STATUS (*__flamemControlSerialization_Prologue__)(struct FlaMemory *, CALL_CONTEXT *, struct RS_RES_CONTROL_PARAMS_INTERNAL *);
80     NvBool (*__flamemIsPartialUnmapSupported__)(struct FlaMemory *);
81     NV_STATUS (*__flamemIsReady__)(struct FlaMemory *, NvBool);
82     NV_STATUS (*__flamemCheckCopyPermissions__)(struct FlaMemory *, struct OBJGPU *, struct Device *);
83     void (*__flamemPreDestruct__)(struct FlaMemory *);
84     NV_STATUS (*__flamemIsDuplicate__)(struct FlaMemory *, NvHandle, NvBool *);
85     void (*__flamemControlSerialization_Epilogue__)(struct FlaMemory *, CALL_CONTEXT *, struct RS_RES_CONTROL_PARAMS_INTERNAL *);
86     NV_STATUS (*__flamemMap__)(struct FlaMemory *, CALL_CONTEXT *, struct RS_CPU_MAP_PARAMS *, RsCpuMapping *);
87     NvBool (*__flamemAccessCallback__)(struct FlaMemory *, struct RsClient *, void *, RsAccessRight);
88     NvU32 peerDeviceInst;
89     NvU32 peerGpuInst;
90     NvHandle hDupedExportMemory;
91 };
92 
93 #ifndef __NVOC_CLASS_FlaMemory_TYPEDEF__
94 #define __NVOC_CLASS_FlaMemory_TYPEDEF__
95 typedef struct FlaMemory FlaMemory;
96 #endif /* __NVOC_CLASS_FlaMemory_TYPEDEF__ */
97 
98 #ifndef __nvoc_class_id_FlaMemory
99 #define __nvoc_class_id_FlaMemory 0xe61ee1
100 #endif /* __nvoc_class_id_FlaMemory */
101 
102 extern const struct NVOC_CLASS_DEF __nvoc_class_def_FlaMemory;
103 
104 #define __staticCast_FlaMemory(pThis) \
105     ((pThis)->__nvoc_pbase_FlaMemory)
106 
107 #ifdef __nvoc_fla_mem_h_disabled
108 #define __dynamicCast_FlaMemory(pThis) ((FlaMemory*)NULL)
109 #else //__nvoc_fla_mem_h_disabled
110 #define __dynamicCast_FlaMemory(pThis) \
111     ((FlaMemory*)__nvoc_dynamicCast(staticCast((pThis), Dynamic), classInfo(FlaMemory)))
112 #endif //__nvoc_fla_mem_h_disabled
113 
114 
115 NV_STATUS __nvoc_objCreateDynamic_FlaMemory(FlaMemory**, Dynamic*, NvU32, va_list);
116 
117 NV_STATUS __nvoc_objCreate_FlaMemory(FlaMemory**, Dynamic*, NvU32, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
118 #define __objCreate_FlaMemory(ppNewObj, pParent, createFlags, arg_pCallContext, arg_pParams) \
119     __nvoc_objCreate_FlaMemory((ppNewObj), staticCast((pParent), Dynamic), (createFlags), arg_pCallContext, arg_pParams)
120 
121 #define flamemCanCopy(pFlaMemory) flamemCanCopy_DISPATCH(pFlaMemory)
122 #define flamemCopyConstruct(pFlaMemory, pCallContext, pParams) flamemCopyConstruct_DISPATCH(pFlaMemory, pCallContext, pParams)
123 #define flamemCheckMemInterUnmap(pMemory, bSubdeviceHandleProvided) flamemCheckMemInterUnmap_DISPATCH(pMemory, bSubdeviceHandleProvided)
124 #define flamemShareCallback(pResource, pInvokingClient, pParentRef, pSharePolicy) flamemShareCallback_DISPATCH(pResource, pInvokingClient, pParentRef, pSharePolicy)
125 #define flamemMapTo(pResource, pParams) flamemMapTo_DISPATCH(pResource, pParams)
126 #define flamemGetMapAddrSpace(pMemory, pCallContext, mapFlags, pAddrSpace) flamemGetMapAddrSpace_DISPATCH(pMemory, pCallContext, mapFlags, pAddrSpace)
127 #define flamemIsExportAllowed(pMemory) flamemIsExportAllowed_DISPATCH(pMemory)
128 #define flamemGetRefCount(pResource) flamemGetRefCount_DISPATCH(pResource)
129 #define flamemAddAdditionalDependants(pClient, pResource, pReference) flamemAddAdditionalDependants_DISPATCH(pClient, pResource, pReference)
130 #define flamemControl_Prologue(pResource, pCallContext, pParams) flamemControl_Prologue_DISPATCH(pResource, pCallContext, pParams)
131 #define flamemIsGpuMapAllowed(pMemory, pGpu) flamemIsGpuMapAllowed_DISPATCH(pMemory, pGpu)
132 #define flamemUnmapFrom(pResource, pParams) flamemUnmapFrom_DISPATCH(pResource, pParams)
133 #define flamemControl_Epilogue(pResource, pCallContext, pParams) flamemControl_Epilogue_DISPATCH(pResource, pCallContext, pParams)
134 #define flamemControl(pMemory, pCallContext, pParams) flamemControl_DISPATCH(pMemory, pCallContext, pParams)
135 #define flamemUnmap(pMemory, pCallContext, pCpuMapping) flamemUnmap_DISPATCH(pMemory, pCallContext, pCpuMapping)
136 #define flamemGetMemInterMapParams(pMemory, pParams) flamemGetMemInterMapParams_DISPATCH(pMemory, pParams)
137 #define flamemGetMemoryMappingDescriptor(pMemory, ppMemDesc) flamemGetMemoryMappingDescriptor_DISPATCH(pMemory, ppMemDesc)
138 #define flamemControlFilter(pResource, pCallContext, pParams) flamemControlFilter_DISPATCH(pResource, pCallContext, pParams)
139 #define flamemControlSerialization_Prologue(pResource, pCallContext, pParams) flamemControlSerialization_Prologue_DISPATCH(pResource, pCallContext, pParams)
140 #define flamemIsPartialUnmapSupported(pResource) flamemIsPartialUnmapSupported_DISPATCH(pResource)
141 #define flamemIsReady(pMemory, bCopyConstructorContext) flamemIsReady_DISPATCH(pMemory, bCopyConstructorContext)
142 #define flamemCheckCopyPermissions(pMemory, pDstGpu, pDstDevice) flamemCheckCopyPermissions_DISPATCH(pMemory, pDstGpu, pDstDevice)
143 #define flamemPreDestruct(pResource) flamemPreDestruct_DISPATCH(pResource)
144 #define flamemIsDuplicate(pMemory, hMemory, pDuplicate) flamemIsDuplicate_DISPATCH(pMemory, hMemory, pDuplicate)
145 #define flamemControlSerialization_Epilogue(pResource, pCallContext, pParams) flamemControlSerialization_Epilogue_DISPATCH(pResource, pCallContext, pParams)
146 #define flamemMap(pMemory, pCallContext, pParams, pCpuMapping) flamemMap_DISPATCH(pMemory, pCallContext, pParams, pCpuMapping)
147 #define flamemAccessCallback(pResource, pInvokingClient, pAllocParams, accessRight) flamemAccessCallback_DISPATCH(pResource, pInvokingClient, pAllocParams, accessRight)
148 NvBool flamemCanCopy_IMPL(struct FlaMemory *pFlaMemory);
149 
flamemCanCopy_DISPATCH(struct FlaMemory * pFlaMemory)150 static inline NvBool flamemCanCopy_DISPATCH(struct FlaMemory *pFlaMemory) {
151     return pFlaMemory->__flamemCanCopy__(pFlaMemory);
152 }
153 
154 NV_STATUS flamemCopyConstruct_IMPL(struct FlaMemory *pFlaMemory, CALL_CONTEXT *pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL *pParams);
155 
flamemCopyConstruct_DISPATCH(struct FlaMemory * pFlaMemory,CALL_CONTEXT * pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * pParams)156 static inline NV_STATUS flamemCopyConstruct_DISPATCH(struct FlaMemory *pFlaMemory, CALL_CONTEXT *pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL *pParams) {
157     return pFlaMemory->__flamemCopyConstruct__(pFlaMemory, pCallContext, pParams);
158 }
159 
flamemCheckMemInterUnmap_DISPATCH(struct FlaMemory * pMemory,NvBool bSubdeviceHandleProvided)160 static inline NV_STATUS flamemCheckMemInterUnmap_DISPATCH(struct FlaMemory *pMemory, NvBool bSubdeviceHandleProvided) {
161     return pMemory->__flamemCheckMemInterUnmap__(pMemory, bSubdeviceHandleProvided);
162 }
163 
flamemShareCallback_DISPATCH(struct FlaMemory * pResource,struct RsClient * pInvokingClient,struct RsResourceRef * pParentRef,RS_SHARE_POLICY * pSharePolicy)164 static inline NvBool flamemShareCallback_DISPATCH(struct FlaMemory *pResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
165     return pResource->__flamemShareCallback__(pResource, pInvokingClient, pParentRef, pSharePolicy);
166 }
167 
flamemMapTo_DISPATCH(struct FlaMemory * pResource,RS_RES_MAP_TO_PARAMS * pParams)168 static inline NV_STATUS flamemMapTo_DISPATCH(struct FlaMemory *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
169     return pResource->__flamemMapTo__(pResource, pParams);
170 }
171 
flamemGetMapAddrSpace_DISPATCH(struct FlaMemory * pMemory,CALL_CONTEXT * pCallContext,NvU32 mapFlags,NV_ADDRESS_SPACE * pAddrSpace)172 static inline NV_STATUS flamemGetMapAddrSpace_DISPATCH(struct FlaMemory *pMemory, CALL_CONTEXT *pCallContext, NvU32 mapFlags, NV_ADDRESS_SPACE *pAddrSpace) {
173     return pMemory->__flamemGetMapAddrSpace__(pMemory, pCallContext, mapFlags, pAddrSpace);
174 }
175 
flamemIsExportAllowed_DISPATCH(struct FlaMemory * pMemory)176 static inline NvBool flamemIsExportAllowed_DISPATCH(struct FlaMemory *pMemory) {
177     return pMemory->__flamemIsExportAllowed__(pMemory);
178 }
179 
flamemGetRefCount_DISPATCH(struct FlaMemory * pResource)180 static inline NvU32 flamemGetRefCount_DISPATCH(struct FlaMemory *pResource) {
181     return pResource->__flamemGetRefCount__(pResource);
182 }
183 
flamemAddAdditionalDependants_DISPATCH(struct RsClient * pClient,struct FlaMemory * pResource,RsResourceRef * pReference)184 static inline void flamemAddAdditionalDependants_DISPATCH(struct RsClient *pClient, struct FlaMemory *pResource, RsResourceRef *pReference) {
185     pResource->__flamemAddAdditionalDependants__(pClient, pResource, pReference);
186 }
187 
flamemControl_Prologue_DISPATCH(struct FlaMemory * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)188 static inline NV_STATUS flamemControl_Prologue_DISPATCH(struct FlaMemory *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
189     return pResource->__flamemControl_Prologue__(pResource, pCallContext, pParams);
190 }
191 
flamemIsGpuMapAllowed_DISPATCH(struct FlaMemory * pMemory,struct OBJGPU * pGpu)192 static inline NvBool flamemIsGpuMapAllowed_DISPATCH(struct FlaMemory *pMemory, struct OBJGPU *pGpu) {
193     return pMemory->__flamemIsGpuMapAllowed__(pMemory, pGpu);
194 }
195 
flamemUnmapFrom_DISPATCH(struct FlaMemory * pResource,RS_RES_UNMAP_FROM_PARAMS * pParams)196 static inline NV_STATUS flamemUnmapFrom_DISPATCH(struct FlaMemory *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
197     return pResource->__flamemUnmapFrom__(pResource, pParams);
198 }
199 
flamemControl_Epilogue_DISPATCH(struct FlaMemory * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)200 static inline void flamemControl_Epilogue_DISPATCH(struct FlaMemory *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
201     pResource->__flamemControl_Epilogue__(pResource, pCallContext, pParams);
202 }
203 
flamemControl_DISPATCH(struct FlaMemory * pMemory,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)204 static inline NV_STATUS flamemControl_DISPATCH(struct FlaMemory *pMemory, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
205     return pMemory->__flamemControl__(pMemory, pCallContext, pParams);
206 }
207 
flamemUnmap_DISPATCH(struct FlaMemory * pMemory,CALL_CONTEXT * pCallContext,RsCpuMapping * pCpuMapping)208 static inline NV_STATUS flamemUnmap_DISPATCH(struct FlaMemory *pMemory, CALL_CONTEXT *pCallContext, RsCpuMapping *pCpuMapping) {
209     return pMemory->__flamemUnmap__(pMemory, pCallContext, pCpuMapping);
210 }
211 
flamemGetMemInterMapParams_DISPATCH(struct FlaMemory * pMemory,RMRES_MEM_INTER_MAP_PARAMS * pParams)212 static inline NV_STATUS flamemGetMemInterMapParams_DISPATCH(struct FlaMemory *pMemory, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
213     return pMemory->__flamemGetMemInterMapParams__(pMemory, pParams);
214 }
215 
flamemGetMemoryMappingDescriptor_DISPATCH(struct FlaMemory * pMemory,MEMORY_DESCRIPTOR ** ppMemDesc)216 static inline NV_STATUS flamemGetMemoryMappingDescriptor_DISPATCH(struct FlaMemory *pMemory, MEMORY_DESCRIPTOR **ppMemDesc) {
217     return pMemory->__flamemGetMemoryMappingDescriptor__(pMemory, ppMemDesc);
218 }
219 
flamemControlFilter_DISPATCH(struct FlaMemory * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)220 static inline NV_STATUS flamemControlFilter_DISPATCH(struct FlaMemory *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
221     return pResource->__flamemControlFilter__(pResource, pCallContext, pParams);
222 }
223 
flamemControlSerialization_Prologue_DISPATCH(struct FlaMemory * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)224 static inline NV_STATUS flamemControlSerialization_Prologue_DISPATCH(struct FlaMemory *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
225     return pResource->__flamemControlSerialization_Prologue__(pResource, pCallContext, pParams);
226 }
227 
flamemIsPartialUnmapSupported_DISPATCH(struct FlaMemory * pResource)228 static inline NvBool flamemIsPartialUnmapSupported_DISPATCH(struct FlaMemory *pResource) {
229     return pResource->__flamemIsPartialUnmapSupported__(pResource);
230 }
231 
flamemIsReady_DISPATCH(struct FlaMemory * pMemory,NvBool bCopyConstructorContext)232 static inline NV_STATUS flamemIsReady_DISPATCH(struct FlaMemory *pMemory, NvBool bCopyConstructorContext) {
233     return pMemory->__flamemIsReady__(pMemory, bCopyConstructorContext);
234 }
235 
flamemCheckCopyPermissions_DISPATCH(struct FlaMemory * pMemory,struct OBJGPU * pDstGpu,struct Device * pDstDevice)236 static inline NV_STATUS flamemCheckCopyPermissions_DISPATCH(struct FlaMemory *pMemory, struct OBJGPU *pDstGpu, struct Device *pDstDevice) {
237     return pMemory->__flamemCheckCopyPermissions__(pMemory, pDstGpu, pDstDevice);
238 }
239 
flamemPreDestruct_DISPATCH(struct FlaMemory * pResource)240 static inline void flamemPreDestruct_DISPATCH(struct FlaMemory *pResource) {
241     pResource->__flamemPreDestruct__(pResource);
242 }
243 
flamemIsDuplicate_DISPATCH(struct FlaMemory * pMemory,NvHandle hMemory,NvBool * pDuplicate)244 static inline NV_STATUS flamemIsDuplicate_DISPATCH(struct FlaMemory *pMemory, NvHandle hMemory, NvBool *pDuplicate) {
245     return pMemory->__flamemIsDuplicate__(pMemory, hMemory, pDuplicate);
246 }
247 
flamemControlSerialization_Epilogue_DISPATCH(struct FlaMemory * pResource,CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)248 static inline void flamemControlSerialization_Epilogue_DISPATCH(struct FlaMemory *pResource, CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
249     pResource->__flamemControlSerialization_Epilogue__(pResource, pCallContext, pParams);
250 }
251 
flamemMap_DISPATCH(struct FlaMemory * pMemory,CALL_CONTEXT * pCallContext,struct RS_CPU_MAP_PARAMS * pParams,RsCpuMapping * pCpuMapping)252 static inline NV_STATUS flamemMap_DISPATCH(struct FlaMemory *pMemory, CALL_CONTEXT *pCallContext, struct RS_CPU_MAP_PARAMS *pParams, RsCpuMapping *pCpuMapping) {
253     return pMemory->__flamemMap__(pMemory, pCallContext, pParams, pCpuMapping);
254 }
255 
flamemAccessCallback_DISPATCH(struct FlaMemory * pResource,struct RsClient * pInvokingClient,void * pAllocParams,RsAccessRight accessRight)256 static inline NvBool flamemAccessCallback_DISPATCH(struct FlaMemory *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
257     return pResource->__flamemAccessCallback__(pResource, pInvokingClient, pAllocParams, accessRight);
258 }
259 
260 NV_STATUS flamemConstruct_IMPL(struct FlaMemory *arg_pFlaMemory, CALL_CONTEXT *arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL *arg_pParams);
261 
262 #define __nvoc_flamemConstruct(arg_pFlaMemory, arg_pCallContext, arg_pParams) flamemConstruct_IMPL(arg_pFlaMemory, arg_pCallContext, arg_pParams)
263 void flamemDestruct_IMPL(struct FlaMemory *pFlaMemory);
264 
265 #define __nvoc_flamemDestruct(pFlaMemory) flamemDestruct_IMPL(pFlaMemory)
266 #undef PRIVATE_FIELD
267 
268 
269 #endif
270 
271 #ifdef __cplusplus
272 } // extern "C"
273 #endif
274 
275 #endif // _G_FLA_MEM_NVOC_H_
276