Age | Commit message (Collapse) | Author |
|
This was doing testing for errno constants and a few other
types that is no longer necessary now that these types are
all tested within the libc project itself.
|
|
696: Stop reexporting `Errno` variants r=Susurrus a=jonas-schievink
Closes #664 (unsure if this is everything needed)
|
|
cc #664 (unsure if this is everything needed)
|
|
|
|
|
|
694: Remove workaround for `pub extern crate` r=asomers
On semi-recent Rust versions (I think 1.8+) this now works properly.
Closes #655
|
|
On semi-recent Rust versions (I think 1.8+) this now works properly.
|
|
These were exported for some weird reason and then left in
for documentation. Also some parts of certain modules used
them and others used the libc:: prefix. This was removed to
improve the docs and also code consistency
|
|
Some ptrace functions return structures through the data argument. This commit adds utilities to return data through this mechanism and function specialisations for a few of these functions (getting event messages or the siginfo_t struct). Once the next version of libc is released these utilities will be expanded to include the fpregs and user_regs structs.
Ptrace requests that are now satisfied by a more specific public function will return an unsupported operation error. This has involved adding an UnsupportedOperation to the nix::Error enum and removed the mapping from Error to Errno and from Error to std::io::Error.
|
|
* grantpt
* ptsname/ptsname_r
* posix_openpt
* unlockpt
|
|
Prefer libc_bitflags! over bitflags!. Prefer libc::CONSTANTS over
writing the constant manually.
|
|
Signed-off-by: Paul Osborne <paul.osborne@smartthings.com>
|
|
|
|
This prevents us breaking builds under newer Rust versions with
additional warnings.
|
|
|
|
Add context module.
The module wraps context handling related functions and structs.
|
|
We define many bitflags types with values from the libc crate. Currently
these look like this:
bitflags!{
flags ProtFlags: libc::c_int {
const PROT_NONE = libc::PROT_NONE,
const PROT_READ = libc::PROT_READ,
const PROT_WRITE = libc::PROT_WRITE,
const PROT_EXEC = libc::PROT_EXEC,
#[cfg(any(target_os = "linux", target_os = "android"))]
const PROT_GROWSDOWN = libc::PROT_GROWSDOWN,
#[cfg(any(target_os = "linux", target_os = "android"))]
const PROT_GROWSUP = libc::PROT_GROWSUP,
}
}
There's some repetition which is tedious. With the new macro, the above
can instead be written
libc_bitflags!{
flags ProtFlags: libc::c_int {
PROT_NONE,
PROT_READ,
PROT_WRITE,
PROT_EXEC,
#[cfg(any(target_os = "linux", target_os = "android"))]
PROT_GROWSDOWN,
#[cfg(any(target_os = "linux", target_os = "android"))]
PROT_GROWSUP,
}
}
Thanks to Daniel Keep for the Little Book of Rust Macros, and for
helping with this macro.
Refs https://github.com/nix-rust/nix/issues/264
|
|
The module wraps context handling related functions and structs.
|
|
With rust 1.7, the following warning was being emitted by the compiler:
warning: `pub extern crate` does not work as expected and should
not be used. Likely to become an error. Prefer `extern crate` and
`pub use`.
Based on https://github.com/rust-lang/rust/issues/26775 it appears that
the warning in 1.7 which was to be escalated to an error is going away
but in older versions of rust it is still the case that `pub extern crate`
will not work as expected. Instead, we use a somewhat creative hack to
export the libc root as a module in nix. Down the line, it may make
sense to either eliminate the need to export libc (by chaning the ioctl
macros) or to move toward deprecated older versions of rustc.
Signed-off-by: Paul Osborne <osbpau@gmail.com>
|
|
Refs https://github.com/nix-rust/nix/issues/264
|
|
|
|
|
|
|
|
|
|
|
|
This is a stop gap improvement until the NixPath reform is figured out.
refs #221
|
|
The functions defined are POSIX and should exist on all platforms nix
supports.
|
|
|
|
This makes NixPath more versatile while waiting to see if there will be
a NixPath overhaul.
Refs https://github.com/carllerche/nix-rust/issues/221
|
|
|
|
|
|
|
|
|
|
- Add From implementaion for io::Error, so nix::Error can be turned into
a std::io::Error.
- Add From from Errno - a little more idiomatic than from_errno these days
- Implement std::error::Error for nix::Error
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
Initially support this by assuming the lowest common denominator. The long
term solution is to improve the build system to allow pulling in more specific
features that are available on the target system.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|