From e9297816a8d59990cd7e73c34b9ad637df6fa14a Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Sat, 8 May 2021 00:41:02 +0000 Subject: minor boot data changes --- loader/loader_efi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'loader') diff --git a/loader/loader_efi.c b/loader/loader_efi.c index 617e924..35daedc 100644 --- a/loader/loader_efi.c +++ b/loader/loader_efi.c @@ -9,7 +9,7 @@ static struct system_image *kernel_image = NULL; static struct efi_memory_map_data *get_memory_map_data(void); static struct efi_framebuffer_data *get_framebuffer_data(void); -static void *get_acpi_rsdp(void); +static void *get_acpi_data(void); noreturn static void enter_kernel() { @@ -26,8 +26,8 @@ noreturn static void enter_kernel() DATA_PAGE_TYPE); data.system_table = e_st; + data.acpi = get_acpi_data(); data.framebuffer = get_framebuffer_data(); - data.acpi_rsdp = get_acpi_rsdp(); data.memory_map = get_memory_map_data(); EFI_STATUS status = e_bs->ExitBootServices(e_image_handle, @@ -162,18 +162,18 @@ static struct efi_framebuffer_data *get_framebuffer_data(void) return framebuffer; } -static void *get_acpi_rsdp(void) +static void *get_acpi_data(void) { + struct efi_acpi_data *acpi = efi_allocate(sizeof(*acpi)); + EFI_GUID acpi_20_guid = ACPI_20_TABLE_GUID; - for (UINTN i = 0; i < e_st->NumberOfTableEntries; i++) + for (UINTN i = 0; acpi && i < e_st->NumberOfTableEntries; i++) { if (!CompareGuid(&acpi_20_guid, &e_st->ConfigurationTable[i].VendorGuid)) { - Print(L"acpi rsdp: 0x%16.0lx\r\n", - e_st->ConfigurationTable[i].VendorTable); - - return e_st->ConfigurationTable[i].VendorTable; + acpi->rsdp = e_st->ConfigurationTable[i].VendorTable; + return acpi; } } -- cgit v1.3.1-1-g115d