1 //! This module corresponds to `mach/_structs.h`. 2 3 use mem; 4 use message::mach_msg_type_number_t; 5 6 #[repr(C)] 7 #[derive(Copy, Clone, Debug, Default, Hash, PartialOrd, PartialEq, Eq, Ord)] 8 pub struct x86_thread_state64_t { 9 pub __rax: u64, 10 pub __rbx: u64, 11 pub __rcx: u64, 12 pub __rdx: u64, 13 pub __rdi: u64, 14 pub __rsi: u64, 15 pub __rbp: u64, 16 pub __rsp: u64, 17 pub __r8: u64, 18 pub __r9: u64, 19 pub __r10: u64, 20 pub __r11: u64, 21 pub __r12: u64, 22 pub __r13: u64, 23 pub __r14: u64, 24 pub __r15: u64, 25 pub __rip: u64, 26 pub __rflags: u64, 27 pub __cs: u64, 28 pub __fs: u64, 29 pub __gs: u64, 30 } 31 32 impl x86_thread_state64_t { new() -> Self33 pub fn new() -> Self { 34 Self { 35 __rax: 0, 36 __rbx: 0, 37 __rcx: 0, 38 __rdx: 0, 39 __rdi: 0, 40 __rsi: 0, 41 __rbp: 0, 42 __rsp: 0, 43 __r8: 0, 44 __r9: 0, 45 __r10: 0, 46 __r11: 0, 47 __r12: 0, 48 __r13: 0, 49 __r14: 0, 50 __r15: 0, 51 __rip: 0, 52 __rflags: 0, 53 __cs: 0, 54 __fs: 0, 55 __gs: 0, 56 } 57 } 58 count() -> mach_msg_type_number_t59 pub fn count() -> mach_msg_type_number_t { 60 (mem::size_of::<Self>() / mem::size_of::<::libc::c_int>()) as mach_msg_type_number_t 61 } 62 } 63