Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmultiboot.h
Go to the documentation of this file.
00001 /* multiboot.h - the header for Multiboot */ 00002 /* Copyright (C) 1999 Free Software Foundation, Inc. 00003 00004 This program is free software; you can redistribute it and/or modify 00005 it under the terms of the GNU General Public License as published by 00006 the Free Software Foundation; either version 2 of the License, or 00007 (at your option) any later version. 00008 00009 This program is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License along 00015 with this program; if not, write to the Free Software Foundation, Inc., 00016 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00017 */ 00018 00019 #ifndef __ASM__ 00020 #pragma once 00021 #endif 00022 00023 /* Macros. */ 00024 00025 /* The magic number for the Multiboot header. */ 00026 #define MULTIBOOT_HEADER_MAGIC HEX(1BADB002) 00027 00028 /* The flags for the Multiboot header. */ 00029 #define MULTIBOOT_HEADER_FLAGS HEX(00010003) 00030 00031 /* The magic number passed by a Multiboot-compliant boot loader. */ 00032 #define MULTIBOOT_BOOTLOADER_MAGIC HEX(2BADB002) 00033 00034 /* The size of our stack (16KB). */ 00035 #define STACK_SIZE 0x4000 00036 00037 /* C symbol format. HAVE_ASM_USCORE is defined by configure. */ 00038 #ifdef HAVE_ASM_USCORE 00039 # define EXT_C(sym) _ ## sym 00040 #else 00041 # define EXT_C(sym) sym 00042 #endif 00043 00044 #define MB_INFO_FLAG_MEM_SIZE HEX(00000001) 00045 #define MB_INFO_FLAG_BOOT_DEVICE HEX(00000002) 00046 #define MB_INFO_FLAG_COMMAND_LINE HEX(00000004) 00047 #define MB_INFO_FLAG_MODULES HEX(00000008) 00048 #define MB_INFO_FLAG_AOUT_SYMS HEX(00000010) 00049 #define MB_INFO_FLAG_ELF_SYMS HEX(00000020) 00050 #define MB_INFO_FLAG_MEMORY_MAP HEX(00000040) 00051 #define MB_INFO_FLAG_DRIVES HEX(00000080) 00052 #define MB_INFO_FLAG_CONFIG_TABLE HEX(00000100) 00053 #define MB_INFO_FLAG_BOOT_LOADER_NAME HEX(00000200) 00054 #define MB_INFO_FLAG_APM_TABLE HEX(00000400) 00055 #define MB_INFO_FLAG_GRAPHICS_TABLE HEX(00000800) 00056 00057 #ifndef __ASM__ 00058 /* Do not include here in boot.S. */ 00059 00060 /* Types. */ 00061 00062 /* The Multiboot header. */ 00063 typedef struct multiboot_header 00064 { 00065 unsigned long magic; 00066 unsigned long flags; 00067 unsigned long checksum; 00068 unsigned long header_addr; 00069 unsigned long load_addr; 00070 unsigned long load_end_addr; 00071 unsigned long bss_end_addr; 00072 unsigned long entry_addr; 00073 } multiboot_header_t; 00074 00075 /* The symbol table for a.out. */ 00076 typedef struct aout_symbol_table 00077 { 00078 unsigned long tabsize; 00079 unsigned long strsize; 00080 unsigned long addr; 00081 unsigned long reserved; 00082 } aout_symbol_table_t; 00083 00084 /* The section header table for ELF. */ 00085 typedef struct elf_section_header_table 00086 { 00087 unsigned long num; 00088 unsigned long size; 00089 unsigned long addr; 00090 unsigned long shndx; 00091 } elf_section_header_table_t; 00092 00093 /* The memory map. Be careful that the offset 0 is base_addr_low 00094 but no size. */ 00095 typedef struct memory_map 00096 { 00097 //unsigned long size; 00098 unsigned long base_addr_low; 00099 unsigned long base_addr_high; 00100 unsigned long length_low; 00101 unsigned long length_high; 00102 unsigned long type; 00103 unsigned long reserved; 00104 } memory_map_t; 00105 00106 #endif /* ! __ASM__ */ Generated on Fri May 25 2012 04:17:19 for ReactOS by
1.7.6.1
|