1 #ifndef _G_KERNEL_GSP_NVOC_H_
2 #define _G_KERNEL_GSP_NVOC_H_
3 #include "nvoc/runtime.h"
4 
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8 
9 /*
10  * SPDX-FileCopyrightText: Copyright (c) 2017-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_kernel_gsp_nvoc.h"
33 
34 #ifndef KERNEL_GSP_H
35 #define KERNEL_GSP_H
36 
37 /*!
38  * This file provides definitions for all KernelGsp data structures
39  * and interfaces.  KernelGsp is responsible for initiating the boot
40  * of RM on the GSP core (GSP-RM) and helps facilitate communication
41  * between Kernel RM and GSP-RM.
42  */
43 
44 #include "core/core.h"
45 #include "core/bin_data.h"
46 #include "gpu/eng_state.h"
47 #include "gpu/intr/intr_service.h"
48 #include "gpu/falcon/kernel_falcon.h"
49 #include "gpu/gsp/gsp_static_config.h"
50 #include "gpu/gsp/gsp_init_args.h"
51 #include "gpu/gsp/gsp_fw_heap.h"
52 #include "nv-firmware.h"
53 #include "nv_sriov_defines.h"
54 #include "rmRiscvUcode.h"
55 
56 #include "libos_init_args.h"
57 #include "gsp_fw_wpr_meta.h"
58 #include "gsp_fw_sr_meta.h"
59 #include "liblogdecode.h"
60 
61 /*!
62  * Forward declarations
63  */
64 typedef struct SimAccessBuffer SimAccessBuffer;
65 typedef struct GSP_FMC_BOOT_PARAMS GSP_FMC_BOOT_PARAMS;
66 
67 /*!
68  * Structure for VBIOS image for early FRTS.
69  */
70 typedef struct KernelGspVbiosImg
71 {
72     NvU8 *pImage;
73     NvU32 biosSize;
74     NvU32 expansionRomOffset;
75 } KernelGspVbiosImg;
76 
77 /*!
78  * Variant of KernelGspFlcnUcode representing a non-Boot-from-HS ucode that
79  * loads directly without the generic falcon bootloader.
80  */
81 typedef struct KernelGspFlcnUcodeBootDirect
82 {
83     NvU8 *pImage;
84     NvU32 size;
85 
86     NvU32 imemSize;
87     NvU32 imemNsSize;
88     NvU32 imemNsPa;
89     NvU32 imemSecSize;
90     NvU32 imemSecPa;
91 
92     NvU32 dataOffset;
93     NvU32 dmemSize;
94     NvU32 dmemPa;
95 } KernelGspFlcnUcodeBootDirect;
96 
97 /*!
98  * Variant of KernelGspFlcnUcode representing a non-Boot-from-HS ucode that
99  * loads via the generic falcon bootloader.
100  */
101 typedef struct KernelGspFlcnUcodeBootWithLoader
102 {
103     MEMORY_DESCRIPTOR *pCodeMemDesc;
104     MEMORY_DESCRIPTOR *pDataMemDesc;
105 
106     NvU32 codeOffset;
107     NvU32 imemSize;
108     NvU32 imemNsSize;
109     NvU32 imemNsPa;
110     NvU32 imemSecSize;
111     NvU32 imemSecPa;
112     NvU32 codeEntry;
113 
114     NvU32 dataOffset;
115     NvU32 dmemSize;
116     NvU32 dmemPa;
117 
118     // Extra fields used for falcon ucodes from VBIOS
119     NvU32 interfaceOffset;
120 } KernelGspFlcnUcodeBootWithLoader;
121 
122 /*!
123  * Variant of KernelGspFlcnUcode representing a Boot-from-HS ucode.
124  */
125 typedef struct KernelGspFlcnUcodeBootFromHs
126 {
127     MEMORY_DESCRIPTOR *pUcodeMemDesc;
128     NvU32 size;
129 
130     NvU32 codeOffset;
131     NvU32 imemSize;
132     NvU32 imemPa;
133     NvU32 imemVa;
134 
135     NvU32 dataOffset;
136     NvU32 dmemSize;
137     NvU32 dmemPa;
138     NvU32 dmemVa;
139 
140     NvU32 hsSigDmemAddr;
141     NvU32 ucodeId;
142     NvU32 engineIdMask;
143 
144     // Extra fields used for falcon ucodes from VBIOS
145     NvU32 *pSignatures;
146     NvU32 signaturesTotalSize;  // size of buffer pointed by pSignatures
147     NvU32 sigSize;  // size of one signature
148     NvU32 sigCount;
149 
150     NvU32 vbiosSigVersions;
151     NvU32 interfaceOffset;
152 } KernelGspFlcnUcodeBootFromHs;
153 
154 /*!
155  * Type of KernelGspFlcnUcode. Used as tag in tagged union KernelGspFlcnUcode.
156  * Affects how the ucode is loaded/booted.
157  */
158 typedef enum KernelGspFlcnUcodeBootType
159 {
160     KGSP_FLCN_UCODE_BOOT_DIRECT,
161     KGSP_FLCN_UCODE_BOOT_WITH_LOADER,
162     KGSP_FLCN_UCODE_BOOT_FROM_HS
163 } KernelGspFlcnUcodeBootType;
164 
165 /*!
166  * Tagged union of falcon ucode variants used by early FRTS and GSP-RM boot.
167  */
168 typedef struct KernelGspFlcnUcode
169 {
170     KernelGspFlcnUcodeBootType bootType;
171     union
172     {
173         KernelGspFlcnUcodeBootDirect ucodeBootDirect;
174         KernelGspFlcnUcodeBootWithLoader ucodeBootWithLoader;
175         KernelGspFlcnUcodeBootFromHs ucodeBootFromHs;
176     };
177 } KernelGspFlcnUcode;
178 
179 /*!
180  * GSP-RM source when running in Emulated/Simulated RISCV environment is
181  * extremely slow, so we need a factor (X) to scale timeouts by.
182  */
183 #define GSP_SCALE_TIMEOUT_EMU_SIM  2500
184 
185 /*!
186  * Size of libos init arguments packet.
187  */
188 #define LIBOS_INIT_ARGUMENTS_SIZE       0x1000
189 
190 /*!
191  * Structure for passing GSP-RM firmware data
192  */
193 typedef struct GSP_FIRMWARE
194 {
195     const void *pBuf;           // buffer holding the firmware (ucode)
196     NvU32       size;           // size of the firmware
197     const void *pImageData;     // points to the GSP FW image start inside the pBuf buffer
198     NvU64       imageSize;      // GSP FW image size inside the pBuf buffer
199     const void *pSignatureData; // points to the GSP FW signature start inside the pBuf buffer
200     NvU64       signatureSize;  // GSP FW signature size inside the pBuf buffer
201     const void *pLogElf;        // firmware logging section and symbol information to decode logs
202     NvU32       logElfSize;     // size of the gsp log elf binary
203 } GSP_FIRMWARE;
204 
205 /*!
206  * Known ELF section names (or name prefixes) of gsp_*.bin or gsp_log_*.bin.
207  */
208 #define GSP_VERSION_SECTION_NAME           ".fwversion"
209 #define GSP_IMAGE_SECTION_NAME             ".fwimage"
210 #define GSP_LOGGING_SECTION_NAME           ".fwlogging"
211 #define GSP_SIGNATURE_SECTION_NAME_PREFIX  ".fwsignature_"
212 #define GSP_CC_SIGNATURE_SECTION_NAME_PREFIX  ".fwsignature_cc_"
213 
214 /*!
215  * Index into libosLogDecode array.
216  */
217 enum
218 {
219     LOGIDX_INIT,
220     LOGIDX_INTR,
221     LOGIDX_RM,
222     LOGIDX_SIZE
223 };
224 
225 /*!
226  * LIBOS task logging.
227  */
228 typedef struct
229 {
230     /* Memory for task logging */
231     MEMORY_DESCRIPTOR                  *pTaskLogDescriptor;
232     NvU64                              *pTaskLogBuffer;
233     NvP64                               pTaskLogMappingPriv;
234     NvU64                               id8;
235 } RM_LIBOS_LOG_MEM;
236 
237 /*!
238  * KernelGsp object definition
239  */
240 #ifdef NVOC_KERNEL_GSP_H_PRIVATE_ACCESS_ALLOWED
241 #define PRIVATE_FIELD(x) x
242 #else
243 #define PRIVATE_FIELD(x) NVOC_PRIVATE_FIELD(x)
244 #endif
245 struct MESSAGE_QUEUE_COLLECTION;
246 
247 
248 struct KernelGsp {
249     const struct NVOC_RTTI *__nvoc_rtti;
250     struct OBJENGSTATE __nvoc_base_OBJENGSTATE;
251     struct IntrService __nvoc_base_IntrService;
252     struct KernelFalcon __nvoc_base_KernelFalcon;
253     struct Object *__nvoc_pbase_Object;
254     struct OBJENGSTATE *__nvoc_pbase_OBJENGSTATE;
255     struct IntrService *__nvoc_pbase_IntrService;
256     struct KernelFalcon *__nvoc_pbase_KernelFalcon;
257     struct KernelGsp *__nvoc_pbase_KernelGsp;
258     NV_STATUS (*__kgspConstructEngine__)(struct OBJGPU *, struct KernelGsp *, ENGDESCRIPTOR);
259     void (*__kgspRegisterIntrService__)(struct OBJGPU *, struct KernelGsp *, IntrServiceRecord *);
260     NvU32 (*__kgspServiceInterrupt__)(struct OBJGPU *, struct KernelGsp *, IntrServiceServiceInterruptArguments *);
261     void (*__kgspConfigureFalcon__)(struct OBJGPU *, struct KernelGsp *);
262     NvBool (*__kgspIsDebugModeEnabled__)(struct OBJGPU *, struct KernelGsp *);
263     NV_STATUS (*__kgspAllocBootArgs__)(struct OBJGPU *, struct KernelGsp *);
264     void (*__kgspFreeBootArgs__)(struct OBJGPU *, struct KernelGsp *);
265     NV_STATUS (*__kgspBootstrapRiscvOSEarly__)(struct OBJGPU *, struct KernelGsp *, GSP_FIRMWARE *);
266     void (*__kgspGetGspRmBootUcodeStorage__)(struct OBJGPU *, struct KernelGsp *, BINDATA_STORAGE **, BINDATA_STORAGE **);
267     const BINDATA_ARCHIVE *(*__kgspGetBinArchiveGspRmBoot__)(struct KernelGsp *);
268     const BINDATA_ARCHIVE *(*__kgspGetBinArchiveConcatenatedFMCDesc__)(struct KernelGsp *);
269     const BINDATA_ARCHIVE *(*__kgspGetBinArchiveConcatenatedFMC__)(struct KernelGsp *);
270     const BINDATA_ARCHIVE *(*__kgspGetBinArchiveGspRmFmcGfwDebugSigned__)(struct KernelGsp *);
271     const BINDATA_ARCHIVE *(*__kgspGetBinArchiveGspRmFmcGfwProdSigned__)(struct KernelGsp *);
272     const BINDATA_ARCHIVE *(*__kgspGetBinArchiveGspRmCcFmcGfwProdSigned__)(struct KernelGsp *);
273     NV_STATUS (*__kgspCalculateFbLayout__)(struct OBJGPU *, struct KernelGsp *, GSP_FIRMWARE *);
274     NvU32 (*__kgspGetNonWprHeapSize__)(struct OBJGPU *, struct KernelGsp *);
275     NV_STATUS (*__kgspExecuteSequencerCommand__)(struct OBJGPU *, struct KernelGsp *, NvU32, NvU32 *, NvU32);
276     NvU32 (*__kgspReadUcodeFuseVersion__)(struct OBJGPU *, struct KernelGsp *, NvU32);
277     NV_STATUS (*__kgspResetHw__)(struct OBJGPU *, struct KernelGsp *);
278     NvBool (*__kgspIsWpr2Up__)(struct OBJGPU *, struct KernelGsp *);
279     NvU32 (*__kgspGetFrtsSize__)(struct OBJGPU *, struct KernelGsp *);
280     NvU64 (*__kgspGetPrescrubbedTopFbSize__)(struct OBJGPU *, struct KernelGsp *);
281     NV_STATUS (*__kgspExtractVbiosFromRom__)(struct OBJGPU *, struct KernelGsp *, KernelGspVbiosImg **);
282     NV_STATUS (*__kgspExecuteFwsecFrts__)(struct OBJGPU *, struct KernelGsp *, KernelGspFlcnUcode *, const NvU64);
283     NV_STATUS (*__kgspExecuteFwsecSb__)(struct OBJGPU *, struct KernelGsp *, KernelGspFlcnUcode *);
284     NV_STATUS (*__kgspExecuteScrubberIfNeeded__)(struct OBJGPU *, struct KernelGsp *);
285     NV_STATUS (*__kgspExecuteBooterLoad__)(struct OBJGPU *, struct KernelGsp *, const NvU64);
286     NV_STATUS (*__kgspExecuteBooterUnloadIfNeeded__)(struct OBJGPU *, struct KernelGsp *, const NvU64);
287     NV_STATUS (*__kgspExecuteHsFalcon__)(struct OBJGPU *, struct KernelGsp *, KernelGspFlcnUcode *, struct KernelFalcon *, NvU32 *, NvU32 *);
288     NV_STATUS (*__kgspWaitForGfwBootOk__)(struct OBJGPU *, struct KernelGsp *);
289     const BINDATA_ARCHIVE *(*__kgspGetBinArchiveBooterLoadUcode__)(struct KernelGsp *);
290     const BINDATA_ARCHIVE *(*__kgspGetBinArchiveBooterUnloadUcode__)(struct KernelGsp *);
291     NvU64 (*__kgspGetMinWprHeapSizeMB__)(struct OBJGPU *, struct KernelGsp *);
292     NvU64 (*__kgspGetMaxWprHeapSizeMB__)(struct OBJGPU *, struct KernelGsp *);
293     NV_STATUS (*__kgspInitVgpuPartitionLogging__)(struct OBJGPU *, struct KernelGsp *, NvU32, NvU64, NvU64, NvU64, NvU64);
294     NV_STATUS (*__kgspFreeVgpuPartitionLogging__)(struct OBJGPU *, struct KernelGsp *, NvU32);
295     const char *(*__kgspGetSignatureSectionNamePrefix__)(struct OBJGPU *, struct KernelGsp *);
296     NV_STATUS (*__kgspSetupGspFmcArgs__)(struct OBJGPU *, struct KernelGsp *, GSP_FIRMWARE *);
297     NV_STATUS (*__kgspStateLoad__)(POBJGPU, struct KernelGsp *, NvU32);
298     NV_STATUS (*__kgspStateUnload__)(POBJGPU, struct KernelGsp *, NvU32);
299     NV_STATUS (*__kgspServiceNotificationInterrupt__)(struct OBJGPU *, struct KernelGsp *, IntrServiceServiceNotificationInterruptArguments *);
300     NV_STATUS (*__kgspStateInitLocked__)(POBJGPU, struct KernelGsp *);
301     NV_STATUS (*__kgspStatePreLoad__)(POBJGPU, struct KernelGsp *, NvU32);
302     NV_STATUS (*__kgspStatePostUnload__)(POBJGPU, struct KernelGsp *, NvU32);
303     void (*__kgspStateDestroy__)(POBJGPU, struct KernelGsp *);
304     NV_STATUS (*__kgspStatePreUnload__)(POBJGPU, struct KernelGsp *, NvU32);
305     NV_STATUS (*__kgspStateInitUnlocked__)(POBJGPU, struct KernelGsp *);
306     void (*__kgspInitMissing__)(POBJGPU, struct KernelGsp *);
307     NV_STATUS (*__kgspStatePreInitLocked__)(POBJGPU, struct KernelGsp *);
308     NV_STATUS (*__kgspStatePreInitUnlocked__)(POBJGPU, struct KernelGsp *);
309     NvBool (*__kgspClearInterrupt__)(struct OBJGPU *, struct KernelGsp *, IntrServiceClearInterruptArguments *);
310     NV_STATUS (*__kgspStatePostLoad__)(POBJGPU, struct KernelGsp *, NvU32);
311     NvBool (*__kgspIsPresent__)(POBJGPU, struct KernelGsp *);
312     struct MESSAGE_QUEUE_COLLECTION *pMQCollection;
313     struct OBJRPC *pRpc;
314     struct OBJRPC *pLocklessRpc;
315     KernelGspFlcnUcode *pFwsecUcode;
316     KernelGspFlcnUcode *pScrubberUcode;
317     KernelGspFlcnUcode *pBooterLoadUcode;
318     KernelGspFlcnUcode *pBooterUnloadUcode;
319     MEMORY_DESCRIPTOR *pWprMetaDescriptor;
320     GspFwWprMeta *pWprMeta;
321     NvP64 pWprMetaMappingPriv;
322     MEMORY_DESCRIPTOR *pSRMetaDescriptor;
323     MEMORY_DESCRIPTOR *pSRRadix3Descriptor;
324     MEMORY_DESCRIPTOR *pGspFmcArgumentsDescriptor;
325     GSP_FMC_BOOT_PARAMS *pGspFmcArgumentsCached;
326     NvP64 pGspFmcArgumentsMappingPriv;
327     MEMORY_DESCRIPTOR *pLibosInitArgumentsDescriptor;
328     LibosMemoryRegionInitArgument *pLibosInitArgumentsCached;
329     NvP64 pLibosInitArgumentsMappingPriv;
330     MEMORY_DESCRIPTOR *pGspArgumentsDescriptor;
331     GSP_ARGUMENTS_CACHED *pGspArgumentsCached;
332     NvP64 pGspArgumentsMappingPriv;
333     MEMORY_DESCRIPTOR *pGspRmBootUcodeMemdesc;
334     NvP64 pGspRmBootUcodeMemdescPriv;
335     NvU32 gspRmBootUcodeSize;
336     NvU8 *pGspRmBootUcodeImage;
337     RM_RISCV_UCODE_DESC *pGspRmBootUcodeDesc;
338     MEMORY_DESCRIPTOR *pGspUCodeRadix3Descriptor;
339     MEMORY_DESCRIPTOR *pSignatureMemdesc;
340     LIBOS_LOG_DECODE logDecode;
341     LIBOS_LOG_DECODE logDecodeVgpuPartition[32];
342     RM_LIBOS_LOG_MEM rmLibosLogMem[3];
343     RM_LIBOS_LOG_MEM gspPluginInitTaskLogMem[32];
344     RM_LIBOS_LOG_MEM gspPluginVgpuTaskLogMem[32];
345     void *pLogElf;
346     NvU64 logElfDataSize;
347     NvBool bLibosLogsPollingEnabled;
348     NvBool bInInit;
349     NvBool bInLockdown;
350     NvBool bPollingForRpcResponse;
351     MEMORY_DESCRIPTOR *pMemDesc_simAccessBuf;
352     SimAccessBuffer *pSimAccessBuf;
353     NvP64 pSimAccessBufPriv;
354     MEMORY_DESCRIPTOR *pProfilerSamplesMD;
355     void *pProfilerSamplesMDPriv;
356     void *pProfilerSamples;
357     GspStaticConfigInfo gspStaticInfo;
358     NvBool bIsTaskIsrQueueRequired;
359     NvBool bPartitionedFmc;
360     NvBool bScrubberUcodeSupported;
361     NvU32 fwHeapParamBaseSize;
362     NvU32 fwHeapParamOsCarveoutSize;
363 };
364 
365 #ifndef __NVOC_CLASS_KernelGsp_TYPEDEF__
366 #define __NVOC_CLASS_KernelGsp_TYPEDEF__
367 typedef struct KernelGsp KernelGsp;
368 #endif /* __NVOC_CLASS_KernelGsp_TYPEDEF__ */
369 
370 #ifndef __nvoc_class_id_KernelGsp
371 #define __nvoc_class_id_KernelGsp 0x311d4e
372 #endif /* __nvoc_class_id_KernelGsp */
373 
374 extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelGsp;
375 
376 #define __staticCast_KernelGsp(pThis) \
377     ((pThis)->__nvoc_pbase_KernelGsp)
378 
379 #ifdef __nvoc_kernel_gsp_h_disabled
380 #define __dynamicCast_KernelGsp(pThis) ((KernelGsp*)NULL)
381 #else //__nvoc_kernel_gsp_h_disabled
382 #define __dynamicCast_KernelGsp(pThis) \
383     ((KernelGsp*)__nvoc_dynamicCast(staticCast((pThis), Dynamic), classInfo(KernelGsp)))
384 #endif //__nvoc_kernel_gsp_h_disabled
385 
386 #define PDB_PROP_KGSP_IS_MISSING_BASE_CAST __nvoc_base_OBJENGSTATE.
387 #define PDB_PROP_KGSP_IS_MISSING_BASE_NAME PDB_PROP_ENGSTATE_IS_MISSING
388 
389 NV_STATUS __nvoc_objCreateDynamic_KernelGsp(KernelGsp**, Dynamic*, NvU32, va_list);
390 
391 NV_STATUS __nvoc_objCreate_KernelGsp(KernelGsp**, Dynamic*, NvU32);
392 #define __objCreate_KernelGsp(ppNewObj, pParent, createFlags) \
393     __nvoc_objCreate_KernelGsp((ppNewObj), staticCast((pParent), Dynamic), (createFlags))
394 
395 #define kgspConstructEngine(pGpu, pKernelGsp, arg0) kgspConstructEngine_DISPATCH(pGpu, pKernelGsp, arg0)
396 #define kgspRegisterIntrService(pGpu, pKernelGsp, pRecords) kgspRegisterIntrService_DISPATCH(pGpu, pKernelGsp, pRecords)
397 #define kgspServiceInterrupt(pGpu, pKernelGsp, pParams) kgspServiceInterrupt_DISPATCH(pGpu, pKernelGsp, pParams)
398 #define kgspConfigureFalcon(pGpu, pKernelGsp) kgspConfigureFalcon_DISPATCH(pGpu, pKernelGsp)
399 #define kgspConfigureFalcon_HAL(pGpu, pKernelGsp) kgspConfigureFalcon_DISPATCH(pGpu, pKernelGsp)
400 #define kgspIsDebugModeEnabled(pGpu, pKernelGsp) kgspIsDebugModeEnabled_DISPATCH(pGpu, pKernelGsp)
401 #define kgspIsDebugModeEnabled_HAL(pGpu, pKernelGsp) kgspIsDebugModeEnabled_DISPATCH(pGpu, pKernelGsp)
402 #define kgspAllocBootArgs(pGpu, pKernelGsp) kgspAllocBootArgs_DISPATCH(pGpu, pKernelGsp)
403 #define kgspAllocBootArgs_HAL(pGpu, pKernelGsp) kgspAllocBootArgs_DISPATCH(pGpu, pKernelGsp)
404 #define kgspFreeBootArgs(pGpu, pKernelGsp) kgspFreeBootArgs_DISPATCH(pGpu, pKernelGsp)
405 #define kgspFreeBootArgs_HAL(pGpu, pKernelGsp) kgspFreeBootArgs_DISPATCH(pGpu, pKernelGsp)
406 #define kgspBootstrapRiscvOSEarly(pGpu, pKernelGsp, pGspFw) kgspBootstrapRiscvOSEarly_DISPATCH(pGpu, pKernelGsp, pGspFw)
407 #define kgspBootstrapRiscvOSEarly_HAL(pGpu, pKernelGsp, pGspFw) kgspBootstrapRiscvOSEarly_DISPATCH(pGpu, pKernelGsp, pGspFw)
408 #define kgspGetGspRmBootUcodeStorage(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc) kgspGetGspRmBootUcodeStorage_DISPATCH(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc)
409 #define kgspGetGspRmBootUcodeStorage_HAL(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc) kgspGetGspRmBootUcodeStorage_DISPATCH(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc)
410 #define kgspGetBinArchiveGspRmBoot(pKernelGsp) kgspGetBinArchiveGspRmBoot_DISPATCH(pKernelGsp)
411 #define kgspGetBinArchiveGspRmBoot_HAL(pKernelGsp) kgspGetBinArchiveGspRmBoot_DISPATCH(pKernelGsp)
412 #define kgspGetBinArchiveConcatenatedFMCDesc(pKernelGsp) kgspGetBinArchiveConcatenatedFMCDesc_DISPATCH(pKernelGsp)
413 #define kgspGetBinArchiveConcatenatedFMCDesc_HAL(pKernelGsp) kgspGetBinArchiveConcatenatedFMCDesc_DISPATCH(pKernelGsp)
414 #define kgspGetBinArchiveConcatenatedFMC(pKernelGsp) kgspGetBinArchiveConcatenatedFMC_DISPATCH(pKernelGsp)
415 #define kgspGetBinArchiveConcatenatedFMC_HAL(pKernelGsp) kgspGetBinArchiveConcatenatedFMC_DISPATCH(pKernelGsp)
416 #define kgspGetBinArchiveGspRmFmcGfwDebugSigned(pKernelGsp) kgspGetBinArchiveGspRmFmcGfwDebugSigned_DISPATCH(pKernelGsp)
417 #define kgspGetBinArchiveGspRmFmcGfwDebugSigned_HAL(pKernelGsp) kgspGetBinArchiveGspRmFmcGfwDebugSigned_DISPATCH(pKernelGsp)
418 #define kgspGetBinArchiveGspRmFmcGfwProdSigned(pKernelGsp) kgspGetBinArchiveGspRmFmcGfwProdSigned_DISPATCH(pKernelGsp)
419 #define kgspGetBinArchiveGspRmFmcGfwProdSigned_HAL(pKernelGsp) kgspGetBinArchiveGspRmFmcGfwProdSigned_DISPATCH(pKernelGsp)
420 #define kgspGetBinArchiveGspRmCcFmcGfwProdSigned(pKernelGsp) kgspGetBinArchiveGspRmCcFmcGfwProdSigned_DISPATCH(pKernelGsp)
421 #define kgspGetBinArchiveGspRmCcFmcGfwProdSigned_HAL(pKernelGsp) kgspGetBinArchiveGspRmCcFmcGfwProdSigned_DISPATCH(pKernelGsp)
422 #define kgspCalculateFbLayout(pGpu, pKernelGsp, pGspFw) kgspCalculateFbLayout_DISPATCH(pGpu, pKernelGsp, pGspFw)
423 #define kgspCalculateFbLayout_HAL(pGpu, pKernelGsp, pGspFw) kgspCalculateFbLayout_DISPATCH(pGpu, pKernelGsp, pGspFw)
424 #define kgspGetNonWprHeapSize(pGpu, pKernelGsp) kgspGetNonWprHeapSize_DISPATCH(pGpu, pKernelGsp)
425 #define kgspGetNonWprHeapSize_HAL(pGpu, pKernelGsp) kgspGetNonWprHeapSize_DISPATCH(pGpu, pKernelGsp)
426 #define kgspExecuteSequencerCommand(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize) kgspExecuteSequencerCommand_DISPATCH(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize)
427 #define kgspExecuteSequencerCommand_HAL(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize) kgspExecuteSequencerCommand_DISPATCH(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize)
428 #define kgspReadUcodeFuseVersion(pGpu, pKernelGsp, ucodeId) kgspReadUcodeFuseVersion_DISPATCH(pGpu, pKernelGsp, ucodeId)
429 #define kgspReadUcodeFuseVersion_HAL(pGpu, pKernelGsp, ucodeId) kgspReadUcodeFuseVersion_DISPATCH(pGpu, pKernelGsp, ucodeId)
430 #define kgspResetHw(pGpu, pKernelGsp) kgspResetHw_DISPATCH(pGpu, pKernelGsp)
431 #define kgspResetHw_HAL(pGpu, pKernelGsp) kgspResetHw_DISPATCH(pGpu, pKernelGsp)
432 #define kgspIsWpr2Up(pGpu, pKernelGsp) kgspIsWpr2Up_DISPATCH(pGpu, pKernelGsp)
433 #define kgspIsWpr2Up_HAL(pGpu, pKernelGsp) kgspIsWpr2Up_DISPATCH(pGpu, pKernelGsp)
434 #define kgspGetFrtsSize(pGpu, pKernelGsp) kgspGetFrtsSize_DISPATCH(pGpu, pKernelGsp)
435 #define kgspGetFrtsSize_HAL(pGpu, pKernelGsp) kgspGetFrtsSize_DISPATCH(pGpu, pKernelGsp)
436 #define kgspGetPrescrubbedTopFbSize(pGpu, pKernelGsp) kgspGetPrescrubbedTopFbSize_DISPATCH(pGpu, pKernelGsp)
437 #define kgspGetPrescrubbedTopFbSize_HAL(pGpu, pKernelGsp) kgspGetPrescrubbedTopFbSize_DISPATCH(pGpu, pKernelGsp)
438 #define kgspExtractVbiosFromRom(pGpu, pKernelGsp, ppVbiosImg) kgspExtractVbiosFromRom_DISPATCH(pGpu, pKernelGsp, ppVbiosImg)
439 #define kgspExtractVbiosFromRom_HAL(pGpu, pKernelGsp, ppVbiosImg) kgspExtractVbiosFromRom_DISPATCH(pGpu, pKernelGsp, ppVbiosImg)
440 #define kgspExecuteFwsecFrts(pGpu, pKernelGsp, pFwsecUcode, frtsOffset) kgspExecuteFwsecFrts_DISPATCH(pGpu, pKernelGsp, pFwsecUcode, frtsOffset)
441 #define kgspExecuteFwsecFrts_HAL(pGpu, pKernelGsp, pFwsecUcode, frtsOffset) kgspExecuteFwsecFrts_DISPATCH(pGpu, pKernelGsp, pFwsecUcode, frtsOffset)
442 #define kgspExecuteFwsecSb(pGpu, pKernelGsp, pFwsecUcode) kgspExecuteFwsecSb_DISPATCH(pGpu, pKernelGsp, pFwsecUcode)
443 #define kgspExecuteFwsecSb_HAL(pGpu, pKernelGsp, pFwsecUcode) kgspExecuteFwsecSb_DISPATCH(pGpu, pKernelGsp, pFwsecUcode)
444 #define kgspExecuteScrubberIfNeeded(pGpu, pKernelGsp) kgspExecuteScrubberIfNeeded_DISPATCH(pGpu, pKernelGsp)
445 #define kgspExecuteScrubberIfNeeded_HAL(pGpu, pKernelGsp) kgspExecuteScrubberIfNeeded_DISPATCH(pGpu, pKernelGsp)
446 #define kgspExecuteBooterLoad(pGpu, pKernelGsp, sysmemAddrOfData) kgspExecuteBooterLoad_DISPATCH(pGpu, pKernelGsp, sysmemAddrOfData)
447 #define kgspExecuteBooterLoad_HAL(pGpu, pKernelGsp, sysmemAddrOfData) kgspExecuteBooterLoad_DISPATCH(pGpu, pKernelGsp, sysmemAddrOfData)
448 #define kgspExecuteBooterUnloadIfNeeded(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData) kgspExecuteBooterUnloadIfNeeded_DISPATCH(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData)
449 #define kgspExecuteBooterUnloadIfNeeded_HAL(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData) kgspExecuteBooterUnloadIfNeeded_DISPATCH(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData)
450 #define kgspExecuteHsFalcon(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1) kgspExecuteHsFalcon_DISPATCH(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1)
451 #define kgspExecuteHsFalcon_HAL(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1) kgspExecuteHsFalcon_DISPATCH(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1)
452 #define kgspWaitForGfwBootOk(pGpu, pKernelGsp) kgspWaitForGfwBootOk_DISPATCH(pGpu, pKernelGsp)
453 #define kgspWaitForGfwBootOk_HAL(pGpu, pKernelGsp) kgspWaitForGfwBootOk_DISPATCH(pGpu, pKernelGsp)
454 #define kgspGetBinArchiveBooterLoadUcode(pKernelGsp) kgspGetBinArchiveBooterLoadUcode_DISPATCH(pKernelGsp)
455 #define kgspGetBinArchiveBooterLoadUcode_HAL(pKernelGsp) kgspGetBinArchiveBooterLoadUcode_DISPATCH(pKernelGsp)
456 #define kgspGetBinArchiveBooterUnloadUcode(pKernelGsp) kgspGetBinArchiveBooterUnloadUcode_DISPATCH(pKernelGsp)
457 #define kgspGetBinArchiveBooterUnloadUcode_HAL(pKernelGsp) kgspGetBinArchiveBooterUnloadUcode_DISPATCH(pKernelGsp)
458 #define kgspGetMinWprHeapSizeMB(pGpu, pKernelGsp) kgspGetMinWprHeapSizeMB_DISPATCH(pGpu, pKernelGsp)
459 #define kgspGetMinWprHeapSizeMB_HAL(pGpu, pKernelGsp) kgspGetMinWprHeapSizeMB_DISPATCH(pGpu, pKernelGsp)
460 #define kgspGetMaxWprHeapSizeMB(pGpu, pKernelGsp) kgspGetMaxWprHeapSizeMB_DISPATCH(pGpu, pKernelGsp)
461 #define kgspGetMaxWprHeapSizeMB_HAL(pGpu, pKernelGsp) kgspGetMaxWprHeapSizeMB_DISPATCH(pGpu, pKernelGsp)
462 #define kgspInitVgpuPartitionLogging(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize) kgspInitVgpuPartitionLogging_DISPATCH(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize)
463 #define kgspInitVgpuPartitionLogging_HAL(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize) kgspInitVgpuPartitionLogging_DISPATCH(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize)
464 #define kgspFreeVgpuPartitionLogging(pGpu, pKernelGsp, gfid) kgspFreeVgpuPartitionLogging_DISPATCH(pGpu, pKernelGsp, gfid)
465 #define kgspFreeVgpuPartitionLogging_HAL(pGpu, pKernelGsp, gfid) kgspFreeVgpuPartitionLogging_DISPATCH(pGpu, pKernelGsp, gfid)
466 #define kgspGetSignatureSectionNamePrefix(pGpu, pKernelGsp) kgspGetSignatureSectionNamePrefix_DISPATCH(pGpu, pKernelGsp)
467 #define kgspGetSignatureSectionNamePrefix_HAL(pGpu, pKernelGsp) kgspGetSignatureSectionNamePrefix_DISPATCH(pGpu, pKernelGsp)
468 #define kgspSetupGspFmcArgs(pGpu, pKernelGsp, pGspFw) kgspSetupGspFmcArgs_DISPATCH(pGpu, pKernelGsp, pGspFw)
469 #define kgspSetupGspFmcArgs_HAL(pGpu, pKernelGsp, pGspFw) kgspSetupGspFmcArgs_DISPATCH(pGpu, pKernelGsp, pGspFw)
470 #define kgspStateLoad(pGpu, pEngstate, arg0) kgspStateLoad_DISPATCH(pGpu, pEngstate, arg0)
471 #define kgspStateUnload(pGpu, pEngstate, arg0) kgspStateUnload_DISPATCH(pGpu, pEngstate, arg0)
472 #define kgspServiceNotificationInterrupt(pGpu, pIntrService, pParams) kgspServiceNotificationInterrupt_DISPATCH(pGpu, pIntrService, pParams)
473 #define kgspStateInitLocked(pGpu, pEngstate) kgspStateInitLocked_DISPATCH(pGpu, pEngstate)
474 #define kgspStatePreLoad(pGpu, pEngstate, arg0) kgspStatePreLoad_DISPATCH(pGpu, pEngstate, arg0)
475 #define kgspStatePostUnload(pGpu, pEngstate, arg0) kgspStatePostUnload_DISPATCH(pGpu, pEngstate, arg0)
476 #define kgspStateDestroy(pGpu, pEngstate) kgspStateDestroy_DISPATCH(pGpu, pEngstate)
477 #define kgspStatePreUnload(pGpu, pEngstate, arg0) kgspStatePreUnload_DISPATCH(pGpu, pEngstate, arg0)
478 #define kgspStateInitUnlocked(pGpu, pEngstate) kgspStateInitUnlocked_DISPATCH(pGpu, pEngstate)
479 #define kgspInitMissing(pGpu, pEngstate) kgspInitMissing_DISPATCH(pGpu, pEngstate)
480 #define kgspStatePreInitLocked(pGpu, pEngstate) kgspStatePreInitLocked_DISPATCH(pGpu, pEngstate)
481 #define kgspStatePreInitUnlocked(pGpu, pEngstate) kgspStatePreInitUnlocked_DISPATCH(pGpu, pEngstate)
482 #define kgspClearInterrupt(pGpu, pIntrService, pParams) kgspClearInterrupt_DISPATCH(pGpu, pIntrService, pParams)
483 #define kgspStatePostLoad(pGpu, pEngstate, arg0) kgspStatePostLoad_DISPATCH(pGpu, pEngstate, arg0)
484 #define kgspIsPresent(pGpu, pEngstate) kgspIsPresent_DISPATCH(pGpu, pEngstate)
485 void kgspProgramLibosBootArgsAddr_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
486 
487 
488 #ifdef __nvoc_kernel_gsp_h_disabled
489 static inline void kgspProgramLibosBootArgsAddr(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
490     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
491 }
492 #else //__nvoc_kernel_gsp_h_disabled
493 #define kgspProgramLibosBootArgsAddr(pGpu, pKernelGsp) kgspProgramLibosBootArgsAddr_TU102(pGpu, pKernelGsp)
494 #endif //__nvoc_kernel_gsp_h_disabled
495 
496 #define kgspProgramLibosBootArgsAddr_HAL(pGpu, pKernelGsp) kgspProgramLibosBootArgsAddr(pGpu, pKernelGsp)
497 
498 NV_STATUS kgspSetCmdQueueHead_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 queueIdx, NvU32 value);
499 
500 
501 #ifdef __nvoc_kernel_gsp_h_disabled
502 static inline NV_STATUS kgspSetCmdQueueHead(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 queueIdx, NvU32 value) {
503     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
504     return NV_ERR_NOT_SUPPORTED;
505 }
506 #else //__nvoc_kernel_gsp_h_disabled
507 #define kgspSetCmdQueueHead(pGpu, pKernelGsp, queueIdx, value) kgspSetCmdQueueHead_TU102(pGpu, pKernelGsp, queueIdx, value)
508 #endif //__nvoc_kernel_gsp_h_disabled
509 
510 #define kgspSetCmdQueueHead_HAL(pGpu, pKernelGsp, queueIdx, value) kgspSetCmdQueueHead(pGpu, pKernelGsp, queueIdx, value)
511 
512 void kgspHealthCheck_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
513 
514 
515 #ifdef __nvoc_kernel_gsp_h_disabled
516 static inline void kgspHealthCheck(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
517     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
518 }
519 #else //__nvoc_kernel_gsp_h_disabled
520 #define kgspHealthCheck(pGpu, pKernelGsp) kgspHealthCheck_TU102(pGpu, pKernelGsp)
521 #endif //__nvoc_kernel_gsp_h_disabled
522 
523 #define kgspHealthCheck_HAL(pGpu, pKernelGsp) kgspHealthCheck(pGpu, pKernelGsp)
524 
525 NvU32 kgspService_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
526 
527 
528 #ifdef __nvoc_kernel_gsp_h_disabled
529 static inline NvU32 kgspService(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
530     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
531     return 0;
532 }
533 #else //__nvoc_kernel_gsp_h_disabled
534 #define kgspService(pGpu, pKernelGsp) kgspService_TU102(pGpu, pKernelGsp)
535 #endif //__nvoc_kernel_gsp_h_disabled
536 
537 #define kgspService_HAL(pGpu, pKernelGsp) kgspService(pGpu, pKernelGsp)
538 
539 NV_STATUS kgspWaitForProcessorSuspend_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
540 
541 
542 #ifdef __nvoc_kernel_gsp_h_disabled
543 static inline NV_STATUS kgspWaitForProcessorSuspend(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
544     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
545     return NV_ERR_NOT_SUPPORTED;
546 }
547 #else //__nvoc_kernel_gsp_h_disabled
548 #define kgspWaitForProcessorSuspend(pGpu, pKernelGsp) kgspWaitForProcessorSuspend_TU102(pGpu, pKernelGsp)
549 #endif //__nvoc_kernel_gsp_h_disabled
550 
551 #define kgspWaitForProcessorSuspend_HAL(pGpu, pKernelGsp) kgspWaitForProcessorSuspend(pGpu, pKernelGsp)
552 
553 NV_STATUS kgspSavePowerMgmtState_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
554 
555 
556 #ifdef __nvoc_kernel_gsp_h_disabled
557 static inline NV_STATUS kgspSavePowerMgmtState(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
558     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
559     return NV_ERR_NOT_SUPPORTED;
560 }
561 #else //__nvoc_kernel_gsp_h_disabled
562 #define kgspSavePowerMgmtState(pGpu, pKernelGsp) kgspSavePowerMgmtState_TU102(pGpu, pKernelGsp)
563 #endif //__nvoc_kernel_gsp_h_disabled
564 
565 #define kgspSavePowerMgmtState_HAL(pGpu, pKernelGsp) kgspSavePowerMgmtState(pGpu, pKernelGsp)
566 
567 NV_STATUS kgspRestorePowerMgmtState_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
568 
569 
570 #ifdef __nvoc_kernel_gsp_h_disabled
571 static inline NV_STATUS kgspRestorePowerMgmtState(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
572     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
573     return NV_ERR_NOT_SUPPORTED;
574 }
575 #else //__nvoc_kernel_gsp_h_disabled
576 #define kgspRestorePowerMgmtState(pGpu, pKernelGsp) kgspRestorePowerMgmtState_TU102(pGpu, pKernelGsp)
577 #endif //__nvoc_kernel_gsp_h_disabled
578 
579 #define kgspRestorePowerMgmtState_HAL(pGpu, pKernelGsp) kgspRestorePowerMgmtState(pGpu, pKernelGsp)
580 
581 void kgspFreeSuspendResumeData_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
582 
583 
584 #ifdef __nvoc_kernel_gsp_h_disabled
585 static inline void kgspFreeSuspendResumeData(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
586     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
587 }
588 #else //__nvoc_kernel_gsp_h_disabled
589 #define kgspFreeSuspendResumeData(pGpu, pKernelGsp) kgspFreeSuspendResumeData_TU102(pGpu, pKernelGsp)
590 #endif //__nvoc_kernel_gsp_h_disabled
591 
592 #define kgspFreeSuspendResumeData_HAL(pGpu, pKernelGsp) kgspFreeSuspendResumeData(pGpu, pKernelGsp)
593 
594 NV_STATUS kgspConstructEngine_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, ENGDESCRIPTOR arg0);
595 
596 static inline NV_STATUS kgspConstructEngine_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, ENGDESCRIPTOR arg0) {
597     return pKernelGsp->__kgspConstructEngine__(pGpu, pKernelGsp, arg0);
598 }
599 
600 void kgspRegisterIntrService_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceRecord pRecords[167]);
601 
602 static inline void kgspRegisterIntrService_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceRecord pRecords[167]) {
603     pKernelGsp->__kgspRegisterIntrService__(pGpu, pKernelGsp, pRecords);
604 }
605 
606 NvU32 kgspServiceInterrupt_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceServiceInterruptArguments *pParams);
607 
608 static inline NvU32 kgspServiceInterrupt_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceServiceInterruptArguments *pParams) {
609     return pKernelGsp->__kgspServiceInterrupt__(pGpu, pKernelGsp, pParams);
610 }
611 
612 void kgspConfigureFalcon_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
613 
614 void kgspConfigureFalcon_GA102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
615 
616 static inline void kgspConfigureFalcon_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
617     pKernelGsp->__kgspConfigureFalcon__(pGpu, pKernelGsp);
618 }
619 
620 NvBool kgspIsDebugModeEnabled_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
621 
622 NvBool kgspIsDebugModeEnabled_GA100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
623 
624 static inline NvBool kgspIsDebugModeEnabled_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
625     return pKernelGsp->__kgspIsDebugModeEnabled__(pGpu, pKernelGsp);
626 }
627 
628 NV_STATUS kgspAllocBootArgs_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
629 
630 NV_STATUS kgspAllocBootArgs_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
631 
632 static inline NV_STATUS kgspAllocBootArgs_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
633     return pKernelGsp->__kgspAllocBootArgs__(pGpu, pKernelGsp);
634 }
635 
636 void kgspFreeBootArgs_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
637 
638 void kgspFreeBootArgs_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
639 
640 static inline void kgspFreeBootArgs_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
641     pKernelGsp->__kgspFreeBootArgs__(pGpu, pKernelGsp);
642 }
643 
644 NV_STATUS kgspBootstrapRiscvOSEarly_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw);
645 
646 NV_STATUS kgspBootstrapRiscvOSEarly_GA102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw);
647 
648 NV_STATUS kgspBootstrapRiscvOSEarly_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw);
649 
650 static inline NV_STATUS kgspBootstrapRiscvOSEarly_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) {
651     return pKernelGsp->__kgspBootstrapRiscvOSEarly__(pGpu, pKernelGsp, pGspFw);
652 }
653 
654 void kgspGetGspRmBootUcodeStorage_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, BINDATA_STORAGE **ppBinStorageImage, BINDATA_STORAGE **ppBinStorageDesc);
655 
656 void kgspGetGspRmBootUcodeStorage_GA102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, BINDATA_STORAGE **ppBinStorageImage, BINDATA_STORAGE **ppBinStorageDesc);
657 
658 void kgspGetGspRmBootUcodeStorage_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, BINDATA_STORAGE **ppBinStorageImage, BINDATA_STORAGE **ppBinStorageDesc);
659 
660 static inline void kgspGetGspRmBootUcodeStorage_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, BINDATA_STORAGE **ppBinStorageImage, BINDATA_STORAGE **ppBinStorageDesc) {
661     pKernelGsp->__kgspGetGspRmBootUcodeStorage__(pGpu, pKernelGsp, ppBinStorageImage, ppBinStorageDesc);
662 }
663 
664 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_TU102(struct KernelGsp *pKernelGsp);
665 
666 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_GA100(struct KernelGsp *pKernelGsp);
667 
668 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_GA102(struct KernelGsp *pKernelGsp);
669 
670 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_GH100(struct KernelGsp *pKernelGsp);
671 
672 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_AD102(struct KernelGsp *pKernelGsp);
673 
674 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmBoot_DISPATCH(struct KernelGsp *pKernelGsp) {
675     return pKernelGsp->__kgspGetBinArchiveGspRmBoot__(pKernelGsp);
676 }
677 
678 const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMCDesc_GH100(struct KernelGsp *pKernelGsp);
679 
680 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMCDesc_80f438(struct KernelGsp *pKernelGsp) {
681     NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0));
682 }
683 
684 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMCDesc_DISPATCH(struct KernelGsp *pKernelGsp) {
685     return pKernelGsp->__kgspGetBinArchiveConcatenatedFMCDesc__(pKernelGsp);
686 }
687 
688 const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMC_GH100(struct KernelGsp *pKernelGsp);
689 
690 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMC_80f438(struct KernelGsp *pKernelGsp) {
691     NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0));
692 }
693 
694 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveConcatenatedFMC_DISPATCH(struct KernelGsp *pKernelGsp) {
695     return pKernelGsp->__kgspGetBinArchiveConcatenatedFMC__(pKernelGsp);
696 }
697 
698 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwDebugSigned_GH100(struct KernelGsp *pKernelGsp);
699 
700 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwDebugSigned_80f438(struct KernelGsp *pKernelGsp) {
701     NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0));
702 }
703 
704 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwDebugSigned_DISPATCH(struct KernelGsp *pKernelGsp) {
705     return pKernelGsp->__kgspGetBinArchiveGspRmFmcGfwDebugSigned__(pKernelGsp);
706 }
707 
708 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwProdSigned_GH100(struct KernelGsp *pKernelGsp);
709 
710 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwProdSigned_80f438(struct KernelGsp *pKernelGsp) {
711     NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0));
712 }
713 
714 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmFmcGfwProdSigned_DISPATCH(struct KernelGsp *pKernelGsp) {
715     return pKernelGsp->__kgspGetBinArchiveGspRmFmcGfwProdSigned__(pKernelGsp);
716 }
717 
718 const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmCcFmcGfwProdSigned_GH100(struct KernelGsp *pKernelGsp);
719 
720 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmCcFmcGfwProdSigned_80f438(struct KernelGsp *pKernelGsp) {
721     NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0));
722 }
723 
724 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveGspRmCcFmcGfwProdSigned_DISPATCH(struct KernelGsp *pKernelGsp) {
725     return pKernelGsp->__kgspGetBinArchiveGspRmCcFmcGfwProdSigned__(pKernelGsp);
726 }
727 
728 NV_STATUS kgspCalculateFbLayout_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw);
729 
730 NV_STATUS kgspCalculateFbLayout_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw);
731 
732 static inline NV_STATUS kgspCalculateFbLayout_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) {
733     return pKernelGsp->__kgspCalculateFbLayout__(pGpu, pKernelGsp, pGspFw);
734 }
735 
736 static inline NvU32 kgspGetNonWprHeapSize_ed6b8b(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
737     return 1048576;
738 }
739 
740 static inline NvU32 kgspGetNonWprHeapSize_d505ea(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
741     return 2097152;
742 }
743 
744 static inline NvU32 kgspGetNonWprHeapSize_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
745     return pKernelGsp->__kgspGetNonWprHeapSize__(pGpu, pKernelGsp);
746 }
747 
748 NV_STATUS kgspExecuteSequencerCommand_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pPayLoad, NvU32 payloadSize);
749 
750 NV_STATUS kgspExecuteSequencerCommand_GA102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pPayLoad, NvU32 payloadSize);
751 
752 static inline NV_STATUS kgspExecuteSequencerCommand_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 opCode, NvU32 *pPayLoad, NvU32 payloadSize) {
753     return pKernelGsp->__kgspExecuteSequencerCommand__(pGpu, pKernelGsp, opCode, pPayLoad, payloadSize);
754 }
755 
756 static inline NvU32 kgspReadUcodeFuseVersion_b2b553(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 ucodeId) {
757     return 0;
758 }
759 
760 NvU32 kgspReadUcodeFuseVersion_GA100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 ucodeId);
761 
762 static inline NvU32 kgspReadUcodeFuseVersion_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 ucodeId) {
763     return pKernelGsp->__kgspReadUcodeFuseVersion__(pGpu, pKernelGsp, ucodeId);
764 }
765 
766 NV_STATUS kgspResetHw_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
767 
768 NV_STATUS kgspResetHw_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
769 
770 static inline NV_STATUS kgspResetHw_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
771     return pKernelGsp->__kgspResetHw__(pGpu, pKernelGsp);
772 }
773 
774 NvBool kgspIsWpr2Up_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
775 
776 NvBool kgspIsWpr2Up_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
777 
778 static inline NvBool kgspIsWpr2Up_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
779     return pKernelGsp->__kgspIsWpr2Up__(pGpu, pKernelGsp);
780 }
781 
782 NvU32 kgspGetFrtsSize_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
783 
784 static inline NvU32 kgspGetFrtsSize_4a4dee(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
785     return 0;
786 }
787 
788 static inline NvU32 kgspGetFrtsSize_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
789     return pKernelGsp->__kgspGetFrtsSize__(pGpu, pKernelGsp);
790 }
791 
792 static inline NvU64 kgspGetPrescrubbedTopFbSize_e1e623(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
793     return 256 * 1024 * 1024;
794 }
795 
796 static inline NvU64 kgspGetPrescrubbedTopFbSize_604eb7(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
797     return (+18446744073709551615ULL);
798 }
799 
800 static inline NvU64 kgspGetPrescrubbedTopFbSize_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
801     return pKernelGsp->__kgspGetPrescrubbedTopFbSize__(pGpu, pKernelGsp);
802 }
803 
804 NV_STATUS kgspExtractVbiosFromRom_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspVbiosImg **ppVbiosImg);
805 
806 static inline NV_STATUS kgspExtractVbiosFromRom_395e98(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspVbiosImg **ppVbiosImg) {
807     return NV_ERR_NOT_SUPPORTED;
808 }
809 
810 static inline NV_STATUS kgspExtractVbiosFromRom_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspVbiosImg **ppVbiosImg) {
811     return pKernelGsp->__kgspExtractVbiosFromRom__(pGpu, pKernelGsp, ppVbiosImg);
812 }
813 
814 NV_STATUS kgspExecuteFwsecFrts_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, const NvU64 frtsOffset);
815 
816 static inline NV_STATUS kgspExecuteFwsecFrts_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, const NvU64 frtsOffset) {
817     NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED);
818 }
819 
820 static inline NV_STATUS kgspExecuteFwsecFrts_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode, const NvU64 frtsOffset) {
821     return pKernelGsp->__kgspExecuteFwsecFrts__(pGpu, pKernelGsp, pFwsecUcode, frtsOffset);
822 }
823 
824 NV_STATUS kgspExecuteFwsecSb_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode);
825 
826 static inline NV_STATUS kgspExecuteFwsecSb_ac1694(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode) {
827     return NV_OK;
828 }
829 
830 static inline NV_STATUS kgspExecuteFwsecSb_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFwsecUcode) {
831     return pKernelGsp->__kgspExecuteFwsecSb__(pGpu, pKernelGsp, pFwsecUcode);
832 }
833 
834 NV_STATUS kgspExecuteScrubberIfNeeded_AD102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
835 
836 static inline NV_STATUS kgspExecuteScrubberIfNeeded_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
837     NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED);
838 }
839 
840 static inline NV_STATUS kgspExecuteScrubberIfNeeded_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
841     return pKernelGsp->__kgspExecuteScrubberIfNeeded__(pGpu, pKernelGsp);
842 }
843 
844 NV_STATUS kgspExecuteBooterLoad_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfData);
845 
846 static inline NV_STATUS kgspExecuteBooterLoad_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfData) {
847     NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED);
848 }
849 
850 static inline NV_STATUS kgspExecuteBooterLoad_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfData) {
851     return pKernelGsp->__kgspExecuteBooterLoad__(pGpu, pKernelGsp, sysmemAddrOfData);
852 }
853 
854 NV_STATUS kgspExecuteBooterUnloadIfNeeded_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfSuspendResumeData);
855 
856 static inline NV_STATUS kgspExecuteBooterUnloadIfNeeded_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfSuspendResumeData) {
857     NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED);
858 }
859 
860 static inline NV_STATUS kgspExecuteBooterUnloadIfNeeded_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const NvU64 sysmemAddrOfSuspendResumeData) {
861     return pKernelGsp->__kgspExecuteBooterUnloadIfNeeded__(pGpu, pKernelGsp, sysmemAddrOfSuspendResumeData);
862 }
863 
864 NV_STATUS kgspExecuteHsFalcon_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFlcnUcode, struct KernelFalcon *pKernelFlcn, NvU32 *pMailbox0, NvU32 *pMailbox1);
865 
866 NV_STATUS kgspExecuteHsFalcon_GA102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFlcnUcode, struct KernelFalcon *pKernelFlcn, NvU32 *pMailbox0, NvU32 *pMailbox1);
867 
868 static inline NV_STATUS kgspExecuteHsFalcon_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFlcnUcode, struct KernelFalcon *pKernelFlcn, NvU32 *pMailbox0, NvU32 *pMailbox1) {
869     NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED);
870 }
871 
872 static inline NV_STATUS kgspExecuteHsFalcon_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode *pFlcnUcode, struct KernelFalcon *pKernelFlcn, NvU32 *pMailbox0, NvU32 *pMailbox1) {
873     return pKernelGsp->__kgspExecuteHsFalcon__(pGpu, pKernelGsp, pFlcnUcode, pKernelFlcn, pMailbox0, pMailbox1);
874 }
875 
876 NV_STATUS kgspWaitForGfwBootOk_TU102(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
877 
878 NV_STATUS kgspWaitForGfwBootOk_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
879 
880 static inline NV_STATUS kgspWaitForGfwBootOk_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
881     return pKernelGsp->__kgspWaitForGfwBootOk__(pGpu, pKernelGsp);
882 }
883 
884 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_TU102(struct KernelGsp *pKernelGsp);
885 
886 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_TU116(struct KernelGsp *pKernelGsp);
887 
888 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_GA100(struct KernelGsp *pKernelGsp);
889 
890 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_GA102(struct KernelGsp *pKernelGsp);
891 
892 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_AD102(struct KernelGsp *pKernelGsp);
893 
894 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_80f438(struct KernelGsp *pKernelGsp) {
895     NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0));
896 }
897 
898 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveBooterLoadUcode_DISPATCH(struct KernelGsp *pKernelGsp) {
899     return pKernelGsp->__kgspGetBinArchiveBooterLoadUcode__(pKernelGsp);
900 }
901 
902 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_TU102(struct KernelGsp *pKernelGsp);
903 
904 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_TU116(struct KernelGsp *pKernelGsp);
905 
906 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_GA100(struct KernelGsp *pKernelGsp);
907 
908 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_GA102(struct KernelGsp *pKernelGsp);
909 
910 const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_AD102(struct KernelGsp *pKernelGsp);
911 
912 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_80f438(struct KernelGsp *pKernelGsp) {
913     NV_ASSERT_OR_RETURN_PRECOMP(0, ((void *)0));
914 }
915 
916 static inline const BINDATA_ARCHIVE *kgspGetBinArchiveBooterUnloadUcode_DISPATCH(struct KernelGsp *pKernelGsp) {
917     return pKernelGsp->__kgspGetBinArchiveBooterUnloadUcode__(pKernelGsp);
918 }
919 
920 static inline NvU64 kgspGetMinWprHeapSizeMB_7185bf(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
921     return (64U);
922 }
923 
924 static inline NvU64 kgspGetMinWprHeapSizeMB_907c84(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
925     return pGpu->bVgpuGspPluginOffloadEnabled ? (549U) : (84U);
926 }
927 
928 static inline NvU64 kgspGetMinWprHeapSizeMB_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
929     return pKernelGsp->__kgspGetMinWprHeapSizeMB__(pGpu, pKernelGsp);
930 }
931 
932 static inline NvU64 kgspGetMaxWprHeapSizeMB_ad4e6a(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
933     return (256U);
934 }
935 
936 static inline NvU64 kgspGetMaxWprHeapSizeMB_5839e2(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
937     return pGpu->bVgpuGspPluginOffloadEnabled ? (1024U) : (276U);
938 }
939 
940 static inline NvU64 kgspGetMaxWprHeapSizeMB_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
941     return pKernelGsp->__kgspGetMaxWprHeapSizeMB__(pGpu, pKernelGsp);
942 }
943 
944 static inline NV_STATUS kgspInitVgpuPartitionLogging_395e98(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid, NvU64 initTaskLogBUffOffset, NvU64 initTaskLogBUffSize, NvU64 vgpuTaskLogBUffOffset, NvU64 vgpuTaskLogBuffSize) {
945     return NV_ERR_NOT_SUPPORTED;
946 }
947 
948 NV_STATUS kgspInitVgpuPartitionLogging_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid, NvU64 initTaskLogBUffOffset, NvU64 initTaskLogBUffSize, NvU64 vgpuTaskLogBUffOffset, NvU64 vgpuTaskLogBuffSize);
949 
950 static inline NV_STATUS kgspInitVgpuPartitionLogging_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid, NvU64 initTaskLogBUffOffset, NvU64 initTaskLogBUffSize, NvU64 vgpuTaskLogBUffOffset, NvU64 vgpuTaskLogBuffSize) {
951     return pKernelGsp->__kgspInitVgpuPartitionLogging__(pGpu, pKernelGsp, gfid, initTaskLogBUffOffset, initTaskLogBUffSize, vgpuTaskLogBUffOffset, vgpuTaskLogBuffSize);
952 }
953 
954 static inline NV_STATUS kgspFreeVgpuPartitionLogging_395e98(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid) {
955     return NV_ERR_NOT_SUPPORTED;
956 }
957 
958 NV_STATUS kgspFreeVgpuPartitionLogging_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid);
959 
960 static inline NV_STATUS kgspFreeVgpuPartitionLogging_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU32 gfid) {
961     return pKernelGsp->__kgspFreeVgpuPartitionLogging__(pGpu, pKernelGsp, gfid);
962 }
963 
964 const char *kgspGetSignatureSectionNamePrefix_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
965 
966 static inline const char *kgspGetSignatureSectionNamePrefix_789efb(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
967     return ".fwsignature_";
968 }
969 
970 static inline const char *kgspGetSignatureSectionNamePrefix_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
971     return pKernelGsp->__kgspGetSignatureSectionNamePrefix__(pGpu, pKernelGsp);
972 }
973 
974 NV_STATUS kgspSetupGspFmcArgs_GH100(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw);
975 
976 static inline NV_STATUS kgspSetupGspFmcArgs_5baef9(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) {
977     NV_ASSERT_OR_RETURN_PRECOMP(0, NV_ERR_NOT_SUPPORTED);
978 }
979 
980 static inline NV_STATUS kgspSetupGspFmcArgs_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) {
981     return pKernelGsp->__kgspSetupGspFmcArgs__(pGpu, pKernelGsp, pGspFw);
982 }
983 
984 static inline NV_STATUS kgspStateLoad_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) {
985     return pEngstate->__kgspStateLoad__(pGpu, pEngstate, arg0);
986 }
987 
988 static inline NV_STATUS kgspStateUnload_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) {
989     return pEngstate->__kgspStateUnload__(pGpu, pEngstate, arg0);
990 }
991 
992 static inline NV_STATUS kgspServiceNotificationInterrupt_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pIntrService, IntrServiceServiceNotificationInterruptArguments *pParams) {
993     return pIntrService->__kgspServiceNotificationInterrupt__(pGpu, pIntrService, pParams);
994 }
995 
996 static inline NV_STATUS kgspStateInitLocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) {
997     return pEngstate->__kgspStateInitLocked__(pGpu, pEngstate);
998 }
999 
1000 static inline NV_STATUS kgspStatePreLoad_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) {
1001     return pEngstate->__kgspStatePreLoad__(pGpu, pEngstate, arg0);
1002 }
1003 
1004 static inline NV_STATUS kgspStatePostUnload_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) {
1005     return pEngstate->__kgspStatePostUnload__(pGpu, pEngstate, arg0);
1006 }
1007 
1008 static inline void kgspStateDestroy_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) {
1009     pEngstate->__kgspStateDestroy__(pGpu, pEngstate);
1010 }
1011 
1012 static inline NV_STATUS kgspStatePreUnload_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) {
1013     return pEngstate->__kgspStatePreUnload__(pGpu, pEngstate, arg0);
1014 }
1015 
1016 static inline NV_STATUS kgspStateInitUnlocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) {
1017     return pEngstate->__kgspStateInitUnlocked__(pGpu, pEngstate);
1018 }
1019 
1020 static inline void kgspInitMissing_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) {
1021     pEngstate->__kgspInitMissing__(pGpu, pEngstate);
1022 }
1023 
1024 static inline NV_STATUS kgspStatePreInitLocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) {
1025     return pEngstate->__kgspStatePreInitLocked__(pGpu, pEngstate);
1026 }
1027 
1028 static inline NV_STATUS kgspStatePreInitUnlocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) {
1029     return pEngstate->__kgspStatePreInitUnlocked__(pGpu, pEngstate);
1030 }
1031 
1032 static inline NvBool kgspClearInterrupt_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pIntrService, IntrServiceClearInterruptArguments *pParams) {
1033     return pIntrService->__kgspClearInterrupt__(pGpu, pIntrService, pParams);
1034 }
1035 
1036 static inline NV_STATUS kgspStatePostLoad_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate, NvU32 arg0) {
1037     return pEngstate->__kgspStatePostLoad__(pGpu, pEngstate, arg0);
1038 }
1039 
1040 static inline NvBool kgspIsPresent_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) {
1041     return pEngstate->__kgspIsPresent__(pGpu, pEngstate);
1042 }
1043 
1044 void kgspDestruct_IMPL(struct KernelGsp *pKernelGsp);
1045 
1046 #define __nvoc_kgspDestruct(pKernelGsp) kgspDestruct_IMPL(pKernelGsp)
1047 void kgspPopulateGspRmInitArgs_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_SR_INIT_ARGUMENTS *pGspSrInitArgs);
1048 
1049 #ifdef __nvoc_kernel_gsp_h_disabled
1050 static inline void kgspPopulateGspRmInitArgs(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_SR_INIT_ARGUMENTS *pGspSrInitArgs) {
1051     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1052 }
1053 #else //__nvoc_kernel_gsp_h_disabled
1054 #define kgspPopulateGspRmInitArgs(pGpu, pKernelGsp, pGspSrInitArgs) kgspPopulateGspRmInitArgs_IMPL(pGpu, pKernelGsp, pGspSrInitArgs)
1055 #endif //__nvoc_kernel_gsp_h_disabled
1056 
1057 NV_STATUS kgspInitRm_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw);
1058 
1059 #ifdef __nvoc_kernel_gsp_h_disabled
1060 static inline NV_STATUS kgspInitRm(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, GSP_FIRMWARE *pGspFw) {
1061     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1062     return NV_ERR_NOT_SUPPORTED;
1063 }
1064 #else //__nvoc_kernel_gsp_h_disabled
1065 #define kgspInitRm(pGpu, pKernelGsp, pGspFw) kgspInitRm_IMPL(pGpu, pKernelGsp, pGspFw)
1066 #endif //__nvoc_kernel_gsp_h_disabled
1067 
1068 NV_STATUS kgspCreateRadix3_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, MEMORY_DESCRIPTOR **ppMemdescRadix3, MEMORY_DESCRIPTOR *pMemdescData, const void *pData, NvU64 sizeOfData);
1069 
1070 #ifdef __nvoc_kernel_gsp_h_disabled
1071 static inline NV_STATUS kgspCreateRadix3(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, MEMORY_DESCRIPTOR **ppMemdescRadix3, MEMORY_DESCRIPTOR *pMemdescData, const void *pData, NvU64 sizeOfData) {
1072     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1073     return NV_ERR_NOT_SUPPORTED;
1074 }
1075 #else //__nvoc_kernel_gsp_h_disabled
1076 #define kgspCreateRadix3(pGpu, pKernelGsp, ppMemdescRadix3, pMemdescData, pData, sizeOfData) kgspCreateRadix3_IMPL(pGpu, pKernelGsp, ppMemdescRadix3, pMemdescData, pData, sizeOfData)
1077 #endif //__nvoc_kernel_gsp_h_disabled
1078 
1079 NV_STATUS kgspUnloadRm_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
1080 
1081 #ifdef __nvoc_kernel_gsp_h_disabled
1082 static inline NV_STATUS kgspUnloadRm(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
1083     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1084     return NV_ERR_NOT_SUPPORTED;
1085 }
1086 #else //__nvoc_kernel_gsp_h_disabled
1087 #define kgspUnloadRm(pGpu, pKernelGsp) kgspUnloadRm_IMPL(pGpu, pKernelGsp)
1088 #endif //__nvoc_kernel_gsp_h_disabled
1089 
1090 NV_STATUS kgspPrepareBootBinaryImage_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
1091 
1092 #ifdef __nvoc_kernel_gsp_h_disabled
1093 static inline NV_STATUS kgspPrepareBootBinaryImage(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
1094     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1095     return NV_ERR_NOT_SUPPORTED;
1096 }
1097 #else //__nvoc_kernel_gsp_h_disabled
1098 #define kgspPrepareBootBinaryImage(pGpu, pKernelGsp) kgspPrepareBootBinaryImage_IMPL(pGpu, pKernelGsp)
1099 #endif //__nvoc_kernel_gsp_h_disabled
1100 
1101 NvU64 kgspGetFwHeapSize_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU64 posteriorFbSize);
1102 
1103 #ifdef __nvoc_kernel_gsp_h_disabled
1104 static inline NvU64 kgspGetFwHeapSize(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvU64 posteriorFbSize) {
1105     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1106     return 0;
1107 }
1108 #else //__nvoc_kernel_gsp_h_disabled
1109 #define kgspGetFwHeapSize(pGpu, pKernelGsp, posteriorFbSize) kgspGetFwHeapSize_IMPL(pGpu, pKernelGsp, posteriorFbSize)
1110 #endif //__nvoc_kernel_gsp_h_disabled
1111 
1112 void kgspSetupLibosInitArgs_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
1113 
1114 #ifdef __nvoc_kernel_gsp_h_disabled
1115 static inline void kgspSetupLibosInitArgs(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
1116     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1117 }
1118 #else //__nvoc_kernel_gsp_h_disabled
1119 #define kgspSetupLibosInitArgs(pGpu, pKernelGsp) kgspSetupLibosInitArgs_IMPL(pGpu, pKernelGsp)
1120 #endif //__nvoc_kernel_gsp_h_disabled
1121 
1122 void kgspRpcRecvEvents_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
1123 
1124 #ifdef __nvoc_kernel_gsp_h_disabled
1125 static inline void kgspRpcRecvEvents(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
1126     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1127 }
1128 #else //__nvoc_kernel_gsp_h_disabled
1129 #define kgspRpcRecvEvents(pGpu, pKernelGsp) kgspRpcRecvEvents_IMPL(pGpu, pKernelGsp)
1130 #endif //__nvoc_kernel_gsp_h_disabled
1131 
1132 NV_STATUS kgspWaitForRmInitDone_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
1133 
1134 #ifdef __nvoc_kernel_gsp_h_disabled
1135 static inline NV_STATUS kgspWaitForRmInitDone(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
1136     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1137     return NV_ERR_NOT_SUPPORTED;
1138 }
1139 #else //__nvoc_kernel_gsp_h_disabled
1140 #define kgspWaitForRmInitDone(pGpu, pKernelGsp) kgspWaitForRmInitDone_IMPL(pGpu, pKernelGsp)
1141 #endif //__nvoc_kernel_gsp_h_disabled
1142 
1143 NV_STATUS kgspStartLogPolling_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
1144 
1145 #ifdef __nvoc_kernel_gsp_h_disabled
1146 static inline NV_STATUS kgspStartLogPolling(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
1147     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1148     return NV_ERR_NOT_SUPPORTED;
1149 }
1150 #else //__nvoc_kernel_gsp_h_disabled
1151 #define kgspStartLogPolling(pGpu, pKernelGsp) kgspStartLogPolling_IMPL(pGpu, pKernelGsp)
1152 #endif //__nvoc_kernel_gsp_h_disabled
1153 
1154 void kgspDumpGspLogs_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvBool arg0);
1155 
1156 #ifdef __nvoc_kernel_gsp_h_disabled
1157 static inline void kgspDumpGspLogs(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, NvBool arg0) {
1158     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1159 }
1160 #else //__nvoc_kernel_gsp_h_disabled
1161 #define kgspDumpGspLogs(pGpu, pKernelGsp, arg0) kgspDumpGspLogs_IMPL(pGpu, pKernelGsp, arg0)
1162 #endif //__nvoc_kernel_gsp_h_disabled
1163 
1164 NV_STATUS kgspExecuteSequencerBuffer_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, void *pRunCpuSeqParams);
1165 
1166 #ifdef __nvoc_kernel_gsp_h_disabled
1167 static inline NV_STATUS kgspExecuteSequencerBuffer(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, void *pRunCpuSeqParams) {
1168     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1169     return NV_ERR_NOT_SUPPORTED;
1170 }
1171 #else //__nvoc_kernel_gsp_h_disabled
1172 #define kgspExecuteSequencerBuffer(pGpu, pKernelGsp, pRunCpuSeqParams) kgspExecuteSequencerBuffer_IMPL(pGpu, pKernelGsp, pRunCpuSeqParams)
1173 #endif //__nvoc_kernel_gsp_h_disabled
1174 
1175 NV_STATUS kgspParseFwsecUcodeFromVbiosImg_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const KernelGspVbiosImg *const pVbiosImg, KernelGspFlcnUcode **ppFwsecUcode);
1176 
1177 #ifdef __nvoc_kernel_gsp_h_disabled
1178 static inline NV_STATUS kgspParseFwsecUcodeFromVbiosImg(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, const KernelGspVbiosImg *const pVbiosImg, KernelGspFlcnUcode **ppFwsecUcode) {
1179     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1180     return NV_ERR_NOT_SUPPORTED;
1181 }
1182 #else //__nvoc_kernel_gsp_h_disabled
1183 #define kgspParseFwsecUcodeFromVbiosImg(pGpu, pKernelGsp, pVbiosImg, ppFwsecUcode) kgspParseFwsecUcodeFromVbiosImg_IMPL(pGpu, pKernelGsp, pVbiosImg, ppFwsecUcode)
1184 #endif //__nvoc_kernel_gsp_h_disabled
1185 
1186 NV_STATUS kgspAllocateScrubberUcodeImage_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppScrubberUcode);
1187 
1188 #ifdef __nvoc_kernel_gsp_h_disabled
1189 static inline NV_STATUS kgspAllocateScrubberUcodeImage(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppScrubberUcode) {
1190     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1191     return NV_ERR_NOT_SUPPORTED;
1192 }
1193 #else //__nvoc_kernel_gsp_h_disabled
1194 #define kgspAllocateScrubberUcodeImage(pGpu, pKernelGsp, ppScrubberUcode) kgspAllocateScrubberUcodeImage_IMPL(pGpu, pKernelGsp, ppScrubberUcode)
1195 #endif //__nvoc_kernel_gsp_h_disabled
1196 
1197 NV_STATUS kgspAllocateBooterLoadUcodeImage_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppBooterLoadUcode);
1198 
1199 #ifdef __nvoc_kernel_gsp_h_disabled
1200 static inline NV_STATUS kgspAllocateBooterLoadUcodeImage(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppBooterLoadUcode) {
1201     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1202     return NV_ERR_NOT_SUPPORTED;
1203 }
1204 #else //__nvoc_kernel_gsp_h_disabled
1205 #define kgspAllocateBooterLoadUcodeImage(pGpu, pKernelGsp, ppBooterLoadUcode) kgspAllocateBooterLoadUcodeImage_IMPL(pGpu, pKernelGsp, ppBooterLoadUcode)
1206 #endif //__nvoc_kernel_gsp_h_disabled
1207 
1208 NV_STATUS kgspAllocateBooterUnloadUcodeImage_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppBooterUnloadUcode);
1209 
1210 #ifdef __nvoc_kernel_gsp_h_disabled
1211 static inline NV_STATUS kgspAllocateBooterUnloadUcodeImage(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, KernelGspFlcnUcode **ppBooterUnloadUcode) {
1212     NV_ASSERT_FAILED_PRECOMP("KernelGsp was disabled!");
1213     return NV_ERR_NOT_SUPPORTED;
1214 }
1215 #else //__nvoc_kernel_gsp_h_disabled
1216 #define kgspAllocateBooterUnloadUcodeImage(pGpu, pKernelGsp, ppBooterUnloadUcode) kgspAllocateBooterUnloadUcodeImage_IMPL(pGpu, pKernelGsp, ppBooterUnloadUcode)
1217 #endif //__nvoc_kernel_gsp_h_disabled
1218 
1219 #undef PRIVATE_FIELD
1220 
1221 
1222 NV_STATUS rpcRmApiControl_GSP(RM_API *pRmApi, NvHandle hClient, NvHandle hObject,
1223                               NvU32 cmd, void *pParamStructPtr, NvU32 paramsSize);
1224 NV_STATUS rpcRmApiAlloc_GSP(RM_API *pRmApi, NvHandle hClient, NvHandle hParent,
1225                             NvHandle hObject, NvU32 hClass, void *pAllocParams, NvU32 allocParamsSize);
1226 NV_STATUS rpcRmApiDupObject_GSP(RM_API *pRmApi, NvHandle hClient, NvHandle hParent, NvHandle *phObject,
1227                                 NvHandle hClientSrc, NvHandle hObjectSrc, NvU32 flags);
1228 NV_STATUS rpcRmApiFree_GSP(RM_API *pRmApi, NvHandle hClient, NvHandle hObject);
1229 
1230 /* Free a KernelGspVbiosImg structure */
1231 void kgspFreeVbiosImg(KernelGspVbiosImg *pVbiosImg);
1232 /* Free a KernelGspFlcnUcode structure */
1233 void kgspFreeFlcnUcode(KernelGspFlcnUcode *pFlcnUcode);
1234 
1235 #endif // KERNEL_GSP_H
1236 
1237 #ifdef __cplusplus
1238 } // extern "C"
1239 #endif
1240 #endif // _G_KERNEL_GSP_NVOC_H_
1241