Added files with basic definitions of KPC (kernel process communication).
[kernel.git] / inc / multiboot.h
blob8967be31af7c1ff766241ca9b4f241c9c5b0f3f4
1 //Multiboot structures and functions
3 #ifndef __KERNEL__MULTIBOOT___HEADER____
4 #define __KERNEL__MULTIBOOT___HEADER____
6 #include "types.h"
11 /** multiboot structures **/
12 typedef struct
14 UINT tabsize;
15 UINT strsize;
16 UINT addr;
17 UINT reserved;
18 } aout_symbol_table;
20 typedef struct
22 UINT num;
23 UINT size;
24 UINT addr;
25 UINT shndx;
26 } elf_section_header_table;
30 typedef struct
32 UINT flags;
33 UINT mem_lower;
34 UINT mem_upper;
35 UINT boot_device;
36 UINT cmdline;
37 UINT mods_count;
38 UINT mods_addr;
39 union
41 aout_symbol_table aout_sym;
42 elf_section_header_table elf_sec;
43 } u;
44 UINT mmap_length;
45 UINT mmap_addr;
46 UINT drives_length;
47 UINT drives_addr;
48 UINT config_table;
49 UINT boot_loader_name;
50 UINT apm_table;
51 //here could be more
52 } multiboot_info;
58 typedef struct
60 UINT size;
61 UINT64 base_addr;
62 UINT64 length;
63 UINT type;
64 } multiboot_memory_map;
71 /**functions to handle multiboot info **/
72 extern INT8 read_mboot_info (UINT, UINT *);
75 extern UINT mboot_get_memsize_kbytes (void);
76 extern UINT mboot_get_mmap_length (void);
77 extern UINT mboot_get_mmap_add (void);
83 #endif //(__KERNEL__MULTIBOOT___HEADER____)