1
0
mirror of https://github.com/golang/go synced 2024-11-23 13:40:04 -07:00

internal/syscall/unix: don't use linkname to refer to syscall.fcntl

Just open-code the fcntl syscall instead of relying on the obscurity of
go:linkname.

Change-Id: I3e4ec9db6539e016f56667d7b8b87aa37671d0e7
Reviewed-on: https://go-review.googlesource.com/130736
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Tobias Klauser 2018-08-22 14:01:52 +02:00 committed by Tobias Klauser
parent 9cfa41c826
commit d8cf1514ca

View File

@ -6,18 +6,12 @@
package unix
import (
"syscall"
_ "unsafe" // for go:linkname
)
//go:linkname syscall_fcntl syscall.fcntl
func syscall_fcntl(fd int, cmd int, arg int) (val int, err error)
import "syscall"
func IsNonblock(fd int) (nonblocking bool, err error) {
flag, err := syscall_fcntl(fd, syscall.F_GETFL, 0)
if err != nil {
return false, err
flag, _, e1 := syscall.Syscall(syscall.SYS_FCNTL, uintptr(fd), uintptr(syscall.F_GETFL), 0)
if e1 != 0 {
return false, e1
}
return flag&syscall.O_NONBLOCK != 0, nil
}