TacOS  0.2
 Tout Structures de données Fichiers Fonctions Variables Définitions de type Énumérations Macros
multiboot.h
Aller à la documentation de ce fichier.
1 
29 #ifndef MULTIBOOT_HEADER
30 #define MULTIBOOT_HEADER 1
31 
35 #define MULTIBOOT_SEARCH 8192
36 
40 #define MULTIBOOT_HEADER_MAGIC 0x1BADB002
41 
45 #define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002
46 
50 #define MULTIBOOT_UNSUPPORTED 0x0000fffc
51 
55 #define MULTIBOOT_MOD_ALIGN 0x00001000
56 
60 #define MULTIBOOT_INFO_ALIGN 0x00000004
61 
69 #define MULTIBOOT_PAGE_ALIGN 0x00000001
70 
74 #define MULTIBOOT_MEMORY_INFO 0x00000002
75 
79 #define MULTIBOOT_VIDEO_MODE 0x00000004
80 
84 #define MULTIBOOT_AOUT_KLUDGE 0x00010000
85 
86 /* Flags to be set in the 'flags' member of the multiboot info structure. */
87 
91 #define MULTIBOOT_INFO_MEMORY 0x00000001
92 
95 #define MULTIBOOT_INFO_BOOTDEV 0x00000002
96 
99 #define MULTIBOOT_INFO_CMDLINE 0x00000004
100 
103 #define MULTIBOOT_INFO_MODS 0x00000008
104 
105 /* These next two are mutually exclusive */
106 
110 #define MULTIBOOT_INFO_AOUT_SYMS 0x00000010
111 
114 #define MULTIBOOT_INFO_ELF_SHDR 0X00000020
115 
119 #define MULTIBOOT_INFO_MEM_MAP 0x00000040
120 
124 #define MULTIBOOT_INFO_DRIVE_INFO 0x00000080
125 
129 #define MULTIBOOT_INFO_CONFIG_TABLE 0x00000100
130 
134 #define MULTIBOOT_INFO_BOOT_LOADER_NAME 0x00000200
135 
139 #define MULTIBOOT_INFO_APM_TABLE 0x00000400
140 
144 #define MULTIBOOT_INFO_VIDEO_INFO 0x00000800
145 
146 #ifndef ASM_FILE
147 
148 typedef unsigned short multiboot_uint16_t;
149 typedef unsigned int multiboot_uint32_t;
150 typedef unsigned long long multiboot_uint64_t;
151 
153 {
154  multiboot_uint32_t magic;
156  multiboot_uint32_t flags;
161  multiboot_uint32_t checksum;
162 
166  multiboot_uint32_t header_addr;
167  multiboot_uint32_t load_addr;
168  multiboot_uint32_t load_end_addr;
169  multiboot_uint32_t bss_end_addr;
170  multiboot_uint32_t entry_addr;
171 
175  multiboot_uint32_t mode_type;
176  multiboot_uint32_t width;
177  multiboot_uint32_t height;
178  multiboot_uint32_t depth;
179 };
180 
185 {
186  multiboot_uint32_t tabsize;
187  multiboot_uint32_t strsize;
188  multiboot_uint32_t addr;
189  multiboot_uint32_t reserved;
190 };
192 
197 {
198  multiboot_uint32_t num;
199  multiboot_uint32_t size;
200  multiboot_uint32_t addr;
201  multiboot_uint32_t shndx;
202 };
204 
206 {
207  multiboot_uint32_t flags;
209  /* Available memory from BIOS */
210  multiboot_uint32_t mem_lower;
211  multiboot_uint32_t mem_upper;
212 
213  multiboot_uint32_t boot_device;
215  multiboot_uint32_t cmdline;
220  multiboot_uint32_t mods_count;
221  multiboot_uint32_t mods_addr;
222 
223  union
224  {
227  } syms;
228 
232  multiboot_uint32_t mmap_length;
233  multiboot_uint32_t mmap_addr;
234 
238  multiboot_uint32_t drives_length;
239  multiboot_uint32_t drives_addr;
240 
241  multiboot_uint32_t config_table;
243  multiboot_uint32_t boot_loader_name;
245  multiboot_uint32_t apm_table;
250  multiboot_uint32_t vbe_control_info;
251  multiboot_uint32_t vbe_mode_info;
252  multiboot_uint16_t vbe_mode;
253  multiboot_uint16_t vbe_interface_seg;
254  multiboot_uint16_t vbe_interface_off;
255  multiboot_uint16_t vbe_interface_len;
256 };
257 typedef struct multiboot_info multiboot_info_t;
258 
260 {
261  multiboot_uint32_t size;
262  multiboot_uint64_t addr;
263  multiboot_uint64_t len;
264  #define MULTIBOOT_MEMORY_AVAILABLE 1
265  #define MULTIBOOT_MEMORY_RESERVED 2
266  multiboot_uint32_t type;
267 } __attribute__((packed));
269 
271 {
272  /* the memory used goes from bytes 'mod_start' to 'mod_end-1' inclusive */
273  multiboot_uint32_t mod_start;
274  multiboot_uint32_t mod_end;
275 
276  multiboot_uint32_t cmdline;
278  multiboot_uint32_t pad;
279 };
281 
282 #endif /* ! ASM_FILE */
283 
284 #endif /* ! MULTIBOOT_HEADER */
285 
Definition: multiboot.h:184
multiboot_uint32_t boot_loader_name
Definition: multiboot.h:243
multiboot_uint32_t checksum
Definition: multiboot.h:161
Definition: multiboot.h:270
Definition: multiboot.h:205
multiboot_uint32_t magic
Definition: multiboot.h:154
multiboot_uint32_t header_addr
Definition: multiboot.h:166
multiboot_uint32_t pad
Definition: multiboot.h:278
multiboot_uint32_t apm_table
Definition: multiboot.h:245
multiboot_uint32_t drives_length
Definition: multiboot.h:238
multiboot_uint32_t flags
Definition: multiboot.h:156
multiboot_uint32_t boot_device
Definition: multiboot.h:213
multiboot_uint32_t flags
Definition: multiboot.h:207
Definition: multiboot.h:196
multiboot_uint32_t cmdline
Definition: multiboot.h:215
multiboot_uint32_t mode_type
Definition: multiboot.h:175
multiboot_uint32_t mods_count
Definition: multiboot.h:220
Definition: multiboot.h:259
multiboot_uint32_t cmdline
Definition: multiboot.h:276
multiboot_uint32_t config_table
Definition: multiboot.h:241
multiboot_uint32_t vbe_control_info
Definition: multiboot.h:250
multiboot_uint32_t mmap_length
Definition: multiboot.h:232
Definition: multiboot.h:152