/** @file This file defines the SMM info hob structure. Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef PAYLOAD_SMM_REGISTER_INFO_GUID_H_ #define PAYLOAD_SMM_REGISTER_INFO_GUID_H_ #include /// /// SMM Information GUID /// extern EFI_GUID gSmmRegisterInfoGuid; /// /// Reuse ACPI definition /// AddressSpaceId(0xC0-0xFF) is defined by OEM for MSR and other spaces /// typedef EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE PLD_GENERIC_ADDRESS; #define REGISTER_ID_SMI_GBL_EN 1 #define REGISTER_ID_SMI_GBL_EN_LOCK 2 #define REGISTER_ID_SMI_EOS 3 #define REGISTER_ID_SMI_APM_EN 4 #define REGISTER_ID_SMI_APM_STS 5 #pragma pack(1) typedef struct { UINT64 Id; UINT64 Value; PLD_GENERIC_ADDRESS Address; } PLD_GENERIC_REGISTER; typedef struct { UINT16 Revision; UINT16 Reserved; UINT32 Count; PLD_GENERIC_REGISTER Registers[0]; } PLD_SMM_REGISTERS; #pragma pack() #endif