1 //! This module roughly corresponds to `mach/exception_types.h`.
2 
3 use port::mach_port_t;
4 use thread_status::thread_state_flavor_t;
5 use vm_types::integer_t;
6 
7 pub const EXC_BAD_ACCESS: ::libc::c_uint = 1;
8 pub const EXC_BAD_INSTRUCTION: ::libc::c_uint = 2;
9 pub const EXC_ARITHMETIC: ::libc::c_uint = 3;
10 pub const EXC_EMULATION: ::libc::c_uint = 4;
11 pub const EXC_SOFTWARE: ::libc::c_uint = 5;
12 pub const EXC_BREAKPOINT: ::libc::c_uint = 6;
13 pub const EXC_SYSCALL: ::libc::c_uint = 7;
14 pub const EXC_MACH_SYSCALL: ::libc::c_uint = 8;
15 pub const EXC_RPC_ALERT: ::libc::c_uint = 9;
16 pub const EXC_CRASH: ::libc::c_uint = 10;
17 pub const EXC_RESOURCE: ::libc::c_uint = 11;
18 pub const EXC_GUARD: ::libc::c_uint = 12;
19 pub const EXC_CORPSE_NOTIFY: ::libc::c_uint = 13;
20 pub const EXC_CORPSE_VARIANT_BIT: ::libc::c_uint = 256;
21 pub const EXCEPTION_DEFAULT: ::libc::c_uint = 1;
22 pub const EXCEPTION_STATE: ::libc::c_uint = 2;
23 pub const EXCEPTION_STATE_IDENTITY: ::libc::c_uint = 3;
24 pub const MACH_EXCEPTION_CODES: ::libc::c_uint = 2_147_483_648;
25 pub const EXC_MASK_BAD_ACCESS: ::libc::c_uint = 2;
26 pub const EXC_MASK_BAD_INSTRUCTION: ::libc::c_uint = 4;
27 pub const EXC_MASK_ARITHMETIC: ::libc::c_uint = 8;
28 pub const EXC_MASK_EMULATION: ::libc::c_uint = 16;
29 pub const EXC_MASK_SOFTWARE: ::libc::c_uint = 32;
30 pub const EXC_MASK_BREAKPOINT: ::libc::c_uint = 64;
31 pub const EXC_MASK_SYSCALL: ::libc::c_uint = 128;
32 pub const EXC_MASK_MACH_SYSCALL: ::libc::c_uint = 256;
33 pub const EXC_MASK_RPC_ALERT: ::libc::c_uint = 512;
34 pub const EXC_MASK_CRASH: ::libc::c_uint = 1024;
35 pub const EXC_MASK_RESOURCE: ::libc::c_uint = 2048;
36 pub const EXC_MASK_GUARD: ::libc::c_uint = 4096;
37 pub const EXC_MASK_CORPSE_NOTIFY: ::libc::c_uint = 8192;
38 pub const EXC_MASK_ALL: ::libc::c_uint = 7166;
39 pub const FIRST_EXCEPTION: ::libc::c_uint = 1;
40 pub const EXC_SOFT_SIGNAL: ::libc::c_uint = 65_539;
41 pub const EXC_MACF_MIN: ::libc::c_uint = 131_072;
42 pub const EXC_MACF_MAX: ::libc::c_uint = 196_607;
43 
44 pub type exception_type_t = ::libc::c_int;
45 pub type exception_data_type_t = integer_t;
46 pub type mach_exception_data_type_t = i64;
47 pub type exception_behavior_t = ::libc::c_int;
48 pub type exception_data_t = *mut exception_data_type_t;
49 pub type mach_exception_data_t = *mut mach_exception_data_type_t;
50 pub type exception_mask_t = ::libc::c_uint;
51 pub type exception_mask_array_t = *mut exception_mask_t;
52 pub type exception_behavior_array_t = *mut exception_behavior_t;
53 pub type exception_flavor_array_t = *mut thread_state_flavor_t;
54 pub type exception_port_array_t = *mut mach_port_t;
55 pub type mach_exception_code_t = mach_exception_data_type_t;
56 pub type mach_exception_subcode_t = mach_exception_data_type_t;
57