"unsafe"
)
-var getrandomUnsupported int32 // atomic
+var getrandomUnsupported atomic.Bool
// GetRandomFlag is a flag supported by the getrandom system call.
type GetRandomFlag uintptr
if len(p) == 0 {
return 0, nil
}
- if atomic.LoadInt32(&getrandomUnsupported) != 0 {
+ if getrandomUnsupported.Load() {
return 0, syscall.ENOSYS
}
r1, _, errno := syscall.Syscall(getrandomTrap,
uintptr(flags))
if errno != 0 {
if errno == syscall.ENOSYS {
- atomic.StoreInt32(&getrandomUnsupported, 1)
+ getrandomUnsupported.Store(true)
}
return 0, errno
}
// NetBSD getrandom system call number.
const getrandomTrap uintptr = 91
-var getrandomUnsupported int32 // atomic
+var getrandomUnsupported atomic.Bool
// GetRandomFlag is a flag supported by the getrandom system call.
type GetRandomFlag uintptr
if len(p) == 0 {
return 0, nil
}
- if atomic.LoadInt32(&getrandomUnsupported) != 0 {
+ if getrandomUnsupported.Load() {
return 0, syscall.ENOSYS
}
// getrandom(2) was added in NetBSD 10.0
if getOSRevision() < 1000000000 {
- atomic.StoreInt32(&getrandomUnsupported, 1)
+ getrandomUnsupported.Store(true)
return 0, syscall.ENOSYS
}
r1, _, errno := syscall.Syscall(getrandomTrap,
uintptr(flags))
if errno != 0 {
if errno == syscall.ENOSYS {
- atomic.StoreInt32(&getrandomUnsupported, 1)
+ getrandomUnsupported.Store(true)
}
return 0, errno
}
var procGetrandom uintptr
-var getrandomUnsupported int32 // atomic
+var getrandomUnsupported atomic.Bool
// GetRandomFlag is a flag supported by the getrandom system call.
type GetRandomFlag uintptr
if len(p) == 0 {
return 0, nil
}
- if atomic.LoadInt32(&getrandomUnsupported) != 0 {
+ if getrandomUnsupported.Load() {
return 0, syscall.ENOSYS
}
r1, _, errno := syscall6(uintptr(unsafe.Pointer(&procGetrandom)),
0, 0, 0)
if errno != 0 {
if errno == syscall.ENOSYS {
- atomic.StoreInt32(&getrandomUnsupported, 1)
+ getrandomUnsupported.Store(true)
}
return 0, errno
}