diff options
| author | Kir Kolyshkin <kolyshkin@gmail.com> | 2023-09-13 00:58:20 -0700 |
|---|---|---|
| committer | Michael Knyszek <mknyszek@google.com> | 2023-11-21 22:23:07 +0000 |
| commit | ff05cdbd2bdc28ab545a5964f7f772e2ea4c5fd1 (patch) | |
| tree | 59117b27db216ec5b35ee56e6aeac7a69560a05f /src/internal/syscall | |
| parent | 5a6f1b35d42dca8e3e7646ee36fa1344ce5bc775 (diff) | |
| download | go-ff05cdbd2bdc28ab545a5964f7f772e2ea4c5fd1.tar.xz | |
internal/syscall/unix: add PidFDSendSignal for Linux
CL 520266 added pidfd_send_signal linux syscall numbers to the
syscall package for the sake of a unit test.
As pidfd_send_signal will be used from the os package, let's revert the
changes to syscall package, add the pidfd_send_signal syscall numbers
and the implementation to internal/syscall/unix, and change the above
test to use it.
Updates #51246.
For #62654.
Change-Id: I862174c3c1a64baf1080792bdb3a1c1d1b417bb4
Reviewed-on: https://go-review.googlesource.com/c/go/+/528436
Run-TryBot: Kirill Kolyshkin <kolyshkin@gmail.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src/internal/syscall')
| -rw-r--r-- | src/internal/syscall/unix/pidfd_linux.go | 15 | ||||
| -rw-r--r-- | src/internal/syscall/unix/sysnum_linux_386.go | 5 | ||||
| -rw-r--r-- | src/internal/syscall/unix/sysnum_linux_amd64.go | 5 | ||||
| -rw-r--r-- | src/internal/syscall/unix/sysnum_linux_arm.go | 5 | ||||
| -rw-r--r-- | src/internal/syscall/unix/sysnum_linux_generic.go | 5 | ||||
| -rw-r--r-- | src/internal/syscall/unix/sysnum_linux_mips64x.go | 5 | ||||
| -rw-r--r-- | src/internal/syscall/unix/sysnum_linux_mipsx.go | 5 | ||||
| -rw-r--r-- | src/internal/syscall/unix/sysnum_linux_ppc64x.go | 5 | ||||
| -rw-r--r-- | src/internal/syscall/unix/sysnum_linux_s390x.go | 5 |
9 files changed, 39 insertions, 16 deletions
diff --git a/src/internal/syscall/unix/pidfd_linux.go b/src/internal/syscall/unix/pidfd_linux.go new file mode 100644 index 0000000000..02cfaa062c --- /dev/null +++ b/src/internal/syscall/unix/pidfd_linux.go @@ -0,0 +1,15 @@ +// Copyright 2023 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. + +package unix + +import "syscall" + +func PidFDSendSignal(pidfd uintptr, s syscall.Signal) error { + _, _, errno := syscall.Syscall(pidfdSendSignalTrap, pidfd, uintptr(s), 0) + if errno != 0 { + return errno + } + return nil +} diff --git a/src/internal/syscall/unix/sysnum_linux_386.go b/src/internal/syscall/unix/sysnum_linux_386.go index 2bda08ccf1..9f750a1c03 100644 --- a/src/internal/syscall/unix/sysnum_linux_386.go +++ b/src/internal/syscall/unix/sysnum_linux_386.go @@ -5,6 +5,7 @@ package unix const ( - getrandomTrap uintptr = 355 - copyFileRangeTrap uintptr = 377 + getrandomTrap uintptr = 355 + copyFileRangeTrap uintptr = 377 + pidfdSendSignalTrap uintptr = 424 ) diff --git a/src/internal/syscall/unix/sysnum_linux_amd64.go b/src/internal/syscall/unix/sysnum_linux_amd64.go index ae5239ebfb..706898d41e 100644 --- a/src/internal/syscall/unix/sysnum_linux_amd64.go +++ b/src/internal/syscall/unix/sysnum_linux_amd64.go @@ -5,6 +5,7 @@ package unix const ( - getrandomTrap uintptr = 318 - copyFileRangeTrap uintptr = 326 + getrandomTrap uintptr = 318 + copyFileRangeTrap uintptr = 326 + pidfdSendSignalTrap uintptr = 424 ) diff --git a/src/internal/syscall/unix/sysnum_linux_arm.go b/src/internal/syscall/unix/sysnum_linux_arm.go index acaec05879..c00644b552 100644 --- a/src/internal/syscall/unix/sysnum_linux_arm.go +++ b/src/internal/syscall/unix/sysnum_linux_arm.go @@ -5,6 +5,7 @@ package unix const ( - getrandomTrap uintptr = 384 - copyFileRangeTrap uintptr = 391 + getrandomTrap uintptr = 384 + copyFileRangeTrap uintptr = 391 + pidfdSendSignalTrap uintptr = 424 ) diff --git a/src/internal/syscall/unix/sysnum_linux_generic.go b/src/internal/syscall/unix/sysnum_linux_generic.go index 8c132c6bf5..bf25428e7e 100644 --- a/src/internal/syscall/unix/sysnum_linux_generic.go +++ b/src/internal/syscall/unix/sysnum_linux_generic.go @@ -11,6 +11,7 @@ package unix // means only arm64 loong64 and riscv64 use the standard numbers. const ( - getrandomTrap uintptr = 278 - copyFileRangeTrap uintptr = 285 + getrandomTrap uintptr = 278 + copyFileRangeTrap uintptr = 285 + pidfdSendSignalTrap uintptr = 424 ) diff --git a/src/internal/syscall/unix/sysnum_linux_mips64x.go b/src/internal/syscall/unix/sysnum_linux_mips64x.go index bca526d2b9..6a9e238ce3 100644 --- a/src/internal/syscall/unix/sysnum_linux_mips64x.go +++ b/src/internal/syscall/unix/sysnum_linux_mips64x.go @@ -7,6 +7,7 @@ package unix const ( - getrandomTrap uintptr = 5313 - copyFileRangeTrap uintptr = 5320 + getrandomTrap uintptr = 5313 + copyFileRangeTrap uintptr = 5320 + pidfdSendSignalTrap uintptr = 5424 ) diff --git a/src/internal/syscall/unix/sysnum_linux_mipsx.go b/src/internal/syscall/unix/sysnum_linux_mipsx.go index c86195e496..22d38f148e 100644 --- a/src/internal/syscall/unix/sysnum_linux_mipsx.go +++ b/src/internal/syscall/unix/sysnum_linux_mipsx.go @@ -7,6 +7,7 @@ package unix const ( - getrandomTrap uintptr = 4353 - copyFileRangeTrap uintptr = 4360 + getrandomTrap uintptr = 4353 + copyFileRangeTrap uintptr = 4360 + pidfdSendSignalTrap uintptr = 4424 ) diff --git a/src/internal/syscall/unix/sysnum_linux_ppc64x.go b/src/internal/syscall/unix/sysnum_linux_ppc64x.go index a4dcf2bc9d..945ec28c2a 100644 --- a/src/internal/syscall/unix/sysnum_linux_ppc64x.go +++ b/src/internal/syscall/unix/sysnum_linux_ppc64x.go @@ -7,6 +7,7 @@ package unix const ( - getrandomTrap uintptr = 359 - copyFileRangeTrap uintptr = 379 + getrandomTrap uintptr = 359 + copyFileRangeTrap uintptr = 379 + pidfdSendSignalTrap uintptr = 424 ) diff --git a/src/internal/syscall/unix/sysnum_linux_s390x.go b/src/internal/syscall/unix/sysnum_linux_s390x.go index bf2c01e4e1..2c74343820 100644 --- a/src/internal/syscall/unix/sysnum_linux_s390x.go +++ b/src/internal/syscall/unix/sysnum_linux_s390x.go @@ -5,6 +5,7 @@ package unix const ( - getrandomTrap uintptr = 349 - copyFileRangeTrap uintptr = 375 + getrandomTrap uintptr = 349 + copyFileRangeTrap uintptr = 375 + pidfdSendSignalTrap uintptr = 424 ) |
