diff options
author | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-02-23 14:02:19 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-02-23 14:02:19 -0500 |
commit | 99a85b901eb54f62ff0c3fd6eb56e60b7b9f15c8 (patch) | |
tree | 0c6637b7d2172e079c30e966847326767cbaf45c /include/uapi/linux | |
parent | 135f9be9194cf7778eb73594aa55791b229cf27c (diff) | |
parent | c517d838eb7d07bbe9507871fab3931deccff539 (diff) |
Merge tag 'v4.0-rc1' into patchwork
Linux 34.0-rc1
* tag 'v4.0-rc1': (8947 commits)
Linux 4.0-rc1
autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for allocation
procfs: fix race between symlink removals and traversals
debugfs: leave freeing a symlink body until inode eviction
Documentation/filesystems/Locking: ->get_sb() is long gone
trylock_super(): replacement for grab_super_passive()
fanotify: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
Cachefiles: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
VFS: (Scripted) Convert S_ISLNK/DIR/REG(dentry->d_inode) to d_is_*(dentry)
SELinux: Use d_is_positive() rather than testing dentry->d_inode
Smack: Use d_is_positive() rather than testing dentry->d_inode
TOMOYO: Use d_is_dir() rather than d_inode and S_ISDIR()
Apparmor: Use d_is_positive/negative() rather than testing dentry->d_inode
Apparmor: mediated_filesystem() should use dentry->d_sb not inode->i_sb
VFS: Split DCACHE_FILE_TYPE into regular and special types
VFS: Add a fallthrough flag for marking virtual dentries
VFS: Add a whiteout dentry type
VFS: Introduce inode-getting helpers for layered/unioned fs environments
kernel: make READ_ONCE() valid on const arguments
blk-throttle: check stats_cpu before reading it from sysfs
...
Diffstat (limited to 'include/uapi/linux')
48 files changed, 600 insertions, 226 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index 9312d5806541..68ceb97c458c 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild | |||
@@ -284,6 +284,7 @@ header-y += net.h | |||
284 | header-y += netlink_diag.h | 284 | header-y += netlink_diag.h |
285 | header-y += netlink.h | 285 | header-y += netlink.h |
286 | header-y += netrom.h | 286 | header-y += netrom.h |
287 | header-y += net_namespace.h | ||
287 | header-y += net_tstamp.h | 288 | header-y += net_tstamp.h |
288 | header-y += nfc.h | 289 | header-y += nfc.h |
289 | header-y += nfs2.h | 290 | header-y += nfs2.h |
@@ -369,7 +370,6 @@ header-y += snmp.h | |||
369 | header-y += sock_diag.h | 370 | header-y += sock_diag.h |
370 | header-y += socket.h | 371 | header-y += socket.h |
371 | header-y += sockios.h | 372 | header-y += sockios.h |
372 | header-y += som.h | ||
373 | header-y += sonet.h | 373 | header-y += sonet.h |
374 | header-y += sonypi.h | 374 | header-y += sonypi.h |
375 | header-y += soundcard.h | 375 | header-y += soundcard.h |
diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h index 611e1c5893b4..b6dec05c7196 100644 --- a/include/uapi/linux/btrfs.h +++ b/include/uapi/linux/btrfs.h | |||
@@ -495,8 +495,7 @@ struct btrfs_ioctl_send_args { | |||
495 | 495 | ||
496 | /* Error codes as returned by the kernel */ | 496 | /* Error codes as returned by the kernel */ |
497 | enum btrfs_err_code { | 497 | enum btrfs_err_code { |
498 | notused, | 498 | BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1, |
499 | BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET, | ||
500 | BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET, | 499 | BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET, |
501 | BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET, | 500 | BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET, |
502 | BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET, | 501 | BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET, |
diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h index a570d7b5796c..889f3a5b7b18 100644 --- a/include/uapi/linux/dm-ioctl.h +++ b/include/uapi/linux/dm-ioctl.h | |||
@@ -267,9 +267,9 @@ enum { | |||
267 | #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) | 267 | #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) |
268 | 268 | ||
269 | #define DM_VERSION_MAJOR 4 | 269 | #define DM_VERSION_MAJOR 4 |
270 | #define DM_VERSION_MINOR 29 | 270 | #define DM_VERSION_MINOR 30 |
271 | #define DM_VERSION_PATCHLEVEL 0 | 271 | #define DM_VERSION_PATCHLEVEL 0 |
272 | #define DM_VERSION_EXTRA "-ioctl (2014-10-28)" | 272 | #define DM_VERSION_EXTRA "-ioctl (2014-12-22)" |
273 | 273 | ||
274 | /* Status bits */ | 274 | /* Status bits */ |
275 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ | 275 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ |
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index 5f66d9c2889d..2e49fc880d29 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h | |||
@@ -139,6 +139,7 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) | |||
139 | 139 | ||
140 | #define ETHTOOL_FWVERS_LEN 32 | 140 | #define ETHTOOL_FWVERS_LEN 32 |
141 | #define ETHTOOL_BUSINFO_LEN 32 | 141 | #define ETHTOOL_BUSINFO_LEN 32 |
142 | #define ETHTOOL_EROMVERS_LEN 32 | ||
142 | 143 | ||
143 | /** | 144 | /** |
144 | * struct ethtool_drvinfo - general driver and device information | 145 | * struct ethtool_drvinfo - general driver and device information |
@@ -148,6 +149,7 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) | |||
148 | * not be an empty string. | 149 | * not be an empty string. |
149 | * @version: Driver version string; may be an empty string | 150 | * @version: Driver version string; may be an empty string |
150 | * @fw_version: Firmware version string; may be an empty string | 151 | * @fw_version: Firmware version string; may be an empty string |
152 | * @erom_version: Expansion ROM version string; may be an empty string | ||
151 | * @bus_info: Device bus address. This should match the dev_name() | 153 | * @bus_info: Device bus address. This should match the dev_name() |
152 | * string for the underlying bus device, if there is one. May be | 154 | * string for the underlying bus device, if there is one. May be |
153 | * an empty string. | 155 | * an empty string. |
@@ -176,7 +178,7 @@ struct ethtool_drvinfo { | |||
176 | char version[32]; | 178 | char version[32]; |
177 | char fw_version[ETHTOOL_FWVERS_LEN]; | 179 | char fw_version[ETHTOOL_FWVERS_LEN]; |
178 | char bus_info[ETHTOOL_BUSINFO_LEN]; | 180 | char bus_info[ETHTOOL_BUSINFO_LEN]; |
179 | char reserved1[32]; | 181 | char erom_version[ETHTOOL_EROMVERS_LEN]; |
180 | char reserved2[12]; | 182 | char reserved2[12]; |
181 | __u32 n_priv_flags; | 183 | __u32 n_priv_flags; |
182 | __u32 n_stats; | 184 | __u32 n_stats; |
diff --git a/include/uapi/linux/fou.h b/include/uapi/linux/fou.h index 8df06894da23..c303588bb767 100644 --- a/include/uapi/linux/fou.h +++ b/include/uapi/linux/fou.h | |||
@@ -14,6 +14,7 @@ enum { | |||
14 | FOU_ATTR_AF, /* u8 */ | 14 | FOU_ATTR_AF, /* u8 */ |
15 | FOU_ATTR_IPPROTO, /* u8 */ | 15 | FOU_ATTR_IPPROTO, /* u8 */ |
16 | FOU_ATTR_TYPE, /* u8 */ | 16 | FOU_ATTR_TYPE, /* u8 */ |
17 | FOU_ATTR_REMCSUM_NOPARTIAL, /* flag */ | ||
17 | 18 | ||
18 | __FOU_ATTR_MAX, | 19 | __FOU_ATTR_MAX, |
19 | }; | 20 | }; |
diff --git a/include/uapi/linux/fs.h b/include/uapi/linux/fs.h index 3735fa0a6784..9b964a5920af 100644 --- a/include/uapi/linux/fs.h +++ b/include/uapi/linux/fs.h | |||
@@ -90,6 +90,7 @@ struct inodes_stat_t { | |||
90 | #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ | 90 | #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ |
91 | #define MS_I_VERSION (1<<23) /* Update inode I_version field */ | 91 | #define MS_I_VERSION (1<<23) /* Update inode I_version field */ |
92 | #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ | 92 | #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ |
93 | #define MS_LAZYTIME (1<<25) /* Update the on-disk [acm]times lazily */ | ||
93 | 94 | ||
94 | /* These sb flags are internal to the kernel */ | 95 | /* These sb flags are internal to the kernel */ |
95 | #define MS_NOSEC (1<<28) | 96 | #define MS_NOSEC (1<<28) |
@@ -100,7 +101,8 @@ struct inodes_stat_t { | |||
100 | /* | 101 | /* |
101 | * Superblock flags that can be altered by MS_REMOUNT | 102 | * Superblock flags that can be altered by MS_REMOUNT |
102 | */ | 103 | */ |
103 | #define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION) | 104 | #define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|\ |
105 | MS_LAZYTIME) | ||
104 | 106 | ||
105 | /* | 107 | /* |
106 | * Old magic mount flag and mask | 108 | * Old magic mount flag and mask |
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index b03ee8f62d3c..eaaea6208b42 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h | |||
@@ -125,6 +125,8 @@ enum { | |||
125 | #define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */ | 125 | #define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */ |
126 | #define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */ | 126 | #define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */ |
127 | #define BRIDGE_VLAN_INFO_UNTAGGED (1<<2) /* VLAN egresses untagged */ | 127 | #define BRIDGE_VLAN_INFO_UNTAGGED (1<<2) /* VLAN egresses untagged */ |
128 | #define BRIDGE_VLAN_INFO_RANGE_BEGIN (1<<3) /* VLAN is start of vlan range */ | ||
129 | #define BRIDGE_VLAN_INFO_RANGE_END (1<<4) /* VLAN is end of vlan range */ | ||
128 | 130 | ||
129 | struct bridge_vlan_info { | 131 | struct bridge_vlan_info { |
130 | __u16 flags; | 132 | __u16 flags; |
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index f7d0d2d7173a..dfd0bb22e554 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h | |||
@@ -146,6 +146,7 @@ enum { | |||
146 | IFLA_PHYS_PORT_ID, | 146 | IFLA_PHYS_PORT_ID, |
147 | IFLA_CARRIER_CHANGES, | 147 | IFLA_CARRIER_CHANGES, |
148 | IFLA_PHYS_SWITCH_ID, | 148 | IFLA_PHYS_SWITCH_ID, |
149 | IFLA_LINK_NETNSID, | ||
149 | __IFLA_MAX | 150 | __IFLA_MAX |
150 | }; | 151 | }; |
151 | 152 | ||
@@ -370,6 +371,10 @@ enum { | |||
370 | IFLA_VXLAN_UDP_CSUM, | 371 | IFLA_VXLAN_UDP_CSUM, |
371 | IFLA_VXLAN_UDP_ZERO_CSUM6_TX, | 372 | IFLA_VXLAN_UDP_ZERO_CSUM6_TX, |
372 | IFLA_VXLAN_UDP_ZERO_CSUM6_RX, | 373 | IFLA_VXLAN_UDP_ZERO_CSUM6_RX, |
374 | IFLA_VXLAN_REMCSUM_TX, | ||
375 | IFLA_VXLAN_REMCSUM_RX, | ||
376 | IFLA_VXLAN_GBP, | ||
377 | IFLA_VXLAN_REMCSUM_NOPARTIAL, | ||
373 | __IFLA_VXLAN_MAX | 378 | __IFLA_VXLAN_MAX |
374 | }; | 379 | }; |
375 | #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) | 380 | #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) |
diff --git a/include/uapi/linux/in.h b/include/uapi/linux/in.h index c33a65e3d62c..589ced069e8a 100644 --- a/include/uapi/linux/in.h +++ b/include/uapi/linux/in.h | |||
@@ -109,6 +109,7 @@ struct in_addr { | |||
109 | 109 | ||
110 | #define IP_MINTTL 21 | 110 | #define IP_MINTTL 21 |
111 | #define IP_NODEFRAG 22 | 111 | #define IP_NODEFRAG 22 |
112 | #define IP_CHECKSUM 23 | ||
112 | 113 | ||
113 | /* IP_MTU_DISCOVER values */ | 114 | /* IP_MTU_DISCOVER values */ |
114 | #define IP_PMTUDISC_DONT 0 /* Never send DF frames */ | 115 | #define IP_PMTUDISC_DONT 0 /* Never send DF frames */ |
diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h index a1d7e931ab72..b0a813079852 100644 --- a/include/uapi/linux/input.h +++ b/include/uapi/linux/input.h | |||
@@ -166,6 +166,7 @@ struct input_keymap_entry { | |||
166 | #define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ | 166 | #define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ |
167 | #define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ | 167 | #define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ |
168 | #define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ | 168 | #define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ |
169 | #define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ | ||
169 | 170 | ||
170 | #define INPUT_PROP_MAX 0x1f | 171 | #define INPUT_PROP_MAX 0x1f |
171 | #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) | 172 | #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) |
diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h index e863d088b9a5..437a6a4b125a 100644 --- a/include/uapi/linux/ipv6.h +++ b/include/uapi/linux/ipv6.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _UAPI_IPV6_H | 1 | #ifndef _UAPI_IPV6_H |
2 | #define _UAPI_IPV6_H | 2 | #define _UAPI_IPV6_H |
3 | 3 | ||
4 | #include <linux/libc-compat.h> | ||
4 | #include <linux/types.h> | 5 | #include <linux/types.h> |
5 | #include <linux/in6.h> | 6 | #include <linux/in6.h> |
6 | #include <asm/byteorder.h> | 7 | #include <asm/byteorder.h> |
@@ -15,16 +16,19 @@ | |||
15 | * *under construction* | 16 | * *under construction* |
16 | */ | 17 | */ |
17 | 18 | ||
18 | 19 | #if __UAPI_DEF_IN6_PKTINFO | |
19 | struct in6_pktinfo { | 20 | struct in6_pktinfo { |
20 | struct in6_addr ipi6_addr; | 21 | struct in6_addr ipi6_addr; |
21 | int ipi6_ifindex; | 22 | int ipi6_ifindex; |
22 | }; | 23 | }; |
24 | #endif | ||
23 | 25 | ||
26 | #if __UAPI_DEF_IP6_MTUINFO | ||
24 | struct ip6_mtuinfo { | 27 | struct ip6_mtuinfo { |
25 | struct sockaddr_in6 ip6m_addr; | 28 | struct sockaddr_in6 ip6m_addr; |
26 | __u32 ip6m_mtu; | 29 | __u32 ip6m_mtu; |
27 | }; | 30 | }; |
31 | #endif | ||
28 | 32 | ||
29 | struct in6_ifreq { | 33 | struct in6_ifreq { |
30 | struct in6_addr ifr6_addr; | 34 | struct in6_addr ifr6_addr; |
@@ -165,6 +169,7 @@ enum { | |||
165 | DEVCONF_SUPPRESS_FRAG_NDISC, | 169 | DEVCONF_SUPPRESS_FRAG_NDISC, |
166 | DEVCONF_ACCEPT_RA_FROM_LOCAL, | 170 | DEVCONF_ACCEPT_RA_FROM_LOCAL, |
167 | DEVCONF_USE_OPTIMISTIC, | 171 | DEVCONF_USE_OPTIMISTIC, |
172 | DEVCONF_ACCEPT_RA_MTU, | ||
168 | DEVCONF_MAX | 173 | DEVCONF_MAX |
169 | }; | 174 | }; |
170 | 175 | ||
diff --git a/include/uapi/linux/kernel-page-flags.h b/include/uapi/linux/kernel-page-flags.h index 2f96d233c980..a6c4962e5d46 100644 --- a/include/uapi/linux/kernel-page-flags.h +++ b/include/uapi/linux/kernel-page-flags.h | |||
@@ -32,6 +32,7 @@ | |||
32 | #define KPF_KSM 21 | 32 | #define KPF_KSM 21 |
33 | #define KPF_THP 22 | 33 | #define KPF_THP 22 |
34 | #define KPF_BALLOON 23 | 34 | #define KPF_BALLOON 23 |
35 | #define KPF_ZERO_PAGE 24 | ||
35 | 36 | ||
36 | 37 | ||
37 | #endif /* _UAPILINUX_KERNEL_PAGE_FLAGS_H */ | 38 | #endif /* _UAPILINUX_KERNEL_PAGE_FLAGS_H */ |
diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h index 6925f5b42f89..99048e501b88 100644 --- a/include/uapi/linux/kexec.h +++ b/include/uapi/linux/kexec.h | |||
@@ -55,12 +55,6 @@ struct kexec_segment { | |||
55 | size_t memsz; | 55 | size_t memsz; |
56 | }; | 56 | }; |
57 | 57 | ||
58 | /* Load a new kernel image as described by the kexec_segment array | ||
59 | * consisting of passed number of segments at the entry-point address. | ||
60 | * The flags allow different useage types. | ||
61 | */ | ||
62 | extern int kexec_load(void *, size_t, struct kexec_segment *, | ||
63 | unsigned long int); | ||
64 | #endif /* __KERNEL__ */ | 58 | #endif /* __KERNEL__ */ |
65 | 59 | ||
66 | #endif /* _UAPILINUX_KEXEC_H */ | 60 | #endif /* _UAPILINUX_KEXEC_H */ |
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index a37fd1224f36..805570650062 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
@@ -491,6 +491,11 @@ struct kvm_s390_emerg_info { | |||
491 | __u16 code; | 491 | __u16 code; |
492 | }; | 492 | }; |
493 | 493 | ||
494 | #define KVM_S390_STOP_FLAG_STORE_STATUS 0x01 | ||
495 | struct kvm_s390_stop_info { | ||
496 | __u32 flags; | ||
497 | }; | ||
498 | |||
494 | struct kvm_s390_mchk_info { | 499 | struct kvm_s390_mchk_info { |
495 | __u64 cr14; | 500 | __u64 cr14; |
496 | __u64 mcic; | 501 | __u64 mcic; |
@@ -509,6 +514,7 @@ struct kvm_s390_irq { | |||
509 | struct kvm_s390_emerg_info emerg; | 514 | struct kvm_s390_emerg_info emerg; |
510 | struct kvm_s390_extcall_info extcall; | 515 | struct kvm_s390_extcall_info extcall; |
511 | struct kvm_s390_prefix_info prefix; | 516 | struct kvm_s390_prefix_info prefix; |
517 | struct kvm_s390_stop_info stop; | ||
512 | struct kvm_s390_mchk_info mchk; | 518 | struct kvm_s390_mchk_info mchk; |
513 | char reserved[64]; | 519 | char reserved[64]; |
514 | } u; | 520 | } u; |
@@ -753,6 +759,7 @@ struct kvm_ppc_smmu_info { | |||
753 | #define KVM_CAP_PPC_FIXUP_HCALL 103 | 759 | #define KVM_CAP_PPC_FIXUP_HCALL 103 |
754 | #define KVM_CAP_PPC_ENABLE_HCALL 104 | 760 | #define KVM_CAP_PPC_ENABLE_HCALL 104 |
755 | #define KVM_CAP_CHECK_EXTENSION_VM 105 | 761 | #define KVM_CAP_CHECK_EXTENSION_VM 105 |
762 | #define KVM_CAP_S390_USER_SIGP 106 | ||
756 | 763 | ||
757 | #ifdef KVM_CAP_IRQ_ROUTING | 764 | #ifdef KVM_CAP_IRQ_ROUTING |
758 | 765 | ||
@@ -952,6 +959,8 @@ enum kvm_device_type { | |||
952 | #define KVM_DEV_TYPE_ARM_VGIC_V2 KVM_DEV_TYPE_ARM_VGIC_V2 | 959 | #define KVM_DEV_TYPE_ARM_VGIC_V2 KVM_DEV_TYPE_ARM_VGIC_V2 |
953 | KVM_DEV_TYPE_FLIC, | 960 | KVM_DEV_TYPE_FLIC, |
954 | #define KVM_DEV_TYPE_FLIC KVM_DEV_TYPE_FLIC | 961 | #define KVM_DEV_TYPE_FLIC KVM_DEV_TYPE_FLIC |
962 | KVM_DEV_TYPE_ARM_VGIC_V3, | ||
963 | #define KVM_DEV_TYPE_ARM_VGIC_V3 KVM_DEV_TYPE_ARM_VGIC_V3 | ||
955 | KVM_DEV_TYPE_MAX, | 964 | KVM_DEV_TYPE_MAX, |
956 | }; | 965 | }; |
957 | 966 | ||
diff --git a/include/uapi/linux/l2tp.h b/include/uapi/linux/l2tp.h index 21caa2631c20..347ef22a964e 100644 --- a/include/uapi/linux/l2tp.h +++ b/include/uapi/linux/l2tp.h | |||
@@ -178,5 +178,6 @@ enum l2tp_seqmode { | |||
178 | */ | 178 | */ |
179 | #define L2TP_GENL_NAME "l2tp" | 179 | #define L2TP_GENL_NAME "l2tp" |
180 | #define L2TP_GENL_VERSION 0x1 | 180 | #define L2TP_GENL_VERSION 0x1 |
181 | #define L2TP_GENL_MCGROUP "l2tp" | ||
181 | 182 | ||
182 | #endif /* _UAPI_LINUX_L2TP_H_ */ | 183 | #endif /* _UAPI_LINUX_L2TP_H_ */ |
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h index e28807ad17fa..fa673e9cc040 100644 --- a/include/uapi/linux/libc-compat.h +++ b/include/uapi/linux/libc-compat.h | |||
@@ -70,6 +70,8 @@ | |||
70 | #define __UAPI_DEF_IPV6_MREQ 0 | 70 | #define __UAPI_DEF_IPV6_MREQ 0 |
71 | #define __UAPI_DEF_IPPROTO_V6 0 | 71 | #define __UAPI_DEF_IPPROTO_V6 0 |
72 | #define __UAPI_DEF_IPV6_OPTIONS 0 | 72 | #define __UAPI_DEF_IPV6_OPTIONS 0 |
73 | #define __UAPI_DEF_IN6_PKTINFO 0 | ||
74 | #define __UAPI_DEF_IP6_MTUINFO 0 | ||
73 | 75 | ||
74 | #else | 76 | #else |
75 | 77 | ||
@@ -84,6 +86,8 @@ | |||
84 | #define __UAPI_DEF_IPV6_MREQ 1 | 86 | #define __UAPI_DEF_IPV6_MREQ 1 |
85 | #define __UAPI_DEF_IPPROTO_V6 1 | 87 | #define __UAPI_DEF_IPPROTO_V6 1 |
86 | #define __UAPI_DEF_IPV6_OPTIONS 1 | 88 | #define __UAPI_DEF_IPV6_OPTIONS 1 |
89 | #define __UAPI_DEF_IN6_PKTINFO 1 | ||
90 | #define __UAPI_DEF_IP6_MTUINFO 1 | ||
87 | 91 | ||
88 | #endif /* _NETINET_IN_H */ | 92 | #endif /* _NETINET_IN_H */ |
89 | 93 | ||
@@ -106,6 +110,8 @@ | |||
106 | #define __UAPI_DEF_IPV6_MREQ 1 | 110 | #define __UAPI_DEF_IPV6_MREQ 1 |
107 | #define __UAPI_DEF_IPPROTO_V6 1 | 111 | #define __UAPI_DEF_IPPROTO_V6 1 |
108 | #define __UAPI_DEF_IPV6_OPTIONS 1 | 112 | #define __UAPI_DEF_IPV6_OPTIONS 1 |
113 | #define __UAPI_DEF_IN6_PKTINFO 1 | ||
114 | #define __UAPI_DEF_IP6_MTUINFO 1 | ||
109 | 115 | ||
110 | /* Definitions for xattr.h */ | 116 | /* Definitions for xattr.h */ |
111 | #define __UAPI_DEF_XATTR 1 | 117 | #define __UAPI_DEF_XATTR 1 |
diff --git a/include/uapi/linux/mempolicy.h b/include/uapi/linux/mempolicy.h index 0d11c3dcd3a1..9cd8b21dddbe 100644 --- a/include/uapi/linux/mempolicy.h +++ b/include/uapi/linux/mempolicy.h | |||
@@ -67,7 +67,7 @@ enum mpol_rebind_step { | |||
67 | #define MPOL_F_LOCAL (1 << 1) /* preferred local allocation */ | 67 | #define MPOL_F_LOCAL (1 << 1) /* preferred local allocation */ |
68 | #define MPOL_F_REBINDING (1 << 2) /* identify policies in rebinding */ | 68 | #define MPOL_F_REBINDING (1 << 2) /* identify policies in rebinding */ |
69 | #define MPOL_F_MOF (1 << 3) /* this policy wants migrate on fault */ | 69 | #define MPOL_F_MOF (1 << 3) /* this policy wants migrate on fault */ |
70 | #define MPOL_F_MORON (1 << 4) /* Migrate On pte_numa Reference On Node */ | 70 | #define MPOL_F_MORON (1 << 4) /* Migrate On protnone Reference On Node */ |
71 | 71 | ||
72 | 72 | ||
73 | #endif /* _UAPI_LINUX_MEMPOLICY_H */ | 73 | #endif /* _UAPI_LINUX_MEMPOLICY_H */ |
diff --git a/include/uapi/linux/msdos_fs.h b/include/uapi/linux/msdos_fs.h index e284ff919d6e..e956704f5fb1 100644 --- a/include/uapi/linux/msdos_fs.h +++ b/include/uapi/linux/msdos_fs.h | |||
@@ -134,7 +134,7 @@ struct fat_boot_sector { | |||
134 | __u8 vol_id[4]; /* volume ID */ | 134 | __u8 vol_id[4]; /* volume ID */ |
135 | __u8 vol_label[11]; /* volume label */ | 135 | __u8 vol_label[11]; /* volume label */ |
136 | __u8 fs_type[8]; /* file system type */ | 136 | __u8 fs_type[8]; /* file system type */ |
137 | /* other fiealds are not added here */ | 137 | /* other fields are not added here */ |
138 | } fat16; | 138 | } fat16; |
139 | 139 | ||
140 | struct { | 140 | struct { |
@@ -157,7 +157,7 @@ struct fat_boot_sector { | |||
157 | __u8 vol_id[4]; /* volume ID */ | 157 | __u8 vol_id[4]; /* volume ID */ |
158 | __u8 vol_label[11]; /* volume label */ | 158 | __u8 vol_label[11]; /* volume label */ |
159 | __u8 fs_type[8]; /* file system type */ | 159 | __u8 fs_type[8]; /* file system type */ |
160 | /* other fiealds are not added here */ | 160 | /* other fields are not added here */ |
161 | } fat32; | 161 | } fat32; |
162 | }; | 162 | }; |
163 | }; | 163 | }; |
diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h index f3d77f9f1e0b..3873a35509aa 100644 --- a/include/uapi/linux/neighbour.h +++ b/include/uapi/linux/neighbour.h | |||
@@ -25,6 +25,7 @@ enum { | |||
25 | NDA_VNI, | 25 | NDA_VNI, |
26 | NDA_IFINDEX, | 26 | NDA_IFINDEX, |
27 | NDA_MASTER, | 27 | NDA_MASTER, |
28 | NDA_LINK_NETNSID, | ||
28 | __NDA_MAX | 29 | __NDA_MAX |
29 | }; | 30 | }; |
30 | 31 | ||
diff --git a/include/uapi/linux/net_namespace.h b/include/uapi/linux/net_namespace.h new file mode 100644 index 000000000000..778cd2c3ebf4 --- /dev/null +++ b/include/uapi/linux/net_namespace.h | |||
@@ -0,0 +1,23 @@ | |||
1 | /* Copyright (c) 2015 6WIND S.A. | ||
2 | * Author: Nicolas Dichtel <nicolas.dichtel@6wind.com> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it | ||
5 | * under the terms and conditions of the GNU General Public License, | ||
6 | * version 2, as published by the Free Software Foundation. | ||
7 | */ | ||
8 | #ifndef _UAPI_LINUX_NET_NAMESPACE_H_ | ||
9 | #define _UAPI_LINUX_NET_NAMESPACE_H_ | ||
10 | |||
11 | /* Attributes of RTM_NEWNSID/RTM_GETNSID messages */ | ||
12 | enum { | ||
13 | NETNSA_NONE, | ||
14 | #define NETNSA_NSID_NOT_ASSIGNED -1 | ||
15 | NETNSA_NSID, | ||
16 | NETNSA_PID, | ||
17 | NETNSA_FD, | ||
18 | __NETNSA_MAX, | ||
19 | }; | ||
20 | |||
21 | #define NETNSA_MAX (__NETNSA_MAX - 1) | ||
22 | |||
23 | #endif /* _UAPI_LINUX_NET_NAMESPACE_H_ */ | ||
diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h index edbc888ceb51..6d1abea9746e 100644 --- a/include/uapi/linux/net_tstamp.h +++ b/include/uapi/linux/net_tstamp.h | |||
@@ -24,8 +24,9 @@ enum { | |||
24 | SOF_TIMESTAMPING_TX_SCHED = (1<<8), | 24 | SOF_TIMESTAMPING_TX_SCHED = (1<<8), |
25 | SOF_TIMESTAMPING_TX_ACK = (1<<9), | 25 | SOF_TIMESTAMPING_TX_ACK = (1<<9), |
26 | SOF_TIMESTAMPING_OPT_CMSG = (1<<10), | 26 | SOF_TIMESTAMPING_OPT_CMSG = (1<<10), |
27 | SOF_TIMESTAMPING_OPT_TSONLY = (1<<11), | ||
27 | 28 | ||
28 | SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_CMSG, | 29 | SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TSONLY, |
29 | SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | | 30 | SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | |
30 | SOF_TIMESTAMPING_LAST | 31 | SOF_TIMESTAMPING_LAST |
31 | }; | 32 | }; |
diff --git a/include/uapi/linux/nfc.h b/include/uapi/linux/nfc.h index 8119255feae4..c1e2e63cf9b5 100644 --- a/include/uapi/linux/nfc.h +++ b/include/uapi/linux/nfc.h | |||
@@ -183,6 +183,7 @@ enum nfc_attrs { | |||
183 | NFC_ATTR_SE_APDU, | 183 | NFC_ATTR_SE_APDU, |
184 | NFC_ATTR_TARGET_ISO15693_DSFID, | 184 | NFC_ATTR_TARGET_ISO15693_DSFID, |
185 | NFC_ATTR_TARGET_ISO15693_UID, | 185 | NFC_ATTR_TARGET_ISO15693_UID, |
186 | NFC_ATTR_SE_PARAMS, | ||
186 | /* private: internal use only */ | 187 | /* private: internal use only */ |
187 | __NFC_ATTR_AFTER_LAST | 188 | __NFC_ATTR_AFTER_LAST |
188 | }; | 189 | }; |
diff --git a/include/uapi/linux/nfsd/debug.h b/include/uapi/linux/nfsd/debug.h index 1fdc95bb2375..0bf130a1c58d 100644 --- a/include/uapi/linux/nfsd/debug.h +++ b/include/uapi/linux/nfsd/debug.h | |||
@@ -32,6 +32,7 @@ | |||
32 | #define NFSDDBG_REPCACHE 0x0080 | 32 | #define NFSDDBG_REPCACHE 0x0080 |
33 | #define NFSDDBG_XDR 0x0100 | 33 | #define NFSDDBG_XDR 0x0100 |
34 | #define NFSDDBG_LOCKD 0x0200 | 34 | #define NFSDDBG_LOCKD 0x0200 |
35 | #define NFSDDBG_PNFS 0x0400 | ||
35 | #define NFSDDBG_ALL 0x7FFF | 36 | #define NFSDDBG_ALL 0x7FFF |
36 | #define NFSDDBG_NOCHANGE 0xFFFF | 37 | #define NFSDDBG_NOCHANGE 0xFFFF |
37 | 38 | ||
diff --git a/include/uapi/linux/nfsd/export.h b/include/uapi/linux/nfsd/export.h index 584b6ef3a5e8..4742f2cb42f2 100644 --- a/include/uapi/linux/nfsd/export.h +++ b/include/uapi/linux/nfsd/export.h | |||
@@ -47,8 +47,10 @@ | |||
47 | * exported filesystem. | 47 | * exported filesystem. |
48 | */ | 48 | */ |
49 | #define NFSEXP_V4ROOT 0x10000 | 49 | #define NFSEXP_V4ROOT 0x10000 |
50 | #define NFSEXP_NOPNFS 0x20000 | ||
51 | |||
50 | /* All flags that we claim to support. (Note we don't support NOACL.) */ | 52 | /* All flags that we claim to support. (Note we don't support NOACL.) */ |
51 | #define NFSEXP_ALLFLAGS 0x1FE7F | 53 | #define NFSEXP_ALLFLAGS 0x3FE7F |
52 | 54 | ||
53 | /* The flags that may vary depending on security flavor: */ | 55 | /* The flags that may vary depending on security flavor: */ |
54 | #define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ | 56 | #define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index b37bd5a1cb82..68b294e83944 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
@@ -29,6 +29,13 @@ | |||
29 | 29 | ||
30 | #define NL80211_GENL_NAME "nl80211" | 30 | #define NL80211_GENL_NAME "nl80211" |
31 | 31 | ||
32 | #define NL80211_MULTICAST_GROUP_CONFIG "config" | ||
33 | #define NL80211_MULTICAST_GROUP_SCAN "scan" | ||
34 | #define NL80211_MULTICAST_GROUP_REG "regulatory" | ||
35 | #define NL80211_MULTICAST_GROUP_MLME "mlme" | ||
36 | #define NL80211_MULTICAST_GROUP_VENDOR "vendor" | ||
37 | #define NL80211_MULTICAST_GROUP_TESTMODE "testmode" | ||
38 | |||
32 | /** | 39 | /** |
33 | * DOC: Station handling | 40 | * DOC: Station handling |
34 | * | 41 | * |
@@ -173,8 +180,8 @@ | |||
173 | * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME. | 180 | * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME. |
174 | * | 181 | * |
175 | * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration; | 182 | * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration; |
176 | * either a dump request on a %NL80211_ATTR_WIPHY or a specific get | 183 | * either a dump request for all interfaces or a specific get with a |
177 | * on an %NL80211_ATTR_IFINDEX is supported. | 184 | * single %NL80211_ATTR_IFINDEX is supported. |
178 | * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires | 185 | * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires |
179 | * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE. | 186 | * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE. |
180 | * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response | 187 | * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response |
@@ -252,7 +259,18 @@ | |||
252 | * %NL80211_ATTR_IFINDEX. | 259 | * %NL80211_ATTR_IFINDEX. |
253 | * | 260 | * |
254 | * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set | 261 | * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set |
255 | * regulatory domain. | 262 | * regulatory domain. If %NL80211_ATTR_WIPHY is specified and the device |
263 | * has a private regulatory domain, it will be returned. Otherwise, the | ||
264 | * global regdomain will be returned. | ||
265 | * A device will have a private regulatory domain if it uses the | ||
266 | * regulatory_hint() API. Even when a private regdomain is used the channel | ||
267 | * information will still be mended according to further hints from | ||
268 | * the regulatory core to help with compliance. A dump version of this API | ||
269 | * is now available which will returns the global regdomain as well as | ||
270 | * all private regdomains of present wiphys (for those that have it). | ||
271 | * If a wiphy is self-managed (%NL80211_ATTR_WIPHY_SELF_MANAGED_REG), then | ||
272 | * its private regdomain is the only valid one for it. The regulatory | ||
273 | * core is not used to help with compliance in this case. | ||
256 | * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command | 274 | * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command |
257 | * after being queried by the kernel. CRDA replies by sending a regulatory | 275 | * after being queried by the kernel. CRDA replies by sending a regulatory |
258 | * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our | 276 | * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our |
@@ -306,7 +324,9 @@ | |||
306 | * if passed, define which channels should be scanned; if not | 324 | * if passed, define which channels should be scanned; if not |
307 | * passed, all channels allowed for the current regulatory domain | 325 | * passed, all channels allowed for the current regulatory domain |
308 | * are used. Extra IEs can also be passed from the userspace by | 326 | * are used. Extra IEs can also be passed from the userspace by |
309 | * using the %NL80211_ATTR_IE attribute. | 327 | * using the %NL80211_ATTR_IE attribute. The first cycle of the |
328 | * scheduled scan can be delayed by %NL80211_ATTR_SCHED_SCAN_DELAY | ||
329 | * is supplied. | ||
310 | * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if | 330 | * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if |
311 | * scheduled scan is not running. The caller may assume that as soon | 331 | * scheduled scan is not running. The caller may assume that as soon |
312 | * as the call returns, it is safe to start a new scheduled scan again. | 332 | * as the call returns, it is safe to start a new scheduled scan again. |
@@ -774,6 +794,10 @@ | |||
774 | * peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel | 794 | * peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel |
775 | * when this command completes. | 795 | * when this command completes. |
776 | * | 796 | * |
797 | * @NL80211_CMD_WIPHY_REG_CHANGE: Similar to %NL80211_CMD_REG_CHANGE, but used | ||
798 | * as an event to indicate changes for devices with wiphy-specific regdom | ||
799 | * management. | ||
800 | * | ||
777 | * @NL80211_CMD_MAX: highest used command number | 801 | * @NL80211_CMD_MAX: highest used command number |
778 | * @__NL80211_CMD_AFTER_LAST: internal use | 802 | * @__NL80211_CMD_AFTER_LAST: internal use |
779 | */ | 803 | */ |
@@ -958,6 +982,8 @@ enum nl80211_commands { | |||
958 | NL80211_CMD_TDLS_CHANNEL_SWITCH, | 982 | NL80211_CMD_TDLS_CHANNEL_SWITCH, |
959 | NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, | 983 | NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, |
960 | 984 | ||
985 | NL80211_CMD_WIPHY_REG_CHANGE, | ||
986 | |||
961 | /* add new commands above here */ | 987 | /* add new commands above here */ |
962 | 988 | ||
963 | /* used to define NL80211_CMD_MAX below */ | 989 | /* used to define NL80211_CMD_MAX below */ |
@@ -1655,6 +1681,9 @@ enum nl80211_commands { | |||
1655 | * @NL80211_ATTR_SOCKET_OWNER: Flag attribute, if set during interface | 1681 | * @NL80211_ATTR_SOCKET_OWNER: Flag attribute, if set during interface |
1656 | * creation then the new interface will be owned by the netlink socket | 1682 | * creation then the new interface will be owned by the netlink socket |
1657 | * that created it and will be destroyed when the socket is closed. | 1683 | * that created it and will be destroyed when the socket is closed. |
1684 | * If set during scheduled scan start then the new scan req will be | ||
1685 | * owned by the netlink socket that created it and the scheduled scan will | ||
1686 | * be stopped when the socket is closed. | ||
1658 | * | 1687 | * |
1659 | * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is | 1688 | * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is |
1660 | * the TDLS link initiator. | 1689 | * the TDLS link initiator. |
@@ -1688,6 +1717,29 @@ enum nl80211_commands { | |||
1688 | * | 1717 | * |
1689 | * @NL80211_ATTR_MAC_MASK: MAC address mask | 1718 | * @NL80211_ATTR_MAC_MASK: MAC address mask |
1690 | * | 1719 | * |
1720 | * @NL80211_ATTR_WIPHY_SELF_MANAGED_REG: flag attribute indicating this device | ||
1721 | * is self-managing its regulatory information and any regulatory domain | ||
1722 | * obtained from it is coming from the device's wiphy and not the global | ||
1723 | * cfg80211 regdomain. | ||
1724 | * | ||
1725 | * @NL80211_ATTR_EXT_FEATURES: extended feature flags contained in a byte | ||
1726 | * array. The feature flags are identified by their bit index (see &enum | ||
1727 | * nl80211_ext_feature_index). The bit index is ordered starting at the | ||
1728 | * least-significant bit of the first byte in the array, ie. bit index 0 | ||
1729 | * is located at bit 0 of byte 0. bit index 25 would be located at bit 1 | ||
1730 | * of byte 3 (u8 array). | ||
1731 | * | ||
1732 | * @NL80211_ATTR_SURVEY_RADIO_STATS: Request overall radio statistics to be | ||
1733 | * returned along with other survey data. If set, @NL80211_CMD_GET_SURVEY | ||
1734 | * may return a survey entry without a channel indicating global radio | ||
1735 | * statistics (only some values are valid and make sense.) | ||
1736 | * For devices that don't return such an entry even then, the information | ||
1737 | * should be contained in the result as the sum of the respective counters | ||
1738 | * over all channels. | ||
1739 | * | ||
1740 | * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before a scheduled scan (or a | ||
1741 | * WoWLAN net-detect scan) is started, u32 in seconds. | ||
1742 | * | ||
1691 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 1743 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
1692 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1744 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
1693 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1745 | * @__NL80211_ATTR_AFTER_LAST: internal use |
@@ -2045,6 +2097,16 @@ enum nl80211_attrs { | |||
2045 | 2097 | ||
2046 | NL80211_ATTR_MAC_MASK, | 2098 | NL80211_ATTR_MAC_MASK, |
2047 | 2099 | ||
2100 | NL80211_ATTR_WIPHY_SELF_MANAGED_REG, | ||
2101 | |||
2102 | NL80211_ATTR_EXT_FEATURES, | ||
2103 | |||
2104 | NL80211_ATTR_SURVEY_RADIO_STATS, | ||
2105 | |||
2106 | NL80211_ATTR_NETNS_FD, | ||
2107 | |||
2108 | NL80211_ATTR_SCHED_SCAN_DELAY, | ||
2109 | |||
2048 | /* add attributes here, update the policy in nl80211.c */ | 2110 | /* add attributes here, update the policy in nl80211.c */ |
2049 | 2111 | ||
2050 | __NL80211_ATTR_AFTER_LAST, | 2112 | __NL80211_ATTR_AFTER_LAST, |
@@ -2085,7 +2147,7 @@ enum nl80211_attrs { | |||
2085 | 2147 | ||
2086 | #define NL80211_MAX_SUPP_RATES 32 | 2148 | #define NL80211_MAX_SUPP_RATES 32 |
2087 | #define NL80211_MAX_SUPP_HT_RATES 77 | 2149 | #define NL80211_MAX_SUPP_HT_RATES 77 |
2088 | #define NL80211_MAX_SUPP_REG_RULES 32 | 2150 | #define NL80211_MAX_SUPP_REG_RULES 64 |
2089 | #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0 | 2151 | #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0 |
2090 | #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 | 2152 | #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 |
2091 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 | 2153 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 |
@@ -2225,8 +2287,15 @@ struct nl80211_sta_flag_update { | |||
2225 | * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) | 2287 | * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) |
2226 | * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) | 2288 | * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) |
2227 | * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate | 2289 | * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate |
2228 | * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate | 2290 | * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: unused - 80+80 is treated the |
2291 | * same as 160 for purposes of the bitrates | ||
2229 | * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate | 2292 | * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate |
2293 | * @NL80211_RATE_INFO_10_MHZ_WIDTH: 10 MHz width - note that this is | ||
2294 | * a legacy rate and will be reported as the actual bitrate, i.e. | ||
2295 | * half the base (20 MHz) rate | ||
2296 | * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is | ||
2297 | * a legacy rate and will be reported as the actual bitrate, i.e. | ||
2298 | * a quarter of the base (20 MHz) rate | ||
2230 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use | 2299 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use |
2231 | */ | 2300 | */ |
2232 | enum nl80211_rate_info { | 2301 | enum nl80211_rate_info { |
@@ -2241,6 +2310,8 @@ enum nl80211_rate_info { | |||
2241 | NL80211_RATE_INFO_80_MHZ_WIDTH, | 2310 | NL80211_RATE_INFO_80_MHZ_WIDTH, |
2242 | NL80211_RATE_INFO_80P80_MHZ_WIDTH, | 2311 | NL80211_RATE_INFO_80P80_MHZ_WIDTH, |
2243 | NL80211_RATE_INFO_160_MHZ_WIDTH, | 2312 | NL80211_RATE_INFO_160_MHZ_WIDTH, |
2313 | NL80211_RATE_INFO_10_MHZ_WIDTH, | ||
2314 | NL80211_RATE_INFO_5_MHZ_WIDTH, | ||
2244 | 2315 | ||
2245 | /* keep last */ | 2316 | /* keep last */ |
2246 | __NL80211_RATE_INFO_AFTER_LAST, | 2317 | __NL80211_RATE_INFO_AFTER_LAST, |
@@ -2285,18 +2356,24 @@ enum nl80211_sta_bss_param { | |||
2285 | * | 2356 | * |
2286 | * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved | 2357 | * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved |
2287 | * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) | 2358 | * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) |
2288 | * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) | 2359 | * @NL80211_STA_INFO_RX_BYTES: total received bytes (MPDU length) |
2289 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) | 2360 | * (u32, from this station) |
2290 | * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station) | 2361 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (MPDU length) |
2291 | * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station) | 2362 | * (u32, to this station) |
2363 | * @NL80211_STA_INFO_RX_BYTES64: total received bytes (MPDU length) | ||
2364 | * (u64, from this station) | ||
2365 | * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (MPDU length) | ||
2366 | * (u64, to this station) | ||
2292 | * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) | 2367 | * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) |
2293 | * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute | 2368 | * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute |
2294 | * containing info as possible, see &enum nl80211_rate_info | 2369 | * containing info as possible, see &enum nl80211_rate_info |
2295 | * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) | 2370 | * @NL80211_STA_INFO_RX_PACKETS: total received packet (MSDUs and MMPDUs) |
2296 | * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this | 2371 | * (u32, from this station) |
2297 | * station) | 2372 | * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (MSDUs and MMPDUs) |
2298 | * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station) | 2373 | * (u32, to this station) |
2299 | * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station) | 2374 | * @NL80211_STA_INFO_TX_RETRIES: total retries (MPDUs) (u32, to this station) |
2375 | * @NL80211_STA_INFO_TX_FAILED: total failed packets (MPDUs) | ||
2376 | * (u32, to this station) | ||
2300 | * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm) | 2377 | * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm) |
2301 | * @NL80211_STA_INFO_LLID: the station's mesh LLID | 2378 | * @NL80211_STA_INFO_LLID: the station's mesh LLID |
2302 | * @NL80211_STA_INFO_PLID: the station's mesh PLID | 2379 | * @NL80211_STA_INFO_PLID: the station's mesh PLID |
@@ -2320,6 +2397,16 @@ enum nl80211_sta_bss_param { | |||
2320 | * Same format as NL80211_STA_INFO_CHAIN_SIGNAL. | 2397 | * Same format as NL80211_STA_INFO_CHAIN_SIGNAL. |
2321 | * @NL80211_STA_EXPECTED_THROUGHPUT: expected throughput considering also the | 2398 | * @NL80211_STA_EXPECTED_THROUGHPUT: expected throughput considering also the |
2322 | * 802.11 header (u32, kbps) | 2399 | * 802.11 header (u32, kbps) |
2400 | * @NL80211_STA_INFO_RX_DROP_MISC: RX packets dropped for unspecified reasons | ||
2401 | * (u64) | ||
2402 | * @NL80211_STA_INFO_BEACON_RX: number of beacons received from this peer (u64) | ||
2403 | * @NL80211_STA_INFO_BEACON_SIGNAL_AVG: signal strength average | ||
2404 | * for beacons only (u8, dBm) | ||
2405 | * @NL80211_STA_INFO_TID_STATS: per-TID statistics (see &enum nl80211_tid_stats) | ||
2406 | * This is a nested attribute where each the inner attribute number is the | ||
2407 | * TID+1 and the special TID 16 (i.e. value 17) is used for non-QoS frames; | ||
2408 | * each one of those is again nested with &enum nl80211_tid_stats | ||
2409 | * attributes carrying the actual values. | ||
2323 | * @__NL80211_STA_INFO_AFTER_LAST: internal | 2410 | * @__NL80211_STA_INFO_AFTER_LAST: internal |
2324 | * @NL80211_STA_INFO_MAX: highest possible station info attribute | 2411 | * @NL80211_STA_INFO_MAX: highest possible station info attribute |
2325 | */ | 2412 | */ |
@@ -2352,6 +2439,10 @@ enum nl80211_sta_info { | |||
2352 | NL80211_STA_INFO_CHAIN_SIGNAL, | 2439 | NL80211_STA_INFO_CHAIN_SIGNAL, |
2353 | NL80211_STA_INFO_CHAIN_SIGNAL_AVG, | 2440 | NL80211_STA_INFO_CHAIN_SIGNAL_AVG, |
2354 | NL80211_STA_INFO_EXPECTED_THROUGHPUT, | 2441 | NL80211_STA_INFO_EXPECTED_THROUGHPUT, |
2442 | NL80211_STA_INFO_RX_DROP_MISC, | ||
2443 | NL80211_STA_INFO_BEACON_RX, | ||
2444 | NL80211_STA_INFO_BEACON_SIGNAL_AVG, | ||
2445 | NL80211_STA_INFO_TID_STATS, | ||
2355 | 2446 | ||
2356 | /* keep last */ | 2447 | /* keep last */ |
2357 | __NL80211_STA_INFO_AFTER_LAST, | 2448 | __NL80211_STA_INFO_AFTER_LAST, |
@@ -2359,6 +2450,31 @@ enum nl80211_sta_info { | |||
2359 | }; | 2450 | }; |
2360 | 2451 | ||
2361 | /** | 2452 | /** |
2453 | * enum nl80211_tid_stats - per TID statistics attributes | ||
2454 | * @__NL80211_TID_STATS_INVALID: attribute number 0 is reserved | ||
2455 | * @NL80211_TID_STATS_RX_MSDU: number of MSDUs received (u64) | ||
2456 | * @NL80211_TID_STATS_TX_MSDU: number of MSDUs transmitted (or | ||
2457 | * attempted to transmit; u64) | ||
2458 | * @NL80211_TID_STATS_TX_MSDU_RETRIES: number of retries for | ||
2459 | * transmitted MSDUs (not counting the first attempt; u64) | ||
2460 | * @NL80211_TID_STATS_TX_MSDU_FAILED: number of failed transmitted | ||
2461 | * MSDUs (u64) | ||
2462 | * @NUM_NL80211_TID_STATS: number of attributes here | ||
2463 | * @NL80211_TID_STATS_MAX: highest numbered attribute here | ||
2464 | */ | ||
2465 | enum nl80211_tid_stats { | ||
2466 | __NL80211_TID_STATS_INVALID, | ||
2467 | NL80211_TID_STATS_RX_MSDU, | ||
2468 | NL80211_TID_STATS_TX_MSDU, | ||
2469 | NL80211_TID_STATS_TX_MSDU_RETRIES, | ||
2470 | NL80211_TID_STATS_TX_MSDU_FAILED, | ||
2471 | |||
2472 | /* keep last */ | ||
2473 | NUM_NL80211_TID_STATS, | ||
2474 | NL80211_TID_STATS_MAX = NUM_NL80211_TID_STATS - 1 | ||
2475 | }; | ||
2476 | |||
2477 | /** | ||
2362 | * enum nl80211_mpath_flags - nl80211 mesh path flags | 2478 | * enum nl80211_mpath_flags - nl80211 mesh path flags |
2363 | * | 2479 | * |
2364 | * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active | 2480 | * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active |
@@ -2772,16 +2888,18 @@ enum nl80211_user_reg_hint_type { | |||
2772 | * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel | 2888 | * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel |
2773 | * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) | 2889 | * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) |
2774 | * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used | 2890 | * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used |
2775 | * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio | 2891 | * @NL80211_SURVEY_INFO_TIME: amount of time (in ms) that the radio |
2776 | * spent on this channel | 2892 | * was turned on (on channel or globally) |
2777 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary | 2893 | * @NL80211_SURVEY_INFO_TIME_BUSY: amount of the time the primary |
2778 | * channel was sensed busy (either due to activity or energy detect) | 2894 | * channel was sensed busy (either due to activity or energy detect) |
2779 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension | 2895 | * @NL80211_SURVEY_INFO_TIME_EXT_BUSY: amount of time the extension |
2780 | * channel was sensed busy | 2896 | * channel was sensed busy |
2781 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent | 2897 | * @NL80211_SURVEY_INFO_TIME_RX: amount of time the radio spent |
2782 | * receiving data | 2898 | * receiving data (on channel or globally) |
2783 | * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent | 2899 | * @NL80211_SURVEY_INFO_TIME_TX: amount of time the radio spent |
2784 | * transmitting data | 2900 | * transmitting data (on channel or globally) |
2901 | * @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan | ||
2902 | * (on this channel or globally) | ||
2785 | * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number | 2903 | * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number |
2786 | * currently defined | 2904 | * currently defined |
2787 | * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use | 2905 | * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use |
@@ -2791,17 +2909,25 @@ enum nl80211_survey_info { | |||
2791 | NL80211_SURVEY_INFO_FREQUENCY, | 2909 | NL80211_SURVEY_INFO_FREQUENCY, |
2792 | NL80211_SURVEY_INFO_NOISE, | 2910 | NL80211_SURVEY_INFO_NOISE, |
2793 | NL80211_SURVEY_INFO_IN_USE, | 2911 | NL80211_SURVEY_INFO_IN_USE, |
2794 | NL80211_SURVEY_INFO_CHANNEL_TIME, | 2912 | NL80211_SURVEY_INFO_TIME, |
2795 | NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY, | 2913 | NL80211_SURVEY_INFO_TIME_BUSY, |
2796 | NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY, | 2914 | NL80211_SURVEY_INFO_TIME_EXT_BUSY, |
2797 | NL80211_SURVEY_INFO_CHANNEL_TIME_RX, | 2915 | NL80211_SURVEY_INFO_TIME_RX, |
2798 | NL80211_SURVEY_INFO_CHANNEL_TIME_TX, | 2916 | NL80211_SURVEY_INFO_TIME_TX, |
2917 | NL80211_SURVEY_INFO_TIME_SCAN, | ||
2799 | 2918 | ||
2800 | /* keep last */ | 2919 | /* keep last */ |
2801 | __NL80211_SURVEY_INFO_AFTER_LAST, | 2920 | __NL80211_SURVEY_INFO_AFTER_LAST, |
2802 | NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1 | 2921 | NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1 |
2803 | }; | 2922 | }; |
2804 | 2923 | ||
2924 | /* keep old names for compatibility */ | ||
2925 | #define NL80211_SURVEY_INFO_CHANNEL_TIME NL80211_SURVEY_INFO_TIME | ||
2926 | #define NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY NL80211_SURVEY_INFO_TIME_BUSY | ||
2927 | #define NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY NL80211_SURVEY_INFO_TIME_EXT_BUSY | ||
2928 | #define NL80211_SURVEY_INFO_CHANNEL_TIME_RX NL80211_SURVEY_INFO_TIME_RX | ||
2929 | #define NL80211_SURVEY_INFO_CHANNEL_TIME_TX NL80211_SURVEY_INFO_TIME_TX | ||
2930 | |||
2805 | /** | 2931 | /** |
2806 | * enum nl80211_mntr_flags - monitor configuration flags | 2932 | * enum nl80211_mntr_flags - monitor configuration flags |
2807 | * | 2933 | * |
@@ -3238,6 +3364,9 @@ enum nl80211_bss { | |||
3238 | /** | 3364 | /** |
3239 | * enum nl80211_bss_status - BSS "status" | 3365 | * enum nl80211_bss_status - BSS "status" |
3240 | * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS. | 3366 | * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS. |
3367 | * Note that this is no longer used since cfg80211 no longer | ||
3368 | * keeps track of whether or not authentication was done with | ||
3369 | * a given BSS. | ||
3241 | * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS. | 3370 | * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS. |
3242 | * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS. | 3371 | * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS. |
3243 | * | 3372 | * |
@@ -3621,9 +3750,12 @@ struct nl80211_pattern_support { | |||
3621 | * @NL80211_WOWLAN_TRIG_NET_DETECT: wake up when a configured network | 3750 | * @NL80211_WOWLAN_TRIG_NET_DETECT: wake up when a configured network |
3622 | * is detected. This is a nested attribute that contains the | 3751 | * is detected. This is a nested attribute that contains the |
3623 | * same attributes used with @NL80211_CMD_START_SCHED_SCAN. It | 3752 | * same attributes used with @NL80211_CMD_START_SCHED_SCAN. It |
3624 | * specifies how the scan is performed (e.g. the interval and the | 3753 | * specifies how the scan is performed (e.g. the interval, the |
3625 | * channels to scan) as well as the scan results that will | 3754 | * channels to scan and the initial delay) as well as the scan |
3626 | * trigger a wake (i.e. the matchsets). | 3755 | * results that will trigger a wake (i.e. the matchsets). This |
3756 | * attribute is also sent in a response to | ||
3757 | * @NL80211_CMD_GET_WIPHY, indicating the number of match sets | ||
3758 | * supported by the driver (u32). | ||
3627 | * @NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS: nested attribute | 3759 | * @NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS: nested attribute |
3628 | * containing an array with information about what triggered the | 3760 | * containing an array with information about what triggered the |
3629 | * wake up. If no elements are present in the array, it means | 3761 | * wake up. If no elements are present in the array, it means |
@@ -4194,6 +4326,19 @@ enum nl80211_feature_flags { | |||
4194 | }; | 4326 | }; |
4195 | 4327 | ||
4196 | /** | 4328 | /** |
4329 | * enum nl80211_ext_feature_index - bit index of extended features. | ||
4330 | * | ||
4331 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | ||
4332 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | ||
4333 | */ | ||
4334 | enum nl80211_ext_feature_index { | ||
4335 | |||
4336 | /* add new features before the definition below */ | ||
4337 | NUM_NL80211_EXT_FEATURES, | ||
4338 | MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1 | ||
4339 | }; | ||
4340 | |||
4341 | /** | ||
4197 | * enum nl80211_probe_resp_offload_support_attr - optional supported | 4342 | * enum nl80211_probe_resp_offload_support_attr - optional supported |
4198 | * protocols for probe-response offloading by the driver/FW. | 4343 | * protocols for probe-response offloading by the driver/FW. |
4199 | * To be used with the %NL80211_ATTR_PROBE_RESP_OFFLOAD attribute. | 4344 | * To be used with the %NL80211_ATTR_PROBE_RESP_OFFLOAD attribute. |
diff --git a/include/uapi/linux/nvme.h b/include/uapi/linux/nvme.h index 26386cf3db44..aef9a81b2d75 100644 --- a/include/uapi/linux/nvme.h +++ b/include/uapi/linux/nvme.h | |||
@@ -115,7 +115,13 @@ struct nvme_id_ns { | |||
115 | __le16 nawun; | 115 | __le16 nawun; |
116 | __le16 nawupf; | 116 | __le16 nawupf; |
117 | __le16 nacwu; | 117 | __le16 nacwu; |
118 | __u8 rsvd40[80]; | 118 | __le16 nabsn; |
119 | __le16 nabo; | ||
120 | __le16 nabspf; | ||
121 | __u16 rsvd46; | ||
122 | __le64 nvmcap[2]; | ||
123 | __u8 rsvd64[40]; | ||
124 | __u8 nguid[16]; | ||
119 | __u8 eui64[8]; | 125 | __u8 eui64[8]; |
120 | struct nvme_lbaf lbaf[16]; | 126 | struct nvme_lbaf lbaf[16]; |
121 | __u8 rsvd192[192]; | 127 | __u8 rsvd192[192]; |
@@ -124,10 +130,22 @@ struct nvme_id_ns { | |||
124 | 130 | ||
125 | enum { | 131 | enum { |
126 | NVME_NS_FEAT_THIN = 1 << 0, | 132 | NVME_NS_FEAT_THIN = 1 << 0, |
133 | NVME_NS_FLBAS_LBA_MASK = 0xf, | ||
134 | NVME_NS_FLBAS_META_EXT = 0x10, | ||
127 | NVME_LBAF_RP_BEST = 0, | 135 | NVME_LBAF_RP_BEST = 0, |
128 | NVME_LBAF_RP_BETTER = 1, | 136 | NVME_LBAF_RP_BETTER = 1, |
129 | NVME_LBAF_RP_GOOD = 2, | 137 | NVME_LBAF_RP_GOOD = 2, |
130 | NVME_LBAF_RP_DEGRADED = 3, | 138 | NVME_LBAF_RP_DEGRADED = 3, |
139 | NVME_NS_DPC_PI_LAST = 1 << 4, | ||
140 | NVME_NS_DPC_PI_FIRST = 1 << 3, | ||
141 | NVME_NS_DPC_PI_TYPE3 = 1 << 2, | ||
142 | NVME_NS_DPC_PI_TYPE2 = 1 << 1, | ||
143 | NVME_NS_DPC_PI_TYPE1 = 1 << 0, | ||
144 | NVME_NS_DPS_PI_FIRST = 1 << 3, | ||
145 | NVME_NS_DPS_PI_MASK = 0x7, | ||
146 | NVME_NS_DPS_PI_TYPE1 = 1, | ||
147 | NVME_NS_DPS_PI_TYPE2 = 2, | ||
148 | NVME_NS_DPS_PI_TYPE3 = 3, | ||
131 | }; | 149 | }; |
132 | 150 | ||
133 | struct nvme_smart_log { | 151 | struct nvme_smart_log { |
@@ -261,6 +279,10 @@ enum { | |||
261 | NVME_RW_DSM_LATENCY_LOW = 3 << 4, | 279 | NVME_RW_DSM_LATENCY_LOW = 3 << 4, |
262 | NVME_RW_DSM_SEQ_REQ = 1 << 6, | 280 | NVME_RW_DSM_SEQ_REQ = 1 << 6, |
263 | NVME_RW_DSM_COMPRESSED = 1 << 7, | 281 | NVME_RW_DSM_COMPRESSED = 1 << 7, |
282 | NVME_RW_PRINFO_PRCHK_REF = 1 << 10, | ||
283 | NVME_RW_PRINFO_PRCHK_APP = 1 << 11, | ||
284 | NVME_RW_PRINFO_PRCHK_GUARD = 1 << 12, | ||
285 | NVME_RW_PRINFO_PRACT = 1 << 13, | ||
264 | }; | 286 | }; |
265 | 287 | ||
266 | struct nvme_dsm_cmd { | 288 | struct nvme_dsm_cmd { |
@@ -549,6 +571,8 @@ struct nvme_passthru_cmd { | |||
549 | __u32 result; | 571 | __u32 result; |
550 | }; | 572 | }; |
551 | 573 | ||
574 | #define NVME_VS(major, minor) (((major) << 16) | ((minor) << 8)) | ||
575 | |||
552 | #define nvme_admin_cmd nvme_passthru_cmd | 576 | #define nvme_admin_cmd nvme_passthru_cmd |
553 | 577 | ||
554 | #define NVME_IOCTL_ID _IO('N', 0x40) | 578 | #define NVME_IOCTL_ID _IO('N', 0x40) |
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h index f714e8633352..bbd49a0c46c7 100644 --- a/include/uapi/linux/openvswitch.h +++ b/include/uapi/linux/openvswitch.h | |||
@@ -252,11 +252,21 @@ enum ovs_vport_attr { | |||
252 | 252 | ||
253 | #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) | 253 | #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) |
254 | 254 | ||
255 | enum { | ||
256 | OVS_VXLAN_EXT_UNSPEC, | ||
257 | OVS_VXLAN_EXT_GBP, /* Flag or __u32 */ | ||
258 | __OVS_VXLAN_EXT_MAX, | ||
259 | }; | ||
260 | |||
261 | #define OVS_VXLAN_EXT_MAX (__OVS_VXLAN_EXT_MAX - 1) | ||
262 | |||
263 | |||
255 | /* OVS_VPORT_ATTR_OPTIONS attributes for tunnels. | 264 | /* OVS_VPORT_ATTR_OPTIONS attributes for tunnels. |
256 | */ | 265 | */ |
257 | enum { | 266 | enum { |
258 | OVS_TUNNEL_ATTR_UNSPEC, | 267 | OVS_TUNNEL_ATTR_UNSPEC, |
259 | OVS_TUNNEL_ATTR_DST_PORT, /* 16-bit UDP port, used by L4 tunnels. */ | 268 | OVS_TUNNEL_ATTR_DST_PORT, /* 16-bit UDP port, used by L4 tunnels. */ |
269 | OVS_TUNNEL_ATTR_EXTENSION, | ||
260 | __OVS_TUNNEL_ATTR_MAX | 270 | __OVS_TUNNEL_ATTR_MAX |
261 | }; | 271 | }; |
262 | 272 | ||
@@ -328,6 +338,7 @@ enum ovs_tunnel_key_attr { | |||
328 | OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */ | 338 | OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */ |
329 | OVS_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port. */ | 339 | OVS_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port. */ |
330 | OVS_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port. */ | 340 | OVS_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port. */ |
341 | OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS, /* Nested OVS_VXLAN_EXT_* */ | ||
331 | __OVS_TUNNEL_KEY_ATTR_MAX | 342 | __OVS_TUNNEL_KEY_ATTR_MAX |
332 | }; | 343 | }; |
333 | 344 | ||
@@ -448,6 +459,14 @@ struct ovs_key_nd { | |||
448 | * a wildcarded match. Omitting attribute is treated as wildcarding all | 459 | * a wildcarded match. Omitting attribute is treated as wildcarding all |
449 | * corresponding fields. Optional for all requests. If not present, | 460 | * corresponding fields. Optional for all requests. If not present, |
450 | * all flow key bits are exact match bits. | 461 | * all flow key bits are exact match bits. |
462 | * @OVS_FLOW_ATTR_UFID: A value between 1-16 octets specifying a unique | ||
463 | * identifier for the flow. Causes the flow to be indexed by this value rather | ||
464 | * than the value of the %OVS_FLOW_ATTR_KEY attribute. Optional for all | ||
465 | * requests. Present in notifications if the flow was created with this | ||
466 | * attribute. | ||
467 | * @OVS_FLOW_ATTR_UFID_FLAGS: A 32-bit value of OR'd %OVS_UFID_F_* | ||
468 | * flags that provide alternative semantics for flow installation and | ||
469 | * retrieval. Optional for all requests. | ||
451 | * | 470 | * |
452 | * These attributes follow the &struct ovs_header within the Generic Netlink | 471 | * These attributes follow the &struct ovs_header within the Generic Netlink |
453 | * payload for %OVS_FLOW_* commands. | 472 | * payload for %OVS_FLOW_* commands. |
@@ -463,12 +482,24 @@ enum ovs_flow_attr { | |||
463 | OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */ | 482 | OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */ |
464 | OVS_FLOW_ATTR_PROBE, /* Flow operation is a feature probe, error | 483 | OVS_FLOW_ATTR_PROBE, /* Flow operation is a feature probe, error |
465 | * logging should be suppressed. */ | 484 | * logging should be suppressed. */ |
485 | OVS_FLOW_ATTR_UFID, /* Variable length unique flow identifier. */ | ||
486 | OVS_FLOW_ATTR_UFID_FLAGS,/* u32 of OVS_UFID_F_*. */ | ||
466 | __OVS_FLOW_ATTR_MAX | 487 | __OVS_FLOW_ATTR_MAX |
467 | }; | 488 | }; |
468 | 489 | ||
469 | #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1) | 490 | #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1) |
470 | 491 | ||
471 | /** | 492 | /** |
493 | * Omit attributes for notifications. | ||
494 | * | ||
495 | * If a datapath request contains an %OVS_UFID_F_OMIT_* flag, then the datapath | ||
496 | * may omit the corresponding %OVS_FLOW_ATTR_* from the response. | ||
497 | */ | ||
498 | #define OVS_UFID_F_OMIT_KEY (1 << 0) | ||
499 | #define OVS_UFID_F_OMIT_MASK (1 << 1) | ||
500 | #define OVS_UFID_F_OMIT_ACTIONS (1 << 2) | ||
501 | |||
502 | /** | ||
472 | * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action. | 503 | * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action. |
473 | * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with | 504 | * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with |
474 | * @OVS_ACTION_ATTR_SAMPLE. A value of 0 samples no packets, a value of | 505 | * @OVS_ACTION_ATTR_SAMPLE. A value of 0 samples no packets, a value of |
@@ -568,6 +599,12 @@ struct ovs_action_hash { | |||
568 | * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header. The | 599 | * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header. The |
569 | * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its | 600 | * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its |
570 | * value. | 601 | * value. |
602 | * @OVS_ACTION_ATTR_SET_MASKED: Replaces the contents of an existing header. A | ||
603 | * nested %OVS_KEY_ATTR_* attribute specifies a header to modify, its value, | ||
604 | * and a mask. For every bit set in the mask, the corresponding bit value | ||
605 | * is copied from the value to the packet header field, rest of the bits are | ||
606 | * left unchanged. The non-masked value bits must be passed in as zeroes. | ||
607 | * Masking is not supported for the %OVS_KEY_ATTR_TUNNEL attribute. | ||
571 | * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q header onto the | 608 | * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q header onto the |
572 | * packet. | 609 | * packet. |
573 | * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet. | 610 | * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet. |
@@ -586,6 +623,9 @@ struct ovs_action_hash { | |||
586 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all | 623 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all |
587 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment | 624 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment |
588 | * type may not be changed. | 625 | * type may not be changed. |
626 | * | ||
627 | * @OVS_ACTION_ATTR_SET_TO_MASKED: Kernel internal masked set action translated | ||
628 | * from the @OVS_ACTION_ATTR_SET. | ||
589 | */ | 629 | */ |
590 | 630 | ||
591 | enum ovs_action_attr { | 631 | enum ovs_action_attr { |
@@ -600,8 +640,19 @@ enum ovs_action_attr { | |||
600 | OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */ | 640 | OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */ |
601 | OVS_ACTION_ATTR_PUSH_MPLS, /* struct ovs_action_push_mpls. */ | 641 | OVS_ACTION_ATTR_PUSH_MPLS, /* struct ovs_action_push_mpls. */ |
602 | OVS_ACTION_ATTR_POP_MPLS, /* __be16 ethertype. */ | 642 | OVS_ACTION_ATTR_POP_MPLS, /* __be16 ethertype. */ |
643 | OVS_ACTION_ATTR_SET_MASKED, /* One nested OVS_KEY_ATTR_* including | ||
644 | * data immediately followed by a mask. | ||
645 | * The data must be zero for the unmasked | ||
646 | * bits. */ | ||
603 | 647 | ||
604 | __OVS_ACTION_ATTR_MAX | 648 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted |
649 | * from userspace. */ | ||
650 | |||
651 | #ifdef __KERNEL__ | ||
652 | OVS_ACTION_ATTR_SET_TO_MASKED, /* Kernel module internal masked | ||
653 | * set action converted from | ||
654 | * OVS_ACTION_ATTR_SET. */ | ||
655 | #endif | ||
605 | }; | 656 | }; |
606 | 657 | ||
607 | #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) | 658 | #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) |
diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h index 4a1d0cc38ff2..efe3443572ba 100644 --- a/include/uapi/linux/pci_regs.h +++ b/include/uapi/linux/pci_regs.h | |||
@@ -451,6 +451,10 @@ | |||
451 | #define PCI_EXP_DEVCTL_AUX_PME 0x0400 /* Auxiliary Power PM Enable */ | 451 | #define PCI_EXP_DEVCTL_AUX_PME 0x0400 /* Auxiliary Power PM Enable */ |
452 | #define PCI_EXP_DEVCTL_NOSNOOP_EN 0x0800 /* Enable No Snoop */ | 452 | #define PCI_EXP_DEVCTL_NOSNOOP_EN 0x0800 /* Enable No Snoop */ |
453 | #define PCI_EXP_DEVCTL_READRQ 0x7000 /* Max_Read_Request_Size */ | 453 | #define PCI_EXP_DEVCTL_READRQ 0x7000 /* Max_Read_Request_Size */ |
454 | #define PCI_EXP_DEVCTL_READRQ_128B 0x0000 /* 128 Bytes */ | ||
455 | #define PCI_EXP_DEVCTL_READRQ_256B 0x1000 /* 256 Bytes */ | ||
456 | #define PCI_EXP_DEVCTL_READRQ_512B 0x2000 /* 512 Bytes */ | ||
457 | #define PCI_EXP_DEVCTL_READRQ_1024B 0x3000 /* 1024 Bytes */ | ||
454 | #define PCI_EXP_DEVCTL_BCR_FLR 0x8000 /* Bridge Configuration Retry / FLR */ | 458 | #define PCI_EXP_DEVCTL_BCR_FLR 0x8000 /* Bridge Configuration Retry / FLR */ |
455 | #define PCI_EXP_DEVSTA 10 /* Device Status */ | 459 | #define PCI_EXP_DEVSTA 10 /* Device Status */ |
456 | #define PCI_EXP_DEVSTA_CED 0x0001 /* Correctable Error Detected */ | 460 | #define PCI_EXP_DEVSTA_CED 0x0001 /* Correctable Error Detected */ |
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h index d62316baae94..534b84710745 100644 --- a/include/uapi/linux/pkt_sched.h +++ b/include/uapi/linux/pkt_sched.h | |||
@@ -774,6 +774,8 @@ enum { | |||
774 | 774 | ||
775 | TCA_FQ_FLOW_REFILL_DELAY, /* flow credit refill delay in usec */ | 775 | TCA_FQ_FLOW_REFILL_DELAY, /* flow credit refill delay in usec */ |
776 | 776 | ||
777 | TCA_FQ_ORPHAN_MASK, /* mask applied to orphaned skb hashes */ | ||
778 | |||
777 | __TCA_FQ_MAX | 779 | __TCA_FQ_MAX |
778 | }; | 780 | }; |
779 | 781 | ||
diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h index 89f63503f903..31891d9535e2 100644 --- a/include/uapi/linux/prctl.h +++ b/include/uapi/linux/prctl.h | |||
@@ -185,4 +185,9 @@ struct prctl_mm_map { | |||
185 | #define PR_MPX_ENABLE_MANAGEMENT 43 | 185 | #define PR_MPX_ENABLE_MANAGEMENT 43 |
186 | #define PR_MPX_DISABLE_MANAGEMENT 44 | 186 | #define PR_MPX_DISABLE_MANAGEMENT 44 |
187 | 187 | ||
188 | #define PR_SET_FP_MODE 45 | ||
189 | #define PR_GET_FP_MODE 46 | ||
190 | # define PR_FP_MODE_FR (1 << 0) /* 64b FP registers */ | ||
191 | # define PR_FP_MODE_FRE (1 << 1) /* 32b compatibility */ | ||
192 | |||
188 | #endif /* _LINUX_PRCTL_H */ | 193 | #endif /* _LINUX_PRCTL_H */ |
diff --git a/include/uapi/linux/quota.h b/include/uapi/linux/quota.h index 3b6cfbeb086d..1f49b8341c99 100644 --- a/include/uapi/linux/quota.h +++ b/include/uapi/linux/quota.h | |||
@@ -126,10 +126,22 @@ struct if_dqblk { | |||
126 | #define IIF_FLAGS 4 | 126 | #define IIF_FLAGS 4 |
127 | #define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS) | 127 | #define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS) |
128 | 128 | ||
129 | enum { | ||
130 | DQF_ROOT_SQUASH_B = 0, | ||
131 | DQF_SYS_FILE_B = 16, | ||
132 | /* Kernel internal flags invisible to userspace */ | ||
133 | DQF_PRIVATE | ||
134 | }; | ||
135 | |||
136 | /* Root squash enabled (for v1 quota format) */ | ||
137 | #define DQF_ROOT_SQUASH (1 << DQF_ROOT_SQUASH_B) | ||
138 | /* Quota stored in a system file */ | ||
139 | #define DQF_SYS_FILE (1 << DQF_SYS_FILE_B) | ||
140 | |||
129 | struct if_dqinfo { | 141 | struct if_dqinfo { |
130 | __u64 dqi_bgrace; | 142 | __u64 dqi_bgrace; |
131 | __u64 dqi_igrace; | 143 | __u64 dqi_igrace; |
132 | __u32 dqi_flags; | 144 | __u32 dqi_flags; /* DFQ_* */ |
133 | __u32 dqi_valid; | 145 | __u32 dqi_valid; |
134 | }; | 146 | }; |
135 | 147 | ||
diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h index 9c9b8b4480cd..5cc5d66bf519 100644 --- a/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h | |||
@@ -132,6 +132,11 @@ enum { | |||
132 | RTM_GETMDB = 86, | 132 | RTM_GETMDB = 86, |
133 | #define RTM_GETMDB RTM_GETMDB | 133 | #define RTM_GETMDB RTM_GETMDB |
134 | 134 | ||
135 | RTM_NEWNSID = 88, | ||
136 | #define RTM_NEWNSID RTM_NEWNSID | ||
137 | RTM_GETNSID = 90, | ||
138 | #define RTM_GETNSID RTM_GETNSID | ||
139 | |||
135 | __RTM_MAX, | 140 | __RTM_MAX, |
136 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) | 141 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) |
137 | }; | 142 | }; |
@@ -389,6 +394,8 @@ enum { | |||
389 | #define RTAX_INITRWND RTAX_INITRWND | 394 | #define RTAX_INITRWND RTAX_INITRWND |
390 | RTAX_QUICKACK, | 395 | RTAX_QUICKACK, |
391 | #define RTAX_QUICKACK RTAX_QUICKACK | 396 | #define RTAX_QUICKACK RTAX_QUICKACK |
397 | RTAX_CC_ALGO, | ||
398 | #define RTAX_CC_ALGO RTAX_CC_ALGO | ||
392 | __RTAX_MAX | 399 | __RTAX_MAX |
393 | }; | 400 | }; |
394 | 401 | ||
@@ -634,6 +641,7 @@ struct tcamsg { | |||
634 | /* New extended info filters for IFLA_EXT_MASK */ | 641 | /* New extended info filters for IFLA_EXT_MASK */ |
635 | #define RTEXT_FILTER_VF (1 << 0) | 642 | #define RTEXT_FILTER_VF (1 << 0) |
636 | #define RTEXT_FILTER_BRVLAN (1 << 1) | 643 | #define RTEXT_FILTER_BRVLAN (1 << 1) |
644 | #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2) | ||
637 | 645 | ||
638 | /* End of information exported to user level */ | 646 | /* End of information exported to user level */ |
639 | 647 | ||
diff --git a/include/uapi/linux/serial_core.h b/include/uapi/linux/serial_core.h index c17218094f18..b2122813f18a 100644 --- a/include/uapi/linux/serial_core.h +++ b/include/uapi/linux/serial_core.h | |||
@@ -55,7 +55,8 @@ | |||
55 | #define PORT_ALTR_16550_F64 27 /* Altera 16550 UART with 64 FIFOs */ | 55 | #define PORT_ALTR_16550_F64 27 /* Altera 16550 UART with 64 FIFOs */ |
56 | #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ | 56 | #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ |
57 | #define PORT_RT2880 29 /* Ralink RT2880 internal UART */ | 57 | #define PORT_RT2880 29 /* Ralink RT2880 internal UART */ |
58 | #define PORT_MAX_8250 29 /* max port ID */ | 58 | #define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */ |
59 | #define PORT_MAX_8250 30 /* max port ID */ | ||
59 | 60 | ||
60 | /* | 61 | /* |
61 | * ARM specific type numbers. These are not currently guaranteed | 62 | * ARM specific type numbers. These are not currently guaranteed |
@@ -248,4 +249,13 @@ | |||
248 | /* MESON */ | 249 | /* MESON */ |
249 | #define PORT_MESON 109 | 250 | #define PORT_MESON 109 |
250 | 251 | ||
252 | /* Conexant Digicolor */ | ||
253 | #define PORT_DIGICOLOR 110 | ||
254 | |||
255 | /* SPRD SERIAL */ | ||
256 | #define PORT_SPRD 111 | ||
257 | |||
258 | /* Cris v10 / v32 SoC */ | ||
259 | #define PORT_CRIS 112 | ||
260 | |||
251 | #endif /* _UAPILINUX_SERIAL_CORE_H */ | 261 | #endif /* _UAPILINUX_SERIAL_CORE_H */ |
diff --git a/include/uapi/linux/serial_reg.h b/include/uapi/linux/serial_reg.h index 53af3b790129..00adb01fa5f3 100644 --- a/include/uapi/linux/serial_reg.h +++ b/include/uapi/linux/serial_reg.h | |||
@@ -86,7 +86,8 @@ | |||
86 | #define UART_FCR6_T_TRIGGER_8 0x10 /* Mask for transmit trigger set at 8 */ | 86 | #define UART_FCR6_T_TRIGGER_8 0x10 /* Mask for transmit trigger set at 8 */ |
87 | #define UART_FCR6_T_TRIGGER_24 0x20 /* Mask for transmit trigger set at 24 */ | 87 | #define UART_FCR6_T_TRIGGER_24 0x20 /* Mask for transmit trigger set at 24 */ |
88 | #define UART_FCR6_T_TRIGGER_30 0x30 /* Mask for transmit trigger set at 30 */ | 88 | #define UART_FCR6_T_TRIGGER_30 0x30 /* Mask for transmit trigger set at 30 */ |
89 | #define UART_FCR7_64BYTE 0x20 /* Go into 64 byte mode (TI16C750) */ | 89 | #define UART_FCR7_64BYTE 0x20 /* Go into 64 byte mode (TI16C750 and |
90 | some Freescale UARTs) */ | ||
90 | 91 | ||
91 | #define UART_FCR_R_TRIG_SHIFT 6 | 92 | #define UART_FCR_R_TRIG_SHIFT 6 |
92 | #define UART_FCR_R_TRIG_BITS(x) \ | 93 | #define UART_FCR_R_TRIG_BITS(x) \ |
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h index b22224100011..6a6fb747c78d 100644 --- a/include/uapi/linux/snmp.h +++ b/include/uapi/linux/snmp.h | |||
@@ -270,6 +270,12 @@ enum | |||
270 | LINUX_MIB_TCPHYSTARTTRAINCWND, /* TCPHystartTrainCwnd */ | 270 | LINUX_MIB_TCPHYSTARTTRAINCWND, /* TCPHystartTrainCwnd */ |
271 | LINUX_MIB_TCPHYSTARTDELAYDETECT, /* TCPHystartDelayDetect */ | 271 | LINUX_MIB_TCPHYSTARTDELAYDETECT, /* TCPHystartDelayDetect */ |
272 | LINUX_MIB_TCPHYSTARTDELAYCWND, /* TCPHystartDelayCwnd */ | 272 | LINUX_MIB_TCPHYSTARTDELAYCWND, /* TCPHystartDelayCwnd */ |
273 | LINUX_MIB_TCPACKSKIPPEDSYNRECV, /* TCPACKSkippedSynRecv */ | ||
274 | LINUX_MIB_TCPACKSKIPPEDPAWS, /* TCPACKSkippedPAWS */ | ||
275 | LINUX_MIB_TCPACKSKIPPEDSEQ, /* TCPACKSkippedSeq */ | ||
276 | LINUX_MIB_TCPACKSKIPPEDFINWAIT2, /* TCPACKSkippedFinWait2 */ | ||
277 | LINUX_MIB_TCPACKSKIPPEDTIMEWAIT, /* TCPACKSkippedTimeWait */ | ||
278 | LINUX_MIB_TCPACKSKIPPEDCHALLENGE, /* TCPACKSkippedChallenge */ | ||
273 | __LINUX_MIB_MAX | 279 | __LINUX_MIB_MAX |
274 | }; | 280 | }; |
275 | 281 | ||
diff --git a/include/uapi/linux/som.h b/include/uapi/linux/som.h deleted file mode 100644 index 166594e4e7be..000000000000 --- a/include/uapi/linux/som.h +++ /dev/null | |||
@@ -1,154 +0,0 @@ | |||
1 | #ifndef _LINUX_SOM_H | ||
2 | #define _LINUX_SOM_H | ||
3 | |||
4 | /* File format definition for SOM executables / shared libraries */ | ||
5 | |||
6 | /* we need struct timespec */ | ||
7 | #include <linux/time.h> | ||
8 | |||
9 | #define SOM_PAGESIZE 4096 | ||
10 | |||
11 | /* this is the SOM header */ | ||
12 | struct som_hdr { | ||
13 | short system_id; /* magic number - system */ | ||
14 | short a_magic; /* magic number - file type */ | ||
15 | unsigned int version_id; /* versiod ID: YYMMDDHH */ | ||
16 | struct timespec file_time; /* system clock */ | ||
17 | unsigned int entry_space; /* space for entry point */ | ||
18 | unsigned int entry_subspace; /* subspace for entry point */ | ||
19 | unsigned int entry_offset; /* offset of entry point */ | ||
20 | unsigned int aux_header_location; /* auxiliary header location */ | ||
21 | unsigned int aux_header_size; /* auxiliary header size */ | ||
22 | unsigned int som_length; /* length of entire SOM */ | ||
23 | unsigned int presumed_dp; /* compiler's DP value */ | ||
24 | unsigned int space_location; /* space dictionary location */ | ||
25 | unsigned int space_total; /* number of space entries */ | ||
26 | unsigned int subspace_location; /* subspace entries location */ | ||
27 | unsigned int subspace_total; /* number of subspace entries */ | ||
28 | unsigned int loader_fixup_location; /* MPE/iX loader fixup */ | ||
29 | unsigned int loader_fixup_total; /* number of fixup records */ | ||
30 | unsigned int space_strings_location; /* (sub)space names */ | ||
31 | unsigned int space_strings_size; /* size of strings area */ | ||
32 | unsigned int init_array_location; /* reserved */ | ||
33 | unsigned int init_array_total; /* reserved */ | ||
34 | unsigned int compiler_location; /* module dictionary */ | ||
35 | unsigned int compiler_total; /* number of modules */ | ||
36 | unsigned int symbol_location; /* symbol dictionary */ | ||
37 | unsigned int symbol_total; /* number of symbols */ | ||
38 | unsigned int fixup_request_location; /* fixup requests */ | ||
39 | unsigned int fixup_request_total; /* number of fixup requests */ | ||
40 | unsigned int symbol_strings_location;/* module & symbol names area */ | ||
41 | unsigned int symbol_strings_size; /* size of strings area */ | ||
42 | unsigned int unloadable_sp_location; /* unloadable spaces location */ | ||
43 | unsigned int unloadable_sp_size; /* size of data */ | ||
44 | unsigned int checksum; | ||
45 | }; | ||
46 | |||
47 | /* values for system_id */ | ||
48 | |||
49 | #define SOM_SID_PARISC_1_0 0x020b | ||
50 | #define SOM_SID_PARISC_1_1 0x0210 | ||
51 | #define SOM_SID_PARISC_2_0 0x0214 | ||
52 | |||
53 | /* values for a_magic */ | ||
54 | |||
55 | #define SOM_LIB_EXEC 0x0104 | ||
56 | #define SOM_RELOCATABLE 0x0106 | ||
57 | #define SOM_EXEC_NONSHARE 0x0107 | ||
58 | #define SOM_EXEC_SHARE 0x0108 | ||
59 | #define SOM_EXEC_DEMAND 0x010B | ||
60 | #define SOM_LIB_DYN 0x010D | ||
61 | #define SOM_LIB_SHARE 0x010E | ||
62 | #define SOM_LIB_RELOC 0x0619 | ||
63 | |||
64 | /* values for version_id. Decimal not hex, yes. Grr. */ | ||
65 | |||
66 | #define SOM_ID_OLD 85082112 | ||
67 | #define SOM_ID_NEW 87102412 | ||
68 | |||
69 | struct aux_id { | ||
70 | unsigned int mandatory :1; /* the linker must understand this */ | ||
71 | unsigned int copy :1; /* Must be copied by the linker */ | ||
72 | unsigned int append :1; /* Must be merged by the linker */ | ||
73 | unsigned int ignore :1; /* Discard section if unknown */ | ||
74 | unsigned int reserved :12; | ||
75 | unsigned int type :16; /* Header type */ | ||
76 | unsigned int length; /* length of _following_ data */ | ||
77 | }; | ||
78 | |||
79 | /* The Exec Auxiliary Header. Called The HP-UX Header within HP apparently. */ | ||
80 | struct som_exec_auxhdr { | ||
81 | struct aux_id som_auxhdr; | ||
82 | int exec_tsize; /* Text size in bytes */ | ||
83 | int exec_tmem; /* Address to load text at */ | ||
84 | int exec_tfile; /* Location of text in file */ | ||
85 | int exec_dsize; /* Data size in bytes */ | ||
86 | int exec_dmem; /* Address to load data at */ | ||
87 | int exec_dfile; /* Location of data in file */ | ||
88 | int exec_bsize; /* Uninitialised data (bss) */ | ||
89 | int exec_entry; /* Address to start executing */ | ||
90 | int exec_flags; /* loader flags */ | ||
91 | int exec_bfill; /* initialisation value for bss */ | ||
92 | }; | ||
93 | |||
94 | /* Oh, the things people do to avoid casts. Shame it'll break with gcc's | ||
95 | * new aliasing rules really. | ||
96 | */ | ||
97 | union name_pt { | ||
98 | char * n_name; | ||
99 | unsigned int n_strx; | ||
100 | }; | ||
101 | |||
102 | /* The Space Dictionary */ | ||
103 | struct space_dictionary_record { | ||
104 | union name_pt name; /* index to subspace name */ | ||
105 | unsigned int is_loadable :1; /* loadable */ | ||
106 | unsigned int is_defined :1; /* defined within file */ | ||
107 | unsigned int is_private :1; /* not sharable */ | ||
108 | unsigned int has_intermediate_code :1; /* contains intermediate code */ | ||
109 | unsigned int is_tspecific :1; /* thread specific */ | ||
110 | unsigned int reserved :11; /* for future expansion */ | ||
111 | unsigned int sort_key :8; /* for linker */ | ||
112 | unsigned int reserved2 :8; /* for future expansion */ | ||
113 | |||
114 | int space_number; /* index */ | ||
115 | int subspace_index; /* index into subspace dict */ | ||
116 | unsigned int subspace_quantity; /* number of subspaces */ | ||
117 | int loader_fix_index; /* for loader */ | ||
118 | unsigned int loader_fix_quantity; /* for loader */ | ||
119 | int init_pointer_index; /* data pointer array index */ | ||
120 | unsigned int init_pointer_quantity; /* number of data pointers */ | ||
121 | }; | ||
122 | |||
123 | /* The Subspace Dictionary */ | ||
124 | struct subspace_dictionary_record { | ||
125 | int space_index; | ||
126 | unsigned int access_control_bits :7; | ||
127 | unsigned int memory_resident :1; | ||
128 | unsigned int dup_common :1; | ||
129 | unsigned int is_common :1; | ||
130 | unsigned int quadrant :2; | ||
131 | unsigned int initially_frozen :1; | ||
132 | unsigned int is_first :1; | ||
133 | unsigned int code_only :1; | ||
134 | unsigned int sort_key :8; | ||
135 | unsigned int replicate_init :1; | ||
136 | unsigned int continuation :1; | ||
137 | unsigned int is_tspecific :1; | ||
138 | unsigned int is_comdat :1; | ||
139 | unsigned int reserved :4; | ||
140 | |||
141 | int file_loc_init_value; | ||
142 | unsigned int initialization_length; | ||
143 | unsigned int subspace_start; | ||
144 | unsigned int subspace_length; | ||
145 | |||
146 | unsigned int reserved2 :5; | ||
147 | unsigned int alignment :27; | ||
148 | |||
149 | union name_pt name; | ||
150 | int fixup_request_index; | ||
151 | unsigned int fixup_request_quantity; | ||
152 | }; | ||
153 | |||
154 | #endif /* _LINUX_SOM_H */ | ||
diff --git a/include/uapi/linux/tc_act/Kbuild b/include/uapi/linux/tc_act/Kbuild index b057da2b87a4..19d5219b0b99 100644 --- a/include/uapi/linux/tc_act/Kbuild +++ b/include/uapi/linux/tc_act/Kbuild | |||
@@ -8,3 +8,4 @@ header-y += tc_nat.h | |||
8 | header-y += tc_pedit.h | 8 | header-y += tc_pedit.h |
9 | header-y += tc_skbedit.h | 9 | header-y += tc_skbedit.h |
10 | header-y += tc_vlan.h | 10 | header-y += tc_vlan.h |
11 | header-y += tc_bpf.h | ||
diff --git a/include/uapi/linux/tc_act/tc_bpf.h b/include/uapi/linux/tc_act/tc_bpf.h new file mode 100644 index 000000000000..5288bd77e63b --- /dev/null +++ b/include/uapi/linux/tc_act/tc_bpf.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | */ | ||
9 | |||
10 | #ifndef __LINUX_TC_BPF_H | ||
11 | #define __LINUX_TC_BPF_H | ||
12 | |||
13 | #include <linux/pkt_cls.h> | ||
14 | |||
15 | #define TCA_ACT_BPF 13 | ||
16 | |||
17 | struct tc_act_bpf { | ||
18 | tc_gen; | ||
19 | }; | ||
20 | |||
21 | enum { | ||
22 | TCA_ACT_BPF_UNSPEC, | ||
23 | TCA_ACT_BPF_TM, | ||
24 | TCA_ACT_BPF_PARMS, | ||
25 | TCA_ACT_BPF_OPS_LEN, | ||
26 | TCA_ACT_BPF_OPS, | ||
27 | __TCA_ACT_BPF_MAX, | ||
28 | }; | ||
29 | #define TCA_ACT_BPF_MAX (__TCA_ACT_BPF_MAX - 1) | ||
30 | |||
31 | #endif | ||
diff --git a/include/uapi/linux/tc_act/tc_connmark.h b/include/uapi/linux/tc_act/tc_connmark.h new file mode 100644 index 000000000000..994b0971bce2 --- /dev/null +++ b/include/uapi/linux/tc_act/tc_connmark.h | |||
@@ -0,0 +1,22 @@ | |||
1 | #ifndef __UAPI_TC_CONNMARK_H | ||
2 | #define __UAPI_TC_CONNMARK_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | #include <linux/pkt_cls.h> | ||
6 | |||
7 | #define TCA_ACT_CONNMARK 14 | ||
8 | |||
9 | struct tc_connmark { | ||
10 | tc_gen; | ||
11 | __u16 zone; | ||
12 | }; | ||
13 | |||
14 | enum { | ||
15 | TCA_CONNMARK_UNSPEC, | ||
16 | TCA_CONNMARK_PARMS, | ||
17 | TCA_CONNMARK_TM, | ||
18 | __TCA_CONNMARK_MAX | ||
19 | }; | ||
20 | #define TCA_CONNMARK_MAX (__TCA_CONNMARK_MAX - 1) | ||
21 | |||
22 | #endif | ||
diff --git a/include/uapi/linux/tipc_config.h b/include/uapi/linux/tipc_config.h index 876d0a14863c..087b0ef82c07 100644 --- a/include/uapi/linux/tipc_config.h +++ b/include/uapi/linux/tipc_config.h | |||
@@ -272,6 +272,26 @@ static inline int TLV_CHECK(const void *tlv, __u16 space, __u16 exp_type) | |||
272 | (ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type); | 272 | (ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type); |
273 | } | 273 | } |
274 | 274 | ||
275 | static inline int TLV_GET_LEN(struct tlv_desc *tlv) | ||
276 | { | ||
277 | return ntohs(tlv->tlv_len); | ||
278 | } | ||
279 | |||
280 | static inline void TLV_SET_LEN(struct tlv_desc *tlv, __u16 len) | ||
281 | { | ||
282 | tlv->tlv_len = htons(len); | ||
283 | } | ||
284 | |||
285 | static inline int TLV_CHECK_TYPE(struct tlv_desc *tlv, __u16 type) | ||
286 | { | ||
287 | return (ntohs(tlv->tlv_type) == type); | ||
288 | } | ||
289 | |||
290 | static inline void TLV_SET_TYPE(struct tlv_desc *tlv, __u16 type) | ||
291 | { | ||
292 | tlv->tlv_type = htons(type); | ||
293 | } | ||
294 | |||
275 | static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len) | 295 | static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len) |
276 | { | 296 | { |
277 | struct tlv_desc *tlv_ptr; | 297 | struct tlv_desc *tlv_ptr; |
diff --git a/include/uapi/linux/usb/functionfs.h b/include/uapi/linux/usb/functionfs.h index 295ba299e7bd..108dd7997014 100644 --- a/include/uapi/linux/usb/functionfs.h +++ b/include/uapi/linux/usb/functionfs.h | |||
@@ -20,6 +20,7 @@ enum functionfs_flags { | |||
20 | FUNCTIONFS_HAS_SS_DESC = 4, | 20 | FUNCTIONFS_HAS_SS_DESC = 4, |
21 | FUNCTIONFS_HAS_MS_OS_DESC = 8, | 21 | FUNCTIONFS_HAS_MS_OS_DESC = 8, |
22 | FUNCTIONFS_VIRTUAL_ADDR = 16, | 22 | FUNCTIONFS_VIRTUAL_ADDR = 16, |
23 | FUNCTIONFS_EVENTFD = 32, | ||
23 | }; | 24 | }; |
24 | 25 | ||
25 | /* Descriptor of an non-audio endpoint */ | 26 | /* Descriptor of an non-audio endpoint */ |
diff --git a/include/uapi/linux/usbdevice_fs.h b/include/uapi/linux/usbdevice_fs.h index abe5f4bd4d82..019ba1e0799a 100644 --- a/include/uapi/linux/usbdevice_fs.h +++ b/include/uapi/linux/usbdevice_fs.h | |||
@@ -128,11 +128,12 @@ struct usbdevfs_hub_portinfo { | |||
128 | char port [127]; /* e.g. port 3 connects to device 27 */ | 128 | char port [127]; /* e.g. port 3 connects to device 27 */ |
129 | }; | 129 | }; |
130 | 130 | ||
131 | /* Device capability flags */ | 131 | /* System and bus capability flags */ |
132 | #define USBDEVFS_CAP_ZERO_PACKET 0x01 | 132 | #define USBDEVFS_CAP_ZERO_PACKET 0x01 |
133 | #define USBDEVFS_CAP_BULK_CONTINUATION 0x02 | 133 | #define USBDEVFS_CAP_BULK_CONTINUATION 0x02 |
134 | #define USBDEVFS_CAP_NO_PACKET_SIZE_LIM 0x04 | 134 | #define USBDEVFS_CAP_NO_PACKET_SIZE_LIM 0x04 |
135 | #define USBDEVFS_CAP_BULK_SCATTER_GATHER 0x08 | 135 | #define USBDEVFS_CAP_BULK_SCATTER_GATHER 0x08 |
136 | #define USBDEVFS_CAP_REAP_AFTER_DISCONNECT 0x10 | ||
136 | 137 | ||
137 | /* USBDEVFS_DISCONNECT_CLAIM flags & struct */ | 138 | /* USBDEVFS_DISCONNECT_CLAIM flags & struct */ |
138 | 139 | ||
diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 29715d27548f..82889c30f4f5 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h | |||
@@ -333,6 +333,7 @@ enum { | |||
333 | VFIO_PCI_MSI_IRQ_INDEX, | 333 | VFIO_PCI_MSI_IRQ_INDEX, |
334 | VFIO_PCI_MSIX_IRQ_INDEX, | 334 | VFIO_PCI_MSIX_IRQ_INDEX, |
335 | VFIO_PCI_ERR_IRQ_INDEX, | 335 | VFIO_PCI_ERR_IRQ_INDEX, |
336 | VFIO_PCI_REQ_IRQ_INDEX, | ||
336 | VFIO_PCI_NUM_IRQS | 337 | VFIO_PCI_NUM_IRQS |
337 | }; | 338 | }; |
338 | 339 | ||
diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h index be40f7059e93..4b0488f20b2e 100644 --- a/include/uapi/linux/virtio_balloon.h +++ b/include/uapi/linux/virtio_balloon.h | |||
@@ -36,8 +36,7 @@ | |||
36 | /* Size of a PFN in the balloon interface. */ | 36 | /* Size of a PFN in the balloon interface. */ |
37 | #define VIRTIO_BALLOON_PFN_SHIFT 12 | 37 | #define VIRTIO_BALLOON_PFN_SHIFT 12 |
38 | 38 | ||
39 | struct virtio_balloon_config | 39 | struct virtio_balloon_config { |
40 | { | ||
41 | /* Number of pages host wants Guest to give up. */ | 40 | /* Number of pages host wants Guest to give up. */ |
42 | __le32 num_pages; | 41 | __le32 num_pages; |
43 | /* Number of pages we've actually got in balloon. */ | 42 | /* Number of pages we've actually got in balloon. */ |
diff --git a/include/uapi/linux/virtio_blk.h b/include/uapi/linux/virtio_blk.h index 247c8ba8544a..3c53eec4ae22 100644 --- a/include/uapi/linux/virtio_blk.h +++ b/include/uapi/linux/virtio_blk.h | |||
@@ -31,22 +31,25 @@ | |||
31 | #include <linux/virtio_types.h> | 31 | #include <linux/virtio_types.h> |
32 | 32 | ||
33 | /* Feature bits */ | 33 | /* Feature bits */ |
34 | #define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */ | ||
35 | #define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */ | 34 | #define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */ |
36 | #define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */ | 35 | #define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */ |
37 | #define VIRTIO_BLK_F_GEOMETRY 4 /* Legacy geometry available */ | 36 | #define VIRTIO_BLK_F_GEOMETRY 4 /* Legacy geometry available */ |
38 | #define VIRTIO_BLK_F_RO 5 /* Disk is read-only */ | 37 | #define VIRTIO_BLK_F_RO 5 /* Disk is read-only */ |
39 | #define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/ | 38 | #define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/ |
40 | #define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */ | ||
41 | #define VIRTIO_BLK_F_WCE 9 /* Writeback mode enabled after reset */ | ||
42 | #define VIRTIO_BLK_F_TOPOLOGY 10 /* Topology information is available */ | 39 | #define VIRTIO_BLK_F_TOPOLOGY 10 /* Topology information is available */ |
43 | #define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */ | ||
44 | #define VIRTIO_BLK_F_MQ 12 /* support more than one vq */ | 40 | #define VIRTIO_BLK_F_MQ 12 /* support more than one vq */ |
45 | 41 | ||
42 | /* Legacy feature bits */ | ||
43 | #ifndef VIRTIO_BLK_NO_LEGACY | ||
44 | #define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */ | ||
45 | #define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */ | ||
46 | #define VIRTIO_BLK_F_WCE 9 /* Writeback mode enabled after reset */ | ||
47 | #define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */ | ||
46 | #ifndef __KERNEL__ | 48 | #ifndef __KERNEL__ |
47 | /* Old (deprecated) name for VIRTIO_BLK_F_WCE. */ | 49 | /* Old (deprecated) name for VIRTIO_BLK_F_WCE. */ |
48 | #define VIRTIO_BLK_F_FLUSH VIRTIO_BLK_F_WCE | 50 | #define VIRTIO_BLK_F_FLUSH VIRTIO_BLK_F_WCE |
49 | #endif | 51 | #endif |
52 | #endif /* !VIRTIO_BLK_NO_LEGACY */ | ||
50 | 53 | ||
51 | #define VIRTIO_BLK_ID_BYTES 20 /* ID string length */ | 54 | #define VIRTIO_BLK_ID_BYTES 20 /* ID string length */ |
52 | 55 | ||
@@ -100,8 +103,10 @@ struct virtio_blk_config { | |||
100 | #define VIRTIO_BLK_T_IN 0 | 103 | #define VIRTIO_BLK_T_IN 0 |
101 | #define VIRTIO_BLK_T_OUT 1 | 104 | #define VIRTIO_BLK_T_OUT 1 |
102 | 105 | ||
106 | #ifndef VIRTIO_BLK_NO_LEGACY | ||
103 | /* This bit says it's a scsi command, not an actual read or write. */ | 107 | /* This bit says it's a scsi command, not an actual read or write. */ |
104 | #define VIRTIO_BLK_T_SCSI_CMD 2 | 108 | #define VIRTIO_BLK_T_SCSI_CMD 2 |
109 | #endif /* VIRTIO_BLK_NO_LEGACY */ | ||
105 | 110 | ||
106 | /* Cache flush command */ | 111 | /* Cache flush command */ |
107 | #define VIRTIO_BLK_T_FLUSH 4 | 112 | #define VIRTIO_BLK_T_FLUSH 4 |
@@ -109,8 +114,10 @@ struct virtio_blk_config { | |||
109 | /* Get device ID command */ | 114 | /* Get device ID command */ |
110 | #define VIRTIO_BLK_T_GET_ID 8 | 115 | #define VIRTIO_BLK_T_GET_ID 8 |
111 | 116 | ||
117 | #ifndef VIRTIO_BLK_NO_LEGACY | ||
112 | /* Barrier before this op. */ | 118 | /* Barrier before this op. */ |
113 | #define VIRTIO_BLK_T_BARRIER 0x80000000 | 119 | #define VIRTIO_BLK_T_BARRIER 0x80000000 |
120 | #endif /* !VIRTIO_BLK_NO_LEGACY */ | ||
114 | 121 | ||
115 | /* This is the first element of the read scatter-gather list. */ | 122 | /* This is the first element of the read scatter-gather list. */ |
116 | struct virtio_blk_outhdr { | 123 | struct virtio_blk_outhdr { |
@@ -122,12 +129,14 @@ struct virtio_blk_outhdr { | |||
122 | __virtio64 sector; | 129 | __virtio64 sector; |
123 | }; | 130 | }; |
124 | 131 | ||
132 | #ifndef VIRTIO_BLK_NO_LEGACY | ||
125 | struct virtio_scsi_inhdr { | 133 | struct virtio_scsi_inhdr { |
126 | __virtio32 errors; | 134 | __virtio32 errors; |
127 | __virtio32 data_len; | 135 | __virtio32 data_len; |
128 | __virtio32 sense_len; | 136 | __virtio32 sense_len; |
129 | __virtio32 residual; | 137 | __virtio32 residual; |
130 | }; | 138 | }; |
139 | #endif /* !VIRTIO_BLK_NO_LEGACY */ | ||
131 | 140 | ||
132 | /* And this is the final byte of the write scatter-gather list. */ | 141 | /* And this is the final byte of the write scatter-gather list. */ |
133 | #define VIRTIO_BLK_S_OK 0 | 142 | #define VIRTIO_BLK_S_OK 0 |
diff --git a/include/uapi/linux/virtio_config.h b/include/uapi/linux/virtio_config.h index a6d0cdeaacd4..c18264df9504 100644 --- a/include/uapi/linux/virtio_config.h +++ b/include/uapi/linux/virtio_config.h | |||
@@ -49,12 +49,14 @@ | |||
49 | #define VIRTIO_TRANSPORT_F_START 28 | 49 | #define VIRTIO_TRANSPORT_F_START 28 |
50 | #define VIRTIO_TRANSPORT_F_END 33 | 50 | #define VIRTIO_TRANSPORT_F_END 33 |
51 | 51 | ||
52 | #ifndef VIRTIO_CONFIG_NO_LEGACY | ||
52 | /* Do we get callbacks when the ring is completely used, even if we've | 53 | /* Do we get callbacks when the ring is completely used, even if we've |
53 | * suppressed them? */ | 54 | * suppressed them? */ |
54 | #define VIRTIO_F_NOTIFY_ON_EMPTY 24 | 55 | #define VIRTIO_F_NOTIFY_ON_EMPTY 24 |
55 | 56 | ||
56 | /* Can the device handle any descriptor layout? */ | 57 | /* Can the device handle any descriptor layout? */ |
57 | #define VIRTIO_F_ANY_LAYOUT 27 | 58 | #define VIRTIO_F_ANY_LAYOUT 27 |
59 | #endif /* VIRTIO_CONFIG_NO_LEGACY */ | ||
58 | 60 | ||
59 | /* v1.0 compliant. */ | 61 | /* v1.0 compliant. */ |
60 | #define VIRTIO_F_VERSION_1 32 | 62 | #define VIRTIO_F_VERSION_1 32 |
diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h index b5f1677b291c..7bbee79ca293 100644 --- a/include/uapi/linux/virtio_net.h +++ b/include/uapi/linux/virtio_net.h | |||
@@ -35,7 +35,6 @@ | |||
35 | #define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */ | 35 | #define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */ |
36 | #define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */ | 36 | #define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */ |
37 | #define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ | 37 | #define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ |
38 | #define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */ | ||
39 | #define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */ | 38 | #define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */ |
40 | #define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */ | 39 | #define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */ |
41 | #define VIRTIO_NET_F_GUEST_ECN 9 /* Guest can handle TSO[6] w/ ECN in. */ | 40 | #define VIRTIO_NET_F_GUEST_ECN 9 /* Guest can handle TSO[6] w/ ECN in. */ |
@@ -56,6 +55,10 @@ | |||
56 | * Steering */ | 55 | * Steering */ |
57 | #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ | 56 | #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ |
58 | 57 | ||
58 | #ifndef VIRTIO_NET_NO_LEGACY | ||
59 | #define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */ | ||
60 | #endif /* VIRTIO_NET_NO_LEGACY */ | ||
61 | |||
59 | #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ | 62 | #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ |
60 | #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ | 63 | #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ |
61 | 64 | ||
@@ -71,19 +74,39 @@ struct virtio_net_config { | |||
71 | __u16 max_virtqueue_pairs; | 74 | __u16 max_virtqueue_pairs; |
72 | } __attribute__((packed)); | 75 | } __attribute__((packed)); |
73 | 76 | ||
77 | /* | ||
78 | * This header comes first in the scatter-gather list. If you don't | ||
79 | * specify GSO or CSUM features, you can simply ignore the header. | ||
80 | * | ||
81 | * This is bitwise-equivalent to the legacy struct virtio_net_hdr_mrg_rxbuf, | ||
82 | * only flattened. | ||
83 | */ | ||
84 | struct virtio_net_hdr_v1 { | ||
85 | #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */ | ||
86 | #define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */ | ||
87 | __u8 flags; | ||
88 | #define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */ | ||
89 | #define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */ | ||
90 | #define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */ | ||
91 | #define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */ | ||
92 | #define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */ | ||
93 | __u8 gso_type; | ||
94 | __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ | ||
95 | __virtio16 gso_size; /* Bytes to append to hdr_len per frame */ | ||
96 | __virtio16 csum_start; /* Position to start checksumming from */ | ||
97 | __virtio16 csum_offset; /* Offset after that to place checksum */ | ||
98 | __virtio16 num_buffers; /* Number of merged rx buffers */ | ||
99 | }; | ||
100 | |||
101 | #ifndef VIRTIO_NET_NO_LEGACY | ||
74 | /* This header comes first in the scatter-gather list. | 102 | /* This header comes first in the scatter-gather list. |
75 | * If VIRTIO_F_ANY_LAYOUT is not negotiated, it must | 103 | * For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must |
76 | * be the first element of the scatter-gather list. If you don't | 104 | * be the first element of the scatter-gather list. If you don't |
77 | * specify GSO or CSUM features, you can simply ignore the header. */ | 105 | * specify GSO or CSUM features, you can simply ignore the header. */ |
78 | struct virtio_net_hdr { | 106 | struct virtio_net_hdr { |
79 | #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset | 107 | /* See VIRTIO_NET_HDR_F_* */ |
80 | #define VIRTIO_NET_HDR_F_DATA_VALID 2 // Csum is valid | ||
81 | __u8 flags; | 108 | __u8 flags; |
82 | #define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame | 109 | /* See VIRTIO_NET_HDR_GSO_* */ |
83 | #define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO) | ||
84 | #define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO) | ||
85 | #define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP | ||
86 | #define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set | ||
87 | __u8 gso_type; | 110 | __u8 gso_type; |
88 | __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ | 111 | __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ |
89 | __virtio16 gso_size; /* Bytes to append to hdr_len per frame */ | 112 | __virtio16 gso_size; /* Bytes to append to hdr_len per frame */ |
@@ -97,6 +120,7 @@ struct virtio_net_hdr_mrg_rxbuf { | |||
97 | struct virtio_net_hdr hdr; | 120 | struct virtio_net_hdr hdr; |
98 | __virtio16 num_buffers; /* Number of merged rx buffers */ | 121 | __virtio16 num_buffers; /* Number of merged rx buffers */ |
99 | }; | 122 | }; |
123 | #endif /* ...VIRTIO_NET_NO_LEGACY */ | ||
100 | 124 | ||
101 | /* | 125 | /* |
102 | * Control virtqueue data structures | 126 | * Control virtqueue data structures |
diff --git a/include/uapi/linux/virtio_pci.h b/include/uapi/linux/virtio_pci.h index 35b552c7f330..75301468359f 100644 --- a/include/uapi/linux/virtio_pci.h +++ b/include/uapi/linux/virtio_pci.h | |||
@@ -39,7 +39,7 @@ | |||
39 | #ifndef _LINUX_VIRTIO_PCI_H | 39 | #ifndef _LINUX_VIRTIO_PCI_H |
40 | #define _LINUX_VIRTIO_PCI_H | 40 | #define _LINUX_VIRTIO_PCI_H |
41 | 41 | ||
42 | #include <linux/virtio_config.h> | 42 | #include <linux/types.h> |
43 | 43 | ||
44 | #ifndef VIRTIO_PCI_NO_LEGACY | 44 | #ifndef VIRTIO_PCI_NO_LEGACY |
45 | 45 | ||
@@ -99,4 +99,95 @@ | |||
99 | /* Vector value used to disable MSI for queue */ | 99 | /* Vector value used to disable MSI for queue */ |
100 | #define VIRTIO_MSI_NO_VECTOR 0xffff | 100 | #define VIRTIO_MSI_NO_VECTOR 0xffff |
101 | 101 | ||
102 | #ifndef VIRTIO_PCI_NO_MODERN | ||
103 | |||
104 | /* IDs for different capabilities. Must all exist. */ | ||
105 | |||
106 | /* Common configuration */ | ||
107 | #define VIRTIO_PCI_CAP_COMMON_CFG 1 | ||
108 | /* Notifications */ | ||
109 | #define VIRTIO_PCI_CAP_NOTIFY_CFG 2 | ||
110 | /* ISR access */ | ||
111 | #define VIRTIO_PCI_CAP_ISR_CFG 3 | ||
112 | /* Device specific configuration */ | ||
113 | #define VIRTIO_PCI_CAP_DEVICE_CFG 4 | ||
114 | /* PCI configuration access */ | ||
115 | #define VIRTIO_PCI_CAP_PCI_CFG 5 | ||
116 | |||
117 | /* This is the PCI capability header: */ | ||
118 | struct virtio_pci_cap { | ||
119 | __u8 cap_vndr; /* Generic PCI field: PCI_CAP_ID_VNDR */ | ||
120 | __u8 cap_next; /* Generic PCI field: next ptr. */ | ||
121 | __u8 cap_len; /* Generic PCI field: capability length */ | ||
122 | __u8 cfg_type; /* Identifies the structure. */ | ||
123 | __u8 bar; /* Where to find it. */ | ||
124 | __u8 padding[3]; /* Pad to full dword. */ | ||
125 | __le32 offset; /* Offset within bar. */ | ||
126 | __le32 length; /* Length of the structure, in bytes. */ | ||
127 | }; | ||
128 | |||
129 | struct virtio_pci_notify_cap { | ||
130 | struct virtio_pci_cap cap; | ||
131 | __le32 notify_off_multiplier; /* Multiplier for queue_notify_off. */ | ||
132 | }; | ||
133 | |||
134 | /* Fields in VIRTIO_PCI_CAP_COMMON_CFG: */ | ||
135 | struct virtio_pci_common_cfg { | ||
136 | /* About the whole device. */ | ||
137 | __le32 device_feature_select; /* read-write */ | ||
138 | __le32 device_feature; /* read-only */ | ||
139 | __le32 guest_feature_select; /* read-write */ | ||
140 | __le32 guest_feature; /* read-write */ | ||
141 | __le16 msix_config; /* read-write */ | ||
142 | __le16 num_queues; /* read-only */ | ||
143 | __u8 device_status; /* read-write */ | ||
144 | __u8 config_generation; /* read-only */ | ||
145 | |||
146 | /* About a specific virtqueue. */ | ||
147 | __le16 queue_select; /* read-write */ | ||
148 | __le16 queue_size; /* read-write, power of 2. */ | ||
149 | __le16 queue_msix_vector; /* read-write */ | ||
150 | __le16 queue_enable; /* read-write */ | ||
151 | __le16 queue_notify_off; /* read-only */ | ||
152 | __le32 queue_desc_lo; /* read-write */ | ||
153 | __le32 queue_desc_hi; /* read-write */ | ||
154 | __le32 queue_avail_lo; /* read-write */ | ||
155 | __le32 queue_avail_hi; /* read-write */ | ||
156 | __le32 queue_used_lo; /* read-write */ | ||
157 | __le32 queue_used_hi; /* read-write */ | ||
158 | }; | ||
159 | |||
160 | /* Macro versions of offsets for the Old Timers! */ | ||
161 | #define VIRTIO_PCI_CAP_VNDR 0 | ||
162 | #define VIRTIO_PCI_CAP_NEXT 1 | ||
163 | #define VIRTIO_PCI_CAP_LEN 2 | ||
164 | #define VIRTIO_PCI_CAP_CFG_TYPE 3 | ||
165 | #define VIRTIO_PCI_CAP_BAR 4 | ||
166 | #define VIRTIO_PCI_CAP_OFFSET 8 | ||
167 | #define VIRTIO_PCI_CAP_LENGTH 12 | ||
168 | |||
169 | #define VIRTIO_PCI_NOTIFY_CAP_MULT 16 | ||
170 | |||
171 | #define VIRTIO_PCI_COMMON_DFSELECT 0 | ||
172 | #define VIRTIO_PCI_COMMON_DF 4 | ||
173 | #define VIRTIO_PCI_COMMON_GFSELECT 8 | ||
174 | #define VIRTIO_PCI_COMMON_GF 12 | ||
175 | #define VIRTIO_PCI_COMMON_MSIX 16 | ||
176 | #define VIRTIO_PCI_COMMON_NUMQ 18 | ||
177 | #define VIRTIO_PCI_COMMON_STATUS 20 | ||
178 | #define VIRTIO_PCI_COMMON_CFGGENERATION 21 | ||
179 | #define VIRTIO_PCI_COMMON_Q_SELECT 22 | ||
180 | #define VIRTIO_PCI_COMMON_Q_SIZE 24 | ||
181 | #define VIRTIO_PCI_COMMON_Q_MSIX 26 | ||
182 | #define VIRTIO_PCI_COMMON_Q_ENABLE 28 | ||
183 | #define VIRTIO_PCI_COMMON_Q_NOFF 30 | ||
184 | #define VIRTIO_PCI_COMMON_Q_DESCLO 32 | ||
185 | #define VIRTIO_PCI_COMMON_Q_DESCHI 36 | ||
186 | #define VIRTIO_PCI_COMMON_Q_AVAILLO 40 | ||
187 | #define VIRTIO_PCI_COMMON_Q_AVAILHI 44 | ||
188 | #define VIRTIO_PCI_COMMON_Q_USEDLO 48 | ||
189 | #define VIRTIO_PCI_COMMON_Q_USEDHI 52 | ||
190 | |||
191 | #endif /* VIRTIO_PCI_NO_MODERN */ | ||
192 | |||
102 | #endif | 193 | #endif |