This makes it explicity that we know the literals are to large and
will result in a negative number. This gets rid of a warning in
1.9.0 and younger versions, as well as an error when using the
constants as discrimintants of #[repr(i32)] enumerations in older
versions.
This change is due to an unfortunate interaction between the `s!` macro
and the Android abi. When the struct is defined, but excluded through a
`[cfg(not(target_os = "android"))]` the macro tries to define a
non-existent struct. This commit manually add the functions & struct to
each platform independently.
Relates to https://github.com/nix-rust/nix/pull/377. These constants
are only available in systems running the Linux kernel and are not
defined in musl libc (yet).
Signed-off-by: Paul Osborne <osbpau@gmail.com>
Use docker for all CI tests and images
Previously we were somewhat half-Docker, half-Travis, half apt-get, etc. This
commit alters the CI infrastructure to use Docker images for each target. This
should make it much easier to update the images and tweak various bits and
pieces of installed software. Additionally, it's also much clearer now what's
needed for each suite of tests!
Some images were updated a bit (e.g. musl is now 1.1.14), but other images
encountered failures when updating so they're not getting updated just yet.
Previously we were somewhat half-Docker, half-Travis, half apt-get, etc. This
commit alters the CI infrastructure to use Docker images for each target. This
should make it much easier to update the images and tweak various bits and
pieces of installed software. Additionally, it's also much clearer now what's
needed for each suite of tests!
Some images were updated a bit (e.g. musl is now 1.1.14), but other images
encountered failures when updating so they're not getting updated just yet.
Add Directory file descriptor relative syscall.
Add Directory file descriptor relative syscall.
I only added "*at" syscall relative to Posix2008 specification.
At the moment OSX and Android are partially supporting this API.
This include:
* `openat`
* `faccessat`
* `fchmodat`
* `fchownat`
* `fstatat`
* `linkat`
* `mkdirat`
* `mknodat` [0]
* `readlinkat`
* `renameat`
* `symlinkat`
* `unlinkat`
* `mkfifoat` [0][1]
[1] Not available on Android at the moment:
* `mkfifo`
[1] Not available on OSX at the moment:
* `mkfifoat`
* `mknodat`
And exclude operating system specific API:
* `renameat2`: Linux specific
* `execveat`: Linux specific since 3.19
* `futimesat`: GNU extension
* `name_to_handle_at`: GNU extension
* `scandirat`: GNU extension
* `fanotify_mark`: belong to fanotify API.