diff options
Diffstat (limited to 'vendor/getrandom/src/backends/fuchsia.rs')
| -rw-r--r-- | vendor/getrandom/src/backends/fuchsia.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/vendor/getrandom/src/backends/fuchsia.rs b/vendor/getrandom/src/backends/fuchsia.rs new file mode 100644 index 00000000..b5f1ade5 --- /dev/null +++ b/vendor/getrandom/src/backends/fuchsia.rs @@ -0,0 +1,16 @@ +//! Implementation for Fuchsia Zircon +use crate::Error; +use core::mem::MaybeUninit; + +pub use crate::util::{inner_u32, inner_u64}; + +#[link(name = "zircon")] +extern "C" { + fn zx_cprng_draw(buffer: *mut u8, length: usize); +} + +#[inline] +pub fn fill_inner(dest: &mut [MaybeUninit<u8>]) -> Result<(), Error> { + unsafe { zx_cprng_draw(dest.as_mut_ptr().cast::<u8>(), dest.len()) } + Ok(()) +} |
