1 #ifndef _G_FABRIC_VASPACE_NVOC_H_
2 #define _G_FABRIC_VASPACE_NVOC_H_
3 #include "nvoc/runtime.h"
4 
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8 
9 /*
10  * SPDX-FileCopyrightText: Copyright (c) 2021-2023 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_fabric_vaspace_nvoc.h"
33 
34 #ifndef FABRIC_VASPACE_H
35 #define FABRIC_VASPACE_H
36 
37 /**************** Resource Manager Defines and Structures ******************\
38 *                                                                           *
39 * Module: fabric_vaspace.h                                                  *
40 *    Defines and structures used for Fabric Virtual Address Space Object.   *
41 \***************************************************************************/
42 
43 #include "mmu/mmu_walk.h"
44 #include "mmu/gmmu_fmt.h"
45 #include "core/core.h"
46 #include "mem_mgr/vaspace.h"
47 #include "mem_mgr/gpu_vaspace.h"
48 #include "gpu/mem_mgr/virt_mem_allocator.h"
49 #include "ctrl/ctrl0080/ctrl0080dma.h"
50 #include "ctrl/ctrl90f1.h"
51 #include "gpu/mem_mgr/mem_desc.h"
52 
53 #include "containers/list.h"
54 #include "containers/map.h"
55 #include "mem_mgr/pool_alloc.h"
56 
57 typedef struct
58 {
59     NODE               Node;
60     MEMORY_DESCRIPTOR *pVidMemDesc;
61     NvU64              offset;
62 } FABRIC_VA_TO_GPA_MAP_NODE;
63 
64 #define FABRIC_VASPACE_MAP_FLAGS_READ_ONLY    NVBIT(0)
65 
66 /*!
67  * RM-registered/managed Fabric virtual address space.
68  */
69 
70 // Private field names are wrapped in PRIVATE_FIELD, which does nothing for
71 // the matching C source file, but causes diagnostics to be issued if another
72 // source file references the field.
73 #ifdef NVOC_FABRIC_VASPACE_H_PRIVATE_ACCESS_ALLOWED
74 #define PRIVATE_FIELD(x) x
75 #else
76 #define PRIVATE_FIELD(x) NVOC_PRIVATE_FIELD(x)
77 #endif
78 
79 struct FABRIC_VASPACE {
80     const struct NVOC_RTTI *__nvoc_rtti;
81     struct OBJVASPACE __nvoc_base_OBJVASPACE;
82     struct Object *__nvoc_pbase_Object;
83     struct OBJVASPACE *__nvoc_pbase_OBJVASPACE;
84     struct FABRIC_VASPACE *__nvoc_pbase_FABRIC_VASPACE;
85     NV_STATUS (*__fabricvaspaceConstruct___)(struct FABRIC_VASPACE *, NvU32, NvU32, NvU64, NvU64, NvU64, NvU64, NvU32);
86     NV_STATUS (*__fabricvaspaceAlloc__)(struct FABRIC_VASPACE *, NvU64, NvU64, NvU64, NvU64, NvU64, VAS_ALLOC_FLAGS, NvU64 *);
87     NV_STATUS (*__fabricvaspaceFree__)(struct FABRIC_VASPACE *, NvU64);
88     NV_STATUS (*__fabricvaspaceMap__)(struct FABRIC_VASPACE *, struct OBJGPU *, const NvU64, const NvU64, const MMU_MAP_TARGET *, const VAS_MAP_FLAGS);
89     void (*__fabricvaspaceUnmap__)(struct FABRIC_VASPACE *, struct OBJGPU *, const NvU64, const NvU64);
90     NV_STATUS (*__fabricvaspaceApplyDefaultAlignment__)(struct FABRIC_VASPACE *, const FB_ALLOC_INFO *, NvU64 *, NvU64 *, NvU64 *);
91     NV_STATUS (*__fabricvaspaceGetVasInfo__)(struct FABRIC_VASPACE *, NV0080_CTRL_DMA_ADV_SCHED_GET_VA_CAPS_PARAMS *);
92     NV_STATUS (*__fabricvaspacePinRootPageDir__)(struct FABRIC_VASPACE *, struct OBJGPU *);
93     void (*__fabricvaspaceUnpinRootPageDir__)(struct FABRIC_VASPACE *, struct OBJGPU *);
94     void (*__fabricvaspaceInvalidateTlb__)(struct FABRIC_VASPACE *, struct OBJGPU *, VAS_PTE_UPDATE_TYPE);
95     NvBool (*__fabricvaspaceIsMirrored__)(struct FABRIC_VASPACE *);
96     NvBool (*__fabricvaspaceIsExternallyOwned__)(struct FABRIC_VASPACE *);
97     NvU32 (*__fabricvaspaceGetFlags__)(struct FABRIC_VASPACE *);
98     NvBool (*__fabricvaspaceIsAtsEnabled__)(struct FABRIC_VASPACE *);
99     NvU64 (*__fabricvaspaceGetBigPageSize__)(struct FABRIC_VASPACE *);
100     NV_STATUS (*__fabricvaspaceGetPteInfo__)(struct FABRIC_VASPACE *, struct OBJGPU *, NV0080_CTRL_DMA_GET_PTE_INFO_PARAMS *, RmPhysAddr *);
101     NvU64 (*__fabricvaspaceGetVaLimit__)(struct FABRIC_VASPACE *);
102     PMEMORY_DESCRIPTOR (*__fabricvaspaceGetPageDirBase__)(struct FABRIC_VASPACE *, struct OBJGPU *);
103     PMEMORY_DESCRIPTOR (*__fabricvaspaceGetKernelPageDirBase__)(struct FABRIC_VASPACE *, struct OBJGPU *);
104     NvU64 (*__fabricvaspaceGetMapPageSize__)(struct FABRIC_VASPACE *, struct OBJGPU *, struct EMEMBLOCK *);
105     struct OBJEHEAP *(*__fabricvaspaceGetHeap__)(struct FABRIC_VASPACE *);
106     NvBool (*__fabricvaspaceIsFaultCapable__)(struct FABRIC_VASPACE *);
107     NvU64 (*__fabricvaspaceGetVaStart__)(struct FABRIC_VASPACE *);
108     NV_STATUS (*__fabricvaspaceIncAllocRefCnt__)(struct FABRIC_VASPACE *, NvU64);
109     NV_STATUS (*__fabricvaspaceSetPteInfo__)(struct FABRIC_VASPACE *, struct OBJGPU *, NV0080_CTRL_DMA_SET_PTE_INFO_PARAMS *);
110     NV_STATUS (*__fabricvaspaceFreeV2__)(struct FABRIC_VASPACE *, NvU64, NvU64 *);
111     NV_STATUS (*__fabricvaspaceGetPasid__)(struct FABRIC_VASPACE *, NvU32 *);
112     NV_STATUS (*__fabricvaspaceGetPageTableInfo__)(struct FABRIC_VASPACE *, NV0080_CTRL_DMA_GET_PDE_INFO_PARAMS *);
113     NV_STATUS (*__fabricvaspaceReserveMempool__)(struct FABRIC_VASPACE *, struct OBJGPU *, struct Device *, NvU64, NvU64, NvU32);
114     struct OBJVASPACE *pGVAS;
115     NvU32 flags;
116     NvHandle hClient;
117     NvHandle hDevice;
118     NODE *pFabricVaToGpaMap;
119     NvU64 ucFabricBase;
120     NvU64 ucFabricLimit;
121     NvU64 ucFabricInUseSize;
122     NvU64 ucFabricFreeSize;
123     NvU32 gfid;
124     NvBool bRpcAlloc;
125 };
126 
127 #ifndef __NVOC_CLASS_FABRIC_VASPACE_TYPEDEF__
128 #define __NVOC_CLASS_FABRIC_VASPACE_TYPEDEF__
129 typedef struct FABRIC_VASPACE FABRIC_VASPACE;
130 #endif /* __NVOC_CLASS_FABRIC_VASPACE_TYPEDEF__ */
131 
132 #ifndef __nvoc_class_id_FABRIC_VASPACE
133 #define __nvoc_class_id_FABRIC_VASPACE 0x8c8f3d
134 #endif /* __nvoc_class_id_FABRIC_VASPACE */
135 
136 extern const struct NVOC_CLASS_DEF __nvoc_class_def_FABRIC_VASPACE;
137 
138 #define __staticCast_FABRIC_VASPACE(pThis) \
139     ((pThis)->__nvoc_pbase_FABRIC_VASPACE)
140 
141 #ifdef __nvoc_fabric_vaspace_h_disabled
142 #define __dynamicCast_FABRIC_VASPACE(pThis) ((FABRIC_VASPACE*)NULL)
143 #else //__nvoc_fabric_vaspace_h_disabled
144 #define __dynamicCast_FABRIC_VASPACE(pThis) \
145     ((FABRIC_VASPACE*)__nvoc_dynamicCast(staticCast((pThis), Dynamic), classInfo(FABRIC_VASPACE)))
146 #endif //__nvoc_fabric_vaspace_h_disabled
147 
148 
149 NV_STATUS __nvoc_objCreateDynamic_FABRIC_VASPACE(FABRIC_VASPACE**, Dynamic*, NvU32, va_list);
150 
151 NV_STATUS __nvoc_objCreate_FABRIC_VASPACE(FABRIC_VASPACE**, Dynamic*, NvU32);
152 #define __objCreate_FABRIC_VASPACE(ppNewObj, pParent, createFlags) \
153     __nvoc_objCreate_FABRIC_VASPACE((ppNewObj), staticCast((pParent), Dynamic), (createFlags))
154 
155 #define fabricvaspaceConstruct_(pFabricVAS, classId, vaspaceId, vaStart, vaLimit, vaStartInternal, vaLimitInternal, flags) fabricvaspaceConstruct__DISPATCH(pFabricVAS, classId, vaspaceId, vaStart, vaLimit, vaStartInternal, vaLimitInternal, flags)
156 #define fabricvaspaceAlloc(pFabricVAS, size, align, rangeLo, rangeHi, pageSize, flags, pAddr) fabricvaspaceAlloc_DISPATCH(pFabricVAS, size, align, rangeLo, rangeHi, pageSize, flags, pAddr)
157 #define fabricvaspaceFree(pFabricVAS, vAddr) fabricvaspaceFree_DISPATCH(pFabricVAS, vAddr)
158 #define fabricvaspaceMap(pFabricVAS, pGpu, vaLo, vaHi, pTarget, flags) fabricvaspaceMap_DISPATCH(pFabricVAS, pGpu, vaLo, vaHi, pTarget, flags)
159 #define fabricvaspaceUnmap(pFabricVAS, pGpu, vaLo, vaHi) fabricvaspaceUnmap_DISPATCH(pFabricVAS, pGpu, vaLo, vaHi)
160 #define fabricvaspaceApplyDefaultAlignment(pFabricVAS, pAllocInfo, pAlign, pSize, pPageSizeLockMask) fabricvaspaceApplyDefaultAlignment_DISPATCH(pFabricVAS, pAllocInfo, pAlign, pSize, pPageSizeLockMask)
161 #define fabricvaspaceGetVasInfo(pFabricVAS, pParams) fabricvaspaceGetVasInfo_DISPATCH(pFabricVAS, pParams)
162 #define fabricvaspacePinRootPageDir(pFabricVAS, pGpu) fabricvaspacePinRootPageDir_DISPATCH(pFabricVAS, pGpu)
163 #define fabricvaspaceUnpinRootPageDir(pFabricVAS, pGpu) fabricvaspaceUnpinRootPageDir_DISPATCH(pFabricVAS, pGpu)
164 #define fabricvaspaceInvalidateTlb(pFabricVAS, pGpu, type) fabricvaspaceInvalidateTlb_DISPATCH(pFabricVAS, pGpu, type)
165 #define fabricvaspaceIsMirrored(pVAS) fabricvaspaceIsMirrored_DISPATCH(pVAS)
166 #define fabricvaspaceIsExternallyOwned(pVAS) fabricvaspaceIsExternallyOwned_DISPATCH(pVAS)
167 #define fabricvaspaceGetFlags(pVAS) fabricvaspaceGetFlags_DISPATCH(pVAS)
168 #define fabricvaspaceIsAtsEnabled(pVAS) fabricvaspaceIsAtsEnabled_DISPATCH(pVAS)
169 #define fabricvaspaceGetBigPageSize(pVAS) fabricvaspaceGetBigPageSize_DISPATCH(pVAS)
170 #define fabricvaspaceGetPteInfo(pVAS, pGpu, pParams, pPhysAddr) fabricvaspaceGetPteInfo_DISPATCH(pVAS, pGpu, pParams, pPhysAddr)
171 #define fabricvaspaceGetVaLimit(pVAS) fabricvaspaceGetVaLimit_DISPATCH(pVAS)
172 #define fabricvaspaceGetPageDirBase(pVAS, pGpu) fabricvaspaceGetPageDirBase_DISPATCH(pVAS, pGpu)
173 #define fabricvaspaceGetKernelPageDirBase(pVAS, pGpu) fabricvaspaceGetKernelPageDirBase_DISPATCH(pVAS, pGpu)
174 #define fabricvaspaceGetMapPageSize(pVAS, pGpu, pMemBlock) fabricvaspaceGetMapPageSize_DISPATCH(pVAS, pGpu, pMemBlock)
175 #define fabricvaspaceGetHeap(pVAS) fabricvaspaceGetHeap_DISPATCH(pVAS)
176 #define fabricvaspaceIsFaultCapable(pVAS) fabricvaspaceIsFaultCapable_DISPATCH(pVAS)
177 #define fabricvaspaceGetVaStart(pVAS) fabricvaspaceGetVaStart_DISPATCH(pVAS)
178 #define fabricvaspaceIncAllocRefCnt(pVAS, vAddr) fabricvaspaceIncAllocRefCnt_DISPATCH(pVAS, vAddr)
179 #define fabricvaspaceSetPteInfo(pVAS, pGpu, pParams) fabricvaspaceSetPteInfo_DISPATCH(pVAS, pGpu, pParams)
180 #define fabricvaspaceFreeV2(pVAS, vAddr, pSize) fabricvaspaceFreeV2_DISPATCH(pVAS, vAddr, pSize)
181 #define fabricvaspaceGetPasid(pVAS, pPasid) fabricvaspaceGetPasid_DISPATCH(pVAS, pPasid)
182 #define fabricvaspaceGetPageTableInfo(pVAS, pParams) fabricvaspaceGetPageTableInfo_DISPATCH(pVAS, pParams)
183 #define fabricvaspaceReserveMempool(pVAS, pGpu, pDevice, size, pageSizeLockMask, flags) fabricvaspaceReserveMempool_DISPATCH(pVAS, pGpu, pDevice, size, pageSizeLockMask, flags)
184 NV_STATUS fabricvaspaceConstruct__IMPL(struct FABRIC_VASPACE *pFabricVAS, NvU32 classId, NvU32 vaspaceId, NvU64 vaStart, NvU64 vaLimit, NvU64 vaStartInternal, NvU64 vaLimitInternal, NvU32 flags);
185 
fabricvaspaceConstruct__DISPATCH(struct FABRIC_VASPACE * pFabricVAS,NvU32 classId,NvU32 vaspaceId,NvU64 vaStart,NvU64 vaLimit,NvU64 vaStartInternal,NvU64 vaLimitInternal,NvU32 flags)186 static inline NV_STATUS fabricvaspaceConstruct__DISPATCH(struct FABRIC_VASPACE *pFabricVAS, NvU32 classId, NvU32 vaspaceId, NvU64 vaStart, NvU64 vaLimit, NvU64 vaStartInternal, NvU64 vaLimitInternal, NvU32 flags) {
187     return pFabricVAS->__fabricvaspaceConstruct___(pFabricVAS, classId, vaspaceId, vaStart, vaLimit, vaStartInternal, vaLimitInternal, flags);
188 }
189 
190 NV_STATUS fabricvaspaceAlloc_IMPL(struct FABRIC_VASPACE *pFabricVAS, NvU64 size, NvU64 align, NvU64 rangeLo, NvU64 rangeHi, NvU64 pageSize, VAS_ALLOC_FLAGS flags, NvU64 *pAddr);
191 
fabricvaspaceAlloc_DISPATCH(struct FABRIC_VASPACE * pFabricVAS,NvU64 size,NvU64 align,NvU64 rangeLo,NvU64 rangeHi,NvU64 pageSize,VAS_ALLOC_FLAGS flags,NvU64 * pAddr)192 static inline NV_STATUS fabricvaspaceAlloc_DISPATCH(struct FABRIC_VASPACE *pFabricVAS, NvU64 size, NvU64 align, NvU64 rangeLo, NvU64 rangeHi, NvU64 pageSize, VAS_ALLOC_FLAGS flags, NvU64 *pAddr) {
193     return pFabricVAS->__fabricvaspaceAlloc__(pFabricVAS, size, align, rangeLo, rangeHi, pageSize, flags, pAddr);
194 }
195 
196 NV_STATUS fabricvaspaceFree_IMPL(struct FABRIC_VASPACE *pFabricVAS, NvU64 vAddr);
197 
fabricvaspaceFree_DISPATCH(struct FABRIC_VASPACE * pFabricVAS,NvU64 vAddr)198 static inline NV_STATUS fabricvaspaceFree_DISPATCH(struct FABRIC_VASPACE *pFabricVAS, NvU64 vAddr) {
199     return pFabricVAS->__fabricvaspaceFree__(pFabricVAS, vAddr);
200 }
201 
202 NV_STATUS fabricvaspaceMap_IMPL(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, const NvU64 vaLo, const NvU64 vaHi, const MMU_MAP_TARGET *pTarget, const VAS_MAP_FLAGS flags);
203 
fabricvaspaceMap_DISPATCH(struct FABRIC_VASPACE * pFabricVAS,struct OBJGPU * pGpu,const NvU64 vaLo,const NvU64 vaHi,const MMU_MAP_TARGET * pTarget,const VAS_MAP_FLAGS flags)204 static inline NV_STATUS fabricvaspaceMap_DISPATCH(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, const NvU64 vaLo, const NvU64 vaHi, const MMU_MAP_TARGET *pTarget, const VAS_MAP_FLAGS flags) {
205     return pFabricVAS->__fabricvaspaceMap__(pFabricVAS, pGpu, vaLo, vaHi, pTarget, flags);
206 }
207 
208 void fabricvaspaceUnmap_IMPL(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, const NvU64 vaLo, const NvU64 vaHi);
209 
fabricvaspaceUnmap_DISPATCH(struct FABRIC_VASPACE * pFabricVAS,struct OBJGPU * pGpu,const NvU64 vaLo,const NvU64 vaHi)210 static inline void fabricvaspaceUnmap_DISPATCH(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, const NvU64 vaLo, const NvU64 vaHi) {
211     pFabricVAS->__fabricvaspaceUnmap__(pFabricVAS, pGpu, vaLo, vaHi);
212 }
213 
214 NV_STATUS fabricvaspaceApplyDefaultAlignment_IMPL(struct FABRIC_VASPACE *pFabricVAS, const FB_ALLOC_INFO *pAllocInfo, NvU64 *pAlign, NvU64 *pSize, NvU64 *pPageSizeLockMask);
215 
fabricvaspaceApplyDefaultAlignment_DISPATCH(struct FABRIC_VASPACE * pFabricVAS,const FB_ALLOC_INFO * pAllocInfo,NvU64 * pAlign,NvU64 * pSize,NvU64 * pPageSizeLockMask)216 static inline NV_STATUS fabricvaspaceApplyDefaultAlignment_DISPATCH(struct FABRIC_VASPACE *pFabricVAS, const FB_ALLOC_INFO *pAllocInfo, NvU64 *pAlign, NvU64 *pSize, NvU64 *pPageSizeLockMask) {
217     return pFabricVAS->__fabricvaspaceApplyDefaultAlignment__(pFabricVAS, pAllocInfo, pAlign, pSize, pPageSizeLockMask);
218 }
219 
220 NV_STATUS fabricvaspaceGetVasInfo_IMPL(struct FABRIC_VASPACE *pFabricVAS, NV0080_CTRL_DMA_ADV_SCHED_GET_VA_CAPS_PARAMS *pParams);
221 
fabricvaspaceGetVasInfo_DISPATCH(struct FABRIC_VASPACE * pFabricVAS,NV0080_CTRL_DMA_ADV_SCHED_GET_VA_CAPS_PARAMS * pParams)222 static inline NV_STATUS fabricvaspaceGetVasInfo_DISPATCH(struct FABRIC_VASPACE *pFabricVAS, NV0080_CTRL_DMA_ADV_SCHED_GET_VA_CAPS_PARAMS *pParams) {
223     return pFabricVAS->__fabricvaspaceGetVasInfo__(pFabricVAS, pParams);
224 }
225 
226 NV_STATUS fabricvaspacePinRootPageDir_IMPL(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu);
227 
fabricvaspacePinRootPageDir_DISPATCH(struct FABRIC_VASPACE * pFabricVAS,struct OBJGPU * pGpu)228 static inline NV_STATUS fabricvaspacePinRootPageDir_DISPATCH(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu) {
229     return pFabricVAS->__fabricvaspacePinRootPageDir__(pFabricVAS, pGpu);
230 }
231 
232 void fabricvaspaceUnpinRootPageDir_IMPL(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu);
233 
fabricvaspaceUnpinRootPageDir_DISPATCH(struct FABRIC_VASPACE * pFabricVAS,struct OBJGPU * pGpu)234 static inline void fabricvaspaceUnpinRootPageDir_DISPATCH(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu) {
235     pFabricVAS->__fabricvaspaceUnpinRootPageDir__(pFabricVAS, pGpu);
236 }
237 
238 void fabricvaspaceInvalidateTlb_IMPL(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, VAS_PTE_UPDATE_TYPE type);
239 
fabricvaspaceInvalidateTlb_DISPATCH(struct FABRIC_VASPACE * pFabricVAS,struct OBJGPU * pGpu,VAS_PTE_UPDATE_TYPE type)240 static inline void fabricvaspaceInvalidateTlb_DISPATCH(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, VAS_PTE_UPDATE_TYPE type) {
241     pFabricVAS->__fabricvaspaceInvalidateTlb__(pFabricVAS, pGpu, type);
242 }
243 
fabricvaspaceIsMirrored_DISPATCH(struct FABRIC_VASPACE * pVAS)244 static inline NvBool fabricvaspaceIsMirrored_DISPATCH(struct FABRIC_VASPACE *pVAS) {
245     return pVAS->__fabricvaspaceIsMirrored__(pVAS);
246 }
247 
fabricvaspaceIsExternallyOwned_DISPATCH(struct FABRIC_VASPACE * pVAS)248 static inline NvBool fabricvaspaceIsExternallyOwned_DISPATCH(struct FABRIC_VASPACE *pVAS) {
249     return pVAS->__fabricvaspaceIsExternallyOwned__(pVAS);
250 }
251 
fabricvaspaceGetFlags_DISPATCH(struct FABRIC_VASPACE * pVAS)252 static inline NvU32 fabricvaspaceGetFlags_DISPATCH(struct FABRIC_VASPACE *pVAS) {
253     return pVAS->__fabricvaspaceGetFlags__(pVAS);
254 }
255 
fabricvaspaceIsAtsEnabled_DISPATCH(struct FABRIC_VASPACE * pVAS)256 static inline NvBool fabricvaspaceIsAtsEnabled_DISPATCH(struct FABRIC_VASPACE *pVAS) {
257     return pVAS->__fabricvaspaceIsAtsEnabled__(pVAS);
258 }
259 
fabricvaspaceGetBigPageSize_DISPATCH(struct FABRIC_VASPACE * pVAS)260 static inline NvU64 fabricvaspaceGetBigPageSize_DISPATCH(struct FABRIC_VASPACE *pVAS) {
261     return pVAS->__fabricvaspaceGetBigPageSize__(pVAS);
262 }
263 
fabricvaspaceGetPteInfo_DISPATCH(struct FABRIC_VASPACE * pVAS,struct OBJGPU * pGpu,NV0080_CTRL_DMA_GET_PTE_INFO_PARAMS * pParams,RmPhysAddr * pPhysAddr)264 static inline NV_STATUS fabricvaspaceGetPteInfo_DISPATCH(struct FABRIC_VASPACE *pVAS, struct OBJGPU *pGpu, NV0080_CTRL_DMA_GET_PTE_INFO_PARAMS *pParams, RmPhysAddr *pPhysAddr) {
265     return pVAS->__fabricvaspaceGetPteInfo__(pVAS, pGpu, pParams, pPhysAddr);
266 }
267 
fabricvaspaceGetVaLimit_DISPATCH(struct FABRIC_VASPACE * pVAS)268 static inline NvU64 fabricvaspaceGetVaLimit_DISPATCH(struct FABRIC_VASPACE *pVAS) {
269     return pVAS->__fabricvaspaceGetVaLimit__(pVAS);
270 }
271 
fabricvaspaceGetPageDirBase_DISPATCH(struct FABRIC_VASPACE * pVAS,struct OBJGPU * pGpu)272 static inline PMEMORY_DESCRIPTOR fabricvaspaceGetPageDirBase_DISPATCH(struct FABRIC_VASPACE *pVAS, struct OBJGPU *pGpu) {
273     return pVAS->__fabricvaspaceGetPageDirBase__(pVAS, pGpu);
274 }
275 
fabricvaspaceGetKernelPageDirBase_DISPATCH(struct FABRIC_VASPACE * pVAS,struct OBJGPU * pGpu)276 static inline PMEMORY_DESCRIPTOR fabricvaspaceGetKernelPageDirBase_DISPATCH(struct FABRIC_VASPACE *pVAS, struct OBJGPU *pGpu) {
277     return pVAS->__fabricvaspaceGetKernelPageDirBase__(pVAS, pGpu);
278 }
279 
fabricvaspaceGetMapPageSize_DISPATCH(struct FABRIC_VASPACE * pVAS,struct OBJGPU * pGpu,struct EMEMBLOCK * pMemBlock)280 static inline NvU64 fabricvaspaceGetMapPageSize_DISPATCH(struct FABRIC_VASPACE *pVAS, struct OBJGPU *pGpu, struct EMEMBLOCK *pMemBlock) {
281     return pVAS->__fabricvaspaceGetMapPageSize__(pVAS, pGpu, pMemBlock);
282 }
283 
fabricvaspaceGetHeap_DISPATCH(struct FABRIC_VASPACE * pVAS)284 static inline struct OBJEHEAP *fabricvaspaceGetHeap_DISPATCH(struct FABRIC_VASPACE *pVAS) {
285     return pVAS->__fabricvaspaceGetHeap__(pVAS);
286 }
287 
fabricvaspaceIsFaultCapable_DISPATCH(struct FABRIC_VASPACE * pVAS)288 static inline NvBool fabricvaspaceIsFaultCapable_DISPATCH(struct FABRIC_VASPACE *pVAS) {
289     return pVAS->__fabricvaspaceIsFaultCapable__(pVAS);
290 }
291 
fabricvaspaceGetVaStart_DISPATCH(struct FABRIC_VASPACE * pVAS)292 static inline NvU64 fabricvaspaceGetVaStart_DISPATCH(struct FABRIC_VASPACE *pVAS) {
293     return pVAS->__fabricvaspaceGetVaStart__(pVAS);
294 }
295 
fabricvaspaceIncAllocRefCnt_DISPATCH(struct FABRIC_VASPACE * pVAS,NvU64 vAddr)296 static inline NV_STATUS fabricvaspaceIncAllocRefCnt_DISPATCH(struct FABRIC_VASPACE *pVAS, NvU64 vAddr) {
297     return pVAS->__fabricvaspaceIncAllocRefCnt__(pVAS, vAddr);
298 }
299 
fabricvaspaceSetPteInfo_DISPATCH(struct FABRIC_VASPACE * pVAS,struct OBJGPU * pGpu,NV0080_CTRL_DMA_SET_PTE_INFO_PARAMS * pParams)300 static inline NV_STATUS fabricvaspaceSetPteInfo_DISPATCH(struct FABRIC_VASPACE *pVAS, struct OBJGPU *pGpu, NV0080_CTRL_DMA_SET_PTE_INFO_PARAMS *pParams) {
301     return pVAS->__fabricvaspaceSetPteInfo__(pVAS, pGpu, pParams);
302 }
303 
fabricvaspaceFreeV2_DISPATCH(struct FABRIC_VASPACE * pVAS,NvU64 vAddr,NvU64 * pSize)304 static inline NV_STATUS fabricvaspaceFreeV2_DISPATCH(struct FABRIC_VASPACE *pVAS, NvU64 vAddr, NvU64 *pSize) {
305     return pVAS->__fabricvaspaceFreeV2__(pVAS, vAddr, pSize);
306 }
307 
fabricvaspaceGetPasid_DISPATCH(struct FABRIC_VASPACE * pVAS,NvU32 * pPasid)308 static inline NV_STATUS fabricvaspaceGetPasid_DISPATCH(struct FABRIC_VASPACE *pVAS, NvU32 *pPasid) {
309     return pVAS->__fabricvaspaceGetPasid__(pVAS, pPasid);
310 }
311 
fabricvaspaceGetPageTableInfo_DISPATCH(struct FABRIC_VASPACE * pVAS,NV0080_CTRL_DMA_GET_PDE_INFO_PARAMS * pParams)312 static inline NV_STATUS fabricvaspaceGetPageTableInfo_DISPATCH(struct FABRIC_VASPACE *pVAS, NV0080_CTRL_DMA_GET_PDE_INFO_PARAMS *pParams) {
313     return pVAS->__fabricvaspaceGetPageTableInfo__(pVAS, pParams);
314 }
315 
fabricvaspaceReserveMempool_DISPATCH(struct FABRIC_VASPACE * pVAS,struct OBJGPU * pGpu,struct Device * pDevice,NvU64 size,NvU64 pageSizeLockMask,NvU32 flags)316 static inline NV_STATUS fabricvaspaceReserveMempool_DISPATCH(struct FABRIC_VASPACE *pVAS, struct OBJGPU *pGpu, struct Device *pDevice, NvU64 size, NvU64 pageSizeLockMask, NvU32 flags) {
317     return pVAS->__fabricvaspaceReserveMempool__(pVAS, pGpu, pDevice, size, pageSizeLockMask, flags);
318 }
319 
fabricvaspaceGetUCFlaStart(struct FABRIC_VASPACE * pFabricVAS)320 static inline NvU64 fabricvaspaceGetUCFlaStart(struct FABRIC_VASPACE *pFabricVAS) {
321     return pFabricVAS->ucFabricBase;
322 }
323 
fabricvaspaceGetUCFlaLimit(struct FABRIC_VASPACE * pFabricVAS)324 static inline NvU64 fabricvaspaceGetUCFlaLimit(struct FABRIC_VASPACE *pFabricVAS) {
325     return pFabricVAS->ucFabricLimit;
326 }
327 
328 void fabricvaspaceDestruct_IMPL(struct FABRIC_VASPACE *pFabricVAS);
329 
330 #define __nvoc_fabricvaspaceDestruct(pFabricVAS) fabricvaspaceDestruct_IMPL(pFabricVAS)
331 NV_STATUS fabricvaspaceAllocNonContiguous_IMPL(struct FABRIC_VASPACE *pFabricVAS, NvU64 size, NvU64 align, NvU64 rangeLo, NvU64 rangeHi, NvU64 pageSize, VAS_ALLOC_FLAGS flags, NvU64 **ppAddr, NvU32 *pNumAddr);
332 
333 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceAllocNonContiguous(struct FABRIC_VASPACE * pFabricVAS,NvU64 size,NvU64 align,NvU64 rangeLo,NvU64 rangeHi,NvU64 pageSize,VAS_ALLOC_FLAGS flags,NvU64 ** ppAddr,NvU32 * pNumAddr)334 static inline NV_STATUS fabricvaspaceAllocNonContiguous(struct FABRIC_VASPACE *pFabricVAS, NvU64 size, NvU64 align, NvU64 rangeLo, NvU64 rangeHi, NvU64 pageSize, VAS_ALLOC_FLAGS flags, NvU64 **ppAddr, NvU32 *pNumAddr) {
335     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
336     return NV_ERR_NOT_SUPPORTED;
337 }
338 #else //__nvoc_fabric_vaspace_h_disabled
339 #define fabricvaspaceAllocNonContiguous(pFabricVAS, size, align, rangeLo, rangeHi, pageSize, flags, ppAddr, pNumAddr) fabricvaspaceAllocNonContiguous_IMPL(pFabricVAS, size, align, rangeLo, rangeHi, pageSize, flags, ppAddr, pNumAddr)
340 #endif //__nvoc_fabric_vaspace_h_disabled
341 
342 void fabricvaspaceBatchFree_IMPL(struct FABRIC_VASPACE *pFabricVAS, NvU64 *pAddr, NvU32 numAddr, NvU32 stride);
343 
344 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceBatchFree(struct FABRIC_VASPACE * pFabricVAS,NvU64 * pAddr,NvU32 numAddr,NvU32 stride)345 static inline void fabricvaspaceBatchFree(struct FABRIC_VASPACE *pFabricVAS, NvU64 *pAddr, NvU32 numAddr, NvU32 stride) {
346     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
347 }
348 #else //__nvoc_fabric_vaspace_h_disabled
349 #define fabricvaspaceBatchFree(pFabricVAS, pAddr, numAddr, stride) fabricvaspaceBatchFree_IMPL(pFabricVAS, pAddr, numAddr, stride)
350 #endif //__nvoc_fabric_vaspace_h_disabled
351 
352 NV_STATUS fabricvaspaceGetFreeHeap_IMPL(struct FABRIC_VASPACE *pFabricVAS, NvU64 *pFreeSize);
353 
354 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceGetFreeHeap(struct FABRIC_VASPACE * pFabricVAS,NvU64 * pFreeSize)355 static inline NV_STATUS fabricvaspaceGetFreeHeap(struct FABRIC_VASPACE *pFabricVAS, NvU64 *pFreeSize) {
356     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
357     return NV_ERR_NOT_SUPPORTED;
358 }
359 #else //__nvoc_fabric_vaspace_h_disabled
360 #define fabricvaspaceGetFreeHeap(pFabricVAS, pFreeSize) fabricvaspaceGetFreeHeap_IMPL(pFabricVAS, pFreeSize)
361 #endif //__nvoc_fabric_vaspace_h_disabled
362 
363 NV_STATUS fabricvaspaceGetGpaMemdesc_IMPL(struct FABRIC_VASPACE *pFabricVAS, MEMORY_DESCRIPTOR *pFabricMemdesc, struct OBJGPU *pMappingGpu, MEMORY_DESCRIPTOR **ppAdjustedMemdesc);
364 
365 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceGetGpaMemdesc(struct FABRIC_VASPACE * pFabricVAS,MEMORY_DESCRIPTOR * pFabricMemdesc,struct OBJGPU * pMappingGpu,MEMORY_DESCRIPTOR ** ppAdjustedMemdesc)366 static inline NV_STATUS fabricvaspaceGetGpaMemdesc(struct FABRIC_VASPACE *pFabricVAS, MEMORY_DESCRIPTOR *pFabricMemdesc, struct OBJGPU *pMappingGpu, MEMORY_DESCRIPTOR **ppAdjustedMemdesc) {
367     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
368     return NV_ERR_NOT_SUPPORTED;
369 }
370 #else //__nvoc_fabric_vaspace_h_disabled
371 #define fabricvaspaceGetGpaMemdesc(pFabricVAS, pFabricMemdesc, pMappingGpu, ppAdjustedMemdesc) fabricvaspaceGetGpaMemdesc_IMPL(pFabricVAS, pFabricMemdesc, pMappingGpu, ppAdjustedMemdesc)
372 #endif //__nvoc_fabric_vaspace_h_disabled
373 
374 void fabricvaspacePutGpaMemdesc_IMPL(struct FABRIC_VASPACE *pFabricVAS, MEMORY_DESCRIPTOR *pMemDesc);
375 
376 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspacePutGpaMemdesc(struct FABRIC_VASPACE * pFabricVAS,MEMORY_DESCRIPTOR * pMemDesc)377 static inline void fabricvaspacePutGpaMemdesc(struct FABRIC_VASPACE *pFabricVAS, MEMORY_DESCRIPTOR *pMemDesc) {
378     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
379 }
380 #else //__nvoc_fabric_vaspace_h_disabled
381 #define fabricvaspacePutGpaMemdesc(pFabricVAS, pMemDesc) fabricvaspacePutGpaMemdesc_IMPL(pFabricVAS, pMemDesc)
382 #endif //__nvoc_fabric_vaspace_h_disabled
383 
384 NV_STATUS fabricvaspaceVaToGpaMapInsert_IMPL(struct FABRIC_VASPACE *pFabricVAS, NvU64 vAddr, MEMORY_DESCRIPTOR *pVidMemDesc, NvU64 offset);
385 
386 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceVaToGpaMapInsert(struct FABRIC_VASPACE * pFabricVAS,NvU64 vAddr,MEMORY_DESCRIPTOR * pVidMemDesc,NvU64 offset)387 static inline NV_STATUS fabricvaspaceVaToGpaMapInsert(struct FABRIC_VASPACE *pFabricVAS, NvU64 vAddr, MEMORY_DESCRIPTOR *pVidMemDesc, NvU64 offset) {
388     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
389     return NV_ERR_NOT_SUPPORTED;
390 }
391 #else //__nvoc_fabric_vaspace_h_disabled
392 #define fabricvaspaceVaToGpaMapInsert(pFabricVAS, vAddr, pVidMemDesc, offset) fabricvaspaceVaToGpaMapInsert_IMPL(pFabricVAS, vAddr, pVidMemDesc, offset)
393 #endif //__nvoc_fabric_vaspace_h_disabled
394 
395 void fabricvaspaceVaToGpaMapRemove_IMPL(struct FABRIC_VASPACE *pFabricVAS, NvU64 vAddr);
396 
397 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceVaToGpaMapRemove(struct FABRIC_VASPACE * pFabricVAS,NvU64 vAddr)398 static inline void fabricvaspaceVaToGpaMapRemove(struct FABRIC_VASPACE *pFabricVAS, NvU64 vAddr) {
399     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
400 }
401 #else //__nvoc_fabric_vaspace_h_disabled
402 #define fabricvaspaceVaToGpaMapRemove(pFabricVAS, vAddr) fabricvaspaceVaToGpaMapRemove_IMPL(pFabricVAS, vAddr)
403 #endif //__nvoc_fabric_vaspace_h_disabled
404 
405 NV_STATUS fabricvaspaceAllocMulticast_IMPL(struct FABRIC_VASPACE *pFabricVAS, NvU64 pageSize, NvU64 alignment, VAS_ALLOC_FLAGS flags, NvU64 base, NvU64 size);
406 
407 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceAllocMulticast(struct FABRIC_VASPACE * pFabricVAS,NvU64 pageSize,NvU64 alignment,VAS_ALLOC_FLAGS flags,NvU64 base,NvU64 size)408 static inline NV_STATUS fabricvaspaceAllocMulticast(struct FABRIC_VASPACE *pFabricVAS, NvU64 pageSize, NvU64 alignment, VAS_ALLOC_FLAGS flags, NvU64 base, NvU64 size) {
409     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
410     return NV_ERR_NOT_SUPPORTED;
411 }
412 #else //__nvoc_fabric_vaspace_h_disabled
413 #define fabricvaspaceAllocMulticast(pFabricVAS, pageSize, alignment, flags, base, size) fabricvaspaceAllocMulticast_IMPL(pFabricVAS, pageSize, alignment, flags, base, size)
414 #endif //__nvoc_fabric_vaspace_h_disabled
415 
416 NV_STATUS fabricvaspaceMapPhysMemdesc_IMPL(struct FABRIC_VASPACE *pFabricVAS, MEMORY_DESCRIPTOR *pFabricMemDesc, NvU64 fabricOffset, MEMORY_DESCRIPTOR *pPhysMemDesc, NvU64 physOffset, NvU64 physMapLength, NvU32 flags);
417 
418 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceMapPhysMemdesc(struct FABRIC_VASPACE * pFabricVAS,MEMORY_DESCRIPTOR * pFabricMemDesc,NvU64 fabricOffset,MEMORY_DESCRIPTOR * pPhysMemDesc,NvU64 physOffset,NvU64 physMapLength,NvU32 flags)419 static inline NV_STATUS fabricvaspaceMapPhysMemdesc(struct FABRIC_VASPACE *pFabricVAS, MEMORY_DESCRIPTOR *pFabricMemDesc, NvU64 fabricOffset, MEMORY_DESCRIPTOR *pPhysMemDesc, NvU64 physOffset, NvU64 physMapLength, NvU32 flags) {
420     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
421     return NV_ERR_NOT_SUPPORTED;
422 }
423 #else //__nvoc_fabric_vaspace_h_disabled
424 #define fabricvaspaceMapPhysMemdesc(pFabricVAS, pFabricMemDesc, fabricOffset, pPhysMemDesc, physOffset, physMapLength, flags) fabricvaspaceMapPhysMemdesc_IMPL(pFabricVAS, pFabricMemDesc, fabricOffset, pPhysMemDesc, physOffset, physMapLength, flags)
425 #endif //__nvoc_fabric_vaspace_h_disabled
426 
427 void fabricvaspaceUnmapPhysMemdesc_IMPL(struct FABRIC_VASPACE *pFabricVAS, MEMORY_DESCRIPTOR *pFabricMemDesc, NvU64 fabricOffset, MEMORY_DESCRIPTOR *pPhysMemDesc, NvU64 physMapLength);
428 
429 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceUnmapPhysMemdesc(struct FABRIC_VASPACE * pFabricVAS,MEMORY_DESCRIPTOR * pFabricMemDesc,NvU64 fabricOffset,MEMORY_DESCRIPTOR * pPhysMemDesc,NvU64 physMapLength)430 static inline void fabricvaspaceUnmapPhysMemdesc(struct FABRIC_VASPACE *pFabricVAS, MEMORY_DESCRIPTOR *pFabricMemDesc, NvU64 fabricOffset, MEMORY_DESCRIPTOR *pPhysMemDesc, NvU64 physMapLength) {
431     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
432 }
433 #else //__nvoc_fabric_vaspace_h_disabled
434 #define fabricvaspaceUnmapPhysMemdesc(pFabricVAS, pFabricMemDesc, fabricOffset, pPhysMemDesc, physMapLength) fabricvaspaceUnmapPhysMemdesc_IMPL(pFabricVAS, pFabricMemDesc, fabricOffset, pPhysMemDesc, physMapLength)
435 #endif //__nvoc_fabric_vaspace_h_disabled
436 
437 NV_STATUS fabricvaspaceInitUCRange_IMPL(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, NvU64 ucFabricBase, NvU64 ucFabricSize);
438 
439 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceInitUCRange(struct FABRIC_VASPACE * pFabricVAS,struct OBJGPU * pGpu,NvU64 ucFabricBase,NvU64 ucFabricSize)440 static inline NV_STATUS fabricvaspaceInitUCRange(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, NvU64 ucFabricBase, NvU64 ucFabricSize) {
441     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
442     return NV_ERR_NOT_SUPPORTED;
443 }
444 #else //__nvoc_fabric_vaspace_h_disabled
445 #define fabricvaspaceInitUCRange(pFabricVAS, pGpu, ucFabricBase, ucFabricSize) fabricvaspaceInitUCRange_IMPL(pFabricVAS, pGpu, ucFabricBase, ucFabricSize)
446 #endif //__nvoc_fabric_vaspace_h_disabled
447 
448 void fabricvaspaceClearUCRange_IMPL(struct FABRIC_VASPACE *pFabricVAS);
449 
450 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceClearUCRange(struct FABRIC_VASPACE * pFabricVAS)451 static inline void fabricvaspaceClearUCRange(struct FABRIC_VASPACE *pFabricVAS) {
452     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
453 }
454 #else //__nvoc_fabric_vaspace_h_disabled
455 #define fabricvaspaceClearUCRange(pFabricVAS) fabricvaspaceClearUCRange_IMPL(pFabricVAS)
456 #endif //__nvoc_fabric_vaspace_h_disabled
457 
458 NV_STATUS fabricvaspaceGetPageLevelInfo_IMPL(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, NV90F1_CTRL_VASPACE_GET_PAGE_LEVEL_INFO_PARAMS *pParams);
459 
460 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceGetPageLevelInfo(struct FABRIC_VASPACE * pFabricVAS,struct OBJGPU * pGpu,NV90F1_CTRL_VASPACE_GET_PAGE_LEVEL_INFO_PARAMS * pParams)461 static inline NV_STATUS fabricvaspaceGetPageLevelInfo(struct FABRIC_VASPACE *pFabricVAS, struct OBJGPU *pGpu, NV90F1_CTRL_VASPACE_GET_PAGE_LEVEL_INFO_PARAMS *pParams) {
462     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
463     return NV_ERR_NOT_SUPPORTED;
464 }
465 #else //__nvoc_fabric_vaspace_h_disabled
466 #define fabricvaspaceGetPageLevelInfo(pFabricVAS, pGpu, pParams) fabricvaspaceGetPageLevelInfo_IMPL(pFabricVAS, pGpu, pParams)
467 #endif //__nvoc_fabric_vaspace_h_disabled
468 
469 NvBool fabricvaspaceIsInUse_IMPL(struct FABRIC_VASPACE *pFabricVAS);
470 
471 #ifdef __nvoc_fabric_vaspace_h_disabled
fabricvaspaceIsInUse(struct FABRIC_VASPACE * pFabricVAS)472 static inline NvBool fabricvaspaceIsInUse(struct FABRIC_VASPACE *pFabricVAS) {
473     NV_ASSERT_FAILED_PRECOMP("FABRIC_VASPACE was disabled!");
474     return NV_FALSE;
475 }
476 #else //__nvoc_fabric_vaspace_h_disabled
477 #define fabricvaspaceIsInUse(pFabricVAS) fabricvaspaceIsInUse_IMPL(pFabricVAS)
478 #endif //__nvoc_fabric_vaspace_h_disabled
479 
480 #undef PRIVATE_FIELD
481 
482 
483 #endif // FABRIC_VASPACE_H
484 
485 #ifdef __cplusplus
486 } // extern "C"
487 #endif
488 
489 #endif // _G_FABRIC_VASPACE_NVOC_H_
490