]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/IA32_flat_GCC_Galileo_Gen_2/Support_Files/multiboot.h
commit 9f316c246baafa15c542a5aea81a94f26e3d6507
[freertos] / FreeRTOS / Demo / IA32_flat_GCC_Galileo_Gen_2 / Support_Files / multiboot.h
1 /*\r
2  * Multiboot OS definitions and structures.\r
3  */\r
4 \r
5 #ifndef _MULTIBOOT_H_\r
6 #define _MULTIBOOT_H_\r
7 \r
8 #define MULTIBOOT_HEADER_MAGIC          0x1BADB002\r
9 #define MULTIBOOT_HEADER_FLAGS          0x00010003\r
10 #define MULTIBOOT_BOOTLOADER_MAGIC      0x2BADB002\r
11 \r
12 typedef unsigned long t_32 ;\r
13 \r
14 typedef struct multiboot_header\r
15  {\r
16         t_32 Magic;\r
17         t_32 flags;\r
18         t_32 checksum;\r
19         t_32 header_addr;\r
20         t_32 load_addr;\r
21         t_32 load_end_addr;\r
22         t_32 bss_end_addr;\r
23         t_32 entry_addr;\r
24         t_32 video_mode;\r
25         t_32 width;\r
26         t_32 height;\r
27         t_32 depth;\r
28 } multiboot_header_t;\r
29 \r
30 /* Symbol table for a.out. */\r
31 typedef struct aout_symbol_table\r
32 {\r
33         t_32 tabsize;\r
34         t_32 strsize;\r
35         t_32 addr;\r
36         t_32 reserved;\r
37 } aout_symbol_table_t;\r
38 \r
39 /* Section header table for ELF. */\r
40 typedef struct elf_section_header_table\r
41 {\r
42         t_32 num;\r
43         t_32 size;\r
44         t_32 addr;\r
45         t_32 shndx;\r
46 } elf_section_header_table_t;\r
47 \r
48 /* Multiboot information. */\r
49 typedef struct multiboot_info\r
50 {\r
51         t_32 flags;\r
52         t_32 mem_lower;\r
53         t_32 mem_upper;\r
54         t_32 boot_device;\r
55         t_32 cmdline;\r
56         t_32 mods_count;\r
57         t_32 mods_addr;\r
58         union\r
59         {\r
60                 aout_symbol_table_t aout_sym;\r
61             elf_section_header_table_t elf_sec;\r
62         } u;\r
63         t_32 mmap_length;\r
64         t_32 mmap_addr;\r
65 } multiboot_info_t;\r
66 \r
67 /* Module structure. */\r
68 typedef struct module\r
69 {\r
70         t_32 mod_start;\r
71         t_32 mod_end;\r
72         t_32 string;\r
73         t_32 reserved;\r
74 } module_t;\r
75 \r
76 /* Memory map. Offset 0 is base_addr_low -no size. */\r
77 typedef struct memory_map\r
78 {\r
79         t_32 size;\r
80         t_32 base_addr_low;\r
81         t_32 base_addr_high;\r
82         t_32 length_low;\r
83         t_32 length_high;\r
84         t_32 type;\r
85 } memory_map_t;\r
86 \r
87 #define CHECK_FLAG(flags,bit)    ((flags) & (1 << (bit)))\r
88 \r
89 #endif /* _MULTIBOOT_H_ */\r