Skip to content

Commit

Permalink
[solarish/freebsd] add a few missing constants and a function
Browse files Browse the repository at this point in the history
Add:

* `O_RSYNC` on Solaris and illumos, based on the source code at [1]. This was
  added a long time ago, and the blame indicates that the constant is shared
  with Solaris.
* `POLLRDHUP` on illumos, based on the source code at [2]. This was also added
  a long time ago, but is not in the man page (I'll track that down separately,
  but it has been supported and used for many years). I cannot verify whether
  this is in Solaris.
* `POLLRDHUP` on FreeBSD, based on this man page [3]. This was added in 2021 [4].
* `posix_fadvise` on illumos, based on this man page [5]. The related constants
  are on GitHub [6].

[1]: https://github.com/illumos/illumos-gate/blame/f389e29fb4a3b48598f4e25151eb570247c6deed/usr/src/uts/common/sys/fcntl.h#L70
[2]: https://github.com/illumos/illumos-gate/blame/f389e29fb4a3b48598f4e25151eb570247c6deed/usr/src/uts/common/sys/poll.h#L66
[3]: https://man.freebsd.org/cgi/man.cgi?poll
[4]: https://cgit.freebsd.org/src/commit/sys/sys/poll.h?id=3aaaa2efde896e19d229ee2cf09fe7e6ab0fbf6e
[5]: https://illumos.org/man/3C/posix_fadvise
[6]: https://github.com/illumos/illumos-gate/blob/f389e29fb4a3b48598f4e25151eb570247c6deed/usr/src/uts/common/sys/fcntl.h#L407-L412
  • Loading branch information
sunshowers committed Sep 20, 2024
1 parent a6386af commit 2e3e305
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 0 deletions.
1 change: 1 addition & 0 deletions libc-test/semver/freebsd.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1027,6 +1027,7 @@ PL_FLAG_SI
PM_STR
POLLINIGNEOF
POLLRDBAND
POLLRDHUP
POLLRDNORM
POLLSTANDARD
POLLWRBAND
Expand Down
2 changes: 2 additions & 0 deletions libc-test/semver/illumos.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
O_RSYNC
POLLRDHUP
pthread_attr_get_np
pthread_attr_getstackaddr
pthread_attr_setstack
1 change: 1 addition & 0 deletions src/unix/bsd/freebsdlike/freebsd/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2830,6 +2830,7 @@ pub const POSIX_FADV_DONTNEED: ::c_int = 4;
pub const POSIX_FADV_NOREUSE: ::c_int = 5;

pub const POLLINIGNEOF: ::c_short = 0x2000;
pub const POLLRDHUP: ::c_short = 0x4000;

pub const EVFILT_READ: i16 = -1;
pub const EVFILT_WRITE: i16 = -2;
Expand Down
10 changes: 10 additions & 0 deletions src/unix/solarish/illumos.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ pub const EFD_SEMAPHORE: ::c_int = 0x1;
pub const EFD_NONBLOCK: ::c_int = 0x800;
pub const EFD_CLOEXEC: ::c_int = 0x80000;

pub const POLLRDHUP: ::c_short = 0x4000;

pub const TCP_KEEPIDLE: ::c_int = 34;
pub const TCP_KEEPCNT: ::c_int = 35;
pub const TCP_KEEPINTVL: ::c_int = 36;
Expand Down Expand Up @@ -56,6 +58,13 @@ pub const SOL_FILTER: ::c_int = 0xfffc;

pub const MADV_PURGE: ::c_int = 9;

pub const POSIX_FADV_NORMAL: ::c_int = 0;
pub const POSIX_FADV_RANDOM: ::c_int = 1;
pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2;
pub const POSIX_FADV_WILLNEED: ::c_int = 3;
pub const POSIX_FADV_DONTNEED: ::c_int = 4;
pub const POSIX_FADV_NOREUSE: ::c_int = 5;

pub const B1000000: ::speed_t = 24;
pub const B1152000: ::speed_t = 25;
pub const B1500000: ::speed_t = 26;
Expand Down Expand Up @@ -96,6 +105,7 @@ extern "C" {
stackaddr: *mut ::c_void,
) -> ::c_int;

pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, advice: ::c_int) -> ::c_int;
pub fn preadv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t) -> ::ssize_t;
pub fn pwritev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int, offset: ::off_t)
-> ::ssize_t;
Expand Down
1 change: 1 addition & 0 deletions src/unix/solarish/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1293,6 +1293,7 @@ pub const O_RDWR: ::c_int = 2;
pub const O_NDELAY: ::c_int = 0x04;
pub const O_APPEND: ::c_int = 8;
pub const O_DSYNC: ::c_int = 0x40;
pub const O_RSYNC: ::c_int = 0x8000;
pub const O_CREAT: ::c_int = 256;
pub const O_EXCL: ::c_int = 1024;
pub const O_NOCTTY: ::c_int = 2048;
Expand Down

0 comments on commit 2e3e305

Please sign in to comment.