slimbootloader/Platform/IdavilleBoardPkg/Include/Acpi/Wsmt.h

61 lines
1.7 KiB
C

/** @file
Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _WSMT_H_
#define _WSMT_H_
#include <IndustryStandard/Acpi.h>
#define ACPI_WSMT_SIGNATURE 0x544D5357
#define ACPI_WSMT_LENGTH 40
#define ACPI_OEM_WSMT_REVISION 0x00000000
#define EFI_ACPI_WSMT_REVISION 0x00000001
#define WSMT_PROTECTION_FLAG (BIT0 | BIT1 | BIT2 )
#pragma pack(1)
typedef union {
struct {
//
//BIT0:
//If set, expresses that for all synchronous SMM entries,
//SMM will validate that input and output buffers lie entirely within the expected fixed memory regions.
//
UINT32 FixedCommBuffers:1;
//
//BIT1: COMM_BUFFER_NESTED_PTR_PROTECTION
//If set, expresses that for all synchronous SMM entries, SMM will validate that input and
//output pointers embedded within the fixed communication buffer only refer to address ranges
//that lie entirely within the expected fixed memory regions.
//
UINT32 CommBufferNestedPointerProtection:1;
//
//BIT2: SYSTEM_RESOURCE_PROTECTION
//Firmware setting this bit is an indication that it will not allow reconfiguration of system resources via non-architectural mechanisms.
//
UINT32 SystemResourceProtection:1;
UINT32 Reserved:29;
} Bits;
UINT32 Flags;
} EFI_ACPI_WSMT_PROTECTION_FLAGS;
//
// WSMT ACPI table
//
typedef struct _ACPI_WINDOWS_SMM_SECURITY_MITIGATIONS_TABLE {
EFI_ACPI_DESCRIPTION_HEADER Header;
EFI_ACPI_WSMT_PROTECTION_FLAGS ProtectionFlags;
} ACPI_WINDOWS_SMM_SECURITY_MITIGATIONS_TABLE;
#pragma pack()
#endif //_WSMT_H_