diff options
| author | Ian Lance Taylor <iant@golang.org> | 2015-04-15 16:28:00 -0700 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2015-04-15 23:51:36 +0000 |
| commit | 6e83ef6d2149d1dd9333a2ff955a0dfdb5475bb5 (patch) | |
| tree | 2f0ab6191d3520c4dd4f6a199984eb23c1f076e4 /src/internal/syscall/getrandom_linux.go | |
| parent | 07f00cf11e208510fd83b8d7328a52f9c1c97eee (diff) | |
| download | go-6e83ef6d2149d1dd9333a2ff955a0dfdb5475bb5.tar.xz | |
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/8972
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
Diffstat (limited to 'src/internal/syscall/getrandom_linux.go')
| -rw-r--r-- | src/internal/syscall/getrandom_linux.go | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/src/internal/syscall/getrandom_linux.go b/src/internal/syscall/getrandom_linux.go deleted file mode 100644 index 36d5a1ccb0..0000000000 --- a/src/internal/syscall/getrandom_linux.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package syscall - -import ( - "runtime" - "sync/atomic" - stdsyscall "syscall" - "unsafe" -) - -var randomTrap = map[string]uintptr{ - "386": 355, - "amd64": 318, - "arm": 384, - "ppc64": 359, - "ppc64le": 359, -}[runtime.GOARCH] - -var randomUnsupported int32 // atomic - -// GetRandomFlag is a flag supported by the getrandom system call. -type GetRandomFlag uintptr - -const ( - // GRND_NONBLOCK means return EAGAIN rather than blocking. - GRND_NONBLOCK GetRandomFlag = 0x0001 - - // GRND_RANDOM means use the /dev/random pool instead of /dev/urandom. - GRND_RANDOM GetRandomFlag = 0x0002 -) - -// GetRandom calls the Linux getrandom system call. -// 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 - } - if len(p) == 0 { - return 0, nil - } - if atomic.LoadInt32(&randomUnsupported) != 0 { - return 0, stdsyscall.ENOSYS - } - r1, _, errno := stdsyscall.Syscall(randomTrap, - uintptr(unsafe.Pointer(&p[0])), - uintptr(len(p)), - uintptr(flags)) - if errno != 0 { - if errno == stdsyscall.ENOSYS { - atomic.StoreInt32(&randomUnsupported, 1) - } - return 0, errno - } - return int(r1), nil -} |
