TianoCore EDK2 master
|
#include <AcpiTableGenerator.h>
#include <ConfigurationManagerHelper.h>
#include <ConfigurationManagerObject.h>
#include <IndustryStandard/WindowsSmmSecurityMitigationTable.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/TableHelperLib.h>
#include <Protocol/AcpiTable.h>
#include <Protocol/ConfigurationManagerProtocol.h>
#include <X64NameSpaceObjects.h>
Go to the source code of this file.
Macros | |
#define | WSMT_PROTECTION_VALID_FLAGS |
#define | WSMT_GENERATOR_REVISION CREATE_REVISION (1, 0) |
Functions | |
GET_OBJECT_LIST (EObjNameSpaceX64, EX64ObjWsmtFlagsInfo, CM_X64_WSMT_FLAGS_INFO) | |
STATIC EFI_STATUS EFIAPI | WsmtAddProtectionFlagsInfo (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol) |
STATIC EFI_STATUS EFIAPI | BuildWsmtTable (IN CONST ACPI_TABLE_GENERATOR *CONST This, IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, OUT EFI_ACPI_DESCRIPTION_HEADER **CONST Table) |
EFI_STATUS EFIAPI | AcpiWsmtLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
EFI_STATUS EFIAPI | AcpiWsmtLibDestructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
Variables | |
STATIC EFI_ACPI_WSMT_TABLE | AcpiWsmt |
STATIC CONST ACPI_TABLE_GENERATOR | WsmtGenerator |
WSMT Table Generator Implementation.
This file implements the WSMT Table Generator. The WSMT table is used to specify the security mitigation that are enabled in the Windows OS.
Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file WsmtGenerator.c.
#define WSMT_GENERATOR_REVISION CREATE_REVISION (1, 0) |
This macro defines the WSMT Table Generator revision.
Definition at line 208 of file WsmtGenerator.c.
#define WSMT_PROTECTION_VALID_FLAGS |
Definition at line 24 of file WsmtGenerator.c.
EFI_STATUS EFIAPI AcpiWsmtLibConstructor | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable | ||
) |
Register the Generator with the ACPI Table Factory.
[in] | ImageHandle | The handle to the image. |
[in] | SystemTable | Pointer to the System Table. |
EFI_SUCCESS | The Generator is registered. |
EFI_INVALID_PARAMETER | A parameter is invalid. |
EFI_ALREADY_STARTED | The Generator for the Table ID is already registered. |
Definition at line 253 of file WsmtGenerator.c.
EFI_STATUS EFIAPI AcpiWsmtLibDestructor | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable | ||
) |
Deregister the Generator from the ACPI Table Factory.
[in] | ImageHandle | The handle to the image. |
[in] | SystemTable | Pointer to the System Table. |
EFI_SUCCESS | The Generator is deregistered. |
EFI_INVALID_PARAMETER | A parameter is invalid. |
EFI_NOT_FOUND | The Generator is not registered. |
Definition at line 277 of file WsmtGenerator.c.
STATIC EFI_STATUS EFIAPI BuildWsmtTable | ( | IN CONST ACPI_TABLE_GENERATOR *CONST | This, |
IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST | AcpiTableInfo, | ||
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST | CfgMgrProtocol, | ||
OUT EFI_ACPI_DESCRIPTION_HEADER **CONST | Table | ||
) |
Construct the WSMT table.
This function invokes the Configuration Manager protocol interface to get the required information for generating the ACPI table.
If this function allocates any resources then they must be freed in the FreeXXXXTableResources function.
[in] | This | Pointer to the table generator. |
[in] | AcpiTableInfo | Pointer to the ACPI Table Info. |
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
[out] | Table | Pointer to the constructed ACPI Table. |
EFI_SUCCESS | Table generated successfully. |
EFI_INVALID_PARAMETER | A parameter is invalid. |
EFI_NOT_FOUND | The required object was not found. |
EFI_BAD_BUFFER_SIZE | The size returned by the Configuration Manager is less than the Object size for the requested object. |
Definition at line 147 of file WsmtGenerator.c.
GET_OBJECT_LIST | ( | EObjNameSpaceX64 | , |
EX64ObjWsmtFlagsInfo | , | ||
CM_X64_WSMT_FLAGS_INFO | |||
) |
This macro expands to a function that retrieves the WSMT protection flags information from the Configuration Manager.
STATIC EFI_STATUS EFIAPI WsmtAddProtectionFlagsInfo | ( | IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST | CfgMgrProtocol | ) |
Update the protection flags information in the WSMT Table.
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
EFI_SUCCESS | Success. |
EFI_INVALID_PARAMETER | A parameter is invalid. |
EFI_NOT_FOUND | The required object was not found. |
EFI_BAD_BUFFER_SIZE | The size returned by the Configuration Manager is less than the Object size for the requested object. |
EFI_UNSUPPORTED | If invalid protection flags provided. |
Definition at line 67 of file WsmtGenerator.c.
STATIC EFI_ACPI_WSMT_TABLE AcpiWsmt |
The ACPI WSMT Table.
Definition at line 41 of file WsmtGenerator.c.
STATIC CONST ACPI_TABLE_GENERATOR WsmtGenerator |
The interface for the WSMT Table Generator.
Definition at line 214 of file WsmtGenerator.c.