Implement BlGetRandomValue() and BlInitializeEntropy() routines for future KASLR support

This commit is contained in:
2024-02-26 23:06:44 +01:00
parent f9714a79e4
commit 632bb30b64
4 changed files with 83 additions and 0 deletions

View File

@@ -68,8 +68,10 @@ typedef EFI_STATUS (*PBL_GET_CONFIGURATION_TABLE)(IN PEFI_GUID TableGuid, OUT PV
typedef VOID (*PBL_GET_MAPPINGS_COUNT)(IN PXTBL_PAGE_MAPPING PageMap, OUT PULONG NumberOfMappings);
typedef EFI_STATUS (*PBL_GET_MEMORY_MAP)(OUT PEFI_MEMORY_MAP MemoryMap);
typedef PLIST_ENTRY (*PBL_GET_MODULES_LIST)();
typedef ULONGLONG (*PBL_GET_RANDOM_VALUE)(IN OUT PULONGLONG RNGBuffer);
typedef INT_PTR (*PBL_GET_SECURE_BOOT_STATUS)();
typedef PVOID (*PBL_GET_VIRTUAL_ADDRESS)(IN PXTBL_PAGE_MAPPING PageMap, IN PVOID PhysicalAddress);
typedef EFI_STATUS (*PBL_INITIALIZE_ENTROPY)(PULONGLONG RNGBuffer);
typedef VOID (*PBL_INITIALIZE_PAGE_MAP)(OUT PXTBL_PAGE_MAPPING PageMap, IN SHORT PageMapLevel, IN PAGE_SIZE PageSize);
typedef EFI_STATUS (*PBL_INSTALL_XT_PROTOCOL)(IN PVOID Interface, IN PEFI_GUID Guid);
typedef EFI_STATUS (*PBL_INVOKE_BOOT_PROTOCOL)(IN PLIST_ENTRY OptionsList);
@@ -375,7 +377,9 @@ typedef struct _XTBL_LOADER_PROTOCOL
{
PBL_EXIT_BOOT_SERVICES ExitBootServices;
PBL_GET_CONFIGURATION_TABLE GetConfigurationTable;
PBL_GET_RANDOM_VALUE GetRandomValue;
PBL_GET_SECURE_BOOT_STATUS GetSecureBootStatus;
PBL_INITIALIZE_ENTROPY InitializeEntropy;
PBL_LOAD_EFI_IMAGE LoadEfiImage;
PBL_POWER_SYSTEM RebootSystem;
PBL_POWER_SYSTEM ShutdownSystem;