TianoCore EDK2 master
|
#include <Library/AcpiLib.h>
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Protocol/AcpiTable.h>
#include <AcpiTableGenerator.h>
#include <ConfigurationManagerObject.h>
#include <ConfigurationManagerHelper.h>
#include <Library/TableHelperLib.h>
#include <Protocol/ConfigurationManagerProtocol.h>
#include "SratGenerator.h"
Go to the source code of this file.
Data Structures | |
struct | SratSubTable |
Typedefs | |
typedef enum ArmSratSubTableType | EARM_SRAT_SUB_TABLE_TYPE |
typedef struct SratSubTable | SRAT_SUB_TABLE |
Enumerations | |
enum | ArmSratSubTableType { EArmGicCSubTableType , EArmGicItsSubTableType , EArmSubTableTypeMax } |
Functions | |
GET_OBJECT_LIST (EObjNameSpaceArm, EArmObjGicCInfo, CM_ARM_GICC_INFO) | |
GET_OBJECT_LIST (EObjNameSpaceArm, EArmObjGicItsInfo, CM_ARM_GIC_ITS_INFO) | |
EFI_STATUS EFIAPI | ArchReserveOffsets (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN OUT UINT32 *ArchOffset) |
STATIC VOID EFIAPI | AddGICCAffinity (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER *CONST Srat) |
STATIC VOID EFIAPI | AddGICItsAffinity (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER *CONST Srat) |
EFI_STATUS EFIAPI | AddArchObjects (IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER *CONST Srat) |
Variables | |
STATIC SRAT_SUB_TABLE | mSratSubTable [EArmSubTableTypeMax] |
Arm SRAT Table Generator
Copyright (c) 2019 - 2020, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file ArmSratGenerator.c.
typedef enum ArmSratSubTableType EARM_SRAT_SUB_TABLE_TYPE |
Enum of the Arm specific CM objects required to build the arch specific information of the SRAT table.
enum ArmSratSubTableType |
Enum of the Arm specific CM objects required to build the arch specific information of the SRAT table.
Definition at line 61 of file ArmSratGenerator.c.
EFI_STATUS EFIAPI AddArchObjects | ( | IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST | CfgMgrProtocol, |
IN EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER *CONST | Srat | ||
) |
Add the arch specific sub-tables to the SRAT table.
These sub-tables are written in the space reserved beforehand.
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
[in] | Srat | Pointer to the SRAT Table. |
EFI_SUCCESS | Table generated successfully. |
Definition at line 247 of file ArmSratGenerator.c.
STATIC VOID EFIAPI AddGICCAffinity | ( | IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST | CfgMgrProtocol, |
IN EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER *CONST | Srat | ||
) |
Add the GICC Affinity Structures in the SRAT Table.
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
[in] | Srat | Pointer to the SRAT Table. |
Definition at line 170 of file ArmSratGenerator.c.
STATIC VOID EFIAPI AddGICItsAffinity | ( | IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST | CfgMgrProtocol, |
IN EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER *CONST | Srat | ||
) |
Add the GIC ITS Affinity Structures in the SRAT Table.
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
[in] | Srat | Pointer to the SRAT Table. |
Definition at line 207 of file ArmSratGenerator.c.
EFI_STATUS EFIAPI ArchReserveOffsets | ( | IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST | CfgMgrProtocol, |
IN OUT UINT32 * | ArchOffset | ||
) |
Reserve arch sub-tables space.
[in] | CfgMgrProtocol | Pointer to the Configuration Manager |
[in,out] | ArchOffset | On input, contains the offset where arch specific sub-tables can be written. It is expected that there enough space to write all the arch specific sub-tables from this offset onward. On ouput, contains the ending offset of the arch specific sub-tables. |
EFI_SUCCESS | Table generated successfully. |
EFI_INVALID_PARAMETER | A parameter is invalid. |
EFI_NOT_FOUND | The required object information is 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 99 of file ArmSratGenerator.c.
GET_OBJECT_LIST | ( | EObjNameSpaceArm | , |
EArmObjGicCInfo | , | ||
CM_ARM_GICC_INFO | |||
) |
GET_OBJECT_LIST | ( | EObjNameSpaceArm | , |
EArmObjGicItsInfo | , | ||
CM_ARM_GIC_ITS_INFO | |||
) |
This macro expands to a function that retrieves the GIC Interrupt Translation Service Information from the Configuration Manager.
STATIC SRAT_SUB_TABLE mSratSubTable[EArmSubTableTypeMax] |
Definition at line 78 of file ArmSratGenerator.c.