pub const BARYL_ARCH_ABI_VERSION: u32 = 8;
pub const BARYL_ARCH_MIN_ABI_VERSION: u32 = 8;
pub const BARYL_ARCH_X86_64: u32 = 1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RegLayout {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ArchVtable {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MemAttr {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, zerocopy :: FromZeros)]
pub struct GuestAddr {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CpuExceptionContext {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ArchRef {
pub ctx: *mut ::core::ffi::c_void,
pub vtable: *const ArchVtable,
}
impl Default for ArchRef {
fn default() -> Self {
let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
unsafe {
::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type CpuExcFn = ::core::option::Option<
unsafe extern "C" fn(
obj: *mut ::core::ffi::c_void,
ctl: *mut ::core::ffi::c_void,
ctx: *const CpuExceptionContext,
),
>;
pub type AddrSpaceFn = ::core::option::Option<
unsafe extern "C" fn(obj: *mut ::core::ffi::c_void, ctl: *mut ::core::ffi::c_void, root: u64),
>;
pub type MappingFn = ::core::option::Option<
unsafe extern "C" fn(
obj: *mut ::core::ffi::c_void,
addr: *const GuestAddr,
) -> ::core::ffi::c_int,
>;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct ArchCallbacks {
pub on_cpu_exception: CpuExcFn,
pub on_address_space_change: AddrSpaceFn,
}