1 #ifndef _G_SYSTEM_NVOC_H_ 2 #define _G_SYSTEM_NVOC_H_ 3 #include "nvoc/runtime.h" 4 5 #ifdef __cplusplus 6 extern "C" { 7 #endif 8 9 /* 10 * SPDX-FileCopyrightText: Copyright (c) 1993-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 #include "g_system_nvoc.h" 32 33 #ifndef SYSTEM_H 34 #define SYSTEM_H 35 36 /**************** Resource Manager Defines and Structures ******************\ 37 * * 38 * Defines and structures used for the System Object. * 39 * * 40 \***************************************************************************/ 41 42 #include "core/core.h" 43 #include "nvlimits.h" // NV_MAX_DEVICES 44 #include "ctrl/ctrl2080/ctrl2080gpu.h" 45 #include "diagnostics/traceable.h" 46 #include "nvCpuUuid.h" 47 #include "os/capability.h" 48 #include "containers/btree.h" 49 50 #define SYS_GET_INSTANCE() (g_pSys) 51 #define SYS_GET_GPUMGR(p) ((p)->pGpuMgr) 52 #define SYS_GET_GSYNCMGR(p) ((p)->pGsyncMgr) 53 #define SYS_GET_VGPUMGR(p) ((p)->pVgpuMgr) 54 #define SYS_GET_KERNEL_VGPUMGR(p) (RMCFG_FEATURE_KERNEL_RM ? (p)->pKernelVgpuMgr : NULL) 55 #define SYS_GET_OS(p) sysGetOs((p)) 56 #define SYS_GET_PFM(p) ((p)->pPfm) 57 #define SYS_GET_CL(p) ((p)->pCl) 58 #define SYS_GET_SWINSTR(p) ((p)->pSwInstr) 59 #define SYS_GET_GPUACCT(p) ((p)->pGpuAcct) 60 #define SYS_GET_PFM_REQ_HNDLR(p) ((p)->pPlatformRequestHandler) 61 #define SYS_GET_RCDB(p) ((p)->pRcDB) 62 #define SYS_GET_VMM(p) (RMCFG_MODULE_VMM ? (p)->pVmm : NULL) 63 #define SYS_GET_HYPERVISOR(p) ((p)->pHypervisor) 64 #define SYS_GET_VRRMGR(p) ((p)->pVrrMgr) 65 #define SYS_GET_GPUBOOSTMGR(p) ((p)->pGpuBoostMgr) 66 #define SYS_GET_DISPMGR(p) ((p)->pDispMgr) 67 #define SYS_GET_FABRIC(p) ((p)->pFabric) 68 #define SYS_GET_GPUDB(p) ((p)->pGpuDb) 69 #define SYS_GET_HALMGR(p) ((p)->pHalMgr) 70 71 #define IsMobile(p) ((p)->getProperty((p), PDB_PROP_GPU_IS_MOBILE)) 72 73 // 74 // OS defines (Windows flavor can be added later on) 75 // Unix flavor need to be sync with defines in file "nv.h" 76 // 77 #define OS_TYPE_LINUX 0x1 78 #define OS_TYPE_FREEBSD 0x2 79 #define OS_TYPE_SUNOS 0x3 80 #define OS_TYPE_VMWARE 0x4 81 82 // Child class forward declarations. 83 struct OBJPFM; 84 85 #ifndef __NVOC_CLASS_OBJPFM_TYPEDEF__ 86 #define __NVOC_CLASS_OBJPFM_TYPEDEF__ 87 typedef struct OBJPFM OBJPFM; 88 #endif /* __NVOC_CLASS_OBJPFM_TYPEDEF__ */ 89 90 #ifndef __nvoc_class_id_OBJPFM 91 #define __nvoc_class_id_OBJPFM 0xb543ae 92 #endif /* __nvoc_class_id_OBJPFM */ 93 94 95 struct OBJVMM; 96 97 #ifndef __NVOC_CLASS_OBJVMM_TYPEDEF__ 98 #define __NVOC_CLASS_OBJVMM_TYPEDEF__ 99 typedef struct OBJVMM OBJVMM; 100 #endif /* __NVOC_CLASS_OBJVMM_TYPEDEF__ */ 101 102 #ifndef __nvoc_class_id_OBJVMM 103 #define __nvoc_class_id_OBJVMM 0xa030ab 104 #endif /* __nvoc_class_id_OBJVMM */ 105 106 107 struct OBJHYPERVISOR; 108 109 #ifndef __NVOC_CLASS_OBJHYPERVISOR_TYPEDEF__ 110 #define __NVOC_CLASS_OBJHYPERVISOR_TYPEDEF__ 111 typedef struct OBJHYPERVISOR OBJHYPERVISOR; 112 #endif /* __NVOC_CLASS_OBJHYPERVISOR_TYPEDEF__ */ 113 114 #ifndef __nvoc_class_id_OBJHYPERVISOR 115 #define __nvoc_class_id_OBJHYPERVISOR 0x33c1ba 116 #endif /* __nvoc_class_id_OBJHYPERVISOR */ 117 118 119 struct OBJGPUMGR; 120 121 #ifndef __NVOC_CLASS_OBJGPUMGR_TYPEDEF__ 122 #define __NVOC_CLASS_OBJGPUMGR_TYPEDEF__ 123 typedef struct OBJGPUMGR OBJGPUMGR; 124 #endif /* __NVOC_CLASS_OBJGPUMGR_TYPEDEF__ */ 125 126 #ifndef __nvoc_class_id_OBJGPUMGR 127 #define __nvoc_class_id_OBJGPUMGR 0xcf1b25 128 #endif /* __nvoc_class_id_OBJGPUMGR */ 129 130 131 struct OBJDISPMGR; 132 133 #ifndef __NVOC_CLASS_OBJDISPMGR_TYPEDEF__ 134 #define __NVOC_CLASS_OBJDISPMGR_TYPEDEF__ 135 typedef struct OBJDISPMGR OBJDISPMGR; 136 #endif /* __NVOC_CLASS_OBJDISPMGR_TYPEDEF__ */ 137 138 #ifndef __nvoc_class_id_OBJDISPMGR 139 #define __nvoc_class_id_OBJDISPMGR 0x69ad03 140 #endif /* __nvoc_class_id_OBJDISPMGR */ 141 142 143 struct PlatformRequestHandler; 144 145 #ifndef __NVOC_CLASS_PlatformRequestHandler_TYPEDEF__ 146 #define __NVOC_CLASS_PlatformRequestHandler_TYPEDEF__ 147 typedef struct PlatformRequestHandler PlatformRequestHandler; 148 #endif /* __NVOC_CLASS_PlatformRequestHandler_TYPEDEF__ */ 149 150 #ifndef __nvoc_class_id_PlatformRequestHandler 151 #define __nvoc_class_id_PlatformRequestHandler 0x641a7f 152 #endif /* __nvoc_class_id_PlatformRequestHandler */ 153 154 155 struct GpuAccounting; 156 157 #ifndef __NVOC_CLASS_GpuAccounting_TYPEDEF__ 158 #define __NVOC_CLASS_GpuAccounting_TYPEDEF__ 159 typedef struct GpuAccounting GpuAccounting; 160 #endif /* __NVOC_CLASS_GpuAccounting_TYPEDEF__ */ 161 162 #ifndef __nvoc_class_id_GpuAccounting 163 #define __nvoc_class_id_GpuAccounting 0x0f1350 164 #endif /* __nvoc_class_id_GpuAccounting */ 165 166 167 struct OBJHALMGR; 168 169 #ifndef __NVOC_CLASS_OBJHALMGR_TYPEDEF__ 170 #define __NVOC_CLASS_OBJHALMGR_TYPEDEF__ 171 typedef struct OBJHALMGR OBJHALMGR; 172 #endif /* __NVOC_CLASS_OBJHALMGR_TYPEDEF__ */ 173 174 #ifndef __nvoc_class_id_OBJHALMGR 175 #define __nvoc_class_id_OBJHALMGR 0xbf26de 176 #endif /* __nvoc_class_id_OBJHALMGR */ 177 178 179 struct Fabric; 180 181 #ifndef __NVOC_CLASS_Fabric_TYPEDEF__ 182 #define __NVOC_CLASS_Fabric_TYPEDEF__ 183 typedef struct Fabric Fabric; 184 #endif /* __NVOC_CLASS_Fabric_TYPEDEF__ */ 185 186 #ifndef __nvoc_class_id_Fabric 187 #define __nvoc_class_id_Fabric 0x0ac791 188 #endif /* __nvoc_class_id_Fabric */ 189 190 191 struct GpuDb; 192 193 #ifndef __NVOC_CLASS_GpuDb_TYPEDEF__ 194 #define __NVOC_CLASS_GpuDb_TYPEDEF__ 195 typedef struct GpuDb GpuDb; 196 #endif /* __NVOC_CLASS_GpuDb_TYPEDEF__ */ 197 198 #ifndef __nvoc_class_id_GpuDb 199 #define __nvoc_class_id_GpuDb 0xcdd250 200 #endif /* __nvoc_class_id_GpuDb */ 201 202 203 struct OBJSWINSTR; 204 205 #ifndef __NVOC_CLASS_OBJSWINSTR_TYPEDEF__ 206 #define __NVOC_CLASS_OBJSWINSTR_TYPEDEF__ 207 typedef struct OBJSWINSTR OBJSWINSTR; 208 #endif /* __NVOC_CLASS_OBJSWINSTR_TYPEDEF__ */ 209 210 #ifndef __nvoc_class_id_OBJSWINSTR 211 #define __nvoc_class_id_OBJSWINSTR 0xd586f3 212 #endif /* __nvoc_class_id_OBJSWINSTR */ 213 214 215 struct OBJCL; 216 217 #ifndef __NVOC_CLASS_OBJCL_TYPEDEF__ 218 #define __NVOC_CLASS_OBJCL_TYPEDEF__ 219 typedef struct OBJCL OBJCL; 220 #endif /* __NVOC_CLASS_OBJCL_TYPEDEF__ */ 221 222 #ifndef __nvoc_class_id_OBJCL 223 #define __nvoc_class_id_OBJCL 0x547dbb 224 #endif /* __nvoc_class_id_OBJCL */ 225 226 227 struct KernelVgpuMgr; 228 229 #ifndef __NVOC_CLASS_KernelVgpuMgr_TYPEDEF__ 230 #define __NVOC_CLASS_KernelVgpuMgr_TYPEDEF__ 231 typedef struct KernelVgpuMgr KernelVgpuMgr; 232 #endif /* __NVOC_CLASS_KernelVgpuMgr_TYPEDEF__ */ 233 234 #ifndef __nvoc_class_id_KernelVgpuMgr 235 #define __nvoc_class_id_KernelVgpuMgr 0xa793dd 236 #endif /* __nvoc_class_id_KernelVgpuMgr */ 237 238 239 struct OBJVRRMGR; 240 241 #ifndef __NVOC_CLASS_OBJVRRMGR_TYPEDEF__ 242 #define __NVOC_CLASS_OBJVRRMGR_TYPEDEF__ 243 typedef struct OBJVRRMGR OBJVRRMGR; 244 #endif /* __NVOC_CLASS_OBJVRRMGR_TYPEDEF__ */ 245 246 #ifndef __nvoc_class_id_OBJVRRMGR 247 #define __nvoc_class_id_OBJVRRMGR 0x442804 248 #endif /* __nvoc_class_id_OBJVRRMGR */ 249 250 251 struct OBJGPUBOOSTMGR; 252 253 #ifndef __NVOC_CLASS_OBJGPUBOOSTMGR_TYPEDEF__ 254 #define __NVOC_CLASS_OBJGPUBOOSTMGR_TYPEDEF__ 255 typedef struct OBJGPUBOOSTMGR OBJGPUBOOSTMGR; 256 #endif /* __NVOC_CLASS_OBJGPUBOOSTMGR_TYPEDEF__ */ 257 258 #ifndef __nvoc_class_id_OBJGPUBOOSTMGR 259 #define __nvoc_class_id_OBJGPUBOOSTMGR 0x9f6bbf 260 #endif /* __nvoc_class_id_OBJGPUBOOSTMGR */ 261 262 263 struct OBJGSYNCMGR; 264 265 #ifndef __NVOC_CLASS_OBJGSYNCMGR_TYPEDEF__ 266 #define __NVOC_CLASS_OBJGSYNCMGR_TYPEDEF__ 267 typedef struct OBJGSYNCMGR OBJGSYNCMGR; 268 #endif /* __NVOC_CLASS_OBJGSYNCMGR_TYPEDEF__ */ 269 270 #ifndef __nvoc_class_id_OBJGSYNCMGR 271 #define __nvoc_class_id_OBJGSYNCMGR 0xd07fd0 272 #endif /* __nvoc_class_id_OBJGSYNCMGR */ 273 274 275 struct OBJVGPUMGR; 276 277 #ifndef __NVOC_CLASS_OBJVGPUMGR_TYPEDEF__ 278 #define __NVOC_CLASS_OBJVGPUMGR_TYPEDEF__ 279 typedef struct OBJVGPUMGR OBJVGPUMGR; 280 #endif /* __NVOC_CLASS_OBJVGPUMGR_TYPEDEF__ */ 281 282 #ifndef __nvoc_class_id_OBJVGPUMGR 283 #define __nvoc_class_id_OBJVGPUMGR 0x0e9beb 284 #endif /* __nvoc_class_id_OBJVGPUMGR */ 285 286 287 struct OBJOS; 288 289 #ifndef __NVOC_CLASS_OBJOS_TYPEDEF__ 290 #define __NVOC_CLASS_OBJOS_TYPEDEF__ 291 typedef struct OBJOS OBJOS; 292 #endif /* __NVOC_CLASS_OBJOS_TYPEDEF__ */ 293 294 #ifndef __nvoc_class_id_OBJOS 295 #define __nvoc_class_id_OBJOS 0xaa1d70 296 #endif /* __nvoc_class_id_OBJOS */ 297 298 299 300 typedef struct OBJRCDB Journal; 301 302 /*! 303 * This structure contains static system configuration data. This structure 304 * will become a typesafe structure that can be exchanged with code 305 * running on GSP. 306 */ 307 typedef struct SYS_STATIC_CONFIG 308 { 309 /*! Indicates if the GPU is in a notebook or not. */ 310 NvBool bIsNotebook; 311 312 /*! Initial SLI configuration flags */ 313 NvU32 initialSliFlags; 314 315 /*! Indicates the type of OS flavor */ 316 NvU32 osType; 317 318 /*! Indicates confidentail compute OS support is enabled or not */ 319 NvBool bOsCCEnabled; 320 321 /*! Indicates Intel TDX confidentail compute OS support is enabled or not */ 322 NvBool bOsCCTdxEnabled; 323 } SYS_STATIC_CONFIG; 324 325 typedef enum 326 { 327 CPU_VENDOR_UNKNOWN = 0, 328 CPU_VENDOR_INTEL, 329 CPU_VENDOR_AMD, 330 CPU_VENDOR_WINCHIP, 331 CPU_VENDOR_CYRIX, 332 CPU_VENDOR_TRANSM 333 } CPU_VENDOR; 334 335 typedef struct 336 { 337 NvBool bInitialized; // Set to true once we id the CPU 338 NvU32 type; // NV0000_CTRL_SYSTEM_CPU_TYPE value 339 NvU32 caps; // NV0000_CTRL_SYSTEM_CPU_CAP value 340 NvU32 brandId; // CPU Brand ID 341 NvU32 clock; 342 NvU32 l1DataCacheSize; // L1 data (or unified) cache size (KB) 343 NvU32 l2DataCacheSize; // L2 data (or unified) cache size (KB) 344 NvU32 dataCacheLineSize; // Bytes per line in the L1 data cache 345 NvU64 hostPageSize; // Native host os page size (4k/64k/etc) 346 NvU32 numPhysicalCpus; // Number of physical cpus 347 NvU32 numLogicalCpus; // Total number of logical cpus 348 NvU32 maxLogicalCpus; // Max Number of Cores on the System 349 char name[52]; // Embedded processor name; only filled 350 // filled in if CPU has embedded name 351 NvU32 family; // Vendor defined Family/extended Family 352 NvU32 model; // Vendor defined Model/extended Model 353 NvU8 vendor; // Vendor CPU_VENDOR 354 NvU32 coresOnDie; // # of cores on the die (0 if unknown) 355 NvU32 platformID; // Chip package type 356 NvU8 stepping; // Silicon stepping 357 NvBool bSEVCapable; // Is capable of SEV (Secure Encrypted Virtualization) 358 NvU32 maxEncryptedGuests; // Max # of encrypted guests supported 359 } SYS_CPU_INFO; 360 361 typedef struct 362 { 363 NvU32 strapUser; 364 NvU32 genRegsVse2VidsysEn; 365 NvU32 genRegsMiscIoAdr; 366 } SYS_VGA_POST_STATE; 367 368 369 #ifdef NVOC_SYSTEM_H_PRIVATE_ACCESS_ALLOWED 370 #define PRIVATE_FIELD(x) x 371 #else 372 #define PRIVATE_FIELD(x) NVOC_PRIVATE_FIELD(x) 373 #endif 374 struct OBJSYS { 375 const struct NVOC_RTTI *__nvoc_rtti; 376 struct Object __nvoc_base_Object; 377 struct OBJTRACEABLE __nvoc_base_OBJTRACEABLE; 378 struct Object *__nvoc_pbase_Object; 379 struct OBJTRACEABLE *__nvoc_pbase_OBJTRACEABLE; 380 struct OBJSYS *__nvoc_pbase_OBJSYS; 381 NV_STATUS (*__sysCaptureState__)(struct OBJSYS *); 382 NvBool PDB_PROP_SYS_SBIOS_NVIF_POWERMIZER_LIMIT; 383 NvBool PDB_PROP_SYS_MXM_THERMAL_CONTROL_PRESENT; 384 NvBool PDB_PROP_SYS_POWER_BATTERY; 385 NvBool PDB_PROP_SYS_NVIF_INIT_DONE; 386 NvBool PDB_PROP_SYS_REGISTRY_OVERRIDES_INITIALIZED; 387 NvBool PDB_PROP_SYS_PRIMARY_VBIOS_STATE_SAVED; 388 NvBool PDB_PROP_SYS_INITIALIZE_SYSTEM_MEMORY_ALLOCATIONS; 389 NvBool PDB_PROP_SYS_ENABLE_STREAM_MEMOPS; 390 NvBool PDB_PROP_SYS_IS_UEFI; 391 NvBool PDB_PROP_SYS_WIN_PRIMARY_DEVICE_MARKED; 392 NvBool PDB_PROP_SYS_IS_GSYNC_ENABLED; 393 NvBool PDB_PROP_SYS_NVSWITCH_IS_PRESENT; 394 NvBool PDB_PROP_SYS_FABRIC_IS_EXTERNALLY_MANAGED; 395 NvBool PDB_PROP_SYS_FABRIC_MANAGER_IS_INITIALIZED; 396 NvBool PDB_PROP_SYS_FABRIC_MANAGER_IS_REGISTERED; 397 NvBool PDB_PROP_SYS_HASWELL_CPU_C0_STEPPING; 398 NvBool PDB_PROP_SYS_VALIDATE_CLIENT_HANDLE; 399 NvBool PDB_PROP_SYS_VALIDATE_CLIENT_HANDLE_STRICT; 400 NvBool PDB_PROP_SYS_VALIDATE_KERNEL_BUFFERS; 401 NvBool PDB_PROP_SYS_INTERNAL_EVENT_BUFFER_ALLOC_ALLOWED; 402 NvBool PDB_PROP_SYS_IS_AGGRESSIVE_GC6_ENABLED; 403 NvBool PDB_PROP_SYS_IS_EFI_INIT; 404 NvBool PDB_PROP_SYS_IN_OCA_DATA_COLLECTION; 405 NvBool PDB_PROP_SYS_DEBUGGER_DISABLED; 406 NvBool PDB_PROP_SYS_PRIORITY_BOOST; 407 NvU32 PDB_PROP_SYS_PRIORITY_THROTTLE_DELAY_US; 408 NvBool PDB_PROP_SYS_BUGCHECK_ON_TIMEOUT; 409 NvBool PDB_PROP_SYS_CLIENT_HANDLE_LOOKUP; 410 NvU32 apiLockMask; 411 NvU32 apiLockModuleMask; 412 NvU32 gpuLockModuleMask; 413 NvBool PDB_PROP_SYS_ROUTE_TO_PHYSICAL_LOCK_BYPASS; 414 NvU32 pwrTransitionTimeoutOverride; 415 SYS_STATIC_CONFIG staticConfig; 416 NvU32 debugFlags; 417 NvU32 backtraceStackDepth; 418 SYS_CPU_INFO cpuInfo; 419 SYS_VGA_POST_STATE vgaPostState; 420 NvBool gpuHotPlugPollingActive[32]; 421 NvU32 gridSwPkg; 422 void *pSema; 423 NvU32 binMask; 424 PNODE pMemFilterList; 425 NvBool PDB_PROP_SYS_IS_QSYNC_FW_REVISION_CHECK_DISABLED; 426 NvU64 rmInstanceId; 427 NvU32 currentCid; 428 NvBool bUseDeferredClientListFree; 429 NvU32 clientListDeferredFreeLimit; 430 OS_RM_CAPS *pOsRmCaps; 431 struct OBJGPUMGR *pGpuMgr; 432 struct OBJGSYNCMGR *pGsyncMgr; 433 struct OBJVGPUMGR *pVgpuMgr; 434 struct KernelVgpuMgr *pKernelVgpuMgr; 435 struct OBJOS *pOS; 436 struct OBJCL *pCl; 437 struct OBJPFM *pPfm; 438 struct OBJSWINSTR *pSwInstr; 439 struct GpuAccounting *pGpuAcct; 440 struct PlatformRequestHandler *pPlatformRequestHandler; 441 Journal *pRcDB; 442 struct OBJVMM *pVmm; 443 struct OBJHYPERVISOR *pHypervisor; 444 struct OBJVRRMGR *pVrrMgr; 445 struct OBJGPUBOOSTMGR *pGpuBoostMgr; 446 struct OBJDISPMGR *pDispMgr; 447 struct OBJHALMGR *pHalMgr; 448 struct Fabric *pFabric; 449 struct GpuDb *pGpuDb; 450 }; 451 452 #ifndef __NVOC_CLASS_OBJSYS_TYPEDEF__ 453 #define __NVOC_CLASS_OBJSYS_TYPEDEF__ 454 typedef struct OBJSYS OBJSYS; 455 #endif /* __NVOC_CLASS_OBJSYS_TYPEDEF__ */ 456 457 #ifndef __nvoc_class_id_OBJSYS 458 #define __nvoc_class_id_OBJSYS 0x40e2c8 459 #endif /* __nvoc_class_id_OBJSYS */ 460 461 extern const struct NVOC_CLASS_DEF __nvoc_class_def_OBJSYS; 462 463 #define __staticCast_OBJSYS(pThis) \ 464 ((pThis)->__nvoc_pbase_OBJSYS) 465 466 #ifdef __nvoc_system_h_disabled 467 #define __dynamicCast_OBJSYS(pThis) ((OBJSYS*)NULL) 468 #else //__nvoc_system_h_disabled 469 #define __dynamicCast_OBJSYS(pThis) \ 470 ((OBJSYS*)__nvoc_dynamicCast(staticCast((pThis), Dynamic), classInfo(OBJSYS))) 471 #endif //__nvoc_system_h_disabled 472 473 #define PDB_PROP_SYS_REGISTRY_OVERRIDES_INITIALIZED_BASE_CAST 474 #define PDB_PROP_SYS_REGISTRY_OVERRIDES_INITIALIZED_BASE_NAME PDB_PROP_SYS_REGISTRY_OVERRIDES_INITIALIZED 475 #define PDB_PROP_SYS_IS_EFI_INIT_BASE_CAST 476 #define PDB_PROP_SYS_IS_EFI_INIT_BASE_NAME PDB_PROP_SYS_IS_EFI_INIT 477 #define PDB_PROP_SYS_INITIALIZE_SYSTEM_MEMORY_ALLOCATIONS_BASE_CAST 478 #define PDB_PROP_SYS_INITIALIZE_SYSTEM_MEMORY_ALLOCATIONS_BASE_NAME PDB_PROP_SYS_INITIALIZE_SYSTEM_MEMORY_ALLOCATIONS 479 #define PDB_PROP_SYS_POWER_BATTERY_BASE_CAST 480 #define PDB_PROP_SYS_POWER_BATTERY_BASE_NAME PDB_PROP_SYS_POWER_BATTERY 481 #define PDB_PROP_SYS_IS_QSYNC_FW_REVISION_CHECK_DISABLED_BASE_CAST 482 #define PDB_PROP_SYS_IS_QSYNC_FW_REVISION_CHECK_DISABLED_BASE_NAME PDB_PROP_SYS_IS_QSYNC_FW_REVISION_CHECK_DISABLED 483 #define PDB_PROP_SYS_ROUTE_TO_PHYSICAL_LOCK_BYPASS_BASE_CAST 484 #define PDB_PROP_SYS_ROUTE_TO_PHYSICAL_LOCK_BYPASS_BASE_NAME PDB_PROP_SYS_ROUTE_TO_PHYSICAL_LOCK_BYPASS 485 #define PDB_PROP_SYS_NVIF_INIT_DONE_BASE_CAST 486 #define PDB_PROP_SYS_NVIF_INIT_DONE_BASE_NAME PDB_PROP_SYS_NVIF_INIT_DONE 487 #define PDB_PROP_SYS_VALIDATE_CLIENT_HANDLE_STRICT_BASE_CAST 488 #define PDB_PROP_SYS_VALIDATE_CLIENT_HANDLE_STRICT_BASE_NAME PDB_PROP_SYS_VALIDATE_CLIENT_HANDLE_STRICT 489 #define PDB_PROP_SYS_VALIDATE_KERNEL_BUFFERS_BASE_CAST 490 #define PDB_PROP_SYS_VALIDATE_KERNEL_BUFFERS_BASE_NAME PDB_PROP_SYS_VALIDATE_KERNEL_BUFFERS 491 #define PDB_PROP_SYS_PRIMARY_VBIOS_STATE_SAVED_BASE_CAST 492 #define PDB_PROP_SYS_PRIMARY_VBIOS_STATE_SAVED_BASE_NAME PDB_PROP_SYS_PRIMARY_VBIOS_STATE_SAVED 493 #define PDB_PROP_SYS_BUGCHECK_ON_TIMEOUT_BASE_CAST 494 #define PDB_PROP_SYS_BUGCHECK_ON_TIMEOUT_BASE_NAME PDB_PROP_SYS_BUGCHECK_ON_TIMEOUT 495 #define PDB_PROP_SYS_ENABLE_STREAM_MEMOPS_BASE_CAST 496 #define PDB_PROP_SYS_ENABLE_STREAM_MEMOPS_BASE_NAME PDB_PROP_SYS_ENABLE_STREAM_MEMOPS 497 #define PDB_PROP_SYS_SBIOS_NVIF_POWERMIZER_LIMIT_BASE_CAST 498 #define PDB_PROP_SYS_SBIOS_NVIF_POWERMIZER_LIMIT_BASE_NAME PDB_PROP_SYS_SBIOS_NVIF_POWERMIZER_LIMIT 499 #define PDB_PROP_SYS_IS_UEFI_BASE_CAST 500 #define PDB_PROP_SYS_IS_UEFI_BASE_NAME PDB_PROP_SYS_IS_UEFI 501 #define PDB_PROP_SYS_CLIENT_HANDLE_LOOKUP_BASE_CAST 502 #define PDB_PROP_SYS_CLIENT_HANDLE_LOOKUP_BASE_NAME PDB_PROP_SYS_CLIENT_HANDLE_LOOKUP 503 #define PDB_PROP_SYS_INTERNAL_EVENT_BUFFER_ALLOC_ALLOWED_BASE_CAST 504 #define PDB_PROP_SYS_INTERNAL_EVENT_BUFFER_ALLOC_ALLOWED_BASE_NAME PDB_PROP_SYS_INTERNAL_EVENT_BUFFER_ALLOC_ALLOWED 505 #define PDB_PROP_SYS_IS_GSYNC_ENABLED_BASE_CAST 506 #define PDB_PROP_SYS_IS_GSYNC_ENABLED_BASE_NAME PDB_PROP_SYS_IS_GSYNC_ENABLED 507 #define PDB_PROP_SYS_FABRIC_MANAGER_IS_REGISTERED_BASE_CAST 508 #define PDB_PROP_SYS_FABRIC_MANAGER_IS_REGISTERED_BASE_NAME PDB_PROP_SYS_FABRIC_MANAGER_IS_REGISTERED 509 #define PDB_PROP_SYS_PRIORITY_BOOST_BASE_CAST 510 #define PDB_PROP_SYS_PRIORITY_BOOST_BASE_NAME PDB_PROP_SYS_PRIORITY_BOOST 511 #define PDB_PROP_SYS_PRIORITY_THROTTLE_DELAY_US_BASE_CAST 512 #define PDB_PROP_SYS_PRIORITY_THROTTLE_DELAY_US_BASE_NAME PDB_PROP_SYS_PRIORITY_THROTTLE_DELAY_US 513 #define PDB_PROP_SYS_IN_OCA_DATA_COLLECTION_BASE_CAST 514 #define PDB_PROP_SYS_IN_OCA_DATA_COLLECTION_BASE_NAME PDB_PROP_SYS_IN_OCA_DATA_COLLECTION 515 #define PDB_PROP_SYS_NVSWITCH_IS_PRESENT_BASE_CAST 516 #define PDB_PROP_SYS_NVSWITCH_IS_PRESENT_BASE_NAME PDB_PROP_SYS_NVSWITCH_IS_PRESENT 517 #define PDB_PROP_SYS_FABRIC_MANAGER_IS_INITIALIZED_BASE_CAST 518 #define PDB_PROP_SYS_FABRIC_MANAGER_IS_INITIALIZED_BASE_NAME PDB_PROP_SYS_FABRIC_MANAGER_IS_INITIALIZED 519 #define PDB_PROP_SYS_WIN_PRIMARY_DEVICE_MARKED_BASE_CAST 520 #define PDB_PROP_SYS_WIN_PRIMARY_DEVICE_MARKED_BASE_NAME PDB_PROP_SYS_WIN_PRIMARY_DEVICE_MARKED 521 #define PDB_PROP_SYS_VALIDATE_CLIENT_HANDLE_BASE_CAST 522 #define PDB_PROP_SYS_VALIDATE_CLIENT_HANDLE_BASE_NAME PDB_PROP_SYS_VALIDATE_CLIENT_HANDLE 523 #define PDB_PROP_SYS_FABRIC_IS_EXTERNALLY_MANAGED_BASE_CAST 524 #define PDB_PROP_SYS_FABRIC_IS_EXTERNALLY_MANAGED_BASE_NAME PDB_PROP_SYS_FABRIC_IS_EXTERNALLY_MANAGED 525 #define PDB_PROP_SYS_IS_AGGRESSIVE_GC6_ENABLED_BASE_CAST 526 #define PDB_PROP_SYS_IS_AGGRESSIVE_GC6_ENABLED_BASE_NAME PDB_PROP_SYS_IS_AGGRESSIVE_GC6_ENABLED 527 #define PDB_PROP_SYS_HASWELL_CPU_C0_STEPPING_BASE_CAST 528 #define PDB_PROP_SYS_HASWELL_CPU_C0_STEPPING_BASE_NAME PDB_PROP_SYS_HASWELL_CPU_C0_STEPPING 529 #define PDB_PROP_SYS_DEBUGGER_DISABLED_BASE_CAST 530 #define PDB_PROP_SYS_DEBUGGER_DISABLED_BASE_NAME PDB_PROP_SYS_DEBUGGER_DISABLED 531 #define PDB_PROP_SYS_MXM_THERMAL_CONTROL_PRESENT_BASE_CAST 532 #define PDB_PROP_SYS_MXM_THERMAL_CONTROL_PRESENT_BASE_NAME PDB_PROP_SYS_MXM_THERMAL_CONTROL_PRESENT 533 534 NV_STATUS __nvoc_objCreateDynamic_OBJSYS(OBJSYS**, Dynamic*, NvU32, va_list); 535 536 NV_STATUS __nvoc_objCreate_OBJSYS(OBJSYS**, Dynamic*, NvU32); 537 #define __objCreate_OBJSYS(ppNewObj, pParent, createFlags) \ 538 __nvoc_objCreate_OBJSYS((ppNewObj), staticCast((pParent), Dynamic), (createFlags)) 539 540 #define sysCaptureState(arg0) sysCaptureState_DISPATCH(arg0) 541 NV_STATUS sysCaptureState_IMPL(struct OBJSYS *arg0); 542 543 static inline NV_STATUS sysCaptureState_DISPATCH(struct OBJSYS *arg0) { 544 return arg0->__sysCaptureState__(arg0); 545 } 546 547 static inline NvU32 sysGetPwrTransitionTimeout(struct OBJSYS *pSys) { 548 return pSys->pwrTransitionTimeoutOverride; 549 } 550 551 static inline const SYS_STATIC_CONFIG *sysGetStaticConfig(struct OBJSYS *pSys) { 552 return &pSys->staticConfig; 553 } 554 555 NV_STATUS sysConstruct_IMPL(struct OBJSYS *arg_); 556 557 #define __nvoc_sysConstruct(arg_) sysConstruct_IMPL(arg_) 558 void sysDestruct_IMPL(struct OBJSYS *arg0); 559 560 #define __nvoc_sysDestruct(arg0) sysDestruct_IMPL(arg0) 561 void sysInitRegistryOverrides_IMPL(struct OBJSYS *arg0); 562 563 #ifdef __nvoc_system_h_disabled 564 static inline void sysInitRegistryOverrides(struct OBJSYS *arg0) { 565 NV_ASSERT_FAILED_PRECOMP("OBJSYS was disabled!"); 566 } 567 #else //__nvoc_system_h_disabled 568 #define sysInitRegistryOverrides(arg0) sysInitRegistryOverrides_IMPL(arg0) 569 #endif //__nvoc_system_h_disabled 570 571 void sysApplyLockingPolicy_IMPL(struct OBJSYS *arg0); 572 573 #ifdef __nvoc_system_h_disabled 574 static inline void sysApplyLockingPolicy(struct OBJSYS *arg0) { 575 NV_ASSERT_FAILED_PRECOMP("OBJSYS was disabled!"); 576 } 577 #else //__nvoc_system_h_disabled 578 #define sysApplyLockingPolicy(arg0) sysApplyLockingPolicy_IMPL(arg0) 579 #endif //__nvoc_system_h_disabled 580 581 struct OBJOS *sysGetOs_IMPL(struct OBJSYS *arg0); 582 583 #ifdef __nvoc_system_h_disabled 584 static inline struct OBJOS *sysGetOs(struct OBJSYS *arg0) { 585 NV_ASSERT_FAILED_PRECOMP("OBJSYS was disabled!"); 586 return NULL; 587 } 588 #else //__nvoc_system_h_disabled 589 #define sysGetOs(arg0) sysGetOs_IMPL(arg0) 590 #endif //__nvoc_system_h_disabled 591 592 void sysEnableExternalFabricMgmt_IMPL(struct OBJSYS *arg0); 593 594 #ifdef __nvoc_system_h_disabled 595 static inline void sysEnableExternalFabricMgmt(struct OBJSYS *arg0) { 596 NV_ASSERT_FAILED_PRECOMP("OBJSYS was disabled!"); 597 } 598 #else //__nvoc_system_h_disabled 599 #define sysEnableExternalFabricMgmt(arg0) sysEnableExternalFabricMgmt_IMPL(arg0) 600 #endif //__nvoc_system_h_disabled 601 602 void sysForceInitFabricManagerState_IMPL(struct OBJSYS *arg0); 603 604 #ifdef __nvoc_system_h_disabled 605 static inline void sysForceInitFabricManagerState(struct OBJSYS *arg0) { 606 NV_ASSERT_FAILED_PRECOMP("OBJSYS was disabled!"); 607 } 608 #else //__nvoc_system_h_disabled 609 #define sysForceInitFabricManagerState(arg0) sysForceInitFabricManagerState_IMPL(arg0) 610 #endif //__nvoc_system_h_disabled 611 612 NV_STATUS sysSyncExternalFabricMgmtWAR_IMPL(struct OBJSYS *arg0, OBJGPU *arg1); 613 614 #ifdef __nvoc_system_h_disabled 615 static inline NV_STATUS sysSyncExternalFabricMgmtWAR(struct OBJSYS *arg0, OBJGPU *arg1) { 616 NV_ASSERT_FAILED_PRECOMP("OBJSYS was disabled!"); 617 return NV_ERR_NOT_SUPPORTED; 618 } 619 #else //__nvoc_system_h_disabled 620 #define sysSyncExternalFabricMgmtWAR(arg0, arg1) sysSyncExternalFabricMgmtWAR_IMPL(arg0, arg1) 621 #endif //__nvoc_system_h_disabled 622 623 #undef PRIVATE_FIELD 624 625 626 extern struct OBJSYS *g_pSys; 627 628 #endif // SYSTEM_H 629 630 #ifdef __cplusplus 631 } // extern "C" 632 #endif 633 #endif // _G_SYSTEM_NVOC_H_ 634