Commit 6e83ef6d authored by Ian Lance Taylor's avatar Ian Lance Taylor

internal/syscall: move to unix subdirectory

Move the single file from internal/syscall to internal/syscall/unix,
to match the golang.org/x/sys layout.

Change-Id: I2fb2832b4cb22efc7666bd276f5401ac3e73dc40
Reviewed-on: https://go-review.googlesource.com/8972Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: default avatarRob Pike <r@golang.org>
parent 07f00cf1
......@@ -5,7 +5,7 @@
package rand
import (
"internal/syscall"
"internal/syscall/unix"
"sync"
)
......@@ -25,7 +25,7 @@ func pickStrategy() {
// - the machine has no entropy available (early boot + no hardware
// entropy source?) and we want to avoid blocking later.
var buf [1]byte
n, err := syscall.GetRandom(buf[:], syscall.GRND_NONBLOCK)
n, err := unix.GetRandom(buf[:], unix.GRND_NONBLOCK)
useSyscall = n == 1 && err == nil
}
......@@ -34,6 +34,6 @@ func getRandomLinux(p []byte) (ok bool) {
if !useSyscall {
return false
}
n, err := syscall.GetRandom(p, 0)
n, err := unix.GetRandom(p, 0)
return n == len(p) && err == nil
}
......@@ -279,7 +279,7 @@ var pkgDeps = map[string][]string{
// Random byte, number generation.
// This would be part of core crypto except that it imports
// math/big, which imports fmt.
"crypto/rand": {"L4", "CRYPTO", "OS", "math/big", "syscall", "internal/syscall"},
"crypto/rand": {"L4", "CRYPTO", "OS", "math/big", "syscall", "internal/syscall/unix"},
// Mathematical crypto: dependencies on fmt (L4) and math/big.
// We could avoid some of the fmt, but math/big imports fmt anyway.
......
......@@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package syscall
package unix
import (
"runtime"
"sync/atomic"
stdsyscall "syscall"
"syscall"
"unsafe"
)
......@@ -36,20 +36,20 @@ const (
// See https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c6e9d6f38894798696f23c8084ca7edbf16ee895
func GetRandom(p []byte, flags GetRandomFlag) (n int, err error) {
if randomTrap == 0 {
return 0, stdsyscall.ENOSYS
return 0, syscall.ENOSYS
}
if len(p) == 0 {
return 0, nil
}
if atomic.LoadInt32(&randomUnsupported) != 0 {
return 0, stdsyscall.ENOSYS
return 0, syscall.ENOSYS
}
r1, _, errno := stdsyscall.Syscall(randomTrap,
r1, _, errno := syscall.Syscall(randomTrap,
uintptr(unsafe.Pointer(&p[0])),
uintptr(len(p)),
uintptr(flags))
if errno != 0 {
if errno == stdsyscall.ENOSYS {
if errno == syscall.ENOSYS {
atomic.StoreInt32(&randomUnsupported, 1)
}
return 0, errno
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment