summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2020-04-09 17:39:06 -0700
committerAlex Crichton <alex@alexcrichton.com>2020-04-10 11:15:06 -0700
commit17d5bc841b479219851b69bb43aff11c19b7f2bc (patch)
tree00dfa709dffd8840c943f0302494bc08a2e73640
parenta1c40924ae8aed3156121fe21be4fe698b368711 (diff)
downloadrust-libc-17d5bc841b479219851b69bb43aff11c19b7f2bc.tar.gz
Add definition of ucontext_t for aarch64-unknown-linux-gnu
-rw-r--r--src/unix/linux_like/linux/gnu/b64/aarch64/align.rs22
-rw-r--r--src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs2
2 files changed, 23 insertions, 1 deletions
diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs
index 8e949963a6..154c2c54ce 100644
--- a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs
+++ b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs
@@ -5,3 +5,25 @@ s_no_extra_traits! {
priv_: [f32; 8]
}
}
+
+s! {
+ pub struct ucontext_t {
+ pub uc_flags: ::c_ulong,
+ pub uc_link: *mut ucontext_t,
+ pub uc_stack: ::stack_t,
+ pub uc_sigmask: ::sigset_t,
+ pub uc_mcontext: mcontext_t,
+ }
+
+ #[repr(align(16))]
+ pub struct mcontext_t {
+ pub fault_address: ::c_ulonglong,
+ pub regs: [::c_ulonglong; 31],
+ pub sp: ::c_ulonglong,
+ pub pc: ::c_ulonglong,
+ pub pstate: ::c_ulonglong,
+ // nested arrays to get the right size/length while being able to
+ // auto-derive traits like Debug
+ __reserved: [[u64; 32]; 16],
+ }
+}
diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
index d64a1b02be..bf2e1c9934 100644
--- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
@@ -533,7 +533,7 @@ pub const MAP_POPULATE: ::c_int = 0x08000;
pub const MAP_NONBLOCK: ::c_int = 0x010000;
pub const MAP_STACK: ::c_int = 0x020000;
pub const MAP_HUGETLB: ::c_int = 0x040000;
-pub const MAP_SYNC : ::c_int = 0x080000;
+pub const MAP_SYNC: ::c_int = 0x080000;
pub const EDEADLOCK: ::c_int = 35;