Fukurō
A highly portable microkernel
Loading...
Searching...
No Matches
multiboot.h
Go to the documentation of this file.
1#ifndef FUKURO_SYS_SYS_MULTIBOOT_H
2# define FUKURO_SYS_SYS_MULTIBOOT_H 1
4# define MULTIBOOT_HEADER_MAGIC 0x1BADB002
5# define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002
6
7# define MULTIBOOT_PAGE_ALIGN (1 << 0)
8# define MULTIBOOT_MEMORY_INFO (1 << 1)
9# define MULTIBOOT_VIDEO (1 << 2)
10
11# define MULTIBOOT_INFO_MEM (1 << 0)
12# define MULTIBOOT_INFO_BOOT_DEVICE (1 << 1)
13# define MULTIBOOT_INFO_CMDLINE (1 << 2)
14# define MULTIBOOT_INFO_MODS (1 << 3)
15# define MULTIBOOT_INFO_AOUT_SYMS (1 << 4)
16# define MULTIBOOT_INFO_AOUT_SHDR (1 << 5)
17# define MULTIBOOT_INFO_MMAP (1 << 6)
18# define MULTIBOOT_INFO_DRIVES (1 << 7)
19# define MULTIBOOT_INFO_CONFIG_TABLE (1 << 8)
20# define MULTIBOOT_INFO_BOOTLOADER_NAME (1 << 9)
21# define MULTIBOOT_INFO_APM_TABLE (1 << 10)
22# define MULTIBOOT_INFO_VBE (1 << 11)
23# define MULTIBOOT_INFO_FRAMEBUFFER (1 << 12)
24
25# ifndef __ASSEMBLER__
26
27# include <stdint.h>
28
30{
31 uint32_t tabsize;
32 uint32_t strsize;
33 uint32_t addr;
34 uint32_t reserved;
35};
36
38{
39 uint32_t num;
40 uint32_t size;
41 uint32_t addr;
42 uint32_t shndx;
43};
44
46{
47 uint32_t flags;
48 uint32_t mem_lower;
49 uint32_t mem_upper;
50 uint32_t boot_device;
51 uint32_t cmdline;
52 uint32_t mods_count;
53 uint32_t mods_addr;
54 union
55 {
58 } u;
59
60 uint32_t mmap_length;
61 uint32_t mmap_addr;
62 uint32_t drives_length;
63 uint32_t drives_addr;
64 uint32_t config_table;
66 uint32_t apm_table;
67
69 uint32_t vbe_mode_info;
70 uint16_t vbe_mode;
74
81};
82
84{
85 uint32_t size;
86 uint64_t addr;
87 uint64_t len;
88 uint32_t type;
89} __attribute__((packed));
90
91# define MULTIBOOT_MEMORY_AVAILABLE 1
92# define MULTIBOOT_MEMORY_RESERVED 2
93# define MULTIBOOT_MEMORY_ACPI 3
94# define MULTIBOOT_MEMORY_NVS 4
95# define MULTIBOOT_MEMORY_BADRAM 5
96
97# endif /* !__ASSEMBLER__ */
98
99#endif /* !FUKURO_SYS_SYS_MULTIBOOT_H */
struct multiboot_mmap_entry __attribute__((packed))
Definition asm.h:39
Definition multiboot.h:30
uint32_t tabsize
Definition multiboot.h:31
uint32_t reserved
Definition multiboot.h:34
uint32_t addr
Definition multiboot.h:33
uint32_t strsize
Definition multiboot.h:32
Definition multiboot.h:38
uint32_t shndx
Definition multiboot.h:42
uint32_t num
Definition multiboot.h:39
uint32_t size
Definition multiboot.h:40
uint32_t addr
Definition multiboot.h:41
Definition multiboot.h:84
uint64_t addr
Definition multiboot.h:86
uint32_t size
Definition multiboot.h:85
uint64_t len
Definition multiboot.h:87
uint32_t type
Definition multiboot.h:88
Definition multiboot.h:46
uint8_t framebuffer_type
Definition multiboot.h:80
uint32_t mods_count
Definition multiboot.h:52
uint32_t cmdline
Definition multiboot.h:51
uint16_t vbe_interface_len
Definition multiboot.h:73
uint32_t vbe_control_info
Definition multiboot.h:68
uint32_t boot_device
Definition multiboot.h:50
uint32_t vbe_mode_info
Definition multiboot.h:69
uint32_t drives_length
Definition multiboot.h:62
uint32_t apm_table
Definition multiboot.h:66
uint32_t mods_addr
Definition multiboot.h:53
uint32_t mem_lower
Definition multiboot.h:48
uint32_t mmap_length
Definition multiboot.h:60
uint8_t framebuffer_bpp
Definition multiboot.h:79
uint32_t flags
Definition multiboot.h:47
uint32_t drives_addr
Definition multiboot.h:63
struct multiboot_aout_symbole_table aout_sym
Definition multiboot.h:56
uint32_t bootloader_name
Definition multiboot.h:65
uint32_t mmap_addr
Definition multiboot.h:61
union multiboot::@1 u
uint16_t vbe_interface_seg
Definition multiboot.h:71
uint64_t framebuffer_addr
Definition multiboot.h:75
uint16_t vbe_interface_off
Definition multiboot.h:72
uint32_t framebuffer_width
Definition multiboot.h:77
uint16_t vbe_mode
Definition multiboot.h:70
uint32_t framebuffer_pitch
Definition multiboot.h:76
uint32_t framebuffer_height
Definition multiboot.h:78
uint32_t mem_upper
Definition multiboot.h:49
uint32_t config_table
Definition multiboot.h:64
struct multiboot_elf_section_header_table elf_sec
Definition multiboot.h:57