00001 /*! \file include/kernel/multiboot.h 00002 * \brief Multiboot information (required from GRUB). 00003 * \author Andrea Righi <drizzt@inwind.it> 00004 * \date Last update: 2003-11-09 00005 * \note Copyright (©) 2003 Andrea Righi 00006 */ 00007 00008 #ifndef MULTIBOOT_H 00009 #define MULTIBOOT_H 00010 00011 //! The symbol table for a.out format. 00012 typedef struct { 00013 unsigned long tab_size; 00014 unsigned long str_size; 00015 unsigned long address; 00016 unsigned long reserved; 00017 } 00018 aout_symbol_table_t; 00019 00020 //! The section header table for ELF format. 00021 typedef struct { 00022 unsigned long num; 00023 unsigned long size; 00024 unsigned long address; 00025 unsigned long shndx; 00026 } 00027 elf_section_header_table_t; 00028 00029 //! The multiboot informations. 00030 typedef struct multiboot_info 00031 { 00032 unsigned long flags; 00033 unsigned long mem_lower; 00034 unsigned long mem_upper; 00035 unsigned long boot_device; 00036 unsigned long cmdline; 00037 unsigned long mods_addr; 00038 union 00039 { 00040 aout_symbol_table_t aout_sym_t; 00041 elf_section_header_table_t elf_sec_t; 00042 } u; 00043 unsigned long mmap_length; 00044 unsigned long mmap_addr; 00045 } multiboot_info_t; 00046 00047 #endif