Ubuntu-focal-kernel/include/uapi/linux
Andrey Vagin 84c751bd4a ptrace: add ability to retrieve signals without removing from a queue (v4)
This patch adds a new ptrace request PTRACE_PEEKSIGINFO.

This request is used to retrieve information about pending signals
starting with the specified sequence number.  Siginfo_t structures are
copied from the child into the buffer starting at "data".

The argument "addr" is a pointer to struct ptrace_peeksiginfo_args.
struct ptrace_peeksiginfo_args {
	u64 off;	/* from which siginfo to start */
	u32 flags;
	s32 nr;		/* how may siginfos to take */
};

"nr" has type "s32", because ptrace() returns "long", which has 32 bits on
i386 and a negative values is used for errors.

Currently here is only one flag PTRACE_PEEKSIGINFO_SHARED for dumping
signals from process-wide queue.  If this flag is not set, signals are
read from a per-thread queue.

The request PTRACE_PEEKSIGINFO returns a number of dumped signals.  If a
signal with the specified sequence number doesn't exist, ptrace returns
zero.  The request returns an error, if no signal has been dumped.

Errors:
EINVAL - one or more specified flags are not supported or nr is negative
EFAULT - buf or addr is outside your accessible address space.

A result siginfo contains a kernel part of si_code which usually striped,
but it's required for queuing the same siginfo back during restore of
pending signals.

This functionality is required for checkpointing pending signals.  Pedro
Alves suggested using it in "gdb" to peek at pending signals.  gdb already
uses PTRACE_GETSIGINFO to get the siginfo for the signal which was already
dequeued.  This functionality allows gdb to look at the pending signals
which were not reported yet.

The prototype of this code was developed by Oleg Nesterov.

