]> Cypherpunks.ru repositories - gostls13.git/commit
runtime: move epoll syscalls to runtime/internal/syscall
authorAndrew Pogrebnoy <absourd.noise@gmail.com>
Fri, 7 Oct 2022 07:12:54 +0000 (10:12 +0300)
committerGopher Robot <gobot@golang.org>
Fri, 7 Oct 2022 18:28:11 +0000 (18:28 +0000)
commitc7cc2b94c63af610a29b1b48cfbfb87cb8abf05b
tree658fcfa6dedbddaf4a65ed8d2c14851e8155fb38
parent67cd77b88f2fdf620556cd698752aa2ed53fee1b
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>
41 files changed:
src/runtime/defs2_linux.go
src/runtime/defs_linux.go
src/runtime/defs_linux_386.go
src/runtime/defs_linux_amd64.go
src/runtime/defs_linux_arm.go
src/runtime/defs_linux_arm64.go
src/runtime/defs_linux_loong64.go
src/runtime/defs_linux_mips64x.go
src/runtime/defs_linux_mipsx.go
src/runtime/defs_linux_ppc64.go
src/runtime/defs_linux_ppc64le.go
src/runtime/defs_linux_riscv64.go
src/runtime/defs_linux_s390x.go
src/runtime/export_linux_test.go
src/runtime/export_unix2_test.go [new file with mode: 0644]
src/runtime/export_unix_test.go
src/runtime/internal/syscall/defs_linux.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_386.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_amd64.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_arm.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_arm64.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_loong64.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_mips64x.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_mipsx.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_ppc64x.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_riscv64.go [new file with mode: 0644]
src/runtime/internal/syscall/defs_linux_s390x.go [new file with mode: 0644]
src/runtime/internal/syscall/syscall_linux.go
src/runtime/internal/syscall/syscall_linux_test.go [new file with mode: 0644]
src/runtime/netpoll_epoll.go
src/runtime/runtime_linux_test.go
src/runtime/sys_linux_386.s
src/runtime/sys_linux_amd64.s
src/runtime/sys_linux_arm.s
src/runtime/sys_linux_arm64.s
src/runtime/sys_linux_loong64.s
src/runtime/sys_linux_mips64x.s
src/runtime/sys_linux_mipsx.s
src/runtime/sys_linux_ppc64x.s
src/runtime/sys_linux_riscv64.s
src/runtime/sys_linux_s390x.s