baryl 0.0.4

Public SDK for Baryl, a full-system emulation and introspection engine
Documentation
/* automatically generated by rust-bindgen 0.72.1 */

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,
}