Signed-off-by: Andrew Vagin <avagin@openvz.org>
Cc: Roland McGrath <roland@redhat.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Dave Jones <davej@redhat.com>
Cc: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
Cc: Pavel Emelyanov <xemul@parallels.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Pedro Alves <palves@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-04-30 17:04:05 -07:00
..
byteorder
caif
can can: gw: indicate and count deleted frames due to misconfiguration 2013-01-26 16:59:02 +01:00
dvb [media] demux.h: Remove duplicated enum 2013-04-08 06:53:15 -03:00
hdlc
hsi
isdn
mmc
netfilter netfilter: xt_CT: add alias flag 2013-02-05 01:49:26 +01:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid UAPI: fix endianness conditionals in linux/raid/md_p.h 2013-03-13 15:21:49 -07:00
spi
sunrpc
tc_act
tc_ematch
usb USB: fix an incorrect table index in comment 2013-04-08 09:08:34 -07:00
wimax
Kbuild Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next into for-linus-3.9 2013-02-20 14:05:45 -05:00
a.out.h
acct.h UAPI: fix endianness conditionals in linux/acct.h 2013-03-13 15:21:48 -07:00
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h UAPI: fix endianness conditionals in linux/aio_abi.h 2013-03-13 15:21:48 -07:00
apm_bios.h
arcfb.h
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h linux/audit.h: move ptrace.h include to kernel header 2013-01-11 14:54:56 -08:00
auto_fs.h unbreak automounter support on 64-bit kernel with 32-bit userspace (v2) 2013-02-08 20:42:18 +01:00
auto_fs4.h
auxvec.h
ax25.h
b1lli.h
baycom.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
bpqether.h
bsg.h
btrfs.h Btrfs: set/change the label of a mounted file system 2013-02-20 12:59:59 -05:00
can.h
capability.h
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h libata: identify and init ZPODD devices 2013-01-21 15:40:35 -05:00
cgroupstats.h
chio.h
cm4000_cs.h
cn_proc.h
coda.h
coda_psdev.h
coff.h
connector.h Drivers: hv: Add a new driver to support host initiated backup 2013-03-15 12:12:36 -07:00
const.h
cramfs_fs.h
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h
dccp.h
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h dm ioctl: allow message to return data 2013-03-01 22:45:49 +00:00
dm-log-userspace.h
dn.h
dqblk_xfs.h
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h metag: ptrace: Implement NT_METAG_TLS 2013-03-27 14:37:47 +00:00
elfcore.h
errno.h
errqueue.h
ethtool.h
eventpoll.h
fadvise.h
falloc.h
fanotify.h
fb.h
fcntl.h
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h
firewire-constants.h
flat.h
fs.h mm: make snapshotting pages for stable writes a per-bio operation 2013-04-29 15:54:33 -07:00
fsl_hypervisor.h
fuse.h fuse: fix type definitions in uapi header 2013-04-17 12:30:40 +02:00
futex.h
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h
gigaset_dev.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hw_breakpoint.h
hysdn_if.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h
if.h
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h bridge: use __u16 in if_bridge.h 2013-02-14 00:54:17 -05:00
if_cablemodem.h
if_eql.h
if_ether.h net/8021q: Implement Multiple VLAN Registration Protocol (MVRP) 2013-02-10 20:37:22 -05:00
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h rtnl: expose carrier value with possibility to set it 2012-12-28 15:24:18 -08:00
if_ltalk.h
if_packet.h
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h net/8021q: Implement Multiple VLAN Registration Protocol (MVRP) 2013-02-10 20:37:22 -05:00
if_x25.h
igmp.h
in.h
in6.h mcast: define and use MRT[6]_MAX in ip[6]_mroute_opt() 2013-01-21 13:55:14 -05:00
in_route.h
inet_diag.h
inotify.h
input.h
ioctl.h
ip.h
ip6_tunnel.h
ip_vs.h
ipc.h
ipmi.h ipmi: remove superfluous kernel/userspace explanation 2013-02-27 19:10:21 -08:00
ipmi_msgdefs.h
ipsec.h
ipv6.h ipv6: Store Router Alert option in IP6CB directly. 2013-01-13 20:17:14 -05:00
ipv6_route.h
ipx.h
irda.h
irqnr.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
ixjuser.h
jffs2.h
joystick.h
kd.h
kdev_t.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kexec.h
keyboard.h
keyctl.h
kvm.h Merge tag 'kvm-3.9-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2013-02-24 13:07:18 -08:00
kvm_para.h
l2tp.h
limits.h
llc.h
loop.h
lp.h
magic.h Introduce a new file system, Flash-Friendly File System (F2FS), to Linux 3.8. 2012-12-20 13:54:52 -08:00
major.h
map_to_7segment.h
matroxfb.h
mdio.h
media.h [media] media: add support for decoder as one of media entity types 2013-03-21 14:05:31 -03:00
mei.h
mempolicy.h
meye.h [media] meye: convert to the control framework 2013-02-05 18:23:47 -02:00
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mqueue.h
mroute.h mcast: add multicast proxy support (IPv4 and IPv6) 2013-01-21 13:55:14 -05:00
mroute6.h mcast: add multicast proxy support (IPv4 and IPv6) 2013-01-21 13:55:14 -05:00
msdos_fs.h fat: mark fs as dirty on mount and clean on umount 2013-02-27 19:10:11 -08:00
msg.h ipc: introduce message queue copy feature 2013-01-04 16:11:45 -08:00
mtio.h
n_r3964.h
nbd.h nbd: support FLUSH requests 2013-02-27 19:10:22 -08:00
ncp.h
ncp_fs.h
ncp_mount.h
ncp_no.h
neighbour.h bridge: Add vlan support to static neighbors 2013-02-13 19:42:16 -05:00
net.h
net_dropmon.h
net_tstamp.h
netconf.h
netdevice.h
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netrom.h
nfc.h NFC: Change nfc.h license 2013-01-14 12:28:54 +01:00
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfsacl.h
nl80211.h nl80211: renumber NL80211_FEATURE_FULL_AP_CLIENT_STATE 2013-02-15 09:41:44 +01:00
nubus.h
nvram.h
omap3isp.h
omapfb.h
oom.h
packet_diag.h net: fix *_DIAG_MAX constants 2013-03-21 12:36:33 -04:00
param.h
parport.h
patchkey.h
pci.h
pci_regs.h PCI: Clean up MSI/MSI-X capability #defines 2013-04-23 09:50:30 -06:00
perf_event.h perf: Fix comments in PERF_MEM_LVL bitmask 2013-04-08 13:54:24 +02:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h
pkt_sched.h
pktcdvd.h
pmu.h
poll.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h
ppp_defs.h
pps.h
prctl.h
ptp_clock.h
ptrace.h ptrace: add ability to retrieve signals without removing from a queue (v4) 2013-04-30 17:04:05 -07:00
qnx4_fs.h
qnxtypes.h
quota.h
radeonfb.h
random.h
raw.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h
rfkill.h
romfs_fs.h
rose.h
route.h
rtc.h
rtnetlink.h bridge: Dump vlan information from a bridge port 2013-02-13 19:41:46 -05:00
scc.h
sched.h
screen_info.h
sdla.h
seccomp.h
securebits.h
selinux_netlink.h
sem.h
serial.h
serial_core.h tty/serial: Add support for Altera serial port 2013-03-12 08:53:23 -07:00
serial_reg.h
serio.h
shm.h
signal.h unify SS_ONSTACK/SS_DISABLE definitions 2012-12-19 18:07:39 -05:00
signalfd.h
snmp.h xfrm: removes a superfluous check and add a statistic 2013-01-07 11:18:58 +01:00
sock_diag.h
socket.h
sockios.h
som.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
string.h
suspend_ioctls.h
swab.h
synclink.h
sysctl.h
sysinfo.h
taskstats.h
tcp.h tcp: set and get per-socket timestamp 2013-02-13 13:22:15 -05:00
tcp_metrics.h
telephony.h
termios.h
time.h timekeeping: Add CLOCK_TAI clockid 2013-03-22 16:19:59 -07:00
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
toshiba.h
tty.h
tty_flags.h
types.h
udf_fs_i.h
udp.h
uhid.h HID: uhid: use __packed__ for uhid_feature_answer_req 2013-01-03 10:38:24 +01:00
uinput.h
uio.h
ultrasound.h
un.h
unistd.h
unix_diag.h net: fix *_DIAG_MAX constants 2013-03-21 12:36:33 -04:00
usbdevice_fs.h
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h
v4l2-controls.h [media] V4L: Add MATRIX option to V4L2_CID_EXPOSURE_METERING control 2013-03-31 10:55:19 -03:00
v4l2-dv-timings.h [media] v4l2-dv-timings.h: add 480i59.94 and 576i50 CEA-861-E timings 2013-04-14 19:56:36 -03:00
v4l2-mediabus.h [media] soc_camera: Add RGB666 & RGB888 formats 2013-04-04 19:40:08 -03:00
v4l2-subdev.h
veth.h
vfio.h vfio-pci: Add support for VGA region access 2013-02-18 10:11:13 -07:00
vhost.h
videodev2.h [media] videodev2.h: Remove the unused old V4L1 buffer types 2013-04-25 10:29:14 -03:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_config.h
virtio_console.h
virtio_ids.h
virtio_net.h virtio-net: introduce a new control to set macaddr 2013-01-21 14:07:44 -05:00
virtio_pci.h
virtio_ring.h
virtio_rng.h
vm_sockets.h VSOCK: Remove hypervisor-only socket option 2013-02-18 15:02:51 -05:00
vt.h
wait.h
wanrouter.h wanrouter: delete now orphaned header content, files/drivers 2013-01-31 19:56:35 -05:00
watchdog.h
wimax.h
wireless.h
x25.h
xattr.h hfsplus: add osx.* prefix for handling namespace of Mac OS X extended attributes 2013-02-27 19:10:10 -08:00
xfrm.h