aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2013-03-09 04:58:13 -0500
committerJiri Kosina <jkosina@suse.cz>2013-03-09 05:01:06 -0500
commit83a44ac8bf4a8e6cbbf0c00ff281a482778f708a (patch)
tree325be1e4d52372db888396549908f25c5370caee /include/uapi/linux
parent4ba25d3f87fe3ed6634f61da2a6904e2dfd09192 (diff)
parentd381f45c890a3fb136afb0dc1cbe025e066cb981 (diff)
HID: Merge branch 'master' into for-3.10/hid-driver-transport-cleanups
Sync with Linus' tree. This is necessary to resolve build conflict caused by dcd9006b1b053c7b ("HID: logitech-dj: do not directly call hid_output_raw_report() during probe") which issues direct call to usbhid_submit_report(), but that is gone in this branch and hid_hw_request() has to be used instead. Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/Kbuild1
-rw-r--r--include/uapi/linux/btrfs.h514
-rw-r--r--include/uapi/linux/cdrom.h34
-rw-r--r--include/uapi/linux/dm-ioctl.h11
-rw-r--r--include/uapi/linux/dvb/frontend.h79
-rw-r--r--include/uapi/linux/dvb/version.h2
-rw-r--r--include/uapi/linux/elf.h2
-rw-r--r--include/uapi/linux/ipmi.h10
-rw-r--r--include/uapi/linux/kvm.h27
-rw-r--r--include/uapi/linux/meye.h8
-rw-r--r--include/uapi/linux/msdos_fs.h38
-rw-r--r--include/uapi/linux/nbd.h3
-rw-r--r--include/uapi/linux/v4l2-controls.h33
-rw-r--r--include/uapi/linux/v4l2-mediabus.h11
-rw-r--r--include/uapi/linux/vfio.h9
-rw-r--r--include/uapi/linux/videodev2.h35
-rw-r--r--include/uapi/linux/xattr.h13
17 files changed, 769 insertions, 61 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index 4e67194fd2c3..5c8a1d25e21c 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -68,6 +68,7 @@ header-y += blkpg.h
68header-y += blktrace_api.h 68header-y += blktrace_api.h
69header-y += bpqether.h 69header-y += bpqether.h
70header-y += bsg.h 70header-y += bsg.h
71header-y += btrfs.h
71header-y += can.h 72header-y += can.h
72header-y += capability.h 73header-y += capability.h
73header-y += capi.h 74header-y += capi.h
diff --git a/include/uapi/linux/btrfs.h b/include/uapi/linux/btrfs.h
new file mode 100644
index 000000000000..fa3a5f9338fc
--- /dev/null
+++ b/include/uapi/linux/btrfs.h
@@ -0,0 +1,514 @@
1/*
2 * Copyright (C) 2007 Oracle. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public
6 * License v2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public
14 * License along with this program; if not, write to the
15 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 * Boston, MA 021110-1307, USA.
17 */
18
19#ifndef _UAPI_LINUX_BTRFS_H
20#define _UAPI_LINUX_BTRFS_H
21#include <linux/types.h>
22#include <linux/ioctl.h>
23
24#define BTRFS_IOCTL_MAGIC 0x94
25#define BTRFS_VOL_NAME_MAX 255
26
27/* this should be 4k */
28#define BTRFS_PATH_NAME_MAX 4087
29struct btrfs_ioctl_vol_args {
30 __s64 fd;
31 char name[BTRFS_PATH_NAME_MAX + 1];
32};
33
34#define BTRFS_DEVICE_PATH_NAME_MAX 1024
35
36#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
37#define BTRFS_SUBVOL_RDONLY (1ULL << 1)
38#define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2)
39#define BTRFS_FSID_SIZE 16
40#define BTRFS_UUID_SIZE 16
41
42#define BTRFS_QGROUP_INHERIT_SET_LIMITS (1ULL << 0)
43
44struct btrfs_qgroup_limit {
45 __u64 flags;
46 __u64 max_rfer;
47 __u64 max_excl;
48 __u64 rsv_rfer;
49 __u64 rsv_excl;
50};
51
52struct btrfs_qgroup_inherit {
53 __u64 flags;
54 __u64 num_qgroups;
55 __u64 num_ref_copies;
56 __u64 num_excl_copies;
57 struct btrfs_qgroup_limit lim;
58 __u64 qgroups[0];
59};
60
61struct btrfs_ioctl_qgroup_limit_args {
62 __u64 qgroupid;
63 struct btrfs_qgroup_limit lim;
64};
65
66#define BTRFS_SUBVOL_NAME_MAX 4039
67struct btrfs_ioctl_vol_args_v2 {
68 __s64 fd;
69 __u64 transid;
70 __u64 flags;
71 union {
72 struct {
73 __u64 size;
74 struct btrfs_qgroup_inherit __user *qgroup_inherit;
75 };
76 __u64 unused[4];
77 };
78 char name[BTRFS_SUBVOL_NAME_MAX + 1];
79};
80
81/*
82 * structure to report errors and progress to userspace, either as a
83 * result of a finished scrub, a canceled scrub or a progress inquiry
84 */
85struct btrfs_scrub_progress {
86 __u64 data_extents_scrubbed; /* # of data extents scrubbed */
87 __u64 tree_extents_scrubbed; /* # of tree extents scrubbed */
88 __u64 data_bytes_scrubbed; /* # of data bytes scrubbed */
89 __u64 tree_bytes_scrubbed; /* # of tree bytes scrubbed */
90 __u64 read_errors; /* # of read errors encountered (EIO) */
91 __u64 csum_errors; /* # of failed csum checks */
92 __u64 verify_errors; /* # of occurences, where the metadata
93 * of a tree block did not match the
94 * expected values, like generation or
95 * logical */
96 __u64 no_csum; /* # of 4k data block for which no csum
97 * is present, probably the result of
98 * data written with nodatasum */
99 __u64 csum_discards; /* # of csum for which no data was found
100 * in the extent tree. */
101 __u64 super_errors; /* # of bad super blocks encountered */
102 __u64 malloc_errors; /* # of internal kmalloc errors. These
103 * will likely cause an incomplete
104 * scrub */
105 __u64 uncorrectable_errors; /* # of errors where either no intact
106 * copy was found or the writeback
107 * failed */
108 __u64 corrected_errors; /* # of errors corrected */
109 __u64 last_physical; /* last physical address scrubbed. In
110 * case a scrub was aborted, this can
111 * be used to restart the scrub */
112 __u64 unverified_errors; /* # of occurences where a read for a
113 * full (64k) bio failed, but the re-
114 * check succeeded for each 4k piece.
115 * Intermittent error. */
116};
117
118#define BTRFS_SCRUB_READONLY 1
119struct btrfs_ioctl_scrub_args {
120 __u64 devid; /* in */
121 __u64 start; /* in */
122 __u64 end; /* in */
123 __u64 flags; /* in */
124 struct btrfs_scrub_progress progress; /* out */
125 /* pad to 1k */
126 __u64 unused[(1024-32-sizeof(struct btrfs_scrub_progress))/8];
127};
128
129#define BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS 0
130#define BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID 1
131struct btrfs_ioctl_dev_replace_start_params {
132 __u64 srcdevid; /* in, if 0, use srcdev_name instead */
133 __u64 cont_reading_from_srcdev_mode; /* in, see #define
134 * above */
135 __u8 srcdev_name[BTRFS_DEVICE_PATH_NAME_MAX + 1]; /* in */
136 __u8 tgtdev_name[BTRFS_DEVICE_PATH_NAME_MAX + 1]; /* in */
137};
138
139#define BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED 0
140#define BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED 1
141#define BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED 2
142#define BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED 3
143#define BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED 4
144struct btrfs_ioctl_dev_replace_status_params {
145 __u64 replace_state; /* out, see #define above */
146 __u64 progress_1000; /* out, 0 <= x <= 1000 */
147 __u64 time_started; /* out, seconds since 1-Jan-1970 */
148 __u64 time_stopped; /* out, seconds since 1-Jan-1970 */
149 __u64 num_write_errors; /* out */
150 __u64 num_uncorrectable_read_errors; /* out */
151};
152
153#define BTRFS_IOCTL_DEV_REPLACE_CMD_START 0
154#define BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS 1
155#define BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL 2
156#define BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR 0
157#define BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED 1
158#define BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED 2
159struct btrfs_ioctl_dev_replace_args {
160 __u64 cmd; /* in */
161 __u64 result; /* out */
162
163 union {
164 struct btrfs_ioctl_dev_replace_start_params start;
165 struct btrfs_ioctl_dev_replace_status_params status;
166 }; /* in/out */
167
168 __u64 spare[64];
169};
170
171struct btrfs_ioctl_dev_info_args {
172 __u64 devid; /* in/out */
173 __u8 uuid[BTRFS_UUID_SIZE]; /* in/out */
174 __u64 bytes_used; /* out */
175 __u64 total_bytes; /* out */
176 __u64 unused[379]; /* pad to 4k */
177 __u8 path[BTRFS_DEVICE_PATH_NAME_MAX]; /* out */
178};
179
180struct btrfs_ioctl_fs_info_args {
181 __u64 max_id; /* out */
182 __u64 num_devices; /* out */
183 __u8 fsid[BTRFS_FSID_SIZE]; /* out */
184 __u64 reserved[124]; /* pad to 1k */
185};
186
187/* balance control ioctl modes */
188#define BTRFS_BALANCE_CTL_PAUSE 1
189#define BTRFS_BALANCE_CTL_CANCEL 2
190
191/*
192 * this is packed, because it should be exactly the same as its disk
193 * byte order counterpart (struct btrfs_disk_balance_args)
194 */
195struct btrfs_balance_args {
196 __u64 profiles;
197 __u64 usage;
198 __u64 devid;
199 __u64 pstart;
200 __u64 pend;
201 __u64 vstart;
202 __u64 vend;
203
204 __u64 target;
205
206 __u64 flags;
207
208 __u64 unused[8];
209} __attribute__ ((__packed__));
210
211/* report balance progress to userspace */
212struct btrfs_balance_progress {
213 __u64 expected; /* estimated # of chunks that will be
214 * relocated to fulfill the request */
215 __u64 considered; /* # of chunks we have considered so far */
216 __u64 completed; /* # of chunks relocated so far */
217};
218
219#define BTRFS_BALANCE_STATE_RUNNING (1ULL << 0)
220#define BTRFS_BALANCE_STATE_PAUSE_REQ (1ULL << 1)
221#define BTRFS_BALANCE_STATE_CANCEL_REQ (1ULL << 2)
222
223struct btrfs_ioctl_balance_args {
224 __u64 flags; /* in/out */
225 __u64 state; /* out */
226
227 struct btrfs_balance_args data; /* in/out */
228 struct btrfs_balance_args meta; /* in/out */
229 struct btrfs_balance_args sys; /* in/out */
230
231 struct btrfs_balance_progress stat; /* out */
232
233 __u64 unused[72]; /* pad to 1k */
234};
235
236#define BTRFS_INO_LOOKUP_PATH_MAX 4080
237struct btrfs_ioctl_ino_lookup_args {
238 __u64 treeid;
239 __u64 objectid;
240 char name[BTRFS_INO_LOOKUP_PATH_MAX];
241};
242
243struct btrfs_ioctl_search_key {
244 /* which root are we searching. 0 is the tree of tree roots */
245 __u64 tree_id;
246
247 /* keys returned will be >= min and <= max */
248 __u64 min_objectid;
249 __u64 max_objectid;
250
251 /* keys returned will be >= min and <= max */
252 __u64 min_offset;
253 __u64 max_offset;
254
255 /* max and min transids to search for */
256 __u64 min_transid;
257 __u64 max_transid;
258
259 /* keys returned will be >= min and <= max */
260 __u32 min_type;
261 __u32 max_type;
262
263 /*
264 * how many items did userland ask for, and how many are we
265 * returning
266 */
267 __u32 nr_items;
268
269 /* align to 64 bits */
270 __u32 unused;
271
272 /* some extra for later */
273 __u64 unused1;
274 __u64 unused2;
275 __u64 unused3;
276 __u64 unused4;
277};
278
279struct btrfs_ioctl_search_header {
280 __u64 transid;
281 __u64 objectid;
282 __u64 offset;
283 __u32 type;
284 __u32 len;
285};
286
287#define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key))
288/*
289 * the buf is an array of search headers where
290 * each header is followed by the actual item
291 * the type field is expanded to 32 bits for alignment
292 */
293struct btrfs_ioctl_search_args {
294 struct btrfs_ioctl_search_key key;
295 char buf[BTRFS_SEARCH_ARGS_BUFSIZE];
296};
297
298struct btrfs_ioctl_clone_range_args {
299 __s64 src_fd;
300 __u64 src_offset, src_length;
301 __u64 dest_offset;
302};
303
304/* flags for the defrag range ioctl */
305#define BTRFS_DEFRAG_RANGE_COMPRESS 1
306#define BTRFS_DEFRAG_RANGE_START_IO 2
307
308struct btrfs_ioctl_space_info {
309 __u64 flags;
310 __u64 total_bytes;
311 __u64 used_bytes;
312};
313
314struct btrfs_ioctl_space_args {
315 __u64 space_slots;
316 __u64 total_spaces;
317 struct btrfs_ioctl_space_info spaces[0];
318};
319
320struct btrfs_data_container {
321 __u32 bytes_left; /* out -- bytes not needed to deliver output */
322 __u32 bytes_missing; /* out -- additional bytes needed for result */
323 __u32 elem_cnt; /* out */
324 __u32 elem_missed; /* out */
325 __u64 val[0]; /* out */
326};
327
328struct btrfs_ioctl_ino_path_args {
329 __u64 inum; /* in */
330 __u64 size; /* in */
331 __u64 reserved[4];
332 /* struct btrfs_data_container *fspath; out */
333 __u64 fspath; /* out */
334};
335
336struct btrfs_ioctl_logical_ino_args {
337 __u64 logical; /* in */
338 __u64 size; /* in */
339 __u64 reserved[4];
340 /* struct btrfs_data_container *inodes; out */
341 __u64 inodes;
342};
343
344enum btrfs_dev_stat_values {
345 /* disk I/O failure stats */
346 BTRFS_DEV_STAT_WRITE_ERRS, /* EIO or EREMOTEIO from lower layers */
347 BTRFS_DEV_STAT_READ_ERRS, /* EIO or EREMOTEIO from lower layers */
348 BTRFS_DEV_STAT_FLUSH_ERRS, /* EIO or EREMOTEIO from lower layers */
349
350 /* stats for indirect indications for I/O failures */
351 BTRFS_DEV_STAT_CORRUPTION_ERRS, /* checksum error, bytenr error or
352 * contents is illegal: this is an
353 * indication that the block was damaged
354 * during read or write, or written to
355 * wrong location or read from wrong
356 * location */
357 BTRFS_DEV_STAT_GENERATION_ERRS, /* an indication that blocks have not
358 * been written */
359
360 BTRFS_DEV_STAT_VALUES_MAX
361};
362
363/* Reset statistics after reading; needs SYS_ADMIN capability */
364#define BTRFS_DEV_STATS_RESET (1ULL << 0)
365
366struct btrfs_ioctl_get_dev_stats {
367 __u64 devid; /* in */
368 __u64 nr_items; /* in/out */
369 __u64 flags; /* in/out */
370
371 /* out values: */
372 __u64 values[BTRFS_DEV_STAT_VALUES_MAX];
373
374 __u64 unused[128 - 2 - BTRFS_DEV_STAT_VALUES_MAX]; /* pad to 1k */
375};
376
377#define BTRFS_QUOTA_CTL_ENABLE 1
378#define BTRFS_QUOTA_CTL_DISABLE 2
379#define BTRFS_QUOTA_CTL_RESCAN 3
380struct btrfs_ioctl_quota_ctl_args {
381 __u64 cmd;
382 __u64 status;
383};
384
385struct btrfs_ioctl_qgroup_assign_args {
386 __u64 assign;
387 __u64 src;
388 __u64 dst;
389};
390
391struct btrfs_ioctl_qgroup_create_args {
392 __u64 create;
393 __u64 qgroupid;
394};
395struct btrfs_ioctl_timespec {
396 __u64 sec;
397 __u32 nsec;
398};
399
400struct btrfs_ioctl_received_subvol_args {
401 char uuid[BTRFS_UUID_SIZE]; /* in */
402 __u64 stransid; /* in */
403 __u64 rtransid; /* out */
404 struct btrfs_ioctl_timespec stime; /* in */
405 struct btrfs_ioctl_timespec rtime; /* out */
406 __u64 flags; /* in */
407 __u64 reserved[16]; /* in */
408};
409
410/*
411 * Caller doesn't want file data in the send stream, even if the
412 * search of clone sources doesn't find an extent. UPDATE_EXTENT
413 * commands will be sent instead of WRITE commands.
414 */
415#define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1
416
417struct btrfs_ioctl_send_args {
418 __s64 send_fd; /* in */
419 __u64 clone_sources_count; /* in */
420 __u64 __user *clone_sources; /* in */
421 __u64 parent_root; /* in */
422 __u64 flags; /* in */
423 __u64 reserved[4]; /* in */
424};
425
426#define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \
427 struct btrfs_ioctl_vol_args)
428#define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, \
429 struct btrfs_ioctl_vol_args)
430#define BTRFS_IOC_RESIZE _IOW(BTRFS_IOCTL_MAGIC, 3, \
431 struct btrfs_ioctl_vol_args)
432#define BTRFS_IOC_SCAN_DEV _IOW(BTRFS_IOCTL_MAGIC, 4, \
433 struct btrfs_ioctl_vol_args)
434/* trans start and trans end are dangerous, and only for
435 * use by applications that know how to avoid the
436 * resulting deadlocks
437 */
438#define BTRFS_IOC_TRANS_START _IO(BTRFS_IOCTL_MAGIC, 6)
439#define BTRFS_IOC_TRANS_END _IO(BTRFS_IOCTL_MAGIC, 7)
440#define BTRFS_IOC_SYNC _IO(BTRFS_IOCTL_MAGIC, 8)
441
442#define BTRFS_IOC_CLONE _IOW(BTRFS_IOCTL_MAGIC, 9, int)
443#define BTRFS_IOC_ADD_DEV _IOW(BTRFS_IOCTL_MAGIC, 10, \
444 struct btrfs_ioctl_vol_args)
445#define BTRFS_IOC_RM_DEV _IOW(BTRFS_IOCTL_MAGIC, 11, \
446 struct btrfs_ioctl_vol_args)
447#define BTRFS_IOC_BALANCE _IOW(BTRFS_IOCTL_MAGIC, 12, \
448 struct btrfs_ioctl_vol_args)
449
450#define BTRFS_IOC_CLONE_RANGE _IOW(BTRFS_IOCTL_MAGIC, 13, \
451 struct btrfs_ioctl_clone_range_args)
452
453#define BTRFS_IOC_SUBVOL_CREATE _IOW(BTRFS_IOCTL_MAGIC, 14, \
454 struct btrfs_ioctl_vol_args)
455#define BTRFS_IOC_SNAP_DESTROY _IOW(BTRFS_IOCTL_MAGIC, 15, \
456 struct btrfs_ioctl_vol_args)
457#define BTRFS_IOC_DEFRAG_RANGE _IOW(BTRFS_IOCTL_MAGIC, 16, \
458 struct btrfs_ioctl_defrag_range_args)
459#define BTRFS_IOC_TREE_SEARCH _IOWR(BTRFS_IOCTL_MAGIC, 17, \
460 struct btrfs_ioctl_search_args)
461#define BTRFS_IOC_INO_LOOKUP _IOWR(BTRFS_IOCTL_MAGIC, 18, \
462 struct btrfs_ioctl_ino_lookup_args)
463#define BTRFS_IOC_DEFAULT_SUBVOL _IOW(BTRFS_IOCTL_MAGIC, 19, u64)
464#define BTRFS_IOC_SPACE_INFO _IOWR(BTRFS_IOCTL_MAGIC, 20, \
465 struct btrfs_ioctl_space_args)
466#define BTRFS_IOC_START_SYNC _IOR(BTRFS_IOCTL_MAGIC, 24, __u64)
467#define BTRFS_IOC_WAIT_SYNC _IOW(BTRFS_IOCTL_MAGIC, 22, __u64)
468#define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \
469 struct btrfs_ioctl_vol_args_v2)
470#define BTRFS_IOC_SUBVOL_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 24, \
471 struct btrfs_ioctl_vol_args_v2)
472#define BTRFS_IOC_SUBVOL_GETFLAGS _IOR(BTRFS_IOCTL_MAGIC, 25, __u64)
473#define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64)
474#define BTRFS_IOC_SCRUB _IOWR(BTRFS_IOCTL_MAGIC, 27, \
475 struct btrfs_ioctl_scrub_args)
476#define BTRFS_IOC_SCRUB_CANCEL _IO(BTRFS_IOCTL_MAGIC, 28)
477#define BTRFS_IOC_SCRUB_PROGRESS _IOWR(BTRFS_IOCTL_MAGIC, 29, \
478 struct btrfs_ioctl_scrub_args)
479#define BTRFS_IOC_DEV_INFO _IOWR(BTRFS_IOCTL_MAGIC, 30, \
480 struct btrfs_ioctl_dev_info_args)
481#define BTRFS_IOC_FS_INFO _IOR(BTRFS_IOCTL_MAGIC, 31, \
482 struct btrfs_ioctl_fs_info_args)
483#define BTRFS_IOC_BALANCE_V2 _IOWR(BTRFS_IOCTL_MAGIC, 32, \
484 struct btrfs_ioctl_balance_args)
485#define BTRFS_IOC_BALANCE_CTL _IOW(BTRFS_IOCTL_MAGIC, 33, int)
486#define BTRFS_IOC_BALANCE_PROGRESS _IOR(BTRFS_IOCTL_MAGIC, 34, \
487 struct btrfs_ioctl_balance_args)
488#define BTRFS_IOC_INO_PATHS _IOWR(BTRFS_IOCTL_MAGIC, 35, \
489 struct btrfs_ioctl_ino_path_args)
490#define BTRFS_IOC_LOGICAL_INO _IOWR(BTRFS_IOCTL_MAGIC, 36, \
491 struct btrfs_ioctl_ino_path_args)
492#define BTRFS_IOC_SET_RECEIVED_SUBVOL _IOWR(BTRFS_IOCTL_MAGIC, 37, \
493 struct btrfs_ioctl_received_subvol_args)
494#define BTRFS_IOC_SEND _IOW(BTRFS_IOCTL_MAGIC, 38, struct btrfs_ioctl_send_args)
495#define BTRFS_IOC_DEVICES_READY _IOR(BTRFS_IOCTL_MAGIC, 39, \
496 struct btrfs_ioctl_vol_args)
497#define BTRFS_IOC_QUOTA_CTL _IOWR(BTRFS_IOCTL_MAGIC, 40, \
498 struct btrfs_ioctl_quota_ctl_args)
499#define BTRFS_IOC_QGROUP_ASSIGN _IOW(BTRFS_IOCTL_MAGIC, 41, \
500 struct btrfs_ioctl_qgroup_assign_args)
501#define BTRFS_IOC_QGROUP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 42, \
502 struct btrfs_ioctl_qgroup_create_args)
503#define BTRFS_IOC_QGROUP_LIMIT _IOR(BTRFS_IOCTL_MAGIC, 43, \
504 struct btrfs_ioctl_qgroup_limit_args)
505#define BTRFS_IOC_GET_FSLABEL _IOR(BTRFS_IOCTL_MAGIC, 49, \
506 char[BTRFS_LABEL_SIZE])
507#define BTRFS_IOC_SET_FSLABEL _IOW(BTRFS_IOCTL_MAGIC, 50, \
508 char[BTRFS_LABEL_SIZE])
509#define BTRFS_IOC_GET_DEV_STATS _IOWR(BTRFS_IOCTL_MAGIC, 52, \
510 struct btrfs_ioctl_get_dev_stats)
511#define BTRFS_IOC_DEV_REPLACE _IOWR(BTRFS_IOCTL_MAGIC, 53, \
512 struct btrfs_ioctl_dev_replace_args)
513
514#endif /* _UAPI_LINUX_BTRFS_H */
diff --git a/include/uapi/linux/cdrom.h b/include/uapi/linux/cdrom.h
index 898b866b300c..bd17ad5aa06d 100644
--- a/include/uapi/linux/cdrom.h
+++ b/include/uapi/linux/cdrom.h
@@ -908,5 +908,39 @@ struct mode_page_header {
908 __be16 desc_length; 908 __be16 desc_length;
909}; 909};
910 910
911/* removable medium feature descriptor */
912struct rm_feature_desc {
913 __be16 feature_code;
914#if defined(__BIG_ENDIAN_BITFIELD)
915 __u8 reserved1:2;
916 __u8 feature_version:4;
917 __u8 persistent:1;
918 __u8 curr:1;
919#elif defined(__LITTLE_ENDIAN_BITFIELD)
920 __u8 curr:1;
921 __u8 persistent:1;
922 __u8 feature_version:4;
923 __u8 reserved1:2;
924#endif
925 __u8 add_len;
926#if defined(__BIG_ENDIAN_BITFIELD)
927 __u8 mech_type:3;
928 __u8 load:1;
929 __u8 eject:1;
930 __u8 pvnt_jmpr:1;
931 __u8 dbml:1;
932 __u8 lock:1;
933#elif defined(__LITTLE_ENDIAN_BITFIELD)
934 __u8 lock:1;
935 __u8 dbml:1;
936 __u8 pvnt_jmpr:1;
937 __u8 eject:1;
938 __u8 load:1;
939 __u8 mech_type:3;
940#endif
941 __u8 reserved2;
942 __u8 reserved3;
943 __u8 reserved4;
944};
911 945
912#endif /* _UAPI_LINUX_CDROM_H */ 946#endif /* _UAPI_LINUX_CDROM_H */
diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h
index 539b179b349c..7e75b6fd8d45 100644
--- a/include/uapi/linux/dm-ioctl.h
+++ b/include/uapi/linux/dm-ioctl.h
@@ -267,9 +267,9 @@ enum {
267#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) 267#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
268 268
269#define DM_VERSION_MAJOR 4 269#define DM_VERSION_MAJOR 4
270#define DM_VERSION_MINOR 23 270#define DM_VERSION_MINOR 24
271#define DM_VERSION_PATCHLEVEL 1 271#define DM_VERSION_PATCHLEVEL 0
272#define DM_VERSION_EXTRA "-ioctl (2012-12-18)" 272#define DM_VERSION_EXTRA "-ioctl (2013-01-15)"
273 273
274/* Status bits */ 274/* Status bits */
275#define DM_READONLY_FLAG (1 << 0) /* In/Out */ 275#define DM_READONLY_FLAG (1 << 0) /* In/Out */
@@ -336,4 +336,9 @@ enum {
336 */ 336 */
337#define DM_SECURE_DATA_FLAG (1 << 15) /* In */ 337#define DM_SECURE_DATA_FLAG (1 << 15) /* In */
338 338
339/*
340 * If set, a message generated output data.
341 */
342#define DM_DATA_OUT_FLAG (1 << 16) /* Out */
343
339#endif /* _LINUX_DM_IOCTL_H */ 344#endif /* _LINUX_DM_IOCTL_H */
diff --git a/include/uapi/linux/dvb/frontend.h b/include/uapi/linux/dvb/frontend.h
index c12d452cb40d..c56d77c496a5 100644
--- a/include/uapi/linux/dvb/frontend.h
+++ b/include/uapi/linux/dvb/frontend.h
@@ -365,7 +365,17 @@ struct dvb_frontend_event {
365#define DTV_INTERLEAVING 60 365#define DTV_INTERLEAVING 60
366#define DTV_LNA 61 366#define DTV_LNA 61
367 367
368#define DTV_MAX_COMMAND DTV_LNA 368/* Quality parameters */
369#define DTV_STAT_SIGNAL_STRENGTH 62
370#define DTV_STAT_CNR 63
371#define DTV_STAT_PRE_ERROR_BIT_COUNT 64
372#define DTV_STAT_PRE_TOTAL_BIT_COUNT 65
373#define DTV_STAT_POST_ERROR_BIT_COUNT 66
374#define DTV_STAT_POST_TOTAL_BIT_COUNT 67
375#define DTV_STAT_ERROR_BLOCK_COUNT 68
376#define DTV_STAT_TOTAL_BLOCK_COUNT 69
377
378#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT
369 379
370typedef enum fe_pilot { 380typedef enum fe_pilot {
371 PILOT_ON, 381 PILOT_ON,
@@ -452,11 +462,78 @@ struct dtv_cmds_h {
452 __u32 reserved:30; /* Align */ 462 __u32 reserved:30; /* Align */
453}; 463};
454 464
465/**
466 * Scale types for the quality parameters.
467 * @FE_SCALE_NOT_AVAILABLE: That QoS measure is not available. That
468 * could indicate a temporary or a permanent
469 * condition.
470 * @FE_SCALE_DECIBEL: The scale is measured in 0.0001 dB steps, typically
471 * used on signal measures.
472 * @FE_SCALE_RELATIVE: The scale is a relative percentual measure,
473 * ranging from 0 (0%) to 0xffff (100%).
474 * @FE_SCALE_COUNTER: The scale counts the occurrence of an event, like
475 * bit error, block error, lapsed time.
476 */
477enum fecap_scale_params {
478 FE_SCALE_NOT_AVAILABLE = 0,
479 FE_SCALE_DECIBEL,
480 FE_SCALE_RELATIVE,
481 FE_SCALE_COUNTER
482};
483
484/**
485 * struct dtv_stats - Used for reading a DTV status property
486 *
487 * @value: value of the measure. Should range from 0 to 0xffff;
488 * @scale: Filled with enum fecap_scale_params - the scale
489 * in usage for that parameter
490 *
491 * For most delivery systems, this will return a single value for each
492 * parameter.
493 * It should be noticed, however, that new OFDM delivery systems like
494 * ISDB can use different modulation types for each group of carriers.
495 * On such standards, up to 8 groups of statistics can be provided, one
496 * for each carrier group (called "layer" on ISDB).
497 * In order to be consistent with other delivery systems, the first
498 * value refers to the entire set of carriers ("global").
499 * dtv_status:scale should use the value FE_SCALE_NOT_AVAILABLE when
500 * the value for the entire group of carriers or from one specific layer
501 * is not provided by the hardware.
502 * st.len should be filled with the latest filled status + 1.
503 *
504 * In other words, for ISDB, those values should be filled like:
505 * u.st.stat.svalue[0] = global statistics;
506 * u.st.stat.scale[0] = FE_SCALE_DECIBELS;
507 * u.st.stat.value[1] = layer A statistics;
508 * u.st.stat.scale[1] = FE_SCALE_NOT_AVAILABLE (if not available);
509 * u.st.stat.svalue[2] = layer B statistics;
510 * u.st.stat.scale[2] = FE_SCALE_DECIBELS;
511 * u.st.stat.svalue[3] = layer C statistics;
512 * u.st.stat.scale[3] = FE_SCALE_DECIBELS;
513 * u.st.len = 4;
514 */
515struct dtv_stats {
516 __u8 scale; /* enum fecap_scale_params type */
517 union {
518 __u64 uvalue; /* for counters and relative scales */
519 __s64 svalue; /* for 0.0001 dB measures */
520 };
521} __attribute__ ((packed));
522
523
524#define MAX_DTV_STATS 4
525
526struct dtv_fe_stats {
527 __u8 len;
528 struct dtv_stats stat[MAX_DTV_STATS];
529} __attribute__ ((packed));
530
455struct dtv_property { 531struct dtv_property {
456 __u32 cmd; 532 __u32 cmd;
457 __u32 reserved[3]; 533 __u32 reserved[3];
458 union { 534 union {
459 __u32 data; 535 __u32 data;
536 struct dtv_fe_stats st;
460 struct { 537 struct {
461 __u8 data[32]; 538 __u8 data[32];
462 __u32 len; 539 __u32 len;
diff --git a/include/uapi/linux/dvb/version.h b/include/uapi/linux/dvb/version.h
index 827cce7e33e3..e53e2ad4444f 100644
--- a/include/uapi/linux/dvb/version.h
+++ b/include/uapi/linux/dvb/version.h
@@ -24,6 +24,6 @@
24#define _DVBVERSION_H_ 24#define _DVBVERSION_H_
25 25
26#define DVB_API_VERSION 5 26#define DVB_API_VERSION 5
27#define DVB_API_VERSION_MINOR 9 27#define DVB_API_VERSION_MINOR 10
28 28
29#endif /*_DVBVERSION_H_*/ 29#endif /*_DVBVERSION_H_*/
diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h
index 900b9484445b..8072d352b98f 100644
--- a/include/uapi/linux/elf.h
+++ b/include/uapi/linux/elf.h
@@ -395,6 +395,8 @@ typedef struct elf64_shdr {
395#define NT_ARM_TLS 0x401 /* ARM TLS register */ 395#define NT_ARM_TLS 0x401 /* ARM TLS register */
396#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ 396#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */
397#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */ 397#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */
398#define NT_METAG_CBUF 0x500 /* Metag catch buffer registers */
399#define NT_METAG_RPIPE 0x501 /* Metag read pipeline state */
398 400
399 401
400/* Note header in a PT_NOTE section */ 402/* Note header in a PT_NOTE section */
diff --git a/include/uapi/linux/ipmi.h b/include/uapi/linux/ipmi.h
index 33fbc99b3812..7b26a62e5707 100644
--- a/include/uapi/linux/ipmi.h
+++ b/include/uapi/linux/ipmi.h
@@ -59,15 +59,7 @@
59 * if it becomes full and it is queried once a second to see if 59 * if it becomes full and it is queried once a second to see if
60 * anything is in it. Incoming commands to the driver will get 60 * anything is in it. Incoming commands to the driver will get
61 * delivered as commands. 61 * delivered as commands.
62 * 62 */
63 * This driver provides two main interfaces: one for in-kernel
64 * applications and another for userland applications. The
65 * capabilities are basically the same for both interface, although
66 * the interfaces are somewhat different. The stuff in the
67 * #ifdef __KERNEL__ below is the in-kernel interface. The userland
68 * interface is defined later in the file. */
69
70
71 63
72/* 64/*
73 * This is an overlay for all the address types, so it's easy to 65 * This is an overlay for all the address types, so it's easy to
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index c70577cf67bc..3c56ba3d80c1 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -169,6 +169,8 @@ struct kvm_pit_config {
169#define KVM_EXIT_PAPR_HCALL 19 169#define KVM_EXIT_PAPR_HCALL 19
170#define KVM_EXIT_S390_UCONTROL 20 170#define KVM_EXIT_S390_UCONTROL 20
171#define KVM_EXIT_WATCHDOG 21 171#define KVM_EXIT_WATCHDOG 21
172#define KVM_EXIT_S390_TSCH 22
173#define KVM_EXIT_EPR 23
172 174
173/* For KVM_EXIT_INTERNAL_ERROR */ 175/* For KVM_EXIT_INTERNAL_ERROR */
174/* Emulate instruction failed. */ 176/* Emulate instruction failed. */
@@ -286,6 +288,19 @@ struct kvm_run {
286 __u64 ret; 288 __u64 ret;
287 __u64 args[9]; 289 __u64 args[9];
288 } papr_hcall; 290 } papr_hcall;
291 /* KVM_EXIT_S390_TSCH */
292 struct {
293 __u16 subchannel_id;
294 __u16 subchannel_nr;
295 __u32 io_int_parm;
296 __u32 io_int_word;
297 __u32 ipb;
298 __u8 dequeued;
299 } s390_tsch;
300 /* KVM_EXIT_EPR */
301 struct {
302 __u32 epr;
303 } epr;
289 /* Fix the size of the union. */ 304 /* Fix the size of the union. */
290 char padding[256]; 305 char padding[256];
291 }; 306 };
@@ -398,10 +413,20 @@ struct kvm_s390_psw {
398#define KVM_S390_PROGRAM_INT 0xfffe0001u 413#define KVM_S390_PROGRAM_INT 0xfffe0001u
399#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u 414#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
400#define KVM_S390_RESTART 0xfffe0003u 415#define KVM_S390_RESTART 0xfffe0003u
416#define KVM_S390_MCHK 0xfffe1000u
401#define KVM_S390_INT_VIRTIO 0xffff2603u 417#define KVM_S390_INT_VIRTIO 0xffff2603u
402#define KVM_S390_INT_SERVICE 0xffff2401u 418#define KVM_S390_INT_SERVICE 0xffff2401u
403#define KVM_S390_INT_EMERGENCY 0xffff1201u 419#define KVM_S390_INT_EMERGENCY 0xffff1201u
404#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u 420#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u
421/* Anything below 0xfffe0000u is taken by INT_IO */
422#define KVM_S390_INT_IO(ai,cssid,ssid,schid) \
423 (((schid)) | \
424 ((ssid) << 16) | \
425 ((cssid) << 18) | \
426 ((ai) << 26))
427#define KVM_S390_INT_IO_MIN 0x00000000u
428#define KVM_S390_INT_IO_MAX 0xfffdffffu
429
405 430
406struct kvm_s390_interrupt { 431struct kvm_s390_interrupt {
407 __u32 type; 432 __u32 type;
@@ -636,6 +661,8 @@ struct kvm_ppc_smmu_info {
636#define KVM_CAP_IRQFD_RESAMPLE 82 661#define KVM_CAP_IRQFD_RESAMPLE 82
637#define KVM_CAP_PPC_BOOKE_WATCHDOG 83 662#define KVM_CAP_PPC_BOOKE_WATCHDOG 83
638#define KVM_CAP_PPC_HTAB_FD 84 663#define KVM_CAP_PPC_HTAB_FD 84
664#define KVM_CAP_S390_CSS_SUPPORT 85
665#define KVM_CAP_PPC_EPR 86
639#define KVM_CAP_ARM_PSCI 87 666#define KVM_CAP_ARM_PSCI 87
640#define KVM_CAP_ARM_SET_DEVICE_ADDR 88 667#define KVM_CAP_ARM_SET_DEVICE_ADDR 88
641 668
diff --git a/include/uapi/linux/meye.h b/include/uapi/linux/meye.h
index 0dd49954f746..8ff50fe9e481 100644
--- a/include/uapi/linux/meye.h
+++ b/include/uapi/linux/meye.h
@@ -57,10 +57,8 @@ struct meye_params {
57#define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOC_PRIVATE+5, int) 57#define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOC_PRIVATE+5, int)
58 58
59/* V4L2 private controls */ 59/* V4L2 private controls */
60#define V4L2_CID_AGC V4L2_CID_PRIVATE_BASE 60#define V4L2_CID_MEYE_AGC (V4L2_CID_USER_MEYE_BASE + 0)
61#define V4L2_CID_MEYE_SHARPNESS (V4L2_CID_PRIVATE_BASE + 1) 61#define V4L2_CID_MEYE_PICTURE (V4L2_CID_USER_MEYE_BASE + 1)
62#define V4L2_CID_PICTURE (V4L2_CID_PRIVATE_BASE + 2) 62#define V4L2_CID_MEYE_FRAMERATE (V4L2_CID_USER_MEYE_BASE + 2)
63#define V4L2_CID_JPEGQUAL (V4L2_CID_PRIVATE_BASE + 3)
64#define V4L2_CID_FRAMERATE (V4L2_CID_PRIVATE_BASE + 4)
65 63
66#endif 64#endif
diff --git a/include/uapi/linux/msdos_fs.h b/include/uapi/linux/msdos_fs.h
index 996719f82e28..f055e58b3147 100644
--- a/include/uapi/linux/msdos_fs.h
+++ b/include/uapi/linux/msdos_fs.h
@@ -87,6 +87,8 @@
87#define IS_FSINFO(x) (le32_to_cpu((x)->signature1) == FAT_FSINFO_SIG1 \ 87#define IS_FSINFO(x) (le32_to_cpu((x)->signature1) == FAT_FSINFO_SIG1 \
88 && le32_to_cpu((x)->signature2) == FAT_FSINFO_SIG2) 88 && le32_to_cpu((x)->signature2) == FAT_FSINFO_SIG2)
89 89
90#define FAT_STATE_DIRTY 0x01
91
90struct __fat_dirent { 92struct __fat_dirent {
91 long d_ino; 93 long d_ino;
92 __kernel_off_t d_off; 94 __kernel_off_t d_off;
@@ -120,14 +122,34 @@ struct fat_boot_sector {
120 __le32 hidden; /* hidden sectors (unused) */ 122 __le32 hidden; /* hidden sectors (unused) */
121 __le32 total_sect; /* number of sectors (if sectors == 0) */ 123 __le32 total_sect; /* number of sectors (if sectors == 0) */
122 124
123 /* The following fields are only used by FAT32 */ 125 union {
124 __le32 fat32_length; /* sectors/FAT */ 126 struct {
125 __le16 flags; /* bit 8: fat mirroring, low 4: active fat */ 127 /* Extended BPB Fields for FAT16 */
126 __u8 version[2]; /* major, minor filesystem version */ 128 __u8 drive_number; /* Physical drive number */
127 __le32 root_cluster; /* first cluster in root directory */ 129 __u8 state; /* undocumented, but used
128 __le16 info_sector; /* filesystem info sector */ 130 for mount state. */
129 __le16 backup_boot; /* backup boot sector */ 131 /* other fiealds are not added here */
130 __le16 reserved2[6]; /* Unused */ 132 } fat16;
133
134 struct {
135 /* only used by FAT32 */
136 __le32 length; /* sectors/FAT */
137 __le16 flags; /* bit 8: fat mirroring,
138 low 4: active fat */
139 __u8 version[2]; /* major, minor filesystem
140 version */
141 __le32 root_cluster; /* first cluster in
142 root directory */
143 __le16 info_sector; /* filesystem info sector */
144 __le16 backup_boot; /* backup boot sector */
145 __le16 reserved2[6]; /* Unused */
146 /* Extended BPB Fields for FAT32 */
147 __u8 drive_number; /* Physical drive number */
148 __u8 state; /* undocumented, but used
149 for mount state. */
150 /* other fiealds are not added here */
151 } fat32;
152 };
131}; 153};
132 154
133struct fat_boot_fsinfo { 155struct fat_boot_fsinfo {
diff --git a/include/uapi/linux/nbd.h b/include/uapi/linux/nbd.h
index dfb514472cbc..4f52549b23ff 100644
--- a/include/uapi/linux/nbd.h
+++ b/include/uapi/linux/nbd.h
@@ -33,13 +33,14 @@ enum {
33 NBD_CMD_READ = 0, 33 NBD_CMD_READ = 0,
34 NBD_CMD_WRITE = 1, 34 NBD_CMD_WRITE = 1,
35 NBD_CMD_DISC = 2, 35 NBD_CMD_DISC = 2,
36 /* there is a gap here to match userspace */ 36 NBD_CMD_FLUSH = 3,
37 NBD_CMD_TRIM = 4 37 NBD_CMD_TRIM = 4
38}; 38};
39 39
40/* values for flags field */ 40/* values for flags field */
41#define NBD_FLAG_HAS_FLAGS (1 << 0) /* nbd-server supports flags */ 41#define NBD_FLAG_HAS_FLAGS (1 << 0) /* nbd-server supports flags */
42#define NBD_FLAG_READ_ONLY (1 << 1) /* device is read-only */ 42#define NBD_FLAG_READ_ONLY (1 << 1) /* device is read-only */
43#define NBD_FLAG_SEND_FLUSH (1 << 2) /* can flush writeback cache */
43/* there is a gap here to match userspace */ 44/* there is a gap here to match userspace */
44#define NBD_FLAG_SEND_TRIM (1 << 5) /* send trim/discard */ 45#define NBD_FLAG_SEND_TRIM (1 << 5) /* send trim/discard */
45 46
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index f56c945cecd4..dcd63745e83a 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -88,10 +88,6 @@
88#define V4L2_CID_HFLIP (V4L2_CID_BASE+20) 88#define V4L2_CID_HFLIP (V4L2_CID_BASE+20)
89#define V4L2_CID_VFLIP (V4L2_CID_BASE+21) 89#define V4L2_CID_VFLIP (V4L2_CID_BASE+21)
90 90
91/* Deprecated; use V4L2_CID_PAN_RESET and V4L2_CID_TILT_RESET */
92#define V4L2_CID_HCENTER (V4L2_CID_BASE+22)
93#define V4L2_CID_VCENTER (V4L2_CID_BASE+23)
94
95#define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24) 91#define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24)
96enum v4l2_power_line_frequency { 92enum v4l2_power_line_frequency {
97 V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0, 93 V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0,
@@ -144,6 +140,11 @@ enum v4l2_colorfx {
144/* last CID + 1 */ 140/* last CID + 1 */
145#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43) 141#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43)
146 142
143/* USER-class private control IDs */
144
145/* The base for the meye driver controls. See linux/meye.h for the list
146 * of controls. We reserve 16 controls for this driver. */
147#define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000)
147 148
148/* MPEG-class control IDs */ 149/* MPEG-class control IDs */
149 150
@@ -782,6 +783,7 @@ enum v4l2_jpeg_chroma_subsampling {
782#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17) 783#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17)
783#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18) 784#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18)
784 785
786
785/* Image source controls */ 787/* Image source controls */
786#define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900) 788#define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)
787#define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1) 789#define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1)
@@ -800,4 +802,27 @@ enum v4l2_jpeg_chroma_subsampling {
800#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2) 802#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)
801#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) 803#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)
802 804
805
806/* DV-class control IDs defined by V4L2 */
807#define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
808#define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1)
809
810#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1)
811#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2)
812#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3)
813#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4)
814enum v4l2_dv_tx_mode {
815 V4L2_DV_TX_MODE_DVI_D = 0,
816 V4L2_DV_TX_MODE_HDMI = 1,
817};
818#define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5)
819enum v4l2_dv_rgb_range {
820 V4L2_DV_RGB_RANGE_AUTO = 0,
821 V4L2_DV_RGB_RANGE_LIMITED = 1,
822 V4L2_DV_RGB_RANGE_FULL = 2,
823};
824
825#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100)
826#define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
827
803#endif 828#endif
diff --git a/include/uapi/linux/v4l2-mediabus.h b/include/uapi/linux/v4l2-mediabus.h
index 7d64e0e1a18b..b9b7bea04537 100644
--- a/include/uapi/linux/v4l2-mediabus.h
+++ b/include/uapi/linux/v4l2-mediabus.h
@@ -47,8 +47,9 @@ enum v4l2_mbus_pixelcode {
47 V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007, 47 V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007,
48 V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008, 48 V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008,
49 49
50 /* YUV (including grey) - next is 0x2014 */ 50 /* YUV (including grey) - next is 0x2017 */
51 V4L2_MBUS_FMT_Y8_1X8 = 0x2001, 51 V4L2_MBUS_FMT_Y8_1X8 = 0x2001,
52 V4L2_MBUS_FMT_UV8_1X8 = 0x2015,
52 V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002, 53 V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002,
53 V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003, 54 V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003,
54 V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004, 55 V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004,
@@ -65,14 +66,20 @@ enum v4l2_mbus_pixelcode {
65 V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010, 66 V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010,
66 V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011, 67 V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011,
67 V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012, 68 V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012,
69 V4L2_MBUS_FMT_YDYUYDYV8_1X16 = 0x2014,
68 V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d, 70 V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d,
69 V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e, 71 V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e,
72 V4L2_MBUS_FMT_YUV10_1X30 = 0x2016,
70 73
71 /* Bayer - next is 0x3015 */ 74 /* Bayer - next is 0x3019 */
72 V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001, 75 V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001,
73 V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013, 76 V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013,
74 V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002, 77 V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002,
75 V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014, 78 V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014,
79 V4L2_MBUS_FMT_SBGGR10_ALAW8_1X8 = 0x3015,
80 V4L2_MBUS_FMT_SGBRG10_ALAW8_1X8 = 0x3016,
81 V4L2_MBUS_FMT_SGRBG10_ALAW8_1X8 = 0x3017,
82 V4L2_MBUS_FMT_SRGGB10_ALAW8_1X8 = 0x3018,
76 V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b, 83 V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b,
77 V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c, 84 V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c,
78 V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009, 85 V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009,
diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
index 4758d1bfcf41..4f41f309911e 100644
--- a/include/uapi/linux/vfio.h
+++ b/include/uapi/linux/vfio.h
@@ -303,6 +303,15 @@ enum {
303 VFIO_PCI_BAR5_REGION_INDEX, 303 VFIO_PCI_BAR5_REGION_INDEX,
304 VFIO_PCI_ROM_REGION_INDEX, 304 VFIO_PCI_ROM_REGION_INDEX,
305 VFIO_PCI_CONFIG_REGION_INDEX, 305 VFIO_PCI_CONFIG_REGION_INDEX,
306 /*
307 * Expose VGA regions defined for PCI base class 03, subclass 00.
308 * This includes I/O port ranges 0x3b0 to 0x3bb and 0x3c0 to 0x3df
309 * as well as the MMIO range 0xa0000 to 0xbffff. Each implemented
310 * range is found at it's identity mapped offset from the region
311 * offset, for example 0x3b0 is region_info.offset + 0x3b0. Areas
312 * between described ranges are unimplemented.
313 */
314 VFIO_PCI_VGA_REGION_INDEX,
306 VFIO_PCI_NUM_REGIONS 315 VFIO_PCI_NUM_REGIONS
307}; 316};
308 317
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index 3cf3e946e331..234d1d870914 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -334,6 +334,9 @@ struct v4l2_pix_format {
334/* Palette formats */ 334/* Palette formats */
335#define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ 335#define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */
336 336
337/* Chrominance formats */
338#define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') /* 8 UV 4:4 */
339
337/* Luminance+Chrominance formats */ 340/* Luminance+Chrominance formats */
338#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ 341#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */
339#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ 342#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */
@@ -386,6 +389,11 @@ struct v4l2_pix_format {
386#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ 389#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */
387#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ 390#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
388#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ 391#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
392 /* 10bit raw bayer a-law compressed to 8 bits */
393#define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8')
394#define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8')
395#define V4L2_PIX_FMT_SGRBG10ALAW8 v4l2_fourcc('a', 'g', 'A', '8')
396#define V4L2_PIX_FMT_SRGGB10ALAW8 v4l2_fourcc('a', 'R', 'A', '8')
389 /* 10bit raw bayer DPCM compressed to 8 bits */ 397 /* 10bit raw bayer DPCM compressed to 8 bits */
390#define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8') 398#define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8')
391#define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8') 399#define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8')
@@ -693,6 +701,10 @@ struct v4l2_buffer {
693/* Cache handling flags */ 701/* Cache handling flags */
694#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 702#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800
695#define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 703#define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000
704/* Timestamp type */
705#define V4L2_BUF_FLAG_TIMESTAMP_MASK 0xe000
706#define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x0000
707#define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x2000
696 708
697/** 709/**
698 * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor 710 * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor
@@ -1342,28 +1354,6 @@ struct v4l2_querymenu {
1342#define V4L2_CID_PRIVATE_BASE 0x08000000 1354#define V4L2_CID_PRIVATE_BASE 0x08000000
1343 1355
1344 1356
1345/* DV-class control IDs defined by V4L2 */
1346#define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
1347#define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1)
1348
1349#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1)
1350#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2)
1351#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3)
1352#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4)
1353enum v4l2_dv_tx_mode {
1354 V4L2_DV_TX_MODE_DVI_D = 0,
1355 V4L2_DV_TX_MODE_HDMI = 1,
1356};
1357#define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5)
1358enum v4l2_dv_rgb_range {
1359 V4L2_DV_RGB_RANGE_AUTO = 0,
1360 V4L2_DV_RGB_RANGE_LIMITED = 1,
1361 V4L2_DV_RGB_RANGE_FULL = 2,
1362};
1363
1364#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100)
1365#define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
1366
1367/* 1357/*
1368 * T U N I N G 1358 * T U N I N G
1369 */ 1359 */
@@ -1810,6 +1800,7 @@ struct v4l2_event_vsync {
1810/* Payload for V4L2_EVENT_CTRL */ 1800/* Payload for V4L2_EVENT_CTRL */
1811#define V4L2_EVENT_CTRL_CH_VALUE (1 << 0) 1801#define V4L2_EVENT_CTRL_CH_VALUE (1 << 0)
1812#define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1) 1802#define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1)
1803#define V4L2_EVENT_CTRL_CH_RANGE (1 << 2)
1813 1804
1814struct v4l2_event_ctrl { 1805struct v4l2_event_ctrl {
1815 __u32 changes; 1806 __u32 changes;
diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h
index 26607bd965fa..e4629b93bdd6 100644
--- a/include/uapi/linux/xattr.h
+++ b/include/uapi/linux/xattr.h
@@ -15,19 +15,22 @@
15 15
16/* Namespaces */ 16/* Namespaces */
17#define XATTR_OS2_PREFIX "os2." 17#define XATTR_OS2_PREFIX "os2."
18#define XATTR_OS2_PREFIX_LEN (sizeof (XATTR_OS2_PREFIX) - 1) 18#define XATTR_OS2_PREFIX_LEN (sizeof(XATTR_OS2_PREFIX) - 1)
19
20#define XATTR_MAC_OSX_PREFIX "osx."
21#define XATTR_MAC_OSX_PREFIX_LEN (sizeof(XATTR_MAC_OSX_PREFIX) - 1)
19 22
20#define XATTR_SECURITY_PREFIX "security." 23#define XATTR_SECURITY_PREFIX "security."
21#define XATTR_SECURITY_PREFIX_LEN (sizeof (XATTR_SECURITY_PREFIX) - 1) 24#define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1)
22 25
23#define XATTR_SYSTEM_PREFIX "system." 26#define XATTR_SYSTEM_PREFIX "system."
24#define XATTR_SYSTEM_PREFIX_LEN (sizeof (XATTR_SYSTEM_PREFIX) - 1) 27#define XATTR_SYSTEM_PREFIX_LEN (sizeof(XATTR_SYSTEM_PREFIX) - 1)
25 28
26#define XATTR_TRUSTED_PREFIX "trusted." 29#define XATTR_TRUSTED_PREFIX "trusted."
27#define XATTR_TRUSTED_PREFIX_LEN (sizeof (XATTR_TRUSTED_PREFIX) - 1) 30#define XATTR_TRUSTED_PREFIX_LEN (sizeof(XATTR_TRUSTED_PREFIX) - 1)
28 31
29#define XATTR_USER_PREFIX "user." 32#define XATTR_USER_PREFIX "user."
30#define XATTR_USER_PREFIX_LEN (sizeof (XATTR_USER_PREFIX) - 1) 33#define XATTR_USER_PREFIX_LEN (sizeof(XATTR_USER_PREFIX) - 1)
31 34
32/* Security namespace */ 35/* Security namespace */
33#define XATTR_EVM_SUFFIX "evm" 36#define XATTR_EVM_SUFFIX "evm"