From 4eba2bb8d9f4f4ec246d268ee382788062cfff16 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 15 May 2022 23:46:32 +0100 Subject: [PATCH] Add `_system_random` for Darwin --- core/math/rand/system_darwin.odin | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 core/math/rand/system_darwin.odin diff --git a/core/math/rand/system_darwin.odin b/core/math/rand/system_darwin.odin new file mode 100644 index 000000000..f51e4473e --- /dev/null +++ b/core/math/rand/system_darwin.odin @@ -0,0 +1,21 @@ +package rand + +import "core:sys/darwin" + +_system_random :: proc() -> u32 { + for { + value: u32 + ret := darwin.syscall_getentropy(([^]u8)(&value), 4) + if ret < 0 { + switch ret { + case -4: // EINTR + continue + case -78: // ENOSYS + panic("getentropy not available in kernel") + case: + panic("getentropy failed") + } + } + return value + } +} \ No newline at end of file