Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Zygoma::ia32::MultibootHeader Struct Reference
[Bootstrapping]

#include <multiboot.h>

List of all members.


Detailed Description

Header found in the OS image describing the OSs' needs to the bootloader.

The OS image must supply this header to the loader.


Graphics Fields

These fields specify the recommended graphics mode of the OS image.

These fields are enabled if the m_flags bit 2 is set.

enum  GraphicsMode {
  kGRAPHMODE_GRAPHICS = 0,
  kGRAPHMODE_TEXT = 1
}
*u32 m_mode_type
 Indicates the preferred video display mode.
u32 m_width
 The number of columns in the text display.
u32 m_height
 The number of rows in the text display.
u32 m_depth
 The number of bits per pixel in mode 0.

Base (required) fields

These fields are required and must appear in the multiboot header. All other fields are optional.

*u32 m_magic
 The magic number identifying the header.
u32 m_flags
 Specifies the features that the OS image requests or requires of the boot loader.
u32 m_checksum
 Value that, when added to the sum of the m_magic and m_flags fields, yields an unsigned 32-bit sum of zero.
static const u32 kMAGIC = 0x1BADB002
 The MultibootHeader m_magic must contain this value.
static const u32 kFLAGS_ALIGN_ON_4K = (1 << 0)
static const u32 kFLAGS_INCLUDE_MEM_FIELDS = (1 << 1)
static const u32 kFLAGS_VIDEO_FIELDS_INCLUDED = (1 << 2)
static const u32 kFLAGS_ADDRESS_FIELDS_INCLUDED = (1 << 16)

Public Attributes

Address Fields
These fields describe the load region of the image to the multiboot loader.

*u32 m_header_addr
 The physical memory location at which the MultibootHeader starts.
u32 m_load_addr
 The physical address of the beginning of the beginning of the 'text' segment.
u32 m_load_end_addr
 The physical address of the end of the data segment.
u32 m_bss_end_addr
 The physical address of the end of the 'bss' segment.
u32 m_entry_addr
 The physical address of the OS entry point.


Member Enumeration Documentation

enum Zygoma::ia32::MultibootHeader::GraphicsMode
 

Enumeration values:
kGRAPHMODE_GRAPHICS  Linear graphics mode.
kGRAPHMODE_TEXT  EGA text mode.


Member Data Documentation

const u32 Zygoma::ia32::MultibootHeader::kFLAGS_ADDRESS_FIELDS_INCLUDED = (1 << 16) [static]
 

const u32 Zygoma::ia32::MultibootHeader::kFLAGS_ALIGN_ON_4K = (1 << 0) [static]
 

const u32 Zygoma::ia32::MultibootHeader::kFLAGS_INCLUDE_MEM_FIELDS = (1 << 1) [static]
 

const u32 Zygoma::ia32::MultibootHeader::kFLAGS_VIDEO_FIELDS_INCLUDED = (1 << 2) [static]
 

const u32 Zygoma::ia32::MultibootHeader::kMAGIC = 0x1BADB002 [static]
 

The MultibootHeader m_magic must contain this value.

u32 Zygoma::ia32::MultibootHeader::m_bss_end_addr
 

The physical address of the end of the 'bss' segment.

u32 Zygoma::ia32::MultibootHeader::m_checksum
 

Value that, when added to the sum of the m_magic and m_flags fields, yields an unsigned 32-bit sum of zero.

u32 Zygoma::ia32::MultibootHeader::m_depth
 

The number of bits per pixel in mode 0.

A value of zero indicates no preference.

u32 Zygoma::ia32::MultibootHeader::m_entry_addr
 

The physical address of the OS entry point.

u32 Zygoma::ia32::MultibootHeader::m_flags
 

Specifies the features that the OS image requests or requires of the boot loader.

bit 0
All modules must be aligned on a 4 KB boundary.
bit 1
Loader should include mem fields in MultibootInfo.
bit 2
Video mode table is available.
bit 16
Load address info fields are active.

* u32 Zygoma::ia32::MultibootHeader::m_header_addr
 

The physical memory location at which the MultibootHeader starts.

u32 Zygoma::ia32::MultibootHeader::m_height
 

The number of rows in the text display.

The unit is pixels in mode 0, characters in mode 1. A value of zero indicates no preference.

u32 Zygoma::ia32::MultibootHeader::m_load_addr
 

The physical address of the beginning of the beginning of the 'text' segment.

u32 Zygoma::ia32::MultibootHeader::m_load_end_addr
 

The physical address of the end of the data segment.

The multiboot loader assumes that the 'text' segment and 'data' segment are contuguous and the 'text' segment preceeds te 'data' segment.

* u32 Zygoma::ia32::MultibootHeader::m_magic
 

The magic number identifying the header.

Must be the hexadecimal value kMAGIC.

* u32 Zygoma::ia32::MultibootHeader::m_mode_type
 

Indicates the preferred video display mode.

u32 Zygoma::ia32::MultibootHeader::m_width
 

The number of columns in the text display.

The unit is pixels in mode 0, characters in mode 1. A value of zero indicates no preference.


The documentation for this struct was generated from the following file:
Generated on Fri Sep 2 10:45:13 2005 for zygoma by doxygen 1.4.2