mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
This change moves Linux epoll's syscalls implementation to the "runtime/internal/syscall" package. The intention in this CL was to minimise behavioural changes but make the code more generalised. This also will allow adding new syscalls (like epoll_pwait2) without the need to implement assembly stubs for each arch. It also drops epoll_create as not all architectures provide this call. epoll_create1 was added to the kernel in version 2.6.27 and Go requires Linux kernel version 2.6.32 or later since Go 1.18. So it is safe to always use epoll_create1. This is a resubmit as the previous CL 421994 was reverted due to test failures after the merge with the master. The issue was fixed in CL 438615 For #53824 For #51087 Change-Id: I1bd0f23a85b4f9b80178c5dd36fd3e95ff4f9648 Reviewed-on: https://go-review.googlesource.com/c/go/+/440115 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Michael Pratt <mpratt@google.com> Reviewed-by: Michael Pratt <mpratt@google.com> Run-TryBot: Michael Pratt <mpratt@google.com>
32 lines
690 B
Go
32 lines
690 B
Go
// Copyright 2022 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.
|
|
|
|
//go:build linux && (mips64 || mips64le)
|
|
|
|
package syscall
|
|
|
|
const (
|
|
SYS_FCNTL = 5070
|
|
SYS_EPOLL_CTL = 5208
|
|
SYS_EPOLL_PWAIT = 5272
|
|
SYS_EPOLL_CREATE1 = 5285
|
|
SYS_EPOLL_PWAIT2 = 5441
|
|
|
|
EPOLLIN = 0x1
|
|
EPOLLOUT = 0x4
|
|
EPOLLERR = 0x8
|
|
EPOLLHUP = 0x10
|
|
EPOLLRDHUP = 0x2000
|
|
EPOLLET = 0x80000000
|
|
EPOLL_CLOEXEC = 0x80000
|
|
EPOLL_CTL_ADD = 0x1
|
|
EPOLL_CTL_DEL = 0x2
|
|
EPOLL_CTL_MOD = 0x3
|
|
)
|
|
|
|
type EpollEvent struct {
|
|
Events uint32
|
|
pad_cgo_0 [4]byte
|
|
Data [8]byte // unaligned uintptr
|
|
}
|