#[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() {
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::null::<hvm_start_info>())).magic as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(magic)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<hvm_start_info>())).version as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(version)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<hvm_start_info>())).flags as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(flags)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<hvm_start_info>())).nr_modules as *const _ as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(nr_modules)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<hvm_start_info>())).modlist_paddr as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(modlist_paddr)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<hvm_start_info>())).cmdline_paddr as *const _ as usize
},
24usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(cmdline_paddr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<hvm_start_info>())).rsdp_paddr as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(rsdp_paddr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<hvm_start_info>())).memmap_paddr as *const _ as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(memmap_paddr)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<hvm_start_info>())).memmap_entries as *const _ as usize
},
48usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(memmap_entries)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<hvm_start_info>())).reserved as *const _ as usize },
52usize,
concat!(
"Offset of field: ",
stringify!(hvm_start_info),
"::",
stringify!(reserved)
)
);
}
#[test]
fn bindgen_test_layout_hvm_modlist_entry() {
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::null::<hvm_modlist_entry>())).paddr as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(hvm_modlist_entry),
"::",
stringify!(paddr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<hvm_modlist_entry>())).size as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(hvm_modlist_entry),
"::",
stringify!(size)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<hvm_modlist_entry>())).cmdline_paddr as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(hvm_modlist_entry),
"::",
stringify!(cmdline_paddr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<hvm_modlist_entry>())).reserved as *const _ as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(hvm_modlist_entry),
"::",
stringify!(reserved)
)
);
}
#[test]
fn bindgen_test_layout_hvm_memmap_table_entry() {
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::null::<hvm_memmap_table_entry>())).addr as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(hvm_memmap_table_entry),
"::",
stringify!(addr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<hvm_memmap_table_entry>())).size as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(hvm_memmap_table_entry),
"::",
stringify!(size)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<hvm_memmap_table_entry>())).type_ as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(hvm_memmap_table_entry),
"::",
stringify!(type_)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<hvm_memmap_table_entry>())).reserved as *const _ as usize
},
20usize,
concat!(
"Offset of field: ",
stringify!(hvm_memmap_table_entry),
"::",
stringify!(reserved)
)
);
}
}