about summary refs log tree commit diff
path: root/library/std/src/sys/random/fuchsia.rs
blob: 269e0d9aeeb57cc197771e0a9532f806c3d57e25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
//! Random data generation using the Zircon kernel.
//!
//! Fuchsia, as always, is quite nice and provides exactly the API we need:
//! <https://fuchsia.dev/reference/syscalls/cprng_draw>.

#[link(name = "zircon")]
unsafe extern "C" {
    fn zx_cprng_draw(buffer: *mut u8, len: usize);
}

pub fn fill_bytes(bytes: &mut [u8]) {
    unsafe { zx_cprng_draw(bytes.as_mut_ptr(), bytes.len()) }
}