Annotation of qemu/roms/openbios/arch/x86/multiboot.h, revision 1.1.1.1

1.1       root        1: /* multiboot.h
                      2:  * tag: header for multiboot
                      3:  *
                      4:  * Copyright (C) 2003 Stefan Reinauer
                      5:  *
                      6:  * See the file "COPYING" for further information about
                      7:  * the copyright and warranty status of this work.
                      8:  */
                      9: 
                     10: /* magic number for multiboot header */
                     11: #define MULTIBOOT_HEADER_MAGIC         0x1BADB002
                     12: 
                     13: /* flags for multiboot header */
                     14: #define MULTIBOOT_HEADER_FLAGS         0x00010003
                     15: 
                     16: /* magic number passed by multiboot-compliant boot loader.  */
                     17: #define MULTIBOOT_BOOTLOADER_MAGIC     0x2BADB002
                     18: 
                     19: /* The size of our stack (8KB).  */
                     20: #define STACK_SIZE                     0x2000
                     21: 
                     22: /* C symbol format. HAVE_ASM_USCORE is defined by configure.  */
                     23: #ifdef HAVE_ASM_USCORE
                     24: # define EXT_C(sym)                    _ ## sym
                     25: #else
                     26: # define EXT_C(sym)                    sym
                     27: #endif
                     28: 
                     29: #ifndef ASM
                     30: /* We don't want these declarations in boot.S  */
                     31: 
                     32: /* multiboot header */
                     33: typedef struct multiboot_header {
                     34:        unsigned long magic;
                     35:        unsigned long flags;
                     36:        unsigned long checksum;
                     37:        unsigned long header_addr;
                     38:        unsigned long load_addr;
                     39:        unsigned long load_end_addr;
                     40:        unsigned long bss_end_addr;
                     41:        unsigned long entry_addr;
                     42: } multiboot_header_t;
                     43: 
                     44: /* symbol table for a.out */
                     45: typedef struct aout_symbol_table {
                     46:        unsigned long tabsize;
                     47:        unsigned long strsize;
                     48:        unsigned long addr;
                     49:        unsigned long reserved;
                     50: } aout_symbol_table_t;
                     51: 
                     52: /* section header table for ELF */
                     53: typedef struct elf_section_header_table {
                     54:        unsigned long num;
                     55:        unsigned long size;
                     56:        unsigned long addr;
                     57:        unsigned long shndx;
                     58: } elf_section_header_table_t;
                     59: 
                     60: /* multiboot information */
                     61: typedef struct multiboot_info {
                     62:        unsigned long flags;
                     63:        unsigned long mem_lower;
                     64:        unsigned long mem_upper;
                     65:        unsigned long boot_device;
                     66:        unsigned long cmdline;
                     67:        unsigned long mods_count;
                     68:        unsigned long mods_addr;
                     69:        union {
                     70:                aout_symbol_table_t aout_sym;
                     71:                elf_section_header_table_t elf_sec;
                     72:        } u;
                     73:        unsigned long mmap_length;
                     74:        unsigned long mmap_addr;
                     75: } multiboot_info_t;
                     76: 
                     77: /* module structure */
                     78: typedef struct module {
                     79:        unsigned long mod_start;
                     80:        unsigned long mod_end;
                     81:        unsigned long string;
                     82:        unsigned long reserved;
                     83: } module_t;
                     84: 
                     85: /* memory map. Be careful that the offset 0 is base_addr_low
                     86:    but no size.  */
                     87: typedef struct memory_map {
                     88:        unsigned long size;
                     89:        unsigned long base_addr_low;
                     90:        unsigned long base_addr_high;
                     91:        unsigned long length_low;
                     92:        unsigned long length_high;
                     93:        unsigned long type;
                     94: } memory_map_t;
                     95: 
                     96: #endif                         /* ! ASM */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.