BootInfo.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) 2021, Gunnar Beutner <gbeutner@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <Kernel/Arch/x86/PageDirectory.h>
  8. #include <Kernel/Multiboot.h>
  9. #include <Kernel/PhysicalAddress.h>
  10. #include <Kernel/VirtualAddress.h>
  11. extern "C" PhysicalAddress start_of_prekernel_image;
  12. extern "C" PhysicalAddress end_of_prekernel_image;
  13. extern "C" size_t physical_to_virtual_offset;
  14. extern "C" FlatPtr kernel_mapping_base;
  15. extern "C" FlatPtr kernel_load_base;
  16. #if ARCH(X86_64)
  17. extern "C" u32 gdt64ptr;
  18. extern "C" u16 code64_sel;
  19. extern "C" PhysicalAddress boot_pml4t;
  20. #endif
  21. extern "C" PhysicalAddress boot_pdpt;
  22. extern "C" PhysicalAddress boot_pd0;
  23. extern "C" PhysicalAddress boot_pd_kernel;
  24. extern "C" Kernel::PageTableEntry* boot_pd_kernel_pt1023;
  25. extern "C" const char* kernel_cmdline;
  26. extern "C" u32 multiboot_flags;
  27. extern "C" multiboot_memory_map_t* multiboot_memory_map;
  28. extern "C" size_t multiboot_memory_map_count;
  29. extern "C" multiboot_module_entry_t* multiboot_modules;
  30. extern "C" size_t multiboot_modules_count;
  31. extern "C" PhysicalAddress multiboot_framebuffer_addr;
  32. extern "C" u32 multiboot_framebuffer_pitch;
  33. extern "C" u32 multiboot_framebuffer_width;
  34. extern "C" u32 multiboot_framebuffer_height;
  35. extern "C" u8 multiboot_framebuffer_bpp;
  36. extern "C" u8 multiboot_framebuffer_type;