diff options
| author | Ada Christine <adachristine18@gmail.com> | 2021-05-08 00:41:02 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2021-05-08 00:41:02 +0000 |
| commit | e9297816a8d59990cd7e73c34b9ad637df6fa14a (patch) | |
| tree | 6c2fa1e332a1b7cb4f6df30d04265d9ec698dcb8 /loader | |
| parent | 0a281099e571cc40d0632d32c4ec005c32b4d66d (diff) | |
minor boot data changes
Diffstat (limited to 'loader')
| -rw-r--r-- | loader/loader_efi.c | 16 |
1 files changed, 8 insertions, 8 deletions
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; } } |
