1 pub type boolean_t = ::c_uint; 2 pub type mcontext_t = *mut __darwin_mcontext64; 3 4 s! { 5 pub struct ucontext_t { 6 pub uc_onstack: ::c_int, 7 pub uc_sigmask: ::sigset_t, 8 pub uc_stack: ::stack_t, 9 pub uc_link: *mut ::ucontext_t, 10 pub uc_mcsize: usize, 11 pub uc_mcontext: mcontext_t, 12 } 13 14 pub struct __darwin_mcontext64 { 15 pub __es: __darwin_x86_exception_state64, 16 pub __ss: __darwin_x86_thread_state64, 17 pub __fs: __darwin_x86_float_state64, 18 } 19 20 pub struct __darwin_x86_exception_state64 { 21 pub __trapno: u16, 22 pub __cpu: u16, 23 pub __err: u32, 24 pub __faultvaddr: u64, 25 } 26 27 pub struct __darwin_x86_thread_state64 { 28 pub __rax: u64, 29 pub __rbx: u64, 30 pub __rcx: u64, 31 pub __rdx: u64, 32 pub __rdi: u64, 33 pub __rsi: u64, 34 pub __rbp: u64, 35 pub __rsp: u64, 36 pub __r8: u64, 37 pub __r9: u64, 38 pub __r10: u64, 39 pub __r11: u64, 40 pub __r12: u64, 41 pub __r13: u64, 42 pub __r14: u64, 43 pub __r15: u64, 44 pub __rip: u64, 45 pub __rflags: u64, 46 pub __cs: u64, 47 pub __fs: u64, 48 pub __gs: u64, 49 } 50 51 pub struct __darwin_x86_float_state64 { 52 pub __fpu_reserved: [::c_int; 2], 53 __fpu_fcw: ::c_short, 54 __fpu_fsw: ::c_short, 55 pub __fpu_ftw: u8, 56 pub __fpu_rsrv1: u8, 57 pub __fpu_fop: u16, 58 pub __fpu_ip: u32, 59 pub __fpu_cs: u16, 60 pub __fpu_rsrv2: u16, 61 pub __fpu_dp: u32, 62 pub __fpu_ds: u16, 63 pub __fpu_rsrv3: u16, 64 pub __fpu_mxcsr: u32, 65 pub __fpu_mxcsrmask: u32, 66 pub __fpu_stmm0: __darwin_mmst_reg, 67 pub __fpu_stmm1: __darwin_mmst_reg, 68 pub __fpu_stmm2: __darwin_mmst_reg, 69 pub __fpu_stmm3: __darwin_mmst_reg, 70 pub __fpu_stmm4: __darwin_mmst_reg, 71 pub __fpu_stmm5: __darwin_mmst_reg, 72 pub __fpu_stmm6: __darwin_mmst_reg, 73 pub __fpu_stmm7: __darwin_mmst_reg, 74 pub __fpu_xmm0: __darwin_xmm_reg, 75 pub __fpu_xmm1: __darwin_xmm_reg, 76 pub __fpu_xmm2: __darwin_xmm_reg, 77 pub __fpu_xmm3: __darwin_xmm_reg, 78 pub __fpu_xmm4: __darwin_xmm_reg, 79 pub __fpu_xmm5: __darwin_xmm_reg, 80 pub __fpu_xmm6: __darwin_xmm_reg, 81 pub __fpu_xmm7: __darwin_xmm_reg, 82 pub __fpu_xmm8: __darwin_xmm_reg, 83 pub __fpu_xmm9: __darwin_xmm_reg, 84 pub __fpu_xmm10: __darwin_xmm_reg, 85 pub __fpu_xmm11: __darwin_xmm_reg, 86 pub __fpu_xmm12: __darwin_xmm_reg, 87 pub __fpu_xmm13: __darwin_xmm_reg, 88 pub __fpu_xmm14: __darwin_xmm_reg, 89 pub __fpu_xmm15: __darwin_xmm_reg, 90 // this field is actually [u8; 96], but defining it with a bigger type 91 // allows us to auto-implement traits for it since the length of the 92 // array is less than 32 93 __fpu_rsrv4: [u32; 24], 94 pub __fpu_reserved1: ::c_int, 95 } 96 97 pub struct __darwin_mmst_reg { 98 pub __mmst_reg: [::c_char; 10], 99 pub __mmst_rsrv: [::c_char; 6], 100 } 101 102 pub struct __darwin_xmm_reg { 103 pub __xmm_reg: [::c_char; 16], 104 } 105 106 pub struct malloc_introspection_t { 107 _private: [::uintptr_t; 16], // FIXME: keeping private for now 108 } 109 110 pub struct malloc_zone_t { 111 _reserved1: *mut ::c_void, 112 _reserved2: *mut ::c_void, 113 pub size: ::Option<unsafe extern "C" fn( 114 zone: *mut malloc_zone_t, 115 ptr: *const ::c_void, 116 ) -> ::size_t>, 117 pub malloc: ::Option<unsafe extern "C" fn( 118 zone: *mut malloc_zone_t, 119 size: ::size_t, 120 ) -> *mut ::c_void>, 121 pub calloc: ::Option<unsafe extern "C" fn( 122 zone: *mut malloc_zone_t, 123 num_items: ::size_t, 124 size: ::size_t, 125 ) -> *mut ::c_void>, 126 pub valloc: ::Option<unsafe extern "C" fn( 127 zone: *mut malloc_zone_t, 128 size: ::size_t 129 ) -> *mut ::c_void>, 130 pub free: ::Option<unsafe extern "C" fn( 131 zone: *mut malloc_zone_t, 132 ptr: *mut ::c_void 133 )>, 134 pub realloc: ::Option<unsafe extern "C" fn( 135 zone: *mut malloc_zone_t, 136 ptr: *mut ::c_void, 137 size: ::size_t, 138 ) -> *mut ::c_void>, 139 pub destroy: ::Option<unsafe extern "C" fn(zone: *mut malloc_zone_t)>, 140 pub zone_name: *const ::c_char, 141 pub batch_malloc: ::Option<unsafe extern "C" fn( 142 zone: *mut malloc_zone_t, 143 size: ::size_t, 144 results: *mut *mut ::c_void, 145 num_requested: ::c_uint, 146 ) -> ::c_uint>, 147 pub batch_free: ::Option<unsafe extern "C" fn( 148 zone: *mut malloc_zone_t, 149 to_be_freed: *mut *mut ::c_void, 150 num_to_be_freed: ::c_uint, 151 )>, 152 pub introspect: *mut malloc_introspection_t, 153 pub version: ::c_uint, 154 pub memalign: ::Option<unsafe extern "C" fn( 155 zone: *mut malloc_zone_t, 156 alignment: ::size_t, 157 size: ::size_t, 158 ) -> *mut ::c_void>, 159 pub free_definite_size: ::Option<unsafe extern "C" fn( 160 zone: *mut malloc_zone_t, 161 ptr: *mut ::c_void, 162 size: ::size_t 163 )>, 164 pub pressure_relief: ::Option<unsafe extern "C" fn( 165 zone: *mut malloc_zone_t, 166 goal: ::size_t, 167 ) -> ::size_t>, 168 pub claimed_address: ::Option<unsafe extern "C" fn( 169 zone: *mut malloc_zone_t, 170 ptr: *mut ::c_void, 171 ) -> ::boolean_t>, 172 } 173 } 174 175 cfg_if! { 176 if #[cfg(libc_align)] { 177 mod align; 178 pub use self::align::*; 179 } 180 } 181