baryl 0.0.2

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

use crate::arch::GuestAddr;

pub const BARYL_COVERAGE_ABI_VERSION: u32 = 6;
pub const BARYL_COVERAGE_MIN_ABI_VERSION: u32 = 6;
pub const COV_PROBE_RESERVE: u32 = 67108864;
pub const MAX_BLOCKS: u32 = 268435456;
pub const COV_COUNTER_BYTES: u32 = 8;
pub const COV_BITMAP_BYTES: u32 = 2147483648;
pub const COV_IDENTITY_CAP: u32 = 268435456;
pub const COV_RING_CAP: u32 = 16384;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CoverageRef {
    pub ctx: *mut ::core::ffi::c_void,
    pub vtable: *const CoverageVtable,
}
impl Default for CoverageRef {
    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()
        }
    }
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CoverageECB {
    pub bitmap_ptr: u64,
    pub block_id_cache_ptr: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CoverageVtable {
    pub record_block: ::core::option::Option<
        unsafe extern "C" fn(
            cov: CoverageRef,
            key: *const GuestAddr,
            hash: u64,
        ) -> ::core::ffi::c_int,
    >,
}
pub type NovelBlockFn = ::core::option::Option<
    unsafe extern "C" fn(
        obj: *mut ::core::ffi::c_void,
        ctl: *mut ::core::ffi::c_void,
        key: *const GuestAddr,
    ),
>;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct CoverageCallbacks {
    pub on_novel_block: NovelBlockFn,
}