/[hurd]/hurd-l4/laden/multiboot.h
ViewVC logotype

Diff of /hurd-l4/laden/multiboot.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by marcus, Sat Jul 26 17:26:09 2003 UTC revision 1.2 by marcus, Thu Sep 4 01:29:35 2003 UTC
# Line 15  Line 15 
15     along with this program; if not, write to the Free Software     along with this program; if not, write to the Free Software
16     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
17    
18    
19  /* Macros.  */  /* Macros.  */
20    
21  /* The magic number for the Multiboot header.  */  /* The magic number for the Multiboot header.  */
# Line 35  Line 36 
36    
37  /* Types.  */  /* Types.  */
38    
39    #include <sys/types.h>
40    
41  /* The Multiboot header.  */  /* The Multiboot header.  */
42  typedef struct multiboot_header  typedef struct multiboot_header
43  {  {
44    unsigned long magic;    uint32_t magic;
45    unsigned long flags;    uint32_t flags;
46    unsigned long checksum;    uint32_t checksum;
47    unsigned long header_addr;    uint32_t header_addr;
48    unsigned long load_addr;    uint32_t load_addr;
49    unsigned long load_end_addr;    uint32_t load_end_addr;
50    unsigned long bss_end_addr;    uint32_t bss_end_addr;
51    unsigned long entry_addr;    uint32_t entry_addr;
52  } multiboot_header_t;  } multiboot_header_t;
53    
54  /* The symbol table for a.out.  */  /* The symbol table for a.out.  */
55  typedef struct aout_symbol_table  typedef struct aout_symbol_table
56  {  {
57    unsigned long tabsize;    uint32_t tabsize;
58    unsigned long strsize;    uint32_t strsize;
59    unsigned long addr;    uint32_t addr;
60    unsigned long reserved;    uint32_t reserved;
61  } aout_symbol_table_t;  } aout_symbol_table_t;
62    
63  /* The section header table for ELF.  */  /* The section header table for ELF.  */
64  typedef struct elf_section_header_table  typedef struct elf_section_header_table
65  {  {
66    unsigned long num;    uint32_t num;
67    unsigned long size;    uint32_t size;
68    unsigned long addr;    uint32_t addr;
69    unsigned long shndx;    uint32_t shndx;
70  } elf_section_header_table_t;  } elf_section_header_table_t;
71    
72  /* The Multiboot information.  */  /* The Multiboot information.  */
73  typedef struct multiboot_info  typedef struct multiboot_info
74  {  {
75    unsigned long flags;    uint32_t flags;
76    unsigned long mem_lower;    uint32_t mem_lower;
77    unsigned long mem_upper;    uint32_t mem_upper;
78    unsigned long boot_device;    uint32_t boot_device;
79    unsigned long cmdline;    uint32_t cmdline;
80    unsigned long mods_count;    uint32_t mods_count;
81    unsigned long mods_addr;    uint32_t mods_addr;
82    union    union
83    {    {
84      aout_symbol_table_t aout_sym;      aout_symbol_table_t aout_sym;
85      elf_section_header_table_t elf_sec;      elf_section_header_table_t elf_sec;
86    } u;    } u;
87    unsigned long mmap_length;    uint32_t mmap_length;
88    unsigned long mmap_addr;    uint32_t mmap_addr;
89    unsigned long drives_length;    uint32_t drives_length;
90    unsigned long drives_addr;    uint32_t drives_addr;
91    unsigned long config_table;    uint32_t config_table;
92    unsigned long boot_loader_name;    uint32_t boot_loader_name;
93    unsigned long apm_table;    uint32_t apm_table;
94    unsigned long vbe_control_info;    uint32_t vbe_control_info;
95    unsigned long vbe_mode_info;    uint32_t vbe_mode_info;
96    unsigned long vbe_mode;    uint32_t vbe_mode;
97    unsigned long vbe_interface_seg;    uint32_t vbe_interface_seg;
98    unsigned long vbe_interface_off;    uint32_t vbe_interface_off;
99    unsigned long vbe_interface_len;    uint32_t vbe_interface_len;
100  } multiboot_info_t;  } multiboot_info_t;
101    
102  /* The module structure.  */  /* The module structure.  */
103  typedef struct module  typedef struct module
104  {  {
105    unsigned long mod_start;    uint32_t mod_start;
106    unsigned long mod_end;    uint32_t mod_end;
107    unsigned long string;    uint32_t string;
108    unsigned long reserved;    uint32_t reserved;
109  } module_t;  } module_t;
110    
111  /* The memory map. Be careful that the offset 0 is base_addr_low  /* The memory map.  SIZE is the size of the structure except for the
112     but no size.  */     SIZE field itself.  */
113  typedef struct memory_map  typedef struct memory_map
114  {  {
115    unsigned long size;    uint32_t size;
116    unsigned long base_addr_low;    uint64_t base_addr;
117    unsigned long base_addr_high;    uint64_t length;
118    unsigned long length_low;    uint32_t type;
   unsigned long length_high;  
   unsigned long type;  
119  } memory_map_t;  } memory_map_t;
120    
121  #endif /* ! ASM */  #endif /* ! ASM */

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26