ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

multiboot.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.