瀏覽代碼

unix: add Signalfd on linux

Also add the SFD_* constants and SignalfdSiginfo type.

Change-Id: I3415c212b85c9d5a940ba2bf70f43739a2630d78
Reviewed-on: https://go-review.googlesource.com/c/157897
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Tobias Klauser 6 年之前
父節點
當前提交
a457fd0364
共有 42 個文件被更改,包括 383 次插入2 次删除
  1. 3 0
      unix/linux/types.go
  2. 2 1
      unix/mkerrors.sh
  3. 1 1
      unix/syscall_linux.go
  4. 2 0
      unix/zerrors_linux_386.go
  5. 2 0
      unix/zerrors_linux_amd64.go
  6. 2 0
      unix/zerrors_linux_arm.go
  7. 2 0
      unix/zerrors_linux_arm64.go
  8. 2 0
      unix/zerrors_linux_mips.go
  9. 2 0
      unix/zerrors_linux_mips64.go
  10. 2 0
      unix/zerrors_linux_mips64le.go
  11. 2 0
      unix/zerrors_linux_mipsle.go
  12. 2 0
      unix/zerrors_linux_ppc64.go
  13. 2 0
      unix/zerrors_linux_ppc64le.go
  14. 2 0
      unix/zerrors_linux_riscv64.go
  15. 2 0
      unix/zerrors_linux_s390x.go
  16. 2 0
      unix/zerrors_linux_sparc64.go
  17. 7 0
      unix/zsyscall_linux_386.go
  18. 7 0
      unix/zsyscall_linux_amd64.go
  19. 7 0
      unix/zsyscall_linux_arm.go
  20. 7 0
      unix/zsyscall_linux_arm64.go
  21. 7 0
      unix/zsyscall_linux_mips.go
  22. 7 0
      unix/zsyscall_linux_mips64.go
  23. 7 0
      unix/zsyscall_linux_mips64le.go
  24. 7 0
      unix/zsyscall_linux_mipsle.go
  25. 7 0
      unix/zsyscall_linux_ppc64.go
  26. 7 0
      unix/zsyscall_linux_ppc64le.go
  27. 7 0
      unix/zsyscall_linux_riscv64.go
  28. 7 0
      unix/zsyscall_linux_s390x.go
  29. 7 0
      unix/zsyscall_linux_sparc64.go
  30. 20 0
      unix/ztypes_linux_386.go
  31. 20 0
      unix/ztypes_linux_amd64.go
  32. 20 0
      unix/ztypes_linux_arm.go
  33. 20 0
      unix/ztypes_linux_arm64.go
  34. 20 0
      unix/ztypes_linux_mips.go
  35. 20 0
      unix/ztypes_linux_mips64.go
  36. 20 0
      unix/ztypes_linux_mips64le.go
  37. 20 0
      unix/ztypes_linux_mipsle.go
  38. 20 0
      unix/ztypes_linux_ppc64.go
  39. 20 0
      unix/ztypes_linux_ppc64le.go
  40. 20 0
      unix/ztypes_linux_riscv64.go
  41. 20 0
      unix/ztypes_linux_s390x.go
  42. 20 0
      unix/ztypes_linux_sparc64.go

+ 3 - 0
unix/linux/types.go

@@ -36,6 +36,7 @@ package unix
 #include <sys/resource.h>
 #include <sys/select.h>
 #include <sys/signal.h>
+#include <sys/signalfd.h>
 #include <sys/statfs.h>
 #include <sys/statvfs.h>
 #include <sys/sysinfo.h>
