]> git.buserror.net Git - polintos/scott/priv.git/blob - kernel/include/arch-x86-common/multiboot.h
Initial checkin from Perforce.
[polintos/scott/priv.git] / kernel / include / arch-x86-common / multiboot.h
1 #ifndef _ARCH_X86C_MULTIBOOT_H
2 #define _ARCH_X86C_MULTIBOOT_H
3
4 #include <kern/types.h>
5
6 namespace Arch {
7 namespace Priv {
8 namespace MultiBoot {
9         struct BootInfo {
10                 enum {
11                         flag_mem,
12                         flag_boot_dev,
13                         flag_cmdline,
14                         flag_modules,
15                         flag_aout_syms,
16                         flag_elf_syms,
17                         flag_mmap,
18                         flag_drives,
19                         flag_config,
20                         flag_bootloader_name,
21                         flag_apm,
22                         flag_vbe
23                 };
24         
25                 u32 flags;
26                 u32 mem_lower, mem_upper;
27                 u32 boot_device;
28                 u32 cmdline;
29                 u32 mods_count, mods_addr;
30                 union {
31                         struct {
32                                 u32 tabsize;
33                                 u32 strsize;
34                                 u32 addr;
35                                 u32 reserved;
36                         } aout;
37                         struct {
38                                 u32 num, size, addr, shndx;
39                         } elf;
40                 };
41                 u32 mmap_length, mmap_addr;
42         };
43                 
44         struct Module {
45                 u32 start, end;
46                 u32 str;
47                 u32 reserved;
48         };
49         
50         struct MemMap {
51                 u32 size;
52                 u64 base;
53                 u64 len;
54
55                 // Possible values for type:
56                 enum {
57                         Available = 1,
58                         Reserved,
59                         ACPIReclaim,
60                         ACPINVS
61                 };
62
63                 u32 type;
64         } __attribute__((packed));
65         
66         void process_info();
67 }
68 }
69 }
70
71 #endif