#![allow(non_camel_case_types)]
use bitflags::bitflags;
pub const SECOND_SCALE: u64 = 1000000;
pub const MILISECOND_SCALE: u64 = 1000;
#[repr(C)]
#[derive(PartialEq, Debug, Clone, Copy)]
pub enum Arch {
ARM = 1,
ARM64,
MIPS,
X86,
PPC,
SPARC,
M68K,
}
#[repr(C)]
#[derive(PartialEq, Debug, Clone, Copy)]
pub enum Mode {
LITTLE_ENDIAN = 0, MODE_16 = 1 << 1, MODE_32 = 1 << 2, MODE_64 = 1 << 3, THUMB = 1 << 4, MCLASS = 1 << 5, V8 = 1 << 6, BIG_ENDIAN = 1 << 30,
}
#[repr(C)]
#[derive(PartialEq, Debug, Clone, Copy)]
pub enum Error {
OK = 0, NOMEM, ARCH, HANDLE, MODE, VERSION, READ_UNMAPPED, WRITE_UNMAPPED, ETCH_UNMAPPED, HOOK, INSN_INVALID, MAP, WRITE_PROT, READ_PROT, FETCH_PROT, ARG, READ_UNALIGNED, WRITE_UNALIGNED, FETCH_UNALIGNED, HOOK_EXIST, RESOURCE, EXCEPTION, }
bitflags! {
#[repr(C)]
pub struct Protection : u32 {
const NONE = 0;
const READ = 1;
const WRITE = 2;
const EXEC = 4;
const ALL = 7;
}
}
#[deprecated]
pub const PROT_NONE: Protection = Protection::NONE;
#[deprecated]
pub const PROT_READ: Protection = Protection::READ;
#[deprecated]
pub const PROT_WRITE: Protection = Protection::WRITE;
#[deprecated]
pub const PROT_EXEC: Protection = Protection::EXEC;
#[deprecated]
pub const PROT_ALL: Protection = Protection::ALL;
#[repr(C)]
#[derive(Debug, Clone)]
pub struct MemRegion {
pub begin: u64,
pub end: u64,
pub perms: Protection,
}
#[repr(C)]
#[derive(PartialEq, Debug, Clone)]
pub enum MemType {
READ = 16, WRITE, FETCH, READ_UNMAPPED, WRITE_UNMAPPED, MEM_FETCH_UNMAPPED, WRITE_PROT, READ_PROT, FETCH_PROT, }
#[repr(C)]
#[derive(PartialEq, Debug, Clone, Copy)]
pub enum HookType {
INTR = 1 << 0, INSN = 1 << 1, CODE = 1 << 2, BLOCK = 1 << 3, MEM_READ_UNMAPPED = 1 << 4, MEM_WRITE_UNMAPPED = 1 << 5, MEM_FETCH_UNMAPPED = 1 << 6, MEM_READ_PROT = 1 << 7, MEM_WRITE_PROT = 1 << 8, MEM_FETCH_PROT = 1 << 9, MEM_READ = 1 << 10, MEM_WRITE = 1 << 11, MEM_FETCH = 1 << 12, }
#[repr(C)]
#[derive(PartialEq, Debug, Clone, Copy)]
pub enum CodeHookType {
CODE = 1 << 2, BLOCK = 1 << 3, }
#[repr(C)]
#[derive(PartialEq, Debug, Clone, Copy)]
pub enum MemHookType {
MEM_READ_UNMAPPED = 1 << 4, MEM_WRITE_UNMAPPED = 1 << 5, MEM_FETCH_UNMAPPED = 1 << 6, MEM_READ_PROT = 1 << 7, MEM_WRITE_PROT = 1 << 8, MEM_FETCH_PROT = 1 << 9, MEM_READ = 1 << 10, MEM_WRITE = 1 << 11, MEM_FETCH = 1 << 12, MEM_UNMAPPED = 0b111 << 4, MEM_PROT = 0b111 << 7, MEM_READ_INVALID = (1 << 4) | (1 << 7),
MEM_WRITE_INVALID = (1 << 5) | (1 << 8),
MEM_FETCH_INVALID = (1 << 6) | (1 << 9),
MEM_INVALID = (0b111111 << 4), MEM_VALID = (0b111 << 10), MEM_ALL = 0b111111111 << 4, }
#[repr(C)]
#[derive(PartialEq, Debug, Clone, Copy)]
pub enum Query {
MODE = 1,
PAGE_SIZE,
}
pub const BINDINGS_MAJOR: u32 = 1;
pub const BINDINGS_MINOR: u32 = 0;