multiboot2

Build crates.io docs

Rust library that helps you to parse the multiboot information structure (mbi) from Multiboot2-compliant bootloaders, like GRUB. It supports all tags from the specification including full support for the sections of ELF-64 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.

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.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.