Rusty wrappers for Multiboot2.

Philipp Schuster 97697dc6fc Changelog adjusted há 3 anos atrás
.github 70d3a605a8 Sensible style checks as optional CI tasks. há 3 anos atrás
src 70d3a605a8 Sensible style checks as optional CI tasks. há 3 anos atrás
.gitignore 020277ce00 Added ModuleIter, .gitignore change há 8 anos atrás
Cargo.toml 5374975697 v0.12.1 há 3 anos atrás
Changelog.md 97697dc6fc Changelog adjusted há 3 anos atrás
LICENSE-APACHE 3fc6167535 Add MIT/Apache2 license (#4) há 9 anos atrás
LICENSE-MIT 3fc6167535 Add MIT/Apache2 license (#4) há 9 anos atrás
README.md 77aa95c116 renamed old Github urls in README há 3 anos atrás

README.md

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.