summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVal Packett <val@packett.cool>2023-02-11 17:56:17 -0300
committerVal Packett <val@packett.cool>2023-02-11 18:36:21 -0300
commit196d49727492a7cd417bf71d676b9a5dc3d94ea0 (patch)
tree2bec5a4079cf058a66337adb72a1faa4efdb38bb
parent17adcf2811720173562d25b4aa5a7d4e4aa1bf46 (diff)
downloadrust-libc-196d49727492a7cd417bf71d676b9a5dc3d94ea0.tar.gz
Add more FreeBSD-specific path open option constants
-rw-r--r--libc-test/build.rs6
-rw-r--r--libc-test/semver/freebsd.txt6
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/mod.rs6
3 files changed, 18 insertions, 0 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index 79c5fbc7fd..eb82df68c1 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -2074,6 +2074,12 @@ fn test_freebsd(target: &str) {
// These constants were introduced in FreeBSD 13:
"EFD_CLOEXEC" | "EFD_NONBLOCK" | "EFD_SEMAPHORE" if Some(13) > freebsd_ver => true,
+ // This constant was introduced in FreeBSD 12:
+ "O_RESOLVE_BENEATH" if Some(12) > freebsd_ver => true,
+
+ // These constants were introduced in FreeBSD 13:
+ "O_DSYNC" | "O_PATH" | "O_EMPTY_PATH" if Some(13) > freebsd_ver => true,
+
// FIXME: These are deprecated - remove in a couple of releases.
// These constants were removed in FreeBSD 11 (svn r273250) but will
// still be accepted and ignored at runtime.
diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt
index 7426b63419..075be1428b 100644
--- a/libc-test/semver/freebsd.txt
+++ b/libc-test/semver/freebsd.txt
@@ -819,14 +819,20 @@ ONOEOT
OXTABS
O_ASYNC
O_DIRECT
+O_DSYNC
+O_EMPTY_PATH
O_EXEC
O_EXLOCK
O_FSYNC
O_NDELAY
O_NOCTTY
+O_PATH
+O_RESOLVE_BENEATH
+O_SEARCH
O_SHLOCK
O_SYNC
O_TTY_INIT
+O_VERIFY
PD_ALLOWED_AT_FORK
PD_CLOEXEC
PD_DAEMON
diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs
index c575bdcf72..fa22283013 100644
--- a/src/unix/bsd/freebsdlike/freebsd/mod.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs
@@ -2461,8 +2461,14 @@ pub const SF_USER_READAHEAD: ::c_int = 0x00000008;
pub const SF_NOCACHE: ::c_int = 0x00000010;
pub const O_CLOEXEC: ::c_int = 0x00100000;
pub const O_DIRECTORY: ::c_int = 0x00020000;
+pub const O_DSYNC: ::c_int = 0x01000000;
+pub const O_EMPTY_PATH: ::c_int = 0x02000000;
pub const O_EXEC: ::c_int = 0x00040000;
+pub const O_PATH: ::c_int = 0x00400000;
+pub const O_RESOLVE_BENEATH: ::c_int = 0x00800000;
+pub const O_SEARCH: ::c_int = O_EXEC;
pub const O_TTY_INIT: ::c_int = 0x00080000;
+pub const O_VERIFY: ::c_int = 0x00200000;
pub const F_GETLK: ::c_int = 11;
pub const F_SETLK: ::c_int = 12;
pub const F_SETLKW: ::c_int = 13;