summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Martin <brayniac@gmail.com>2016-01-15 09:05:44 -0800
committerBrian Martin <brayniac@gmail.com>2016-01-15 09:05:44 -0800
commit9cdc0d511d9f2e261367124a24ed4bdc38b5ad06 (patch)
treed231d04e997009a9ff4da8bbc6535fdf21ce85e7
parent4450b96399d901ca81267f62691ab4f5efea17d7 (diff)
downloadnix-9cdc0d511d9f2e261367124a24ed4bdc38b5ad06.zip
add aarch64 support
-rw-r--r--src/sched.rs17
-rw-r--r--src/sys/signal.rs1
-rw-r--r--src/sys/syscall.rs10
3 files changed, 28 insertions, 0 deletions
diff --git a/src/sched.rs b/src/sched.rs
index da37d7df..a73d0549 100644
--- a/src/sched.rs
+++ b/src/sched.rs
@@ -63,6 +63,23 @@ mod cpuset_attribs {
}
}
+#[cfg(all(target_arch = "aarch64", any(target_os = "linux", target_os = "android")))]
+mod cpuset_attribs {
+ use super::CpuMask;
+ pub const CPU_SETSIZE: usize = 1024;
+ pub const CPU_MASK_BITS: usize = 64;
+
+ #[inline]
+ pub fn set_cpu_mask_flag(cur: CpuMask, bit: usize) -> CpuMask {
+ cur | (1u64 << bit)
+ }
+
+ #[inline]
+ pub fn clear_cpu_mask_flag(cur: CpuMask, bit: usize) -> CpuMask {
+ cur & !(1u64 << bit)
+ }
+}
+
#[cfg(all(target_arch = "arm", any(target_os = "linux", target_os = "android")))]
mod cpuset_attribs {
use super::CpuMask;
diff --git a/src/sys/signal.rs b/src/sys/signal.rs
index cf7ac519..66dd6438 100644
--- a/src/sys/signal.rs
+++ b/src/sys/signal.rs
@@ -55,6 +55,7 @@ pub const SIGEMT: libc::c_int = 7;
#[cfg(any(all(target_os = "linux",
any(target_arch = "x86",
target_arch = "x86_64",
+ target_arch = "aarch64",
target_arch = "arm")),
target_os = "android"))]
pub mod signal {
diff --git a/src/sys/syscall.rs b/src/sys/syscall.rs
index c80defa2..f3ec60e0 100644
--- a/src/sys/syscall.rs
+++ b/src/sys/syscall.rs
@@ -24,6 +24,16 @@ mod arch {
pub static MEMFD_CREATE: Syscall = 356;
}
+#[cfg(target_arch = "aarch64")]
+mod arch {
+ use libc::c_long;
+
+ pub type Syscall = c_long;
+
+ pub static SYSPIVOTROOT: Syscall = 41;
+ pub static MEMFD_CREATE: Syscall = 279;
+}
+
#[cfg(target_arch = "arm")]
mod arch {
use libc::c_long;