...
1 package sysfs
2
3 import (
4 "unsafe"
5
6 "github.com/tetratelabs/wazero/experimental/sys"
7 )
8
9
10 type pollFd struct {
11
12 fd int32
13
14 events int16
15
16 revents int16
17 }
18
19
20 func newPollFd(fd uintptr, events, revents int16) pollFd {
21 return pollFd{fd: int32(fd), events: events, revents: revents}
22 }
23
24
25 const _POLLIN = 0x0001
26
27
28 func _poll(fds []pollFd, timeoutMillis int32) (n int, errno sys.Errno) {
29 var fdptr *pollFd
30 nfds := len(fds)
31 if nfds > 0 {
32 fdptr = &fds[0]
33 }
34 n1, _, err := syscall_syscall6(
35 libc_poll_trampoline_addr,
36 uintptr(unsafe.Pointer(fdptr)),
37 uintptr(nfds),
38 uintptr(int(timeoutMillis)),
39 uintptr(unsafe.Pointer(nil)),
40 uintptr(unsafe.Pointer(nil)),
41 uintptr(unsafe.Pointer(nil)))
42 return int(n1), sys.UnwrapOSError(err)
43 }
44
45
46
47
48
49 var libc_poll_trampoline_addr uintptr
50
51
52
53
54
55
56
View as plain text