#[repr(C, align(8))]pub struct InformationRequestHeaderTag { /* private fields */ }
Expand description
Specifies what specific tag types the bootloader should provide inside the mbi.
Implementations§
Source§impl InformationRequestHeaderTag
impl InformationRequestHeaderTag
Sourcepub fn new(flags: HeaderTagFlag, requests: &[MbiTagTypeId]) -> Box<Self>
pub fn new(flags: HeaderTagFlag, requests: &[MbiTagTypeId]) -> Box<Self>
Creates a new object.
Examples found in repository?
examples/minimal.rs (lines 21-27)
9fn main() {
10 // We create a Multiboot2 header during runtime here. A more practical
11 // example, however, would be that you parse the header from kernel binary
12 // at runtime.
13 let mb2_hdr_bytes = Builder::new(HeaderTagISA::I386)
14 .relocatable_tag(RelocatableHeaderTag::new(
15 HeaderTagFlag::Required,
16 0x1337,
17 0xdeadbeef,
18 4096,
19 RelocatableHeaderTagPreference::None,
20 ))
21 .information_request_tag(InformationRequestHeaderTag::new(
22 HeaderTagFlag::Required,
23 &[
24 MbiTagType::Cmdline.into(),
25 MbiTagType::BootLoaderName.into(),
26 ],
27 ))
28 .build();
29
30 // Cast bytes in vector to Multiboot2 information structure
31 let ptr = mb2_hdr_bytes.as_bytes().as_ptr();
32 let mb2_hdr = unsafe { Multiboot2Header::load(ptr.cast()) };
33 let mb2_hdr = mb2_hdr.unwrap();
34 println!("{mb2_hdr:#?}");
35}
Sourcepub const fn typ(&self) -> HeaderTagType
pub const fn typ(&self) -> HeaderTagType
Returns the HeaderTagType
.
Sourcepub const fn flags(&self) -> HeaderTagFlag
pub const fn flags(&self) -> HeaderTagFlag
Returns the HeaderTagFlag
s.
Sourcepub const fn requests(&self) -> &[MbiTagTypeId]
pub const fn requests(&self) -> &[MbiTagTypeId]
Returns the requests as array
Trait Implementations§
Source§impl Debug for InformationRequestHeaderTag
impl Debug for InformationRequestHeaderTag
Source§impl Hash for InformationRequestHeaderTag
impl Hash for InformationRequestHeaderTag
Source§impl MaybeDynSized for InformationRequestHeaderTag
impl MaybeDynSized for InformationRequestHeaderTag
Source§const BASE_SIZE: usize = 8usize
const BASE_SIZE: usize = 8usize
The true base size of the struct without any implicit or additional
padding. Note that
size_of::<T>()
isn’t sufficient, as for example
the type could have three u32
fields, which would add an implicit
u32
padding. However, this constant must always fulfill
BASE_SIZE >= size_of::<Self::Header>()
. Read moreSource§type Header = HeaderTagHeader
type Header = HeaderTagHeader
The associated
Header
of this tag.Source§fn dst_len(header: &Self::Header) -> Self::Metadata
fn dst_len(header: &Self::Header) -> Self::Metadata
Returns the amount of items in the dynamically sized portion of the
DST. Note that this is not the amount of bytes. So if the dynamically
sized portion is 16 bytes in size and each element is 4 bytes big, then
this function must return 4. Read more
Source§fn payload(&self) -> &[u8]
fn payload(&self) -> &[u8]
Returns the payload, i.e., all memory that is not occupied by the
Header
of the type.Source§impl Ord for InformationRequestHeaderTag
impl Ord for InformationRequestHeaderTag
Source§impl PartialOrd for InformationRequestHeaderTag
impl PartialOrd for InformationRequestHeaderTag
Source§impl Pointee for InformationRequestHeaderTagwhere
[MbiTagTypeId]: Pointee,
impl Pointee for InformationRequestHeaderTagwhere
[MbiTagTypeId]: Pointee,
Source§impl Tag for InformationRequestHeaderTag
impl Tag for InformationRequestHeaderTag
Source§const ID: HeaderTagType = HeaderTagType::InformationRequest
const ID: HeaderTagType = HeaderTagType::InformationRequest
The ID of this tag. This should be unique across all implementors. Read more
Source§type IDType = HeaderTagType
type IDType = HeaderTagType
The ID type that identifies the tag.