mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-01 14:47:28 -04:00
unix: add Poll for linux
Change-Id: I273bd852f85d204694872a1615be51dc027b97ee Reviewed-on: https://go-review.googlesource.com/23661 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
committed by
Ian Lance Taylor
parent
b44883b474
commit
7f918dd405
@@ -60,6 +60,15 @@ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
return openat(dirfd, path, flags|O_LARGEFILE, mode)
|
return openat(dirfd, path, flags|O_LARGEFILE, mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//sys poll(fds *PollFd, nfd int, timeout int) (n int, err error)
|
||||||
|
|
||||||
|
func Poll(fds []PollFd, timeout int) (n int, err error) {
|
||||||
|
if len(fds) == 0 {
|
||||||
|
return poll(nil, 0, timeout)
|
||||||
|
}
|
||||||
|
return poll(&fds[0], len(fds), timeout)
|
||||||
|
}
|
||||||
|
|
||||||
//sys readlinkat(dirfd int, path string, buf []byte) (n int, err error)
|
//sys readlinkat(dirfd int, path string, buf []byte) (n int, err error)
|
||||||
|
|
||||||
func Readlink(path string, buf []byte) (n int, err error) {
|
func Readlink(path string, buf []byte) (n int, err error) {
|
||||||
@@ -1043,7 +1052,6 @@ func Munmap(b []byte) (err error) {
|
|||||||
// Newfstatat
|
// Newfstatat
|
||||||
// Nfsservctl
|
// Nfsservctl
|
||||||
// Personality
|
// Personality
|
||||||
// Poll
|
|
||||||
// Ppoll
|
// Ppoll
|
||||||
// Pselect6
|
// Pselect6
|
||||||
// Ptrace
|
// Ptrace
|
||||||
|
|||||||
@@ -15,6 +15,45 @@ import (
|
|||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func TestPoll(t *testing.T) {
|
||||||
|
err := unix.Mkfifo("fifo", 0666)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Poll: failed to create FIFO: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer os.Remove("fifo")
|
||||||
|
|
||||||
|
f, err := os.OpenFile("fifo", os.O_RDWR, 0666)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Poll: failed to open FIFO: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
const timeout = 100
|
||||||
|
|
||||||
|
ok := make(chan bool, 1)
|
||||||
|
go func() {
|
||||||
|
select {
|
||||||
|
case <-time.After(10 * timeout * time.Millisecond):
|
||||||
|
t.Errorf("Poll: failed to timeout after %d milliseconds", 10*timeout)
|
||||||
|
case <-ok:
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
fds := []unix.PollFd{{Fd: int32(f.Fd()), Events: unix.POLLIN}}
|
||||||
|
n, err := unix.Poll(fds, timeout)
|
||||||
|
ok <- true
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Poll: unexpected error: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if n != 0 {
|
||||||
|
t.Errorf("Poll: wrong number of events: got %v, expected %v", n, 0)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestTime(t *testing.T) {
|
func TestTime(t *testing.T) {
|
||||||
var ut unix.Time_t
|
var ut unix.Time_t
|
||||||
ut2, err := unix.Time(&ut)
|
ut2, err := unix.Time(&ut)
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ package unix
|
|||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <netinet/tcp.h>
|
#include <netinet/tcp.h>
|
||||||
#include <netpacket/packet.h>
|
#include <netpacket/packet.h>
|
||||||
|
#include <poll.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/epoll.h>
|
#include <sys/epoll.h>
|
||||||
@@ -430,6 +431,18 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd C.struct_pollfd
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = C.POLLIN
|
||||||
|
POLLPRI = C.POLLPRI
|
||||||
|
POLLOUT = C.POLLOUT
|
||||||
|
POLLRDHUP = C.POLLRDHUP
|
||||||
|
POLLERR = C.POLLERR
|
||||||
|
POLLHUP = C.POLLHUP
|
||||||
|
POLLNVAL = C.POLLNVAL
|
||||||
|
)
|
||||||
|
|
||||||
// Terminal handling
|
// Terminal handling
|
||||||
|
|
||||||
type Termios C.termios_t
|
type Termios C.termios_t
|
||||||
|
|||||||
@@ -53,6 +53,17 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func poll(fds *PollFd, nfd int, timeout int) (n int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfd), uintptr(timeout))
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|||||||
@@ -53,6 +53,17 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func poll(fds *PollFd, nfd int, timeout int) (n int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfd), uintptr(timeout))
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|||||||
@@ -53,6 +53,17 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func poll(fds *PollFd, nfd int, timeout int) (n int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfd), uintptr(timeout))
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|||||||
@@ -53,6 +53,17 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func poll(fds *PollFd, nfd int, timeout int) (n int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfd), uintptr(timeout))
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|||||||
@@ -53,6 +53,17 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func poll(fds *PollFd, nfd int, timeout int) (n int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfd), uintptr(timeout))
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|||||||
@@ -53,6 +53,17 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func poll(fds *PollFd, nfd int, timeout int) (n int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfd), uintptr(timeout))
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|||||||
@@ -53,6 +53,17 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func poll(fds *PollFd, nfd int, timeout int) (n int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfd), uintptr(timeout))
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|||||||
@@ -53,6 +53,17 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func poll(fds *PollFd, nfd int, timeout int) (n int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfd), uintptr(timeout))
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|||||||
@@ -53,6 +53,17 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func poll(fds *PollFd, nfd int, timeout int) (n int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfd), uintptr(timeout))
|
||||||
|
n = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
func readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|||||||
@@ -595,6 +595,22 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = 0x1
|
||||||
|
POLLPRI = 0x2
|
||||||
|
POLLOUT = 0x4
|
||||||
|
POLLRDHUP = 0x2000
|
||||||
|
POLLERR = 0x8
|
||||||
|
POLLHUP = 0x10
|
||||||
|
POLLNVAL = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
type Termios struct {
|
type Termios struct {
|
||||||
Iflag uint32
|
Iflag uint32
|
||||||
Oflag uint32
|
Oflag uint32
|
||||||
|
|||||||
@@ -613,6 +613,22 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = 0x1
|
||||||
|
POLLPRI = 0x2
|
||||||
|
POLLOUT = 0x4
|
||||||
|
POLLRDHUP = 0x2000
|
||||||
|
POLLERR = 0x8
|
||||||
|
POLLHUP = 0x10
|
||||||
|
POLLNVAL = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
type Termios struct {
|
type Termios struct {
|
||||||
Iflag uint32
|
Iflag uint32
|
||||||
Oflag uint32
|
Oflag uint32
|
||||||
|
|||||||
@@ -575,6 +575,22 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = 0x1
|
||||||
|
POLLPRI = 0x2
|
||||||
|
POLLOUT = 0x4
|
||||||
|
POLLRDHUP = 0x2000
|
||||||
|
POLLERR = 0x8
|
||||||
|
POLLHUP = 0x10
|
||||||
|
POLLNVAL = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
type Termios struct {
|
type Termios struct {
|
||||||
Iflag uint32
|
Iflag uint32
|
||||||
Oflag uint32
|
Oflag uint32
|
||||||
|
|||||||
@@ -592,6 +592,22 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = 0x1
|
||||||
|
POLLPRI = 0x2
|
||||||
|
POLLOUT = 0x4
|
||||||
|
POLLRDHUP = 0x2000
|
||||||
|
POLLERR = 0x8
|
||||||
|
POLLHUP = 0x10
|
||||||
|
POLLNVAL = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
type Termios struct {
|
type Termios struct {
|
||||||
Iflag uint32
|
Iflag uint32
|
||||||
Oflag uint32
|
Oflag uint32
|
||||||
|
|||||||
@@ -596,6 +596,22 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = 0x1
|
||||||
|
POLLPRI = 0x2
|
||||||
|
POLLOUT = 0x4
|
||||||
|
POLLRDHUP = 0x2000
|
||||||
|
POLLERR = 0x8
|
||||||
|
POLLHUP = 0x10
|
||||||
|
POLLNVAL = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
type Termios struct {
|
type Termios struct {
|
||||||
Iflag uint32
|
Iflag uint32
|
||||||
Oflag uint32
|
Oflag uint32
|
||||||
|
|||||||
@@ -596,6 +596,22 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = 0x1
|
||||||
|
POLLPRI = 0x2
|
||||||
|
POLLOUT = 0x4
|
||||||
|
POLLRDHUP = 0x2000
|
||||||
|
POLLERR = 0x8
|
||||||
|
POLLHUP = 0x10
|
||||||
|
POLLNVAL = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
type Termios struct {
|
type Termios struct {
|
||||||
Iflag uint32
|
Iflag uint32
|
||||||
Oflag uint32
|
Oflag uint32
|
||||||
|
|||||||
@@ -602,6 +602,22 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = 0x1
|
||||||
|
POLLPRI = 0x2
|
||||||
|
POLLOUT = 0x4
|
||||||
|
POLLRDHUP = 0x2000
|
||||||
|
POLLERR = 0x8
|
||||||
|
POLLHUP = 0x10
|
||||||
|
POLLNVAL = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
type Termios struct {
|
type Termios struct {
|
||||||
Iflag uint32
|
Iflag uint32
|
||||||
Oflag uint32
|
Oflag uint32
|
||||||
|
|||||||
@@ -602,6 +602,22 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = 0x1
|
||||||
|
POLLPRI = 0x2
|
||||||
|
POLLOUT = 0x4
|
||||||
|
POLLRDHUP = 0x2000
|
||||||
|
POLLERR = 0x8
|
||||||
|
POLLHUP = 0x10
|
||||||
|
POLLNVAL = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
type Termios struct {
|
type Termios struct {
|
||||||
Iflag uint32
|
Iflag uint32
|
||||||
Oflag uint32
|
Oflag uint32
|
||||||
|
|||||||
@@ -617,6 +617,22 @@ const (
|
|||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
POLLIN = 0x1
|
||||||
|
POLLPRI = 0x2
|
||||||
|
POLLOUT = 0x4
|
||||||
|
POLLRDHUP = 0x2000
|
||||||
|
POLLERR = 0x8
|
||||||
|
POLLHUP = 0x10
|
||||||
|
POLLNVAL = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
type Termios struct {
|
type Termios struct {
|
||||||
Iflag uint32
|
Iflag uint32
|
||||||
Oflag uint32
|
Oflag uint32
|
||||||
|
|||||||
Reference in New Issue
Block a user