/** * @file kmultiboot.h * @brief Kernel Multiboot * @details Data needed for multiboot compatibility. */ #ifndef KMULTIBOOT_H #define KMULTIBOOT_H #include /** * @brief */ typedef struct multiboot_mmap_entry { uint32_t entry_size; /**< @brief size of this struct entry */ uint64_t addr; /**< @brief physical location of memory */ uint64_t mem_size; /**< @brief size of the memory block */ uint32_t type; /**< @brief */ } __attribute__((packed)) mb_mmap_entry_t; /** * @brief */ typedef struct mb_info_s { uint32_t flags; /**< @brief */ uint32_t mem_lower; /**< @brief */ uint32_t mem_upper; /**< @brief */ uint32_t boot_device; /**< @brief */ uint32_t cmdline; /**< @brief */ uint32_t mods_count; /**< @brief */ uint32_t mods_addr; /**< @brief */ uint32_t syms[4]; /**< @brief */ uint32_t mmap_length; /**< @brief */ uint32_t mmap_addr; /**< @brief */ } mb_info_t; /** * @brief */ extern uint8_t _kernel_start; /** * @brief */ extern uint8_t _kernel_end; #endif