]> git.proxmox.com Git - rustc.git/blame - src/libstd/sys/windows/rand.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / src / libstd / sys / windows / rand.rs
CommitLineData
532ac7d7
XL
1use crate::io;
2use crate::mem;
3use crate::sys::c;
7453a54e 4
416331ca 5#[cfg(not(target_vendor = "uwp"))]
abe05a73
XL
6pub fn hashmap_random_keys() -> (u64, u64) {
7 let mut v = (0, 0);
60c5eb7d
XL
8 let ret =
9 unsafe { c::RtlGenRandom(&mut v as *mut _ as *mut u8, mem::size_of_val(&v) as c::ULONG) };
abe05a73 10 if ret == 0 {
60c5eb7d 11 panic!("couldn't generate random bytes: {}", io::Error::last_os_error());
7453a54e 12 }
e74abb32 13 v
7453a54e 14}
416331ca
XL
15
16#[cfg(target_vendor = "uwp")]
17pub fn hashmap_random_keys() -> (u64, u64) {
18 use crate::ptr;
19
20 let mut v = (0, 0);
21 let ret = unsafe {
60c5eb7d
XL
22 c::BCryptGenRandom(
23 ptr::null_mut(),
24 &mut v as *mut _ as *mut u8,
25 mem::size_of_val(&v) as c::ULONG,
26 c::BCRYPT_USE_SYSTEM_PREFERRED_RNG,
27 )
416331ca
XL
28 };
29 if ret != 0 {
60c5eb7d 30 panic!("couldn't generate random bytes: {}", io::Error::last_os_error());
416331ca 31 }
60c5eb7d 32 return v;
416331ca 33}