iPXE
multiboot.h File Reference

Multiboot operating systems. More...

#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  multiboot_header
 A multiboot header. More...
struct  multiboot_aout_symbol_table
 A multiboot a.out symbol table. More...
struct  multiboot_elf_section_header_table
 A multiboot ELF section header table. More...
struct  multiboot_info
 A multiboot information structure. More...
struct  multiboot_module
 A multiboot module structure. More...
struct  multiboot_memory_map
 A multiboot memory map entry. More...

Macros

#define MULTIBOOT_HEADER_MAGIC   0x1BADB002
 The magic number for the Multiboot header.
#define MB_FLAG_PGALIGN   0x00000001
 Boot modules must be page aligned.
#define MB_FLAG_MEMMAP   0x00000002
 Memory map must be provided.
#define MB_FLAG_VIDMODE   0x00000004
 Video mode information must be provided.
#define MB_FLAG_RAW   0x00010000
 Image is a raw multiboot image (not ELF)
#define MULTIBOOT_BOOTLOADER_MAGIC   0x2BADB002
 The magic number passed by a Multiboot-compliant boot loader.
#define MBI_FLAG_MEM   0x00000001
 Multiboot information structure mem_* fields are valid.
#define MBI_FLAG_BOOTDEV   0x00000002
 Multiboot information structure boot_device field is valid.
#define MBI_FLAG_CMDLINE   0x00000004
 Multiboot information structure cmdline field is valid.
#define MBI_FLAG_MODS   0x00000008
 Multiboot information structure module fields are valid.
#define MBI_FLAG_AOUT   0x00000010
 Multiboot information structure a.out symbol table is valid.
#define MBI_FLAG_ELF   0x00000020
 Multiboot information struture ELF section header table is valid.
#define MBI_FLAG_MMAP   0x00000040
 Multiboot information structure memory map is valid.
#define MBI_FLAG_DRIVES   0x00000080
 Multiboot information structure drive list is valid.
#define MBI_FLAG_CFGTBL   0x00000100
 Multiboot information structure ROM configuration field is valid.
#define MBI_FLAG_LOADER   0x00000200
 Multiboot information structure boot loader name field is valid.
#define MBI_FLAG_APM   0x00000400
 Multiboot information structure APM table is valid.
#define MBI_FLAG_VBE   0x00000800
 Multiboot information structure video information is valid.
#define MBMEM_RAM   1
 Usable RAM.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
struct multiboot_header __attribute__ ((packed, may_alias))

Variables

