Skip to content

Commit 51da26d

Browse files
committed
Restore non-POSIX functions guarded by the _KERNEL macro.
1 parent aa99092 commit 51da26d

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

libc-test/build.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5738,6 +5738,14 @@ fn test_aix(target: &str) {
57385738
"setdomainname" | "settimeofday" | "statfs" | "statfs64" | "statx" | "swapoff"
57395739
| "swapon" | "utmpname" | "setgroups" => true,
57405740

5741+
// These non-POSIX functions are guarded by the _KERNEL macro in the AIX headers.
5742+
"recvmmsg" | "sendmmsg" | "sctp_opt_info" | "sctp_peeloff" | "sethostid"
5743+
| "sethostname" | "splice" => true,
5744+
5745+
// 'mount' is available in the system's libc.a and has a man page, but it is
5746+
// not declared in the AIX headers."
5747+
"mount" => true,
5748+
57415749
_ => false,
57425750
}
57435751
});

libc-test/semver/aix.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2133,6 +2133,7 @@ mmap
21332133
mmsghdr
21342134
mntent
21352135
mode_t
2136+
mount
21362137
mprotect
21372138
mq_attr
21382139
mq_close
@@ -2363,6 +2364,7 @@ realloc
23632364
realpath
23642365
recv
23652366
recvfrom
2367+
recvmmsg
23662368
recvmsg
23672369
regcomp
23682370
regerror
@@ -2393,6 +2395,8 @@ sched_rr_get_interval
23932395
sched_setparam
23942396
sched_setscheduler
23952397
sched_yield
2398+
sctp_opt_info
2399+
sctp_peeloff
23962400
seed48
23972401
seekdir
23982402
select
@@ -2413,6 +2417,7 @@ semget
24132417
semop
24142418
send
24152419
send_file
2420+
sendmmsg
24162421
sendmsg
24172422
sendto
24182423
servent
@@ -2425,6 +2430,8 @@ seteuid
24252430
setgid
24262431
setgrent
24272432
setgroups
2433+
sethostid
2434+
sethostname
24282435
setitimer
24292436
setlocale
24302437
setlogmask
@@ -2484,6 +2491,7 @@ socket
24842491
socketpair
24852492
socklen_t
24862493
speed_t
2494+
splice
24872495
sprintf
24882496
srand
24892497
srand48

src/unix/aix/mod.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3027,6 +3027,7 @@ extern "C" {
30273027
pub fn mincore(addr: caddr_t, len: size_t, vec: *mut c_char) -> c_int;
30283028
pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int;
30293029
pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int;
3030+
pub fn mount(device: *const c_char, path: *const c_char, flags: c_int) -> c_int;
30303031
pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int;
30313032
pub fn mq_close(mqd: crate::mqd_t) -> c_int;
30323033
pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int;
@@ -3196,6 +3197,13 @@ extern "C" {
31963197
addr: *mut crate::sockaddr,
31973198
addrlen: *mut crate::socklen_t,
31983199
) -> ssize_t;
3200+
pub fn recvmmsg(
3201+
sockfd: c_int,
3202+
msgvec: *mut crate::mmsghdr,
3203+
vlen: c_uint,
3204+
flags: c_int,
3205+
timeout: *mut crate::timespec,
3206+
) -> c_int;
31993207
// AIX header socket.h maps recvmsg() to nrecvmsg().
32003208
#[link_name = "nrecvmsg"]
32013209
pub fn recvmsg(sockfd: c_int, msg: *mut msghdr, flags: c_int) -> ssize_t;
@@ -3226,6 +3234,14 @@ extern "C" {
32263234
policy: c_int,
32273235
param: *const crate::sched_param,
32283236
) -> c_int;
3237+
pub fn sctp_opt_info(
3238+
sd: c_int,
3239+
id: c_uint,
3240+
opt: c_int,
3241+
arg_size: *mut c_void,
3242+
size: *mut size_t,
3243+
) -> c_int;
3244+
pub fn sctp_peeloff(s: c_int, id: *mut c_uint) -> c_int;
32293245
pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort;
32303246
pub fn seekdir(dirp: *mut crate::DIR, loc: c_long);
32313247
pub fn sem_close(sem: *mut sem_t) -> c_int;
@@ -3239,13 +3255,16 @@ extern "C" {
32393255
pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int;
32403256
pub fn semop(semid: c_int, sops: *mut sembuf, nsops: size_t) -> c_int;
32413257
pub fn send_file(socket: *mut c_int, iobuf: *mut sf_parms, flags: c_uint) -> ssize_t;
3258+
pub fn sendmmsg(sockfd: c_int, msgvec: *mut mmsghdr, vlen: c_uint, flags: c_int) -> c_int;
32423259
// AIX header socket.h maps sendmsg() to nsendmsg().
32433260
#[link_name = "nsendmsg"]
32443261
pub fn sendmsg(sockfd: c_int, msg: *const msghdr, flags: c_int) -> ssize_t;
32453262
pub fn setcontext(ucp: *const ucontext_t) -> c_int;
32463263
pub fn setdomainname(name: *const c_char, len: c_int) -> c_int;
32473264
pub fn setgroups(ngroups: c_int, ptr: *const crate::gid_t) -> c_int;
32483265
pub fn setgrent();
3266+
pub fn sethostid(hostid: c_int) -> c_int;
3267+
pub fn sethostname(name: *const c_char, len: c_int) -> c_int;
32493268
pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE;
32503269
pub fn setpriority(which: c_int, who: id_t, priority: c_int) -> c_int;
32513270
pub fn setpwent();
@@ -3274,6 +3293,7 @@ extern "C" {
32743293
pub fn shmget(key: key_t, size: size_t, shmflg: c_int) -> c_int;
32753294
pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int;
32763295
pub fn shm_unlink(name: *const c_char) -> c_int;
3296+
pub fn splice(socket1: c_int, socket2: c_int, flags: c_int) -> c_int;
32773297
pub fn srand(seed: c_uint);
32783298
pub fn srand48(seed: c_long);
32793299
pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int;

0 commit comments

Comments
 (0)