| pub type mcontext_t = *mut __darwin_mcontext64; |
| |
| s_no_extra_traits! { |
| #[allow(missing_debug_implementations)] |
| pub struct max_align_t { |
| priv_: f64 |
| } |
| } |
| |
| s! { |
| pub struct ucontext_t { |
| pub uc_onstack: ::c_int, |
| pub uc_sigmask: ::sigset_t, |
| pub uc_stack: ::stack_t, |
| pub uc_link: *mut ::ucontext_t, |
| pub uc_mcsize: usize, |
| pub uc_mcontext: mcontext_t, |
| } |
| |
| pub struct __darwin_mcontext64 { |
| pub __es: __darwin_arm_exception_state64, |
| pub __ss: __darwin_arm_thread_state64, |
| pub __ns: __darwin_arm_neon_state64, |
| } |
| |
| pub struct __darwin_arm_exception_state64 { |
| pub __far: u64, |
| pub __esr: u32, |
| pub __exception: u32, |
| } |
| |
| pub struct __darwin_arm_thread_state64 { |
| pub __x: [u64; 29], |
| pub __fp: u64, |
| pub __lr: u64, |
| pub __sp: u64, |
| pub __pc: u64, |
| pub __cpsr: u32, |
| pub __pad: u32, |
| } |
| |
| // This type natively uses a uint128, but for a while we hacked |
| // it in with repr(align) and `[u64; 2]`. uint128 isn't available |
| // all the way back to our earliest supported versions so we |
| // preserver the old shim. |
| #[cfg_attr(not(libc_int128), repr(align(16)))] |
| pub struct __darwin_arm_neon_state64 { |
| #[cfg(libc_int128)] |
| pub __v: [::__uint128_t; 32], |
| #[cfg(not(libc_int128))] |
| pub __v: [[u64; 2]; 32], |
| pub __fpsr: u32, |
| pub __fpcr: u32, |
| } |
| } |