summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-02-14 22:41:22 +0000
committerbors <bors@rust-lang.org>2022-02-14 22:41:22 +0000
commit31657a524190e91d3cf726e089bfc3e015d54ac1 (patch)
treeb1b753aa7ef53c406beec8194b6dd5c66afa9963
parentb3c9c696a32bdcd2da53ec5b3389396827a809c7 (diff)
parent0a0158947b3d70511f04b4e236cf86eb9ad3c863 (diff)
downloadrust-libc-31657a524190e91d3cf726e089bfc3e015d54ac1.tar.gz
Auto merge of #2686 - devnexen:bsd_nonsec_random_api, r=Amanieu
BSD add deterministic rand api
-rw-r--r--libc-test/semver/dragonfly.txt9
-rw-r--r--libc-test/semver/freebsd.txt9
-rw-r--r--libc-test/semver/netbsd.txt9
-rw-r--r--libc-test/semver/openbsd.txt12
-rw-r--r--src/unix/bsd/mod.rs10
-rw-r--r--src/unix/bsd/netbsdlike/openbsd/mod.rs4
6 files changed, 53 insertions, 0 deletions
diff --git a/libc-test/semver/dragonfly.txt b/libc-test/semver/dragonfly.txt
index ad3b0b5a61..3f01a5c35b 100644
--- a/libc-test/semver/dragonfly.txt
+++ b/libc-test/semver/dragonfly.txt
@@ -1237,6 +1237,8 @@ difftime
dirfd
dl_iterate_phdr
dl_phdr_info
+drand48
+erand48
duplocale
endgrent
endpwent
@@ -1307,6 +1309,7 @@ if_nameindex
ifaddrs
in6_pktinfo
initgroups
+jrand48
kevent
killpg
kinfo_cputime
@@ -1315,9 +1318,11 @@ kqueue
labs
lastlog
lchflags
+lcong48
lio_listio
lockf
login_tty
+lrand48
lutimes
lwp_rtprio
lwpid_t
@@ -1343,12 +1348,14 @@ mq_timedreceive
mq_timedsend
mq_unlink
mqd_t
+mrand48
msghdr
newlocale
nice
nl_item
nl_langinfo
nl_langinfo_l
+nrand48
ntp_adjtime
ntp_gettime
ntptimeval
@@ -1428,6 +1435,7 @@ sched_param
sched_rr_get_interval
sched_setparam
sched_setscheduler
+seed48
seekdir
sem
sem_close
@@ -1469,6 +1477,7 @@ sigwait
sigwaitinfo
sockaddr_dl
srand
+srand48
stack_t
statfs
strcasecmp
diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt
index ef6623cd01..4858043fad 100644
--- a/libc-test/semver/freebsd.txt
+++ b/libc-test/semver/freebsd.txt
@@ -1462,12 +1462,14 @@ difftime
dirfd
dl_iterate_phdr
dl_phdr_info
+drand48
dup3
duplocale
endgrent
endpwent
endservent
endutxent
+erand48
explicit_bzero
extattr_delete_fd
extattr_delete_file
@@ -1568,6 +1570,7 @@ jail_attach
jail_get
jail_remove
jail_set
+jrand48
kevent
key_t
killpg
@@ -1579,9 +1582,11 @@ kld_isloaded
kld_load
labs
lchflags
+lcong48
lio_listio
lockf
login_tty
+lrand48
lutimes
lwpid_t
madvise
@@ -1613,6 +1618,7 @@ mq_timedreceive
mq_timedsend
mq_unlink
mqd_t
+mrand48
msgctl
msgget
msghdr
@@ -1628,6 +1634,7 @@ nl_item
nl_langinfo
nl_langinfo_l
nmount
+nrand48
ntp_adjtime
ntp_gettime
ntptimeval
@@ -1760,6 +1767,7 @@ sched_rr_get_interval
sched_setparam
sched_setscheduler
sdallocx
+seed48
seekdir
sem_close
sem_destroy
@@ -1809,6 +1817,7 @@ sigwaitinfo
sockaddr_dl
sockcred
srand
+srand48
stack_t
statfs
strcasecmp
diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt
index f3bc44cecc..a2ce837d18 100644
--- a/libc-test/semver/netbsd.txt
+++ b/libc-test/semver/netbsd.txt
@@ -1139,11 +1139,13 @@ dirfd
dl_iterate_phdr
dl_phdr_info
dqblk
+drand48
dup3
duplocale
easprintf
efopen
emalloc
+erand48
erealloc
ereallocarr
esetfunc
@@ -1247,6 +1249,7 @@ in_pktinfo
initgroups
ipc_perm
itimerspec
+jrand48
kevent
key_t
killpg
@@ -1258,6 +1261,7 @@ labs
lastlog
lastlogx
lchflags
+lcong48
lgetxattr
lio_listio
listxattr
@@ -1271,6 +1275,7 @@ logoutx
logwtmp
logwtmpx
login_tty
+lrand48
lremovexattr
lsetxattr
lutimes
@@ -1299,11 +1304,13 @@ mq_timedreceive
mq_timedsend
mq_unlink
mqd_t
+mrand48
msghdr
newlocale
nice
nl_item
nl_langinfo
+nrand48
ntp_adjtime
ntp_gettime
ntptimeval
@@ -1394,6 +1401,7 @@ sched_rr_get_interval
sched_setparam
sched_setscheduler
secure_path
+seed48
seekdir
sem
sem_close
@@ -1438,6 +1446,7 @@ snprintb_m
sockaddr_dl
sockcred
srand
+srand48
stack_t
strcasecmp
strcasestr
diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt
index 5c316c9f37..78faf1a62b 100644
--- a/libc-test/semver/openbsd.txt
+++ b/libc-test/semver/openbsd.txt
@@ -937,11 +937,13 @@ difftime
dirfd
dl_iterate_phdr
dl_phdr_info
+drand48
dup3
duplocale
endgrent
endpwent
endservent
+erand48
execvpe
explicit_bzero
export_args
@@ -1002,6 +1004,7 @@ initgroups
ip_mreqn
ipc_perm
iso_args
+jrand48
kevent
key_t
killpg
@@ -1009,8 +1012,11 @@ kinfo_vmentry
kqueue
labs
lastlog
+lcong48
+lcong48_deterministic
lockf
login_tty
+lrand48
madvise
malloc_conceal
memmem
@@ -1024,6 +1030,7 @@ mkostemp
mkostemps
mkstemps
mount_info
+mrand48
msdosfs_args
msghdr
newlocale
@@ -1031,6 +1038,7 @@ nfs_args
nice
nl_item
nl_langinfo
+nrand48
ntfs_args
open_memstream
open_wmemstream
@@ -1084,6 +1092,8 @@ regmatch_t
regoff_t
sched_get_priority_max
sched_get_priority_min
+seed48
+seed48_deterministic
seekdir
sem
sem_close
@@ -1121,6 +1131,8 @@ sockaddr_dl
sockpeercred
splice
srand
+srand48
+srand48_deterministic
stack_t
statfs
strcasecmp
diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs
index a08506d16a..a0729ee545 100644
--- a/src/unix/bsd/mod.rs
+++ b/src/unix/bsd/mod.rs
@@ -867,6 +867,16 @@ extern "C" {
pub fn arc4random() -> u32;
pub fn arc4random_buf(buf: *mut ::c_void, size: ::size_t);
pub fn arc4random_uniform(l: u32) -> u32;
+
+ pub fn drand48() -> ::c_double;
+ pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double;
+ pub fn lrand48() -> ::c_long;
+ pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long;
+ pub fn mrand48() -> ::c_long;
+ pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long;
+ pub fn srand48(seed: ::c_long);
+ pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort;
+ pub fn lcong48(p: *mut ::c_ushort);
}
cfg_if! {
diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs
index 2365343205..9cab0b1a2d 100644
--- a/src/unix/bsd/netbsdlike/openbsd/mod.rs
+++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs
@@ -1633,6 +1633,10 @@ extern "C" {
pub fn freezero(ptr: *mut ::c_void, size: ::size_t);
pub fn malloc_conceal(size: ::size_t) -> *mut ::c_void;
pub fn calloc_conceal(nmemb: ::size_t, size: ::size_t) -> *mut ::c_void;
+
+ pub fn srand48_deterministic(seed: ::c_long);
+ pub fn seed48_deterministic(xseed: *mut ::c_ushort) -> *mut ::c_ushort;
+ pub fn lcong48_deterministic(p: *mut ::c_ushort);
}
#[link(name = "execinfo")]