uint32_t magic
uint32_t flags
uint32_t checksum
uint32_t header_addr
uint32_t load_addr
uint32_t load_end_addr
uint32_t bss_end_addr
uint32_t entry_addr
uint32_t tabsize
uint32_t strsize
uint32_t addr
uint32_t reserved
uint32_t num
uint32_t size
uint32_t shndx
uint32_t mem_lower
uint32_t mem_upper
uint32_t boot_device
uint32_t cmdline
uint32_t mods_count
uint32_t mods_addr
union { 
   struct multiboot_aout_symbol_table   aout_syms 
   struct multiboot_elf_section_header_table   elf_sections 
syms
uint32_t mmap_length
uint32_t mmap_addr
uint32_t drives_length
uint32_t drives_addr
uint32_t config_table
uint32_t boot_loader_name
uint32_t apm_table
uint32_t vbe_control_info
uint32_t vbe_mode_info
uint16_t vbe_mode
uint16_t vbe_interface_seg
uint16_t vbe_interface_off
uint16_t vbe_interface_len
uint32_t mod_start
uint32_t mod_end
uint32_t string
uint64_t base_addr
uint64_t length
uint32_t type

Detailed Description

Multiboot operating systems.

Definition in file multiboot.h.

Macro Definition Documentation

◆ MULTIBOOT_HEADER_MAGIC

#define MULTIBOOT_HEADER_MAGIC   0x1BADB002

The magic number for the Multiboot header.

Definition at line 16 of file multiboot.h.

Referenced by multiboot_find_header().

◆ MB_FLAG_PGALIGN

#define MB_FLAG_PGALIGN   0x00000001

Boot modules must be page aligned.

Definition at line 19 of file multiboot.h.

◆ MB_FLAG_MEMMAP

#define MB_FLAG_MEMMAP   0x00000002

Memory map must be provided.

Definition at line 22 of file multiboot.h.

◆ MB_FLAG_VIDMODE

#define MB_FLAG_VIDMODE   0x00000004

Video mode information must be provided.

Definition at line 25 of file multiboot.h.

◆ MB_FLAG_RAW

#define MB_FLAG_RAW   0x00010000

Image is a raw multiboot image (not ELF)

Definition at line 28 of file multiboot.h.

Referenced by multiboot_load_raw().

◆ MULTIBOOT_BOOTLOADER_MAGIC

#define MULTIBOOT_BOOTLOADER_MAGIC   0x2BADB002

The magic number passed by a Multiboot-compliant boot loader.

Must be passed in register eax when jumping to the Multiboot OS image.

Definition at line 36 of file multiboot.h.

Referenced by multiboot_exec().

◆ MBI_FLAG_MEM

#define MBI_FLAG_MEM   0x00000001

Multiboot information structure mem_* fields are valid.

Definition at line 39 of file multiboot.h.

Referenced by multiboot_exec().

◆ MBI_FLAG_BOOTDEV

#define MBI_FLAG_BOOTDEV   0x00000002

Multiboot information structure boot_device field is valid.

Definition at line 42 of file multiboot.h.

◆ MBI_FLAG_CMDLINE

#define MBI_FLAG_CMDLINE   0x00000004

Multiboot information structure cmdline field is valid.

Definition at line 45 of file multiboot.h.

Referenced by multiboot_exec().

◆ MBI_FLAG_MODS

#define MBI_FLAG_MODS   0x00000008

Multiboot information structure module fields are valid.

Definition at line 48 of file multiboot.h.

Referenced by multiboot_exec().

◆ MBI_FLAG_AOUT

#define MBI_FLAG_AOUT   0x00000010

Multiboot information structure a.out symbol table is valid.

Definition at line 51 of file multiboot.h.

◆ MBI_FLAG_ELF

#define MBI_FLAG_ELF   0x00000020

Multiboot information struture ELF section header table is valid.

Definition at line 54 of file multiboot.h.

◆ MBI_FLAG_MMAP

#define MBI_FLAG_MMAP   0x00000040

Multiboot information structure memory map is valid.

Definition at line 57 of file multiboot.h.

Referenced by multiboot_exec().

◆ MBI_FLAG_DRIVES

#define MBI_FLAG_DRIVES   0x00000080

Multiboot information structure drive list is valid.

Definition at line 60 of file multiboot.h.

◆ MBI_FLAG_CFGTBL

#define MBI_FLAG_CFGTBL   0x00000100

Multiboot information structure ROM configuration field is valid.

Definition at line 63 of file multiboot.h.

◆ MBI_FLAG_LOADER

#define MBI_FLAG_LOADER   0x00000200

Multiboot information structure boot loader name field is valid.

Definition at line 66 of file multiboot.h.

Referenced by multiboot_exec().

◆ MBI_FLAG_APM

#define MBI_FLAG_APM   0x00000400

Multiboot information structure APM table is valid.

Definition at line 69 of file multiboot.h.

◆ MBI_FLAG_VBE

#define MBI_FLAG_VBE   0x00000800

Multiboot information structure video information is valid.

Definition at line 72 of file multiboot.h.

◆ MBMEM_RAM

#define MBMEM_RAM   1

Usable RAM.

Definition at line 147 of file multiboot.h.

Referenced by multiboot_build_memmap().

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ __attribute__()

struct multiboot_header __attribute__ ( (packed, may_alias) )

Variable Documentation

◆ magic

uint32_t magic

Definition at line 0 of file multiboot.h.

◆ flags

uint32_t flags

Definition at line 1 of file multiboot.h.

◆ checksum

uint32_t checksum

Definition at line 2 of file multiboot.h.

◆ header_addr

uint32_t header_addr

Definition at line 3 of file multiboot.h.

◆ load_addr

uint32_t load_addr

Definition at line 4 of file multiboot.h.

◆ load_end_addr

uint32_t load_end_addr

Definition at line 5 of file multiboot.h.

◆ bss_end_addr

uint32_t bss_end_addr

Definition at line 6 of file multiboot.h.

◆ entry_addr

uint32_t entry_addr

Definition at line 7 of file multiboot.h.

◆ tabsize

uint32_t tabsize

Definition at line 0 of file multiboot.h.

◆ strsize

uint32_t strsize

Definition at line 1 of file multiboot.h.

◆ addr

uint32_t addr

Definition at line 2 of file multiboot.h.

◆ reserved

uint32_t reserved

Definition at line 3 of file multiboot.h.

◆ num

◆ size

uint32_t size

Definition at line 1 of file multiboot.h.

◆ shndx

uint32_t shndx

Definition at line 3 of file multiboot.h.

◆ mem_lower

uint32_t mem_lower

Definition at line 1 of file multiboot.h.

◆ mem_upper

uint32_t mem_upper

Definition at line 2 of file multiboot.h.

◆ boot_device

uint32_t boot_device

Definition at line 3 of file multiboot.h.

◆ cmdline

◆ mods_count

uint32_t mods_count

Definition at line 5 of file multiboot.h.

◆ mods_addr

uint32_t mods_addr

Definition at line 6 of file multiboot.h.

◆ aout_syms

struct multiboot_aout_symbol_table aout_syms

Definition at line 8 of file multiboot.h.

◆ elf_sections

Definition at line 9 of file multiboot.h.

◆ [union]

union { ... } syms

◆ mmap_length

uint32_t mmap_length

Definition at line 11 of file multiboot.h.

◆ mmap_addr

uint32_t mmap_addr

Definition at line 12 of file multiboot.h.

◆ drives_length

uint32_t drives_length

Definition at line 13 of file multiboot.h.

◆ drives_addr

uint32_t drives_addr

Definition at line 14 of file multiboot.h.

◆ config_table

uint32_t config_table

Definition at line 15 of file multiboot.h.

◆ boot_loader_name

uint32_t boot_loader_name

Definition at line 16 of file multiboot.h.

◆ apm_table

uint32_t apm_table

Definition at line 17 of file multiboot.h.

◆ vbe_control_info

uint32_t vbe_control_info

Definition at line 18 of file multiboot.h.

◆ vbe_mode_info

uint32_t vbe_mode_info

Definition at line 19 of file multiboot.h.

◆ vbe_mode

uint16_t vbe_mode

Definition at line 20 of file multiboot.h.

◆ vbe_interface_seg

uint16_t vbe_interface_seg

Definition at line 21 of file multiboot.h.

◆ vbe_interface_off

uint16_t vbe_interface_off

Definition at line 22 of file multiboot.h.

◆ vbe_interface_len

uint16_t vbe_interface_len

Definition at line 23 of file multiboot.h.

◆ mod_start

uint32_t mod_start

Definition at line 0 of file multiboot.h.

Referenced by sync_console().

◆ mod_end

uint32_t mod_end

Definition at line 1 of file multiboot.h.

Referenced by sync_console().

◆ string

◆ base_addr

◆ length

uint64_t length

Definition at line 2 of file multiboot.h.

◆ type

uint32_t type

Definition at line 3 of file multiboot.h.