linux-kernelorg-stable/include/uapi/linux
Christian Brauner 12b5b138d1
coredump: allow for flexible coredump handling
Extend the coredump socket to allow the coredump server to tell the
kernel how to process individual coredumps.

When the crashing task connects to the coredump socket the kernel will
send a struct coredump_req to the coredump server. The kernel will set
the size member of struct coredump_req allowing the coredump server how
much data can be read.

The coredump server uses MSG_PEEK to peek the size of struct
coredump_req. If the kernel uses a newer struct coredump_req the
coredump server just reads the size it knows and discard any remaining
bytes in the buffer. If the kernel uses an older struct coredump_req
the coredump server just reads the size the kernel knows.

The returned struct coredump_req will inform the coredump server what
features the kernel supports. The coredump_req->mask member is set to
the currently know features.

The coredump server may only use features whose bits were raised by the
kernel in coredump_req->mask.

In response to a coredump_req from the kernel the coredump server sends
a struct coredump_ack to the kernel. The kernel informs the coredump
server what version of struct coredump_ack it supports by setting struct
coredump_req->size_ack to the size it knows about. The coredump server
may only send as many bytes as coredump_req->size_ack indicates (a
smaller size is fine of course). The coredump server must set
coredump_ack->size accordingly.

The coredump server sets the features it wants to use in struct
coredump_ack->mask. Only bits returned in struct coredump_req->mask may
be used.

In case an invalid struct coredump_ack is sent to the kernel a non-zero
u32 integer is sent indicating the reason for the failure. If it was
successful a zero u32 integer is sent.

In the initial version the following features are supported in
coredump_{req,ack}->mask:

* COREDUMP_KERNEL
  The kernel will write the coredump data to the socket.

* COREDUMP_USERSPACE
  The kernel will not write coredump data but will indicate to the
  parent that a coredump has been generated. This is used when userspace
  generates its own coredumps.

* COREDUMP_REJECT
  The kernel will skip generating a coredump for this task.

* COREDUMP_WAIT
  The kernel will prevent the task from exiting until the coredump
  server has shutdown the socket connection.

The flexible coredump socket can be enabled by using the "@@" prefix
instead of the single "@" prefix for the regular coredump socket:

  @@/run/systemd/coredump.socket

will enable flexible coredump handling. Current kernels already enforce
that "@" must be followed by "/" and will reject anything else. So
extending this is backward and forward compatible.

