use std::ffi::{c_char, c_int, c_void};
use crate::Address;
unsafe extern "C" {
pub fn idakit_get_bytes(address: Address, buf: *mut c_void, size: usize) -> i64;
}
unsafe extern "C" {
pub fn idakit_binpat_compile(
address: Address,
pattern: *const c_char,
radix: c_int,
errbuf: *mut c_char,
errcap: usize,
) -> *mut c_void;
pub fn idakit_binpat_from_bytes(bytes: *const u8, mask: *const u8, len: usize) -> *mut c_void;
pub fn idakit_binpat_free(pat: *mut c_void);
pub fn idakit_binpat_stats(pat: *const c_void, total: *mut usize, anchors: *mut usize);
pub fn idakit_bin_search(
start: Address,
end: Address,
pat: *const c_void,
flags: c_int,
) -> Address;
}
pub const BIN_SEARCH_CASE: c_int = 0x01;
pub const BIN_SEARCH_BITMASK: c_int = 0x20;
pub const MS_CLS: u64 = 0x0000_0600;
pub const FF_CODE: u64 = 0x0000_0600;
pub const FF_DATA: u64 = 0x0000_0400;
unsafe extern "C" {
pub fn idakit_patch_bytes(address: Address, buf: *const c_void, size: usize) -> c_int;
}
unsafe extern "C" {
pub fn set_cmt(address: Address, comm: *const c_char, rptble: bool) -> bool;
}