1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// For Keystone Engine. AUTO-GENERATED FILE, DO NOT EDIT [keystone_const.rs]
extern crate libc;


pub const KS_API_MAJOR: u32 = 0;
pub const KS_API_MINOR: u32 = 9;
pub const KS_ARCH_ARM: u32 = 1;
pub const KS_ARCH_ARM64: u32 = 2;
pub const KS_ARCH_MIPS: u32 = 3;
pub const KS_ARCH_X86: u32 = 4;
pub const KS_ARCH_PPC: u32 = 5;
pub const KS_ARCH_SPARC: u32 = 6;
pub const KS_ARCH_SYSTEMZ: u32 = 7;
pub const KS_ARCH_HEXAGON: u32 = 8;
pub const KS_ARCH_MAX: u32 = 9;


bitflags! {
	pub flags Mode : u32 {
		const MODE_LITTLE_ENDIAN = 0,
		const MODE_BIG_ENDIAN = 1073741824,
		const MODE_ARM = 1,
		const MODE_THUMB = 16,
		const MODE_V8 = 64,
		const MODE_MICRO = 16,
		const MODE_MIPS3 = 32,
		const MODE_MIPS32R6 = 64,
		const MODE_MIPS32 = 4,
		const MODE_MIPS64 = 8,
		const MODE_16 = 2,
		const MODE_32 = 4,
		const MODE_64 = 8,
		const MODE_PPC32 = 4,
		const MODE_PPC64 = 8,
		const MODE_QPX = 16,
		const MODE_SPARC32 = 4,
		const MODE_SPARC64 = 8,
		const MODE_V9 = 16,
	}
}

#[derive(Debug, PartialEq, Clone, Copy)]
pub enum Arch {
    ARM,
    ARM64,
    MIPS,
    X86,
    PPC,
    SPARC,
    SYSTEMZ,
    HEXAGON,
    MAX,
}


impl Arch {
    #[inline]
    pub fn val(&self) -> u32 {
        match *self {
            Arch::ARM => 1,
            Arch::ARM64 => 2,
            Arch::MIPS => 3,
            Arch::X86 => 4,
            Arch::PPC => 5,
            Arch::SPARC => 6,
            Arch::SYSTEMZ => 7,
            Arch::HEXAGON => 8,
            Arch::MAX => 9,
        }
    }
}

#[derive(Debug, PartialEq, Clone, Copy)]
pub enum OptionType {
    SYNTAX,
    MAX,
}

impl OptionType {
    #[inline]
    pub fn val(&self) -> u32 {
        match *self {
            OptionType::SYNTAX => 1,
            OptionType::MAX => 99,
        }
    }
}

bitflags! {
	pub flags OptionValue : libc::size_t {
		const OPT_SYNTAX_INTEL = 1,
		const OPT_SYNTAX_ATT = 2,
		const OPT_SYNTAX_NASM = 4,
		const OPT_SYNTAX_MASM = 8,
		const OPT_SYNTAX_GAS = 16,
	}
}

bitflags! {
	pub flags Error : u32 {
		const ERR_ASM = 128,
		const ERR_ASM_ARCH = 512,
		const ERR_OK = 0,
		const ERR_NOMEM = 1,
		const ERR_ARCH = 2,
		const ERR_HANDLE = 3,
		const ERR_MODE = 4,
		const ERR_VERSION = 5,
		const ERR_OPT_INVALID = 6,
		const ERR_ASM_EXPR_TOKEN = 128,
		const ERR_ASM_DIRECTIVE_VALUE_RANGE = 129,
		const ERR_ASM_DIRECTIVE_ID = 130,
		const ERR_ASM_DIRECTIVE_TOKEN = 131,
		const ERR_ASM_DIRECTIVE_STR = 132,
		const ERR_ASM_DIRECTIVE_COMMA = 133,
		const ERR_ASM_DIRECTIVE_RELOC_NAME = 134,
		const ERR_ASM_DIRECTIVE_RELOC_TOKEN = 135,
		const ERR_ASM_DIRECTIVE_FPOINT = 136,
		const ERR_ASM_DIRECTIVE_UNKNOWN = 137,
		const ERR_ASM_VARIANT_INVALID = 138,
		const ERR_ASM_DIRECTIVE_EQU = 139,
		const ERR_ASM_EXPR_BRACKET = 140,
		const ERR_ASM_SYMBOL_MODIFIER = 141,
		const ERR_ASM_SYMBOL_REDEFINED = 142,
		const ERR_ASM_SYMBOL_MISSING = 143,
		const ERR_ASM_RPAREN = 144,
		const ERR_ASM_STAT_TOKEN = 145,
		const ERR_ASM_UNSUPPORTED = 146,
		const ERR_ASM_MACRO_TOKEN = 147,
		const ERR_ASM_MACRO_PAREN = 148,
		const ERR_ASM_MACRO_EQU = 149,
		const ERR_ASM_MACRO_ARGS = 150,
		const ERR_ASM_MACRO_LEVELS_EXCEED = 151,
		const ERR_ASM_MACRO_STR = 152,
		const ERR_ASM_ESC_BACKSLASH = 153,
		const ERR_ASM_ESC_OCTAL = 154,
		const ERR_ASM_ESC_SEQUENCE = 155,
		const ERR_ASM_ESC_STR = 156,
		const ERR_ASM_TOKEN_INVALID = 157,
		const ERR_ASM_INSN_UNSUPPORTED = 158,
		const ERR_ASM_FIXUP_INVALID = 159,
		const ERR_ASM_LABEL_INVALID = 160,
		const ERR_ASM_INVALIDOPERAND = 512,
		const ERR_ASM_MISSINGFEATURE = 513,
		const ERR_ASM_MNEMONICFAIL = 514,
	}
}