#[repr(C)]
#[derive(Debug, Copy, Clone, Default)]
pub struct hvm_start_info {
pub magic: u32,
pub version: u32,
pub flags: u32,
pub nr_modules: u32,
pub modlist_paddr: u64,
pub cmdline_paddr: u64,
pub rsdp_paddr: u64,
pub memmap_paddr: u64,
pub memmap_entries: u32,
pub reserved: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Default)]
pub struct hvm_modlist_entry {
pub paddr: u64,
pub size: u64,
pub cmdline_paddr: u64,
pub reserved: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Default)]
pub struct hvm_memmap_table_entry {
pub addr: u64,
pub size: u64,
pub type_: u32,
pub reserved: u32,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn bindgen_test_layout_hvm_start_info() {
const UNINIT: ::std::mem::MaybeUninit<hvm_start_info> = ::std::mem::MaybeUninit::uninit();
let ptr = UNINIT.as_ptr();
assert_eq!(
::std::mem::size_of::<hvm_start_info>(),
56usize,
concat!("Size of: ", stringify!(hvm_start_info))
);
assert_eq!(
::std::mem::align_of::<hvm_start_info>(),
8usize,
concat!("Alignment of ", stringify!(hvm_start_info))
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(magic)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(version)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(flags)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).nr_modules) as usize - ptr as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(nr_modules)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).modlist_paddr) as usize - ptr as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(modlist_paddr)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).cmdline_paddr) as usize - ptr as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(cmdline_paddr)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).rsdp_paddr) as usize - ptr as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(rsdp_paddr)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).memmap_paddr) as usize - ptr as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(memmap_paddr)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).memmap_entries) as usize - ptr as usize },
48usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(memmap_entries)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
52usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(reserved)
)
);
}
#[test]
fn bindgen_test_layout_hvm_modlist_entry() {
const UNINIT: ::std::mem::MaybeUninit<hvm_modlist_entry> =
::std::mem::MaybeUninit::uninit();
let ptr = UNINIT.as_ptr();
assert_eq!(
::std::mem::size_of::<hvm_modlist_entry>(),
32usize,
concat!("Size of: ", stringify!(hvm_modlist_entry))
);
assert_eq!(
::std::mem::align_of::<hvm_modlist_entry>(),
8usize,
concat!("Alignment of ", stringify!(hvm_modlist_entry))
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(hvm_modlist_entry),
"::",
stringify!(paddr)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(hvm_modlist_entry),
"::",
stringify!(size)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).cmdline_paddr) as usize - ptr as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(hvm_modlist_entry),
"::",
stringify!(cmdline_paddr)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(hvm_modlist_entry),
"::",
stringify!(reserved)
)
);
}
#[test]
fn bindgen_test_layout_hvm_memmap_table_entry() {
const UNINIT: ::std::mem::MaybeUninit<hvm_memmap_table_entry> =
::std::mem::MaybeUninit::uninit();
let ptr = UNINIT.as_ptr();
assert_eq!(
::std::mem::size_of::<hvm_memmap_table_entry>(),
24usize,
concat!("Size of: ", stringify!(hvm_memmap_table_entry))
);
assert_eq!(
::std::mem::align_of::<hvm_memmap_table_entry>(),
8usize,
concat!("Alignment of ", stringify!(hvm_memmap_table_entry))
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(hvm_memmap_table_entry),
"::",
stringify!(addr)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(hvm_memmap_table_entry),
"::",
stringify!(size)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(hvm_memmap_table_entry),
"::",
stringify!(type_)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(hvm_memmap_table_entry),
"::",
stringify!(reserved)
)
);
}
}