-#ifndef ROS_INC_MULTIBOOT_H
-#define ROS_INC_MULTIBOOT_H
+#pragma once
#include <ros/common.h>
{
/* Must be MULTIBOOT_MAGIC - see above. */
multiboot_uint32_t magic;
-
+
/* Feature flags. */
multiboot_uint32_t flags;
-
+
/* The above fields plus this one must equal 0 mod 2^32. */
multiboot_uint32_t checksum;
-
+
/* These are only valid if MULTIBOOT_AOUT_KLUDGE is set. */
multiboot_uint32_t header_addr;
multiboot_uint32_t load_addr;
multiboot_uint32_t load_end_addr;
multiboot_uint32_t bss_end_addr;
multiboot_uint32_t entry_addr;
-
+
/* These are only valid if MULTIBOOT_VIDEO_MODE is set. */
multiboot_uint32_t mode_type;
multiboot_uint32_t width;
{
/* Multiboot info version number */
multiboot_uint32_t flags;
-
+
/* Available memory from BIOS */
multiboot_uint32_t mem_lower;
multiboot_uint32_t mem_upper;
-
+
/* "root" partition */
multiboot_uint32_t boot_device;
-
+
/* Kernel command line */
multiboot_uint32_t cmdline;
-
+
/* Boot-Module list */
multiboot_uint32_t mods_count;
multiboot_uint32_t mods_addr;
-
+
union {
multiboot_aout_symbol_table_t aout_sym;
multiboot_elf_section_header_table_t elf_sec;
} u;
-
+
/* Memory Mapping buffer */
multiboot_uint32_t mmap_length;
multiboot_uint32_t mmap_addr;
-
+
/* Drive Info buffer */
multiboot_uint32_t drives_length;
multiboot_uint32_t drives_addr;
-
+
/* ROM configuration table */
multiboot_uint32_t config_table;
-
+
/* Boot Loader Name */
multiboot_uint32_t boot_loader_name;
-
+
/* APM table */
multiboot_uint32_t apm_table;
-
+
/* Video */
multiboot_uint32_t vbe_control_info;
multiboot_uint32_t vbe_mode_info;
/* the memory used goes from bytes 'mod_start' to 'mod_end-1' inclusive */
multiboot_uint32_t mod_start;
multiboot_uint32_t mod_end;
-
+
/* Module command line */
multiboot_uint32_t cmdline;
-
+
/* padding to take it to 16 bytes (must be zero) */
multiboot_uint32_t pad;
};
void *data);
bool mboot_region_collides(struct multiboot_info *mbi, uintptr_t base,
uintptr_t end);
-
-#endif /* !ROS_INC_MULTIBOOT_H */