/** @file ;****************************************************************************** ;* Copyright (c) 2012 - 2020, Insyde Software Corp. All Rights Reserved. ;* ;* You may not reproduce, distribute, publish, display, perform, modify, adapt, ;* transmit, broadcast, present, recite, release, license or otherwise exploit ;* any part of this publication in any form, by any means, without the prior ;* written permission of Insyde Software Corporation. ;* ;****************************************************************************** */ #ifndef _PNP_RUNTIME_DXE_H_ #define _PNP_RUNTIME_DXE_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "PnpDmi.h" #define GPNV_SIGNATURE SIGNATURE_32 ('G', 'P', 'N', 'V') #define SMBIOS_30_SIGNATURE "_SM3_" #pragma pack(1) typedef struct { UINT16 Handle; UINTN MinGPNVSize; UINTN GPNVSize; UINTN BaseAddress; } PLATFORM_GPNV_MAP; typedef struct { PLATFORM_GPNV_MAP PlatFormGPNVMap[20]; } PLATFORM_GPNV_MAP_BUFFER; // // GPNV Header // typedef struct { UINT32 Signature; //"GPNV" UINT32 TotalLength; UINT8 Reserved[8]; } PLATFORM_GPNV_HEADER; // // global variables collection // typedef struct { PLATFORM_GPNV_MAP_BUFFER GPNVMapBuffer; PLATFORM_GPNV_HEADER *GPNVHeader; UINTN UpdatableStringCount; DMI_UPDATABLE_STRING *UpdatableStrings; UINTN OemGPNVHandleCount; // // smbios table runtime address // EFI_PHYSICAL_ADDRESS SMBIOSTableEntryAddress; EFI_PHYSICAL_ADDRESS SMBIOSTableEntryAddress64Bit; SMBIOS_TABLE_ENTRY_POINT *SmbiosTableEntryPoint; SMBIOS_TABLE_3_0_ENTRY_POINT *SmbiosTableEntryPoint64Bit; SMBIOS_STRUCTURE *SmbiosTable; SMBIOS_STRUCTURE *SmbiosTable64Bit; // // Runtime buffers // UINT8 *DmiVariableBuf; UINT8 *SmbiosStoreArea; UINT8 *SmbiosStoreArea64Bit; UINT8 *TempStoreArea; } PNP_RUNTIME_PRIVATE_DATA; #pragma pack() // // exported for PnpRuntime services usage // extern PNP_RUNTIME_PRIVATE_DATA *mPrivateData; #endif