Link: https://lore.kernel.org/20250603-work-coredump-socket-protocol-v2-1-05a5f0c18ecc@kernel.org
Acked-by: Lennart Poettering <lennart@poettering.net>
Reviewed-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-06-12 14:00:18 +02:00
..
android
byteorder
caif
can
cifs
counter
dvb
genwqe
hdlc
hsi
iio
isdn
media media: uapi: Add stats info and parameters buffer for C3 ISP 2025-05-09 12:08:37 +02:00
misc
mmc
netfilter netfilter: nf_tables: Add notifications for hook changes 2025-05-23 13:57:14 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid
sched
spi
sunrpc
surface_aggregator
tc_act
tc_ematch
usb USB/Thunderbolt update for 6.15-rc1 2025-04-02 18:23:31 -07:00
a.out.h
acct.h
acrn.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
amt.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h
aspeed-video.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 landlock: Add AUDIT_LANDLOCK_DOMAIN and log domain status 2025-03-26 13:59:38 +01:00
auto_dev-ioctl.h
auto_fs.h
auto_fs4.h
auxvec.h
ax25.h
batadv_packet.h
batman_adv.h
baycom.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
bits.h
blk-crypto.h
blkdev.h
blkpg.h
blktrace_api.h block: remove bounce buffering support 2025-05-05 13:22:39 -06:00
blkzoned.h
bpf.h bpf: Fix L4 csum update on IPv6 in CHECKSUM_COMPLETE 2025-05-30 19:53:51 -07:00
bpf_common.h
bpf_perf_event.h
bpqether.h
bsg.h
bt-bmc.h
btf.h
btrfs.h
btrfs_tree.h
cachefiles.h
can.h
capability.h
capi.h
cciss_defs.h
cciss_ioctl.h
ccs.h
cdrom.h
cec-funcs.h media: uapi: cec-funcs.h: use CEC_LOG_ADDR_BROADCAST 2025-04-30 08:16:07 +02:00
cec.h
cfm_bridge.h
cgroupstats.h
chio.h
close_range.h
cn_proc.h
coda.h
coff.h
comedi.h
connector.h
const.h
coredump.h coredump: allow for flexible coredump handling 2025-06-12 14:00:18 +02:00
coresight-stm.h
counter.h
cramfs_fs.h
cryptouser.h
cuda.h
cxl_mem.h
cyclades.h
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h devlink: define enum for attr types of dynamic attributes 2025-05-06 18:21:11 -07:00
dlm.h
dlm_device.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h dm mpath: Interface for explicit probing of active paths 2025-05-04 11:35:06 +02:00
dm-log-userspace.h
dma-buf.h
dma-heap.h
dns_resolver.h
dpll.h
dqblk_xfs.h
dw100.h
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h Updates for the VDSO infrastructure: 2025-03-25 11:30:42 -07:00
errno.h
errqueue.h net-timestamp: COMPLETION timestamp on packet tx completion 2025-03-25 12:48:05 -04:00
erspan.h
ethtool.h ethtool: Block setting of symmetric RSS when non-symmetric rx-flow-hash is requested 2025-05-09 16:24:28 -07:00
ethtool_netlink.h
ethtool_netlink_generated.h net: Add support for providing the PTP hardware source in tsinfo 2025-05-22 15:32:00 +02:00
eventfd.h
eventpoll.h
exfat.h
ext4.h
f2fs.h
fadvise.h
falloc.h
fanotify.h
fb.h
fcntl.h
fd.h
fdreg.h
fib_rules.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
fiemap.h
filter.h
firewire-cdev.h
firewire-constants.h
fou.h
fpga-dfl.h
fs.h fs/proc: extend the PAGEMAP_SCAN ioctl to report guard regions 2025-05-11 17:48:16 -07:00
fscrypt.h fscrypt: add support for hardware-wrapped keys 2025-04-08 19:32:11 -07:00
fsi.h
fsl_hypervisor.h
fsl_mc.h
fsmap.h
fsverity.h
fuse.h fuse: add more control over cache invalidation behaviour 2025-04-15 12:56:40 +02:00
futex.h futex: Implement FUTEX2_MPOL 2025-05-03 12:02:09 +02:00
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h
gpio.h
gsmmux.h
gtp.h
handshake.h
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h
idxd.h
if.h
if_addr.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_addrlabel.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_alg.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_arcnet.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_arp.h
if_bonding.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_bridge.h net: bridge: Add offload_fail_notification bopt 2025-04-14 15:56:42 -07:00
if_eql.h
if_ether.h
if_fc.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_fddi.h
if_hippi.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_infiniband.h
if_link.h ovpn: add basic interface creation/destruction/management routines 2025-04-17 12:30:02 +02:00
if_ltalk.h
if_macsec.h
if_packet.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_phonet.h
if_plip.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
if_x25.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
if_xdp.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
ife.h
igmp.h
ila.h
in.h
in6.h
in_route.h
inet_diag.h
inotify.h
input-event-codes.h ALSA: Add USB audio device jack type 2025-04-11 13:02:30 +02:00
input.h
io_uring.h for-6.16/io_uring-20250523 2025-05-26 12:13:22 -07:00
ioam6.h
ioam6_genl.h
ioam6_iptunnel.h
ioctl.h
iommufd.h iommufd: Fix iommu_vevent_header tables markup 2025-03-28 10:07:23 -03:00
ioprio.h
ip.h
ip6_tunnel.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
ip_vs.h
ipc.h
ipmi.h
ipmi_bmc.h
ipmi_msgdefs.h
ipmi_ssif_bmc.h
ipsec.h
ipv6.h
ipv6_route.h
irqnr.h
iso_fs.h
isst_if.h platform/x86: ISST: Support SST-PP revision 2 2025-05-08 16:04:06 +03:00
ivtv.h
ivtvfb.h
jffs2.h
joystick.h
kcm.h
kcmp.h
kcov.h
kd.h
kdev_t.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kexec.h
keyboard.h
keyctl.h
kfd_ioctl.h drm/amdkfd: add smi events for process start and end 2025-04-11 17:01:25 -04:00
kfd_sysfs.h
kvm.h KVM/riscv changes for 6.16 2025-05-26 16:27:00 -04:00
kvm_para.h
l2tp.h
landlock.h landlock: Update log documentation 2025-04-17 11:09:10 +02:00
libc-compat.h
limits.h
lirc.h
llc.h
loadpin.h
lockd_netlink.h
loop.h
lp.h
lsm.h
lwtunnel.h
magic.h
major.h
map_to_7segment.h
map_to_14segment.h
matroxfb.h
max2175.h
mctp.h
mdio.h
media-bus-format.h
media.h
mei.h
mei_uuid.h
membarrier.h
memfd.h
mempolicy.h
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mount.h
mpls.h
mpls_iptunnel.h
mptcp.h
mptcp_pm.h
mqueue.h
mroute.h
mroute6.h
mrp_bridge.h
msdos_fs.h
msg.h
mshv.h
mtio.h
nbd-netlink.h
nbd.h
ncsi.h
ndctl.h
neighbour.h tools: ynl-gen: add makefile deps for neigh 2025-05-21 12:38:20 -07:00
net.h
net_dropmon.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
net_namespace.h
net_shaper.h
net_tstamp.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
netconf.h
netdev.h net: devmem: TCP tx netlink api 2025-05-13 11:12:48 +02:00
netdevice.h
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netlink_diag.h net: add UAPI to the header guard in various network headers 2025-04-17 19:04:50 -07:00
netrom.h
nexthop.h
nfc.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfsacl.h
nfsd_netlink.h
nilfs2_api.h
nilfs2_ondisk.h
nitro_enclaves.h
nl80211-vnd-intel.h
nl80211.h wifi: nl80211: add link id of transmitted profile for MLO MBSSID 2025-04-23 18:03:30 +02:00
npcm-video.h
nsfs.h
nsm.h
ntsync.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h
openvswitch.h
ovpn.h ovpn: add basic netlink support 2025-04-17 12:30:02 +02:00
packet_diag.h
papr_pdsm.h
param.h
parport.h
patchkey.h
pci.h
pci_regs.h PCI: Add lane equalization register offsets 2025-04-19 19:42:43 +05:30
pcitest.h misc: pci_endpoint_test: Add support for PCITEST_IRQ_TYPE_AUTO 2025-03-26 06:11:54 +00:00
perf_event.h perf/uapi: Clean up <uapi/linux/perf_event.h> a bit 2025-05-22 11:03:41 +02:00
personality.h
pfkeyv2.h
pfrut.h
pg.h
phantom.h
phonet.h
pidfd.h pidfs, coredump: add PIDFD_INFO_COREDUMP 2025-05-21 13:59:12 +02:00
pkt_cls.h net: sched: uapi: add more sanely named duplicate defines 2025-05-15 11:44:29 -07:00
pkt_sched.h net: sched: uapi: add more sanely named duplicate defines 2025-05-15 11:44:29 -07:00
pktcdvd.h
pmu.h
poll.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h
ppp_defs.h
pps.h
pps_gen.h
pr.h
prctl.h futex: Allow to make the private hash immutable 2025-05-03 12:02:08 +02:00
psample.h
psci.h
psp-dbc.h
psp-sev.h
ptp_clock.h
ptrace.h ptrace: introduce PTRACE_SET_SYSCALL_INFO request 2025-05-11 17:48:15 -07:00
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
rds.h
reboot.h
remoteproc_cdev.h
resource.h
rfkill.h
rio_cm_cdev.h
rio_mport_cdev.h
rkisp1-config.h
romfs_fs.h
rose.h
route.h
rpl.h
rpl_iptunnel.h
rpmsg.h
rpmsg_types.h
rseq.h
rtc.h
rtnetlink.h
rxrpc.h rxrpc: Add the security index for yfs-rxgk 2025-04-14 17:36:41 -07:00
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h
seccomp.h
securebits.h
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
selinux_netlink.h
sem.h
serial.h
serial_core.h
serial_reg.h
serio.h
sev-guest.h
shm.h
signal.h
signalfd.h
smc.h
smc_diag.h
smiapp.h
snmp.h tcp: add LINUX_MIB_PAWS_TW_REJECTED counter 2025-04-10 18:29:26 -07:00
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h fs: add atomic write unit max opt to statx 2025-05-07 14:25:30 -07:00
stddef.h
stm.h
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h
sync_file.h
synclink.h
sysctl.h
sysinfo.h
target_core_user.h
taskstats.h taskstats: fix struct taskstats breaks backward compatibility since version 15 2025-05-20 22:49:39 -07:00
tcp.h tcp: fastopen: pass TFO child indication through getsockopt 2025-04-24 18:21:04 -07:00
tcp_metrics.h
tdx-guest.h
tee.h
termios.h
thermal.h
thp7312.h
time.h
time_types.h
timerfd.h
times.h
timex.h
tiocl.h vt: bracketed paste support 2025-05-21 13:41:03 +02:00
tipc.h
tipc_config.h
tipc_netlink.h
tipc_sockets_diag.h
tls.h
toshiba.h
tps6594_pfsm.h
trace_mmap.h
tty.h
tty_flags.h
types.h
ublk_cmd.h ublk: have a per-io daemon instead of a per-queue daemon 2025-05-31 14:38:21 -06:00
udf_fs_i.h
udmabuf.h
udp.h ovpn: introduce the ovpn_socket object 2025-04-17 12:30:02 +02:00
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
um_timetravel.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
user_events.h
userfaultfd.h
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h
v4l2-controls.h
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
vdpa.h
vduse.h
vesa.h
veth.h
vfio.h iommufd 6.15 merge window pull 2025-04-01 18:03:46 -07:00
vfio_ccw.h
vfio_zdev.h
vhost.h vhost: fix VHOST_*_OWNER documentation 2025-04-14 09:51:31 -04:00
vhost_types.h
videodev2.h media: Add C3ISP_PARAMS and C3ISP_STATS meta formats 2025-05-09 12:08:37 +02:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_bt.h
virtio_config.h
virtio_console.h
virtio_crypto.h
virtio_fs.h
virtio_gpio.h
virtio_gpu.h drm/virtio: Add capset definitions to UAPI 2025-03-28 04:53:51 +03:00
virtio_i2c.h
virtio_ids.h
virtio_input.h
virtio_iommu.h
virtio_mem.h
virtio_mmio.h
virtio_net.h virtio_net: Split struct virtio_net_rss_config 2025-03-25 09:30:21 -07:00
virtio_pci.h virtio_pci: Use self group type for cap commands 2025-04-14 09:51:31 -04:00
virtio_pcidev.h
virtio_pmem.h
virtio_ring.h
virtio_rng.h
virtio_rtc.h virtio_rtc: Add RTC class driver 2025-05-27 10:27:54 -04:00
virtio_scmi.h
virtio_scsi.h
virtio_snd.h
virtio_types.h
virtio_vsock.h
vm_sockets.h
vm_sockets_diag.h
vmclock-abi.h
vmcore.h
vsockmon.h
vt.h vt: add VT_GETCONSIZECSRPOS to retrieve console size and cursor position 2025-05-21 13:41:03 +02:00
vtpm_proxy.h
wait.h
watch_queue.h
watchdog.h
wireguard.h wireguard: allowedips: add WGALLOWEDIP_F_REMOVE_ME flag 2025-05-27 09:06:19 +02:00
wireless.h
wmi.h
wwan.h
x25.h
xattr.h
xdp_diag.h
xfrm.h
xilinx-v4l2-controls.h
zorro.h
zorro_ids.h