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

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.

◆ 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.

◆ 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.

◆ MBI_FLAG_MEM

#define MBI_FLAG_MEM   0x00000001

Multiboot information structure mem_* fields are valid.

Definition at line 39 of file multiboot.h.

◆ 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.

◆ MBI_FLAG_MODS

#define MBI_FLAG_MODS   0x00000008

Multiboot information structure module fields are valid.

Definition at line 48 of file multiboot.h.

◆ 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.

◆ 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.

◆ 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.

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 12 of file multiboot.h.

◆ flags

uint32_t flags

Definition at line 13 of file multiboot.h.

◆ checksum

uint32_t checksum

Definition at line 14 of file multiboot.h.

◆ header_addr

uint32_t header_addr

Definition at line 15 of file multiboot.h.

◆ load_addr

uint32_t load_addr

Definition at line 16 of file multiboot.h.

◆ load_end_addr

uint32_t load_end_addr

Definition at line 17 of file multiboot.h.

◆ bss_end_addr

uint32_t bss_end_addr

Definition at line 18 of file multiboot.h.

◆ entry_addr

uint32_t entry_addr

Definition at line 19 of file multiboot.h.

◆ tabsize

uint32_t tabsize

Definition at line 12 of file multiboot.h.

◆ strsize

uint32_t strsize

Definition at line 13 of file multiboot.h.

◆ addr

uint32_t addr

Definition at line 14 of file multiboot.h.

◆ reserved

uint32_t reserved

Definition at line 15 of file multiboot.h.

◆ num

uint32_t num

Definition at line 12 of file multiboot.h.

◆ size

uint32_t size

Definition at line 13 of file multiboot.h.

◆ shndx

uint32_t shndx

Definition at line 15 of file multiboot.h.

◆ mem_lower

uint32_t mem_lower

Definition at line 13 of file multiboot.h.

◆ mem_upper

uint32_t mem_upper

Definition at line 14 of file multiboot.h.

◆ boot_device

uint32_t boot_device

Definition at line 15 of file multiboot.h.

◆ cmdline

uint32_t cmdline

◆ mods_count

uint32_t mods_count

Definition at line 17 of file multiboot.h.

◆ mods_addr

uint32_t mods_addr

Definition at line 18 of file multiboot.h.

◆ aout_syms

struct multiboot_aout_symbol_table aout_syms

Definition at line 20 of file multiboot.h.

◆ elf_sections

Definition at line 21 of file multiboot.h.

◆ syms

union { ... } syms

◆ mmap_length

uint32_t mmap_length

Definition at line 23 of file multiboot.h.

◆ mmap_addr

uint32_t mmap_addr

Definition at line 24 of file multiboot.h.

◆ drives_length

uint32_t drives_length

Definition at line 25 of file multiboot.h.

◆ drives_addr

uint32_t drives_addr

Definition at line 26 of file multiboot.h.

◆ config_table

uint32_t config_table

Definition at line 27 of file multiboot.h.

◆ boot_loader_name

uint32_t boot_loader_name

Definition at line 28 of file multiboot.h.

◆ apm_table

uint32_t apm_table

Definition at line 29 of file multiboot.h.

◆ vbe_control_info

uint32_t vbe_control_info

Definition at line 30 of file multiboot.h.

◆ vbe_mode_info

Definition at line 31 of file multiboot.h.

◆ vbe_mode

uint16_t vbe_mode

Definition at line 32 of file multiboot.h.

◆ vbe_interface_seg

uint16_t vbe_interface_seg

Definition at line 33 of file multiboot.h.

◆ vbe_interface_off

uint16_t vbe_interface_off

Definition at line 34 of file multiboot.h.

◆ vbe_interface_len

uint16_t vbe_interface_len

Definition at line 35 of file multiboot.h.

◆ mod_start

uint32_t mod_start

Definition at line 12 of file multiboot.h.

Referenced by sync_console().

◆ mod_end

uint32_t mod_end

Definition at line 13 of file multiboot.h.

Referenced by sync_console().

◆ string

uint32_t string

◆ base_addr

uint64_t base_addr

◆ length

uint64_t length

Definition at line 14 of file multiboot.h.

◆ type

uint32_t type

Definition at line 15 of file multiboot.h.