use multiboot2_common::MaybeDynSized;
use multiboot2_header::Builder;
use multiboot2_header::{
HeaderTagFlag, HeaderTagISA, InformationRequestHeaderTag, MbiTagType, Multiboot2Header,
RelocatableHeaderTag, RelocatableHeaderTagPreference,
};
fn main() {
let mb2_hdr_bytes = Builder::new(HeaderTagISA::I386)
.relocatable_tag(RelocatableHeaderTag::new(
HeaderTagFlag::Required,
0x1337,
0xdeadbeef,
4096,
RelocatableHeaderTagPreference::None,
))
.information_request_tag(InformationRequestHeaderTag::new(
HeaderTagFlag::Required,
&[
MbiTagType::Cmdline.into(),
MbiTagType::BootLoaderName.into(),
],
))
.build();
let ptr = mb2_hdr_bytes.as_bytes().as_ptr();
let mb2_hdr = unsafe { Multiboot2Header::load(ptr.cast()) };
let mb2_hdr = mb2_hdr.unwrap();
println!("{:#?}", mb2_hdr);
}