Files
ladybird/Kernel/Prekernel/Prekernel.h
Gunnar Beutner 3c616ae00f Kernel: Make the kernel independent from specific physical addresses
Previously the kernel relied on a fixed offset between virtual and
physical addresses based on the kernel's load address. This allows us
to specify an independent offset.
2021-07-27 13:15:16 +02:00

39 lines
747 B
C++

/*
* Copyright (c) 2021, Gunnar Beutner <gbeutner@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#ifdef __cplusplus
# include <Kernel/Multiboot.h>
# include <Kernel/PhysicalAddress.h>
# include <Kernel/VirtualAddress.h>
#endif
#define MAX_KERNEL_SIZE 0x3000000
#ifdef __cplusplus
namespace Kernel {
struct [[gnu::packed]] BootInfo {
u32 start_of_prekernel_image;
u32 end_of_prekernel_image;
u64 physical_to_virtual_offset;
u64 kernel_base;
u64 multiboot_info_ptr;
# if ARCH(X86_64)
u32 gdt64ptr;
u16 code64_sel;
u32 boot_pml4t;
# endif
u32 boot_pdpt;
u32 boot_pd0;
u32 boot_pd_kernel;
u64 boot_pd_kernel_pt1023;
u64 kernel_cmdline;
};
}
#endif