1234567891011121314151617181920212223242526272829303132333435 |
- 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);
- }
|