152
|
1 // Copyright 2019 The Go Authors. All rights reserved.
|
|
2 // Use of this source code is governed by a BSD-style
|
|
3 // license that can be found in the LICENSE file.
|
|
4
|
|
5 // +build aix darwin solaris
|
|
6
|
|
7 package poll
|
|
8
|
|
9 import (
|
|
10 "syscall"
|
|
11 )
|
|
12
|
|
13 // Use a helper function to call fcntl. This is defined in C in
|
|
14 // libgo/runtime.
|
|
15 //extern __go_fcntl_uintptr
|
|
16 func libc_fcntl(uintptr, uintptr, uintptr) (uintptr, uintptr)
|
|
17
|
|
18 func fcntl(fd int, cmd int, arg int) (int, error) {
|
|
19 syscall.Entersyscall()
|
|
20 r, e := libc_fcntl(uintptr(fd), uintptr(cmd), uintptr(arg))
|
|
21 syscall.Exitsyscall()
|
|
22 if e != 0 {
|
|
23 return int(r), syscall.Errno(e)
|
|
24 }
|
|
25 return int(r), nil
|
|
26 }
|