diff options
Diffstat (limited to 'include/uapi/linux')
50 files changed, 755 insertions, 139 deletions
| diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index 8bdae34d1f9a..6d4e92ccdc91 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild @@ -245,6 +245,7 @@ endif  header-y += hw_breakpoint.h  header-y += l2tp.h  header-y += libc-compat.h +header-y += lirc.h  header-y += limits.h  header-y += llc.h  header-y += loop.h @@ -454,6 +455,7 @@ header-y += virtio_scsi.h  header-y += virtio_types.h  header-y += vm_sockets.h  header-y += vt.h +header-y += vtpm_proxy.h  header-y += wait.h  header-y += wanrouter.h  header-y += watchdog.h diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h index d820aa979620..82e8aa59446b 100644 --- a/include/uapi/linux/audit.h +++ b/include/uapi/linux/audit.h @@ -130,6 +130,8 @@  #define AUDIT_MAC_IPSEC_EVENT	1415	/* Audit an IPSec event */  #define AUDIT_MAC_UNLBL_STCADD	1416	/* NetLabel: add a static label */  #define AUDIT_MAC_UNLBL_STCDEL	1417	/* NetLabel: del a static label */ +#define AUDIT_MAC_CALIPSO_ADD	1418	/* NetLabel: add CALIPSO DOI entry */ +#define AUDIT_MAC_CALIPSO_DEL	1419	/* NetLabel: del CALIPSO DOI entry */  #define AUDIT_FIRST_KERN_ANOM_MSG   1700  #define AUDIT_LAST_KERN_ANOM_MSG    1799 diff --git a/include/uapi/linux/batman_adv.h b/include/uapi/linux/batman_adv.h new file mode 100644 index 000000000000..0fbf6fd4711b --- /dev/null +++ b/include/uapi/linux/batman_adv.h @@ -0,0 +1,114 @@ +/* Copyright (C) 2016 B.A.T.M.A.N. contributors: + * + * Matthias Schiffer + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef _UAPI_LINUX_BATMAN_ADV_H_ +#define _UAPI_LINUX_BATMAN_ADV_H_ + +#define BATADV_NL_NAME "batadv" + +#define BATADV_NL_MCAST_GROUP_TPMETER	"tpmeter" + +/** + * enum batadv_nl_attrs - batman-adv netlink attributes + * + * @BATADV_ATTR_UNSPEC: unspecified attribute to catch errors + * @BATADV_ATTR_VERSION: batman-adv version string + * @BATADV_ATTR_ALGO_NAME: name of routing algorithm + * @BATADV_ATTR_MESH_IFINDEX: index of the batman-adv interface + * @BATADV_ATTR_MESH_IFNAME: name of the batman-adv interface + * @BATADV_ATTR_MESH_ADDRESS: mac address of the batman-adv interface + * @BATADV_ATTR_HARD_IFINDEX: index of the non-batman-adv interface + * @BATADV_ATTR_HARD_IFNAME: name of the non-batman-adv interface + * @BATADV_ATTR_HARD_ADDRESS: mac address of the non-batman-adv interface + * @BATADV_ATTR_ORIG_ADDRESS: originator mac address + * @BATADV_ATTR_TPMETER_RESULT: result of run (see batadv_tp_meter_status) + * @BATADV_ATTR_TPMETER_TEST_TIME: time (msec) the run took + * @BATADV_ATTR_TPMETER_BYTES: amount of acked bytes during run + * @BATADV_ATTR_TPMETER_COOKIE: session cookie to match tp_meter session + * @BATADV_ATTR_PAD: attribute used for padding for 64-bit alignment + * @__BATADV_ATTR_AFTER_LAST: internal use + * @NUM_BATADV_ATTR: total number of batadv_nl_attrs available + * @BATADV_ATTR_MAX: highest attribute number currently defined + */ +enum batadv_nl_attrs { +	BATADV_ATTR_UNSPEC, +	BATADV_ATTR_VERSION, +	BATADV_ATTR_ALGO_NAME, +	BATADV_ATTR_MESH_IFINDEX, +	BATADV_ATTR_MESH_IFNAME, +	BATADV_ATTR_MESH_ADDRESS, +	BATADV_ATTR_HARD_IFINDEX, +	BATADV_ATTR_HARD_IFNAME, +	BATADV_ATTR_HARD_ADDRESS, +	BATADV_ATTR_ORIG_ADDRESS, +	BATADV_ATTR_TPMETER_RESULT, +	BATADV_ATTR_TPMETER_TEST_TIME, +	BATADV_ATTR_TPMETER_BYTES, +	BATADV_ATTR_TPMETER_COOKIE, +	BATADV_ATTR_PAD, +	/* add attributes above here, update the policy in netlink.c */ +	__BATADV_ATTR_AFTER_LAST, +	NUM_BATADV_ATTR = __BATADV_ATTR_AFTER_LAST, +	BATADV_ATTR_MAX = __BATADV_ATTR_AFTER_LAST - 1 +}; + +/** + * enum batadv_nl_commands - supported batman-adv netlink commands + * + * @BATADV_CMD_UNSPEC: unspecified command to catch errors + * @BATADV_CMD_GET_MESH_INFO: Query basic information about batman-adv device + * @BATADV_CMD_TP_METER: Start a tp meter session + * @BATADV_CMD_TP_METER_CANCEL: Cancel a tp meter session + * @__BATADV_CMD_AFTER_LAST: internal use + * @BATADV_CMD_MAX: highest used command number + */ +enum batadv_nl_commands { +	BATADV_CMD_UNSPEC, +	BATADV_CMD_GET_MESH_INFO, +	BATADV_CMD_TP_METER, +	BATADV_CMD_TP_METER_CANCEL, +	/* add new commands above here */ +	__BATADV_CMD_AFTER_LAST, +	BATADV_CMD_MAX = __BATADV_CMD_AFTER_LAST - 1 +}; + +/** + * enum batadv_tp_meter_reason - reason of a tp meter test run stop + * @BATADV_TP_REASON_COMPLETE: sender finished tp run + * @BATADV_TP_REASON_CANCEL: sender was stopped during run + * @BATADV_TP_REASON_DST_UNREACHABLE: receiver could not be reached or didn't + *  answer + * @BATADV_TP_REASON_RESEND_LIMIT: (unused) sender retry reached limit + * @BATADV_TP_REASON_ALREADY_ONGOING: test to or from the same node already + *  ongoing + * @BATADV_TP_REASON_MEMORY_ERROR: test was stopped due to low memory + * @BATADV_TP_REASON_CANT_SEND: failed to send via outgoing interface + * @BATADV_TP_REASON_TOO_MANY: too many ongoing sessions + */ +enum batadv_tp_meter_reason { +	BATADV_TP_REASON_COMPLETE		= 3, +	BATADV_TP_REASON_CANCEL			= 4, +	/* error status >= 128 */ +	BATADV_TP_REASON_DST_UNREACHABLE	= 128, +	BATADV_TP_REASON_RESEND_LIMIT		= 129, +	BATADV_TP_REASON_ALREADY_ONGOING	= 130, +	BATADV_TP_REASON_MEMORY_ERROR		= 131, +	BATADV_TP_REASON_CANT_SEND		= 132, +	BATADV_TP_REASON_TOO_MANY		= 133, +}; + +#endif /* _UAPI_LINUX_BATMAN_ADV_H_ */ diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 406459b935a2..da218fec6056 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -84,6 +84,7 @@ enum bpf_map_type {  	BPF_MAP_TYPE_PERCPU_HASH,  	BPF_MAP_TYPE_PERCPU_ARRAY,  	BPF_MAP_TYPE_STACK_TRACE, +	BPF_MAP_TYPE_CGROUP_ARRAY,  };  enum bpf_prog_type { @@ -93,6 +94,7 @@ enum bpf_prog_type {  	BPF_PROG_TYPE_SCHED_CLS,  	BPF_PROG_TYPE_SCHED_ACT,  	BPF_PROG_TYPE_TRACEPOINT, +	BPF_PROG_TYPE_XDP,  };  #define BPF_PSEUDO_MAP_FD	1 @@ -313,6 +315,66 @@ enum bpf_func_id {  	 */  	BPF_FUNC_skb_get_tunnel_opt,  	BPF_FUNC_skb_set_tunnel_opt, + +	/** +	 * bpf_skb_change_proto(skb, proto, flags) +	 * Change protocol of the skb. Currently supported is +	 * v4 -> v6, v6 -> v4 transitions. The helper will also +	 * resize the skb. eBPF program is expected to fill the +	 * new headers via skb_store_bytes and lX_csum_replace. +	 * @skb: pointer to skb +	 * @proto: new skb->protocol type +	 * @flags: reserved +	 * Return: 0 on success or negative error +	 */ +	BPF_FUNC_skb_change_proto, + +	/** +	 * bpf_skb_change_type(skb, type) +	 * Change packet type of skb. +	 * @skb: pointer to skb +	 * @type: new skb->pkt_type type +	 * Return: 0 on success or negative error +	 */ +	BPF_FUNC_skb_change_type, + +	/** +	 * bpf_skb_in_cgroup(skb, map, index) - Check cgroup2 membership of skb +	 * @skb: pointer to skb +	 * @map: pointer to bpf_map in BPF_MAP_TYPE_CGROUP_ARRAY type +	 * @index: index of the cgroup in the bpf_map +	 * Return: +	 *   == 0 skb failed the cgroup2 descendant test +	 *   == 1 skb succeeded the cgroup2 descendant test +	 *    < 0 error +	 */ +	BPF_FUNC_skb_in_cgroup, + +	/** +	 * bpf_get_hash_recalc(skb) +	 * Retrieve and possibly recalculate skb->hash. +	 * @skb: pointer to skb +	 * Return: hash +	 */ +	BPF_FUNC_get_hash_recalc, + +	/** +	 * u64 bpf_get_current_task(void) +	 * Returns current task_struct +	 * Return: current +	 */ +	BPF_FUNC_get_current_task, + +	/** +	 * bpf_probe_write_user(void *dst, void *src, int len) +	 * safely attempt to write to a location +	 * @dst: destination address in userspace +	 * @src: source address on stack +	 * @len: number of bytes to copy +	 * Return: 0 on success or negative error +	 */ +	BPF_FUNC_probe_write_user, +  	__BPF_FUNC_MAX_ID,  }; @@ -347,9 +409,11 @@ enum bpf_func_id {  #define BPF_F_ZERO_CSUM_TX		(1ULL << 1)  #define BPF_F_DONT_FRAGMENT		(1ULL << 2) -/* BPF_FUNC_perf_event_output flags. */ +/* BPF_FUNC_perf_event_output and BPF_FUNC_perf_event_read flags. */  #define BPF_F_INDEX_MASK		0xffffffffULL  #define BPF_F_CURRENT_CPU		BPF_F_INDEX_MASK +/* BPF_FUNC_perf_event_output for sk_buff input context. */ +#define BPF_F_CTXLEN_MASK		(0xfffffULL << 32)  /* user accessible mirror of in-kernel sk_buff.   * new fields can only be added to the end of this structure @@ -386,4 +450,24 @@ struct bpf_tunnel_key {  	__u32 tunnel_label;  }; +/* User return codes for XDP prog type. + * A valid XDP program must return one of these defined values. All other + * return codes are reserved for future use. Unknown return codes will result + * in packet drop. + */ +enum xdp_action { +	XDP_ABORTED = 0, +	XDP_DROP, +	XDP_PASS, +	XDP_TX, +}; + +/* user accessible metadata for XDP packet hook + * new fields must be added to the end of this structure + */ +struct xdp_md { +	__u32 data; +	__u32 data_end; +}; +  #endif /* _UAPI__LINUX_BPF_H__ */ diff --git a/include/uapi/linux/can/bcm.h b/include/uapi/linux/can/bcm.h index 7a291dc1ff15..cefb304414ba 100644 --- a/include/uapi/linux/can/bcm.h +++ b/include/uapi/linux/can/bcm.h @@ -99,5 +99,6 @@ enum {  #define RX_ANNOUNCE_RESUME  0x0100  #define TX_RESET_MULTI_IDX  0x0200  #define RX_RTR_FRAME        0x0400 +#define CAN_FD_FRAME        0x0800  #endif /* !_UAPI_CAN_BCM_H */ diff --git a/include/uapi/linux/cryptouser.h b/include/uapi/linux/cryptouser.h index 2e67bb64c1da..79b5ded2001a 100644 --- a/include/uapi/linux/cryptouser.h +++ b/include/uapi/linux/cryptouser.h @@ -45,6 +45,7 @@ enum crypto_attr_type_t {  	CRYPTOCFGA_REPORT_RNG,		/* struct crypto_report_rng */  	CRYPTOCFGA_REPORT_CIPHER,	/* struct crypto_report_cipher */  	CRYPTOCFGA_REPORT_AKCIPHER,	/* struct crypto_report_akcipher */ +	CRYPTOCFGA_REPORT_KPP,		/* struct crypto_report_kpp */  	__CRYPTOCFGA_MAX  #define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1) @@ -107,5 +108,9 @@ struct crypto_report_akcipher {  	char type[CRYPTO_MAX_NAME];  }; +struct crypto_report_kpp { +	char type[CRYPTO_MAX_NAME]; +}; +  #define CRYPTO_REPORT_MAXSIZE (sizeof(struct crypto_user_alg) + \  			       sizeof(struct crypto_report_blkcipher)) diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h index ba0073b26fa6..915bfa74458c 100644 --- a/include/uapi/linux/devlink.h +++ b/include/uapi/linux/devlink.h @@ -57,6 +57,8 @@ enum devlink_command {  	DEVLINK_CMD_SB_OCC_SNAPSHOT,  	DEVLINK_CMD_SB_OCC_MAX_CLEAR, +	DEVLINK_CMD_ESWITCH_MODE_GET, +	DEVLINK_CMD_ESWITCH_MODE_SET,  	/* add new commands above here */  	__DEVLINK_CMD_MAX, @@ -95,6 +97,11 @@ enum devlink_sb_threshold_type {  #define DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX 20 +enum devlink_eswitch_mode { +	DEVLINK_ESWITCH_MODE_LEGACY, +	DEVLINK_ESWITCH_MODE_SWITCHDEV, +}; +  enum devlink_attr {  	/* don't change the order or add anything between, this is ABI! */  	DEVLINK_ATTR_UNSPEC, @@ -125,6 +132,7 @@ enum devlink_attr {  	DEVLINK_ATTR_SB_TC_INDEX,		/* u16 */  	DEVLINK_ATTR_SB_OCC_CUR,		/* u32 */  	DEVLINK_ATTR_SB_OCC_MAX,		/* u32 */ +	DEVLINK_ATTR_ESWITCH_MODE,		/* u16 */  	/* add new attributes above here, update the policy in devlink.c */ diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h index 30afd0a23c4b..4bf9f1eabffc 100644 --- a/include/uapi/linux/dm-ioctl.h +++ b/include/uapi/linux/dm-ioctl.h @@ -267,9 +267,9 @@ enum {  #define DM_DEV_SET_GEOMETRY	_IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)  #define DM_VERSION_MAJOR	4 -#define DM_VERSION_MINOR	34 +#define DM_VERSION_MINOR	35  #define DM_VERSION_PATCHLEVEL	0 -#define DM_VERSION_EXTRA	"-ioctl (2015-10-28)" +#define DM_VERSION_EXTRA	"-ioctl (2016-06-23)"  /* Status bits */  #define DM_READONLY_FLAG	(1 << 0) /* In/Out */ diff --git a/include/uapi/linux/elf-em.h b/include/uapi/linux/elf-em.h index c3fdfe79e5cc..cb5d1a519202 100644 --- a/include/uapi/linux/elf-em.h +++ b/include/uapi/linux/elf-em.h @@ -40,6 +40,7 @@  #define EM_TILEPRO	188	/* Tilera TILEPro */  #define EM_MICROBLAZE	189	/* Xilinx MicroBlaze */  #define EM_TILEGX	191	/* Tilera TILE-Gx */ +#define EM_BPF		247	/* Linux BPF - in-kernel virtual machine */  #define EM_FRV		0x5441	/* Fujitsu FR-V */  #define EM_AVR32	0x18ad	/* Atmel AVR32 */ diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index 5f030b46cff4..b8f38e84d93a 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h @@ -1362,6 +1362,7 @@ enum ethtool_link_mode_bit_indices {  	ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT	= 37,  	ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT	= 38,  	ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT	= 39, +	ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT         = 40,  	/* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit  	 * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_* @@ -1370,7 +1371,7 @@ enum ethtool_link_mode_bit_indices {  	 */  	__ETHTOOL_LINK_MODE_LAST -	  = ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT, +	  = ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT,  };  #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name)	\ diff --git a/include/uapi/linux/fib_rules.h b/include/uapi/linux/fib_rules.h index 620c8a5ddc00..14404b3ebb89 100644 --- a/include/uapi/linux/fib_rules.h +++ b/include/uapi/linux/fib_rules.h @@ -50,6 +50,7 @@ enum {  	FRA_FWMASK,	/* mask for netfilter mark */  	FRA_OIFNAME,  	FRA_PAD, +	FRA_L3MDEV,	/* iif or oif is l3mdev goto its table */  	__FRA_MAX  }; diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h index 5974fae54e12..27e17363263a 100644 --- a/include/uapi/linux/fuse.h +++ b/include/uapi/linux/fuse.h @@ -105,6 +105,9 @@   *   *  7.24   *  - add FUSE_LSEEK for SEEK_HOLE and SEEK_DATA support + * + *  7.25 + *  - add FUSE_PARALLEL_DIROPS   */  #ifndef _LINUX_FUSE_H @@ -140,7 +143,7 @@  #define FUSE_KERNEL_VERSION 7  /** Minor version number of this interface */ -#define FUSE_KERNEL_MINOR_VERSION 24 +#define FUSE_KERNEL_MINOR_VERSION 25  /** The node ID of the root inode */  #define FUSE_ROOT_ID 1 @@ -234,6 +237,7 @@ struct fuse_file_lock {   * FUSE_ASYNC_DIO: asynchronous direct I/O submission   * FUSE_WRITEBACK_CACHE: use writeback cache for buffered writes   * FUSE_NO_OPEN_SUPPORT: kernel supports zero-message opens + * FUSE_PARALLEL_DIROPS: allow parallel lookups and readdir   */  #define FUSE_ASYNC_READ		(1 << 0)  #define FUSE_POSIX_LOCKS	(1 << 1) @@ -253,6 +257,7 @@ struct fuse_file_lock {  #define FUSE_ASYNC_DIO		(1 << 15)  #define FUSE_WRITEBACK_CACHE	(1 << 16)  #define FUSE_NO_OPEN_SUPPORT	(1 << 17) +#define FUSE_PARALLEL_DIROPS    (1 << 18)  /**   * CUSE INIT request/reply flags diff --git a/include/uapi/linux/gpio.h b/include/uapi/linux/gpio.h index d0a3cac72250..333d3544c964 100644 --- a/include/uapi/linux/gpio.h +++ b/include/uapi/linux/gpio.h @@ -1,7 +1,7 @@  /*   * <linux/gpio.h> - userspace ABI for the GPIO character devices   * - * Copyright (C) 2015 Linus Walleij + * Copyright (C) 2016 Linus Walleij   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License version 2 as published by @@ -26,8 +26,8 @@ struct gpiochip_info {  	__u32 lines;  }; -/* Line is in use by the kernel */ -#define GPIOLINE_FLAG_KERNEL		(1UL << 0) +/* Informational flags */ +#define GPIOLINE_FLAG_KERNEL		(1UL << 0) /* Line used by the kernel */  #define GPIOLINE_FLAG_IS_OUT		(1UL << 1)  #define GPIOLINE_FLAG_ACTIVE_LOW	(1UL << 2)  #define GPIOLINE_FLAG_OPEN_DRAIN	(1UL << 3) @@ -52,7 +52,106 @@ struct gpioline_info {  	char consumer[32];  }; +/* Maximum number of requested handles */ +#define GPIOHANDLES_MAX 64 + +/* Linerequest flags */ +#define GPIOHANDLE_REQUEST_INPUT	(1UL << 0) +#define GPIOHANDLE_REQUEST_OUTPUT	(1UL << 1) +#define GPIOHANDLE_REQUEST_ACTIVE_LOW	(1UL << 2) +#define GPIOHANDLE_REQUEST_OPEN_DRAIN	(1UL << 3) +#define GPIOHANDLE_REQUEST_OPEN_SOURCE	(1UL << 4) + +/** + * struct gpiohandle_request - Information about a GPIO handle request + * @lineoffsets: an array desired lines, specified by offset index for the + * associated GPIO device + * @flags: desired flags for the desired GPIO lines, such as + * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed + * together. Note that even if multiple lines are requested, the same flags + * must be applicable to all of them, if you want lines with individual + * flags set, request them one by one. It is possible to select + * a batch of input or output lines, but they must all have the same + * characteristics, i.e. all inputs or all outputs, all active low etc + * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set for a requested + * line, this specifies the default output value, should be 0 (low) or + * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high) + * @consumer_label: a desired consumer label for the selected GPIO line(s) + * such as "my-bitbanged-relay" + * @lines: number of lines requested in this request, i.e. the number of + * valid fields in the above arrays, set to 1 to request a single line + * @fd: if successful this field will contain a valid anonymous file handle + * after a GPIO_GET_LINEHANDLE_IOCTL operation, zero or negative value + * means error + */ +struct gpiohandle_request { +	__u32 lineoffsets[GPIOHANDLES_MAX]; +	__u32 flags; +	__u8 default_values[GPIOHANDLES_MAX]; +	char consumer_label[32]; +	__u32 lines; +	int fd; +}; + +/** + * struct gpiohandle_data - Information of values on a GPIO handle + * @values: when getting the state of lines this contains the current + * state of a line, when setting the state of lines these should contain + * the desired target state + */ +struct gpiohandle_data { +	__u8 values[GPIOHANDLES_MAX]; +}; + +#define GPIOHANDLE_GET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x08, struct gpiohandle_data) +#define GPIOHANDLE_SET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x09, struct gpiohandle_data) + +/* Eventrequest flags */ +#define GPIOEVENT_REQUEST_RISING_EDGE	(1UL << 0) +#define GPIOEVENT_REQUEST_FALLING_EDGE	(1UL << 1) +#define GPIOEVENT_REQUEST_BOTH_EDGES	((1UL << 0) | (1UL << 1)) + +/** + * struct gpioevent_request - Information about a GPIO event request + * @lineoffset: the desired line to subscribe to events from, specified by + * offset index for the associated GPIO device + * @handleflags: desired handle flags for the desired GPIO line, such as + * GPIOHANDLE_REQUEST_ACTIVE_LOW or GPIOHANDLE_REQUEST_OPEN_DRAIN + * @eventflags: desired flags for the desired GPIO event line, such as + * GPIOEVENT_REQUEST_RISING_EDGE or GPIOEVENT_REQUEST_FALLING_EDGE + * @consumer_label: a desired consumer label for the selected GPIO line(s) + * such as "my-listener" + * @fd: if successful this field will contain a valid anonymous file handle + * after a GPIO_GET_LINEEVENT_IOCTL operation, zero or negative value + * means error + */ +struct gpioevent_request { +	__u32 lineoffset; +	__u32 handleflags; +	__u32 eventflags; +	char consumer_label[32]; +	int fd; +}; + +/** + * GPIO event types + */ +#define GPIOEVENT_EVENT_RISING_EDGE 0x01 +#define GPIOEVENT_EVENT_FALLING_EDGE 0x02 + +/** + * struct gpioevent_data - The actual event being pushed to userspace + * @timestamp: best estimate of time of event occurrence, in nanoseconds + * @id: event identifier + */ +struct gpioevent_data { +	__u64 timestamp; +	__u32 id; +}; +  #define GPIO_GET_CHIPINFO_IOCTL _IOR(0xB4, 0x01, struct gpiochip_info)  #define GPIO_GET_LINEINFO_IOCTL _IOWR(0xB4, 0x02, struct gpioline_info) +#define GPIO_GET_LINEHANDLE_IOCTL _IOWR(0xB4, 0x03, struct gpiohandle_request) +#define GPIO_GET_LINEEVENT_IOCTL _IOWR(0xB4, 0x04, struct gpioevent_request)  #endif /* _UAPI_GPIO_H_ */ diff --git a/include/uapi/linux/i2c.h b/include/uapi/linux/i2c.h index adcbef4bff61..009e27bb9abe 100644 --- a/include/uapi/linux/i2c.h +++ b/include/uapi/linux/i2c.h @@ -102,6 +102,7 @@ struct i2c_msg {  #define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000  #define I2C_FUNC_SMBUS_READ_I2C_BLOCK	0x04000000 /* I2C-like block xfer  */  #define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK	0x08000000 /* w/ 1-byte reg. addr. */ +#define I2C_FUNC_SMBUS_HOST_NOTIFY	0x10000000  #define I2C_FUNC_SMBUS_BYTE		(I2C_FUNC_SMBUS_READ_BYTE | \  					 I2C_FUNC_SMBUS_WRITE_BYTE) diff --git a/include/uapi/linux/icmp.h b/include/uapi/linux/icmp.h index 16fff055f734..fddd9d736284 100644 --- a/include/uapi/linux/icmp.h +++ b/include/uapi/linux/icmp.h @@ -79,6 +79,7 @@ struct icmphdr {  		__be16	__unused;  		__be16	mtu;  	} frag; +	__u8	reserved[4];    } un;  }; diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index 397d503fdedb..c186f64fffca 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h @@ -247,8 +247,37 @@ enum {  enum {  	BRIDGE_XSTATS_UNSPEC,  	BRIDGE_XSTATS_VLAN, +	BRIDGE_XSTATS_MCAST, +	BRIDGE_XSTATS_PAD,  	__BRIDGE_XSTATS_MAX  };  #define BRIDGE_XSTATS_MAX (__BRIDGE_XSTATS_MAX - 1) +enum { +	BR_MCAST_DIR_RX, +	BR_MCAST_DIR_TX, +	BR_MCAST_DIR_SIZE +}; + +/* IGMP/MLD statistics */ +struct br_mcast_stats { +	__u64 igmp_v1queries[BR_MCAST_DIR_SIZE]; +	__u64 igmp_v2queries[BR_MCAST_DIR_SIZE]; +	__u64 igmp_v3queries[BR_MCAST_DIR_SIZE]; +	__u64 igmp_leaves[BR_MCAST_DIR_SIZE]; +	__u64 igmp_v1reports[BR_MCAST_DIR_SIZE]; +	__u64 igmp_v2reports[BR_MCAST_DIR_SIZE]; +	__u64 igmp_v3reports[BR_MCAST_DIR_SIZE]; +	__u64 igmp_parse_errors; + +	__u64 mld_v1queries[BR_MCAST_DIR_SIZE]; +	__u64 mld_v2queries[BR_MCAST_DIR_SIZE]; +	__u64 mld_leaves[BR_MCAST_DIR_SIZE]; +	__u64 mld_v1reports[BR_MCAST_DIR_SIZE]; +	__u64 mld_v2reports[BR_MCAST_DIR_SIZE]; +	__u64 mld_parse_errors; + +	__u64 mcast_bytes[BR_MCAST_DIR_SIZE]; +	__u64 mcast_packets[BR_MCAST_DIR_SIZE]; +};  #endif /* _UAPI_LINUX_IF_BRIDGE_H */ diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h index cec849a239f6..117d02e0fc31 100644 --- a/include/uapi/linux/if_ether.h +++ b/include/uapi/linux/if_ether.h @@ -87,6 +87,7 @@  #define ETH_P_8021AH	0x88E7          /* 802.1ah Backbone Service Tag */  #define ETH_P_MVRP	0x88F5          /* 802.1Q MVRP                  */  #define ETH_P_1588	0x88F7		/* IEEE 1588 Timesync */ +#define ETH_P_NCSI	0x88F8		/* NCSI protocol		*/  #define ETH_P_PRP	0x88FB		/* IEC 62439-3 PRP/HSRv0	*/  #define ETH_P_FCOE	0x8906		/* Fibre Channel over Ethernet  */  #define ETH_P_TDLS	0x890D          /* TDLS */ diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index bb36bd5675a7..a1b5202c5f6b 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h @@ -156,6 +156,7 @@ enum {  	IFLA_GSO_MAX_SEGS,  	IFLA_GSO_MAX_SIZE,  	IFLA_PAD, +	IFLA_XDP,  	__IFLA_MAX  }; @@ -273,6 +274,7 @@ enum {  	IFLA_BR_VLAN_DEFAULT_PVID,  	IFLA_BR_PAD,  	IFLA_BR_VLAN_STATS_ENABLED, +	IFLA_BR_MCAST_STATS_ENABLED,  	__IFLA_BR_MAX,  }; @@ -822,6 +824,7 @@ enum {  	IFLA_STATS_UNSPEC, /* also used as 64bit pad attribute */  	IFLA_STATS_LINK_64,  	IFLA_STATS_LINK_XSTATS, +	IFLA_STATS_LINK_XSTATS_SLAVE,  	__IFLA_STATS_MAX,  }; @@ -841,4 +844,15 @@ enum {  };  #define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1) +/* XDP section */ + +enum { +	IFLA_XDP_UNSPEC, +	IFLA_XDP_FD, +	IFLA_XDP_ATTACHED, +	__IFLA_XDP_MAX, +}; + +#define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1) +  #endif /* _UAPI_LINUX_IF_LINK_H */ diff --git a/include/uapi/linux/if_macsec.h b/include/uapi/linux/if_macsec.h index f7d4831a2cc7..02fc49cb72d8 100644 --- a/include/uapi/linux/if_macsec.h +++ b/include/uapi/linux/if_macsec.h @@ -26,6 +26,8 @@  #define MACSEC_MIN_ICV_LEN 8  #define MACSEC_MAX_ICV_LEN 32 +/* upper limit for ICV length as recommended by IEEE802.1AE-2006 */ +#define MACSEC_STD_ICV_LEN 16  enum macsec_attrs {  	MACSEC_ATTR_UNSPEC, diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h index af4de90ba27d..1046f5515174 100644 --- a/include/uapi/linux/if_tunnel.h +++ b/include/uapi/linux/if_tunnel.h @@ -113,6 +113,7 @@ enum {  	IFLA_GRE_ENCAP_SPORT,  	IFLA_GRE_ENCAP_DPORT,  	IFLA_GRE_COLLECT_METADATA, +	IFLA_GRE_IGNORE_DF,  	__IFLA_GRE_MAX,  }; diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h index b0916fc72cce..22e5e589a274 100644 --- a/include/uapi/linux/iio/types.h +++ b/include/uapi/linux/iio/types.h @@ -39,6 +39,7 @@ enum iio_chan_type {  	IIO_RESISTANCE,  	IIO_PH,  	IIO_UVINDEX, +	IIO_ELECTRICALCONDUCTIVITY,  };  enum iio_modifier { diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h index 318a4828bf98..b39ea4f2e701 100644 --- a/include/uapi/linux/in6.h +++ b/include/uapi/linux/in6.h @@ -143,6 +143,7 @@ struct in6_flowlabel_req {  #define IPV6_TLV_PAD1		0  #define IPV6_TLV_PADN		1  #define IPV6_TLV_ROUTERALERT	5 +#define IPV6_TLV_CALIPSO	7	/* RFC 5570 */  #define IPV6_TLV_JUMBO		194  #define IPV6_TLV_HAO		201	/* home address option */ diff --git a/include/uapi/linux/inet_diag.h b/include/uapi/linux/inet_diag.h index a16643705669..abbd1dc5d683 100644 --- a/include/uapi/linux/inet_diag.h +++ b/include/uapi/linux/inet_diag.h @@ -72,6 +72,7 @@ enum {  	INET_DIAG_BC_AUTO,  	INET_DIAG_BC_S_COND,  	INET_DIAG_BC_D_COND, +	INET_DIAG_BC_DEV_COND,   /* u32 ifindex */  };  struct inet_diag_hostcond { diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h index 87cf351bab03..d6d071fc3c56 100644 --- a/include/uapi/linux/input-event-codes.h +++ b/include/uapi/linux/input-event-codes.h @@ -611,6 +611,37 @@  #define KEY_KBDINPUTASSIST_ACCEPT		0x264  #define KEY_KBDINPUTASSIST_CANCEL		0x265 +/* Diagonal movement keys */ +#define KEY_RIGHT_UP			0x266 +#define KEY_RIGHT_DOWN			0x267 +#define KEY_LEFT_UP			0x268 +#define KEY_LEFT_DOWN			0x269 + +#define KEY_ROOT_MENU			0x26a /* Show Device's Root Menu */ +/* Show Top Menu of the Media (e.g. DVD) */ +#define KEY_MEDIA_TOP_MENU		0x26b +#define KEY_NUMERIC_11			0x26c +#define KEY_NUMERIC_12			0x26d +/* + * Toggle Audio Description: refers to an audio service that helps blind and + * visually impaired consumers understand the action in a program. Note: in + * some countries this is referred to as "Video Description". + */ +#define KEY_AUDIO_DESC			0x26e +#define KEY_3D_MODE			0x26f +#define KEY_NEXT_FAVORITE		0x270 +#define KEY_STOP_RECORD			0x271 +#define KEY_PAUSE_RECORD		0x272 +#define KEY_VOD				0x273 /* Video on Demand */ +#define KEY_UNMUTE			0x274 +#define KEY_FASTREVERSE			0x275 +#define KEY_SLOWREVERSE			0x276 +/* + * Control a data application associated with the currently viewed channel, + * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.) + */ +#define KEY_DATA			0x275 +  #define BTN_TRIGGER_HAPPY		0x2c0  #define BTN_TRIGGER_HAPPY1		0x2c0  #define BTN_TRIGGER_HAPPY2		0x2c1 @@ -749,6 +780,7 @@  #define SW_ROTATE_LOCK		0x0c  /* set = rotate locked/disabled */  #define SW_LINEIN_INSERT	0x0d  /* set = inserted */  #define SW_MUTE_DEVICE		0x0e  /* set = device disabled */ +#define SW_PEN_INSERTED		0x0f  /* set = pen inserted */  #define SW_MAX			0x0f  #define SW_CNT			(SW_MAX+1) diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h index 01113841190d..c51494119817 100644 --- a/include/uapi/linux/input.h +++ b/include/uapi/linux/input.h @@ -247,6 +247,7 @@ struct input_mask {  #define BUS_ATARI		0x1B  #define BUS_SPI			0x1C  #define BUS_RMI			0x1D +#define BUS_CEC			0x1E  /*   * MT_TOOL types diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h index 99048e501b88..aae5ebf2022b 100644 --- a/include/uapi/linux/kexec.h +++ b/include/uapi/linux/kexec.h @@ -39,6 +39,7 @@  #define KEXEC_ARCH_SH      (42 << 16)  #define KEXEC_ARCH_MIPS_LE (10 << 16)  #define KEXEC_ARCH_MIPS    ( 8 << 16) +#define KEXEC_ARCH_AARCH64 (183 << 16)  /* The artificial cap on the number of segments passed to kexec_load. */  #define KEXEC_SEGMENT_MAX 16 diff --git a/include/uapi/linux/lirc.h b/include/uapi/linux/lirc.h index 4b3ab2966b5a..991ab4570b8e 100644 --- a/include/uapi/linux/lirc.h +++ b/include/uapi/linux/lirc.h @@ -90,20 +90,11 @@  #define LIRC_GET_SEND_MODE             _IOR('i', 0x00000001, __u32)  #define LIRC_GET_REC_MODE              _IOR('i', 0x00000002, __u32) -#define LIRC_GET_SEND_CARRIER          _IOR('i', 0x00000003, __u32) -#define LIRC_GET_REC_CARRIER           _IOR('i', 0x00000004, __u32) -#define LIRC_GET_SEND_DUTY_CYCLE       _IOR('i', 0x00000005, __u32) -#define LIRC_GET_REC_DUTY_CYCLE        _IOR('i', 0x00000006, __u32)  #define LIRC_GET_REC_RESOLUTION        _IOR('i', 0x00000007, __u32)  #define LIRC_GET_MIN_TIMEOUT           _IOR('i', 0x00000008, __u32)  #define LIRC_GET_MAX_TIMEOUT           _IOR('i', 0x00000009, __u32) -#define LIRC_GET_MIN_FILTER_PULSE      _IOR('i', 0x0000000a, __u32) -#define LIRC_GET_MAX_FILTER_PULSE      _IOR('i', 0x0000000b, __u32) -#define LIRC_GET_MIN_FILTER_SPACE      _IOR('i', 0x0000000c, __u32) -#define LIRC_GET_MAX_FILTER_SPACE      _IOR('i', 0x0000000d, __u32) -  /* code length in bits, currently only for LIRC_MODE_LIRCCODE */  #define LIRC_GET_LENGTH                _IOR('i', 0x0000000f, __u32) @@ -113,7 +104,6 @@  #define LIRC_SET_SEND_CARRIER          _IOW('i', 0x00000013, __u32)  #define LIRC_SET_REC_CARRIER           _IOW('i', 0x00000014, __u32)  #define LIRC_SET_SEND_DUTY_CYCLE       _IOW('i', 0x00000015, __u32) -#define LIRC_SET_REC_DUTY_CYCLE        _IOW('i', 0x00000016, __u32)  #define LIRC_SET_TRANSMITTER_MASK      _IOW('i', 0x00000017, __u32)  /* @@ -127,42 +117,17 @@  #define LIRC_SET_REC_TIMEOUT_REPORTS   _IOW('i', 0x00000019, __u32)  /* - * pulses shorter than this are filtered out by hardware (software - * emulation in lirc_dev?) - */ -#define LIRC_SET_REC_FILTER_PULSE      _IOW('i', 0x0000001a, __u32) -/* - * spaces shorter than this are filtered out by hardware (software - * emulation in lirc_dev?) - */ -#define LIRC_SET_REC_FILTER_SPACE      _IOW('i', 0x0000001b, __u32) -/* - * if filter cannot be set independently for pulse/space, this should - * be used - */ -#define LIRC_SET_REC_FILTER            _IOW('i', 0x0000001c, __u32) - -/*   * if enabled from the next key press on the driver will send   * LIRC_MODE2_FREQUENCY packets   */  #define LIRC_SET_MEASURE_CARRIER_MODE	_IOW('i', 0x0000001d, __u32)  /* - * to set a range use - * LIRC_SET_REC_DUTY_CYCLE_RANGE/LIRC_SET_REC_CARRIER_RANGE with the - * lower bound first and later - * LIRC_SET_REC_DUTY_CYCLE/LIRC_SET_REC_CARRIER with the upper bound + * to set a range use LIRC_SET_REC_CARRIER_RANGE with the + * lower bound first and later LIRC_SET_REC_CARRIER with the upper bound   */ - -#define LIRC_SET_REC_DUTY_CYCLE_RANGE  _IOW('i', 0x0000001e, __u32)  #define LIRC_SET_REC_CARRIER_RANGE     _IOW('i', 0x0000001f, __u32) -#define LIRC_NOTIFY_DECODE             _IO('i', 0x00000020) - -#define LIRC_SETUP_START               _IO('i', 0x00000021) -#define LIRC_SETUP_END                 _IO('i', 0x00000022) -  #define LIRC_SET_WIDEBAND_RECEIVER     _IOW('i', 0x00000023, __u32)  #endif diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h index 546b38886e11..e398beac67b8 100644 --- a/include/uapi/linux/magic.h +++ b/include/uapi/linux/magic.h @@ -80,5 +80,7 @@  #define BPF_FS_MAGIC		0xcafe4a11  /* Since UDF 2.01 is ISO 13346 based... */  #define UDF_SUPER_MAGIC		0x15013346 +#define BALLOON_KVM_MAGIC	0x13661366 +#define ZSMALLOC_MAGIC		0x58295829  #endif /* __LINUX_MAGIC_H__ */ diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h index df59edee25d1..7acf0f634f70 100644 --- a/include/uapi/linux/media.h +++ b/include/uapi/linux/media.h @@ -95,6 +95,16 @@ struct media_device_info {  #define MEDIA_ENT_F_AUDIO_MIXER		(MEDIA_ENT_F_BASE + 0x03003)  /* + * Processing entities + */ +#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER		(MEDIA_ENT_F_BASE + 0x4001) +#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER	(MEDIA_ENT_F_BASE + 0x4002) +#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV	(MEDIA_ENT_F_BASE + 0x4003) +#define MEDIA_ENT_F_PROC_VIDEO_LUT		(MEDIA_ENT_F_BASE + 0x4004) +#define MEDIA_ENT_F_PROC_VIDEO_SCALER		(MEDIA_ENT_F_BASE + 0x4005) +#define MEDIA_ENT_F_PROC_VIDEO_STATISTICS	(MEDIA_ENT_F_BASE + 0x4006) + +/*   * Connectors   */  /* It is a responsibility of the entity drivers to add connectors and links */ diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h index 309915f74492..ba5a8c79652a 100644 --- a/include/uapi/linux/ndctl.h +++ b/include/uapi/linux/ndctl.h @@ -298,6 +298,7 @@ struct nd_cmd_pkg {  #define NVDIMM_FAMILY_INTEL 0  #define NVDIMM_FAMILY_HPE1 1  #define NVDIMM_FAMILY_HPE2 2 +#define NVDIMM_FAMILY_MSFT 3  #define ND_IOCTL_CALL			_IOWR(ND_IOCTL, ND_CMD_CALL,\  					struct nd_cmd_pkg) diff --git a/include/uapi/linux/netfilter/Kbuild b/include/uapi/linux/netfilter/Kbuild index 1d973d2ba417..cd26d7a0fd07 100644 --- a/include/uapi/linux/netfilter/Kbuild +++ b/include/uapi/linux/netfilter/Kbuild @@ -33,6 +33,7 @@ header-y += xt_NFLOG.h  header-y += xt_NFQUEUE.h  header-y += xt_RATEEST.h  header-y += xt_SECMARK.h +header-y += xt_SYNPROXY.h  header-y += xt_TCPMSS.h  header-y += xt_TCPOPTSTRIP.h  header-y += xt_TEE.h diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h index 6a4dbe04f09e..01751faccaf8 100644 --- a/include/uapi/linux/netfilter/nf_tables.h +++ b/include/uapi/linux/netfilter/nf_tables.h @@ -546,6 +546,10 @@ enum nft_cmp_attributes {  };  #define NFTA_CMP_MAX		(__NFTA_CMP_MAX - 1) +enum nft_lookup_flags { +	NFT_LOOKUP_F_INV = (1 << 0), +}; +  /**   * enum nft_lookup_attributes - nf_tables set lookup expression netlink attributes   * @@ -553,6 +557,7 @@ enum nft_cmp_attributes {   * @NFTA_LOOKUP_SREG: source register of the data to look for (NLA_U32: nft_registers)   * @NFTA_LOOKUP_DREG: destination register (NLA_U32: nft_registers)   * @NFTA_LOOKUP_SET_ID: uniquely identifies a set in a transaction (NLA_U32) + * @NFTA_LOOKUP_FLAGS: flags (NLA_U32: enum nft_lookup_flags)   */  enum nft_lookup_attributes {  	NFTA_LOOKUP_UNSPEC, @@ -560,6 +565,7 @@ enum nft_lookup_attributes {  	NFTA_LOOKUP_SREG,  	NFTA_LOOKUP_DREG,  	NFTA_LOOKUP_SET_ID, +	NFTA_LOOKUP_FLAGS,  	__NFTA_LOOKUP_MAX  };  #define NFTA_LOOKUP_MAX		(__NFTA_LOOKUP_MAX - 1) diff --git a/include/uapi/linux/netfilter/xt_NFLOG.h b/include/uapi/linux/netfilter/xt_NFLOG.h index 87b58311ce6b..f33070730fc8 100644 --- a/include/uapi/linux/netfilter/xt_NFLOG.h +++ b/include/uapi/linux/netfilter/xt_NFLOG.h @@ -6,9 +6,13 @@  #define XT_NFLOG_DEFAULT_GROUP		0x1  #define XT_NFLOG_DEFAULT_THRESHOLD	0 -#define XT_NFLOG_MASK			0x0 +#define XT_NFLOG_MASK			0x1 + +/* This flag indicates that 'len' field in xt_nflog_info is set*/ +#define XT_NFLOG_F_COPY_LEN		0x1  struct xt_nflog_info { +	/* 'len' will be used iff you set XT_NFLOG_F_COPY_LEN in flags */  	__u32	len;  	__u16	group;  	__u16	threshold; diff --git a/include/uapi/linux/netfilter/xt_SYNPROXY.h b/include/uapi/linux/netfilter/xt_SYNPROXY.h index 2d59fbaa93c6..ca67e61d2a61 100644 --- a/include/uapi/linux/netfilter/xt_SYNPROXY.h +++ b/include/uapi/linux/netfilter/xt_SYNPROXY.h @@ -1,6 +1,8 @@  #ifndef _XT_SYNPROXY_H  #define _XT_SYNPROXY_H +#include <linux/types.h> +  #define XT_SYNPROXY_OPT_MSS		0x01  #define XT_SYNPROXY_OPT_WSCALE		0x02  #define XT_SYNPROXY_OPT_SACK_PERM	0x04 diff --git a/include/uapi/linux/netlink_diag.h b/include/uapi/linux/netlink_diag.h index d79399394b46..76b4d87c83a8 100644 --- a/include/uapi/linux/netlink_diag.h +++ b/include/uapi/linux/netlink_diag.h @@ -49,6 +49,7 @@ enum {  #define NDIAG_SHOW_MEMINFO	0x00000001 /* show memory info of a socket */  #define NDIAG_SHOW_GROUPS	0x00000002 /* show groups of a netlink socket */  #ifndef __KERNEL__ +/* deprecated since 4.6 */  #define NDIAG_SHOW_RING_CFG	0x00000004 /* show ring configuration */  #endif diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index e23d78685a01..220694151434 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h @@ -493,7 +493,12 @@   *	This attribute is ignored if driver does not support roam scan.   *	It is also sent as an event, with the BSSID and response IEs when the   *	connection is established or failed to be established. This can be - *	determined by the STATUS_CODE attribute. + *	determined by the %NL80211_ATTR_STATUS_CODE attribute (0 = success, + *	non-zero = failure). If %NL80211_ATTR_TIMED_OUT is included in the + *	event, the connection attempt failed due to not being able to initiate + *	authentication/association or not receiving a response from the AP. + *	Non-zero %NL80211_ATTR_STATUS_CODE value is indicated in that case as + *	well to remain backwards compatible.   * @NL80211_CMD_ROAM: request that the card roam (currently not implemented),   *	sent as an event when the card/driver roamed by itself.   * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify @@ -1819,6 +1824,49 @@ enum nl80211_commands {   *   * @NL80211_ATTR_PAD: attribute used for padding for 64-bit alignment   * + * @NL80211_ATTR_IFTYPE_EXT_CAPA: Nested attribute of the following attributes: + *	%NL80211_ATTR_IFTYPE, %NL80211_ATTR_EXT_CAPA, + *	%NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities per + *	interface type. + * + * @NL80211_ATTR_MU_MIMO_GROUP_DATA: array of 24 bytes that defines a MU-MIMO + *	groupID for monitor mode. + *	The first 8 bytes are a mask that defines the membership in each + *	group (there are 64 groups, group 0 and 63 are reserved), + *	each bit represents a group and set to 1 for being a member in + *	that group and 0 for not being a member. + *	The remaining 16 bytes define the position in each group: 2 bits for + *	each group. + *	(smaller group numbers represented on most significant bits and bigger + *	group numbers on least significant bits.) + *	This attribute is used only if all interfaces are in monitor mode. + *	Set this attribute in order to monitor packets using the given MU-MIMO + *	groupID data. + *	to turn off that feature set all the bits of the groupID to zero. + * @NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR: mac address for the sniffer to follow + *	when using MU-MIMO air sniffer. + *	to turn that feature off set an invalid mac address + *	(e.g. FF:FF:FF:FF:FF:FF) + * + * @NL80211_ATTR_SCAN_START_TIME_TSF: The time at which the scan was actually + *	started (u64). The time is the TSF of the BSS the interface that + *	requested the scan is connected to (if available, otherwise this + *	attribute must not be included). + * @NL80211_ATTR_SCAN_START_TIME_TSF_BSSID: The BSS according to which + *	%NL80211_ATTR_SCAN_START_TIME_TSF is set. + * @NL80211_ATTR_MEASUREMENT_DURATION: measurement duration in TUs (u16). If + *	%NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY is not set, this is the + *	maximum measurement duration allowed. This attribute is used with + *	measurement requests. It can also be used with %NL80211_CMD_TRIGGER_SCAN + *	if the scan is used for beacon report radio measurement. + * @NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY: flag attribute that indicates + *	that the duration specified with %NL80211_ATTR_MEASUREMENT_DURATION is + *	mandatory. If this flag is not set, the duration is the maximum duration + *	and the actual measurement duration may be shorter. + * + * @NL80211_ATTR_MESH_PEER_AID: Association ID for the mesh peer (u16). This is + *	used to pull the stored data for mesh peer in power save state. + *   * @NUM_NL80211_ATTR: total number of nl80211_attrs available   * @NL80211_ATTR_MAX: highest attribute number currently defined   * @__NL80211_ATTR_AFTER_LAST: internal use @@ -2201,6 +2249,18 @@ enum nl80211_attrs {  	NL80211_ATTR_PAD, +	NL80211_ATTR_IFTYPE_EXT_CAPA, + +	NL80211_ATTR_MU_MIMO_GROUP_DATA, +	NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR, + +	NL80211_ATTR_SCAN_START_TIME_TSF, +	NL80211_ATTR_SCAN_START_TIME_TSF_BSSID, +	NL80211_ATTR_MEASUREMENT_DURATION, +	NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY, + +	NL80211_ATTR_MESH_PEER_AID, +  	/* add attributes here, update the policy in nl80211.c */  	__NL80211_ATTR_AFTER_LAST, @@ -3462,6 +3522,12 @@ enum nl80211_bss_scan_width {   *	was last updated by a received frame. The value is expected to be   *	accurate to about 10ms. (u64, nanoseconds)   * @NL80211_BSS_PAD: attribute used for padding for 64-bit alignment + * @NL80211_BSS_PARENT_TSF: the time at the start of reception of the first + *	octet of the timestamp field of the last beacon/probe received for + *	this BSS. The time is the TSF of the BSS specified by + *	@NL80211_BSS_PARENT_BSSID. (u64). + * @NL80211_BSS_PARENT_BSSID: the BSS according to which @NL80211_BSS_PARENT_TSF + *	is set.   * @__NL80211_BSS_AFTER_LAST: internal   * @NL80211_BSS_MAX: highest BSS attribute   */ @@ -3483,6 +3549,8 @@ enum nl80211_bss {  	NL80211_BSS_PRESP_DATA,  	NL80211_BSS_LAST_SEEN_BOOTTIME,  	NL80211_BSS_PAD, +	NL80211_BSS_PARENT_TSF, +	NL80211_BSS_PARENT_BSSID,  	/* keep last */  	__NL80211_BSS_AFTER_LAST, @@ -4467,6 +4535,22 @@ enum nl80211_feature_flags {   *	%NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set   *	the ASSOC_REQ_USE_RRM flag in the association request even if   *	NL80211_FEATURE_QUIET is not advertized. + * @NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER: This device supports MU-MIMO air + *	sniffer which means that it can be configured to hear packets from + *	certain groups which can be configured by the + *	%NL80211_ATTR_MU_MIMO_GROUP_DATA attribute, + *	or can be configured to follow a station by configuring the + *	%NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR attribute. + * @NL80211_EXT_FEATURE_SCAN_START_TIME: This driver includes the actual + *	time the scan started in scan results event. The time is the TSF of + *	the BSS that the interface that requested the scan is connected to + *	(if available). + * @NL80211_EXT_FEATURE_BSS_PARENT_TSF: Per BSS, this driver reports the + *	time the last beacon/probe was received. The time is the TSF of the + *	BSS that the interface that requested the scan is connected to + *	(if available). + * @NL80211_EXT_FEATURE_SET_SCAN_DWELL: This driver supports configuration of + *	channel dwell time.   *   * @NUM_NL80211_EXT_FEATURES: number of extended features.   * @MAX_NL80211_EXT_FEATURES: highest extended feature index. @@ -4474,6 +4558,10 @@ enum nl80211_feature_flags {  enum nl80211_ext_feature_index {  	NL80211_EXT_FEATURE_VHT_IBSS,  	NL80211_EXT_FEATURE_RRM, +	NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER, +	NL80211_EXT_FEATURE_SCAN_START_TIME, +	NL80211_EXT_FEATURE_BSS_PARENT_TSF, +	NL80211_EXT_FEATURE_SET_SCAN_DWELL,  	/* add new features before the definition below */  	NUM_NL80211_EXT_FEATURES, diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h index bb0d515b7654..d95a3018f6a1 100644 --- a/include/uapi/linux/openvswitch.h +++ b/include/uapi/linux/openvswitch.h @@ -166,6 +166,7 @@ enum ovs_packet_cmd {   * output port is actually a tunnel port. Contains the output tunnel key   * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes.   * @OVS_PACKET_ATTR_MRU: Present for an %OVS_PACKET_CMD_ACTION and + * @OVS_PACKET_ATTR_LEN: Packet size before truncation.   * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment   * size.   * @@ -185,6 +186,7 @@ enum ovs_packet_attr {  	OVS_PACKET_ATTR_PROBE,      /* Packet operation is a feature probe,  				       error logging should be suppressed. */  	OVS_PACKET_ATTR_MRU,	    /* Maximum received IP fragment size. */ +	OVS_PACKET_ATTR_LEN,		/* Packet size before truncation. */  	__OVS_PACKET_ATTR_MAX  }; @@ -580,6 +582,10 @@ enum ovs_userspace_attr {  #define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1) +struct ovs_action_trunc { +	uint32_t max_len; /* Max packet size in bytes. */ +}; +  /**   * struct ovs_action_push_mpls - %OVS_ACTION_ATTR_PUSH_MPLS action argument.   * @mpls_lse: MPLS label stack entry to push. @@ -703,6 +709,7 @@ enum ovs_nat_attr {   * enum ovs_action_attr - Action types.   *   * @OVS_ACTION_ATTR_OUTPUT: Output packet to port. + * @OVS_ACTION_ATTR_TRUNC: Output packet to port with truncated packet size.   * @OVS_ACTION_ATTR_USERSPACE: Send packet to userspace according to nested   * %OVS_USERSPACE_ATTR_* attributes.   * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header.  The @@ -756,6 +763,7 @@ enum ovs_action_attr {  				       * The data must be zero for the unmasked  				       * bits. */  	OVS_ACTION_ATTR_CT,           /* Nested OVS_CT_ATTR_* . */ +	OVS_ACTION_ATTR_TRUNC,        /* u32 struct ovs_action_trunc. */  	__OVS_ACTION_ATTR_MAX,	      /* Nothing past this will be accepted  				       * from userspace. */ diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index 36ce552cf6a9..c66a485a24ac 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h @@ -276,6 +276,9 @@ enum perf_event_read_format {  /*   * Hardware event_id to monitor via a performance monitoring event: + * + * @sample_max_stack: Max number of frame pointers in a callchain, + *		      should be < /proc/sys/kernel/perf_event_max_stack   */  struct perf_event_attr { @@ -385,7 +388,8 @@ struct perf_event_attr {  	 * Wakeup watermark for AUX area  	 */  	__u32	aux_watermark; -	__u32	__reserved_2;	/* align to __u64 */ +	__u16	sample_max_stack; +	__u16	__reserved_2;	/* align to __u64 */  };  #define perf_flags(attr)	(*(&(attr)->read_format + 1)) diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index f4297c8a42fe..d1c1ccaba787 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -115,8 +115,8 @@ struct tc_police {  	__u32			mtu;  	struct tc_ratespec	rate;  	struct tc_ratespec	peakrate; -	int 			refcnt; -	int 			bindcnt; +	int			refcnt; +	int			bindcnt;  	__u32			capab;  }; @@ -124,10 +124,11 @@ struct tcf_t {  	__u64   install;  	__u64   lastuse;  	__u64   expires; +	__u64   firstuse;  };  struct tc_cnt { -	int                   refcnt;  +	int                   refcnt;  	int                   bindcnt;  }; @@ -432,6 +433,18 @@ enum {  #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) +/* Match-all classifier */ + +enum { +	TCA_MATCHALL_UNSPEC, +	TCA_MATCHALL_CLASSID, +	TCA_MATCHALL_ACT, +	TCA_MATCHALL_FLAGS, +	__TCA_MATCHALL_MAX, +}; + +#define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1) +  /* Extended Matches */  struct tcf_ematch_tree_hdr { diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h index ce70fe6b45df..d304f4c9792c 100644 --- a/include/uapi/linux/sctp.h +++ b/include/uapi/linux/sctp.h @@ -112,6 +112,31 @@ typedef __s32 sctp_assoc_t;  #define SCTP_SOCKOPT_CONNECTX	110		/* CONNECTX requests. */  #define SCTP_SOCKOPT_CONNECTX3	111	/* CONNECTX requests (updated) */  #define SCTP_GET_ASSOC_STATS	112	/* Read only */ +#define SCTP_PR_SUPPORTED	113 +#define SCTP_DEFAULT_PRINFO	114 +#define SCTP_PR_ASSOC_STATUS	115 + +/* PR-SCTP policies */ +#define SCTP_PR_SCTP_NONE	0x0000 +#define SCTP_PR_SCTP_TTL	0x0010 +#define SCTP_PR_SCTP_RTX	0x0020 +#define SCTP_PR_SCTP_PRIO	0x0030 +#define SCTP_PR_SCTP_MAX	SCTP_PR_SCTP_PRIO +#define SCTP_PR_SCTP_MASK	0x0030 + +#define __SCTP_PR_INDEX(x)	((x >> 4) - 1) +#define SCTP_PR_INDEX(x)	__SCTP_PR_INDEX(SCTP_PR_SCTP_ ## x) + +#define SCTP_PR_POLICY(x)	((x) & SCTP_PR_SCTP_MASK) +#define SCTP_PR_SET_POLICY(flags, x)	\ +	do {				\ +		flags &= ~SCTP_PR_SCTP_MASK;	\ +		flags |= x;		\ +	} while (0) + +#define SCTP_PR_TTL_ENABLED(x)	(SCTP_PR_POLICY(x) == SCTP_PR_SCTP_TTL) +#define SCTP_PR_RTX_ENABLED(x)	(SCTP_PR_POLICY(x) == SCTP_PR_SCTP_RTX) +#define SCTP_PR_PRIO_ENABLED(x)	(SCTP_PR_POLICY(x) == SCTP_PR_SCTP_PRIO)  /* These are bit fields for msghdr->msg_flags.  See section 5.1.  */  /* On user space Linux, these live in <bits/socket.h> as an enum.  */ @@ -902,4 +927,21 @@ struct sctp_paddrthlds {  	__u16 spt_pathpfthld;  }; +/* + * Socket Option for Getting the Association/Stream-Specific PR-SCTP Status + */ +struct sctp_prstatus { +	sctp_assoc_t sprstat_assoc_id; +	__u16 sprstat_sid; +	__u16 sprstat_policy; +	__u64 sprstat_abandoned_unsent; +	__u64 sprstat_abandoned_sent; +}; + +struct sctp_default_prinfo { +	sctp_assoc_t pr_assoc_id; +	__u32 pr_value; +	__u16 pr_policy; +}; +  #endif /* _UAPI_SCTP_H */ diff --git a/include/uapi/linux/serio.h b/include/uapi/linux/serio.h index c2ea1698257f..f2447a83ac8d 100644 --- a/include/uapi/linux/serio.h +++ b/include/uapi/linux/serio.h @@ -78,5 +78,6 @@  #define SERIO_TSC40	0x3d  #define SERIO_WACOM_IV	0x3e  #define SERIO_EGALAX	0x3f +#define SERIO_PULSE8_CEC	0x40  #endif /* _UAPI_SERIO_H */ diff --git a/include/uapi/linux/tc_act/tc_skbedit.h b/include/uapi/linux/tc_act/tc_skbedit.h index fecb5cc48c40..a4d00c608d8f 100644 --- a/include/uapi/linux/tc_act/tc_skbedit.h +++ b/include/uapi/linux/tc_act/tc_skbedit.h @@ -27,6 +27,7 @@  #define SKBEDIT_F_PRIORITY		0x1  #define SKBEDIT_F_QUEUE_MAPPING		0x2  #define SKBEDIT_F_MARK			0x4 +#define SKBEDIT_F_PTYPE			0x8  struct tc_skbedit {  	tc_gen; @@ -40,6 +41,7 @@ enum {  	TCA_SKBEDIT_QUEUE_MAPPING,  	TCA_SKBEDIT_MARK,  	TCA_SKBEDIT_PAD, +	TCA_SKBEDIT_PTYPE,  	__TCA_SKBEDIT_MAX  };  #define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1) diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h index 53e8e3fe6b1b..482898fc433a 100644 --- a/include/uapi/linux/tcp.h +++ b/include/uapi/linux/tcp.h @@ -115,12 +115,22 @@ enum {  #define TCP_CC_INFO		26	/* Get Congestion Control (optional) info */  #define TCP_SAVE_SYN		27	/* Record SYN headers for new connections */  #define TCP_SAVED_SYN		28	/* Get SYN headers recorded for connection */ +#define TCP_REPAIR_WINDOW	29	/* Get/set window parameters */  struct tcp_repair_opt {  	__u32	opt_code;  	__u32	opt_val;  }; +struct tcp_repair_window { +	__u32	snd_wl1; +	__u32	snd_wnd; +	__u32	max_window; + +	__u32	rcv_wnd; +	__u32	rcv_wup; +}; +  enum {  	TCP_NO_QUEUE,  	TCP_RECV_QUEUE, diff --git a/include/uapi/linux/tipc.h b/include/uapi/linux/tipc.h index 6f71b9b41595..bf049e8fe31b 100644 --- a/include/uapi/linux/tipc.h +++ b/include/uapi/linux/tipc.h @@ -60,26 +60,48 @@ struct tipc_name_seq {  	__u32 upper;  }; +/* TIPC Address Size, Offset, Mask specification for Z.C.N + */ +#define TIPC_NODE_BITS          12 +#define TIPC_CLUSTER_BITS       12 +#define TIPC_ZONE_BITS          8 + +#define TIPC_NODE_OFFSET        0 +#define TIPC_CLUSTER_OFFSET     TIPC_NODE_BITS +#define TIPC_ZONE_OFFSET        (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS) + +#define TIPC_NODE_SIZE          ((1UL << TIPC_NODE_BITS) - 1) +#define TIPC_CLUSTER_SIZE       ((1UL << TIPC_CLUSTER_BITS) - 1) +#define TIPC_ZONE_SIZE          ((1UL << TIPC_ZONE_BITS) - 1) + +#define TIPC_NODE_MASK		(TIPC_NODE_SIZE << TIPC_NODE_OFFSET) +#define TIPC_CLUSTER_MASK	(TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET) +#define TIPC_ZONE_MASK		(TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET) + +#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK) +  static inline __u32 tipc_addr(unsigned int zone,  			      unsigned int cluster,  			      unsigned int node)  { -	return (zone << 24) | (cluster << 12) | node; +	return (zone << TIPC_ZONE_OFFSET) | +		(cluster << TIPC_CLUSTER_OFFSET) | +		node;  }  static inline unsigned int tipc_zone(__u32 addr)  { -	return addr >> 24; +	return addr >> TIPC_ZONE_OFFSET;  }  static inline unsigned int tipc_cluster(__u32 addr)  { -	return (addr >> 12) & 0xfff; +	return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET;  }  static inline unsigned int tipc_node(__u32 addr)  { -	return addr & 0xfff; +	return addr & TIPC_NODE_MASK;  }  /* diff --git a/include/uapi/linux/tipc_netlink.h b/include/uapi/linux/tipc_netlink.h index d4c8f142ba63..5f3f6d09fb79 100644 --- a/include/uapi/linux/tipc_netlink.h +++ b/include/uapi/linux/tipc_netlink.h @@ -56,6 +56,9 @@ enum {  	TIPC_NL_NET_GET,  	TIPC_NL_NET_SET,  	TIPC_NL_NAME_TABLE_GET, +	TIPC_NL_MON_SET, +	TIPC_NL_MON_GET, +	TIPC_NL_MON_PEER_GET,  	__TIPC_NL_CMD_MAX,  	TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1 @@ -72,6 +75,8 @@ enum {  	TIPC_NLA_NODE,			/* nest */  	TIPC_NLA_NET,			/* nest */  	TIPC_NLA_NAME_TABLE,		/* nest */ +	TIPC_NLA_MON,			/* nest */ +	TIPC_NLA_MON_PEER,		/* nest */  	__TIPC_NLA_MAX,  	TIPC_NLA_MAX = __TIPC_NLA_MAX - 1 @@ -166,6 +171,20 @@ enum {  	TIPC_NLA_NAME_TABLE_MAX = __TIPC_NLA_NAME_TABLE_MAX - 1  }; +/* Monitor info */ +enum { +	TIPC_NLA_MON_UNSPEC, +	TIPC_NLA_MON_ACTIVATION_THRESHOLD,	/* u32 */ +	TIPC_NLA_MON_REF,			/* u32 */ +	TIPC_NLA_MON_ACTIVE,			/* flag */ +	TIPC_NLA_MON_BEARER_NAME,		/* string */ +	TIPC_NLA_MON_PEERCNT,			/* u32 */ +	TIPC_NLA_MON_LISTGEN,			/* u32 */ + +	__TIPC_NLA_MON_MAX, +	TIPC_NLA_MON_MAX = __TIPC_NLA_MON_MAX - 1 +}; +  /* Publication info */  enum {  	TIPC_NLA_PUBL_UNSPEC, @@ -182,6 +201,24 @@ enum {  	TIPC_NLA_PUBL_MAX = __TIPC_NLA_PUBL_MAX - 1  }; +/* Monitor peer info */ +enum { +	TIPC_NLA_MON_PEER_UNSPEC, + +	TIPC_NLA_MON_PEER_ADDR,			/* u32 */ +	TIPC_NLA_MON_PEER_DOMGEN,		/* u32 */ +	TIPC_NLA_MON_PEER_APPLIED,		/* u32 */ +	TIPC_NLA_MON_PEER_UPMAP,		/* u64 */ +	TIPC_NLA_MON_PEER_MEMBERS,		/* tlv */ +	TIPC_NLA_MON_PEER_UP,			/* flag */ +	TIPC_NLA_MON_PEER_HEAD,			/* flag */ +	TIPC_NLA_MON_PEER_LOCAL,		/* flag */ +	TIPC_NLA_MON_PEER_PAD,			/* flag */ + +	__TIPC_NLA_MON_PEER_MAX, +	TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1 +}; +  /* Nest, connection info */  enum {  	TIPC_NLA_CON_UNSPEC, diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 8f951917be74..724f43e69d03 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -504,22 +504,16 @@ struct v4l2_pix_format {  #define V4L2_PIX_FMT_UV8     v4l2_fourcc('U', 'V', '8', ' ') /*  8  UV 4:4 */  /* Luminance+Chrominance formats */ -#define V4L2_PIX_FMT_YVU410  v4l2_fourcc('Y', 'V', 'U', '9') /*  9  YVU 4:1:0     */ -#define V4L2_PIX_FMT_YVU420  v4l2_fourcc('Y', 'V', '1', '2') /* 12  YVU 4:2:0     */  #define V4L2_PIX_FMT_YUYV    v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16  YUV 4:2:2     */  #define V4L2_PIX_FMT_YYUV    v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16  YUV 4:2:2     */  #define V4L2_PIX_FMT_YVYU    v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */  #define V4L2_PIX_FMT_UYVY    v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16  YUV 4:2:2     */  #define V4L2_PIX_FMT_VYUY    v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16  YUV 4:2:2     */ -#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16  YVU422 planar */ -#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16  YVU411 planar */  #define V4L2_PIX_FMT_Y41P    v4l2_fourcc('Y', '4', '1', 'P') /* 12  YUV 4:1:1     */  #define V4L2_PIX_FMT_YUV444  v4l2_fourcc('Y', '4', '4', '4') /* 16  xxxxyyyy uuuuvvvv */  #define V4L2_PIX_FMT_YUV555  v4l2_fourcc('Y', 'U', 'V', 'O') /* 16  YUV-5-5-5     */  #define V4L2_PIX_FMT_YUV565  v4l2_fourcc('Y', 'U', 'V', 'P') /* 16  YUV-5-6-5     */  #define V4L2_PIX_FMT_YUV32   v4l2_fourcc('Y', 'U', 'V', '4') /* 32  YUV-8-8-8-8   */ -#define V4L2_PIX_FMT_YUV410  v4l2_fourcc('Y', 'U', 'V', '9') /*  9  YUV 4:1:0     */ -#define V4L2_PIX_FMT_YUV420  v4l2_fourcc('Y', 'U', '1', '2') /* 12  YUV 4:2:0     */  #define V4L2_PIX_FMT_HI240   v4l2_fourcc('H', 'I', '2', '4') /*  8  8-bit color   */  #define V4L2_PIX_FMT_HM12    v4l2_fourcc('H', 'M', '1', '2') /*  8  YUV 4:2:0 16x16 macroblocks */  #define V4L2_PIX_FMT_M420    v4l2_fourcc('M', '4', '2', '0') /* 12  YUV 4:2:0 2 lines y, 1 line uv interleaved */ @@ -540,6 +534,14 @@ struct v4l2_pix_format {  #define V4L2_PIX_FMT_NV12MT  v4l2_fourcc('T', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 64x32 macroblocks */  #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 macroblocks */ +/* three planes - Y Cb, Cr */ +#define V4L2_PIX_FMT_YUV410  v4l2_fourcc('Y', 'U', 'V', '9') /*  9  YUV 4:1:0     */ +#define V4L2_PIX_FMT_YVU410  v4l2_fourcc('Y', 'V', 'U', '9') /*  9  YVU 4:1:0     */ +#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 12  YVU411 planar */ +#define V4L2_PIX_FMT_YUV420  v4l2_fourcc('Y', 'U', '1', '2') /* 12  YUV 4:2:0     */ +#define V4L2_PIX_FMT_YVU420  v4l2_fourcc('Y', 'V', '1', '2') /* 12  YVU 4:2:0     */ +#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16  YVU422 planar */ +  /* three non contiguous planes - Y, Cb, Cr */  #define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12  YUV420 planar */  #define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12  YVU420 planar */ diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h index ec32293a00db..fc353b518288 100644 --- a/include/uapi/linux/virtio_net.h +++ b/include/uapi/linux/virtio_net.h @@ -1,5 +1,5 @@ -#ifndef _LINUX_VIRTIO_NET_H -#define _LINUX_VIRTIO_NET_H +#ifndef _UAPI_LINUX_VIRTIO_NET_H +#define _UAPI_LINUX_VIRTIO_NET_H  /* This header is BSD licensed so anyone can use the definitions to implement   * compatible drivers/servers.   * @@ -35,6 +35,7 @@  #define VIRTIO_NET_F_CSUM	0	/* Host handles pkts w/ partial csum */  #define VIRTIO_NET_F_GUEST_CSUM	1	/* Guest handles pkts w/ partial csum */  #define VIRTIO_NET_F_CTRL_GUEST_OFFLOADS 2 /* Dynamic offload configuration. */ +#define VIRTIO_NET_F_MTU	3	/* Initial MTU advice */  #define VIRTIO_NET_F_MAC	5	/* Host has given MAC address. */  #define VIRTIO_NET_F_GUEST_TSO4	7	/* Guest can handle TSOv4 in. */  #define VIRTIO_NET_F_GUEST_TSO6	8	/* Guest can handle TSOv6 in. */ @@ -73,6 +74,8 @@ struct virtio_net_config {  	 * Legal values are between 1 and 0x8000  	 */  	__u16 max_virtqueue_pairs; +	/* Default maximum transmit unit advice */ +	__u16 mtu;  } __attribute__((packed));  /* @@ -242,4 +245,4 @@ struct virtio_net_ctrl_mq {  #define VIRTIO_NET_CTRL_GUEST_OFFLOADS   5  #define VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET        0 -#endif /* _LINUX_VIRTIO_NET_H */ +#endif /* _UAPI_LINUX_VIRTIO_NET_H */ diff --git a/include/uapi/linux/vsp1.h b/include/uapi/linux/vsp1.h deleted file mode 100644 index 9a823696d816..000000000000 --- a/include/uapi/linux/vsp1.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * vsp1.h - * - * Renesas R-Car VSP1 - User-space API - * - * Copyright (C) 2013 Renesas Corporation - * - * Contacts: Laurent Pinchart <[email protected]> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#ifndef __VSP1_USER_H__ -#define __VSP1_USER_H__ - -#include <linux/types.h> -#include <linux/videodev2.h> - -/* - * Private IOCTLs - * - * VIDIOC_VSP1_LUT_CONFIG - Configure the lookup table - */ - -#define VIDIOC_VSP1_LUT_CONFIG \ -	_IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct vsp1_lut_config) - -struct vsp1_lut_config { -	__u32 lut[256]; -}; - -#endif	/* __VSP1_USER_H__ */ diff --git a/include/uapi/linux/vtpm_proxy.h b/include/uapi/linux/vtpm_proxy.h new file mode 100644 index 000000000000..41e8e2252a30 --- /dev/null +++ b/include/uapi/linux/vtpm_proxy.h @@ -0,0 +1,36 @@ +/* + * Definitions for the VTPM proxy driver + * Copyright (c) 2015, 2016, IBM Corporation + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for + * more details. + */ + +#ifndef _UAPI_LINUX_VTPM_PROXY_H +#define _UAPI_LINUX_VTPM_PROXY_H + +#include <linux/types.h> +#include <linux/ioctl.h> + +/* ioctls */ + +struct vtpm_proxy_new_dev { +	__u32 flags;         /* input */ +	__u32 tpm_num;       /* output */ +	__u32 fd;            /* output */ +	__u32 major;         /* output */ +	__u32 minor;         /* output */ +}; + +/* above flags */ +#define VTPM_PROXY_FLAG_TPM2  1  /* emulator is TPM 2 */ + +#define VTPM_PROXY_IOC_NEW_DEV   _IOWR(0xa1, 0x00, struct vtpm_proxy_new_dev) + +#endif /* _UAPI_LINUX_VTPM_PROXY_H */ diff --git a/include/uapi/linux/wireless.h b/include/uapi/linux/wireless.h index c1592e3e4036..d9ecd7c6d691 100644 --- a/include/uapi/linux/wireless.h +++ b/include/uapi/linux/wireless.h @@ -670,8 +670,7 @@  /*   *	Generic format for most parameters that fit in an int   */ -struct	iw_param -{ +struct iw_param {    __s32		value;		/* The value of the parameter itself */    __u8		fixed;		/* Hardware should not use auto select */    __u8		disabled;	/* Disable the feature */ @@ -682,8 +681,7 @@ struct	iw_param   *	For all data larger than 16 octets, we need to use a   *	pointer to memory allocated in user space.   */ -struct	iw_point -{ +struct iw_point {    void __user	*pointer;	/* Pointer to the data  (in user space) */    __u16		length;		/* number of fields or size in bytes */    __u16		flags;		/* Optional params */ @@ -698,8 +696,7 @@ struct	iw_point   *	of 10 to get 'm' lower than 10^9, with 'm'= f / (10^'e')...   *	The power of 10 is in 'e', the result of the division is in 'm'.   */ -struct	iw_freq -{ +struct iw_freq {  	__s32		m;		/* Mantissa */  	__s16		e;		/* Exponent */  	__u8		i;		/* List index (when in range struct) */ @@ -709,8 +706,7 @@ struct	iw_freq  /*   *	Quality of the link   */ -struct	iw_quality -{ +struct iw_quality {  	__u8		qual;		/* link quality (%retries, SNR,  					   %missed beacons or better...) */  	__u8		level;		/* signal level (dBm) */ @@ -725,8 +721,7 @@ struct	iw_quality   *	is already pretty exhaustive, and you should use that first.   *	This is only additional stats...   */ -struct	iw_discarded -{ +struct iw_discarded {  	__u32		nwid;		/* Rx : Wrong nwid/essid */  	__u32		code;		/* Rx : Unable to code/decode (WEP) */  	__u32		fragment;	/* Rx : Can't perform MAC reassembly */ @@ -738,16 +733,14 @@ struct	iw_discarded   *	Packet/Time period missed in the wireless adapter due to   *	"wireless" specific problems...   */ -struct	iw_missed -{ +struct iw_missed {  	__u32		beacon;		/* Missed beacons/superframe */  };  /*   *	Quality range (for spy threshold)   */ -struct	iw_thrspy -{ +struct iw_thrspy {  	struct sockaddr		addr;		/* Source address (hw/mac) */  	struct iw_quality	qual;		/* Quality of the link */  	struct iw_quality	low;		/* Low threshold */ @@ -765,8 +758,7 @@ struct	iw_thrspy   *	Especially, scan results are required to include an entry for the   *	current BSS if the driver is in Managed mode and associated with an AP.   */ -struct	iw_scan_req -{ +struct iw_scan_req {  	__u8		scan_type; /* IW_SCAN_TYPE_{ACTIVE,PASSIVE} */  	__u8		essid_len;  	__u8		num_channels; /* num entries in channel_list; @@ -827,8 +819,7 @@ struct	iw_scan_req   *	RX_SEQ_VALID for SIOCGIWENCODEEXT are optional, but can be useful for   *	debugging/testing.   */ -struct	iw_encode_ext -{ +struct iw_encode_ext {  	__u32		ext_flags; /* IW_ENCODE_EXT_* */  	__u8		tx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */  	__u8		rx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ @@ -841,8 +832,7 @@ struct	iw_encode_ext  };  /* SIOCSIWMLME data */ -struct	iw_mlme -{ +struct iw_mlme {  	__u16		cmd; /* IW_MLME_* */  	__u16		reason_code;  	struct sockaddr	addr; @@ -855,16 +845,14 @@ struct	iw_mlme  #define IW_PMKID_LEN	16 -struct	iw_pmksa -{ +struct iw_pmksa {  	__u32		cmd; /* IW_PMKSA_* */  	struct sockaddr	bssid;  	__u8		pmkid[IW_PMKID_LEN];  };  /* IWEVMICHAELMICFAILURE data */ -struct	iw_michaelmicfailure -{ +struct iw_michaelmicfailure {  	__u32		flags;  	struct sockaddr	src_addr;  	__u8		tsc[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ @@ -872,8 +860,7 @@ struct	iw_michaelmicfailure  /* IWEVPMKIDCAND data */  #define IW_PMKID_CAND_PREAUTH	0x00000001 /* RNS pre-authentication enabled */ -struct	iw_pmkid_cand -{ +struct iw_pmkid_cand {  	__u32		flags; /* IW_PMKID_CAND_* */  	__u32		index; /* the smaller the index, the higher the  				* priority */ @@ -884,8 +871,7 @@ struct	iw_pmkid_cand  /*   * Wireless statistics (used for /proc/net/wireless)   */ -struct	iw_statistics -{ +struct iw_statistics {  	__u16		status;		/* Status  					 * - device dependent for now */ @@ -897,7 +883,7 @@ struct	iw_statistics  /* ------------------------ IOCTL REQUEST ------------------------ */  /* - * This structure defines the payload of an ioctl, and is used  + * This structure defines the payload of an ioctl, and is used   * below.   *   * Note that this structure should fit on the memory footprint @@ -906,8 +892,7 @@ struct	iw_statistics   * You should check this when increasing the structures defined   * above in this file...   */ -union	iwreq_data -{ +union iwreq_data {  	/* Config - generic */  	char		name[IFNAMSIZ];  	/* Name : used to verify the presence of  wireless extensions. @@ -944,15 +929,14 @@ union	iwreq_data   * convenience...   * Do I need to remind you about structure size (32 octets) ?   */ -struct	iwreq  -{ +struct iwreq {  	union  	{  		char	ifrn_name[IFNAMSIZ];	/* if name, e.g. "eth0" */  	} ifr_ifrn;  	/* Data part (defined just above) */ -	union	iwreq_data	u; +	union iwreq_data	u;  };  /* -------------------------- IOCTL DATA -------------------------- */ @@ -965,8 +949,7 @@ struct	iwreq   *	Range of parameters   */ -struct	iw_range -{ +struct iw_range {  	/* Informative stuff (to choose between different interface) */  	__u32		throughput;	/* To give an idea... */  	/* In theory this value should be the maximum benchmarked @@ -1069,9 +1052,8 @@ struct	iw_range  /*   * Private ioctl interface information   */ -  -struct	iw_priv_args -{ + +struct iw_priv_args {  	__u32		cmd;		/* Number of the ioctl to issue */  	__u16		set_args;	/* Type and number of args */  	__u16		get_args;	/* Type and number of args */ @@ -1088,8 +1070,7 @@ struct	iw_priv_args  /*   * A Wireless Event. Contains basically the same data as the ioctl...   */ -struct iw_event -{ +struct iw_event {  	__u16		len;			/* Real length of this stuff */  	__u16		cmd;			/* Wireless IOCTL */  	union iwreq_data	u;		/* IOCTL fixed payload */ |