// X86 registers #[repr(C)] #[derive(PartialEq, Debug, Clone, Copy)] #[allow(clippy::upper_case_acronyms, non_camel_case_types)] pub enum RegisterX86 { INVALID = 0, AH = 1, AL = 2, AX = 3, BH = 4, BL = 5, BP = 6, BPL = 7, BX = 8, CH = 9, CL = 10, CS = 11, CX = 12, DH = 13, DI = 14, DIL = 15, DL = 16, DS = 17, DX = 18, EAX = 19, EBP = 20, EBX = 21, ECX = 22, EDI = 23, EDX = 24, EFLAGS = 25, EIP = 26, ES = 27, ESI = 28, ESP = 29, FPSW = 30, FS = 31, GS = 32, IP = 33, RAX = 34, RBP = 35, RBX = 36, RCX = 37, RDI = 38, RDX = 39, RIP = 40, RSI = 41, RSP = 42, SI = 43, SIL = 44, SP = 45, SPL = 46, SS = 47, CR0 = 48, CR1 = 49, CR2 = 50, CR3 = 51, CR4 = 52, CR8 = 53, DR0 = 54, DR1 = 55, DR2 = 56, DR3 = 57, DR4 = 58, DR5 = 59, DR6 = 60, DR7 = 61, FP0 = 62, FP1 = 63, FP2 = 64, FP3 = 65, FP4 = 66, FP5 = 67, FP6 = 68, FP7 = 69, K0 = 70, K1 = 71, K2 = 72, K3 = 73, K4 = 74, K5 = 75, K6 = 76, K7 = 77, MM0 = 78, MM1 = 79, MM2 = 80, MM3 = 81, MM4 = 82, MM5 = 83, MM6 = 84, MM7 = 85, R8 = 86, R9 = 87, R10 = 88, R11 = 89, R12 = 90, R13 = 91, R14 = 92, R15 = 93, ST0 = 94, ST1 = 95, ST2 = 96, ST3 = 97, ST4 = 98, ST5 = 99, ST6 = 100, ST7 = 101, XMM0 = 102, XMM1 = 103, XMM2 = 104, XMM3 = 105, XMM4 = 106, XMM5 = 107, XMM6 = 108, XMM7 = 109, XMM8 = 110, XMM9 = 111, XMM10 = 112, XMM11 = 113, XMM12 = 114, XMM13 = 115, XMM14 = 116, XMM15 = 117, XMM16 = 118, XMM17 = 119, XMM18 = 120, XMM19 = 121, XMM20 = 122, XMM21 = 123, XMM22 = 124, XMM23 = 125, XMM24 = 126, XMM25 = 127, XMM26 = 128, XMM27 = 129, XMM28 = 130, XMM29 = 131, XMM30 = 132, XMM31 = 133, YMM0 = 134, YMM1 = 135, YMM2 = 136, YMM3 = 137, YMM4 = 138, YMM5 = 139, YMM6 = 140, YMM7 = 141, YMM8 = 142, YMM9 = 143, YMM10 = 144, YMM11 = 145, YMM12 = 146, YMM13 = 147, YMM14 = 148, YMM15 = 149, YMM16 = 150, YMM17 = 151, YMM18 = 152, YMM19 = 153, YMM20 = 154, YMM21 = 155, YMM22 = 156, YMM23 = 157, YMM24 = 158, YMM25 = 159, YMM26 = 160, YMM27 = 161, YMM28 = 162, YMM29 = 163, YMM30 = 164, YMM31 = 165, ZMM0 = 166, ZMM1 = 167, ZMM2 = 168, ZMM3 = 169, ZMM4 = 170, ZMM5 = 171, ZMM6 = 172, ZMM7 = 173, ZMM8 = 174, ZMM9 = 175, ZMM10 = 176, ZMM11 = 177, ZMM12 = 178, ZMM13 = 179, ZMM14 = 180, ZMM15 = 181, ZMM16 = 182, ZMM17 = 183, ZMM18 = 184, ZMM19 = 185, ZMM20 = 186, ZMM21 = 187, ZMM22 = 188, ZMM23 = 189, ZMM24 = 190, ZMM25 = 191, ZMM26 = 192, ZMM27 = 193, ZMM28 = 194, ZMM29 = 195, ZMM30 = 196, ZMM31 = 197, R8B = 198, R9B = 199, R10B = 200, R11B = 201, R12B = 202, R13B = 203, R14B = 204, R15B = 205, R8D = 206, R9D = 207, R10D = 208, R11D = 209, R12D = 210, R13D = 211, R14D = 212, R15D = 213, R8W = 214, R9W = 215, R10W = 216, R11W = 217, R12W = 218, R13W = 219, R14W = 220, R15W = 221, IDTR = 222, GDTR = 223, LDTR = 224, TR = 225, FPCW = 226, FPTAG = 227, MSR = 228, MXCSR = 229, FS_BASE = 230, GS_BASE = 231, FLAGS = 232, RFLAGS = 233, ENDING = 234, } impl From for i32 { fn from(r: RegisterX86) -> Self { r as i32 } } #[repr(C)] #[derive(PartialEq, Debug, Clone, Copy)] #[allow(clippy::upper_case_acronyms)] pub enum InsnX86 { IN = 218, OUT = 500, SYSCALL = 699, SYSENTER = 700, RET = 151, } #[repr(C)] #[derive(PartialEq, Debug, Clone, Copy)] #[allow(clippy::upper_case_acronyms)] pub enum InsnSysX86 { SYSCALL = InsnX86::SYSCALL as isize, SYSENTER = InsnX86::SYSENTER as isize, } #[repr(C)] #[derive(PartialEq, Debug, Clone, Copy)] pub struct X86Mmr { pub selector: u64, pub base: u64, pub limit: u32, pub flags: u32, }