summaryrefslogtreecommitdiffstats
path: root/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs')
-rw-r--r--vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs b/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs
new file mode 100644
index 000000000..131e15b69
--- /dev/null
+++ b/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs
@@ -0,0 +1,55 @@
+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,
+ }
+}