From 99b36350794dc5afaaadd1a536c4cc713c3819ae Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Tue, 24 Nov 2020 10:40:49 +0100 Subject: [PATCH] Add getrandom to FreeBSD Introduced in FreeBSD 12.0. Manual page: https://www.freebsd.org/cgi/man.cgi?query=getrandom. --- libc-test/build.rs | 1 + src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index 8186f9196caf2..964fe7b44733b 100755 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1706,6 +1706,7 @@ fn test_freebsd(target: &str) { "sys/msg.h", "sys/procdesc.h", "sys/ptrace.h", + "sys/random.h", "sys/resource.h", "sys/rtprio.h", "sys/shm.h", diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index 94baa090598f0..89729a81623b5 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -197,12 +197,16 @@ pub const F_SEAL_SHRINK: ::c_int = 0x0002; pub const F_SEAL_GROW: ::c_int = 0x0004; pub const F_SEAL_WRITE: ::c_int = 0x0008; +pub const GRND_NONBLOCK: ::c_uint = 0x1; +pub const GRND_RANDOM: ::c_uint = 0x2; + cfg_if! { if #[cfg(not(freebsd13))] { pub const ELAST: ::c_int = 96; } else { pub const EINTEGRITY: ::c_int = 97; pub const ELAST: ::c_int = 97; + pub const GRND_INSECURE: ::c_uint = 0x4; } } @@ -229,6 +233,12 @@ extern "C" { ) -> ::c_int; pub fn fdatasync(fd: ::c_int) -> ::c_int; + + pub fn getrandom( + buf: *mut ::c_void, + buflen: ::size_t, + flags: ::c_uint + ) -> ::ssize_t; } cfg_if! {