linux-uconsole/include/uapi/linux
Christian Brauner 7f192e3cd3
fork: add clone3
This adds the clone3 system call.

As mentioned several times already (cf. [7], [8]) here's the promised
patchset for clone3().

We recently merged the CLONE_PIDFD patchset (cf. [1]). It took the last
free flag from clone().

Independent of the CLONE_PIDFD patchset a time namespace has been discussed
at Linux Plumber Conference last year and has been sent out and reviewed
(cf. [5]). It is expected that it will go upstream in the not too distant
future. However, it relies on the addition of the CLONE_NEWTIME flag to
clone(). The only other good candidate - CLONE_DETACHED - is currently not
recyclable as we have identified at least two large or widely used
codebases that currently pass this flag (cf. [2], [3], and [4]). Given that
CLONE_PIDFD grabbed the last clone() flag the time namespace is effectively
blocked. clone3() has the advantage that it will unblock this patchset
again. In general, clone3() is extensible and allows for the implementation
of new features.

The idea is to keep clone3() very simple and close to the original clone(),
specifically, to keep on supporting old clone()-based workloads.
We know there have been various creative proposals how a new process
creation syscall or even api is supposed to look like. Some people even
going so far as to argue that the traditional fork()+exec() split should be
abandoned in favor of an in-kernel version of spawn(). Independent of
whether or not we personally think spawn() is a good idea this patchset has
and does not want to have anything to do with this.
One stance we take is that there's no real good alternative to
clone()+exec() and we need and want to support this model going forward;
independent of spawn().
The following requirements guided clone3():
- bump the number of available flags
- move arguments that are currently passed as separate arguments
  in clone() into a dedicated struct clone_args
  - choose a struct layout that is easy to handle on 32 and on 64 bit
  - choose a struct layout that is extensible
  - give new flags that currently need to abuse another flag's dedicated
    return argument in clone() their own dedicated return argument
    (e.g. CLONE_PIDFD)
  - use a separate kernel internal struct kernel_clone_args that is
    properly typed according to current kernel conventions in fork.c and is
    different from  the uapi struct clone_args
- port _do_fork() to use kernel_clone_args so that all process creation
  syscalls such as fork(), vfork(), clone(), and clone3() behave identical
  (Arnd suggested, that we can probably also port do_fork() itself in a
   separate patchset.)
- ease of transition for userspace from clone() to clone3()
  This very much means that we do *not* remove functionality that userspace
  currently relies on as the latter is a good way of creating a syscall
  that won't be adopted.
- do not try to be clever or complex: keep clone3() as dumb as possible

In accordance with Linus suggestions (cf. [11]), clone3() has the following
signature:

/* uapi */
struct clone_args {
        __aligned_u64 flags;
        __aligned_u64 pidfd;
        __aligned_u64 child_tid;
        __aligned_u64 parent_tid;
        __aligned_u64 exit_signal;
        __aligned_u64 stack;
        __aligned_u64 stack_size;
        __aligned_u64 tls;
};

/* kernel internal */
struct kernel_clone_args {
        u64 flags;
        int __user *pidfd;
        int __user *child_tid;
        int __user *parent_tid;
        int exit_signal;
        unsigned long stack;
        unsigned long stack_size;
        unsigned long tls;
};

long sys_clone3(struct clone_args __user *uargs, size_t size)

clone3() cleanly supports all of the supported flags from clone() and thus
all legacy workloads.
The advantage of sticking close to the old clone() is the low cost for
userspace to switch to this new api. Quite a lot of userspace apis (e.g.
pthreads) are based on the clone() syscall. With the new clone3() syscall
supporting all of the old workloads and opening up the ability to add new
features should make switching to it for userspace more appealing. In
essence, glibc can just write a simple wrapper to switch from clone() to
clone3().

There has been some interest in this patchset already. We have received a
patch from the CRIU corner for clone3() that would set the PID/TID of a
restored process without /proc/sys/kernel/ns_last_pid to eliminate a race.

