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.
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.
added const SOCK_SEQPACKET, and SOCK_RDM where applicable
... which is used for UNIX Seqpacket sockets as well as SCTP IP.
I have verified in source on a couple Linux flavours as well as freebsd and darwin source that SOCK_SEQPACKET has value 5.
Solaris is the odd one with a value of 6. I also added RDM for solaris (value 5)
Adding sysinfo() and sysinfo struct for Linux and Android.
Sadly, the sysinfo struct varies slightly between Musl and Glibc / Bionic.
This means that users need to be careful when using the uptime, and should
always cast it to a signed value. Why uptime can be signed is beyond me...
linux: Support getting and setting the cpu affinity for the current pthread.
This implements `pthread_getaffinity_np` and `pthread_setaffinity_np` for linux.
Sadly, the sysinfo struct varies slightly between Musl and Glibc / Bionic.
This means that users need to be careful when using the uptime, and should
always cast it to a signed value. Why uptime can be signed is beyond me...