multiboot2 0.17.0

Library that assists parsing the Multiboot2 Information Structure (MBI) from Multiboot2-compliant bootloaders, such as GRUB. It supports all tags from the specification including full support for the sections of ELF files. This library is `no_std` and can be used in a Multiboot2-kernel.
Documentation

multiboot2

Build crates.io docs

Library that assists parsing the Multiboot2 Information Structure (MBI) from Multiboot2-compliant bootloaders, such as GRUB. It supports all tags from the specification including full support for the sections of ELF files. This library is no_std and can be used in a Multiboot2-kernel.

It follows the Multiboot 2.0 specification at https://www.gnu.org/software/grub/manual/multiboot2/multiboot.html and the ELF 64 specification at http://www.uclibc.org/docs/elf-64-gen.pdf.

Features and no_std Compatibility

This library is always no_std. However, the default builder-feature requires the alloc-crate to be available. You need the builder only if you want to construct new boot information structures at run time. For parsing, this is not relevant, and you can deactivate the default feature.

Background: The Multiboot 2 Information Structure

The Multiboot information structure looks like this:

Field Type
total size u32
reserved u32
tags variable
end tag = (0, 8) (u32, u32)

There are many different types of tags, but they all have the same beginning:

Field Type
type u32
size u32
other fields variable

All tags and the mbi itself are 8-byte aligned. The last tag must be the end tag, which is a tag of type 0 and size 8.

MSRV

The MSRV is 1.68.0 stable.

License & Contribution

See main README file.