diff options
author | Homu <homu@barosl.com> | 2016-03-11 21:38:26 +0900 |
---|---|---|
committer | Homu <homu@barosl.com> | 2016-03-11 21:38:26 +0900 |
commit | d53950ac24acbb94dac2479da47b085b1d9d6276 (patch) | |
tree | 4ed5d2748594d01e4f40bdf375854c657c6d0fb0 /src | |
parent | 987dcf45d2b7fdb9fcf05b1d06ffaf58718c73d4 (diff) | |
parent | 86b3cfabd9c8ac4eeee7d75afebaa69f57744854 (diff) | |
download | nix-d53950ac24acbb94dac2479da47b085b1d9d6276.zip |
Auto merge of #301 - gabrielesvelto:master, r=kamalmarhubi
Add support for MIPS targets
Closes #300
Diffstat (limited to 'src')
-rw-r--r-- | src/sched.rs | 18 | ||||
-rw-r--r-- | src/sys/syscall.rs | 9 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/sched.rs b/src/sched.rs index e59b8b05..30308446 100644 --- a/src/sched.rs +++ b/src/sched.rs @@ -87,7 +87,7 @@ mod cpuset_attribs { } } -#[cfg(all(target_arch = "arm", any(target_os = "linux", target_os = "android")))] +#[cfg(all(any(target_arch = "arm", target_arch = "mips"), target_os = "android"))] mod cpuset_attribs { use super::CpuMask; // bionic only supports up to 32 independent CPUs, instead of 1024. @@ -105,6 +105,22 @@ mod cpuset_attribs { } } +#[cfg(all(any(target_arch = "arm", target_arch = "mips"), target_os = "linux"))] +mod cpuset_attribs { + use super::CpuMask; + pub const CPU_SETSIZE: usize = 1024; + pub const CPU_MASK_BITS: usize = 32; + + #[inline] + pub fn set_cpu_mask_flag(cur: CpuMask, bit: usize) -> CpuMask { + cur | (1u32 << bit) + } + + #[inline] + pub fn clear_cpu_mask_flag(cur: CpuMask, bit: usize) -> CpuMask { + cur & !(1u32 << bit) + } +} pub type CloneCb<'a> = Box<FnMut() -> isize + 'a>; diff --git a/src/sys/syscall.rs b/src/sys/syscall.rs index f3ec60e0..c2d9e51c 100644 --- a/src/sys/syscall.rs +++ b/src/sys/syscall.rs @@ -44,6 +44,15 @@ mod arch { pub static MEMFD_CREATE: Syscall = 385; } +#[cfg(target_arch = "mips")] +mod arch { + use libc::c_long; + + pub type Syscall = c_long; + + pub static SYSPIVOTROOT: Syscall = 216; + pub static MEMFD_CREATE: Syscall = 354; +} extern { pub fn syscall(num: Syscall, ...) -> c_int; |