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 @@ ...@@ -5,7 +5,7 @@
package rand package rand
import ( import (
"internal/syscall" "internal/syscall/unix"
"sync" "sync"
) )
...@@ -25,7 +25,7 @@ func pickStrategy() { ...@@ -25,7 +25,7 @@ func pickStrategy() {
// - the machine has no entropy available (early boot + no hardware // - the machine has no entropy available (early boot + no hardware
// entropy source?) and we want to avoid blocking later. // entropy source?) and we want to avoid blocking later.
var buf [1]byte 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 useSyscall = n == 1 && err == nil
} }
...@@ -34,6 +34,6 @@ func getRandomLinux(p []byte) (ok bool) { ...@@ -34,6 +34,6 @@ func getRandomLinux(p []byte) (ok bool) {
if !useSyscall { if !useSyscall {
return false return false
} }
n, err := syscall.GetRandom(p, 0) n, err := unix.GetRandom(p, 0)
return n == len(p) && err == nil return n == len(p) && err == nil
} }
...@@ -279,7 +279,7 @@ var pkgDeps = map[string][]string{ ...@@ -279,7 +279,7 @@ var pkgDeps = map[string][]string{
// Random byte, number generation. // Random byte, number generation.
// This would be part of core crypto except that it imports // This would be part of core crypto except that it imports
// math/big, which imports fmt. // 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. // Mathematical crypto: dependencies on fmt (L4) and math/big.
// We could avoid some of the fmt, but math/big imports fmt anyway. // We could avoid some of the fmt, but math/big imports fmt anyway.
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
package syscall package unix
import ( import (
"runtime" "runtime"
"sync/atomic" "sync/atomic"
stdsyscall "syscall" "syscall"
"unsafe" "unsafe"
) )
...@@ -36,20 +36,20 @@ const ( ...@@ -36,20 +36,20 @@ const (
// See https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c6e9d6f38894798696f23c8084ca7edbf16ee895 // 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) { func GetRandom(p []byte, flags GetRandomFlag) (n int, err error) {
if randomTrap == 0 { if randomTrap == 0 {
return 0, stdsyscall.ENOSYS return 0, syscall.ENOSYS
} }
if len(p) == 0 { if len(p) == 0 {
return 0, nil return 0, nil
} }
if atomic.LoadInt32(&randomUnsupported) != 0 { 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(unsafe.Pointer(&p[0])),
uintptr(len(p)), uintptr(len(p)),
uintptr(flags)) uintptr(flags))
if errno != 0 { if errno != 0 {
if errno == stdsyscall.ENOSYS { if errno == syscall.ENOSYS {
atomic.StoreInt32(&randomUnsupported, 1) atomic.StoreInt32(&randomUnsupported, 1)
} }
return 0, errno 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