aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/Kbuild1
-rw-r--r--include/uapi/linux/apm_bios.h2
-rw-r--r--include/uapi/linux/audit.h8
-rw-r--r--include/uapi/linux/bcache.h3
-rw-r--r--include/uapi/linux/btrfs.h12
-rw-r--r--include/uapi/linux/capi.h2
-rw-r--r--include/uapi/linux/dn.h1
-rw-r--r--include/uapi/linux/fd.h3
-rw-r--r--include/uapi/linux/hyperv.h390
-rw-r--r--include/uapi/linux/if_addr.h6
-rw-r--r--include/uapi/linux/if_arp.h1
-rw-r--r--include/uapi/linux/if_link.h48
-rw-r--r--include/uapi/linux/if_packet.h29
-rw-r--r--include/uapi/linux/in6.h29
-rw-r--r--include/uapi/linux/kvm.h85
-rw-r--r--include/uapi/linux/media.h1
-rw-r--r--include/uapi/linux/mic_ioctl.h2
-rw-r--r--include/uapi/linux/mqueue.h10
-rw-r--r--include/uapi/linux/msg.h4
-rw-r--r--include/uapi/linux/neighbour.h2
-rw-r--r--include/uapi/linux/net_tstamp.h16
-rw-r--r--include/uapi/linux/netconf.h1
-rw-r--r--include/uapi/linux/netfilter.h1
-rw-r--r--include/uapi/linux/netfilter/Kbuild3
-rw-r--r--include/uapi/linux/netfilter/nf_nat.h12
-rw-r--r--include/uapi/linux/netfilter/nf_tables.h30
-rw-r--r--include/uapi/linux/netfilter/nfnetlink_queue.h5
-rw-r--r--include/uapi/linux/netfilter/xt_cgroup.h11
-rw-r--r--include/uapi/linux/netfilter/xt_ipcomp.h16
-rw-r--r--include/uapi/linux/netfilter/xt_l2tp.h27
-rw-r--r--include/uapi/linux/netfilter/xt_osf.h3
-rw-r--r--include/uapi/linux/nfs4.h2
-rw-r--r--include/uapi/linux/nl80211.h129
-rw-r--r--include/uapi/linux/nvme.h11
-rw-r--r--include/uapi/linux/openvswitch.h14
-rw-r--r--include/uapi/linux/pci_regs.h5
-rw-r--r--include/uapi/linux/perf_event.h2
-rw-r--r--include/uapi/linux/pkt_sched.h53
-rw-r--r--include/uapi/linux/ppp-ioctl.h1
-rw-r--r--include/uapi/linux/raid/md_p.h6
-rw-r--r--include/uapi/linux/resource.h32
-rw-r--r--include/uapi/linux/sctp.h5
-rw-r--r--include/uapi/linux/shm.h10
-rw-r--r--include/uapi/linux/snmp.h1
-rw-r--r--include/uapi/linux/sockios.h3
-rw-r--r--include/uapi/linux/spi/spidev.h14
-rw-r--r--include/uapi/linux/tc_act/tc_ipt.h1
-rw-r--r--include/uapi/linux/tcp_metrics.h2
-rw-r--r--include/uapi/linux/timex.h34
-rw-r--r--include/uapi/linux/usb/functionfs.h44
-rw-r--r--include/uapi/linux/usbdevice_fs.h12
-rw-r--r--include/uapi/linux/v4l2-controls.h9
-rw-r--r--include/uapi/linux/v4l2-mediabus.h3
-rw-r--r--include/uapi/linux/videodev2.h4
-rw-r--r--include/uapi/linux/vsp1.h34
-rw-r--r--include/uapi/linux/xattr.h3
56 files changed, 1067 insertions, 131 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index 3ce25b5d75a9..6929571b79b0 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -139,6 +139,7 @@ header-y += hid.h
139header-y += hiddev.h 139header-y += hiddev.h
140header-y += hidraw.h 140header-y += hidraw.h
141header-y += hpet.h 141header-y += hpet.h
142header-y += hyperv.h
142header-y += hysdn_if.h 143header-y += hysdn_if.h
143header-y += i2c-dev.h 144header-y += i2c-dev.h
144header-y += i2c.h 145header-y += i2c.h
diff --git a/include/uapi/linux/apm_bios.h b/include/uapi/linux/apm_bios.h
index 724f409adae0..df79bca1b898 100644
--- a/include/uapi/linux/apm_bios.h
+++ b/include/uapi/linux/apm_bios.h
@@ -67,6 +67,8 @@ struct apm_bios_info {
67#define APM_USER_SUSPEND 0x000a 67#define APM_USER_SUSPEND 0x000a
68#define APM_STANDBY_RESUME 0x000b 68#define APM_STANDBY_RESUME 0x000b
69#define APM_CAPABILITY_CHANGE 0x000c 69#define APM_CAPABILITY_CHANGE 0x000c
70#define APM_USER_HIBERNATION 0x000d
71#define APM_HIBERNATION_RESUME 0x000e
70 72
71/* 73/*
72 * Error codes 74 * Error codes
diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h
index 44b05a09f193..2d48fe1274ca 100644
--- a/include/uapi/linux/audit.h
+++ b/include/uapi/linux/audit.h
@@ -319,6 +319,12 @@ enum {
319#define AUDIT_STATUS_PID 0x0004 319#define AUDIT_STATUS_PID 0x0004
320#define AUDIT_STATUS_RATE_LIMIT 0x0008 320#define AUDIT_STATUS_RATE_LIMIT 0x0008
321#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010 321#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010
322#define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020
323
324#define AUDIT_VERSION_BACKLOG_LIMIT 1
325#define AUDIT_VERSION_BACKLOG_WAIT_TIME 2
326#define AUDIT_VERSION_LATEST AUDIT_VERSION_BACKLOG_WAIT_TIME
327
322 /* Failure-to-log actions */ 328 /* Failure-to-log actions */
323#define AUDIT_FAIL_SILENT 0 329#define AUDIT_FAIL_SILENT 0
324#define AUDIT_FAIL_PRINTK 1 330#define AUDIT_FAIL_PRINTK 1
@@ -375,6 +381,8 @@ struct audit_status {
375 __u32 backlog_limit; /* waiting messages limit */ 381 __u32 backlog_limit; /* waiting messages limit */
376 __u32 lost; /* messages lost */ 382 __u32 lost; /* messages lost */
377 __u32 backlog; /* messages waiting in queue */ 383 __u32 backlog; /* messages waiting in queue */
384 __u32 version; /* audit api version number */
385 __u32 backlog_wait_time;/* message queue wait timeout */
378}; 386};
379 387
380struct audit_features { 388struct audit_features {
diff --git a/include/uapi/linux/bcache.h b/include/uapi/linux/bcache.h
index 164a7e263988..22b6ad31c706 100644
--- a/include/uapi/linux/bcache.h
+++ b/include/uapi/linux/bcache.h
@@ -39,6 +39,7 @@ static inline void SET_##name(struct bkey *k, unsigned i, __u64 v) \
39} 39}
40 40
41#define KEY_SIZE_BITS 16 41#define KEY_SIZE_BITS 16
42#define KEY_MAX_U64S 8
42 43
43KEY_FIELD(KEY_PTRS, high, 60, 3) 44KEY_FIELD(KEY_PTRS, high, 60, 3)
44KEY_FIELD(HEADER_SIZE, high, 58, 2) 45KEY_FIELD(HEADER_SIZE, high, 58, 2)
@@ -118,7 +119,7 @@ static inline struct bkey *bkey_next(const struct bkey *k)
118 return (struct bkey *) (d + bkey_u64s(k)); 119 return (struct bkey *) (d + bkey_u64s(k));
119} 120}
120 121
121static inline struct bkey *bkey_last(const struct bkey *k, unsigned nr_keys) 122static inline struct bkey *bkey_idx(const struct bkey *k, unsigned nr_keys)
122{ 123{
123 __u64 *d = (void *) k; 124 __u64 *d = (void *) k;
124 return (struct bkey *) (d + nr_keys); 125 return (struct bkey *) (d + nr_keys);
diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h
index 45e618921c61..b4d69092fbdb 100644
--- a/include/uapi/linux/btrfs.h
+++ b/include/uapi/linux/btrfs.h
@@ -184,6 +184,12 @@ struct btrfs_ioctl_fs_info_args {
184 __u64 reserved[124]; /* pad to 1k */ 184 __u64 reserved[124]; /* pad to 1k */
185}; 185};
186 186
187struct btrfs_ioctl_feature_flags {
188 __u64 compat_flags;
189 __u64 compat_ro_flags;
190 __u64 incompat_flags;
191};
192
187/* balance control ioctl modes */ 193/* balance control ioctl modes */
188#define BTRFS_BALANCE_CTL_PAUSE 1 194#define BTRFS_BALANCE_CTL_PAUSE 1
189#define BTRFS_BALANCE_CTL_CANCEL 2 195#define BTRFS_BALANCE_CTL_CANCEL 2
@@ -606,5 +612,11 @@ static inline char *btrfs_err_str(enum btrfs_err_code err_code)
606 struct btrfs_ioctl_dev_replace_args) 612 struct btrfs_ioctl_dev_replace_args)
607#define BTRFS_IOC_FILE_EXTENT_SAME _IOWR(BTRFS_IOCTL_MAGIC, 54, \ 613#define BTRFS_IOC_FILE_EXTENT_SAME _IOWR(BTRFS_IOCTL_MAGIC, 54, \
608 struct btrfs_ioctl_same_args) 614 struct btrfs_ioctl_same_args)
615#define BTRFS_IOC_GET_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
616 struct btrfs_ioctl_feature_flags)
617#define BTRFS_IOC_SET_FEATURES _IOW(BTRFS_IOCTL_MAGIC, 57, \
618 struct btrfs_ioctl_feature_flags[2])
619#define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
620 struct btrfs_ioctl_feature_flags[3])
609 621
610#endif /* _UAPI_LINUX_BTRFS_H */ 622#endif /* _UAPI_LINUX_BTRFS_H */
diff --git a/include/uapi/linux/capi.h b/include/uapi/linux/capi.h
index 65100d6cb89b..7b145fd7afb6 100644
--- a/include/uapi/linux/capi.h
+++ b/include/uapi/linux/capi.h
@@ -102,7 +102,7 @@ typedef struct capi_manufacturer_cmd {
102 102
103/* 103/*
104 * member contr is input for 104 * member contr is input for
105 * CAPI_GET_MANUFACTURER, CAPI_VERSION, CAPI_GET_SERIAL 105 * CAPI_GET_MANUFACTURER, CAPI_GET_VERSION, CAPI_GET_SERIAL
106 * and CAPI_GET_PROFILE 106 * and CAPI_GET_PROFILE
107 */ 107 */
108typedef union capi_ioctl_struct { 108typedef union capi_ioctl_struct {
diff --git a/include/uapi/linux/dn.h b/include/uapi/linux/dn.h
index 5fbdd3d49eba..4295c745f342 100644
--- a/include/uapi/linux/dn.h
+++ b/include/uapi/linux/dn.h
@@ -1,6 +1,7 @@
1#ifndef _LINUX_DN_H 1#ifndef _LINUX_DN_H
2#define _LINUX_DN_H 2#define _LINUX_DN_H
3 3
4#include <linux/ioctl.h>
4#include <linux/types.h> 5#include <linux/types.h>
5#include <linux/if_ether.h> 6#include <linux/if_ether.h>
6 7
diff --git a/include/uapi/linux/fd.h b/include/uapi/linux/fd.h
index f1f3dd5981b2..84c517cbce90 100644
--- a/include/uapi/linux/fd.h
+++ b/include/uapi/linux/fd.h
@@ -185,7 +185,8 @@ enum {
185 * to clear media change status */ 185 * to clear media change status */
186 FD_UNUSED_BIT, 186 FD_UNUSED_BIT,
187 FD_DISK_CHANGED_BIT, /* disk has been changed since last i/o */ 187 FD_DISK_CHANGED_BIT, /* disk has been changed since last i/o */
188 FD_DISK_WRITABLE_BIT /* disk is writable */ 188 FD_DISK_WRITABLE_BIT, /* disk is writable */
189 FD_OPEN_SHOULD_FAIL_BIT
189}; 190};
190 191
191#define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params) 192#define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params)
diff --git a/include/uapi/linux/hyperv.h b/include/uapi/linux/hyperv.h
new file mode 100644
index 000000000000..9beb7c991638
--- /dev/null
+++ b/include/uapi/linux/hyperv.h
@@ -0,0 +1,390 @@
1/*
2 *
3 * Copyright (c) 2011, Microsoft Corporation.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
16 * Place - Suite 330, Boston, MA 02111-1307 USA.
17 *
18 * Authors:
19 * Haiyang Zhang <haiyangz@microsoft.com>
20 * Hank Janssen <hjanssen@microsoft.com>
21 * K. Y. Srinivasan <kys@microsoft.com>
22 *
23 */
24
25#ifndef _UAPI_HYPERV_H
26#define _UAPI_HYPERV_H
27
28#include <linux/uuid.h>
29
30/*
31 * Framework version for util services.
32 */
33#define UTIL_FW_MINOR 0
34
35#define UTIL_WS2K8_FW_MAJOR 1
36#define UTIL_WS2K8_FW_VERSION (UTIL_WS2K8_FW_MAJOR << 16 | UTIL_FW_MINOR)
37
38#define UTIL_FW_MAJOR 3
39#define UTIL_FW_VERSION (UTIL_FW_MAJOR << 16 | UTIL_FW_MINOR)
40
41
42/*
43 * Implementation of host controlled snapshot of the guest.
44 */
45
46#define VSS_OP_REGISTER 128
47
48enum hv_vss_op {
49 VSS_OP_CREATE = 0,
50 VSS_OP_DELETE,
51 VSS_OP_HOT_BACKUP,
52 VSS_OP_GET_DM_INFO,
53 VSS_OP_BU_COMPLETE,
54 /*
55 * Following operations are only supported with IC version >= 5.0
56 */
57 VSS_OP_FREEZE, /* Freeze the file systems in the VM */
58 VSS_OP_THAW, /* Unfreeze the file systems */
59 VSS_OP_AUTO_RECOVER,
60 VSS_OP_COUNT /* Number of operations, must be last */
61};
62
63
64/*
65 * Header for all VSS messages.
66 */
67struct hv_vss_hdr {
68 __u8 operation;
69 __u8 reserved[7];
70} __attribute__((packed));
71
72
73/*
74 * Flag values for the hv_vss_check_feature. Linux supports only
75 * one value.
76 */
77#define VSS_HBU_NO_AUTO_RECOVERY 0x00000005
78
79struct hv_vss_check_feature {
80 __u32 flags;
81} __attribute__((packed));
82
83struct hv_vss_check_dm_info {
84 __u32 flags;
85} __attribute__((packed));
86
87struct hv_vss_msg {
88 union {
89 struct hv_vss_hdr vss_hdr;
90 int error;
91 };
92 union {
93 struct hv_vss_check_feature vss_cf;
94 struct hv_vss_check_dm_info dm_info;
95 };
96} __attribute__((packed));
97
98/*
99 * Implementation of a host to guest copy facility.
100 */
101
102#define FCOPY_VERSION_0 0
103#define FCOPY_CURRENT_VERSION FCOPY_VERSION_0
104#define W_MAX_PATH 260
105
106enum hv_fcopy_op {
107 START_FILE_COPY = 0,
108 WRITE_TO_FILE,
109 COMPLETE_FCOPY,
110 CANCEL_FCOPY,
111};
112
113struct hv_fcopy_hdr {
114 __u32 operation;
115 uuid_le service_id0; /* currently unused */
116 uuid_le service_id1; /* currently unused */
117} __attribute__((packed));
118
119#define OVER_WRITE 0x1
120#define CREATE_PATH 0x2
121
122struct hv_start_fcopy {
123 struct hv_fcopy_hdr hdr;
124 __u16 file_name[W_MAX_PATH];
125 __u16 path_name[W_MAX_PATH];
126 __u32 copy_flags;
127 __u64 file_size;
128} __attribute__((packed));
129
130/*
131 * The file is chunked into fragments.
132 */
133#define DATA_FRAGMENT (6 * 1024)
134
135struct hv_do_fcopy {
136 struct hv_fcopy_hdr hdr;
137 __u64 offset;
138 __u32 size;
139 __u8 data[DATA_FRAGMENT];
140};
141
142/*
143 * An implementation of HyperV key value pair (KVP) functionality for Linux.
144 *
145 *
146 * Copyright (C) 2010, Novell, Inc.
147 * Author : K. Y. Srinivasan <ksrinivasan@novell.com>
148 *
149 */
150
151/*
152 * Maximum value size - used for both key names and value data, and includes
153 * any applicable NULL terminators.
154 *
155 * Note: This limit is somewhat arbitrary, but falls easily within what is
156 * supported for all native guests (back to Win 2000) and what is reasonable
157 * for the IC KVP exchange functionality. Note that Windows Me/98/95 are
158 * limited to 255 character key names.
159 *
160 * MSDN recommends not storing data values larger than 2048 bytes in the
161 * registry.
162 *
163 * Note: This value is used in defining the KVP exchange message - this value
164 * cannot be modified without affecting the message size and compatibility.
165 */
166
167/*
168 * bytes, including any null terminators
169 */
170#define HV_KVP_EXCHANGE_MAX_VALUE_SIZE (2048)
171
172
173/*
174 * Maximum key size - the registry limit for the length of an entry name
175 * is 256 characters, including the null terminator
176 */
177
178#define HV_KVP_EXCHANGE_MAX_KEY_SIZE (512)
179
180/*
181 * In Linux, we implement the KVP functionality in two components:
182 * 1) The kernel component which is packaged as part of the hv_utils driver
183 * is responsible for communicating with the host and responsible for
184 * implementing the host/guest protocol. 2) A user level daemon that is
185 * responsible for data gathering.
186 *
187 * Host/Guest Protocol: The host iterates over an index and expects the guest
188 * to assign a key name to the index and also return the value corresponding to
189 * the key. The host will have atmost one KVP transaction outstanding at any
190 * given point in time. The host side iteration stops when the guest returns
191 * an error. Microsoft has specified the following mapping of key names to
192 * host specified index:
193 *
194 * Index Key Name
195 * 0 FullyQualifiedDomainName
196 * 1 IntegrationServicesVersion
197 * 2 NetworkAddressIPv4
198 * 3 NetworkAddressIPv6
199 * 4 OSBuildNumber
200 * 5 OSName
201 * 6 OSMajorVersion
202 * 7 OSMinorVersion
203 * 8 OSVersion
204 * 9 ProcessorArchitecture
205 *
206 * The Windows host expects the Key Name and Key Value to be encoded in utf16.
207 *
208 * Guest Kernel/KVP Daemon Protocol: As noted earlier, we implement all of the
209 * data gathering functionality in a user mode daemon. The user level daemon
210 * is also responsible for binding the key name to the index as well. The
211 * kernel and user-level daemon communicate using a connector channel.
212 *
213 * The user mode component first registers with the
214 * the kernel component. Subsequently, the kernel component requests, data
215 * for the specified keys. In response to this message the user mode component
216 * fills in the value corresponding to the specified key. We overload the
217 * sequence field in the cn_msg header to define our KVP message types.
218 *
219 *
220 * The kernel component simply acts as a conduit for communication between the
221 * Windows host and the user-level daemon. The kernel component passes up the
222 * index received from the Host to the user-level daemon. If the index is
223 * valid (supported), the corresponding key as well as its
224 * value (both are strings) is returned. If the index is invalid
225 * (not supported), a NULL key string is returned.
226 */
227
228
229/*
230 * Registry value types.
231 */
232
233#define REG_SZ 1
234#define REG_U32 4
235#define REG_U64 8
236
237/*
238 * As we look at expanding the KVP functionality to include
239 * IP injection functionality, we need to maintain binary
240 * compatibility with older daemons.
241 *
242 * The KVP opcodes are defined by the host and it was unfortunate
243 * that I chose to treat the registration operation as part of the
244 * KVP operations defined by the host.
245 * Here is the level of compatibility
246 * (between the user level daemon and the kernel KVP driver) that we
247 * will implement:
248 *
249 * An older daemon will always be supported on a newer driver.
250 * A given user level daemon will require a minimal version of the
251 * kernel driver.
252 * If we cannot handle the version differences, we will fail gracefully
253 * (this can happen when we have a user level daemon that is more
254 * advanced than the KVP driver.
255 *
256 * We will use values used in this handshake for determining if we have
257 * workable user level daemon and the kernel driver. We begin by taking the
258 * registration opcode out of the KVP opcode namespace. We will however,
259 * maintain compatibility with the existing user-level daemon code.
260 */
261
262/*
263 * Daemon code not supporting IP injection (legacy daemon).
264 */
265
266#define KVP_OP_REGISTER 4
267
268/*
269 * Daemon code supporting IP injection.
270 * The KVP opcode field is used to communicate the
271 * registration information; so define a namespace that
272 * will be distinct from the host defined KVP opcode.
273 */
274
275#define KVP_OP_REGISTER1 100
276
277enum hv_kvp_exchg_op {
278 KVP_OP_GET = 0,
279 KVP_OP_SET,
280 KVP_OP_DELETE,
281 KVP_OP_ENUMERATE,
282 KVP_OP_GET_IP_INFO,
283 KVP_OP_SET_IP_INFO,
284 KVP_OP_COUNT /* Number of operations, must be last. */
285};
286
287enum hv_kvp_exchg_pool {
288 KVP_POOL_EXTERNAL = 0,
289 KVP_POOL_GUEST,
290 KVP_POOL_AUTO,
291 KVP_POOL_AUTO_EXTERNAL,
292 KVP_POOL_AUTO_INTERNAL,
293 KVP_POOL_COUNT /* Number of pools, must be last. */
294};
295
296/*
297 * Some Hyper-V status codes.
298 */
299
300#define HV_S_OK 0x00000000
301#define HV_E_FAIL 0x80004005
302#define HV_S_CONT 0x80070103
303#define HV_ERROR_NOT_SUPPORTED 0x80070032
304#define HV_ERROR_MACHINE_LOCKED 0x800704F7
305#define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F
306#define HV_INVALIDARG 0x80070057
307#define HV_GUID_NOTFOUND 0x80041002
308
309#define ADDR_FAMILY_NONE 0x00
310#define ADDR_FAMILY_IPV4 0x01
311#define ADDR_FAMILY_IPV6 0x02
312
313#define MAX_ADAPTER_ID_SIZE 128
314#define MAX_IP_ADDR_SIZE 1024
315#define MAX_GATEWAY_SIZE 512
316
317
318struct hv_kvp_ipaddr_value {
319 __u16 adapter_id[MAX_ADAPTER_ID_SIZE];
320 __u8 addr_family;
321 __u8 dhcp_enabled;
322 __u16 ip_addr[MAX_IP_ADDR_SIZE];
323 __u16 sub_net[MAX_IP_ADDR_SIZE];
324 __u16 gate_way[MAX_GATEWAY_SIZE];
325 __u16 dns_addr[MAX_IP_ADDR_SIZE];
326} __attribute__((packed));
327
328
329struct hv_kvp_hdr {
330 __u8 operation;
331 __u8 pool;
332 __u16 pad;
333} __attribute__((packed));
334
335struct hv_kvp_exchg_msg_value {
336 __u32 value_type;
337 __u32 key_size;
338 __u32 value_size;
339 __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
340 union {
341 __u8 value[HV_KVP_EXCHANGE_MAX_VALUE_SIZE];
342 __u32 value_u32;
343 __u64 value_u64;
344 };
345} __attribute__((packed));
346
347struct hv_kvp_msg_enumerate {
348 __u32 index;
349 struct hv_kvp_exchg_msg_value data;
350} __attribute__((packed));
351
352struct hv_kvp_msg_get {
353 struct hv_kvp_exchg_msg_value data;
354};
355
356struct hv_kvp_msg_set {
357 struct hv_kvp_exchg_msg_value data;
358};
359
360struct hv_kvp_msg_delete {
361 __u32 key_size;
362 __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
363};
364
365struct hv_kvp_register {
366 __u8 version[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
367};
368
369struct hv_kvp_msg {
370 union {
371 struct hv_kvp_hdr kvp_hdr;
372 int error;
373 };
374 union {
375 struct hv_kvp_msg_get kvp_get;
376 struct hv_kvp_msg_set kvp_set;
377 struct hv_kvp_msg_delete kvp_delete;
378 struct hv_kvp_msg_enumerate kvp_enum_data;
379 struct hv_kvp_ipaddr_value kvp_ip_val;
380 struct hv_kvp_register kvp_register;
381 } body;
382} __attribute__((packed));
383
384struct hv_kvp_ip_msg {
385 __u8 operation;
386 __u8 pool;
387 struct hv_kvp_ipaddr_value kvp_ip_val;
388} __attribute__((packed));
389
390#endif /* _UAPI_HYPERV_H */
diff --git a/include/uapi/linux/if_addr.h b/include/uapi/linux/if_addr.h
index 23357ab81a77..dea10a87dfd1 100644
--- a/include/uapi/linux/if_addr.h
+++ b/include/uapi/linux/if_addr.h
@@ -18,6 +18,9 @@ struct ifaddrmsg {
18 * It makes no difference for normally configured broadcast interfaces, 18 * It makes no difference for normally configured broadcast interfaces,
19 * but for point-to-point IFA_ADDRESS is DESTINATION address, 19 * but for point-to-point IFA_ADDRESS is DESTINATION address,
20 * local address is supplied in IFA_LOCAL attribute. 20 * local address is supplied in IFA_LOCAL attribute.
21 *
22 * IFA_FLAGS is a u32 attribute that extends the u8 field ifa_flags.
23 * If present, the value from struct ifaddrmsg will be ignored.
21 */ 24 */
22enum { 25enum {
23 IFA_UNSPEC, 26 IFA_UNSPEC,
@@ -28,6 +31,7 @@ enum {
28 IFA_ANYCAST, 31 IFA_ANYCAST,
29 IFA_CACHEINFO, 32 IFA_CACHEINFO,
30 IFA_MULTICAST, 33 IFA_MULTICAST,
34 IFA_FLAGS,
31 __IFA_MAX, 35 __IFA_MAX,
32}; 36};
33 37
@@ -44,6 +48,8 @@ enum {
44#define IFA_F_DEPRECATED 0x20 48#define IFA_F_DEPRECATED 0x20
45#define IFA_F_TENTATIVE 0x40 49#define IFA_F_TENTATIVE 0x40
46#define IFA_F_PERMANENT 0x80 50#define IFA_F_PERMANENT 0x80
51#define IFA_F_MANAGETEMPADDR 0x100
52#define IFA_F_NOPREFIXROUTE 0x200
47 53
48struct ifa_cacheinfo { 54struct ifa_cacheinfo {
49 __u32 ifa_prefered; 55 __u32 ifa_prefered;
diff --git a/include/uapi/linux/if_arp.h b/include/uapi/linux/if_arp.h
index d7fea3496f32..4d024d75d64b 100644
--- a/include/uapi/linux/if_arp.h
+++ b/include/uapi/linux/if_arp.h
@@ -94,6 +94,7 @@
94#define ARPHRD_CAIF 822 /* CAIF media type */ 94#define ARPHRD_CAIF 822 /* CAIF media type */
95#define ARPHRD_IP6GRE 823 /* GRE over IPv6 */ 95#define ARPHRD_IP6GRE 823 /* GRE over IPv6 */
96#define ARPHRD_NETLINK 824 /* Netlink header */ 96#define ARPHRD_NETLINK 824 /* Netlink header */
97#define ARPHRD_6LOWPAN 825 /* IPv6 over LoWPAN */
97 98
98#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ 99#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */
99#define ARPHRD_NONE 0xFFFE /* zero header length */ 100#define ARPHRD_NONE 0xFFFE /* zero header length */
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 6db460121f84..16410b6e7819 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -240,6 +240,8 @@ enum {
240 IFLA_INFO_KIND, 240 IFLA_INFO_KIND,
241 IFLA_INFO_DATA, 241 IFLA_INFO_DATA,
242 IFLA_INFO_XSTATS, 242 IFLA_INFO_XSTATS,
243 IFLA_INFO_SLAVE_KIND,
244 IFLA_INFO_SLAVE_DATA,
243 __IFLA_INFO_MAX, 245 __IFLA_INFO_MAX,
244}; 246};
245 247
@@ -331,11 +333,57 @@ enum {
331 IFLA_BOND_UNSPEC, 333 IFLA_BOND_UNSPEC,
332 IFLA_BOND_MODE, 334 IFLA_BOND_MODE,
333 IFLA_BOND_ACTIVE_SLAVE, 335 IFLA_BOND_ACTIVE_SLAVE,
336 IFLA_BOND_MIIMON,
337 IFLA_BOND_UPDELAY,
338 IFLA_BOND_DOWNDELAY,
339 IFLA_BOND_USE_CARRIER,
340 IFLA_BOND_ARP_INTERVAL,
341 IFLA_BOND_ARP_IP_TARGET,
342 IFLA_BOND_ARP_VALIDATE,
343 IFLA_BOND_ARP_ALL_TARGETS,
344 IFLA_BOND_PRIMARY,
345 IFLA_BOND_PRIMARY_RESELECT,
346 IFLA_BOND_FAIL_OVER_MAC,
347 IFLA_BOND_XMIT_HASH_POLICY,
348 IFLA_BOND_RESEND_IGMP,
349 IFLA_BOND_NUM_PEER_NOTIF,
350 IFLA_BOND_ALL_SLAVES_ACTIVE,
351 IFLA_BOND_MIN_LINKS,
352 IFLA_BOND_LP_INTERVAL,
353 IFLA_BOND_PACKETS_PER_SLAVE,
354 IFLA_BOND_AD_LACP_RATE,
355 IFLA_BOND_AD_SELECT,
356 IFLA_BOND_AD_INFO,
334 __IFLA_BOND_MAX, 357 __IFLA_BOND_MAX,
335}; 358};
336 359
337#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) 360#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
338 361
362enum {
363 IFLA_BOND_AD_INFO_UNSPEC,
364 IFLA_BOND_AD_INFO_AGGREGATOR,
365 IFLA_BOND_AD_INFO_NUM_PORTS,
366 IFLA_BOND_AD_INFO_ACTOR_KEY,
367 IFLA_BOND_AD_INFO_PARTNER_KEY,
368 IFLA_BOND_AD_INFO_PARTNER_MAC,
369 __IFLA_BOND_AD_INFO_MAX,
370};
371
372#define IFLA_BOND_AD_INFO_MAX (__IFLA_BOND_AD_INFO_MAX - 1)
373
374enum {
375 IFLA_BOND_SLAVE_UNSPEC,
376 IFLA_BOND_SLAVE_STATE,
377 IFLA_BOND_SLAVE_MII_STATUS,
378 IFLA_BOND_SLAVE_LINK_FAILURE_COUNT,
379 IFLA_BOND_SLAVE_PERM_HWADDR,
380 IFLA_BOND_SLAVE_QUEUE_ID,
381 IFLA_BOND_SLAVE_AD_AGGREGATOR_ID,
382 __IFLA_BOND_SLAVE_MAX,
383};
384
385#define IFLA_BOND_SLAVE_MAX (__IFLA_BOND_SLAVE_MAX - 1)
386
339/* SR-IOV virtual function management section */ 387/* SR-IOV virtual function management section */
340 388
341enum { 389enum {
diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h
index dbf06667394b..bac27fa05f5b 100644
--- a/include/uapi/linux/if_packet.h
+++ b/include/uapi/linux/if_packet.h
@@ -26,8 +26,10 @@ struct sockaddr_ll {
26#define PACKET_MULTICAST 2 /* To group */ 26#define PACKET_MULTICAST 2 /* To group */
27#define PACKET_OTHERHOST 3 /* To someone else */ 27#define PACKET_OTHERHOST 3 /* To someone else */
28#define PACKET_OUTGOING 4 /* Outgoing of any type */ 28#define PACKET_OUTGOING 4 /* Outgoing of any type */
29/* These ones are invisible by user level */
30#define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */ 29#define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */
30#define PACKET_USER 6 /* To user space */
31#define PACKET_KERNEL 7 /* To kernel space */
32/* Unused, PACKET_FASTROUTE and PACKET_LOOPBACK are invisible to user space */
31#define PACKET_FASTROUTE 6 /* Fastrouted frame */ 33#define PACKET_FASTROUTE 6 /* Fastrouted frame */
32 34
33/* Packet socket options */ 35/* Packet socket options */
@@ -51,12 +53,14 @@ struct sockaddr_ll {
51#define PACKET_TIMESTAMP 17 53#define PACKET_TIMESTAMP 17
52#define PACKET_FANOUT 18 54#define PACKET_FANOUT 18
53#define PACKET_TX_HAS_OFF 19 55#define PACKET_TX_HAS_OFF 19
56#define PACKET_QDISC_BYPASS 20
54 57
55#define PACKET_FANOUT_HASH 0 58#define PACKET_FANOUT_HASH 0
56#define PACKET_FANOUT_LB 1 59#define PACKET_FANOUT_LB 1
57#define PACKET_FANOUT_CPU 2 60#define PACKET_FANOUT_CPU 2
58#define PACKET_FANOUT_ROLLOVER 3 61#define PACKET_FANOUT_ROLLOVER 3
59#define PACKET_FANOUT_RND 4 62#define PACKET_FANOUT_RND 4
63#define PACKET_FANOUT_QM 5
60#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 64#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000
61#define PACKET_FANOUT_FLAG_DEFRAG 0x8000 65#define PACKET_FANOUT_FLAG_DEFRAG 0x8000
62 66
@@ -83,17 +87,18 @@ struct tpacket_auxdata {
83 __u16 tp_mac; 87 __u16 tp_mac;
84 __u16 tp_net; 88 __u16 tp_net;
85 __u16 tp_vlan_tci; 89 __u16 tp_vlan_tci;
86 __u16 tp_padding; 90 __u16 tp_vlan_tpid;
87}; 91};
88 92
89/* Rx ring - header status */ 93/* Rx ring - header status */
90#define TP_STATUS_KERNEL 0 94#define TP_STATUS_KERNEL 0
91#define TP_STATUS_USER (1 << 0) 95#define TP_STATUS_USER (1 << 0)
92#define TP_STATUS_COPY (1 << 1) 96#define TP_STATUS_COPY (1 << 1)
93#define TP_STATUS_LOSING (1 << 2) 97#define TP_STATUS_LOSING (1 << 2)
94#define TP_STATUS_CSUMNOTREADY (1 << 3) 98#define TP_STATUS_CSUMNOTREADY (1 << 3)
95#define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */ 99#define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */
96#define TP_STATUS_BLK_TMO (1 << 5) 100#define TP_STATUS_BLK_TMO (1 << 5)
101#define TP_STATUS_VLAN_TPID_VALID (1 << 6) /* auxdata has valid tp_vlan_tpid */
97 102
98/* Tx ring - header status */ 103/* Tx ring - header status */
99#define TP_STATUS_AVAILABLE 0 104#define TP_STATUS_AVAILABLE 0
@@ -132,12 +137,15 @@ struct tpacket2_hdr {
132 __u32 tp_sec; 137 __u32 tp_sec;
133 __u32 tp_nsec; 138 __u32 tp_nsec;
134 __u16 tp_vlan_tci; 139 __u16 tp_vlan_tci;
135 __u16 tp_padding; 140 __u16 tp_vlan_tpid;
141 __u8 tp_padding[4];
136}; 142};
137 143
138struct tpacket_hdr_variant1 { 144struct tpacket_hdr_variant1 {
139 __u32 tp_rxhash; 145 __u32 tp_rxhash;
140 __u32 tp_vlan_tci; 146 __u32 tp_vlan_tci;
147 __u16 tp_vlan_tpid;
148 __u16 tp_padding;
141}; 149};
142 150
143struct tpacket3_hdr { 151struct tpacket3_hdr {
@@ -153,6 +161,7 @@ struct tpacket3_hdr {
153 union { 161 union {
154 struct tpacket_hdr_variant1 hv1; 162 struct tpacket_hdr_variant1 hv1;
155 }; 163 };
164 __u8 tp_padding[8];
156}; 165};
157 166
158struct tpacket_bd_ts { 167struct tpacket_bd_ts {
diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h
index 440d5c479145..e9a1d2d973b6 100644
--- a/include/uapi/linux/in6.h
+++ b/include/uapi/linux/in6.h
@@ -85,6 +85,8 @@ struct in6_flowlabel_req {
85 85
86#define IPV6_FL_F_CREATE 1 86#define IPV6_FL_F_CREATE 1
87#define IPV6_FL_F_EXCL 2 87#define IPV6_FL_F_EXCL 2
88#define IPV6_FL_F_REFLECT 4
89#define IPV6_FL_F_REMOTE 8
88 90
89#define IPV6_FL_S_NONE 0 91#define IPV6_FL_S_NONE 0
90#define IPV6_FL_S_EXCL 1 92#define IPV6_FL_S_EXCL 1
@@ -126,22 +128,13 @@ struct in6_flowlabel_req {
126 * IPV6 extension headers 128 * IPV6 extension headers
127 */ 129 */
128#if __UAPI_DEF_IPPROTO_V6 130#if __UAPI_DEF_IPPROTO_V6
129enum { 131#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
130 IPPROTO_HOPOPTS = 0, /* IPv6 hop-by-hop options */ 132#define IPPROTO_ROUTING 43 /* IPv6 routing header */
131#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS 133#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
132 IPPROTO_ROUTING = 43, /* IPv6 routing header */ 134#define IPPROTO_ICMPV6 58 /* ICMPv6 */
133#define IPPROTO_ROUTING IPPROTO_ROUTING 135#define IPPROTO_NONE 59 /* IPv6 no next header */
134 IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header */ 136#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */
135#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT 137#define IPPROTO_MH 135 /* IPv6 mobility header */
136 IPPROTO_ICMPV6 = 58, /* ICMPv6 */
137#define IPPROTO_ICMPV6 IPPROTO_ICMPV6
138 IPPROTO_NONE = 59, /* IPv6 no next header */
139#define IPPROTO_NONE IPPROTO_NONE
140 IPPROTO_DSTOPTS = 60, /* IPv6 destination options */
141#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS
142 IPPROTO_MH = 135, /* IPv6 mobility header */
143#define IPPROTO_MH IPPROTO_MH
144};
145#endif /* __UAPI_DEF_IPPROTO_V6 */ 138#endif /* __UAPI_DEF_IPPROTO_V6 */
146 139
147/* 140/*
@@ -188,6 +181,10 @@ enum {
188#define IPV6_PMTUDISC_WANT 1 181#define IPV6_PMTUDISC_WANT 1
189#define IPV6_PMTUDISC_DO 2 182#define IPV6_PMTUDISC_DO 2
190#define IPV6_PMTUDISC_PROBE 3 183#define IPV6_PMTUDISC_PROBE 3
184/* same as IPV6_PMTUDISC_PROBE, provided for symetry with IPv4
185 * also see comments on IP_PMTUDISC_INTERFACE
186 */
187#define IPV6_PMTUDISC_INTERFACE 4
191 188
192/* Flowlabel */ 189/* Flowlabel */
193#define IPV6_FLOWLABEL_MGR 32 190#define IPV6_FLOWLABEL_MGR 32
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 902f12461873..a8f4ee5d2e82 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -413,6 +413,8 @@ struct kvm_s390_psw {
413#define KVM_S390_PROGRAM_INT 0xfffe0001u 413#define KVM_S390_PROGRAM_INT 0xfffe0001u
414#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u 414#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
415#define KVM_S390_RESTART 0xfffe0003u 415#define KVM_S390_RESTART 0xfffe0003u
416#define KVM_S390_INT_PFAULT_INIT 0xfffe0004u
417#define KVM_S390_INT_PFAULT_DONE 0xfffe0005u
416#define KVM_S390_MCHK 0xfffe1000u 418#define KVM_S390_MCHK 0xfffe1000u
417#define KVM_S390_INT_VIRTIO 0xffff2603u 419#define KVM_S390_INT_VIRTIO 0xffff2603u
418#define KVM_S390_INT_SERVICE 0xffff2401u 420#define KVM_S390_INT_SERVICE 0xffff2401u
@@ -434,6 +436,69 @@ struct kvm_s390_interrupt {
434 __u64 parm64; 436 __u64 parm64;
435}; 437};
436 438
439struct kvm_s390_io_info {
440 __u16 subchannel_id;
441 __u16 subchannel_nr;
442 __u32 io_int_parm;
443 __u32 io_int_word;
444};
445
446struct kvm_s390_ext_info {
447 __u32 ext_params;
448 __u32 pad;
449 __u64 ext_params2;
450};
451
452struct kvm_s390_pgm_info {
453 __u64 trans_exc_code;
454 __u64 mon_code;
455 __u64 per_address;
456 __u32 data_exc_code;
457 __u16 code;
458 __u16 mon_class_nr;
459 __u8 per_code;
460 __u8 per_atmid;
461 __u8 exc_access_id;
462 __u8 per_access_id;
463 __u8 op_access_id;
464 __u8 pad[3];
465};
466
467struct kvm_s390_prefix_info {
468 __u32 address;
469};
470
471struct kvm_s390_extcall_info {
472 __u16 code;
473};
474
475struct kvm_s390_emerg_info {
476 __u16 code;
477};
478
479struct kvm_s390_mchk_info {
480 __u64 cr14;
481 __u64 mcic;
482 __u64 failing_storage_address;
483 __u32 ext_damage_code;
484 __u32 pad;
485 __u8 fixed_logout[16];
486};
487
488struct kvm_s390_irq {
489 __u64 type;
490 union {
491 struct kvm_s390_io_info io;
492 struct kvm_s390_ext_info ext;
493 struct kvm_s390_pgm_info pgm;
494 struct kvm_s390_emerg_info emerg;
495 struct kvm_s390_extcall_info extcall;
496 struct kvm_s390_prefix_info prefix;
497 struct kvm_s390_mchk_info mchk;
498 char reserved[64];
499 } u;
500};
501
437/* for KVM_SET_GUEST_DEBUG */ 502/* for KVM_SET_GUEST_DEBUG */
438 503
439#define KVM_GUESTDBG_ENABLE 0x00000001 504#define KVM_GUESTDBG_ENABLE 0x00000001
@@ -674,6 +739,10 @@ struct kvm_ppc_smmu_info {
674#define KVM_CAP_ARM_EL1_32BIT 93 739#define KVM_CAP_ARM_EL1_32BIT 93
675#define KVM_CAP_SPAPR_MULTITCE 94 740#define KVM_CAP_SPAPR_MULTITCE 94
676#define KVM_CAP_EXT_EMUL_CPUID 95 741#define KVM_CAP_EXT_EMUL_CPUID 95
742#define KVM_CAP_HYPERV_TIME 96
743#define KVM_CAP_IOAPIC_POLARITY_IGNORED 97
744#define KVM_CAP_ENABLE_CAP_VM 98
745#define KVM_CAP_S390_IRQCHIP 99
677 746
678#ifdef KVM_CAP_IRQ_ROUTING 747#ifdef KVM_CAP_IRQ_ROUTING
679 748
@@ -689,9 +758,18 @@ struct kvm_irq_routing_msi {
689 __u32 pad; 758 __u32 pad;
690}; 759};
691 760
761struct kvm_irq_routing_s390_adapter {
762 __u64 ind_addr;
763 __u64 summary_addr;
764 __u64 ind_offset;
765 __u32 summary_offset;
766 __u32 adapter_id;
767};
768
692/* gsi routing entry types */ 769/* gsi routing entry types */
693#define KVM_IRQ_ROUTING_IRQCHIP 1 770#define KVM_IRQ_ROUTING_IRQCHIP 1
694#define KVM_IRQ_ROUTING_MSI 2 771#define KVM_IRQ_ROUTING_MSI 2
772#define KVM_IRQ_ROUTING_S390_ADAPTER 3
695 773
696struct kvm_irq_routing_entry { 774struct kvm_irq_routing_entry {
697 __u32 gsi; 775 __u32 gsi;
@@ -701,6 +779,7 @@ struct kvm_irq_routing_entry {
701 union { 779 union {
702 struct kvm_irq_routing_irqchip irqchip; 780 struct kvm_irq_routing_irqchip irqchip;
703 struct kvm_irq_routing_msi msi; 781 struct kvm_irq_routing_msi msi;
782 struct kvm_irq_routing_s390_adapter adapter;
704 __u32 pad[8]; 783 __u32 pad[8];
705 } u; 784 } u;
706}; 785};
@@ -853,6 +932,8 @@ struct kvm_device_attr {
853#define KVM_DEV_VFIO_GROUP 1 932#define KVM_DEV_VFIO_GROUP 1
854#define KVM_DEV_VFIO_GROUP_ADD 1 933#define KVM_DEV_VFIO_GROUP_ADD 1
855#define KVM_DEV_VFIO_GROUP_DEL 2 934#define KVM_DEV_VFIO_GROUP_DEL 2
935#define KVM_DEV_TYPE_ARM_VGIC_V2 5
936#define KVM_DEV_TYPE_FLIC 6
856 937
857/* 938/*
858 * ioctls for VM fds 939 * ioctls for VM fds
@@ -1007,6 +1088,10 @@ struct kvm_s390_ucas_mapping {
1007/* Available with KVM_CAP_DEBUGREGS */ 1088/* Available with KVM_CAP_DEBUGREGS */
1008#define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs) 1089#define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs)
1009#define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs) 1090#define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs)
1091/*
1092 * vcpu version available with KVM_ENABLE_CAP
1093 * vm version available with KVM_CAP_ENABLE_CAP_VM
1094 */
1010#define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap) 1095#define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap)
1011/* Available with KVM_CAP_XSAVE */ 1096/* Available with KVM_CAP_XSAVE */
1012#define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave) 1097#define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave)
diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h
index ed49574ad757..d847c760e8f0 100644
--- a/include/uapi/linux/media.h
+++ b/include/uapi/linux/media.h
@@ -98,6 +98,7 @@ struct media_entity_desc {
98 98
99#define MEDIA_PAD_FL_SINK (1 << 0) 99#define MEDIA_PAD_FL_SINK (1 << 0)
100#define MEDIA_PAD_FL_SOURCE (1 << 1) 100#define MEDIA_PAD_FL_SOURCE (1 << 1)
101#define MEDIA_PAD_FL_MUST_CONNECT (1 << 2)
101 102
102struct media_pad_desc { 103struct media_pad_desc {
103 __u32 entity; /* entity ID */ 104 __u32 entity; /* entity ID */
diff --git a/include/uapi/linux/mic_ioctl.h b/include/uapi/linux/mic_ioctl.h
index 7fabba5059cf..feb0b4c0814c 100644
--- a/include/uapi/linux/mic_ioctl.h
+++ b/include/uapi/linux/mic_ioctl.h
@@ -39,7 +39,7 @@ struct mic_copy_desc {
39#else 39#else
40 struct iovec *iov; 40 struct iovec *iov;
41#endif 41#endif
42 int iovcnt; 42 __u32 iovcnt;
43 __u8 vr_idx; 43 __u8 vr_idx;
44 __u8 update_used; 44 __u8 update_used;
45 __u32 out_len; 45 __u32 out_len;
diff --git a/include/uapi/linux/mqueue.h b/include/uapi/linux/mqueue.h
index 8b5a79615fbf..d0a2b8e89813 100644
--- a/include/uapi/linux/mqueue.h
+++ b/include/uapi/linux/mqueue.h
@@ -23,11 +23,11 @@
23#define MQ_BYTES_MAX 819200 23#define MQ_BYTES_MAX 819200
24 24
25struct mq_attr { 25struct mq_attr {
26 long mq_flags; /* message queue flags */ 26 __kernel_long_t mq_flags; /* message queue flags */
27 long mq_maxmsg; /* maximum number of messages */ 27 __kernel_long_t mq_maxmsg; /* maximum number of messages */
28 long mq_msgsize; /* maximum message size */ 28 __kernel_long_t mq_msgsize; /* maximum message size */
29 long mq_curmsgs; /* number of messages currently queued */ 29 __kernel_long_t mq_curmsgs; /* number of messages currently queued */
30 long __reserved[4]; /* ignored for input, zeroed for output */ 30 __kernel_long_t __reserved[4]; /* ignored for input, zeroed for output */
31}; 31};
32 32
33/* 33/*
diff --git a/include/uapi/linux/msg.h b/include/uapi/linux/msg.h
index 22d95c6854e0..a70375526578 100644
--- a/include/uapi/linux/msg.h
+++ b/include/uapi/linux/msg.h
@@ -34,8 +34,8 @@ struct msqid_ds {
34 34
35/* message buffer for msgsnd and msgrcv calls */ 35/* message buffer for msgsnd and msgrcv calls */
36struct msgbuf { 36struct msgbuf {
37 long mtype; /* type of message */ 37 __kernel_long_t mtype; /* type of message */
38 char mtext[1]; /* message text */ 38 char mtext[1]; /* message text */
39}; 39};
40 40
41/* buffer for msgctl calls IPC_INFO, MSG_INFO */ 41/* buffer for msgctl calls IPC_INFO, MSG_INFO */
diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h
index f175212420ab..d3ef583104e0 100644
--- a/include/uapi/linux/neighbour.h
+++ b/include/uapi/linux/neighbour.h
@@ -58,7 +58,7 @@ enum {
58 58
59/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change 59/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change
60 and make no address resolution or NUD. 60 and make no address resolution or NUD.
61 NUD_PERMANENT is also cannot be deleted by garbage collectors. 61 NUD_PERMANENT also cannot be deleted by garbage collectors.
62 */ 62 */
63 63
64struct nda_cacheinfo { 64struct nda_cacheinfo {
diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
index ae5df122e42f..f53879c0f590 100644
--- a/include/uapi/linux/net_tstamp.h
+++ b/include/uapi/linux/net_tstamp.h
@@ -26,17 +26,17 @@ enum {
26}; 26};
27 27
28/** 28/**
29 * struct hwtstamp_config - %SIOCSHWTSTAMP parameter 29 * struct hwtstamp_config - %SIOCGHWTSTAMP and %SIOCSHWTSTAMP parameter
30 * 30 *
31 * @flags: no flags defined right now, must be zero 31 * @flags: no flags defined right now, must be zero for %SIOCSHWTSTAMP
32 * @tx_type: one of HWTSTAMP_TX_* 32 * @tx_type: one of HWTSTAMP_TX_*
33 * @rx_type: one of one of HWTSTAMP_FILTER_* 33 * @rx_filter: one of HWTSTAMP_FILTER_*
34 * 34 *
35 * %SIOCSHWTSTAMP expects a &struct ifreq with a ifr_data pointer to 35 * %SIOCGHWTSTAMP and %SIOCSHWTSTAMP expect a &struct ifreq with a
36 * this structure. dev_ifsioc() in the kernel takes care of the 36 * ifr_data pointer to this structure. For %SIOCSHWTSTAMP, if the
37 * translation between 32 bit userspace and 64 bit kernel. The 37 * driver or hardware does not support the requested @rx_filter value,
38 * structure is intentionally chosen so that it has the same layout on 38 * the driver may use a more general filter mode. In this case
39 * 32 and 64 bit systems, don't break this! 39 * @rx_filter will indicate the actual mode on return.
40 */ 40 */
41struct hwtstamp_config { 41struct hwtstamp_config {
42 int flags; 42 int flags;
diff --git a/include/uapi/linux/netconf.h b/include/uapi/linux/netconf.h
index 64804a798b0c..669a1f0b1d97 100644
--- a/include/uapi/linux/netconf.h
+++ b/include/uapi/linux/netconf.h
@@ -14,6 +14,7 @@ enum {
14 NETCONFA_FORWARDING, 14 NETCONFA_FORWARDING,
15 NETCONFA_RP_FILTER, 15 NETCONFA_RP_FILTER,
16 NETCONFA_MC_FORWARDING, 16 NETCONFA_MC_FORWARDING,
17 NETCONFA_PROXY_NEIGH,
17 __NETCONFA_MAX 18 __NETCONFA_MAX
18}; 19};
19#define NETCONFA_MAX (__NETCONFA_MAX - 1) 20#define NETCONFA_MAX (__NETCONFA_MAX - 1)
diff --git a/include/uapi/linux/netfilter.h b/include/uapi/linux/netfilter.h
index f7dc0ebeeba5..ef1b1f88ca18 100644
--- a/include/uapi/linux/netfilter.h
+++ b/include/uapi/linux/netfilter.h
@@ -53,6 +53,7 @@ enum nf_inet_hooks {
53 53
54enum { 54enum {
55 NFPROTO_UNSPEC = 0, 55 NFPROTO_UNSPEC = 0,
56 NFPROTO_INET = 1,
56 NFPROTO_IPV4 = 2, 57 NFPROTO_IPV4 = 2,
57 NFPROTO_ARP = 3, 58 NFPROTO_ARP = 3,
58 NFPROTO_BRIDGE = 7, 59 NFPROTO_BRIDGE = 7,
diff --git a/include/uapi/linux/netfilter/Kbuild b/include/uapi/linux/netfilter/Kbuild
index 17c3af2c4bb9..1d973d2ba417 100644
--- a/include/uapi/linux/netfilter/Kbuild
+++ b/include/uapi/linux/netfilter/Kbuild
@@ -39,6 +39,7 @@ header-y += xt_TEE.h
39header-y += xt_TPROXY.h 39header-y += xt_TPROXY.h
40header-y += xt_addrtype.h 40header-y += xt_addrtype.h
41header-y += xt_bpf.h 41header-y += xt_bpf.h
42header-y += xt_cgroup.h
42header-y += xt_cluster.h 43header-y += xt_cluster.h
43header-y += xt_comment.h 44header-y += xt_comment.h
44header-y += xt_connbytes.h 45header-y += xt_connbytes.h
@@ -54,8 +55,10 @@ header-y += xt_ecn.h
54header-y += xt_esp.h 55header-y += xt_esp.h
55header-y += xt_hashlimit.h 56header-y += xt_hashlimit.h
56header-y += xt_helper.h 57header-y += xt_helper.h
58header-y += xt_ipcomp.h
57header-y += xt_iprange.h 59header-y += xt_iprange.h
58header-y += xt_ipvs.h 60header-y += xt_ipvs.h
61header-y += xt_l2tp.h
59header-y += xt_length.h 62header-y += xt_length.h
60header-y += xt_limit.h 63header-y += xt_limit.h
61header-y += xt_mac.h 64header-y += xt_mac.h
diff --git a/include/uapi/linux/netfilter/nf_nat.h b/include/uapi/linux/netfilter/nf_nat.h
index bf0cc373ffb6..1ad3659102b6 100644
--- a/include/uapi/linux/netfilter/nf_nat.h
+++ b/include/uapi/linux/netfilter/nf_nat.h
@@ -4,10 +4,14 @@
4#include <linux/netfilter.h> 4#include <linux/netfilter.h>
5#include <linux/netfilter/nf_conntrack_tuple_common.h> 5#include <linux/netfilter/nf_conntrack_tuple_common.h>
6 6
7#define NF_NAT_RANGE_MAP_IPS 1 7#define NF_NAT_RANGE_MAP_IPS (1 << 0)
8#define NF_NAT_RANGE_PROTO_SPECIFIED 2 8#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1)
9#define NF_NAT_RANGE_PROTO_RANDOM 4 9#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2)
10#define NF_NAT_RANGE_PERSISTENT 8 10#define NF_NAT_RANGE_PERSISTENT (1 << 3)
11#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4)
12
13#define NF_NAT_RANGE_PROTO_RANDOM_ALL \
14 (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)
11 15
12struct nf_nat_ipv4_range { 16struct nf_nat_ipv4_range {
13 unsigned int flags; 17 unsigned int flags;
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h
index fbfd229a8e99..83c985a6170b 100644
--- a/include/uapi/linux/netfilter/nf_tables.h
+++ b/include/uapi/linux/netfilter/nf_tables.h
@@ -110,11 +110,13 @@ enum nft_table_flags {
110 * 110 *
111 * @NFTA_TABLE_NAME: name of the table (NLA_STRING) 111 * @NFTA_TABLE_NAME: name of the table (NLA_STRING)
112 * @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32) 112 * @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32)
113 * @NFTA_TABLE_USE: number of chains in this table (NLA_U32)
113 */ 114 */
114enum nft_table_attributes { 115enum nft_table_attributes {
115 NFTA_TABLE_UNSPEC, 116 NFTA_TABLE_UNSPEC,
116 NFTA_TABLE_NAME, 117 NFTA_TABLE_NAME,
117 NFTA_TABLE_FLAGS, 118 NFTA_TABLE_FLAGS,
119 NFTA_TABLE_USE,
118 __NFTA_TABLE_MAX 120 __NFTA_TABLE_MAX
119}; 121};
120#define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1) 122#define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
@@ -529,6 +531,8 @@ enum nft_exthdr_attributes {
529 * @NFT_META_NFTRACE: packet nftrace bit 531 * @NFT_META_NFTRACE: packet nftrace bit
530 * @NFT_META_RTCLASSID: realm value of packet's route (skb->dst->tclassid) 532 * @NFT_META_RTCLASSID: realm value of packet's route (skb->dst->tclassid)
531 * @NFT_META_SECMARK: packet secmark (skb->secmark) 533 * @NFT_META_SECMARK: packet secmark (skb->secmark)
534 * @NFT_META_NFPROTO: netfilter protocol
535 * @NFT_META_L4PROTO: layer 4 protocol number
532 */ 536 */
533enum nft_meta_keys { 537enum nft_meta_keys {
534 NFT_META_LEN, 538 NFT_META_LEN,
@@ -546,6 +550,8 @@ enum nft_meta_keys {
546 NFT_META_NFTRACE, 550 NFT_META_NFTRACE,
547 NFT_META_RTCLASSID, 551 NFT_META_RTCLASSID,
548 NFT_META_SECMARK, 552 NFT_META_SECMARK,
553 NFT_META_NFPROTO,
554 NFT_META_L4PROTO,
549}; 555};
550 556
551/** 557/**
@@ -553,11 +559,13 @@ enum nft_meta_keys {
553 * 559 *
554 * @NFTA_META_DREG: destination register (NLA_U32) 560 * @NFTA_META_DREG: destination register (NLA_U32)
555 * @NFTA_META_KEY: meta data item to load (NLA_U32: nft_meta_keys) 561 * @NFTA_META_KEY: meta data item to load (NLA_U32: nft_meta_keys)
562 * @NFTA_META_SREG: source register (NLA_U32)
556 */ 563 */
557enum nft_meta_attributes { 564enum nft_meta_attributes {
558 NFTA_META_UNSPEC, 565 NFTA_META_UNSPEC,
559 NFTA_META_DREG, 566 NFTA_META_DREG,
560 NFTA_META_KEY, 567 NFTA_META_KEY,
568 NFTA_META_SREG,
561 __NFTA_META_MAX 569 __NFTA_META_MAX
562}; 570};
563#define NFTA_META_MAX (__NFTA_META_MAX - 1) 571#define NFTA_META_MAX (__NFTA_META_MAX - 1)
@@ -601,12 +609,14 @@ enum nft_ct_keys {
601 * @NFTA_CT_DREG: destination register (NLA_U32) 609 * @NFTA_CT_DREG: destination register (NLA_U32)
602 * @NFTA_CT_KEY: conntrack data item to load (NLA_U32: nft_ct_keys) 610 * @NFTA_CT_KEY: conntrack data item to load (NLA_U32: nft_ct_keys)
603 * @NFTA_CT_DIRECTION: direction in case of directional keys (NLA_U8) 611 * @NFTA_CT_DIRECTION: direction in case of directional keys (NLA_U8)
612 * @NFTA_CT_SREG: source register (NLA_U32)
604 */ 613 */
605enum nft_ct_attributes { 614enum nft_ct_attributes {
606 NFTA_CT_UNSPEC, 615 NFTA_CT_UNSPEC,
607 NFTA_CT_DREG, 616 NFTA_CT_DREG,
608 NFTA_CT_KEY, 617 NFTA_CT_KEY,
609 NFTA_CT_DIRECTION, 618 NFTA_CT_DIRECTION,
619 NFTA_CT_SREG,
610 __NFTA_CT_MAX 620 __NFTA_CT_MAX
611}; 621};
612#define NFTA_CT_MAX (__NFTA_CT_MAX - 1) 622#define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
@@ -658,6 +668,26 @@ enum nft_log_attributes {
658#define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1) 668#define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1)
659 669
660/** 670/**
671 * enum nft_queue_attributes - nf_tables queue expression netlink attributes
672 *
673 * @NFTA_QUEUE_NUM: netlink queue to send messages to (NLA_U16)
674 * @NFTA_QUEUE_TOTAL: number of queues to load balance packets on (NLA_U16)
675 * @NFTA_QUEUE_FLAGS: various flags (NLA_U16)
676 */
677enum nft_queue_attributes {
678 NFTA_QUEUE_UNSPEC,
679 NFTA_QUEUE_NUM,
680 NFTA_QUEUE_TOTAL,
681 NFTA_QUEUE_FLAGS,
682 __NFTA_QUEUE_MAX
683};
684#define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1)
685
686#define NFT_QUEUE_FLAG_BYPASS 0x01 /* for compatibility with v2 */
687#define NFT_QUEUE_FLAG_CPU_FANOUT 0x02 /* use current CPU (no hashing) */
688#define NFT_QUEUE_FLAG_MASK 0x03
689
690/**
661 * enum nft_reject_types - nf_tables reject expression reject types 691 * enum nft_reject_types - nf_tables reject expression reject types
662 * 692 *
663 * @NFT_REJECT_ICMP_UNREACH: reject using ICMP unreachable 693 * @NFT_REJECT_ICMP_UNREACH: reject using ICMP unreachable
diff --git a/include/uapi/linux/netfilter/nfnetlink_queue.h b/include/uapi/linux/netfilter/nfnetlink_queue.h
index 0132bad79de7..8dd819e2b5fe 100644
--- a/include/uapi/linux/netfilter/nfnetlink_queue.h
+++ b/include/uapi/linux/netfilter/nfnetlink_queue.h
@@ -47,6 +47,8 @@ enum nfqnl_attr_type {
47 NFQA_CAP_LEN, /* __u32 length of captured packet */ 47 NFQA_CAP_LEN, /* __u32 length of captured packet */
48 NFQA_SKB_INFO, /* __u32 skb meta information */ 48 NFQA_SKB_INFO, /* __u32 skb meta information */
49 NFQA_EXP, /* nf_conntrack_netlink.h */ 49 NFQA_EXP, /* nf_conntrack_netlink.h */
50 NFQA_UID, /* __u32 sk uid */
51 NFQA_GID, /* __u32 sk gid */
50 52
51 __NFQA_MAX 53 __NFQA_MAX
52}; 54};
@@ -99,7 +101,8 @@ enum nfqnl_attr_config {
99#define NFQA_CFG_F_FAIL_OPEN (1 << 0) 101#define NFQA_CFG_F_FAIL_OPEN (1 << 0)
100#define NFQA_CFG_F_CONNTRACK (1 << 1) 102#define NFQA_CFG_F_CONNTRACK (1 << 1)
101#define NFQA_CFG_F_GSO (1 << 2) 103#define NFQA_CFG_F_GSO (1 << 2)
102#define NFQA_CFG_F_MAX (1 << 3) 104#define NFQA_CFG_F_UID_GID (1 << 3)
105#define NFQA_CFG_F_MAX (1 << 4)
103 106
104/* flags for NFQA_SKB_INFO */ 107/* flags for NFQA_SKB_INFO */
105/* packet appears to have wrong checksums, but they are ok */ 108/* packet appears to have wrong checksums, but they are ok */
diff --git a/include/uapi/linux/netfilter/xt_cgroup.h b/include/uapi/linux/netfilter/xt_cgroup.h
new file mode 100644
index 000000000000..43acb7e175f6
--- /dev/null
+++ b/include/uapi/linux/netfilter/xt_cgroup.h
@@ -0,0 +1,11 @@
1#ifndef _UAPI_XT_CGROUP_H
2#define _UAPI_XT_CGROUP_H
3
4#include <linux/types.h>
5
6struct xt_cgroup_info {
7 __u32 id;
8 __u32 invert;
9};
10
11#endif /* _UAPI_XT_CGROUP_H */
diff --git a/include/uapi/linux/netfilter/xt_ipcomp.h b/include/uapi/linux/netfilter/xt_ipcomp.h
new file mode 100644
index 000000000000..45c7e40eb8e1
--- /dev/null
+++ b/include/uapi/linux/netfilter/xt_ipcomp.h
@@ -0,0 +1,16 @@
1#ifndef _XT_IPCOMP_H
2#define _XT_IPCOMP_H
3
4#include <linux/types.h>
5
6struct xt_ipcomp {
7 __u32 spis[2]; /* Security Parameter Index */
8 __u8 invflags; /* Inverse flags */
9 __u8 hdrres; /* Test of the Reserved Filed */
10};
11
12/* Values for "invflags" field in struct xt_ipcomp. */
13#define XT_IPCOMP_INV_SPI 0x01 /* Invert the sense of spi. */
14#define XT_IPCOMP_INV_MASK 0x01 /* All possible flags. */
15
16#endif /*_XT_IPCOMP_H*/
diff --git a/include/uapi/linux/netfilter/xt_l2tp.h b/include/uapi/linux/netfilter/xt_l2tp.h
new file mode 100644
index 000000000000..7dccfa0acbfa
--- /dev/null
+++ b/include/uapi/linux/netfilter/xt_l2tp.h
@@ -0,0 +1,27 @@
1#ifndef _LINUX_NETFILTER_XT_L2TP_H
2#define _LINUX_NETFILTER_XT_L2TP_H
3
4#include <linux/types.h>
5
6enum xt_l2tp_type {
7 XT_L2TP_TYPE_CONTROL,
8 XT_L2TP_TYPE_DATA,
9};
10
11/* L2TP matching stuff */
12struct xt_l2tp_info {
13 __u32 tid; /* tunnel id */
14 __u32 sid; /* session id */
15 __u8 version; /* L2TP protocol version */
16 __u8 type; /* L2TP packet type */
17 __u8 flags; /* which fields to match */
18};
19
20enum {
21 XT_L2TP_TID = (1 << 0), /* match L2TP tunnel id */
22 XT_L2TP_SID = (1 << 1), /* match L2TP session id */
23 XT_L2TP_VERSION = (1 << 2), /* match L2TP protocol version */
24 XT_L2TP_TYPE = (1 << 3), /* match L2TP packet type */
25};
26
27#endif /* _LINUX_NETFILTER_XT_L2TP_H */
diff --git a/include/uapi/linux/netfilter/xt_osf.h b/include/uapi/linux/netfilter/xt_osf.h
index 18afa495f973..5d66caeba3ee 100644
--- a/include/uapi/linux/netfilter/xt_osf.h
+++ b/include/uapi/linux/netfilter/xt_osf.h
@@ -13,8 +13,7 @@
13 * GNU General Public License for more details. 13 * GNU General Public License for more details.
14 * 14 *
15 * You should have received a copy of the GNU General Public License 15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software 16 * along with this program; if not, see <http://www.gnu.org/licenses/>.
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 17 */
19 18
20#ifndef _XT_OSF_H 19#ifndef _XT_OSF_H
diff --git a/include/uapi/linux/nfs4.h b/include/uapi/linux/nfs4.h
index 788128ebac45..35f5f4c6c260 100644
--- a/include/uapi/linux/nfs4.h
+++ b/include/uapi/linux/nfs4.h
@@ -150,7 +150,7 @@
150#define NFS4_SECINFO_STYLE4_CURRENT_FH 0 150#define NFS4_SECINFO_STYLE4_CURRENT_FH 0
151#define NFS4_SECINFO_STYLE4_PARENT 1 151#define NFS4_SECINFO_STYLE4_PARENT 1
152 152
153#define NFS4_MAX_UINT64 (~(u64)0) 153#define NFS4_MAX_UINT64 (~(__u64)0)
154 154
155/* An NFS4 sessions server must support at least NFS4_MAX_OPS operations. 155/* An NFS4 sessions server must support at least NFS4_MAX_OPS operations.
156 * If a compound requires more operations, adjust NFS4_MAX_OPS accordingly. 156 * If a compound requires more operations, adjust NFS4_MAX_OPS accordingly.
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index f752e9821e71..91054fd660e0 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -581,7 +581,14 @@
581 * operation, %NL80211_ATTR_MAC contains the peer MAC address, and 581 * operation, %NL80211_ATTR_MAC contains the peer MAC address, and
582 * %NL80211_ATTR_REASON_CODE the reason code to be used (only with 582 * %NL80211_ATTR_REASON_CODE the reason code to be used (only with
583 * %NL80211_TDLS_TEARDOWN). 583 * %NL80211_TDLS_TEARDOWN).
584 * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. 584 * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. The
585 * %NL80211_ATTR_TDLS_ACTION attribute determines the type of frame to be
586 * sent. Public Action codes (802.11-2012 8.1.5.1) will be sent as
587 * 802.11 management frames, while TDLS action codes (802.11-2012
588 * 8.5.13.1) will be encapsulated and sent as data frames. The currently
589 * supported Public Action code is %WLAN_PUB_ACTION_TDLS_DISCOVER_RES
590 * and the currently supported TDLS actions codes are given in
591 * &enum ieee80211_tdls_actioncode.
585 * 592 *
586 * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP 593 * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
587 * (or GO) interface (i.e. hostapd) to ask for unexpected frames to 594 * (or GO) interface (i.e. hostapd) to ask for unexpected frames to
@@ -686,6 +693,21 @@
686 * other station that transmission must be blocked until the channel 693 * other station that transmission must be blocked until the channel
687 * switch is complete. 694 * switch is complete.
688 * 695 *
696 * @NL80211_CMD_VENDOR: Vendor-specified command/event. The command is specified
697 * by the %NL80211_ATTR_VENDOR_ID attribute and a sub-command in
698 * %NL80211_ATTR_VENDOR_SUBCMD. Parameter(s) can be transported in
699 * %NL80211_ATTR_VENDOR_DATA.
700 * For feature advertisement, the %NL80211_ATTR_VENDOR_DATA attribute is
701 * used in the wiphy data as a nested attribute containing descriptions
702 * (&struct nl80211_vendor_cmd_info) of the supported vendor commands.
703 * This may also be sent as an event with the same attributes.
704 *
705 * @NL80211_CMD_SET_QOS_MAP: Set Interworking QoS mapping for IP DSCP values.
706 * The QoS mapping information is included in %NL80211_ATTR_QOS_MAP. If
707 * that attribute is not included, QoS mapping is disabled. Since this
708 * QoS mapping is relevant for IP packets, it is only valid during an
709 * association. This is cleared on disassociation and AP restart.
710 *
689 * @NL80211_CMD_MAX: highest used command number 711 * @NL80211_CMD_MAX: highest used command number
690 * @__NL80211_CMD_AFTER_LAST: internal use 712 * @__NL80211_CMD_AFTER_LAST: internal use
691 */ 713 */
@@ -853,6 +875,10 @@ enum nl80211_commands {
853 875
854 NL80211_CMD_CHANNEL_SWITCH, 876 NL80211_CMD_CHANNEL_SWITCH,
855 877
878 NL80211_CMD_VENDOR,
879
880 NL80211_CMD_SET_QOS_MAP,
881
856 /* add new commands above here */ 882 /* add new commands above here */
857 883
858 /* used to define NL80211_CMD_MAX below */ 884 /* used to define NL80211_CMD_MAX below */
@@ -1508,6 +1534,27 @@ enum nl80211_commands {
1508 * to react to radar events, e.g. initiate a channel switch or leave the 1534 * to react to radar events, e.g. initiate a channel switch or leave the
1509 * IBSS network. 1535 * IBSS network.
1510 * 1536 *
1537 * @NL80211_ATTR_SUPPORT_5_MHZ: A flag indicating that the device supports
1538 * 5 MHz channel bandwidth.
1539 * @NL80211_ATTR_SUPPORT_10_MHZ: A flag indicating that the device supports
1540 * 10 MHz channel bandwidth.
1541 *
1542 * @NL80211_ATTR_OPMODE_NOTIF: Operating mode field from Operating Mode
1543 * Notification Element based on association request when used with
1544 * %NL80211_CMD_NEW_STATION; u8 attribute.
1545 *
1546 * @NL80211_ATTR_VENDOR_ID: The vendor ID, either a 24-bit OUI or, if
1547 * %NL80211_VENDOR_ID_IS_LINUX is set, a special Linux ID (not used yet)
1548 * @NL80211_ATTR_VENDOR_SUBCMD: vendor sub-command
1549 * @NL80211_ATTR_VENDOR_DATA: data for the vendor command, if any; this
1550 * attribute is also used for vendor command feature advertisement
1551 * @NL80211_ATTR_VENDOR_EVENTS: used for event list advertising in the wiphy
1552 * info, containing a nested array of possible events
1553 *
1554 * @NL80211_ATTR_QOS_MAP: IP DSCP mapping for Interworking QoS mapping. This
1555 * data is in the format defined for the payload of the QoS Map Set element
1556 * in IEEE Std 802.11-2012, 8.4.2.97.
1557 *
1511 * @NL80211_ATTR_MAX: highest attribute number currently defined 1558 * @NL80211_ATTR_MAX: highest attribute number currently defined
1512 * @__NL80211_ATTR_AFTER_LAST: internal use 1559 * @__NL80211_ATTR_AFTER_LAST: internal use
1513 */ 1560 */
@@ -1824,6 +1871,18 @@ enum nl80211_attrs {
1824 1871
1825 NL80211_ATTR_HANDLE_DFS, 1872 NL80211_ATTR_HANDLE_DFS,
1826 1873
1874 NL80211_ATTR_SUPPORT_5_MHZ,
1875 NL80211_ATTR_SUPPORT_10_MHZ,
1876
1877 NL80211_ATTR_OPMODE_NOTIF,
1878
1879 NL80211_ATTR_VENDOR_ID,
1880 NL80211_ATTR_VENDOR_SUBCMD,
1881 NL80211_ATTR_VENDOR_DATA,
1882 NL80211_ATTR_VENDOR_EVENTS,
1883
1884 NL80211_ATTR_QOS_MAP,
1885
1827 /* add attributes here, update the policy in nl80211.c */ 1886 /* add attributes here, update the policy in nl80211.c */
1828 1887
1829 __NL80211_ATTR_AFTER_LAST, 1888 __NL80211_ATTR_AFTER_LAST,
@@ -2224,10 +2283,9 @@ enum nl80211_band_attr {
2224 * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz 2283 * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
2225 * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current 2284 * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current
2226 * regulatory domain. 2285 * regulatory domain.
2227 * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is 2286 * @NL80211_FREQUENCY_ATTR_NO_IR: no mechanisms that initiate radiation
2228 * permitted on this channel in current regulatory domain. 2287 * are permitted on this channel, this includes sending probe
2229 * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted 2288 * requests, or modes of operation that require beaconing.
2230 * on this channel in current regulatory domain.
2231 * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory 2289 * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
2232 * on this channel in current regulatory domain. 2290 * on this channel in current regulatory domain.
2233 * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm 2291 * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
@@ -2254,8 +2312,8 @@ enum nl80211_frequency_attr {
2254 __NL80211_FREQUENCY_ATTR_INVALID, 2312 __NL80211_FREQUENCY_ATTR_INVALID,
2255 NL80211_FREQUENCY_ATTR_FREQ, 2313 NL80211_FREQUENCY_ATTR_FREQ,
2256 NL80211_FREQUENCY_ATTR_DISABLED, 2314 NL80211_FREQUENCY_ATTR_DISABLED,
2257 NL80211_FREQUENCY_ATTR_PASSIVE_SCAN, 2315 NL80211_FREQUENCY_ATTR_NO_IR,
2258 NL80211_FREQUENCY_ATTR_NO_IBSS, 2316 __NL80211_FREQUENCY_ATTR_NO_IBSS,
2259 NL80211_FREQUENCY_ATTR_RADAR, 2317 NL80211_FREQUENCY_ATTR_RADAR,
2260 NL80211_FREQUENCY_ATTR_MAX_TX_POWER, 2318 NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
2261 NL80211_FREQUENCY_ATTR_DFS_STATE, 2319 NL80211_FREQUENCY_ATTR_DFS_STATE,
@@ -2271,6 +2329,9 @@ enum nl80211_frequency_attr {
2271}; 2329};
2272 2330
2273#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER 2331#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
2332#define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR
2333#define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR
2334#define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR
2274 2335
2275/** 2336/**
2276 * enum nl80211_bitrate_attr - bitrate attributes 2337 * enum nl80211_bitrate_attr - bitrate attributes
@@ -2413,8 +2474,9 @@ enum nl80211_sched_scan_match_attr {
2413 * @NL80211_RRF_DFS: DFS support is required to be used 2474 * @NL80211_RRF_DFS: DFS support is required to be used
2414 * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links 2475 * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links
2415 * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links 2476 * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links
2416 * @NL80211_RRF_PASSIVE_SCAN: passive scan is required 2477 * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed,
2417 * @NL80211_RRF_NO_IBSS: no IBSS is allowed 2478 * this includes probe requests or modes of operation that require
2479 * beaconing.
2418 */ 2480 */
2419enum nl80211_reg_rule_flags { 2481enum nl80211_reg_rule_flags {
2420 NL80211_RRF_NO_OFDM = 1<<0, 2482 NL80211_RRF_NO_OFDM = 1<<0,
@@ -2424,10 +2486,17 @@ enum nl80211_reg_rule_flags {
2424 NL80211_RRF_DFS = 1<<4, 2486 NL80211_RRF_DFS = 1<<4,
2425 NL80211_RRF_PTP_ONLY = 1<<5, 2487 NL80211_RRF_PTP_ONLY = 1<<5,
2426 NL80211_RRF_PTMP_ONLY = 1<<6, 2488 NL80211_RRF_PTMP_ONLY = 1<<6,
2427 NL80211_RRF_PASSIVE_SCAN = 1<<7, 2489 NL80211_RRF_NO_IR = 1<<7,
2428 NL80211_RRF_NO_IBSS = 1<<8, 2490 __NL80211_RRF_NO_IBSS = 1<<8,
2429}; 2491};
2430 2492
2493#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
2494#define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
2495#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
2496
2497/* For backport compatibility with older userspace */
2498#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
2499
2431/** 2500/**
2432 * enum nl80211_dfs_regions - regulatory DFS regions 2501 * enum nl80211_dfs_regions - regulatory DFS regions
2433 * 2502 *
@@ -3058,21 +3127,35 @@ enum nl80211_key_attributes {
3058 * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with 3127 * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with
3059 * 1 = 500 kbps) but without the IE length restriction (at most 3128 * 1 = 500 kbps) but without the IE length restriction (at most
3060 * %NL80211_MAX_SUPP_RATES in a single array). 3129 * %NL80211_MAX_SUPP_RATES in a single array).
3061 * @NL80211_TXRATE_MCS: HT (MCS) rates allowed for TX rate selection 3130 * @NL80211_TXRATE_HT: HT (MCS) rates allowed for TX rate selection
3062 * in an array of MCS numbers. 3131 * in an array of MCS numbers.
3132 * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection,
3133 * see &struct nl80211_txrate_vht
3063 * @__NL80211_TXRATE_AFTER_LAST: internal 3134 * @__NL80211_TXRATE_AFTER_LAST: internal
3064 * @NL80211_TXRATE_MAX: highest TX rate attribute 3135 * @NL80211_TXRATE_MAX: highest TX rate attribute
3065 */ 3136 */
3066enum nl80211_tx_rate_attributes { 3137enum nl80211_tx_rate_attributes {
3067 __NL80211_TXRATE_INVALID, 3138 __NL80211_TXRATE_INVALID,
3068 NL80211_TXRATE_LEGACY, 3139 NL80211_TXRATE_LEGACY,
3069 NL80211_TXRATE_MCS, 3140 NL80211_TXRATE_HT,
3141 NL80211_TXRATE_VHT,
3070 3142
3071 /* keep last */ 3143 /* keep last */
3072 __NL80211_TXRATE_AFTER_LAST, 3144 __NL80211_TXRATE_AFTER_LAST,
3073 NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 3145 NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
3074}; 3146};
3075 3147
3148#define NL80211_TXRATE_MCS NL80211_TXRATE_HT
3149#define NL80211_VHT_NSS_MAX 8
3150
3151/**
3152 * struct nl80211_txrate_vht - VHT MCS/NSS txrate bitmap
3153 * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
3154 */
3155struct nl80211_txrate_vht {
3156 __u16 mcs[NL80211_VHT_NSS_MAX];
3157};
3158
3076/** 3159/**
3077 * enum nl80211_band - Frequency band 3160 * enum nl80211_band - Frequency band
3078 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band 3161 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
@@ -3934,4 +4017,24 @@ enum nl80211_rxmgmt_flags {
3934 NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0, 4017 NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0,
3935}; 4018};
3936 4019
4020/*
4021 * If this flag is unset, the lower 24 bits are an OUI, if set
4022 * a Linux nl80211 vendor ID is used (no such IDs are allocated
4023 * yet, so that's not valid so far)
4024 */
4025#define NL80211_VENDOR_ID_IS_LINUX 0x80000000
4026
4027/**
4028 * struct nl80211_vendor_cmd_info - vendor command data
4029 * @vendor_id: If the %NL80211_VENDOR_ID_IS_LINUX flag is clear, then the
4030 * value is a 24-bit OUI; if it is set then a separately allocated ID
4031 * may be used, but no such IDs are allocated yet. New IDs should be
4032 * added to this file when needed.
4033 * @subcmd: sub-command ID for the command
4034 */
4035struct nl80211_vendor_cmd_info {
4036 __u32 vendor_id;
4037 __u32 subcmd;
4038};
4039
3937#endif /* __LINUX_NL80211_H */ 4040#endif /* __LINUX_NL80211_H */
diff --git a/include/uapi/linux/nvme.h b/include/uapi/linux/nvme.h
index 989c04e0c563..e5ab62201119 100644
--- a/include/uapi/linux/nvme.h
+++ b/include/uapi/linux/nvme.h
@@ -350,6 +350,16 @@ struct nvme_delete_queue {
350 __u32 rsvd11[5]; 350 __u32 rsvd11[5];
351}; 351};
352 352
353struct nvme_abort_cmd {
354 __u8 opcode;
355 __u8 flags;
356 __u16 command_id;
357 __u32 rsvd1[9];
358 __le16 sqid;
359 __u16 cid;
360 __u32 rsvd11[5];
361};
362
353struct nvme_download_firmware { 363struct nvme_download_firmware {
354 __u8 opcode; 364 __u8 opcode;
355 __u8 flags; 365 __u8 flags;
@@ -384,6 +394,7 @@ struct nvme_command {
384 struct nvme_download_firmware dlfw; 394 struct nvme_download_firmware dlfw;
385 struct nvme_format_cmd format; 395 struct nvme_format_cmd format;
386 struct nvme_dsm_cmd dsm; 396 struct nvme_dsm_cmd dsm;
397 struct nvme_abort_cmd abort;
387 }; 398 };
388}; 399};
389 400
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index d120f9fe0017..970553cbbc8e 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -40,7 +40,15 @@ struct ovs_header {
40 40
41#define OVS_DATAPATH_FAMILY "ovs_datapath" 41#define OVS_DATAPATH_FAMILY "ovs_datapath"
42#define OVS_DATAPATH_MCGROUP "ovs_datapath" 42#define OVS_DATAPATH_MCGROUP "ovs_datapath"
43#define OVS_DATAPATH_VERSION 0x1 43
44/* V2:
45 * - API users are expected to provide OVS_DP_ATTR_USER_FEATURES
46 * when creating the datapath.
47 */
48#define OVS_DATAPATH_VERSION 2
49
50/* First OVS datapath version to support features */
51#define OVS_DP_VER_FEATURES 2
44 52
45enum ovs_datapath_cmd { 53enum ovs_datapath_cmd {
46 OVS_DP_CMD_UNSPEC, 54 OVS_DP_CMD_UNSPEC,
@@ -75,6 +83,7 @@ enum ovs_datapath_attr {
75 OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */ 83 OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */
76 OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */ 84 OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */
77 OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */ 85 OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */
86 OVS_DP_ATTR_USER_FEATURES, /* OVS_DP_F_* */
78 __OVS_DP_ATTR_MAX 87 __OVS_DP_ATTR_MAX
79}; 88};
80 89
@@ -106,6 +115,9 @@ struct ovs_vport_stats {
106 __u64 tx_dropped; /* no space available in linux */ 115 __u64 tx_dropped; /* no space available in linux */
107}; 116};
108 117
118/* Allow last Netlink attribute to be unaligned */
119#define OVS_DP_F_UNALIGNED (1 << 0)
120
109/* Fixed logical ports. */ 121/* Fixed logical ports. */
110#define OVSP_LOCAL ((__u32)0) 122#define OVSP_LOCAL ((__u32)0)
111 123
diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h
index ab6b4e7f6657..30db069bce62 100644
--- a/include/uapi/linux/pci_regs.h
+++ b/include/uapi/linux/pci_regs.h
@@ -489,7 +489,12 @@
489#define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */ 489#define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */
490#define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */ 490#define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */
491#define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */ 491#define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */
492#define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003 /* Current Link Speed 8.0GT/s */
492#define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */ 493#define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */
494#define PCI_EXP_LNKSTA_NLW_X1 0x0010 /* Current Link Width x1 */
495#define PCI_EXP_LNKSTA_NLW_X2 0x0020 /* Current Link Width x2 */
496#define PCI_EXP_LNKSTA_NLW_X4 0x0040 /* Current Link Width x4 */
497#define PCI_EXP_LNKSTA_NLW_X8 0x0080 /* Current Link Width x8 */
493#define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */ 498#define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */
494#define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */ 499#define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */
495#define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */ 500#define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */
diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index e244ed412745..853bc1ccb395 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -788,7 +788,7 @@ union perf_mem_data_src {
788#define PERF_MEM_TLB_SHIFT 26 788#define PERF_MEM_TLB_SHIFT 26
789 789
790#define PERF_MEM_S(a, s) \ 790#define PERF_MEM_S(a, s) \
791 (((u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT) 791 (((__u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT)
792 792
793/* 793/*
794 * single taken branch record layout: 794 * single taken branch record layout:
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h
index a806687ad98f..d62316baae94 100644
--- a/include/uapi/linux/pkt_sched.h
+++ b/include/uapi/linux/pkt_sched.h
@@ -173,6 +173,8 @@ enum {
173 TCA_TBF_PTAB, 173 TCA_TBF_PTAB,
174 TCA_TBF_RATE64, 174 TCA_TBF_RATE64,
175 TCA_TBF_PRATE64, 175 TCA_TBF_PRATE64,
176 TCA_TBF_BURST,
177 TCA_TBF_PBURST,
176 __TCA_TBF_MAX, 178 __TCA_TBF_MAX,
177}; 179};
178 180
@@ -523,6 +525,7 @@ enum {
523 TCA_NETEM_LOSS, 525 TCA_NETEM_LOSS,
524 TCA_NETEM_RATE, 526 TCA_NETEM_RATE,
525 TCA_NETEM_ECN, 527 TCA_NETEM_ECN,
528 TCA_NETEM_RATE64,
526 __TCA_NETEM_MAX, 529 __TCA_NETEM_MAX,
527}; 530};
528 531
@@ -790,4 +793,54 @@ struct tc_fq_qd_stats {
790 __u32 throttled_flows; 793 __u32 throttled_flows;
791 __u32 pad; 794 __u32 pad;
792}; 795};
796
797/* Heavy-Hitter Filter */
798
799enum {
800 TCA_HHF_UNSPEC,
801 TCA_HHF_BACKLOG_LIMIT,
802 TCA_HHF_QUANTUM,
803 TCA_HHF_HH_FLOWS_LIMIT,
804 TCA_HHF_RESET_TIMEOUT,
805 TCA_HHF_ADMIT_BYTES,
806 TCA_HHF_EVICT_TIMEOUT,
807 TCA_HHF_NON_HH_WEIGHT,
808 __TCA_HHF_MAX
809};
810
811#define TCA_HHF_MAX (__TCA_HHF_MAX - 1)
812
813struct tc_hhf_xstats {
814 __u32 drop_overlimit; /* number of times max qdisc packet limit
815 * was hit
816 */
817 __u32 hh_overlimit; /* number of times max heavy-hitters was hit */
818 __u32 hh_tot_count; /* number of captured heavy-hitters so far */
819 __u32 hh_cur_count; /* number of current heavy-hitters */
820};
821
822/* PIE */
823enum {
824 TCA_PIE_UNSPEC,
825 TCA_PIE_TARGET,
826 TCA_PIE_LIMIT,
827 TCA_PIE_TUPDATE,
828 TCA_PIE_ALPHA,
829 TCA_PIE_BETA,
830 TCA_PIE_ECN,
831 TCA_PIE_BYTEMODE,
832 __TCA_PIE_MAX
833};
834#define TCA_PIE_MAX (__TCA_PIE_MAX - 1)
835
836struct tc_pie_xstats {
837 __u32 prob; /* current probability */
838 __u32 delay; /* current delay in ms */
839 __u32 avg_dq_rate; /* current average dq_rate in bits/pie_time */
840 __u32 packets_in; /* total number of packets enqueued */
841 __u32 dropped; /* packets dropped due to pie_action */
842 __u32 overlimit; /* dropped due to lack of space in queue */
843 __u32 maxq; /* maximum queue size */
844 __u32 ecn_mark; /* packets marked with ecn*/
845};
793#endif 846#endif
diff --git a/include/uapi/linux/ppp-ioctl.h b/include/uapi/linux/ppp-ioctl.h
index 2d9a8859550a..63a23a3b8bb7 100644
--- a/include/uapi/linux/ppp-ioctl.h
+++ b/include/uapi/linux/ppp-ioctl.h
@@ -12,6 +12,7 @@
12 12
13#include <linux/types.h> 13#include <linux/types.h>
14#include <linux/compiler.h> 14#include <linux/compiler.h>
15#include <linux/ppp_defs.h>
15 16
16/* 17/*
17 * Bit definitions for flags argument to PPPIOCGFLAGS/PPPIOCSFLAGS. 18 * Bit definitions for flags argument to PPPIOCGFLAGS/PPPIOCSFLAGS.
diff --git a/include/uapi/linux/raid/md_p.h b/include/uapi/linux/raid/md_p.h
index f7cf7f351144..49f4210d4394 100644
--- a/include/uapi/linux/raid/md_p.h
+++ b/include/uapi/linux/raid/md_p.h
@@ -292,6 +292,9 @@ struct mdp_superblock_1 {
292 * backwards anyway. 292 * backwards anyway.
293 */ 293 */
294#define MD_FEATURE_NEW_OFFSET 64 /* new_offset must be honoured */ 294#define MD_FEATURE_NEW_OFFSET 64 /* new_offset must be honoured */
295#define MD_FEATURE_RECOVERY_BITMAP 128 /* recovery that is happening
296 * is guided by bitmap.
297 */
295#define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \ 298#define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \
296 |MD_FEATURE_RECOVERY_OFFSET \ 299 |MD_FEATURE_RECOVERY_OFFSET \
297 |MD_FEATURE_RESHAPE_ACTIVE \ 300 |MD_FEATURE_RESHAPE_ACTIVE \
@@ -299,6 +302,7 @@ struct mdp_superblock_1 {
299 |MD_FEATURE_REPLACEMENT \ 302 |MD_FEATURE_REPLACEMENT \
300 |MD_FEATURE_RESHAPE_BACKWARDS \ 303 |MD_FEATURE_RESHAPE_BACKWARDS \
301 |MD_FEATURE_NEW_OFFSET \ 304 |MD_FEATURE_NEW_OFFSET \
305 |MD_FEATURE_RECOVERY_BITMAP \
302 ) 306 )
303 307
304#endif 308#endif
diff --git a/include/uapi/linux/resource.h b/include/uapi/linux/resource.h
index e0ed28477f48..36fb3b5fb181 100644
--- a/include/uapi/linux/resource.h
+++ b/include/uapi/linux/resource.h
@@ -23,25 +23,25 @@
23struct rusage { 23struct rusage {
24 struct timeval ru_utime; /* user time used */ 24 struct timeval ru_utime; /* user time used */
25 struct timeval ru_stime; /* system time used */ 25 struct timeval ru_stime; /* system time used */
26 long ru_maxrss; /* maximum resident set size */ 26 __kernel_long_t ru_maxrss; /* maximum resident set size */
27 long ru_ixrss; /* integral shared memory size */ 27 __kernel_long_t ru_ixrss; /* integral shared memory size */
28 long ru_idrss; /* integral unshared data size */ 28 __kernel_long_t ru_idrss; /* integral unshared data size */
29 long ru_isrss; /* integral unshared stack size */ 29 __kernel_long_t ru_isrss; /* integral unshared stack size */
30 long ru_minflt; /* page reclaims */ 30 __kernel_long_t ru_minflt; /* page reclaims */
31 long ru_majflt; /* page faults */ 31 __kernel_long_t ru_majflt; /* page faults */
32 long ru_nswap; /* swaps */ 32 __kernel_long_t ru_nswap; /* swaps */
33 long ru_inblock; /* block input operations */ 33 __kernel_long_t ru_inblock; /* block input operations */
34 long ru_oublock; /* block output operations */ 34 __kernel_long_t ru_oublock; /* block output operations */
35 long ru_msgsnd; /* messages sent */ 35 __kernel_long_t ru_msgsnd; /* messages sent */
36 long ru_msgrcv; /* messages received */ 36 __kernel_long_t ru_msgrcv; /* messages received */
37 long ru_nsignals; /* signals received */ 37 __kernel_long_t ru_nsignals; /* signals received */
38 long ru_nvcsw; /* voluntary context switches */ 38 __kernel_long_t ru_nvcsw; /* voluntary context switches */
39 long ru_nivcsw; /* involuntary " */ 39 __kernel_long_t ru_nivcsw; /* involuntary " */
40}; 40};
41 41
42struct rlimit { 42struct rlimit {
43 unsigned long rlim_cur; 43 __kernel_ulong_t rlim_cur;
44 unsigned long rlim_max; 44 __kernel_ulong_t rlim_max;
45}; 45};
46 46
47#define RLIM64_INFINITY (~0ULL) 47#define RLIM64_INFINITY (~0ULL)
diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h
index ca451e99b28b..266022a2be4a 100644
--- a/include/uapi/linux/sctp.h
+++ b/include/uapi/linux/sctp.h
@@ -22,9 +22,8 @@
22 * See the GNU General Public License for more details. 22 * See the GNU General Public License for more details.
23 * 23 *
24 * You should have received a copy of the GNU General Public License 24 * You should have received a copy of the GNU General Public License
25 * along with GNU CC; see the file COPYING. If not, write to 25 * along with GNU CC; see the file COPYING. If not, see
26 * the Free Software Foundation, 59 Temple Place - Suite 330, 26 * <http://www.gnu.org/licenses/>.
27 * Boston, MA 02111-1307, USA.
28 * 27 *
29 * Please send any bug reports or fixes you make to the 28 * Please send any bug reports or fixes you make to the
30 * email address(es): 29 * email address(es):
diff --git a/include/uapi/linux/shm.h b/include/uapi/linux/shm.h
index ec36fa1a83a4..78b69413f582 100644
--- a/include/uapi/linux/shm.h
+++ b/include/uapi/linux/shm.h
@@ -68,11 +68,11 @@ struct shminfo {
68 68
69struct shm_info { 69struct shm_info {
70 int used_ids; 70 int used_ids;
71 unsigned long shm_tot; /* total allocated shm */ 71 __kernel_ulong_t shm_tot; /* total allocated shm */
72 unsigned long shm_rss; /* total resident shm */ 72 __kernel_ulong_t shm_rss; /* total resident shm */
73 unsigned long shm_swp; /* total swapped shm */ 73 __kernel_ulong_t shm_swp; /* total swapped shm */
74 unsigned long swap_attempts; 74 __kernel_ulong_t swap_attempts;
75 unsigned long swap_successes; 75 __kernel_ulong_t swap_successes;
76}; 76};
77 77
78 78
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h
index 1bdb4a39d1e1..bbaba22f2d1b 100644
--- a/include/uapi/linux/snmp.h
+++ b/include/uapi/linux/snmp.h
@@ -258,6 +258,7 @@ enum
258 LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */ 258 LINUX_MIB_TCPFASTOPENCOOKIEREQD, /* TCPFastOpenCookieReqd */
259 LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ 259 LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */
260 LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */ 260 LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */
261 LINUX_MIB_TCPAUTOCORKING, /* TCPAutoCorking */
261 __LINUX_MIB_MAX 262 __LINUX_MIB_MAX
262}; 263};
263 264
diff --git a/include/uapi/linux/sockios.h b/include/uapi/linux/sockios.h
index 7997a506ad41..e888b1aed69f 100644
--- a/include/uapi/linux/sockios.h
+++ b/include/uapi/linux/sockios.h
@@ -125,7 +125,8 @@
125#define SIOCBRDELIF 0x89a3 /* remove interface from bridge */ 125#define SIOCBRDELIF 0x89a3 /* remove interface from bridge */
126 126
127/* hardware time stamping: parameters in linux/net_tstamp.h */ 127/* hardware time stamping: parameters in linux/net_tstamp.h */
128#define SIOCSHWTSTAMP 0x89b0 128#define SIOCSHWTSTAMP 0x89b0 /* set and get config */
129#define SIOCGHWTSTAMP 0x89b1 /* get config */
129 130
130/* Device private ioctl calls */ 131/* Device private ioctl calls */
131 132
diff --git a/include/uapi/linux/spi/spidev.h b/include/uapi/linux/spi/spidev.h
index 52d9ed01855f..dd5f21e75805 100644
--- a/include/uapi/linux/spi/spidev.h
+++ b/include/uapi/linux/spi/spidev.h
@@ -42,6 +42,10 @@
42#define SPI_LOOP 0x20 42#define SPI_LOOP 0x20
43#define SPI_NO_CS 0x40 43#define SPI_NO_CS 0x40
44#define SPI_READY 0x80 44#define SPI_READY 0x80
45#define SPI_TX_DUAL 0x100
46#define SPI_TX_QUAD 0x200
47#define SPI_RX_DUAL 0x400
48#define SPI_RX_QUAD 0x800
45 49
46/*---------------------------------------------------------------------------*/ 50/*---------------------------------------------------------------------------*/
47 51
@@ -92,7 +96,9 @@ struct spi_ioc_transfer {
92 __u16 delay_usecs; 96 __u16 delay_usecs;
93 __u8 bits_per_word; 97 __u8 bits_per_word;
94 __u8 cs_change; 98 __u8 cs_change;
95 __u32 pad; 99 __u8 tx_nbits;
100 __u8 rx_nbits;
101 __u16 pad;
96 102
97 /* If the contents of 'struct spi_ioc_transfer' ever change 103 /* If the contents of 'struct spi_ioc_transfer' ever change
98 * incompatibly, then the ioctl number (currently 0) must change; 104 * incompatibly, then the ioctl number (currently 0) must change;
@@ -110,7 +116,7 @@ struct spi_ioc_transfer {
110#define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)]) 116#define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)])
111 117
112 118
113/* Read / Write of SPI mode (SPI_MODE_0..SPI_MODE_3) */ 119/* Read / Write of SPI mode (SPI_MODE_0..SPI_MODE_3) (limited to 8 bits) */
114#define SPI_IOC_RD_MODE _IOR(SPI_IOC_MAGIC, 1, __u8) 120#define SPI_IOC_RD_MODE _IOR(SPI_IOC_MAGIC, 1, __u8)
115#define SPI_IOC_WR_MODE _IOW(SPI_IOC_MAGIC, 1, __u8) 121#define SPI_IOC_WR_MODE _IOW(SPI_IOC_MAGIC, 1, __u8)
116 122
@@ -126,6 +132,10 @@ struct spi_ioc_transfer {
126#define SPI_IOC_RD_MAX_SPEED_HZ _IOR(SPI_IOC_MAGIC, 4, __u32) 132#define SPI_IOC_RD_MAX_SPEED_HZ _IOR(SPI_IOC_MAGIC, 4, __u32)
127#define SPI_IOC_WR_MAX_SPEED_HZ _IOW(SPI_IOC_MAGIC, 4, __u32) 133#define SPI_IOC_WR_MAX_SPEED_HZ _IOW(SPI_IOC_MAGIC, 4, __u32)
128 134
135/* Read / Write of the SPI mode field */
136#define SPI_IOC_RD_MODE32 _IOR(SPI_IOC_MAGIC, 5, __u32)
137#define SPI_IOC_WR_MODE32 _IOW(SPI_IOC_MAGIC, 5, __u32)
138
129 139
130 140
131#endif /* SPIDEV_H */ 141#endif /* SPIDEV_H */
diff --git a/include/uapi/linux/tc_act/tc_ipt.h b/include/uapi/linux/tc_act/tc_ipt.h
index a2335563d21f..130aaadf6fac 100644
--- a/include/uapi/linux/tc_act/tc_ipt.h
+++ b/include/uapi/linux/tc_act/tc_ipt.h
@@ -4,6 +4,7 @@
4#include <linux/pkt_cls.h> 4#include <linux/pkt_cls.h>
5 5
6#define TCA_ACT_IPT 6 6#define TCA_ACT_IPT 6
7#define TCA_ACT_XT 10
7 8
8enum { 9enum {
9 TCA_IPT_UNSPEC, 10 TCA_IPT_UNSPEC,
diff --git a/include/uapi/linux/tcp_metrics.h b/include/uapi/linux/tcp_metrics.h
index cb5157b55f32..54a37b13f2c4 100644
--- a/include/uapi/linux/tcp_metrics.h
+++ b/include/uapi/linux/tcp_metrics.h
@@ -35,6 +35,8 @@ enum {
35 TCP_METRICS_ATTR_FOPEN_SYN_DROPS, /* u16, count of drops */ 35 TCP_METRICS_ATTR_FOPEN_SYN_DROPS, /* u16, count of drops */
36 TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, /* msecs age */ 36 TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS, /* msecs age */
37 TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */ 37 TCP_METRICS_ATTR_FOPEN_COOKIE, /* binary */
38 TCP_METRICS_ATTR_SADDR_IPV4, /* u32 */
39 TCP_METRICS_ATTR_SADDR_IPV6, /* binary */
38 40
39 __TCP_METRICS_ATTR_MAX, 41 __TCP_METRICS_ATTR_MAX,
40}; 42};
diff --git a/include/uapi/linux/timex.h b/include/uapi/linux/timex.h
index a7ea81f13711..92685d826444 100644
--- a/include/uapi/linux/timex.h
+++ b/include/uapi/linux/timex.h
@@ -63,27 +63,27 @@
63 */ 63 */
64struct timex { 64struct timex {
65 unsigned int modes; /* mode selector */ 65 unsigned int modes; /* mode selector */
66 long offset; /* time offset (usec) */ 66 __kernel_long_t offset; /* time offset (usec) */
67 long freq; /* frequency offset (scaled ppm) */ 67 __kernel_long_t freq; /* frequency offset (scaled ppm) */
68 long maxerror; /* maximum error (usec) */ 68 __kernel_long_t maxerror;/* maximum error (usec) */
69 long esterror; /* estimated error (usec) */ 69 __kernel_long_t esterror;/* estimated error (usec) */
70 int status; /* clock command/status */ 70 int status; /* clock command/status */
71 long constant; /* pll time constant */ 71 __kernel_long_t constant;/* pll time constant */
72 long precision; /* clock precision (usec) (read only) */ 72 __kernel_long_t precision;/* clock precision (usec) (read only) */
73 long tolerance; /* clock frequency tolerance (ppm) 73 __kernel_long_t tolerance;/* clock frequency tolerance (ppm)
74 * (read only) 74 * (read only)
75 */ 75 */
76 struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ 76 struct timeval time; /* (read only, except for ADJ_SETOFFSET) */
77 long tick; /* (modified) usecs between clock ticks */ 77 __kernel_long_t tick; /* (modified) usecs between clock ticks */
78 78
79 long ppsfreq; /* pps frequency (scaled ppm) (ro) */ 79 __kernel_long_t ppsfreq;/* pps frequency (scaled ppm) (ro) */
80 long jitter; /* pps jitter (us) (ro) */ 80 __kernel_long_t jitter; /* pps jitter (us) (ro) */
81 int shift; /* interval duration (s) (shift) (ro) */ 81 int shift; /* interval duration (s) (shift) (ro) */
82 long stabil; /* pps stability (scaled ppm) (ro) */ 82 __kernel_long_t stabil; /* pps stability (scaled ppm) (ro) */
83 long jitcnt; /* jitter limit exceeded (ro) */ 83 __kernel_long_t jitcnt; /* jitter limit exceeded (ro) */
84 long calcnt; /* calibration intervals (ro) */ 84 __kernel_long_t calcnt; /* calibration intervals (ro) */
85 long errcnt; /* calibration errors (ro) */ 85 __kernel_long_t errcnt; /* calibration errors (ro) */
86 long stbcnt; /* stability limit exceeded (ro) */ 86 __kernel_long_t stbcnt; /* stability limit exceeded (ro) */
87 87
88 int tai; /* TAI offset (ro) */ 88 int tai; /* TAI offset (ro) */
89 89
diff --git a/include/uapi/linux/usb/functionfs.h b/include/uapi/linux/usb/functionfs.h
index d6b01283f85c..2a4b4a72a4f9 100644
--- a/include/uapi/linux/usb/functionfs.h
+++ b/include/uapi/linux/usb/functionfs.h
@@ -10,9 +10,15 @@
10 10
11enum { 11enum {
12 FUNCTIONFS_DESCRIPTORS_MAGIC = 1, 12 FUNCTIONFS_DESCRIPTORS_MAGIC = 1,
13 FUNCTIONFS_STRINGS_MAGIC = 2 13 FUNCTIONFS_STRINGS_MAGIC = 2,
14 FUNCTIONFS_DESCRIPTORS_MAGIC_V2 = 3,
14}; 15};
15 16
17enum functionfs_flags {
18 FUNCTIONFS_HAS_FS_DESC = 1,
19 FUNCTIONFS_HAS_HS_DESC = 2,
20 FUNCTIONFS_HAS_SS_DESC = 4,
21};
16 22
17#ifndef __KERNEL__ 23#ifndef __KERNEL__
18 24
@@ -29,29 +35,39 @@ struct usb_endpoint_descriptor_no_audio {
29 35
30 36
31/* 37/*
32 * All numbers must be in little endian order.
33 */
34
35struct usb_functionfs_descs_head {
36 __le32 magic;
37 __le32 length;
38 __le32 fs_count;
39 __le32 hs_count;
40} __attribute__((packed));
41
42/*
43 * Descriptors format: 38 * Descriptors format:
44 * 39 *
45 * | off | name | type | description | 40 * | off | name | type | description |
46 * |-----+-----------+--------------+--------------------------------------| 41 * |-----+-----------+--------------+--------------------------------------|
47 * | 0 | magic | LE32 | FUNCTIONFS_{FS,HS}_DESCRIPTORS_MAGIC | 42 * | 0 | magic | LE32 | FUNCTIONFS_DESCRIPTORS_MAGIC_V2 |
43 * | 4 | length | LE32 | length of the whole data chunk |
44 * | 8 | flags | LE32 | combination of functionfs_flags |
45 * | | fs_count | LE32 | number of full-speed descriptors |
46 * | | hs_count | LE32 | number of high-speed descriptors |
47 * | | ss_count | LE32 | number of super-speed descriptors |
48 * | | fs_descrs | Descriptor[] | list of full-speed descriptors |
49 * | | hs_descrs | Descriptor[] | list of high-speed descriptors |
50 * | | ss_descrs | Descriptor[] | list of super-speed descriptors |
51 *
52 * Depending on which flags are set, various fields may be missing in the
53 * structure. Any flags that are not recognised cause the whole block to be
54 * rejected with -ENOSYS.
55 *
56 * Legacy descriptors format:
57 *
58 * | off | name | type | description |
59 * |-----+-----------+--------------+--------------------------------------|
60 * | 0 | magic | LE32 | FUNCTIONFS_DESCRIPTORS_MAGIC |
48 * | 4 | length | LE32 | length of the whole data chunk | 61 * | 4 | length | LE32 | length of the whole data chunk |
49 * | 8 | fs_count | LE32 | number of full-speed descriptors | 62 * | 8 | fs_count | LE32 | number of full-speed descriptors |
50 * | 12 | hs_count | LE32 | number of high-speed descriptors | 63 * | 12 | hs_count | LE32 | number of high-speed descriptors |
51 * | 16 | fs_descrs | Descriptor[] | list of full-speed descriptors | 64 * | 16 | fs_descrs | Descriptor[] | list of full-speed descriptors |
52 * | | hs_descrs | Descriptor[] | list of high-speed descriptors | 65 * | | hs_descrs | Descriptor[] | list of high-speed descriptors |
53 * 66 *
54 * descs are just valid USB descriptors and have the following format: 67 * All numbers must be in little endian order.
68 *
69 * Descriptor[] is an array of valid USB descriptors which have the following
70 * format:
55 * 71 *
56 * | off | name | type | description | 72 * | off | name | type | description |
57 * |-----+-----------------+------+--------------------------| 73 * |-----+-----------------+------+--------------------------|
diff --git a/include/uapi/linux/usbdevice_fs.h b/include/uapi/linux/usbdevice_fs.h
index 0c65e4b12617..abe5f4bd4d82 100644
--- a/include/uapi/linux/usbdevice_fs.h
+++ b/include/uapi/linux/usbdevice_fs.h
@@ -102,7 +102,10 @@ struct usbdevfs_urb {
102 int buffer_length; 102 int buffer_length;
103 int actual_length; 103 int actual_length;
104 int start_frame; 104 int start_frame;
105 int number_of_packets; 105 union {
106 int number_of_packets; /* Only used for isoc urbs */
107 unsigned int stream_id; /* Only used with bulk streams */
108 };
106 int error_count; 109 int error_count;
107 unsigned int signr; /* signal to be sent on completion, 110 unsigned int signr; /* signal to be sent on completion,
108 or 0 if none should be sent. */ 111 or 0 if none should be sent. */
@@ -144,6 +147,11 @@ struct usbdevfs_disconnect_claim {
144 char driver[USBDEVFS_MAXDRIVERNAME + 1]; 147 char driver[USBDEVFS_MAXDRIVERNAME + 1];
145}; 148};
146 149
150struct usbdevfs_streams {
151 unsigned int num_streams; /* Not used by USBDEVFS_FREE_STREAMS */
152 unsigned int num_eps;
153 unsigned char eps[0];
154};
147 155
148#define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer) 156#define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer)
149#define USBDEVFS_CONTROL32 _IOWR('U', 0, struct usbdevfs_ctrltransfer32) 157#define USBDEVFS_CONTROL32 _IOWR('U', 0, struct usbdevfs_ctrltransfer32)
@@ -176,5 +184,7 @@ struct usbdevfs_disconnect_claim {
176#define USBDEVFS_RELEASE_PORT _IOR('U', 25, unsigned int) 184#define USBDEVFS_RELEASE_PORT _IOR('U', 25, unsigned int)
177#define USBDEVFS_GET_CAPABILITIES _IOR('U', 26, __u32) 185#define USBDEVFS_GET_CAPABILITIES _IOR('U', 26, __u32)
178#define USBDEVFS_DISCONNECT_CLAIM _IOR('U', 27, struct usbdevfs_disconnect_claim) 186#define USBDEVFS_DISCONNECT_CLAIM _IOR('U', 27, struct usbdevfs_disconnect_claim)
187#define USBDEVFS_ALLOC_STREAMS _IOR('U', 28, struct usbdevfs_streams)
188#define USBDEVFS_FREE_STREAMS _IOR('U', 29, struct usbdevfs_streams)
179 189
180#endif /* _UAPI_LINUX_USBDEVICE_FS_H */ 190#endif /* _UAPI_LINUX_USBDEVICE_FS_H */
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 1666aabbbb86..2cbe605bbe04 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -164,6 +164,10 @@ enum v4l2_colorfx {
164 * this driver */ 164 * this driver */
165#define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_USER_BASE + 0x1050) 165#define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_USER_BASE + 0x1050)
166 166
167/* The base for the saa7134 driver controls.
168 * We reserve 16 controls for this driver. */
169#define V4L2_CID_USER_SAA7134_BASE (V4L2_CID_USER_BASE + 0x1060)
170
167/* MPEG-class control IDs */ 171/* MPEG-class control IDs */
168/* The MPEG controls are applicable to all codec controls 172/* The MPEG controls are applicable to all codec controls
169 * and the 'MPEG' part of the define is historical */ 173 * and the 'MPEG' part of the define is historical */
@@ -554,6 +558,11 @@ enum v4l2_vp8_golden_frame_sel {
554 V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0, 558 V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0,
555 V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1, 559 V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1,
556}; 560};
561#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_MPEG_BASE+507)
562#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508)
563#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509)
564#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
565#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
557 566
558/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ 567/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
559#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) 568#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
diff --git a/include/uapi/linux/v4l2-mediabus.h b/include/uapi/linux/v4l2-mediabus.h
index a9601257bb43..b5c3aab6e82c 100644
--- a/include/uapi/linux/v4l2-mediabus.h
+++ b/include/uapi/linux/v4l2-mediabus.h
@@ -110,6 +110,9 @@ enum v4l2_mbus_pixelcode {
110 110
111 /* S5C73M3 sensor specific interleaved UYVY and JPEG */ 111 /* S5C73M3 sensor specific interleaved UYVY and JPEG */
112 V4L2_MBUS_FMT_S5C_UYVY_JPEG_1X8 = 0x5001, 112 V4L2_MBUS_FMT_S5C_UYVY_JPEG_1X8 = 0x5001,
113
114 /* HSV - next is 0x6002 */
115 V4L2_MBUS_FMT_AHSV8888_1X32 = 0x6001,
113}; 116};
114 117
115/** 118/**
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index 437f1b0f8937..6ae7bbe988cc 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -207,8 +207,8 @@ enum v4l2_priority {
207struct v4l2_rect { 207struct v4l2_rect {
208 __s32 left; 208 __s32 left;
209 __s32 top; 209 __s32 top;
210 __s32 width; 210 __u32 width;
211 __s32 height; 211 __u32 height;
212}; 212};
213 213
214struct v4l2_fract { 214struct v4l2_fract {
diff --git a/include/uapi/linux/vsp1.h b/include/uapi/linux/vsp1.h
new file mode 100644
index 000000000000..e18858f6e865
--- /dev/null
+++ b/include/uapi/linux/vsp1.h
@@ -0,0 +1,34 @@
1/*
2 * vsp1.h
3 *
4 * Renesas R-Car VSP1 - User-space API
5 *
6 * Copyright (C) 2013 Renesas Corporation
7 *
8 * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 */
14
15#ifndef __VSP1_USER_H__
16#define __VSP1_USER_H__
17
18#include <linux/types.h>
19#include <linux/videodev2.h>
20
21/*
22 * Private IOCTLs
23 *
24 * VIDIOC_VSP1_LUT_CONFIG - Configure the lookup table
25 */
26
27#define VIDIOC_VSP1_LUT_CONFIG \
28 _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct vsp1_lut_config)
29
30struct vsp1_lut_config {
31 u32 lut[256];
32};
33
34#endif /* __VSP1_USER_H__ */
diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h
index e4629b93bdd6..40bbc04b6f81 100644
--- a/include/uapi/linux/xattr.h
+++ b/include/uapi/linux/xattr.h
@@ -20,6 +20,9 @@
20#define XATTR_MAC_OSX_PREFIX "osx." 20#define XATTR_MAC_OSX_PREFIX "osx."
21#define XATTR_MAC_OSX_PREFIX_LEN (sizeof(XATTR_MAC_OSX_PREFIX) - 1) 21#define XATTR_MAC_OSX_PREFIX_LEN (sizeof(XATTR_MAC_OSX_PREFIX) - 1)
22 22
23#define XATTR_BTRFS_PREFIX "btrfs."
24#define XATTR_BTRFS_PREFIX_LEN (sizeof(XATTR_BTRFS_PREFIX) - 1)
25
23#define XATTR_SECURITY_PREFIX "security." 26#define XATTR_SECURITY_PREFIX "security."
24#define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1) 27#define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1)
25 28