[][src]Crate multiboot2

An experimental Multiboot 2 crate for ELF-64/32 kernels.

The GNU Multiboot specification aims provide to a standardised method of sharing commonly used information about the host machine at boot time.

Examples

This example is not tested
use multiboot2::load;

// The Multiboot 2 specification dictates that the machine state after the
// bootloader finishes its job will be that the boot information struct pointer
// is stored in the `EBX` register.
let multiboot_info_ptr: u32;
unsafe { asm!("mov $2, %ebx" : "=r"(multiboot_info_ptr)) };
let boot_info = unsafe { load(multiboot_info_ptr) };

Structs

BootInformation

A Multiboot 2 Boot Information struct.

BootLoaderNameTag

This Tag contains the name of the bootloader that is booting the kernel.

CommandLineTag

This Tag contains the command line string.

EFIImageHandle32

Contains pointer to boot loader image handle.

EFIImageHandle64

Contains pointer to boot loader image handle.

EFIMemoryDesc

EFI Boot Memory Map Descriptor

EFIMemoryMapTag

EFI memory map as per EFI specification.

EFISdt32

EFI system table in 32 bit mode

EFISdt64

EFI system table in 64 bit mode

ElfSection

A single generic ELF Section.

ElfSectionFlags

ELF Section bitflags.

ElfSectionIter

An iterator over some ELF sections.

ElfSectionsTag

This tag contains section header table from an ELF kernel.

FramebufferColor

A framebuffer color descriptor in the palette.

FramebufferField

An RGB color type field.

FramebufferTag

The VBE Framebuffer information Tag.

ImageLoadPhysAddr

If the image has relocatable header tag, this tag contains the image's base physical address.

MemoryArea

A memory area entry descriptor.

MemoryAreaIter

An iterator over all memory areas

MemoryMapTag

This Tag provides an initial host memory map.

ModuleIter

An iterator over all module tags.

ModuleTag

This tag indicates to the kernel what boot module was loaded along with the kernel image, and where it can be found.

RsdpV1Tag

This tag contains a copy of RSDP as defined per ACPI 1.0 specification.

RsdpV2Tag

This tag contains a copy of RSDP as defined per ACPI 2.0 or later specification.

VBECapabilities

The Capabilities field indicates the support of specific features in the graphics environment.

VBEControlInfo

VBE controller information.

VBEDirectColorAttributes

The DirectColorModeInfo field describes important characteristics of direct color modes.

VBEField

A VBE colour field.

VBEInfoTag

This tag contains VBE metadata, VBE controller information returned by the VBE Function 00h and VBE mode information returned by the VBE Function 01h.

VBEModeAttributes

A Mode attributes bitfield.

VBEModeInfo

Extended information about a specific VBE display mode from the mode list returned by VBEControlInfo (VBE Function 00h).

VBEWindowAttributes

The WindowAttributes describe the characteristics of the CPU windowing scheme such as whether the windows exist and are read/writeable, as follows:

Enums

EFIMemoryAreaType

An enum of possible reported region types.

ElfSectionType

An enum abstraction over raw ELF section types.

FramebufferType

The type of framebuffer.

MemoryAreaType

An enum of possible reported region types.

VBEMemoryModel

The MemoryModel field specifies the general type of memory organization used in modes.

Functions

load

Load the multiboot boot information struct from an address.

load_with_offset

Load the multiboot boot information struct from an address at an offset.