@@ -748,6 +749,8 @@ const (
 
 type Sigset_t C.sigset_t
 
+type SignalfdSiginfo C.struct_signalfd_siginfo
+
 const RNDGETENTCNT = C.RNDGETENTCNT
 
 const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP

+ 2 - 1
unix/mkerrors.sh

@@ -179,6 +179,7 @@ struct ltchars {
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/time.h>
+#include <sys/signalfd.h>
 #include <sys/socket.h>
 #include <sys/xattr.h>
 #include <linux/if.h>
@@ -453,7 +454,7 @@ ccflags="$@"
 		$2 !~ "MNT_BITS" &&
 		$2 ~ /^(MS|MNT|UMOUNT)_/ ||
 		$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||
-		$2 ~ /^(O|F|E?FD|NAME|S|PTRACE|PT)_/ ||
+		$2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT)_/ ||
 		$2 ~ /^KEXEC_/ ||
 		$2 ~ /^LINUX_REBOOT_CMD_/ ||
 		$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||

+ 1 - 1
unix/syscall_linux.go

@@ -1467,6 +1467,7 @@ func Setgid(uid int) (err error) {
 
 //sys	Setpriority(which int, who int, prio int) (err error)
 //sys	Setxattr(path string, attr string, data []byte, flags int) (err error)
+//sys	Signalfd(fd int, mask *Sigset_t, flags int) = SYS_SIGNALFD4
 //sys	Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)
 //sys	Sync()
 //sys	Syncfs(fd int) (err error)
@@ -1683,7 +1684,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
 // Shmdt
 // Shmget
 // Sigaltstack
-// Signalfd
 // Swapoff
 // Swapon
 // Sysfs

+ 2 - 0
unix/zerrors_linux_386.go

@@ -1744,6 +1744,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x800
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_amd64.go

@@ -1745,6 +1745,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x800
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_arm.go

@@ -1751,6 +1751,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x800
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_arm64.go

@@ -1735,6 +1735,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x800
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_mips.go

@@ -1744,6 +1744,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x80
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_mips64.go

@@ -1744,6 +1744,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x80
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_mips64le.go

@@ -1744,6 +1744,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x80
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_mipsle.go

@@ -1744,6 +1744,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x80
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_ppc64.go

@@ -1802,6 +1802,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x800
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_ppc64le.go

@@ -1802,6 +1802,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x800
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_riscv64.go

@@ -1732,6 +1732,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x800
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_s390x.go

@@ -1805,6 +1805,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x80000
+	SFD_NONBLOCK                         = 0x800
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 2 - 0
unix/zerrors_linux_sparc64.go

@@ -1797,6 +1797,8 @@ const (
 	SECCOMP_MODE_STRICT                  = 0x1
 	SECURITYFS_MAGIC                     = 0x73636673
 	SELINUX_MAGIC                        = 0xf97cff8c
+	SFD_CLOEXEC                          = 0x400000
+	SFD_NONBLOCK                         = 0x4000
 	SHUT_RD                              = 0x0
 	SHUT_RDWR                            = 0x2
 	SHUT_WR                              = 0x1

+ 7 - 0
unix/zsyscall_linux_386.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_amd64.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_arm.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_arm64.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_mips.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_mips64.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_mips64le.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_mipsle.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_ppc64.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_ppc64le.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_riscv64.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_s390x.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 7 - 0
unix/zsyscall_linux_sparc64.go

@@ -1380,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func Signalfd(fd int, mask *Sigset_t, flags int) {
+	SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags))
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
 	var _p0 *byte
 	_p0, err = BytePtrFromString(path)

+ 20 - 0
unix/ztypes_linux_386.go

@@ -759,6 +759,26 @@ type Sigset_t struct {
 	Val [32]uint32
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x80045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_amd64.go

@@ -772,6 +772,26 @@ type Sigset_t struct {
 	Val [16]uint64
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x80045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_arm.go

@@ -748,6 +748,26 @@ type Sigset_t struct {
 	Val [32]uint32
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x80045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_arm64.go

@@ -751,6 +751,26 @@ type Sigset_t struct {
 	Val [16]uint64
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x80045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_mips.go

@@ -753,6 +753,26 @@ type Sigset_t struct {
 	Val [32]uint32
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x40045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_mips64.go

@@ -753,6 +753,26 @@ type Sigset_t struct {
 	Val [16]uint64
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x40045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_mips64le.go

@@ -753,6 +753,26 @@ type Sigset_t struct {
 	Val [16]uint64
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x40045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_mipsle.go

@@ -753,6 +753,26 @@ type Sigset_t struct {
 	Val [32]uint32
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x40045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_ppc64.go

@@ -761,6 +761,26 @@ type Sigset_t struct {
 	Val [16]uint64
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x40045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_ppc64le.go

@@ -761,6 +761,26 @@ type Sigset_t struct {
 	Val [16]uint64
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x40045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_riscv64.go

@@ -778,6 +778,26 @@ type Sigset_t struct {
 	Val [16]uint64
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x80045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_s390x.go

@@ -774,6 +774,26 @@ type Sigset_t struct {
 	Val [16]uint64
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x80045200
 
 const PERF_IOC_FLAG_GROUP = 0x1

+ 20 - 0
unix/ztypes_linux_sparc64.go

@@ -756,6 +756,26 @@ type Sigset_t struct {
 	Val [16]uint64
 }
 
+type SignalfdSiginfo struct {
+	Signo   uint32
+	Errno   int32
+	Code    int32
+	Pid     uint32
+	Uid     uint32
+	Fd      int32
+	Tid     uint32
+	Band    uint32
+	Overrun uint32
+	Trapno  uint32
+	Status  int32
+	Int     int32
+	Ptr     uint64
+	Utime   uint64
+	Stime   uint64
+	Addr    uint64
+	_       [48]uint8
+}
+
 const RNDGETENTCNT = 0x40045200
 
 const PERF_IOC_FLAG_GROUP = 0x1