/* User visible differences to legacy clone() */
- CLONE_DETACHED will cause EINVAL with clone3()
- CSIGNAL is deprecated
  It is superseeded by a dedicated "exit_signal" argument in struct
  clone_args freeing up space for additional flags.
  This is based on a suggestion from Andrei and Linus (cf. [9] and [10])

/* References */
[1]: b3e5838252
[2]: https://dxr.mozilla.org/mozilla-central/source/security/sandbox/linux/SandboxFilter.cpp#343
[3]: https://git.musl-libc.org/cgit/musl/tree/src/thread/pthread_create.c#n233
[4]: https://sources.debian.org/src/blcr/0.8.5-2.3/cr_module/cr_dump_self.c/?hl=740#L740
[5]: https://lore.kernel.org/lkml/20190425161416.26600-1-dima@arista.com/
[6]: https://lore.kernel.org/lkml/20190425161416.26600-2-dima@arista.com/
[7]: https://lore.kernel.org/lkml/CAHrFyr5HxpGXA2YrKza-oB-GGwJCqwPfyhD-Y5wbktWZdt0sGQ@mail.gmail.com/
[8]: https://lore.kernel.org/lkml/20190524102756.qjsjxukuq2f4t6bo@brauner.io/
[9]: https://lore.kernel.org/lkml/20190529222414.GA6492@gmail.com/
[10]: https://lore.kernel.org/lkml/CAHk-=whQP-Ykxi=zSYaV9iXsHsENa+2fdj-zYKwyeyed63Lsfw@mail.gmail.com/
[11]: https://lore.kernel.org/lkml/CAHk-=wieuV4hGwznPsX-8E0G2FKhx3NjZ9X3dTKh5zKd+iqOBw@mail.gmail.com/

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Christian Brauner <christian@brauner.io>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Serge Hallyn <serge@hallyn.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Pavel Emelyanov <xemul@virtuozzo.com>
Cc: Jann Horn <jannh@google.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Adrian Reber <adrian@lisas.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrei Vagin <avagin@gmail.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: linux-api@vger.kernel.org
2019-06-09 09:29:28 +02:00
..
android Merge 5.0-rc4 into char-misc-next 2019-01-28 08:13:52 +01:00
byteorder
caif
can
cifs
dvb media: dvb/audio.h: get rid of unused APIs 2018-07-30 16:21:49 -04:00
genwqe
hdlc
hsi
iio iio: Add modifiers for ethanol and H2 gases 2018-12-16 14:05:58 +00:00
isdn
mmc mmc: document 'Reliable Write' bit in uapi header 2018-12-17 08:26:24 +01:00
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf 2019-05-13 08:55:15 -07:00
netfilter_arp
netfilter_bridge netfilter: ebtables: add ebt_get_target and ebt_get_target_c 2018-04-24 10:29:18 +02:00
netfilter_ipv4
netfilter_ipv6 netfilter: ip6t_srh: extend SRH matching for previous, next and last SID 2018-05-06 23:33:03 +02:00
nfsd nfsd: un-deprecate nfsdcld 2019-04-24 09:46:34 -04:00
raid
sched
spi spi: spidev: Enable control of inter-word delays 2019-03-18 12:18:28 +00:00
sunrpc
tc_act net: Move all TC actions identifiers to one place 2019-02-10 09:28:43 -08:00
tc_ematch
usb USB for v4.20 2018-10-05 08:32:01 -07:00
wimax
a.out.h
acct.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h aio: Comment use of IOCB_FLAG_IOPRIO aio flag 2018-11-19 19:03:43 -07:00
am437x-vpfe.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h drivers/misc: Add Aspeed P2A control driver 2019-04-25 19:33:34 +02:00
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 ntp: Audit NTP parameters adjustment 2019-04-15 18:14:01 -04:00
auto_dev-ioctl.h
auto_fs.h autofs: add ignore mount option 2019-03-07 18:32:01 -08:00
auto_fs4.h autofs4: merge auto_fs.h and auto_fs4.h 2018-06-07 17:34:39 -07:00
auxvec.h
ax25.h
b1lli.h
batadv_packet.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
batman_adv.h batman-adv: Add multicast-to-unicast support for multiple targets 2019-03-25 10:01:13 +01:00
baycom.h
bcache.h bcache: style fix to add a blank line after declarations 2018-08-11 15:46:41 -06:00
bcm933xx_hcs.h
bfs_fs.h bfs: extra sanity checking and static inode bitmap 2019-01-04 13:13:47 -08:00
binfmts.h exec: increase BINPRM_BUF_SIZE to 256 2019-03-07 18:32:01 -08:00
blkpg.h
blktrace_api.h blktrace: fix comment in blktrace_api.h 2018-03-30 14:16:24 -06:00
blkzoned.h uapi: fix ioctl documentation 2019-01-24 11:11:42 -07:00
bpf.h bpf: fix minor issues in documentation for BPF helpers. 2019-05-13 01:12:45 +02:00
bpf_common.h
bpf_perf_event.h bpf: add support to read sample address in bpf program 2018-03-08 02:22:34 +01:00
bpfilter.h net: add skeleton of bpfilter kernel module 2018-05-23 13:23:40 -04:00
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: add specification for BTF Var and DataSec kinds 2019-04-09 17:05:46 -07:00
btrfs.h btrfs: introduce new ioctl to unregister a btrfs device 2019-02-25 14:13:30 +01:00
btrfs_tree.h btrfs: use common file type conversion 2019-04-29 19:02:29 +02:00
can.h can: uapi: can.h: Fix can error class mask dir path 2018-07-27 10:40:16 +02:00
capability.h
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h
cec-funcs.h
cec.h media: cec: add new tx/rx status bits to detect aborts/timeouts 2018-10-05 11:22:39 -04:00
cgroupstats.h
chio.h
cm4000_cs.h
cn_proc.h connector: add parent pid and tgid to coredump and exit events 2018-05-01 14:25:37 -04:00
coda.h
coda_psdev.h
coff.h
connector.h
const.h linux/const.h: refactor _BITUL and _BITULL a bit 2018-04-11 10:28:38 -07:00
coresight-stm.h
cramfs_fs.h
cryptouser.h crypto: user - rename err_cnt parameter 2018-12-07 14:15:00 +08:00
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h net: dcb: add DSCP to comment about priority selector types 2018-07-29 12:53:54 -07:00
dccp.h
devlink.h devlink: Rename devlink health attributes 2019-02-21 10:38:51 -08:00
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h dm: eliminate 'split_discard_bios' flag from DM target interface 2019-02-20 23:24:55 -05:00
dm-log-userspace.h
dma-buf.h
dn.h
dns_resolver.h dns: Allow the dns resolver to retrieve a server set 2018-10-04 09:40:52 -07:00
dqblk_xfs.h
edd.h
efs_fs_sb.h
elf-em.h Move EM_UNICORE to uapi/linux/elf-em.h 2019-03-20 21:11:22 -04:00
elf-fdpic.h
elf.h arm64: add ptrace regsets for ptrauth key management 2019-02-01 13:56:58 +00:00
elfcore.h
errno.h
errqueue.h errqueue.h: Include time_types.h 2019-02-14 11:51:51 -05:00
erspan.h
ethtool.h ethtool: Add SFF-8436 and SFF-8636 max EEPROM length definitions 2019-05-01 14:39:16 -07:00
eventpoll.h eventpoll.h: wrap casts in () properly 2018-07-15 14:03:06 +02:00
fadvise.h
falloc.h
fanotify.h fanotify: add support for create/attrib/move/delete events 2019-02-07 16:43:23 +01:00
fb.h fbdev: make FB_BACKLIGHT a tristate 2018-12-20 19:13:07 +01:00
fcntl.h vfs: syscall: Add open_tree(2) to reference or clone a mount 2019-03-20 18:49:06 -04:00
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h FireWire: clean up firewire-cdev.h kernel-doc 2018-09-06 09:40:59 -06:00
firewire-constants.h
flat.h
fou.h fou: Support binding FoU socket 2019-03-27 13:30:07 -07:00
fpga-dfl.h fpga: dfl: afu: add DFL_FPGA_PORT_DMA_MAP/UNMAP ioctls support 2018-07-15 13:55:47 +02:00
fs.h fs/sync.c: sync_file_range(2) may use WB_SYNC_ALL writeback 2019-05-14 09:47:50 -07:00
fsi.h fsi: scom: Major overhaul 2018-06-18 15:11:53 +10:00
fsl_hypervisor.h
fsmap.h
fuse.h fuse: Add ioctl flag for x32 compat ioctl 2019-04-24 17:05:07 +02:00
futex.h
gameport.h
gen_stats.h net/core: Add new basic hardware counter 2018-09-24 12:18:42 -07:00
genetlink.h
gfs2_ondisk.h
gigaset_dev.h
gpio.h gpio: uapi: Grammar s/array/array of/ 2018-09-13 10:46:24 +02:00
gsmmux.h
gtp.h
hash_info.h crypto: streebog - register Streebog in hash info for IMA 2018-11-16 14:09:40 +08:00
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
hysdn_if.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h ipv6: Add rate limit mask for ICMPv6 messages 2019-04-18 16:58:37 -07:00
if.h
if_addr.h if_addr: add IFA_TARGET_NETNSID 2018-09-05 22:27:11 -07:00
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h net: if_arp: use define instead of hard-coded value 2018-09-21 19:22:32 -07:00
if_bonding.h bonding: add support for xstats and export 3ad stats 2019-01-22 12:04:14 -08:00
if_bridge.h net: bridge: add no_linklocal_learn bool option 2018-11-27 15:04:15 -08:00
if_cablemodem.h
if_eql.h
if_ether.h ether: Add dedicated Ethertype for pseudo-802.1Q DSA tagging 2019-05-03 10:49:17 -04:00
if_fc.h
if_fddi.h FDDI: defza: Add support for DEC FDDIcontroller 700 TURBOchannel adapter 2018-10-15 21:46:06 -07:00
if_frad.h
if_hippi.h
if_infiniband.h uapi: Fix SPDX tags for files referring to the 'OpenIB.org' license 2018-04-23 11:10:33 -04:00
if_link.h bonding: add support for xstats and export 3ad stats 2019-01-22 12:04:14 -08:00
if_ltalk.h
if_macsec.h
if_packet.h packet: add sockopt to ignore outgoing packets 2018-09-05 22:09:37 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h tun: Add ioctl() TUNGETDEVNETNS cmd to allow obtaining real net ns of tun device 2019-03-21 13:19:15 -07:00
if_tunnel.h iptunnel: make TUNNEL_FLAGS available in uapi 2018-12-19 15:58:01 -08:00
if_vlan.h vlan: support binding link state to vlan member bridge ports 2019-04-19 13:58:17 -07:00
if_x25.h
if_xdp.h xsk: Fix umem fill/completion queue mmap on 32-bit 2018-06-08 00:18:02 +02:00
ife.h
igmp.h bridge: Snoop Multicast Router Advertisements 2019-01-22 17:18:09 -08:00
ila.h ila: Flush netlink command to clear xlat table 2018-06-29 11:32:55 +09:00
in.h bridge: join all-snoopers multicast address 2019-01-22 17:18:08 -08:00
in6.h net: ipv6: add socket option IPV6_ROUTER_ALERT_ISOLATE 2019-03-03 21:05:10 -08:00
in_route.h
inet_diag.h inet_diag: fix reporting cgroup classid and fallback to priority 2019-02-12 13:35:57 -05:00
inotify.h inotify: Add flag IN_MASK_CREATE for inotify_add_watch() 2018-06-27 19:21:25 +02:00
input-event-codes.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2019-05-13 15:21:48 -07:00
input.h Input: input_event - fix the CONFIG_SPARC64 mixup 2019-01-24 00:38:39 -08:00
io_uring.h io_uring: add support for eventfd notifications 2019-05-02 14:08:54 -06:00
ioctl.h
ip.h route: add support for directed broadcast forwarding 2018-07-29 12:37:06 -07:00
ip6_tunnel.h
ip_vs.h ipvs: allow tunneling with gue encapsulation 2019-04-08 22:57:59 +02:00
ipc.h
ipmi.h
ipmi_bmc.h
ipmi_msgdefs.h
ipsec.h
ipv6.h
ipv6_route.h
ipx.h
irqnr.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
jffs2.h
joystick.h Input: stop telling users to snail-mail Vojtech 2018-07-26 17:04:37 -07:00
Kbuild KVM: export <linux/kvm_para.h> and <asm/kvm_para.h> iif KVM is supported 2019-03-28 17:27:42 +01:00
kcm.h
kcmp.h
kcov.h
kd.h
kdev_t.h
kernel-page-flags.h mm: convert PG_balloon to PG_offline 2019-03-05 21:07:14 -08:00
kernel.h
kernelcapi.h
kexec.h
keyboard.h kbd: complete dead keys definitions 2018-07-07 17:41:38 +02:00
keyctl.h KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2] 2018-10-26 09:30:46 +01:00
kfd_ioctl.h drm/amdkfd: add RAS ECC event support (v3) 2019-03-19 15:36:51 -05:00
kvm.h KVM/arm updates for 5.2 2019-05-15 23:41:43 +02:00
kvm_para.h KVM: X86: Implement PV IPIs in linux guest 2018-08-06 17:59:22 +02:00
l2tp.h l2tp: ignore L2TP_ATTR_MTU 2018-08-03 10:03:57 -07:00
libc-compat.h
lightnvm.h
limits.h linux/kernel.h: split *_MAX and *_MIN macros into <linux/limits.h> 2019-03-07 18:31:59 -08:00
lirc.h media: rc: xbox_remote: add protocol and set timeout 2019-04-22 13:02:53 -04:00
llc.h
loop.h
lp.h
lwtunnel.h
magic.h binder: implement binderfs 2018-12-19 09:40:13 +01:00
major.h
map_to_7segment.h
matroxfb.h
max2175.h
mdio.h net: phy: Add generic support for 2.5GBaseT and 5GBaseT 2019-02-13 19:17:53 -05:00
media-bus-format.h media: uapi: Add MEDIA_BUS_FMT_BGR888_3X8 media bus format 2019-04-22 11:35:43 -04:00
media.h media: media.h: Enable ALSA MEDIA_INTF_T* interface types 2019-04-22 11:19:56 -04:00
mei.h mei: adjust the copyright notice in the files. 2019-03-28 02:07:54 +09:00
membarrier.h
memfd.h mm/hugetlb: add mmap() encodings for 32MB and 512MB page sizes 2018-10-05 16:32:04 -07:00
mempolicy.h
meye.h
mic_common.h
mic_ioctl.h
mii.h net: phy: add GBit master / slave error detection 2018-07-24 14:41:08 -07:00
minix_fs.h
mman.h arch: move common mmap flags to linux/mman.h 2019-02-18 17:49:30 +01:00
mmtimer.h
module.h
mount.h vfs: syscall: Add fspick() to select a superblock for reconfiguration 2019-03-20 18:49:06 -04:00
mpls.h
mpls_iptunnel.h
mqueue.h
mroute.h ipmr: ip6mr: Create new sockopt to clear mfc cache or vifs 2019-02-21 13:05:05 -08:00
mroute6.h ipmr: ip6mr: Create new sockopt to clear mfc cache or vifs 2019-02-21 13:05:05 -08:00
msdos_fs.h fat: move MAX_FAT to fat.h and change it to inline function 2019-01-04 13:13:47 -08:00
msg.h ipc/msg: introduce msgctl(MSG_STAT_ANY) 2018-04-11 10:28:37 -07:00
mtio.h
n_r3964.h
nbd-netlink.h
nbd.h nbd: Add the nbd NBD_DISCONNECT_ON_CLOSE config flag. 2018-06-20 19:10:06 -06:00
ncsi.h net/ncsi: Configure multi-package, multi-channel modes with failover 2018-11-17 21:09:49 -08:00
ndctl.h nfit: Add Hyper-V NVDIMM DSM command set to white list 2019-01-29 22:09:31 -08:00
neighbour.h neighbor: Add protocol attribute 2018-12-16 12:15:25 -08:00
net.h
net_dropmon.h
net_namespace.h netns: enable to dump full nsid translation table 2018-11-27 16:20:20 -08:00
net_tstamp.h net: Use __kernel_clockid_t in uapi net_stamp.h 2018-12-18 15:59:29 -08:00
netconf.h route: add support for directed broadcast forwarding 2018-07-29 12:37:06 -07:00
netdevice.h
netfilter.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter_arp.h
netfilter_bridge.h netfilter: bridge: define INT_MIN & INT_MAX in userspace 2018-10-25 10:25:22 +02:00
netfilter_decnet.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter_ipv4.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter_ipv6.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netlink.h net: netlink: rename NETLINK_DUMP_STRICT_CHK -> NETLINK_GET_STRICT_CHK 2018-12-14 11:44:31 -08:00
netlink_diag.h
netrom.h
nfc.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h NFS: Move internal constants out of uapi/linux/nfs_mount.h 2019-04-25 14:18:14 -04:00
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nl80211.h cfg80211: add support to probe unexercised mesh link 2019-04-26 13:02:11 +02:00
nsfs.h
nubus.h
nvme_ioctl.h nvme_ioctl.h: remove duplicate GPL boilerplate 2019-02-20 07:22:05 -07:00
nvram.h
omap3isp.h media: omap3isp: support 64-bit version of omap3isp_stat_data 2018-05-09 16:37:05 -04:00
omapfb.h
oom.h
openvswitch.h openvswitch: Make metadata_dst tunnel work in IP_TUNNEL_INFO_BRIDGE mode 2019-03-29 13:29:15 -07:00
packet_diag.h
param.h
parport.h
patchkey.h
pci.h
pci_regs.h Merge branch 'pci/trivial' 2019-05-13 18:34:48 -05:00
pcitest.h pci_endpoint_test: Add 2 ioctl commands 2018-07-19 11:46:57 +01:00
perf_event.h perf, bpf: Introduce PERF_RECORD_BPF_EVENT 2019-01-21 17:00:57 -03:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h net: Change TCA_ACT_* to TCA_ID_* to match that of TCA_ID_POLICE 2019-02-10 09:28:43 -08:00
pkt_sched.h taprio: Add support for cycle-time-extension 2019-05-01 11:58:51 -04:00
pktcdvd.h
pmu.h m68k/mac: Fix PRAM accessors 2019-01-22 10:21:45 +01:00
poll.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h l2tp: remove pppol2tp_session_ioctl() 2018-08-11 12:13:49 -07:00
ppp_defs.h
pps.h
pr.h
prctl.h x86/speculation: Add PR_SPEC_DISABLE_NOEXEC 2019-01-29 22:11:49 +01:00
psample.h
psci.h firmware/psci: add support for SYSTEM_RESET2 2019-04-16 23:05:21 +02:00
psp-sev.h crypto: ccp - introduce SEV_GET_ID2 command 2019-04-08 14:36:16 +08:00
ptp_clock.h ptp: uapi: change _IOW to IOWR in PTP_SYS_OFFSET_EXTENDED definition 2019-01-08 16:22:56 -05:00
ptrace.h
qemu_fw_cfg.h fw_cfg: write vmcoreinfo details 2018-03-20 03:17:41 +02:00
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h random: add new ioctl RNDRESEEDCRNG 2018-04-14 11:59:31 -04:00
raw.h
rds.h rds: add type of service(tos) infrastructure 2019-02-04 14:59:12 -08:00
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h
rfkill.h
rio_cm_cdev.h
rio_mport_cdev.h
romfs_fs.h
rose.h
route.h
rpmsg.h rpmsg: char: Switch to SPDX license identifier 2018-06-03 17:37:16 -07:00
rseq.h rseq: uapi: Declare rseq_cs field as union, update includes 2018-07-10 22:18:52 +02:00
rtc.h
rtnetlink.h net: sched: introduce chain object to uapi 2018-07-23 20:44:12 -07:00
rxrpc.h
scc.h
sched.h fork: add clone3 2019-06-09 09:29:28 +02:00
scif_ioctl.h
screen_info.h
sctp.h sctp: introduce SCTP_FUTURE/CURRENT/ALL_ASSOC 2019-01-30 00:44:06 -08:00
sdla.h
seccomp.h seccomp: add a return code to trap to userspace 2018-12-11 16:28:41 -08:00
securebits.h
sed-opal.h sed-opal.h: remove redundant licence boilerplate 2019-04-30 16:12:00 -06:00
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h ipv6: sr: Add seg6local action End.BPF 2018-05-24 11:57:36 +02:00
selinux_netlink.h
sem.h ipc/sem: introduce semctl(SEM_STAT_ANY) 2018-04-11 10:28:37 -07:00
serial.h tty/serial_core: add ISO7816 infrastructure 2018-10-02 13:38:55 -07:00
serial_core.h tty: serial: add driver for the SiFive UART 2019-04-29 16:30:59 +02:00
serial_reg.h
serio.h
shm.h mm/hugetlb: add mmap() encodings for 32MB and 512MB page sizes 2018-10-05 16:32:04 -07:00
signal.h
signalfd.h signal/signalfd: Add support for SIGSYS 2018-04-26 19:51:12 -05:00
smc.h
smc_diag.h net/smc: retain old name for diag_mode field 2018-10-07 21:06:28 -07:00
smiapp.h
snmp.h tcp: implement coalescing on backlog queue 2018-11-30 13:26:54 -08:00
sock_diag.h
socket.h
sockios.h net: socket: implement 64-bit timestamps 2019-04-19 14:07:40 -07:00
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
stm.h stm class: Make dummy's master/channel ranges configurable 2018-03-28 18:47:18 +03:00
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h switchtec: Increase PFF limit from 48 to 255 2019-04-17 17:20:01 -05:00
sync_file.h
synclink.h
sysctl.h kernel/sysctl: add panic_print into sysctl 2019-01-04 13:13:47 -08:00
sysinfo.h
target_core_user.h scsi: target: tcmu: add read length support 2018-06-18 21:02:52 -04:00
taskstats.h delayacct: track delays from thrashing cache pages 2018-10-26 16:26:32 -07:00
tcp.h tcp: add documentation for tcp_ca_state 2019-03-23 21:50:05 -04:00
tcp_metrics.h
tee.h
termios.h
thermal.h
time.h time: Add time_types.h 2019-02-14 11:51:51 -05:00
time_types.h Merge branch 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-03-05 14:08:26 -08:00
timerfd.h
times.h
timex.h y2038: remove struct definition redirects 2019-02-07 00:13:28 +01:00
tiocl.h
tipc.h tipc: introduce new socket option TIPC_SOCK_RECVQ_USED 2019-04-19 14:59:05 -07:00
tipc_config.h tipc: set default MTU for UDP media 2018-04-20 11:04:05 -04:00
tipc_netlink.h tipc: support broadcast/replicast configurable for bc-link 2019-03-19 13:56:17 -07:00
tipc_sockets_diag.h tipc: implement socket diagnostics for AF_TIPC 2018-03-22 14:43:35 -04:00
tls.h net/tls: Add support of AES128-CCM based ciphers 2019-03-20 11:02:05 -07:00
toshiba.h
tty.h
tty_flags.h tty: fix typo in ASYNCB_FOURPORT comment 2018-05-24 18:38:51 +02:00
types.h uapi: turn __poll_t sparse checks on by default 2018-05-26 09:16:44 +02:00
udf_fs_i.h
udmabuf.h Add udmabuf misc device 2018-09-03 13:29:38 +02:00
udp.h udp: implement GRO for plain UDP sockets. 2018-11-07 16:23:04 -08:00
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
userfaultfd.h
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h media: uvcvideo: Send a control event when a Control Change interrupt arrives 2018-07-27 06:39:57 -04:00
v4l2-common.h media: v4l2-common.h: put backwards compat defines under #ifndef __KERNEL__ 2018-11-20 13:22:40 -05:00
v4l2-controls.h media: v4l: add I / P frame min max QP definitions 2019-04-22 10:25:36 -04:00
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h media: v4l: Add support for STD ioctls on subdev nodes 2018-07-24 17:39:28 -04:00
vbox_err.h
vbox_vmmdev_types.h virt: vbox: Implement passing requestor info to the host for VirtualBox 6.0.x 2019-03-28 01:55:18 +09:00
vboxguest.h
veth.h
vfio.h vfio-ccw: add handling for async channel instructions 2019-04-24 14:18:51 +02:00
vfio_ccw.h vfio-ccw: add handling for async channel instructions 2019-04-24 14:18:51 +02:00
vhost.h vhost: split structs into a separate header file 2018-12-19 18:23:49 -05:00
vhost_types.h vhost: split structs into a separate header file 2018-12-19 18:23:49 -05:00
videodev2.h media: v4l: Add definitions for missing 16-bit RGB555 formats 2019-04-25 11:05:33 -04:00
virtio_9p.h
virtio_balloon.h virtio-balloon: VIRTIO_BALLOON_F_PAGE_POISON 2018-10-24 20:57:55 -04:00
virtio_blk.h virtio_blk: add discard and write zeroes support 2018-12-19 18:23:49 -05:00
virtio_config.h virtio: support VIRTIO_F_ORDER_PLATFORM 2019-01-24 10:15:42 -05:00
virtio_console.h
virtio_crypto.h
virtio_gpu.h virtio-gpu api: comment feature flags 2019-04-11 17:00:10 +02:00
virtio_ids.h
virtio_input.h
virtio_mmio.h
virtio_net.h virtio_net: Introduce VIRTIO_NET_F_STANDBY feature bit 2018-05-28 22:59:54 -04:00
virtio_pci.h
virtio_ring.h virtio: drop internal struct from UAPI 2019-02-05 15:29:48 -05:00
virtio_rng.h
virtio_scsi.h
virtio_types.h
virtio_vsock.h
vm_sockets.h
vm_sockets_diag.h
vmcore.h vmcore: add API to collect hardware dump in second kernel 2018-05-14 13:46:04 -04:00
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
wanrouter.h
watchdog.h
wimax.h
wireless.h
wmi.h
x25.h
xattr.h
xdp_diag.h xsk: add sock_diag interface for AF_XDP 2019-01-25 01:50:03 +01:00
xfrm.h xfrm: Add a new lookup key to match xfrm interfaces. 2018-06-23 16:07:15 +02:00
xilinx-v4l2-controls.h
zorro.h
zorro_ids.h