types.hpp 685 B

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include <stdint.h>
  3. #include <cstddef>
  4. namespace kernel::mem {
  5. struct gdt_entry {
  6. uint64_t limit_low : 16;
  7. uint64_t base_low : 16;
  8. uint64_t base_mid : 8;
  9. uint64_t access : 8;
  10. uint64_t limit_high : 4;
  11. uint64_t flags : 4;
  12. uint64_t base_high : 8;
  13. };
  14. struct e820_mem_map_entry {
  15. uint64_t base;
  16. uint64_t len;
  17. uint32_t type;
  18. // might not be valid
  19. uint32_t acpi_extension_attr;
  20. };
  21. namespace info {
  22. inline std::size_t memory_size;
  23. inline std::size_t e820_entry_count;
  24. inline std::size_t e820_entry_length;
  25. inline e820_mem_map_entry e820_entries[(1024-16)/24];
  26. } // namespace info
  27. } // namespace kernel::mem