summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc-test/build.rs2
-rw-r--r--libc-test/semver/linux-gnu.txt18
-rw-r--r--libc-test/semver/linux.txt17
-rw-r--r--src/unix/haiku/mod.rs13
-rw-r--r--src/unix/linux_like/linux/gnu/mod.rs31
-rw-r--r--src/unix/linux_like/linux/mod.rs21
6 files changed, 63 insertions, 39 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index 80b73e911b..33558a9345 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -4123,7 +4123,6 @@ fn test_haiku(target: &str) {
"arpa/nameser.h",
"arpa/nameser_compat.h",
"assert.h",
- "bsd_mem.h",
"complex.h",
"ctype.h",
"dirent.h",
@@ -4228,6 +4227,7 @@ fn test_haiku(target: &str) {
"libutil.h",
"link.h",
"pty.h",
+ "stringlist.h",
}
// Native API
diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt
index f34e0681c3..1a5f6ab25a 100644
--- a/libc-test/semver/linux-gnu.txt
+++ b/libc-test/semver/linux-gnu.txt
@@ -33,23 +33,6 @@ CGROUP2_SUPER_MAGIC
CGROUP_SUPER_MAGIC
CODA_SUPER_MAGIC
CRAMFS_MAGIC
-DCCP_SERVICE_LIST_MAX_LEN
-DCCP_SOCKOPT_AVAILABLE_CCIDS
-DCCP_SOCKOPT_CCID
-DCCP_SOCKOPT_CCID_RX_INFO
-DCCP_SOCKOPT_CCID_TX_INFO
-DCCP_SOCKOPT_CHANGE_L
-DCCP_SOCKOPT_CHANGE_R
-DCCP_SOCKOPT_GET_CUR_MPS
-DCCP_SOCKOPT_PACKET_SIZE
-DCCP_SOCKOPT_QPOLICY_ID
-DCCP_SOCKOPT_QPOLICY_TXQLEN
-DCCP_SOCKOPT_RECV_CSCOV
-DCCP_SOCKOPT_RX_CCID
-DCCP_SOCKOPT_SEND_CSCOV
-DCCP_SOCKOPT_SERVER_TIMEWAIT
-DCCP_SOCKOPT_SERVICE
-DCCP_SOCKOPT_TX_CCID
DEAD_PROCESS
DEBUGFS_MAGIC
DEVPTS_SUPER_MAGIC
@@ -670,3 +653,4 @@ strptime
dirname
posix_basename
gnu_basename
+getmntent_r
diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt
index e7eefafd18..cdb0079144 100644
--- a/libc-test/semver/linux.txt
+++ b/libc-test/semver/linux.txt
@@ -334,6 +334,23 @@ DAY_4
DAY_5
DAY_6
DAY_7
+DCCP_SERVICE_LIST_MAX_LEN
+DCCP_SOCKOPT_AVAILABLE_CCIDS
+DCCP_SOCKOPT_CCID
+DCCP_SOCKOPT_CCID_RX_INFO
+DCCP_SOCKOPT_CCID_TX_INFO
+DCCP_SOCKOPT_CHANGE_L
+DCCP_SOCKOPT_CHANGE_R
+DCCP_SOCKOPT_GET_CUR_MPS
+DCCP_SOCKOPT_PACKET_SIZE
+DCCP_SOCKOPT_QPOLICY_ID
+DCCP_SOCKOPT_QPOLICY_TXQLEN
+DCCP_SOCKOPT_RECV_CSCOV
+DCCP_SOCKOPT_RX_CCID
+DCCP_SOCKOPT_SEND_CSCOV
+DCCP_SOCKOPT_SERVER_TIMEWAIT
+DCCP_SOCKOPT_SERVICE
+DCCP_SOCKOPT_TX_CCID
DT_UNKNOWN
D_FMT
D_T_FMT
diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs
index 1c40c51e66..89f8806eb4 100644
--- a/src/unix/haiku/mod.rs
+++ b/src/unix/haiku/mod.rs
@@ -55,6 +55,8 @@ pub type ACTION = ::c_int;
pub type posix_spawnattr_t = *mut ::c_void;
pub type posix_spawn_file_actions_t = *mut ::c_void;
+pub type StringList = _stringlist;
+
#[cfg_attr(feature = "extra_traits", derive(Debug))]
pub enum timezone {}
impl ::Copy for timezone {}
@@ -437,6 +439,12 @@ s! {
pub flag: *mut ::c_int,
pub val: ::c_int,
}
+
+ pub struct _stringlist {
+ pub sl_str: *mut *mut ::c_char,
+ pub sl_max: ::size_t,
+ pub sl_cur: ::size_t,
+ }
}
s_no_extra_traits! {
@@ -2017,6 +2025,11 @@ extern "C" {
pub fn strsep(string: *mut *mut ::c_char, delimiters: *const ::c_char) -> *mut ::c_char;
pub fn explicit_bzero(buf: *mut ::c_void, len: ::size_t);
pub fn login_tty(_fd: ::c_int) -> ::c_int;
+
+ pub fn sl_init() -> *mut StringList;
+ pub fn sl_add(sl: *mut StringList, n: *mut ::c_char) -> ::c_int;
+ pub fn sl_free(sl: *mut StringList, i: ::c_int);
+ pub fn sl_find(sl: *mut StringList, n: *mut ::c_char) -> *mut ::c_char;
}
cfg_if! {
diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs
index dbec992f0c..1aad8361ad 100644
--- a/src/unix/linux_like/linux/gnu/mod.rs
+++ b/src/unix/linux_like/linux/gnu/mod.rs
@@ -730,27 +730,6 @@ pub const PF_NFC: ::c_int = AF_NFC;
pub const PF_VSOCK: ::c_int = AF_VSOCK;
pub const PF_XDP: ::c_int = AF_XDP;
-/* DCCP socket options */
-pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1;
-pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2;
-pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3;
-pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4;
-pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5;
-pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6;
-pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10;
-pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11;
-pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12;
-pub const DCCP_SOCKOPT_CCID: ::c_int = 13;
-pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14;
-pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15;
-pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16;
-pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17;
-pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128;
-pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192;
-
-/// maximum number of services provided on the same listening port
-pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32;
-
pub const SIGEV_THREAD_ID: ::c_int = 4;
pub const BUFSIZ: ::c_uint = 8192;
@@ -1395,6 +1374,16 @@ extern "C" {
) -> ::c_int;
}
+// mntent.h
+extern "C" {
+ pub fn getmntent_r(
+ stream: *mut ::FILE,
+ mntbuf: *mut ::mntent,
+ buf: *mut ::c_char,
+ buflen: ::c_int,
+ ) -> *mut ::mntent;
+}
+
cfg_if! {
if #[cfg(any(target_arch = "x86",
target_arch = "arm",
diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs
index 6ac0f7092a..1d272d601d 100644
--- a/src/unix/linux_like/linux/mod.rs
+++ b/src/unix/linux_like/linux/mod.rs
@@ -3800,6 +3800,27 @@ pub const SCTP_PR_SCTP_ALL: ::c_int = 1 << 7;
pub const SCTP_NOTIFICATION: ::c_int = MSG_NOTIFICATION;
pub const SCTP_EOF: ::c_int = ::MSG_FIN;
+/* DCCP socket options */
+pub const DCCP_SOCKOPT_PACKET_SIZE: ::c_int = 1;
+pub const DCCP_SOCKOPT_SERVICE: ::c_int = 2;
+pub const DCCP_SOCKOPT_CHANGE_L: ::c_int = 3;
+pub const DCCP_SOCKOPT_CHANGE_R: ::c_int = 4;
+pub const DCCP_SOCKOPT_GET_CUR_MPS: ::c_int = 5;
+pub const DCCP_SOCKOPT_SERVER_TIMEWAIT: ::c_int = 6;
+pub const DCCP_SOCKOPT_SEND_CSCOV: ::c_int = 10;
+pub const DCCP_SOCKOPT_RECV_CSCOV: ::c_int = 11;
+pub const DCCP_SOCKOPT_AVAILABLE_CCIDS: ::c_int = 12;
+pub const DCCP_SOCKOPT_CCID: ::c_int = 13;
+pub const DCCP_SOCKOPT_TX_CCID: ::c_int = 14;
+pub const DCCP_SOCKOPT_RX_CCID: ::c_int = 15;
+pub const DCCP_SOCKOPT_QPOLICY_ID: ::c_int = 16;
+pub const DCCP_SOCKOPT_QPOLICY_TXQLEN: ::c_int = 17;
+pub const DCCP_SOCKOPT_CCID_RX_INFO: ::c_int = 128;
+pub const DCCP_SOCKOPT_CCID_TX_INFO: ::c_int = 192;
+
+/// maximum number of services provided on the same listening port
+pub const DCCP_SERVICE_LIST_MAX_LEN: ::c_int = 32;
+
f! {
pub fn NLA_ALIGN(len: ::c_int) -> ::c_int {
return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1)