mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: move epoll syscalls to runtime/internal/syscall
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>
This commit is contained in:
parent
67cd77b88f
commit
c7cc2b94c6
41 changed files with 411 additions and 813 deletions
32
src/runtime/internal/syscall/defs_linux_mips64x.go
Normal file
32
src/runtime/internal/syscall/defs_linux_mips64x.go
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
// 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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue