summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2015-08-12remove osx-specific Debug implCorey Richardson
2015-08-12Update docsCorey Richardson
2015-08-12Update some stuff for upstream bitflags changesCorey Richardson
2015-08-12Completely revamp sys::ioctl to use cmr/ioctl's approachCorey Richardson
This is more type-safe. Also, the old code wasn't cross-platform at all even though it claimed to be. It wasn't even portable across architectures on Linux.
2015-08-10Make eventfds compile againDavid Henningsson
2015-08-10Add missing exec functionsNik Klassen
2015-07-27Make it compatible for Android.Tim JIANG
* Fixed an unused_import error in `termios.rs` for Android. * Fixed undefined references to `preadv` and `pwritev` for Android - At least they don't exist from API level 3 to 21. * Fixed the uid > 0 and gid > 0 checks in `stat`'s tests - Running the tests by root is possible, especially when running on a rooted Android device. Those changes made rust-nix buildable (again) on Android. All the tests passed as well.
2015-07-20Derive Clone for EpollEvent on android.Carl Lerche
Fixes #165
2015-07-18added mq_getattr for LinuxMarkus Jais
2015-07-13Remove import on those platforms where it is unused.Laurence Tratt
2015-07-13Add status to WaitStatusJoseph Kain
* Extend the enums in WaitStatus to include all process states (signaled, stopped, exited, continued). * Decode status from waitpid * Return appropate WaitStatus * Update tests to use the new WaitStatus * Add new tests for specific status values
2015-07-13Add support for preadv and pwritev to sys/uio on Linux.Trip Volpe
2015-07-07remove unneeded mut.Felix Kronlage
nightly will comment this with: --- src/unistd.rs:241:13: 241:20 error: variable does not need to be mutable, #[deny(unused_mut)] on by default src/unistd.rs:241 let mut res; ---
2015-07-06Consts are not on all kernelsTilde Engineering
2015-07-06Use c_long in ptrace fns for arch-independenceTilde Engineering
2015-07-06Add feature flag around execvpeTilde Engineering
2015-07-03Add support for ptraceJoseph Kain
Closes #138
2015-07-01Remove sa_tramp from macos sigactionNik Klassen
2015-06-24Implement more fcntl operationsAndy Grover
Derive some more traits on flock to make life easier Change fcntl to return Result<c_int> so we can get results of F_GET* ops. Change pipe2_setflags to match.
2015-06-24TCP_NODELAY should be in IPPROTO_TCP levelY. T. Chung
2015-06-17Change pread/pwrite to take offset as a off_t.Holger Rapp
This fixes compile for 32 bit systems like certain ARM
2015-06-15TCP_KEEPALIVE, TCP_KEEPIDLE, split SockOpt traitY. T. Chung
* Split SockOpt trait into GetSockOpt and SetSockOpt. * Add support for TCP_KEEPALIVE & TCP_KEEPIDLE
2015-06-08added wait system call and unit testMarkus Jais
2015-06-05Add pwrite and preadFlorian Hartwig
2015-05-29Basic OpenBSD support.Laurence Tratt
Some of the tests are currently unrunnable, but the basic library is at least buildable.
2015-05-28Remove std::os::unix::io::RawFd re-exportCarl Lerche
2015-05-28Pass shutdown enum by valueCarl Lerche
2015-05-28Move nix::mq -> nix::mqueue to mirror headerCarl Lerche
2015-05-27Add sys::socket send and recvPhil Dawes
2015-05-24Change epoll_wait to use isize timeout_ms.Cole Reynolds
A timeout of -1 makes epoll block indefinitely, a usize timeout means we can't specify this behavior; using isize fixes this.
2015-05-21Fix NixPath yield with CStr instead of OsStrCarl Lerche
As described in #117, the `AsExtStr` trait is defined to return a raw `*const libc::c_char`. Its impl for `OsStr` simply borrowed the byte slice from its `OsStr` argument and cast it to a `*const libc::c_char`, which does not construct a proper null-terminated C string. Given this, the `AsExtStr` is not necessary and is removed. `NixPath` is updated to yield `CStr`. Fixes #117, #120 Thanks to @dead10ck
2015-05-21Fix travis testsCarl Lerche
2015-05-21Test sockopt const valuesCarl Lerche
2015-05-21Add socket::shutdown functionhoxnox
libc::funcs::bsd43::shutdown is used
2015-05-19added getpid and getppidMarkus Jais
2015-05-13docs: fix module documentation for ioctlPaul Osborne
Two problems were fixed: 1. All of the comments for the module were prefixed with `///!` instead of just `//!` 2. There was no newline before lists which is required in markdown, so they were not rendering correctly.
2015-05-12ioctl: modify type signatures to match common ioctl usage and libc implsPaul Osborne
The ioctl interface expected by most external parties is that of an unsigned long (c_ulong). The libc crate expects as an int. This change exposes c_ulong (via ioctl_op_t) to external users and casts to c_int before calling the libc function. The only documentation in SUSv3 for ioctl has to do with stream devices. The support documented there is not widely supported (it is not supported by the Linux kernel)[1]. [1] The Linux Programming Interface, Page 86.
2015-05-12ioctl: implement generic support for the ioctl syscall and supporting functionsPaul Osborne
This commit provides a new implementation for ioctl that is much more generic, allowing for clients to use send any manner of ioctl requests at special files. The implementation provides two main features that help to raise the level of abstraction over that provided by libc. 1. The module now provides functions that provide the same functionality as the linux kernel _IO* macros. These are used frequently in the linux kernel for building ops for ioctls. The use of these helper functions are not required. 2. Functions are provided for the 3 main types of ioctl usage patterns (read, write, and execute). For many subystems, the read() call which returns a Result<T> and the write calls taking a &T provide a nice interface. All of the methods wrapping ioctl are unsafe and will probably need to remain that way unless knowledge of the semantics of every possible ioctl call are added to the nix library. The best that exists for ioctls are some conventions around the op, but even these conventions are really only used for newer devices added to the kernel. This change resolves #108
2015-05-11Get the library to build on freebsdAndrew J. Stone
`cargo build` works.
2015-05-08Add lstatSkyler Hawthorne
2015-05-07Scope to unix platformsCarl Lerche
2015-05-07More multicast supportCarl Lerche
2015-05-05feat: add execvpeQingping Hou
2015-04-28feat: add chroot syscallQingping Hou
2015-04-27Basic Posix MQ supportMarkus Jais
2015-04-24sched: add support for arm linux using same cpuset_attribs as androidPaul Osborne
The limit of 32 cores may not actually be a limit with arm-linux, but I am not aware of anything in excess of 32 processors out there currently and this is what I have been running for awhile now on a beaglebone black (`--target=arm-unknown-linux-gnueabihf`). This change addresses #95 and relates to #97.
2015-04-24FromPrimitive is no moreFlorian Hartwig
2015-04-20Fix build on Rust nightliesCarl Lerche
2015-04-18Added OOB_INLINE socket optionValerii Hiora
2015-04-14Make `sigaction` unsafeTobias Bucher
This is done because interrupted execution has soundness bugs regarding thread-local storage. Fixes #90.