aboutsummaryrefslogtreecommitdiff
path: root/src/internal/syscall
diff options
context:
space:
mode:
authorKir Kolyshkin <kolyshkin@gmail.com>2023-09-13 00:58:20 -0700
committerMichael Knyszek <mknyszek@google.com>2023-11-21 22:23:07 +0000
commitff05cdbd2bdc28ab545a5964f7f772e2ea4c5fd1 (patch)
tree59117b27db216ec5b35ee56e6aeac7a69560a05f /src/internal/syscall
parent5a6f1b35d42dca8e3e7646ee36fa1344ce5bc775 (diff)
downloadgo-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.go15
-rw-r--r--src/internal/syscall/unix/sysnum_linux_386.go5
-rw-r--r--src/internal/syscall/unix/sysnum_linux_amd64.go5
-rw-r--r--src/internal/syscall/unix/sysnum_linux_arm.go5
-rw-r--r--src/internal/syscall/unix/sysnum_linux_generic.go5
-rw-r--r--src/internal/syscall/unix/sysnum_linux_mips64x.go5
-rw-r--r--src/internal/syscall/unix/sysnum_linux_mipsx.go5
-rw-r--r--src/internal/syscall/unix/sysnum_linux_ppc64x.go5
-rw-r--r--src/internal/syscall/unix/sysnum_linux_s390x.go5
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
)