/development/std/internal/hash/darwin.nct
darwin.nct
//! Darwin entropy adapter.
see ./index.nct
use /internal/os/darwin.{sys_getentropy, syscall2, trap}
use /ptr.{addr, from_ref_mut}
#target: "arm64-darwin"
/// Returns a fresh process-local seed or terminates when target entropy is unavailable.
func acquire_seed(): u64 {
var value: u64 = 0
let pointer = from_ref_mut(&+value)
let result = syscall2(sys_getentropy, addr(pointer), 8)
if result.errno != 0 {
return trap()
}
return value
}