mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 15:18:49 +00:00
Add _system_random for Darwin
This commit is contained in:
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user