boot.h 667 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include <types/stdint.h>
  3. struct gdt_descriptor {
  4. uint16_t size;
  5. uint32_t address;
  6. };
  7. extern struct gdt_descriptor asm_gdt_descriptor;
  8. extern uint32_t check_a20_on(void);
  9. struct e820_mem_map_entry_20 {
  10. uint64_t base;
  11. uint64_t len;
  12. uint32_t type;
  13. };
  14. struct e820_mem_map_entry_24 {
  15. struct e820_mem_map_entry_20 in;
  16. uint32_t acpi_extension_attr;
  17. };
  18. extern uint8_t asm_e820_mem_map[1024];
  19. extern uint32_t asm_e820_mem_map_count;
  20. extern uint32_t asm_e820_mem_map_entry_size;
  21. #define e820_mem_map_20 ((struct e820_mem_map_entry_20*)asm_e820_mem_map)
  22. #define e820_mem_map_24 ((struct e820_mem_map_entry_24*)asm_e820_mem_map)