Rollup merge of #101994 - devnexen:rand_fbsd_update, r=workingjubilee
rand: freebsd update, using getrandom. supported since the 12th release, while 11.4 is EOL since 2021.
This commit is contained in:
commit
26d791b351
@ -17,7 +17,6 @@ pub fn hashmap_random_keys() -> (u64, u64) {
|
|||||||
not(target_os = "tvos"),
|
not(target_os = "tvos"),
|
||||||
not(target_os = "watchos"),
|
not(target_os = "watchos"),
|
||||||
not(target_os = "openbsd"),
|
not(target_os = "openbsd"),
|
||||||
not(target_os = "freebsd"),
|
|
||||||
not(target_os = "netbsd"),
|
not(target_os = "netbsd"),
|
||||||
not(target_os = "fuchsia"),
|
not(target_os = "fuchsia"),
|
||||||
not(target_os = "redox"),
|
not(target_os = "redox"),
|
||||||
@ -68,11 +67,25 @@ fn getrandom(buf: &mut [u8]) -> libc::ssize_t {
|
|||||||
unsafe { libc::getrandom(buf.as_mut_ptr().cast(), buf.len(), 0) }
|
unsafe { libc::getrandom(buf.as_mut_ptr().cast(), buf.len(), 0) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os = "freebsd")]
|
||||||
|
fn getrandom(buf: &mut [u8]) -> libc::ssize_t {
|
||||||
|
// FIXME: using the above when libary std's libc is updated
|
||||||
|
extern "C" {
|
||||||
|
fn getrandom(
|
||||||
|
buffer: *mut libc::c_void,
|
||||||
|
length: libc::size_t,
|
||||||
|
flags: libc::c_uint,
|
||||||
|
) -> libc::ssize_t;
|
||||||
|
}
|
||||||
|
unsafe { getrandom(buf.as_mut_ptr().cast(), buf.len(), 0) }
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(not(any(
|
#[cfg(not(any(
|
||||||
target_os = "linux",
|
target_os = "linux",
|
||||||
target_os = "android",
|
target_os = "android",
|
||||||
target_os = "espidf",
|
target_os = "espidf",
|
||||||
target_os = "horizon"
|
target_os = "horizon",
|
||||||
|
target_os = "freebsd"
|
||||||
)))]
|
)))]
|
||||||
fn getrandom_fill_bytes(_buf: &mut [u8]) -> bool {
|
fn getrandom_fill_bytes(_buf: &mut [u8]) -> bool {
|
||||||
false
|
false
|
||||||
@ -82,7 +95,8 @@ fn getrandom_fill_bytes(_buf: &mut [u8]) -> bool {
|
|||||||
target_os = "linux",
|
target_os = "linux",
|
||||||
target_os = "android",
|
target_os = "android",
|
||||||
target_os = "espidf",
|
target_os = "espidf",
|
||||||
target_os = "horizon"
|
target_os = "horizon",
|
||||||
|
target_os = "freebsd"
|
||||||
))]
|
))]
|
||||||
fn getrandom_fill_bytes(v: &mut [u8]) -> bool {
|
fn getrandom_fill_bytes(v: &mut [u8]) -> bool {
|
||||||
use crate::sync::atomic::{AtomicBool, Ordering};
|
use crate::sync::atomic::{AtomicBool, Ordering};
|
||||||
@ -222,7 +236,7 @@ pub fn fill_bytes(v: &mut [u8]) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "freebsd", target_os = "netbsd"))]
|
#[cfg(target_os = "netbsd")]
|
||||||
mod imp {
|
mod imp {
|
||||||
use crate::ptr;
|
use crate::ptr;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user