History

Merge tag 'v3.9-rc3' into next

Merge with mainline to bring in module_platform_driver_probe() and devm_ioremap_resource().

Dmitry Torokhov committed 13 years ago

Commit 688d7942 parents 1614265 a93753617348 files · +1080737 −591285Browse files

Showing the changes to include/uapi/linux (82 of 17348 files). Show all

Unified · Split

82 files
  1. include/uapi/linux/Kbuild +3 −0
  2. include/uapi/linux/acct.h +4 −2
  3. include/uapi/linux/aio_abi.h +2 −2
  4. include/uapi/linux/audit.h +1 −1
  5. include/uapi/linux/auto_fs.h +8 −17
  6. include/uapi/linux/btrfs.h +514 −0
  7. include/uapi/linux/can/gw.h +2 −0
  8. include/uapi/linux/cdrom.h +34 −0
  9. include/uapi/linux/dm-ioctl.h +7 −2
  10. include/uapi/linux/dvb/frontend.h +78 −1
  11. include/uapi/linux/dvb/version.h +1 −1
  12. include/uapi/linux/elf.h +8 −6
  13. include/uapi/linux/ethtool.h +20 −5
  14. include/uapi/linux/eventpoll.h +0 −1
  15. include/uapi/linux/filter.h +3 −1
  16. include/uapi/linux/fs.h +3 −0
  17. include/uapi/linux/fuse.h +57 −3
  18. include/uapi/linux/hdlc/Kbuild +1 −0
  19. include/uapi/linux/hdlc/ioctl.h +84 −0
  20. include/uapi/linux/hw_breakpoint.h +30 −0
  21. include/uapi/linux/if_bridge.h +95 −0
  22. include/uapi/linux/if_ether.h +2 −0
  23. include/uapi/linux/if_link.h +23 −0
  24. include/uapi/linux/if_packet.h +1 −0
  25. include/uapi/linux/if_tun.h +7 −0
  26. include/uapi/linux/if_tunnel.h +20 −0
  27. include/uapi/linux/if_vlan.h +1 −0
  28. include/uapi/linux/in6.h +5 −16
  29. include/uapi/linux/inet_diag.h +2 −1
  30. include/uapi/linux/input.h +1 −0
  31. include/uapi/linux/ipmi.h +1 −9
  32. include/uapi/linux/ipv6.h +3 −0
  33. include/uapi/linux/ipv6_route.h +3 −0
  34. include/uapi/linux/kvm.h +60 −5
  35. include/uapi/linux/magic.h +2 −0
  36. include/uapi/linux/mempolicy.h +12 −3
  37. include/uapi/linux/meye.h +3 −5
  38. include/uapi/linux/module.h +8 −0
  39. include/uapi/linux/mroute.h +3 −0
  40. include/uapi/linux/mroute6.h +3 −0
  41. include/uapi/linux/msdos_fs.h +30 −8
  42. include/uapi/linux/msg.h +1 −0
  43. include/uapi/linux/nbd.h +2 −1
  44. include/uapi/linux/neighbour.h +1 −0
  45. include/uapi/linux/netconf.h +24 −0
  46. include/uapi/linux/netfilter/Kbuild +2 −0
  47. include/uapi/linux/netfilter/nf_conntrack_common.h +1 −0
  48. include/uapi/linux/netfilter/nfnetlink_conntrack.h +4 −0
  49. include/uapi/linux/netfilter/xt_CT.h +5 −1
  50. include/uapi/linux/netfilter/xt_bpf.h +17 −0
  51. include/uapi/linux/netfilter/xt_connlabel.h +12 −0
  52. include/uapi/linux/netfilter/xt_conntrack.h +1 −0
  53. include/uapi/linux/netfilter_ipv6/ip6_tables.h +3 −0
  54. include/uapi/linux/nfc.h +39 −13
  55. include/uapi/linux/nl80211.h +545 −27
  56. include/uapi/linux/oom.h +9 −0
  57. include/uapi/linux/pci_regs.h +21 −4
  58. include/uapi/linux/perf_event.h +2 −1
  59. include/uapi/linux/ptp_clock.h +14 −0
  60. include/uapi/linux/ptrace.h +4 −1
  61. include/uapi/linux/raid/md_p.h +4 −2
  62. include/uapi/linux/rtnetlink.h +27 −0
  63. include/uapi/linux/serial_core.h +11 −1
  64. include/uapi/linux/serial_reg.h +18 −0
  65. include/uapi/linux/signal.h +2 −0
  66. include/uapi/linux/snmp.h +1 −0
  67. include/uapi/linux/swab.h +9 −3
  68. include/uapi/linux/tcp.h +1 −0
  69. include/uapi/linux/uhid.h +1 −1
  70. include/uapi/linux/unix_diag.h +1 −0
  71. include/uapi/linux/usb/audio.h +4 −2
  72. include/uapi/linux/usb/cdc.h +23 −0
  73. include/uapi/linux/usb/ch9.h +6 −0
  74. include/uapi/linux/v4l2-controls.h +29 −4
  75. include/uapi/linux/v4l2-mediabus.h +9 −2
  76. include/uapi/linux/vfio.h +9 −0
  77. include/uapi/linux/videodev2.h +49 −23
  78. include/uapi/linux/virtio_ids.h +1 −0
  79. include/uapi/linux/virtio_net.h +34 −1
  80. include/uapi/linux/vm_sockets.h +163 −0
  81. include/uapi/linux/wanrouter.h +4 −439
  82. include/uapi/linux/xattr.h +8 −5
include/uapi/linux/Kbuild+3−0
@@ -68,6 +68,7 @@ header-y += blkpg.h · 67 unmodified lines
6868 header-y += blktrace_api.h
6969 header-y += bpqether.h
7070 header-y += bsg.h
71+header-y += btrfs.h
7172 header-y += can.h
7273 header-y += capability.h
7374 header-y += capi.h
@@ -258,6 +259,7 @@ header-y += neighbour.h · 184 unmodified lines
258259 header-y += net.h
259260 header-y += net_dropmon.h
260261 header-y += net_tstamp.h
262+header-y += netconf.h
261263 header-y += netdevice.h
262264 header-y += netfilter.h
263265 header-y += netfilter_arp.h
@@ -415,3 +417,4 @@ header-y += wireless.h · 151 unmodified lines
415417 header-y += x25.h
416418 header-y += xattr.h
417419 header-y += xfrm.h
420+header-y += hw_breakpoint.h
include/uapi/linux/acct.h+4−2
@@ -107,10 +107,12 @@ struct acct_v3 · 106 unmodified lines
107107 #define ACORE 0x08 /* ... dumped core */
108108 #define AXSIG 0x10 /* ... was killed by a signal */
109109
110−#ifdef __BIG_ENDIAN
110+#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
111111 #define ACCT_BYTEORDER 0x80 /* accounting file is big endian */
112−#else
112+#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
113113 #define ACCT_BYTEORDER 0x00 /* accounting file is little endian */
114+#else
115+#error unspecified endianness
114116 #endif
115117
116118 #ifndef __KERNEL__
include/uapi/linux/aio_abi.h+2−2
@@ -62,9 +62,9 @@ struct io_event { · 61 unmodified lines
6262 __s64 res2; /* secondary result */
6363 };
6464
65−#if defined(__LITTLE_ENDIAN)
65+#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
6666 #define PADDED(x,y) x, y
67−#elif defined(__BIG_ENDIAN)
67+#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
6868 #define PADDED(x,y) y, x
6969 #else
7070 #error edit for your odd byteorder.
include/uapi/linux/audit.h+1−1
@@ -26,7 +26,6 @@ · 25 unmodified lines
2626
2727 #include <linux/types.h>
2828 #include <linux/elf-em.h>
29−#include <linux/ptrace.h>
3029
3130 /* The netlink messages for the audit system is divided into blocks:
3231 * 1000 - 1099 are for commanding the audit system
@@ -106,6 +105,7 @@ · 73 unmodified lines
106105 #define AUDIT_MMAP 1323 /* Record showing descriptor and flags in mmap */
107106 #define AUDIT_NETFILTER_PKT 1324 /* Packets traversing netfilter chains */
108107 #define AUDIT_NETFILTER_CFG 1325 /* Netfilter chain modifications */
108+#define AUDIT_SECCOMP 1326 /* Secure Computing event */
109109
110110 #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */
111111 #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */
include/uapi/linux/auto_fs.h+8−17
@@ -28,25 +28,16 @@ · 27 unmodified lines
2828 #define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION
2929
3030 /*
31− * Architectures where both 32- and 64-bit binaries can be executed
32− * on 64-bit kernels need this. This keeps the structure format
33− * uniform, and makes sure the wait_queue_token isn't too big to be
34− * passed back down to the kernel.
35− *
36− * This assumes that on these architectures:
37− * mode 32 bit 64 bit
38− * -------------------------
39− * int 32 bit 32 bit
40− * long 32 bit 64 bit
41− *
42− * If so, 32-bit user-space code should be backwards compatible.
31+ * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed
32+ * back to the kernel via ioctl from userspace. On architectures where 32- and
33+ * 64-bit userspace binaries can be executed it's important that the size of
34+ * autofs_wqt_t stays constant between 32- and 64-bit Linux kernels so that we
35+ * do not break the binary ABI interface by changing the structure size.
4336 */
44−
45−#if defined(__sparc__) || defined(__mips__) || defined(__x86_64__) \
46− || defined(__powerpc__) || defined(__s390__)
47−typedef unsigned int autofs_wqt_t;
48−#else
37+#if defined(__ia64__) || defined(__alpha__) /* pure 64bit architectures */
4938 typedef unsigned long autofs_wqt_t;
39+#else
40+typedef unsigned int autofs_wqt_t;
5041 #endif
5142
5243 /* Packet types */
include/uapi/linux/btrfs.h+514−0
@@ -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
29+struct 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+
44+struct btrfs_qgroup_limit {
45+ __u64 flags;
46+ __u64 max_rfer;
47+ __u64 max_excl;
48+ __u64 rsv_rfer;
49+ __u64 rsv_excl;
50+};
51+
52+struct 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+
61+struct btrfs_ioctl_qgroup_limit_args {
62+ __u64 qgroupid;
63+ struct btrfs_qgroup_limit lim;
64+};
65+
66+#define BTRFS_SUBVOL_NAME_MAX 4039
67+struct 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+ */
85+struct 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
119+struct 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
131+struct 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
144+struct 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
159+struct 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+
171+struct 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+
180+struct 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+ */
195+struct 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 */
212+struct 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+
223+struct 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
237+struct btrfs_ioctl_ino_lookup_args {
238+ __u64 treeid;
239+ __u64 objectid;
240+ char name[BTRFS_INO_LOOKUP_PATH_MAX];
241+};
242+
243+struct 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+
279+struct 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+ */
293+struct btrfs_ioctl_search_args {
294+ struct btrfs_ioctl_search_key key;
295+ char buf[BTRFS_SEARCH_ARGS_BUFSIZE];
296+};
297+
298+struct 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+
308+struct btrfs_ioctl_space_info {
309+ __u64 flags;
310+ __u64 total_bytes;
311+ __u64 used_bytes;
312+};
313+
314+struct btrfs_ioctl_space_args {
315+ __u64 space_slots;
316+ __u64 total_spaces;
317+ struct btrfs_ioctl_space_info spaces[0];
318+};
319+
320+struct 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+
328+struct 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+
336+struct 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+
344+enum 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+
366+struct 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
380+struct btrfs_ioctl_quota_ctl_args {
381+ __u64 cmd;
382+ __u64 status;
383+};
384+
385+struct btrfs_ioctl_qgroup_assign_args {
386+ __u64 assign;
387+ __u64 src;
388+ __u64 dst;
389+};
390+
391+struct btrfs_ioctl_qgroup_create_args {
392+ __u64 create;
393+ __u64 qgroupid;
394+};
395+struct btrfs_ioctl_timespec {
396+ __u64 sec;
397+ __u32 nsec;
398+};
399+
400+struct 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+
417+struct 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 */
include/uapi/linux/can/gw.h+2−0
@@ -44,6 +44,7 @@ enum { · 43 unmodified lines
4444 CGW_SRC_IF, /* ifindex of source network interface */
4545 CGW_DST_IF, /* ifindex of destination network interface */
4646 CGW_FILTER, /* specify struct can_filter on source CAN device */
47+ CGW_DELETED, /* number of deleted CAN frames (see max_hops param) */
4748 __CGW_MAX
4849 };
4950
@@ -51,6 +52,7 @@ enum { · 1 unmodified line
5152
5253 #define CGW_FLAGS_CAN_ECHO 0x01
5354 #define CGW_FLAGS_CAN_SRC_TSTAMP 0x02
55+#define CGW_FLAGS_CAN_IIF_TX_OK 0x04
5456
5557 #define CGW_MOD_FUNCS 4 /* AND OR XOR SET */
5658
include/uapi/linux/cdrom.h+34−0
@@ -908,5 +908,39 @@ struct mode_page_header { · 907 unmodified lines
908908 __be16 desc_length;
909909 };
910910
911+/* removable medium feature descriptor */
912+struct 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+};
911945
912946 #endif /* _UAPI_LINUX_CDROM_H */
include/uapi/linux/dm-ioctl.h+7−2
@@ -267,9 +267,9 @@ enum { · 266 unmodified lines
267267 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
268268
269269 #define DM_VERSION_MAJOR 4
270−#define DM_VERSION_MINOR 23
270+#define DM_VERSION_MINOR 24
271271 #define DM_VERSION_PATCHLEVEL 0
272−#define DM_VERSION_EXTRA "-ioctl (2012-07-25)"
272+#define DM_VERSION_EXTRA "-ioctl (2013-01-15)"
273273
274274 /* Status bits */
275275 #define DM_READONLY_FLAG (1 << 0) /* In/Out */
@@ -336,4 +336,9 @@ enum { · 60 unmodified lines
336336 */
337337 #define DM_SECURE_DATA_FLAG (1 << 15) /* In */
338338
339+/*
340+ * If set, a message generated output data.
341+ */
342+#define DM_DATA_OUT_FLAG (1 << 16) /* Out */
343+
339344 #endif /* _LINUX_DM_IOCTL_H */
include/uapi/linux/dvb/frontend.h+78−1
@@ -365,7 +365,17 @@ struct dvb_frontend_event { · 364 unmodified lines
365365 #define DTV_INTERLEAVING 60
366366 #define DTV_LNA 61
367367
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
369379
370380 typedef enum fe_pilot {
371381 PILOT_ON,
@@ -452,11 +462,78 @@ struct dtv_cmds_h { · 80 unmodified lines
452462 __u32 reserved:30; /* Align */
453463 };
454464
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+ */
477+enum 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+ */
515+struct 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+
526+struct dtv_fe_stats {
527+ __u8 len;
528+ struct dtv_stats stat[MAX_DTV_STATS];
529+} __attribute__ ((packed));
530+
455531 struct dtv_property {
456532 __u32 cmd;
457533 __u32 reserved[3];
458534 union {
459535 __u32 data;
536+ struct dtv_fe_stats st;
460537 struct {
461538 __u8 data[32];
462539 __u32 len;
include/uapi/linux/dvb/version.h+1−1
@@ -24,6 +24,6 @@ · 23 unmodified lines
2424 #define _DVBVERSION_H_
2525
2626 #define DVB_API_VERSION 5
27−#define DVB_API_VERSION_MINOR 9
27+#define DVB_API_VERSION_MINOR 10
2828
2929 #endif /*_DVBVERSION_H_*/
include/uapi/linux/elf.h+8−6
@@ -49,14 +49,14 @@ typedef __s64 Elf64_Sxword; · 48 unmodified lines
4949 *
5050 * Specifications are available in:
5151 *
52− * - Sun microsystems: Linker and Libraries.
53− * Part No: 817-1984-17, September 2008.
54− * URL: http://docs.sun.com/app/docs/doc/817-1984
52+ * - Oracle: Linker and Libraries.
53+ * Part No: 817–1984–19, August 2011.
54+ * http://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf
5555 *
5656 * - System V ABI AMD64 Architecture Processor Supplement
57− * Draft Version 0.99.,
58− * May 11, 2009.
59− * URL: http://www.x86-64.org/
57+ * Draft Version 0.99.4,
58+ * January 13, 2010.
59+ * http://www.cs.washington.edu/education/courses/cse351/12wi/supp-docs/abi.pdf
6060 */
6161 #define PN_XNUM 0xffff
6262
@@ -395,6 +395,8 @@ typedef struct elf64_shdr { · 332 unmodified lines
395395 #define NT_ARM_TLS 0x401 /* ARM TLS register */
396396 #define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */
397397 #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 */
398400
399401
400402 /* Note header in a PT_NOTE section */
include/uapi/linux/ethtool.h+20−5
@@ -500,13 +500,26 @@ union ethtool_flow_union { · 499 unmodified lines
500500 struct ethtool_ah_espip4_spec esp_ip4_spec;
501501 struct ethtool_usrip4_spec usr_ip4_spec;
502502 struct ethhdr ether_spec;
503− __u8 hdata[60];
503+ __u8 hdata[52];
504504 };
505505
506+/**
507+ * struct ethtool_flow_ext - additional RX flow fields
508+ * @h_dest: destination MAC address
509+ * @vlan_etype: VLAN EtherType
510+ * @vlan_tci: VLAN tag control information
511+ * @data: user defined data
512+ *
513+ * Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT
514+ * is set in &struct ethtool_rx_flow_spec @flow_type.
515+ * @h_dest is valid if %FLOW_MAC_EXT is set.
516+ */
506517 struct ethtool_flow_ext {
507− __be16 vlan_etype;
508− __be16 vlan_tci;
509− __be32 data[2];
518+ __u8 padding[2];
519+ unsigned char h_dest[ETH_ALEN];
520+ __be16 vlan_etype;
521+ __be16 vlan_tci;
522+ __be32 data[2];
510523 };
511524
512525 /**
@@ -517,7 +530,8 @@ struct ethtool_flow_ext { · 4 unmodified lines
517530 * @m_u: Masks for flow field bits to be matched
518531 * @m_ext: Masks for additional field bits to be matched
519532 * Note, all additional fields must be ignored unless @flow_type
520− * includes the %FLOW_EXT flag.
533+ * includes the %FLOW_EXT or %FLOW_MAC_EXT flag
534+ * (see &struct ethtool_flow_ext description).
521535 * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC
522536 * if packets should be discarded
523537 * @location: Location of rule in the table. Locations must be
@@ -1027,6 +1041,7 @@ enum ethtool_sfeatures_retval_bits { · 503 unmodified lines
10271041 #define ETHER_FLOW 0x12 /* spec only (ether_spec) */
10281042 /* Flag to enable additional fields in struct ethtool_rx_flow_spec */
10291043 #define FLOW_EXT 0x80000000
1044+#define FLOW_MAC_EXT 0x40000000
10301045
10311046 /* L3-L4 network traffic flow hash options */
10321047 #define RXH_L2DA (1 << 1)
include/uapi/linux/eventpoll.h+0−1
@@ -25,7 +25,6 @@ · 24 unmodified lines
2525 #define EPOLL_CTL_ADD 1
2626 #define EPOLL_CTL_DEL 2
2727 #define EPOLL_CTL_MOD 3
28−#define EPOLL_CTL_DISABLE 4
2928
3029 /*
3130 * Request the handling of system wakeup events so as to prevent system suspends
include/uapi/linux/filter.h+3−1
@@ -127,7 +127,9 @@ struct sock_fprog { /* Required for SO_ATTACH_FILTER. */ · 126 unmodified lines
127127 #define SKF_AD_RXHASH 32
128128 #define SKF_AD_CPU 36
129129 #define SKF_AD_ALU_XOR_X 40
130−#define SKF_AD_MAX 44
130+#define SKF_AD_VLAN_TAG 44
131+#define SKF_AD_VLAN_TAG_PRESENT 48
132+#define SKF_AD_MAX 52
131133 #define SKF_NET_OFF (-0x100000)
132134 #define SKF_LL_OFF (-0x200000)
133135
include/uapi/linux/fs.h+3−0
@@ -86,6 +86,9 @@ struct inodes_stat_t { · 85 unmodified lines
8686 #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
8787 #define MS_I_VERSION (1<<23) /* Update inode I_version field */
8888 #define MS_STRICTATIME (1<<24) /* Always perform atime updates */
89+
90+/* These sb flags are internal to the kernel */
91+#define MS_SNAP_STABLE (1<<27) /* Snapshot pages during writeback, if needed */
8992 #define MS_NOSEC (1<<28)
9093 #define MS_BORN (1<<29)
9194 #define MS_ACTIVE (1<<30)
include/uapi/linux/fuse.h+57−3
@@ -1,9 +1,35 @@
11 /*
2− FUSE: Filesystem in Userspace
2+ This file defines the kernel interface of FUSE
33 Copyright (C) 2001-2008 Miklos Szeredi <miklos@szeredi.hu>
44
55 This program can be distributed under the terms of the GNU GPL.
66 See the file COPYING.
7+
8+ This -- and only this -- header file may also be distributed under
9+ the terms of the BSD Licence as follows:
10+
11+ Copyright (C) 2001-2007 Miklos Szeredi. All rights reserved.
12+
13+ Redistribution and use in source and binary forms, with or without
14+ modification, are permitted provided that the following conditions
15+ are met:
16+ 1. Redistributions of source code must retain the above copyright
17+ notice, this list of conditions and the following disclaimer.
18+ 2. Redistributions in binary form must reproduce the above copyright
19+ notice, this list of conditions and the following disclaimer in the
20+ documentation and/or other materials provided with the distribution.
21+
22+ THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
23+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25+ ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
26+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32+ SUCH DAMAGE.
733 */
834
935 /*
@@ -60,12 +86,25 @@ · 50 unmodified lines
6086 *
6187 * 7.20
6288 * - add FUSE_AUTO_INVAL_DATA
89+ *
90+ * 7.21
91+ * - add FUSE_READDIRPLUS
92+ * - send the requested events in POLL request
6393 */
6494
6595 #ifndef _LINUX_FUSE_H
6696 #define _LINUX_FUSE_H
6797
98+#ifdef __linux__
6899 #include <linux/types.h>
100+#else
101+#include <stdint.h>
102+#define __u64 uint64_t
103+#define __s64 int64_t
104+#define __u32 uint32_t
105+#define __s32 int32_t
106+#define __u16 uint16_t
107+#endif
69108
70109 /*
71110 * Version negotiation:
@@ -91,7 +130,7 @@ · 19 unmodified lines
91130 #define FUSE_KERNEL_VERSION 7
92131
93132 /** Minor version number of this interface */
94−#define FUSE_KERNEL_MINOR_VERSION 20
133+#define FUSE_KERNEL_MINOR_VERSION 21
95134
96135 /** The node ID of the root inode */
97136 #define FUSE_ROOT_ID 1
@@ -179,6 +218,8 @@ struct fuse_file_lock { · 81 unmodified lines
179218 * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks
180219 * FUSE_HAS_IOCTL_DIR: kernel supports ioctl on directories
181220 * FUSE_AUTO_INVAL_DATA: automatically invalidate cached pages
221+ * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one)
222+ * FUSE_READDIRPLUS_AUTO: adaptive readdirplus
182223 */
183224 #define FUSE_ASYNC_READ (1 << 0)
184225 #define FUSE_POSIX_LOCKS (1 << 1)
@@ -193,6 +234,8 @@ struct fuse_file_lock { · 8 unmodified lines
193234 #define FUSE_FLOCK_LOCKS (1 << 10)
194235 #define FUSE_HAS_IOCTL_DIR (1 << 11)
195236 #define FUSE_AUTO_INVAL_DATA (1 << 12)
237+#define FUSE_DO_READDIRPLUS (1 << 13)
238+#define FUSE_READDIRPLUS_AUTO (1 << 14)
196239
197240 /**
198241 * CUSE INIT request/reply flags
@@ -299,6 +342,7 @@ enum fuse_opcode { · 100 unmodified lines
299342 FUSE_NOTIFY_REPLY = 41,
300343 FUSE_BATCH_FORGET = 42,
301344 FUSE_FALLOCATE = 43,
345+ FUSE_READDIRPLUS = 44,
302346
303347 /* CUSE specific operations */
304348 CUSE_INIT = 4096,
@@ -580,7 +624,7 @@ struct fuse_poll_in { · 275 unmodified lines
580624 __u64 fh;
581625 __u64 kh;
582626 __u32 flags;
583− __u32 padding;
627+ __u32 events;
584628 };
585629
586630 struct fuse_poll_out {
@@ -630,6 +674,16 @@ struct fuse_dirent { · 43 unmodified lines
630674 #define FUSE_DIRENT_SIZE(d) \
631675 FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
632676
677+struct fuse_direntplus {
678+ struct fuse_entry_out entry_out;
679+ struct fuse_dirent dirent;
680+};
681+
682+#define FUSE_NAME_OFFSET_DIRENTPLUS \
683+ offsetof(struct fuse_direntplus, dirent.name)
684+#define FUSE_DIRENTPLUS_SIZE(d) \
685+ FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
686+
633687 struct fuse_notify_inval_inode_out {
634688 __u64 ino;
635689 __s64 off;
include/uapi/linux/hdlc/Kbuild+1−0
@@ -1 +1,2 @@
11 # UAPI Header export list
2+header-y += ioctl.h
include/uapi/linux/hdlc/ioctl.h+84−0
@@ -0,0 +1,84 @@
1+#ifndef __HDLC_IOCTL_H__
2+#define __HDLC_IOCTL_H__
3+
4+
5+#define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */
6+
7+#define CLOCK_DEFAULT 0 /* Default setting */
8+#define CLOCK_EXT 1 /* External TX and RX clock - DTE */
9+#define CLOCK_INT 2 /* Internal TX and RX clock - DCE */
10+#define CLOCK_TXINT 3 /* Internal TX and external RX clock */
11+#define CLOCK_TXFROMRX 4 /* TX clock derived from external RX clock */
12+
13+
14+#define ENCODING_DEFAULT 0 /* Default setting */
15+#define ENCODING_NRZ 1
16+#define ENCODING_NRZI 2
17+#define ENCODING_FM_MARK 3
18+#define ENCODING_FM_SPACE 4
19+#define ENCODING_MANCHESTER 5
20+
21+
22+#define PARITY_DEFAULT 0 /* Default setting */
23+#define PARITY_NONE 1 /* No parity */
24+#define PARITY_CRC16_PR0 2 /* CRC16, initial value 0x0000 */
25+#define PARITY_CRC16_PR1 3 /* CRC16, initial value 0xFFFF */
26+#define PARITY_CRC16_PR0_CCITT 4 /* CRC16, initial 0x0000, ITU-T version */
27+#define PARITY_CRC16_PR1_CCITT 5 /* CRC16, initial 0xFFFF, ITU-T version */
28+#define PARITY_CRC32_PR0_CCITT 6 /* CRC32, initial value 0x00000000 */
29+#define PARITY_CRC32_PR1_CCITT 7 /* CRC32, initial value 0xFFFFFFFF */
30+
31+#define LMI_DEFAULT 0 /* Default setting */
32+#define LMI_NONE 1 /* No LMI, all PVCs are static */
33+#define LMI_ANSI 2 /* ANSI Annex D */
34+#define LMI_CCITT 3 /* ITU-T Annex A */
35+#define LMI_CISCO 4 /* The "original" LMI, aka Gang of Four */
36+
37+#ifndef __ASSEMBLY__
38+
39+typedef struct {
40+ unsigned int clock_rate; /* bits per second */
41+ unsigned int clock_type; /* internal, external, TX-internal etc. */
42+ unsigned short loopback;
43+} sync_serial_settings; /* V.35, V.24, X.21 */
44+
45+typedef struct {
46+ unsigned int clock_rate; /* bits per second */
47+ unsigned int clock_type; /* internal, external, TX-internal etc. */
48+ unsigned short loopback;
49+ unsigned int slot_map;
50+} te1_settings; /* T1, E1 */
51+
52+typedef struct {
53+ unsigned short encoding;
54+ unsigned short parity;
55+} raw_hdlc_proto;
56+
57+typedef struct {
58+ unsigned int t391;
59+ unsigned int t392;
60+ unsigned int n391;
61+ unsigned int n392;
62+ unsigned int n393;
63+ unsigned short lmi;
64+ unsigned short dce; /* 1 for DCE (network side) operation */
65+} fr_proto;
66+
67+typedef struct {
68+ unsigned int dlci;
69+} fr_proto_pvc; /* for creating/deleting FR PVCs */
70+
71+typedef struct {
72+ unsigned int dlci;
73+ char master[IFNAMSIZ]; /* Name of master FRAD device */
74+}fr_proto_pvc_info; /* for returning PVC information only */
75+
76+typedef struct {
77+ unsigned int interval;
78+ unsigned int timeout;
79+} cisco_proto;
80+
81+/* PPP doesn't need any info now - supply length = 0 to ioctl */
82+
83+#endif /* __ASSEMBLY__ */
84+#endif /* __HDLC_IOCTL_H__ */
include/uapi/linux/hw_breakpoint.h+30−0
@@ -0,0 +1,30 @@
1+#ifndef _UAPI_LINUX_HW_BREAKPOINT_H
2+#define _UAPI_LINUX_HW_BREAKPOINT_H
3+
4+enum {
5+ HW_BREAKPOINT_LEN_1 = 1,
6+ HW_BREAKPOINT_LEN_2 = 2,
7+ HW_BREAKPOINT_LEN_4 = 4,
8+ HW_BREAKPOINT_LEN_8 = 8,
9+};
10+
11+enum {
12+ HW_BREAKPOINT_EMPTY = 0,
13+ HW_BREAKPOINT_R = 1,
14+ HW_BREAKPOINT_W = 2,
15+ HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W,
16+ HW_BREAKPOINT_X = 4,
17+ HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X,
18+};
19+
20+enum bp_type_idx {
21+ TYPE_INST = 0,
22+#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS
23+ TYPE_DATA = 0,
24+#else
25+ TYPE_DATA = 1,
26+#endif
27+ TYPE_MAX
28+};
29+
30+#endif /* _UAPI_LINUX_HW_BREAKPOINT_H */
include/uapi/linux/if_bridge.h+95−0
@@ -97,5 +97,100 @@ struct __fdb_entry { · 96 unmodified lines
9797 __u16 unused;
9898 };
9999
100+/* Bridge Flags */
101+#define BRIDGE_FLAGS_MASTER 1 /* Bridge command to/from master */
102+#define BRIDGE_FLAGS_SELF 2 /* Bridge command to/from lowerdev */
103+
104+#define BRIDGE_MODE_VEB 0 /* Default loopback mode */
105+#define BRIDGE_MODE_VEPA 1 /* 802.1Qbg defined VEPA mode */
106+
107+/* Bridge management nested attributes
108+ * [IFLA_AF_SPEC] = {
109+ * [IFLA_BRIDGE_FLAGS]
110+ * [IFLA_BRIDGE_MODE]
111+ * [IFLA_BRIDGE_VLAN_INFO]
112+ * }
113+ */
114+enum {
115+ IFLA_BRIDGE_FLAGS,
116+ IFLA_BRIDGE_MODE,
117+ IFLA_BRIDGE_VLAN_INFO,
118+ __IFLA_BRIDGE_MAX,
119+};
120+#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)
121+
122+#define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */
123+#define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */
124+#define BRIDGE_VLAN_INFO_UNTAGGED (1<<2) /* VLAN egresses untagged */
125+
126+struct bridge_vlan_info {
127+ __u16 flags;
128+ __u16 vid;
129+};
130+
131+/* Bridge multicast database attributes
132+ * [MDBA_MDB] = {
133+ * [MDBA_MDB_ENTRY] = {
134+ * [MDBA_MDB_ENTRY_INFO]
135+ * }
136+ * }
137+ * [MDBA_ROUTER] = {
138+ * [MDBA_ROUTER_PORT]
139+ * }
140+ */
141+enum {
142+ MDBA_UNSPEC,
143+ MDBA_MDB,
144+ MDBA_ROUTER,
145+ __MDBA_MAX,
146+};
147+#define MDBA_MAX (__MDBA_MAX - 1)
148+
149+enum {
150+ MDBA_MDB_UNSPEC,
151+ MDBA_MDB_ENTRY,
152+ __MDBA_MDB_MAX,
153+};
154+#define MDBA_MDB_MAX (__MDBA_MDB_MAX - 1)
155+
156+enum {
157+ MDBA_MDB_ENTRY_UNSPEC,
158+ MDBA_MDB_ENTRY_INFO,
159+ __MDBA_MDB_ENTRY_MAX,
160+};
161+#define MDBA_MDB_ENTRY_MAX (__MDBA_MDB_ENTRY_MAX - 1)
162+
163+enum {
164+ MDBA_ROUTER_UNSPEC,
165+ MDBA_ROUTER_PORT,
166+ __MDBA_ROUTER_MAX,
167+};
168+#define MDBA_ROUTER_MAX (__MDBA_ROUTER_MAX - 1)
169+
170+struct br_port_msg {
171+ __u8 family;
172+ __u32 ifindex;
173+};
174+
175+struct br_mdb_entry {
176+ __u32 ifindex;
177+#define MDB_TEMPORARY 0
178+#define MDB_PERMANENT 1
179+ __u8 state;
180+ struct {
181+ union {
182+ __be32 ip4;
183+ struct in6_addr ip6;
184+ } u;
185+ __be16 proto;
186+ } addr;
187+};
188+
189+enum {
190+ MDBA_SET_ENTRY_UNSPEC,
191+ MDBA_SET_ENTRY,
192+ __MDBA_SET_ENTRY_MAX,
193+};
194+#define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1)
100195
101196 #endif /* _UAPI_LINUX_IF_BRIDGE_H */
include/uapi/linux/if_ether.h+2−0
@@ -48,6 +48,7 @@ · 47 unmodified lines
4848 #define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */
4949 #define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */
5050 #define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */
51+#define ETH_P_BATMAN 0x4305 /* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */
5152 #define ETH_P_DEC 0x6000 /* DEC Assigned proto */
5253 #define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */
5354 #define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */
@@ -82,6 +83,7 @@ · 28 unmodified lines
8283 #define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */
8384 #define ETH_P_TIPC 0x88CA /* TIPC */
8485 #define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */
86+#define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */
8587 #define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */
8688 #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
8789 #define ETH_P_TDLS 0x890D /* TDLS */
include/uapi/linux/if_link.h+23−0
@@ -142,6 +142,7 @@ enum { · 141 unmodified lines
142142 #define IFLA_PROMISCUITY IFLA_PROMISCUITY
143143 IFLA_NUM_TX_QUEUES,
144144 IFLA_NUM_RX_QUEUES,
145+ IFLA_CARRIER,
145146 __IFLA_MAX
146147 };
147148
@@ -205,6 +206,24 @@ enum { · 57 unmodified lines
205206
206207 #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
207208
209+enum {
210+ BRIDGE_MODE_UNSPEC,
211+ BRIDGE_MODE_HAIRPIN,
212+};
213+
214+enum {
215+ IFLA_BRPORT_UNSPEC,
216+ IFLA_BRPORT_STATE, /* Spanning tree state */
217+ IFLA_BRPORT_PRIORITY, /* " priority */
218+ IFLA_BRPORT_COST, /* " cost */
219+ IFLA_BRPORT_MODE, /* mode (hairpin) */
220+ IFLA_BRPORT_GUARD, /* bpdu guard */
221+ IFLA_BRPORT_PROTECT, /* root port protection */
222+ IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */
223+ __IFLA_BRPORT_MAX
224+};
225+#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
226+
208227 struct ifla_cacheinfo {
209228 __u32 max_reasm_len;
210229 __u32 tstamp; /* ipv6InterfaceTable updated timestamp */
@@ -285,6 +304,10 @@ enum { · 74 unmodified lines
285304 IFLA_VXLAN_AGEING,
286305 IFLA_VXLAN_LIMIT,
287306 IFLA_VXLAN_PORT_RANGE,
307+ IFLA_VXLAN_PROXY,
308+ IFLA_VXLAN_RSC,
309+ IFLA_VXLAN_L2MISS,
310+ IFLA_VXLAN_L3MISS,
288311 __IFLA_VXLAN_MAX
289312 };
290313 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
include/uapi/linux/if_packet.h+1−0
@@ -50,6 +50,7 @@ struct sockaddr_ll { · 49 unmodified lines
5050 #define PACKET_TX_TIMESTAMP 16
5151 #define PACKET_TIMESTAMP 17
5252 #define PACKET_FANOUT 18
53+#define PACKET_TX_HAS_OFF 19
5354
5455 #define PACKET_FANOUT_HASH 0
5556 #define PACKET_FANOUT_LB 1
include/uapi/linux/if_tun.h+7−0
@@ -31,9 +31,11 @@ · 30 unmodified lines
3131 #define TUN_FASYNC 0x0010
3232 #define TUN_NOCHECKSUM 0x0020
3333 #define TUN_NO_PI 0x0040
34+/* This flag has no real effect */
3435 #define TUN_ONE_QUEUE 0x0080
3536 #define TUN_PERSIST 0x0100
3637 #define TUN_VNET_HDR 0x0200
38+#define TUN_TAP_MQ 0x0400
3739
3840 /* Ioctl defines */
3941 #define TUNSETNOCSUM _IOW('T', 200, int)
@@ -53,14 +55,19 @@ · 13 unmodified lines
5355 #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
5456 #define TUNGETVNETHDRSZ _IOR('T', 215, int)
5557 #define TUNSETVNETHDRSZ _IOW('T', 216, int)
58+#define TUNSETQUEUE _IOW('T', 217, int)
5659
5760 /* TUNSETIFF ifr flags */
5861 #define IFF_TUN 0x0001
5962 #define IFF_TAP 0x0002
6063 #define IFF_NO_PI 0x1000
64+/* This flag has no real effect */
6165 #define IFF_ONE_QUEUE 0x2000
6266 #define IFF_VNET_HDR 0x4000
6367 #define IFF_TUN_EXCL 0x8000
68+#define IFF_MULTI_QUEUE 0x0100
69+#define IFF_ATTACH_QUEUE 0x0200
70+#define IFF_DETACH_QUEUE 0x0400
6471
6572 /* Features for GSO (TUNSETOFFLOAD). */
6673 #define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */
include/uapi/linux/if_tunnel.h+20−0
@@ -37,6 +37,26 @@ struct ip_tunnel_parm { · 36 unmodified lines
3737 struct iphdr iph;
3838 };
3939
40+enum {
41+ IFLA_IPTUN_UNSPEC,
42+ IFLA_IPTUN_LINK,
43+ IFLA_IPTUN_LOCAL,
44+ IFLA_IPTUN_REMOTE,
45+ IFLA_IPTUN_TTL,
46+ IFLA_IPTUN_TOS,
47+ IFLA_IPTUN_ENCAP_LIMIT,
48+ IFLA_IPTUN_FLOWINFO,
49+ IFLA_IPTUN_FLAGS,
50+ IFLA_IPTUN_PROTO,
51+ IFLA_IPTUN_PMTUDISC,
52+ IFLA_IPTUN_6RD_PREFIX,
53+ IFLA_IPTUN_6RD_RELAY_PREFIX,
54+ IFLA_IPTUN_6RD_PREFIXLEN,
55+ IFLA_IPTUN_6RD_RELAY_PREFIXLEN,
56+ __IFLA_IPTUN_MAX,
57+};
58+#define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1)
59+
4060 /* SIT-mode i_flags */
4161 #define SIT_ISATAP 0x0001
4262
include/uapi/linux/if_vlan.h+1−0
@@ -34,6 +34,7 @@ enum vlan_flags { · 33 unmodified lines
3434 VLAN_FLAG_REORDER_HDR = 0x1,
3535 VLAN_FLAG_GVRP = 0x2,
3636 VLAN_FLAG_LOOSE_BINDING = 0x4,
37+ VLAN_FLAG_MVRP = 0x8,
3738 };
3839
3940 enum vlan_name_types {
include/uapi/linux/in6.h+5−16
@@ -38,11 +38,6 @@ struct in6_addr { · 37 unmodified lines
3838 #define s6_addr32 in6_u.u6_addr32
3939 };
4040
41−/* IPv6 Wildcard Address (::) and Loopback Address (::1) defined in RFC2553
42− * NOTE: Be aware the IN6ADDR_* constants and in6addr_* externals are defined
43− * in network byte order, not in host byte order as are the IPv4 equivalents
44− */
45−
4641 struct sockaddr_in6 {
4742 unsigned short int sin6_family; /* AF_INET6 */
4843 __be16 sin6_port; /* Transport layer port # */
@@ -240,6 +235,7 @@ struct in6_flowlabel_req { · 191 unmodified lines
240235 *
241236 * IP6T_SO_GET_REVISION_MATCH 68
242237 * IP6T_SO_GET_REVISION_TARGET 69
238+ * IP6T_SO_ORIGINAL_DST 80
243239 */
244240
245241 /* RFC5014: Source address selection */
@@ -263,17 +259,10 @@ struct in6_flowlabel_req { · 17 unmodified lines
263259
264260 /*
265261 * Multicast Routing:
266− * see include/linux/mroute6.h.
262+ * see include/uapi/linux/mroute6.h.
267263 *
268− * MRT6_INIT 200
269− * MRT6_DONE 201
270− * MRT6_ADD_MIF 202
271− * MRT6_DEL_MIF 203
272− * MRT6_ADD_MFC 204
273− * MRT6_DEL_MFC 205
274− * MRT6_VERSION 206
275− * MRT6_ASSERT 207
276− * MRT6_PIM 208
277− * (reserved) 209
264+ * MRT6_BASE 200
265+ * ...
266+ * MRT6_MAX
278267 */
279268 #endif /* _UAPI_LINUX_IN6_H */
include/uapi/linux/inet_diag.h+2−1
@@ -109,9 +109,10 @@ enum { · 108 unmodified lines
109109 INET_DIAG_TOS,
110110 INET_DIAG_TCLASS,
111111 INET_DIAG_SKMEMINFO,
112+ INET_DIAG_SHUTDOWN,
112113 };
113114
114−#define INET_DIAG_MAX INET_DIAG_SKMEMINFO
115+#define INET_DIAG_MAX INET_DIAG_SHUTDOWN
115116
116117
117118 /* INET_DIAG_MEM */
include/uapi/linux/input.h+1−0
@@ -856,6 +856,7 @@ struct input_keymap_entry { · 855 unmodified lines
856856 #define MSC_GESTURE 0x02
857857 #define MSC_RAW 0x03
858858 #define MSC_SCAN 0x04
859+#define MSC_TIMESTAMP 0x05
859860 #define MSC_MAX 0x07
860861 #define MSC_CNT (MSC_MAX+1)
861862
include/uapi/linux/ipmi.h+1−9
@@ -59,15 +59,7 @@ · 58 unmodified lines
5959 * if it becomes full and it is queried once a second to see if
6060 * anything is in it. Incoming commands to the driver will get
6161 * delivered as commands.
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−
62+ */
7163
7264 /*
7365 * This is an overlay for all the address types, so it's easy to
include/uapi/linux/ipv6.h+3−0
@@ -63,6 +63,8 @@ struct ipv6_opt_hdr { · 62 unmodified lines
6363 #define ipv6_destopt_hdr ipv6_opt_hdr
6464 #define ipv6_hopopt_hdr ipv6_opt_hdr
6565
66+/* Router Alert option values (RFC2711) */
67+#define IPV6_OPT_ROUTERALERT_MLD 0x0000 /* MLD(RFC2710) */
6668
6769 /*
6870 * routing header type 0 (used in cmsghdr struct)
@@ -157,6 +159,7 @@ enum { · 88 unmodified lines
157159 DEVCONF_DISABLE_IPV6,
158160 DEVCONF_ACCEPT_DAD,
159161 DEVCONF_FORCE_TLLAO,
162+ DEVCONF_NDISC_NOTIFY,
160163 DEVCONF_MAX
161164 };
162165
include/uapi/linux/ipv6_route.h+3−0
@@ -55,4 +55,7 @@ struct in6_rtmsg { · 54 unmodified lines
5555 #define RTMSG_NEWROUTE 0x21
5656 #define RTMSG_DELROUTE 0x22
5757
58+#define IP6_RT_PRIO_USER 1024
59+#define IP6_RT_PRIO_ADDRCONF 256
60+
5861 #endif /* _UAPI_LINUX_IPV6_ROUTE_H */
include/uapi/linux/kvm.h+60−5
@@ -115,6 +115,7 @@ struct kvm_irq_level { · 114 unmodified lines
115115 * ACPI gsi notion of irq.
116116 * For IA-64 (APIC model) IOAPIC0: irq 0-23; IOAPIC1: irq 24-47..
117117 * For X86 (standard AT mode) PIC0/1: irq 0-15. IOAPIC0: 0-23..
118+ * For ARM: See Documentation/virtual/kvm/api.txt
118119 */
119120 union {
120121 __u32 irq;
@@ -167,10 +168,17 @@ struct kvm_pit_config { · 46 unmodified lines
167168 #define KVM_EXIT_OSI 18
168169 #define KVM_EXIT_PAPR_HCALL 19
169170 #define KVM_EXIT_S390_UCONTROL 20
171+#define KVM_EXIT_WATCHDOG 21
172+#define KVM_EXIT_S390_TSCH 22
173+#define KVM_EXIT_EPR 23
170174
171175 /* For KVM_EXIT_INTERNAL_ERROR */
172−#define KVM_INTERNAL_ERROR_EMULATION 1
173−#define KVM_INTERNAL_ERROR_SIMUL_EX 2
176+/* Emulate instruction failed. */
177+#define KVM_INTERNAL_ERROR_EMULATION 1
178+/* Encounter unexpected simultaneous exceptions. */
179+#define KVM_INTERNAL_ERROR_SIMUL_EX 2
180+/* Encounter unexpected vm-exit due to delivery event. */
181+#define KVM_INTERNAL_ERROR_DELIVERY_EV 3
174182
175183 /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */
176184 struct kvm_run {
@@ -280,6 +288,19 @@ struct kvm_run { · 103 unmodified lines
280288 __u64 ret;
281289 __u64 args[9];
282290 } 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;
283304 /* Fix the size of the union. */
284305 char padding[256];
285306 };
@@ -392,10 +413,20 @@ struct kvm_s390_psw { · 106 unmodified lines
392413 #define KVM_S390_PROGRAM_INT 0xfffe0001u
393414 #define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
394415 #define KVM_S390_RESTART 0xfffe0003u
416+#define KVM_S390_MCHK 0xfffe1000u
395417 #define KVM_S390_INT_VIRTIO 0xffff2603u
396418 #define KVM_S390_INT_SERVICE 0xffff2401u
397419 #define KVM_S390_INT_EMERGENCY 0xffff1201u
398420 #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+
399430
400431 struct kvm_s390_interrupt {
401432 __u32 type;
@@ -477,6 +508,8 @@ struct kvm_ppc_smmu_info { · 75 unmodified lines
477508 struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
478509 };
479510
511+#define KVM_PPC_PVINFO_FLAGS_EV_IDLE (1<<0)
512+
480513 #define KVMIO 0xAE
481514
482515 /* machine type bits, to be used as argument to KVM_CREATE_VM */
@@ -626,6 +659,12 @@ struct kvm_ppc_smmu_info { · 143 unmodified lines
626659 #define KVM_CAP_READONLY_MEM 81
627660 #endif
628661 #define KVM_CAP_IRQFD_RESAMPLE 82
662+#define KVM_CAP_PPC_BOOKE_WATCHDOG 83
663+#define KVM_CAP_PPC_HTAB_FD 84
664+#define KVM_CAP_S390_CSS_SUPPORT 85
665+#define KVM_CAP_PPC_EPR 86
666+#define KVM_CAP_ARM_PSCI 87
667+#define KVM_CAP_ARM_SET_DEVICE_ADDR 88
629668
630669 #ifdef KVM_CAP_IRQ_ROUTING
631670
@@ -755,6 +794,11 @@ struct kvm_dirty_tlb { · 123 unmodified lines
755794 #define KVM_REG_SIZE_U512 0x0060000000000000ULL
756795 #define KVM_REG_SIZE_U1024 0x0070000000000000ULL
757796
797+struct kvm_reg_list {
798+ __u64 n; /* number of regs */
799+ __u64 reg[0];
800+};
801+
758802 struct kvm_one_reg {
759803 __u64 id;
760804 __u64 addr;
@@ -768,6 +812,11 @@ struct kvm_msi { · 7 unmodified lines
768812 __u8 pad[16];
769813 };
770814
815+struct kvm_arm_device_addr {
816+ __u64 id;
817+ __u64 addr;
818+};
819+
771820 /*
772821 * ioctls for VM fds
773822 */
@@ -848,6 +897,13 @@ struct kvm_s390_ucas_mapping { · 74 unmodified lines
848897 #define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct kvm_ppc_smmu_info)
849898 /* Available with KVM_CAP_PPC_ALLOC_HTAB */
850899 #define KVM_PPC_ALLOCATE_HTAB _IOWR(KVMIO, 0xa7, __u32)
900+#define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce)
901+/* Available with KVM_CAP_RMA */
902+#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma)
903+/* Available with KVM_CAP_PPC_HTAB_FD */
904+#define KVM_PPC_GET_HTAB_FD _IOW(KVMIO, 0xaa, struct kvm_get_htab_fd)
905+/* Available with KVM_CAP_ARM_SET_DEVICE_ADDR */
906+#define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr)
851907
852908 /*
853909 * ioctls for vcpu fds
@@ -911,9 +967,6 @@ struct kvm_s390_ucas_mapping { · 57 unmodified lines
911967 /* Available with KVM_CAP_XCRS */
912968 #define KVM_GET_XCRS _IOR(KVMIO, 0xa6, struct kvm_xcrs)
913969 #define KVM_SET_XCRS _IOW(KVMIO, 0xa7, struct kvm_xcrs)
914−#define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce)
915−/* Available with KVM_CAP_RMA */
916−#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma)
917970 /* Available with KVM_CAP_SW_TLB */
918971 #define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb)
919972 /* Available with KVM_CAP_ONE_REG */
@@ -921,6 +974,8 @@ struct kvm_s390_ucas_mapping { · 1 unmodified line
921974 #define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg)
922975 /* VM is being stopped by host */
923976 #define KVM_KVMCLOCK_CTRL _IO(KVMIO, 0xad)
977+#define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init)
978+#define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list)
924979
925980 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
926981 #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
include/uapi/linux/magic.h+2−0
@@ -23,10 +23,12 @@ · 22 unmodified lines
2323 #define EXT4_SUPER_MAGIC 0xEF53
2424 #define BTRFS_SUPER_MAGIC 0x9123683E
2525 #define NILFS_SUPER_MAGIC 0x3434
26+#define F2FS_SUPER_MAGIC 0xF2F52010
2627 #define HPFS_SUPER_MAGIC 0xf995e849
2728 #define ISOFS_SUPER_MAGIC 0x9660
2829 #define JFFS2_SUPER_MAGIC 0x72b6
2930 #define PSTOREFS_MAGIC 0x6165676C
31+#define EFIVARFS_MAGIC 0xde5e81e4
3032
3133 #define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */
3234 #define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */
include/uapi/linux/mempolicy.h+12−3
@@ -20,6 +20,7 @@ enum { · 19 unmodified lines
2020 MPOL_PREFERRED,
2121 MPOL_BIND,
2222 MPOL_INTERLEAVE,
23+ MPOL_LOCAL,
2324 MPOL_MAX, /* always last member of enum */
2425 };
2526
@@ -47,9 +48,15 @@ enum mpol_rebind_step { · 21 unmodified lines
4748
4849 /* Flags for mbind */
4950 #define MPOL_MF_STRICT (1<<0) /* Verify existing pages in the mapping */
50−#define MPOL_MF_MOVE (1<<1) /* Move pages owned by this process to conform to mapping */
51−#define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to mapping */
52−#define MPOL_MF_INTERNAL (1<<3) /* Internal flags start here */
51+#define MPOL_MF_MOVE (1<<1) /* Move pages owned by this process to conform
52+ to policy */
53+#define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to policy */
54+#define MPOL_MF_LAZY (1<<3) /* Modifies '_MOVE: lazy migrate on fault */
55+#define MPOL_MF_INTERNAL (1<<4) /* Internal flags start here */
56+
57+#define MPOL_MF_VALID (MPOL_MF_STRICT | \
58+ MPOL_MF_MOVE | \
59+ MPOL_MF_MOVE_ALL)
5360
5461 /*
5562 * Internal flags that share the struct mempolicy flags word with
@@ -59,6 +66,8 @@ enum mpol_rebind_step { · 3 unmodified lines
5966 #define MPOL_F_SHARED (1 << 0) /* identify shared policies */
6067 #define MPOL_F_LOCAL (1 << 1) /* preferred local allocation */
6168 #define MPOL_F_REBINDING (1 << 2) /* identify policies in rebinding */
69+#define MPOL_F_MOF (1 << 3) /* this policy wants migrate on fault */
70+#define MPOL_F_MORON (1 << 4) /* Migrate On pte_numa Reference On Node */
6271
6372
6473 #endif /* _UAPI_LINUX_MEMPOLICY_H */
include/uapi/linux/meye.h+3−5
@@ -57,10 +57,8 @@ struct meye_params { · 56 unmodified lines
5757 #define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOC_PRIVATE+5, int)
5858
5959 /* V4L2 private controls */
60−#define V4L2_CID_AGC V4L2_CID_PRIVATE_BASE
61−#define V4L2_CID_MEYE_SHARPNESS (V4L2_CID_PRIVATE_BASE + 1)
62−#define V4L2_CID_PICTURE (V4L2_CID_PRIVATE_BASE + 2)
63−#define V4L2_CID_JPEGQUAL (V4L2_CID_PRIVATE_BASE + 3)
64−#define V4L2_CID_FRAMERATE (V4L2_CID_PRIVATE_BASE + 4)
60+#define V4L2_CID_MEYE_AGC (V4L2_CID_USER_MEYE_BASE + 0)
61+#define V4L2_CID_MEYE_PICTURE (V4L2_CID_USER_MEYE_BASE + 1)
62+#define V4L2_CID_MEYE_FRAMERATE (V4L2_CID_USER_MEYE_BASE + 2)
6563
6664 #endif
include/uapi/linux/module.h+8−0
@@ -0,0 +1,8 @@
1+#ifndef _UAPI_LINUX_MODULE_H
2+#define _UAPI_LINUX_MODULE_H
3+
4+/* Flags for sys_finit_module: */
5+#define MODULE_INIT_IGNORE_MODVERSIONS 1
6+#define MODULE_INIT_IGNORE_VERMAGIC 2
7+
8+#endif /* _UAPI_LINUX_MODULE_H */
include/uapi/linux/mroute.h+3−0
@@ -26,6 +26,9 @@ · 25 unmodified lines
2626 #define MRT_ASSERT (MRT_BASE+7) /* Activate PIM assert mode */
2727 #define MRT_PIM (MRT_BASE+8) /* enable PIM code */
2828 #define MRT_TABLE (MRT_BASE+9) /* Specify mroute table ID */
29+#define MRT_ADD_MFC_PROXY (MRT_BASE+10) /* Add a (*,*|G) mfc entry */
30+#define MRT_DEL_MFC_PROXY (MRT_BASE+11) /* Del a (*,*|G) mfc entry */
31+#define MRT_MAX (MRT_BASE+11)
2932
3033 #define SIOCGETVIFCNT SIOCPROTOPRIVATE /* IP protocol privates */
3134 #define SIOCGETSGCNT (SIOCPROTOPRIVATE+1)
include/uapi/linux/mroute6.h+3−0
@@ -26,6 +26,9 @@ · 25 unmodified lines
2626 #define MRT6_ASSERT (MRT6_BASE+7) /* Activate PIM assert mode */
2727 #define MRT6_PIM (MRT6_BASE+8) /* enable PIM code */
2828 #define MRT6_TABLE (MRT6_BASE+9) /* Specify mroute table ID */
29+#define MRT6_ADD_MFC_PROXY (MRT6_BASE+10) /* Add a (*,*|G) mfc entry */
30+#define MRT6_DEL_MFC_PROXY (MRT6_BASE+11) /* Del a (*,*|G) mfc entry */
31+#define MRT6_MAX (MRT6_BASE+11)
2932
3033 #define SIOCGETMIFCNT_IN6 SIOCPROTOPRIVATE /* IP protocol privates */
3134 #define SIOCGETSGCNT_IN6 (SIOCPROTOPRIVATE+1)
include/uapi/linux/msdos_fs.h+30−8
@@ -87,6 +87,8 @@ · 86 unmodified lines
8787 #define IS_FSINFO(x) (le32_to_cpu((x)->signature1) == FAT_FSINFO_SIG1 \
8888 && le32_to_cpu((x)->signature2) == FAT_FSINFO_SIG2)
8989
90+#define FAT_STATE_DIRTY 0x01
91+
9092 struct __fat_dirent {
9193 long d_ino;
9294 __kernel_off_t d_off;
@@ -120,14 +122,34 @@ struct fat_boot_sector { · 27 unmodified lines
120122 __le32 hidden; /* hidden sectors (unused) */
121123 __le32 total_sect; /* number of sectors (if sectors == 0) */
122124
123− /* The following fields are only used by FAT32 */
124− __le32 fat32_length; /* sectors/FAT */
125− __le16 flags; /* bit 8: fat mirroring, low 4: active fat */
126− __u8 version[2]; /* major, minor filesystem version */
127− __le32 root_cluster; /* first cluster in root directory */
128− __le16 info_sector; /* filesystem info sector */
129− __le16 backup_boot; /* backup boot sector */
130− __le16 reserved2[6]; /* Unused */
125+ union {
126+ struct {
127+ /* Extended BPB Fields for FAT16 */
128+ __u8 drive_number; /* Physical drive number */
129+ __u8 state; /* undocumented, but used
130+ for mount state. */
131+ /* other fiealds are not added here */
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+ };
131153 };
132154
133155 struct fat_boot_fsinfo {
include/uapi/linux/msg.h+1−0
@@ -10,6 +10,7 @@ · 9 unmodified lines
1010 /* msgrcv options */
1111 #define MSG_NOERROR 010000 /* no error if message is too big */
1212 #define MSG_EXCEPT 020000 /* recv any msg except of specified type.*/
13+#define MSG_COPY 040000 /* copy (not remove) all queue messages */
1314
1415 /* Obsolete, used only for backwards compatibility and libc5 compiles */
1516 struct msqid_ds {
include/uapi/linux/nbd.h+2−1
@@ -33,13 +33,14 @@ enum { · 32 unmodified lines
3333 NBD_CMD_READ = 0,
3434 NBD_CMD_WRITE = 1,
3535 NBD_CMD_DISC = 2,
36− /* there is a gap here to match userspace */
36+ NBD_CMD_FLUSH = 3,
3737 NBD_CMD_TRIM = 4
3838 };
3939
4040 /* values for flags field */
4141 #define NBD_FLAG_HAS_FLAGS (1 << 0) /* nbd-server supports flags */
4242 #define NBD_FLAG_READ_ONLY (1 << 1) /* device is read-only */
43+#define NBD_FLAG_SEND_FLUSH (1 << 2) /* can flush writeback cache */
4344 /* there is a gap here to match userspace */
4445 #define NBD_FLAG_SEND_TRIM (1 << 5) /* send trim/discard */
4546
include/uapi/linux/neighbour.h+1−0
@@ -20,6 +20,7 @@ enum { · 19 unmodified lines
2020 NDA_LLADDR,
2121 NDA_CACHEINFO,
2222 NDA_PROBES,
23+ NDA_VLAN,
2324 __NDA_MAX
2425 };
2526
include/uapi/linux/netconf.h+24−0
@@ -0,0 +1,24 @@
1+#ifndef _UAPI_LINUX_NETCONF_H_
2+#define _UAPI_LINUX_NETCONF_H_
3+
4+#include <linux/types.h>
5+#include <linux/netlink.h>
6+
7+struct netconfmsg {
8+ __u8 ncm_family;
9+};
10+
11+enum {
12+ NETCONFA_UNSPEC,
13+ NETCONFA_IFINDEX,
14+ NETCONFA_FORWARDING,
15+ NETCONFA_RP_FILTER,
16+ NETCONFA_MC_FORWARDING,
17+ __NETCONFA_MAX
18+};
19+#define NETCONFA_MAX (__NETCONFA_MAX - 1)
20+
21+#define NETCONFA_IFINDEX_ALL -1
22+#define NETCONFA_IFINDEX_DEFAULT -2
23+
24+#endif /* _UAPI_LINUX_NETCONF_H_ */
include/uapi/linux/netfilter/Kbuild+2−0
@@ -35,9 +35,11 @@ header-y += xt_TCPOPTSTRIP.h · 34 unmodified lines
3535 header-y += xt_TEE.h
3636 header-y += xt_TPROXY.h
3737 header-y += xt_addrtype.h
38+header-y += xt_bpf.h
3839 header-y += xt_cluster.h
3940 header-y += xt_comment.h
4041 header-y += xt_connbytes.h
42+header-y += xt_connlabel.h
4143 header-y += xt_connlimit.h
4244 header-y += xt_connmark.h
4345 header-y += xt_conntrack.h
include/uapi/linux/netfilter/nf_conntrack_common.h+1−0
@@ -101,6 +101,7 @@ enum ip_conntrack_events { · 100 unmodified lines
101101 IPCT_MARK, /* new mark has been set */
102102 IPCT_NATSEQADJ, /* NAT is doing sequence adjustment */
103103 IPCT_SECMARK, /* new security mark has been set */
104+ IPCT_LABEL, /* new connlabel has been set */
104105 };
105106
106107 enum ip_conntrack_expect_events {
include/uapi/linux/netfilter/nfnetlink_conntrack.h+4−0
@@ -9,6 +9,8 @@ enum cntl_msg_types { · 8 unmodified lines
99 IPCTNL_MSG_CT_GET_CTRZERO,
1010 IPCTNL_MSG_CT_GET_STATS_CPU,
1111 IPCTNL_MSG_CT_GET_STATS,
12+ IPCTNL_MSG_CT_GET_DYING,
13+ IPCTNL_MSG_CT_GET_UNCONFIRMED,
1214
1315 IPCTNL_MSG_MAX
1416 };
@@ -47,6 +49,8 @@ enum ctattr_type { · 32 unmodified lines
4749 CTA_SECCTX,
4850 CTA_TIMESTAMP,
4951 CTA_MARK_MASK,
52+ CTA_LABELS,
53+ CTA_LABELS_MASK,
5054 __CTA_MAX
5155 };
5256 #define CTA_MAX (__CTA_MAX - 1)
include/uapi/linux/netfilter/xt_CT.h+5−1
@@ -3,7 +3,11 @@ · 2 unmodified lines
33
44 #include <linux/types.h>
55
6−#define XT_CT_NOTRACK 0x1
6+enum {
7+ XT_CT_NOTRACK = 1 << 0,
8+ XT_CT_NOTRACK_ALIAS = 1 << 1,
9+ XT_CT_MASK = XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS,
10+};
711
812 struct xt_ct_target_info {
913 __u16 flags;
include/uapi/linux/netfilter/xt_bpf.h+17−0
@@ -0,0 +1,17 @@
1+#ifndef _XT_BPF_H
2+#define _XT_BPF_H
3+
4+#include <linux/filter.h>
5+#include <linux/types.h>
6+
7+#define XT_BPF_MAX_NUM_INSTR 64
8+
9+struct xt_bpf_info {
10+ __u16 bpf_program_num_elem;
11+ struct sock_filter bpf_program[XT_BPF_MAX_NUM_INSTR];
12+
13+ /* only used in the kernel */
14+ struct sk_filter *filter __attribute__((aligned(8)));
15+};
16+
17+#endif /*_XT_BPF_H */
include/uapi/linux/netfilter/xt_connlabel.h+12−0
@@ -0,0 +1,12 @@
1+#include <linux/types.h>
2+
3+#define XT_CONNLABEL_MAXBIT 127
4+enum xt_connlabel_mtopts {
5+ XT_CONNLABEL_OP_INVERT = 1 << 0,
6+ XT_CONNLABEL_OP_SET = 1 << 1,
7+};
8+
9+struct xt_connlabel_mtinfo {
10+ __u16 bit;
11+ __u16 options;
12+};
include/uapi/linux/netfilter/xt_conntrack.h+1−0
@@ -31,6 +31,7 @@ enum { · 30 unmodified lines
3131 XT_CONNTRACK_REPLSRC_PORT = 1 << 10,
3232 XT_CONNTRACK_REPLDST_PORT = 1 << 11,
3333 XT_CONNTRACK_DIRECTION = 1 << 12,
34+ XT_CONNTRACK_STATE_ALIAS = 1 << 13,
3435 };
3536
3637 struct xt_conntrack_mtinfo1 {
include/uapi/linux/netfilter_ipv6/ip6_tables.h+3−0
@@ -178,6 +178,9 @@ struct ip6t_error { · 177 unmodified lines
178178 #define IP6T_SO_GET_REVISION_TARGET (IP6T_BASE_CTL + 5)
179179 #define IP6T_SO_GET_MAX IP6T_SO_GET_REVISION_TARGET
180180
181+/* obtain original address if REDIRECT'd connection */
182+#define IP6T_SO_ORIGINAL_DST 80
183+
181184 /* ICMP matching stuff */
182185 struct ip6t_icmp {
183186 __u8 type; /* type to match */
include/uapi/linux/nfc.h+39−13
@@ -5,20 +5,17 @@ · 4 unmodified lines
55 * Lauro Ramos Venancio <lauro.venancio@openbossa.org>
66 * Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
77 *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License as published by
10− * the Free Software Foundation; either version 2 of the License, or
11− * (at your option) any later version.
8+ * Permission to use, copy, modify, and/or distribute this software for any
9+ * purpose with or without fee is hereby granted, provided that the above
10+ * copyright notice and this permission notice appear in all copies.
1211 *
13− * This program is distributed in the hope that it will be useful,
14− * but WITHOUT ANY WARRANTY; without even the implied warranty of
15− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16− * GNU General Public License for more details.
17− *
18− * You should have received a copy of the GNU General Public License
19− * along with this program; if not, write to the
20− * Free Software Foundation, Inc.,
21− * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
12+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2219 */
2320
2421 #ifndef __LINUX_NFC_H
@@ -60,6 +57,18 @@ · 35 unmodified lines
6057 * target mode.
6158 * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated
6259 * from target mode.
60+ * @NFC_CMD_LLC_GET_PARAMS: request LTO, RW, and MIUX parameters for a device
61+ * @NFC_CMD_LLC_SET_PARAMS: set one or more of LTO, RW, and MIUX parameters for
62+ * a device. LTO must be set before the link is up otherwise -EINPROGRESS
63+ * is returned. RW and MIUX can be set at anytime and will be passed in
64+ * subsequent CONNECT and CC messages.
65+ * If one of the passed parameters is wrong none is set and -EINVAL is
66+ * returned.
67+ * @NFC_CMD_ENABLE_SE: Enable the physical link to a specific secure element.
68+ * Once enabled a secure element will handle card emulation mode, i.e.
69+ * starting a poll from a device which has a secure element enabled means
70+ * we want to do SE based card emulation.
71+ * @NFC_CMD_DISABLE_SE: Disable the physical link to a specific secure element.
6372 */
6473 enum nfc_commands {
6574 NFC_CMD_UNSPEC,
@@ -77,6 +86,10 @@ enum nfc_commands { · 11 unmodified lines
7786 NFC_EVENT_TARGET_LOST,
7887 NFC_EVENT_TM_ACTIVATED,
7988 NFC_EVENT_TM_DEACTIVATED,
89+ NFC_CMD_LLC_GET_PARAMS,
90+ NFC_CMD_LLC_SET_PARAMS,
91+ NFC_CMD_ENABLE_SE,
92+ NFC_CMD_DISABLE_SE,
8093 /* private: internal use only */
8194 __NFC_CMD_AFTER_LAST
8295 };
@@ -102,6 +115,10 @@ enum nfc_commands { · 19 unmodified lines
102115 * @NFC_ATTR_RF_MODE: Initiator or target
103116 * @NFC_ATTR_IM_PROTOCOLS: Initiator mode protocols to poll for
104117 * @NFC_ATTR_TM_PROTOCOLS: Target mode protocols to listen for
118+ * @NFC_ATTR_LLC_PARAM_LTO: Link TimeOut parameter
119+ * @NFC_ATTR_LLC_PARAM_RW: Receive Window size parameter
120+ * @NFC_ATTR_LLC_PARAM_MIUX: MIU eXtension parameter
121+ * @NFC_ATTR_SE: Available Secure Elements
105122 */
106123 enum nfc_attrs {
107124 NFC_ATTR_UNSPEC,
@@ -119,6 +136,10 @@ enum nfc_attrs { · 11 unmodified lines
119136 NFC_ATTR_DEVICE_POWERED,
120137 NFC_ATTR_IM_PROTOCOLS,
121138 NFC_ATTR_TM_PROTOCOLS,
139+ NFC_ATTR_LLC_PARAM_LTO,
140+ NFC_ATTR_LLC_PARAM_RW,
141+ NFC_ATTR_LLC_PARAM_MIUX,
142+ NFC_ATTR_SE,
122143 /* private: internal use only */
123144 __NFC_ATTR_AFTER_LAST
124145 };
@@ -157,6 +178,11 @@ enum nfc_attrs { · 32 unmodified lines
157178 #define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP)
158179 #define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B)
159180
181+/* NFC Secure Elements */
182+#define NFC_SE_NONE 0x0
183+#define NFC_SE_UICC 0x1
184+#define NFC_SE_EMBEDDED 0x2
185+
160186 struct sockaddr_nfc {
161187 sa_family_t sa_family;
162188 __u32 dev_idx;
include/uapi/linux/nl80211.h+545−27
@@ -118,8 +118,9 @@ · 117 unmodified lines
118118 * to get a list of all present wiphys.
119119 * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or
120120 * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME,
121− * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ,
122− * %NL80211_ATTR_WIPHY_CHANNEL_TYPE, %NL80211_ATTR_WIPHY_RETRY_SHORT,
121+ * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the
122+ * attributes determining the channel width; this is used for setting
123+ * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT,
123124 * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
124125 * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD.
125126 * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL
@@ -169,9 +170,10 @@ · 43 unmodified lines
169170 * %NL80211_ATTR_HIDDEN_SSID, %NL80211_ATTR_CIPHERS_PAIRWISE,
170171 * %NL80211_ATTR_CIPHER_GROUP, %NL80211_ATTR_WPA_VERSIONS,
171172 * %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY,
172− * %NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT.
173+ * %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_INACTIVITY_TIMEOUT,
174+ * %NL80211_ATTR_ACL_POLICY and %NL80211_ATTR_MAC_ADDRS.
173175 * The channel to use can be set on the interface or be given using the
174− * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_CHANNEL_TYPE attrs.
176+ * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width.
175177 * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP
176178 * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface
177179 * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP
@@ -373,8 +375,8 @@ · 195 unmodified lines
373375 * requests to connect to a specified network but without separating
374376 * auth and assoc steps. For this, you need to specify the SSID in a
375377 * %NL80211_ATTR_SSID attribute, and can optionally specify the association
376− * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC,
377− * %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
378+ * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP,
379+ * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
378380 * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and
379381 * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT.
380382 * Background scan period can optionally be
@@ -401,8 +403,7 @@ · 20 unmodified lines
401403 * a response while being associated to an AP on another channel.
402404 * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus
403405 * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
404− * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be
405− * optionally used to specify additional channel parameters.
406+ * frequency for the operation.
406407 * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds
407408 * to remain on the channel. This command is also used as an event to
408409 * notify when the requested duration starts (it may take a while for the
@@ -440,12 +441,11 @@ · 31 unmodified lines
440441 * as an event indicating reception of a frame that was not processed in
441442 * kernel code, but is for us (i.e., which may need to be processed in a
442443 * user space application). %NL80211_ATTR_FRAME is used to specify the
443− * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and
444− * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on
445− * which channel the frame is to be transmitted or was received. If this
446− * channel is not the current channel (remain-on-channel or the
447− * operational channel) the device will switch to the given channel and
448− * transmit the frame, optionally waiting for a response for the time
444+ * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used
445+ * to indicate on which channel the frame is to be transmitted or was
446+ * received. If this channel is not the current channel (remain-on-channel
447+ * or the operational channel) the device will switch to the given channel
448+ * and transmit the frame, optionally waiting for a response for the time
449449 * specified using %NL80211_ATTR_DURATION. When called, this operation
450450 * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the
451451 * TX status event pertaining to the TX request.
@@ -473,8 +473,8 @@ · 21 unmodified lines
473473 * command is used as an event to indicate the that a trigger level was
474474 * reached.
475475 * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ
476− * and %NL80211_ATTR_WIPHY_CHANNEL_TYPE) the given interface (identifed
477− * by %NL80211_ATTR_IFINDEX) shall operate on.
476+ * and the attributes determining channel width) the given interface
477+ * (identifed by %NL80211_ATTR_IFINDEX) shall operate on.
478478 * In case multiple channels are supported by the device, the mechanism
479479 * with which it switches channels is implementation-defined.
480480 * When a monitor interface is given, it can only switch channel while
@@ -513,6 +513,12 @@ · 32 unmodified lines
513513 * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For
514514 * more background information, see
515515 * http://wireless.kernel.org/en/users/Documentation/WoWLAN.
516+ * The @NL80211_CMD_SET_WOWLAN command can also be used as a notification
517+ * from the driver reporting the wakeup reason. In this case, the
518+ * @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason
519+ * for the wakeup, if it was caused by wireless. If it is not present
520+ * in the wakeup notification, the wireless device didn't cause the
521+ * wakeup but reports that it was woken up.
516522 *
517523 * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver
518524 * the necessary information for supporting GTK rekey offload. This
@@ -526,6 +532,12 @@ · 7 unmodified lines
526532 * of PMKSA caching dandidates.
527533 *
528534 * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup).
535+ * In addition, this can be used as an event to request userspace to take
536+ * actions on TDLS links (set up a new link or tear down an existing one).
537+ * In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested
538+ * operation, %NL80211_ATTR_MAC contains the peer MAC address, and
539+ * %NL80211_ATTR_REASON_CODE the reason code to be used (only with
540+ * %NL80211_TDLS_TEARDOWN).
529541 * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame.
530542 *
531543 * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
@@ -562,8 +574,8 @@ · 30 unmodified lines
562574 *
563575 * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels
564576 * independently of the userspace SME, send this event indicating
565− * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ with
566− * %NL80211_ATTR_WIPHY_CHANNEL_TYPE.
577+ * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the
578+ * attributes determining channel width.
567579 *
568580 * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by
569581 * its %NL80211_ATTR_WDEV identifier. It must have been created with
@@ -578,6 +590,27 @@ · 8 unmodified lines
578590 * station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON
579591 * is used for this.
580592 *
593+ * @NL80211_CMD_SET_MCAST_RATE: Change the rate used to send multicast frames
594+ * for IBSS or MESH vif.
595+ *
596+ * @NL80211_CMD_SET_MAC_ACL: sets ACL for MAC address based access control.
597+ * This is to be used with the drivers advertising the support of MAC
598+ * address based access control. List of MAC addresses is passed in
599+ * %NL80211_ATTR_MAC_ADDRS and ACL policy is passed in
600+ * %NL80211_ATTR_ACL_POLICY. Driver will enable ACL with this list, if it
601+ * is not already done. The new list will replace any existing list. Driver
602+ * will clear its ACL when the list of MAC addresses passed is empty. This
603+ * command is used in AP/P2P GO mode. Driver has to make sure to clear its
604+ * ACL list during %NL80211_CMD_STOP_AP.
605+ *
606+ * @NL80211_CMD_RADAR_DETECT: Start a Channel availability check (CAC). Once
607+ * a radar is detected or the channel availability scan (CAC) has finished
608+ * or was aborted, or a radar was detected, usermode will be notified with
609+ * this event. This command is also used to notify userspace about radars
610+ * while operating on this channel.
611+ * %NL80211_ATTR_RADAR_EVENT is used to inform about the type of the
612+ * event.
613+ *
581614 * @NL80211_CMD_MAX: highest used command number
582615 * @__NL80211_CMD_AFTER_LAST: internal use
583616 */
@@ -726,6 +759,12 @@ enum nl80211_commands { · 142 unmodified lines
726759
727760 NL80211_CMD_CONN_FAILED,
728761
762+ NL80211_CMD_SET_MCAST_RATE,
763+
764+ NL80211_CMD_SET_MAC_ACL,
765+
766+ NL80211_CMD_RADAR_DETECT,
767+
729768 /* add new commands above here */
730769
731770 /* used to define NL80211_CMD_MAX below */
@@ -762,14 +801,26 @@ enum nl80211_commands { · 30 unmodified lines
762801 * /sys/class/ieee80211/<phyname>/index
763802 * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming)
764803 * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters
765− * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz
804+ * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz,
805+ * defines the channel together with the (deprecated)
806+ * %NL80211_ATTR_WIPHY_CHANNEL_TYPE attribute or the attributes
807+ * %NL80211_ATTR_CHANNEL_WIDTH and if needed %NL80211_ATTR_CENTER_FREQ1
808+ * and %NL80211_ATTR_CENTER_FREQ2
809+ * @NL80211_ATTR_CHANNEL_WIDTH: u32 attribute containing one of the values
810+ * of &enum nl80211_chan_width, describing the channel width. See the
811+ * documentation of the enum for more information.
812+ * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the
813+ * channel, used for anything but 20 MHz bandwidth
814+ * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the
815+ * channel, used only for 80+80 MHz bandwidth
766816 * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ
767− * if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included):
817+ * if HT20 or HT40 are to be used (i.e., HT disabled if not included):
768818 * NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including
769819 * this attribute)
770820 * NL80211_CHAN_HT20 = HT20 only
771821 * NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel
772822 * NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel
823+ * This attribute is now deprecated.
773824 * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is
774825 * less than or equal to the RTS threshold; allowed range: 1..255;
775826 * dot11ShortRetryLimit; u8
@@ -936,7 +987,7 @@ enum nl80211_commands { · 160 unmodified lines
936987 * @NL80211_ATTR_USE_MFP: Whether management frame protection (IEEE 802.11w) is
937988 * used for the association (&enum nl80211_mfp, represented as a u32);
938989 * this attribute can be used
939− * with %NL80211_CMD_ASSOCIATE request
990+ * with %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests
940991 *
941992 * @NL80211_ATTR_STA_FLAGS2: Attribute containing a
942993 * &struct nl80211_sta_flag_update.
@@ -1273,6 +1324,50 @@ enum nl80211_commands { · 330 unmodified lines
12731324 * the connection request from a station. nl80211_connect_failed_reason
12741325 * enum has different reasons of connection failure.
12751326 *
1327+ * @NL80211_ATTR_SAE_DATA: SAE elements in Authentication frames. This starts
1328+ * with the Authentication transaction sequence number field.
1329+ *
1330+ * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from
1331+ * association request when used with NL80211_CMD_NEW_STATION)
1332+ *
1333+ * @NL80211_ATTR_SCAN_FLAGS: scan request control flags (u32)
1334+ *
1335+ * @NL80211_ATTR_P2P_CTWINDOW: P2P GO Client Traffic Window (u8), used with
1336+ * the START_AP and SET_BSS commands
1337+ * @NL80211_ATTR_P2P_OPPPS: P2P GO opportunistic PS (u8), used with the
1338+ * START_AP and SET_BSS commands. This can have the values 0 or 1;
1339+ * if not given in START_AP 0 is assumed, if not given in SET_BSS
1340+ * no change is made.
1341+ *
1342+ * @NL80211_ATTR_LOCAL_MESH_POWER_MODE: local mesh STA link-specific power mode
1343+ * defined in &enum nl80211_mesh_power_mode.
1344+ *
1345+ * @NL80211_ATTR_ACL_POLICY: ACL policy, see &enum nl80211_acl_policy,
1346+ * carried in a u32 attribute
1347+ *
1348+ * @NL80211_ATTR_MAC_ADDRS: Array of nested MAC addresses, used for
1349+ * MAC ACL.
1350+ *
1351+ * @NL80211_ATTR_MAC_ACL_MAX: u32 attribute to advertise the maximum
1352+ * number of MAC addresses that a device can support for MAC
1353+ * ACL.
1354+ *
1355+ * @NL80211_ATTR_RADAR_EVENT: Type of radar event for notification to userspace,
1356+ * contains a value of enum nl80211_radar_event (u32).
1357+ *
1358+ * @NL80211_ATTR_EXT_CAPA: 802.11 extended capabilities that the kernel driver
1359+ * has and handles. The format is the same as the IE contents. See
1360+ * 802.11-2012 8.4.2.29 for more information.
1361+ * @NL80211_ATTR_EXT_CAPA_MASK: Extended capabilities that the kernel driver
1362+ * has set in the %NL80211_ATTR_EXT_CAPA value, for multibit fields.
1363+ *
1364+ * @NL80211_ATTR_STA_CAPABILITY: Station capabilities (u16) are advertised to
1365+ * the driver, e.g., to enable TDLS power save (PU-APSD).
1366+ *
1367+ * @NL80211_ATTR_STA_EXT_CAPABILITY: Station extended capabilities are
1368+ * advertised to the driver, e.g., to enable TDLS off channel operations
1369+ * and PU-APSD.
1370+ *
12761371 * @NL80211_ATTR_MAX: highest attribute number currently defined
12771372 * @__NL80211_ATTR_AFTER_LAST: internal use
12781373 */
@@ -1530,6 +1625,35 @@ enum nl80211_attrs { · 251 unmodified lines
15301625
15311626 NL80211_ATTR_CONN_FAILED_REASON,
15321627
1628+ NL80211_ATTR_SAE_DATA,
1629+
1630+ NL80211_ATTR_VHT_CAPABILITY,
1631+
1632+ NL80211_ATTR_SCAN_FLAGS,
1633+
1634+ NL80211_ATTR_CHANNEL_WIDTH,
1635+ NL80211_ATTR_CENTER_FREQ1,
1636+ NL80211_ATTR_CENTER_FREQ2,
1637+
1638+ NL80211_ATTR_P2P_CTWINDOW,
1639+ NL80211_ATTR_P2P_OPPPS,
1640+
1641+ NL80211_ATTR_LOCAL_MESH_POWER_MODE,
1642+
1643+ NL80211_ATTR_ACL_POLICY,
1644+
1645+ NL80211_ATTR_MAC_ADDRS,
1646+
1647+ NL80211_ATTR_MAC_ACL_MAX,
1648+
1649+ NL80211_ATTR_RADAR_EVENT,
1650+
1651+ NL80211_ATTR_EXT_CAPA,
1652+ NL80211_ATTR_EXT_CAPA_MASK,
1653+
1654+ NL80211_ATTR_STA_CAPABILITY,
1655+ NL80211_ATTR_STA_EXT_CAPABILITY,
1656+
15331657 /* add attributes here, update the policy in nl80211.c */
15341658
15351659 __NL80211_ATTR_AFTER_LAST,
@@ -1573,6 +1697,7 @@ enum nl80211_attrs { · 37 unmodified lines
15731697 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
15741698 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
15751699 #define NL80211_HT_CAPABILITY_LEN 26
1700+#define NL80211_VHT_CAPABILITY_LEN 12
15761701
15771702 #define NL80211_MAX_NR_CIPHER_SUITES 5
15781703 #define NL80211_MAX_NR_AKM_SUITES 2
@@ -1646,6 +1771,9 @@ enum nl80211_iftype { · 67 unmodified lines
16461771 * flag can't be changed, it is only valid while adding a station, and
16471772 * attempts to change it will silently be ignored (rather than rejected
16481773 * as errors.)
1774+ * @NL80211_STA_FLAG_ASSOCIATED: station is associated; used with drivers
1775+ * that support %NL80211_FEATURE_FULL_AP_CLIENT_STATE to transition a
1776+ * previously added station into associated state
16491777 * @NL80211_STA_FLAG_MAX: highest station flag number currently defined
16501778 * @__NL80211_STA_FLAG_AFTER_LAST: internal use
16511779 */
@@ -1657,6 +1785,7 @@ enum nl80211_sta_flags { · 5 unmodified lines
16571785 NL80211_STA_FLAG_MFP,
16581786 NL80211_STA_FLAG_AUTHENTICATED,
16591787 NL80211_STA_FLAG_TDLS_PEER,
1788+ NL80211_STA_FLAG_ASSOCIATED,
16601789
16611790 /* keep last */
16621791 __NL80211_STA_FLAG_AFTER_LAST,
@@ -1693,10 +1822,15 @@ struct nl80211_sta_flag_update { · 30 unmodified lines
16931822 * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved
16941823 * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s)
16951824 * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8)
1696− * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 Mhz dualchannel bitrate
1825+ * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 MHz dualchannel bitrate
16971826 * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval
16981827 * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s)
16991828 * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined
1829+ * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8)
1830+ * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8)
1831+ * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate
1832+ * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate
1833+ * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate
17001834 * @__NL80211_RATE_INFO_AFTER_LAST: internal use
17011835 */
17021836 enum nl80211_rate_info {
@@ -1706,6 +1840,11 @@ enum nl80211_rate_info { · 3 unmodified lines
17061840 NL80211_RATE_INFO_40_MHZ_WIDTH,
17071841 NL80211_RATE_INFO_SHORT_GI,
17081842 NL80211_RATE_INFO_BITRATE32,
1843+ NL80211_RATE_INFO_VHT_MCS,
1844+ NL80211_RATE_INFO_VHT_NSS,
1845+ NL80211_RATE_INFO_80_MHZ_WIDTH,
1846+ NL80211_RATE_INFO_80P80_MHZ_WIDTH,
1847+ NL80211_RATE_INFO_160_MHZ_WIDTH,
17091848
17101849 /* keep last */
17111850 __NL80211_RATE_INFO_AFTER_LAST,
@@ -1752,6 +1891,8 @@ enum nl80211_sta_bss_param { · 40 unmodified lines
17521891 * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs)
17531892 * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station)
17541893 * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station)
1894+ * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station)
1895+ * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station)
17551896 * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm)
17561897 * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute
17571898 * containing info as possible, see &enum nl80211_rate_info
@@ -1773,6 +1914,10 @@ enum nl80211_sta_bss_param { · 15 unmodified lines
17731914 * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update.
17741915 * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32)
17751916 * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64)
1917+ * @NL80211_STA_INFO_LOCAL_PM: local mesh STA link-specific power mode
1918+ * @NL80211_STA_INFO_PEER_PM: peer mesh STA link-specific power mode
1919+ * @NL80211_STA_INFO_NONPEER_PM: neighbor mesh STA power save mode towards
1920+ * non-peer STA
17761921 * @__NL80211_STA_INFO_AFTER_LAST: internal
17771922 * @NL80211_STA_INFO_MAX: highest possible station info attribute
17781923 */
@@ -1797,6 +1942,11 @@ enum nl80211_sta_info { · 18 unmodified lines
17971942 NL80211_STA_INFO_STA_FLAGS,
17981943 NL80211_STA_INFO_BEACON_LOSS,
17991944 NL80211_STA_INFO_T_OFFSET,
1945+ NL80211_STA_INFO_LOCAL_PM,
1946+ NL80211_STA_INFO_PEER_PM,
1947+ NL80211_STA_INFO_NONPEER_PM,
1948+ NL80211_STA_INFO_RX_BYTES64,
1949+ NL80211_STA_INFO_TX_BYTES64,
18001950
18011951 /* keep last */
18021952 __NL80211_STA_INFO_AFTER_LAST,
@@ -1906,6 +2056,20 @@ enum nl80211_band_attr { · 103 unmodified lines
19062056 * on this channel in current regulatory domain.
19072057 * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
19082058 * (100 * dBm).
2059+ * @NL80211_FREQUENCY_ATTR_DFS_STATE: current state for DFS
2060+ * (enum nl80211_dfs_state)
2061+ * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in miliseconds for how long
2062+ * this channel is in this DFS state.
2063+ * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this
2064+ * channel as the control channel
2065+ * @NL80211_FREQUENCY_ATTR_NO_HT40_PLUS: HT40+ isn't possible with this
2066+ * channel as the control channel
2067+ * @NL80211_FREQUENCY_ATTR_NO_80MHZ: any 80 MHz channel using this channel
2068+ * as the primary or any of the secondary channels isn't possible,
2069+ * this includes 80+80 channels
2070+ * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel
2071+ * using this channel as the primary or any of the secondary channels
2072+ * isn't possible
19092073 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
19102074 * currently defined
19112075 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -1918,6 +2082,12 @@ enum nl80211_frequency_attr { · 6 unmodified lines
19182082 NL80211_FREQUENCY_ATTR_NO_IBSS,
19192083 NL80211_FREQUENCY_ATTR_RADAR,
19202084 NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
2085+ NL80211_FREQUENCY_ATTR_DFS_STATE,
2086+ NL80211_FREQUENCY_ATTR_DFS_TIME,
2087+ NL80211_FREQUENCY_ATTR_NO_HT40_MINUS,
2088+ NL80211_FREQUENCY_ATTR_NO_HT40_PLUS,
2089+ NL80211_FREQUENCY_ATTR_NO_80MHZ,
2090+ NL80211_FREQUENCY_ATTR_NO_160MHZ,
19212091
19222092 /* keep last */
19232093 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -2187,6 +2357,34 @@ enum nl80211_mntr_flags { · 263 unmodified lines
21872357 NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1
21882358 };
21892359
2360+/**
2361+ * enum nl80211_mesh_power_mode - mesh power save modes
2362+ *
2363+ * @NL80211_MESH_POWER_UNKNOWN: The mesh power mode of the mesh STA is
2364+ * not known or has not been set yet.
2365+ * @NL80211_MESH_POWER_ACTIVE: Active mesh power mode. The mesh STA is
2366+ * in Awake state all the time.
2367+ * @NL80211_MESH_POWER_LIGHT_SLEEP: Light sleep mode. The mesh STA will
2368+ * alternate between Active and Doze states, but will wake up for
2369+ * neighbor's beacons.
2370+ * @NL80211_MESH_POWER_DEEP_SLEEP: Deep sleep mode. The mesh STA will
2371+ * alternate between Active and Doze states, but may not wake up
2372+ * for neighbor's beacons.
2373+ *
2374+ * @__NL80211_MESH_POWER_AFTER_LAST - internal use
2375+ * @NL80211_MESH_POWER_MAX - highest possible power save level
2376+ */
2377+
2378+enum nl80211_mesh_power_mode {
2379+ NL80211_MESH_POWER_UNKNOWN,
2380+ NL80211_MESH_POWER_ACTIVE,
2381+ NL80211_MESH_POWER_LIGHT_SLEEP,
2382+ NL80211_MESH_POWER_DEEP_SLEEP,
2383+
2384+ __NL80211_MESH_POWER_AFTER_LAST,
2385+ NL80211_MESH_POWER_MAX = __NL80211_MESH_POWER_AFTER_LAST - 1
2386+};
2387+
21902388 /**
21912389 * enum nl80211_meshconf_params - mesh configuration parameters
21922390 *
@@ -2281,6 +2479,11 @@ enum nl80211_mntr_flags { · 88 unmodified lines
22812479 * (in TUs) during which a mesh STA can send only one Action frame
22822480 * containing a PREQ element for root path confirmation.
22832481 *
2482+ * @NL80211_MESHCONF_POWER_MODE: Default mesh power mode for new peer links.
2483+ * type &enum nl80211_mesh_power_mode (u32)
2484+ *
2485+ * @NL80211_MESHCONF_AWAKE_WINDOW: awake window duration (in TUs)
2486+ *
22842487 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
22852488 */
22862489 enum nl80211_meshconf_params {
@@ -2310,6 +2513,8 @@ enum nl80211_meshconf_params { · 23 unmodified lines
23102513 NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT,
23112514 NL80211_MESHCONF_HWMP_ROOT_INTERVAL,
23122515 NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL,
2516+ NL80211_MESHCONF_POWER_MODE,
2517+ NL80211_MESHCONF_AWAKE_WINDOW,
23132518
23142519 /* keep last */
23152520 __NL80211_MESHCONF_ATTR_AFTER_LAST,
@@ -2414,6 +2619,15 @@ enum nl80211_ac { · 98 unmodified lines
24142619 #define NL80211_TXQ_Q_BE NL80211_AC_BE
24152620 #define NL80211_TXQ_Q_BK NL80211_AC_BK
24162621
2622+/**
2623+ * enum nl80211_channel_type - channel type
2624+ * @NL80211_CHAN_NO_HT: 20 MHz, non-HT channel
2625+ * @NL80211_CHAN_HT20: 20 MHz HT channel
2626+ * @NL80211_CHAN_HT40MINUS: HT40 channel, secondary channel
2627+ * below the control channel
2628+ * @NL80211_CHAN_HT40PLUS: HT40 channel, secondary channel
2629+ * above the control channel
2630+ */
24172631 enum nl80211_channel_type {
24182632 NL80211_CHAN_NO_HT,
24192633 NL80211_CHAN_HT20,
@@ -2421,6 +2635,32 @@ enum nl80211_channel_type { · 1 unmodified line
24212635 NL80211_CHAN_HT40PLUS
24222636 };
24232637
2638+/**
2639+ * enum nl80211_chan_width - channel width definitions
2640+ *
2641+ * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH
2642+ * attribute.
2643+ *
2644+ * @NL80211_CHAN_WIDTH_20_NOHT: 20 MHz, non-HT channel
2645+ * @NL80211_CHAN_WIDTH_20: 20 MHz HT channel
2646+ * @NL80211_CHAN_WIDTH_40: 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
2647+ * attribute must be provided as well
2648+ * @NL80211_CHAN_WIDTH_80: 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
2649+ * attribute must be provided as well
2650+ * @NL80211_CHAN_WIDTH_80P80: 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
2651+ * and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well
2652+ * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
2653+ * attribute must be provided as well
2654+ */
2655+enum nl80211_chan_width {
2656+ NL80211_CHAN_WIDTH_20_NOHT,
2657+ NL80211_CHAN_WIDTH_20,
2658+ NL80211_CHAN_WIDTH_40,
2659+ NL80211_CHAN_WIDTH_80,
2660+ NL80211_CHAN_WIDTH_80P80,
2661+ NL80211_CHAN_WIDTH_160,
2662+};
2663+
24242664 /**
24252665 * enum nl80211_bss - netlink attributes for a BSS
24262666 *
@@ -2489,6 +2729,7 @@ enum nl80211_bss_status { · 62 unmodified lines
24892729 * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only)
24902730 * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r)
24912731 * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP)
2732+ * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals
24922733 * @__NL80211_AUTHTYPE_NUM: internal
24932734 * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm
24942735 * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by
@@ -2500,6 +2741,7 @@ enum nl80211_auth_type { · 5 unmodified lines
25002741 NL80211_AUTHTYPE_SHARED_KEY,
25012742 NL80211_AUTHTYPE_FT,
25022743 NL80211_AUTHTYPE_NETWORK_EAP,
2744+ NL80211_AUTHTYPE_SAE,
25032745
25042746 /* keep last */
25052747 __NL80211_AUTHTYPE_NUM,
@@ -2718,10 +2960,12 @@ enum nl80211_tx_power_setting { · 212 unmodified lines
27182960 * corresponds to the lowest-order bit in the second byte of the mask.
27192961 * For example: The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where
27202962 * xx indicates "don't care") would be represented by a pattern of
2721− * twelve zero bytes, and a mask of "0xed,0x07".
2963+ * twelve zero bytes, and a mask of "0xed,0x01".
27222964 * Note that the pattern matching is done as though frames were not
27232965 * 802.11 frames but 802.3 frames, i.e. the frame is fully unpacked
27242966 * first (including SNAP header unpacking) and then matched.
2967+ * @NL80211_WOWLAN_PKTPAT_OFFSET: packet offset, pattern is matched after
2968+ * these fixed number of bytes of received packet
27252969 * @NUM_NL80211_WOWLAN_PKTPAT: number of attributes
27262970 * @MAX_NL80211_WOWLAN_PKTPAT: max attribute number
27272971 */
@@ -2729,6 +2973,7 @@ enum nl80211_wowlan_packet_pattern_attr { · 1 unmodified line
27292973 __NL80211_WOWLAN_PKTPAT_INVALID,
27302974 NL80211_WOWLAN_PKTPAT_MASK,
27312975 NL80211_WOWLAN_PKTPAT_PATTERN,
2976+ NL80211_WOWLAN_PKTPAT_OFFSET,
27322977
27332978 NUM_NL80211_WOWLAN_PKTPAT,
27342979 MAX_NL80211_WOWLAN_PKTPAT = NUM_NL80211_WOWLAN_PKTPAT - 1,
@@ -2739,6 +2984,7 @@ enum nl80211_wowlan_packet_pattern_attr { · 4 unmodified lines
27392984 * @max_patterns: maximum number of patterns supported
27402985 * @min_pattern_len: minimum length of each pattern
27412986 * @max_pattern_len: maximum length of each pattern
2987+ * @max_pkt_offset: maximum Rx packet offset
27422988 *
27432989 * This struct is carried in %NL80211_WOWLAN_TRIG_PKT_PATTERN when
27442990 * that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED in the
@@ -2748,6 +2994,7 @@ struct nl80211_wowlan_pattern_support { · 3 unmodified lines
27482994 __u32 max_patterns;
27492995 __u32 min_pattern_len;
27502996 __u32 max_pattern_len;
2997+ __u32 max_pkt_offset;
27512998 } __attribute__((packed));
27522999
27533000 /**
@@ -2763,12 +3010,17 @@ struct nl80211_wowlan_pattern_support { · 9 unmodified lines
27633010 * @NL80211_WOWLAN_TRIG_PKT_PATTERN: wake up on the specified packet patterns
27643011 * which are passed in an array of nested attributes, each nested attribute
27653012 * defining a with attributes from &struct nl80211_wowlan_trig_pkt_pattern.
2766− * Each pattern defines a wakeup packet. The matching is done on the MSDU,
2767− * i.e. as though the packet was an 802.3 packet, so the pattern matching
2768− * is done after the packet is converted to the MSDU.
3013+ * Each pattern defines a wakeup packet. Packet offset is associated with
3014+ * each pattern which is used while matching the pattern. The matching is
3015+ * done on the MSDU, i.e. as though the packet was an 802.3 packet, so the
3016+ * pattern matching is done after the packet is converted to the MSDU.
27693017 *
27703018 * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute
27713019 * carrying a &struct nl80211_wowlan_pattern_support.
3020+ *
3021+ * When reporting wakeup. it is a u32 attribute containing the 0-based
3022+ * index of the pattern that caused the wakeup, in the patterns passed
3023+ * to the kernel when configuring.
27723024 * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be
27733025 * used when setting, used only to indicate that GTK rekeying is supported
27743026 * by the device (flag)
@@ -2779,8 +3031,36 @@ struct nl80211_wowlan_pattern_support { · 4 unmodified lines
27793031 * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag)
27803032 * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released
27813033 * (on devices that have rfkill in the device) (flag)
3034+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211: For wakeup reporting only, contains
3035+ * the 802.11 packet that caused the wakeup, e.g. a deauth frame. The frame
3036+ * may be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN
3037+ * attribute contains the original length.
3038+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN: Original length of the 802.11
3039+ * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211
3040+ * attribute if the packet was truncated somewhere.
3041+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023: For wakeup reporting only, contains the
3042+ * 802.11 packet that caused the wakeup, e.g. a magic packet. The frame may
3043+ * be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN attribute
3044+ * contains the original length.
3045+ * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN: Original length of the 802.3
3046+ * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023
3047+ * attribute if the packet was truncated somewhere.
3048+ * @NL80211_WOWLAN_TRIG_TCP_CONNECTION: TCP connection wake, see DOC section
3049+ * "TCP connection wakeup" for more details. This is a nested attribute
3050+ * containing the exact information for establishing and keeping alive
3051+ * the TCP connection.
3052+ * @NL80211_WOWLAN_TRIG_TCP_WAKEUP_MATCH: For wakeup reporting only, the
3053+ * wakeup packet was received on the TCP connection
3054+ * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST: For wakeup reporting only, the
3055+ * TCP connection was lost or failed to be established
3056+ * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only,
3057+ * the TCP connection ran out of tokens to use for data to send to the
3058+ * service
27823059 * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers
27833060 * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number
3061+ *
3062+ * These nested attributes are used to configure the wakeup triggers and
3063+ * to report the wakeup reason(s).
27843064 */
27853065 enum nl80211_wowlan_triggers {
27863066 __NL80211_WOWLAN_TRIG_INVALID,
@@ -2793,12 +3073,130 @@ enum nl80211_wowlan_triggers { · 6 unmodified lines
27933073 NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST,
27943074 NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE,
27953075 NL80211_WOWLAN_TRIG_RFKILL_RELEASE,
3076+ NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211,
3077+ NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN,
3078+ NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023,
3079+ NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN,
3080+ NL80211_WOWLAN_TRIG_TCP_CONNECTION,
3081+ NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH,
3082+ NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST,
3083+ NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS,
27963084
27973085 /* keep last */
27983086 NUM_NL80211_WOWLAN_TRIG,
27993087 MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1
28003088 };
28013089
3090+/**
3091+ * DOC: TCP connection wakeup
3092+ *
3093+ * Some devices can establish a TCP connection in order to be woken up by a
3094+ * packet coming in from outside their network segment, or behind NAT. If
3095+ * configured, the device will establish a TCP connection to the given
3096+ * service, and periodically send data to that service. The first data
3097+ * packet is usually transmitted after SYN/ACK, also ACKing the SYN/ACK.
3098+ * The data packets can optionally include a (little endian) sequence
3099+ * number (in the TCP payload!) that is generated by the device, and, also
3100+ * optionally, a token from a list of tokens. This serves as a keep-alive
3101+ * with the service, and for NATed connections, etc.
3102+ *
3103+ * During this keep-alive period, the server doesn't send any data to the
3104+ * client. When receiving data, it is compared against the wakeup pattern
3105+ * (and mask) and if it matches, the host is woken up. Similarly, if the
3106+ * connection breaks or cannot be established to start with, the host is
3107+ * also woken up.
3108+ *
3109+ * Developer's note: ARP offload is required for this, otherwise TCP
3110+ * response packets might not go through correctly.
3111+ */
3112+
3113+/**
3114+ * struct nl80211_wowlan_tcp_data_seq - WoWLAN TCP data sequence
3115+ * @start: starting value
3116+ * @offset: offset of sequence number in packet
3117+ * @len: length of the sequence value to write, 1 through 4
3118+ *
3119+ * Note: don't confuse with the TCP sequence number(s), this is for the
3120+ * keepalive packet payload. The actual value is written into the packet
3121+ * in little endian.
3122+ */
3123+struct nl80211_wowlan_tcp_data_seq {
3124+ __u32 start, offset, len;
3125+};
3126+
3127+/**
3128+ * struct nl80211_wowlan_tcp_data_token - WoWLAN TCP data token config
3129+ * @offset: offset of token in packet
3130+ * @len: length of each token
3131+ * @token_stream: stream of data to be used for the tokens, the length must
3132+ * be a multiple of @len for this to make sense
3133+ */
3134+struct nl80211_wowlan_tcp_data_token {
3135+ __u32 offset, len;
3136+ __u8 token_stream[];
3137+};
3138+
3139+/**
3140+ * struct nl80211_wowlan_tcp_data_token_feature - data token features
3141+ * @min_len: minimum token length
3142+ * @max_len: maximum token length
3143+ * @bufsize: total available token buffer size (max size of @token_stream)
3144+ */
3145+struct nl80211_wowlan_tcp_data_token_feature {
3146+ __u32 min_len, max_len, bufsize;
3147+};
3148+
3149+/**
3150+ * enum nl80211_wowlan_tcp_attrs - WoWLAN TCP connection parameters
3151+ * @__NL80211_WOWLAN_TCP_INVALID: invalid number for nested attributes
3152+ * @NL80211_WOWLAN_TCP_SRC_IPV4: source IPv4 address (in network byte order)
3153+ * @NL80211_WOWLAN_TCP_DST_IPV4: destination IPv4 address
3154+ * (in network byte order)
3155+ * @NL80211_WOWLAN_TCP_DST_MAC: destination MAC address, this is given because
3156+ * route lookup when configured might be invalid by the time we suspend,
3157+ * and doing a route lookup when suspending is no longer possible as it
3158+ * might require ARP querying.
3159+ * @NL80211_WOWLAN_TCP_SRC_PORT: source port (u16); optional, if not given a
3160+ * socket and port will be allocated
3161+ * @NL80211_WOWLAN_TCP_DST_PORT: destination port (u16)
3162+ * @NL80211_WOWLAN_TCP_DATA_PAYLOAD: data packet payload, at least one byte.
3163+ * For feature advertising, a u32 attribute holding the maximum length
3164+ * of the data payload.
3165+ * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ: data packet sequence configuration
3166+ * (if desired), a &struct nl80211_wowlan_tcp_data_seq. For feature
3167+ * advertising it is just a flag
3168+ * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN: data packet token configuration,
3169+ * see &struct nl80211_wowlan_tcp_data_token and for advertising see
3170+ * &struct nl80211_wowlan_tcp_data_token_feature.
3171+ * @NL80211_WOWLAN_TCP_DATA_INTERVAL: data interval in seconds, maximum
3172+ * interval in feature advertising (u32)
3173+ * @NL80211_WOWLAN_TCP_WAKE_PAYLOAD: wake packet payload, for advertising a
3174+ * u32 attribute holding the maximum length
3175+ * @NL80211_WOWLAN_TCP_WAKE_MASK: Wake packet payload mask, not used for
3176+ * feature advertising. The mask works like @NL80211_WOWLAN_PKTPAT_MASK
3177+ * but on the TCP payload only.
3178+ * @NUM_NL80211_WOWLAN_TCP: number of TCP attributes
3179+ * @MAX_NL80211_WOWLAN_TCP: highest attribute number
3180+ */
3181+enum nl80211_wowlan_tcp_attrs {
3182+ __NL80211_WOWLAN_TCP_INVALID,
3183+ NL80211_WOWLAN_TCP_SRC_IPV4,
3184+ NL80211_WOWLAN_TCP_DST_IPV4,
3185+ NL80211_WOWLAN_TCP_DST_MAC,
3186+ NL80211_WOWLAN_TCP_SRC_PORT,
3187+ NL80211_WOWLAN_TCP_DST_PORT,
3188+ NL80211_WOWLAN_TCP_DATA_PAYLOAD,
3189+ NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ,
3190+ NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN,
3191+ NL80211_WOWLAN_TCP_DATA_INTERVAL,
3192+ NL80211_WOWLAN_TCP_WAKE_PAYLOAD,
3193+ NL80211_WOWLAN_TCP_WAKE_MASK,
3194+
3195+ /* keep last */
3196+ NUM_NL80211_WOWLAN_TCP,
3197+ MAX_NL80211_WOWLAN_TCP = NUM_NL80211_WOWLAN_TCP - 1
3198+};
3199+
28023200 /**
28033201 * enum nl80211_iface_limit_attrs - limit attributes
28043202 * @NL80211_IFACE_LIMIT_UNSPEC: (reserved)
@@ -2835,6 +3233,8 @@ enum nl80211_iface_limit_attrs { · 30 unmodified lines
28353233 * the infrastructure network's beacon interval.
28363234 * @NL80211_IFACE_COMB_NUM_CHANNELS: u32 attribute specifying how many
28373235 * different channels may be used within this group.
3236+ * @NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS: u32 attribute containing the bitmap
3237+ * of supported channel widths for radar detection.
28383238 * @NUM_NL80211_IFACE_COMB: number of attributes
28393239 * @MAX_NL80211_IFACE_COMB: highest attribute number
28403240 *
@@ -2867,6 +3267,7 @@ enum nl80211_if_combination_attrs { · 26 unmodified lines
28673267 NL80211_IFACE_COMB_MAXNUM,
28683268 NL80211_IFACE_COMB_STA_AP_BI_MATCH,
28693269 NL80211_IFACE_COMB_NUM_CHANNELS,
3270+ NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS,
28703271
28713272 /* keep last */
28723273 NUM_NL80211_IFACE_COMB,
@@ -3028,6 +3429,33 @@ enum nl80211_ap_sme_features { · 155 unmodified lines
30283429 * in the interface combinations, even when it's only used for scan
30293430 * and remain-on-channel. This could be due to, for example, the
30303431 * remain-on-channel implementation requiring a channel context.
3432+ * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of
3433+ * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station
3434+ * mode
3435+ * @NL80211_FEATURE_LOW_PRIORITY_SCAN: This driver supports low priority scan
3436+ * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported
3437+ * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif
3438+ * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting
3439+ * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform
3440+ * OBSS scans and generate 20/40 BSS coex reports. This flag is used only
3441+ * for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied.
3442+ * @NL80211_FEATURE_P2P_GO_CTWIN: P2P GO implementation supports CT Window
3443+ * setting
3444+ * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic
3445+ * powersave
3446+ * @NL80211_FEATURE_FULL_AP_CLIENT_STATE: The driver supports full state
3447+ * transitions for AP clients. Without this flag (and if the driver
3448+ * doesn't have the AP SME in the device) the driver supports adding
3449+ * stations only when they're associated and adds them in associated
3450+ * state (to later be transitioned into authorized), with this flag
3451+ * they should be added before even sending the authentication reply
3452+ * and then transitioned into authenticated, associated and authorized
3453+ * states using station flags.
3454+ * Note that even for drivers that support this, the default is to add
3455+ * stations in authenticated/associated state, so to add unauthenticated
3456+ * stations the authenticated/associated bits have to be set in the mask.
3457+ * @NL80211_FEATURE_ADVERTISE_CHAN_LIMITS: cfg80211 advertises channel limits
3458+ * (HT40, VHT 80/160 MHz) if this flag is set
30313459 */
30323460 enum nl80211_feature_flags {
30333461 NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
@@ -3035,6 +3463,17 @@ enum nl80211_feature_flags { · 1 unmodified line
30353463 NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2,
30363464 NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3,
30373465 NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4,
3466+ NL80211_FEATURE_SAE = 1 << 5,
3467+ NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6,
3468+ NL80211_FEATURE_SCAN_FLUSH = 1 << 7,
3469+ NL80211_FEATURE_AP_SCAN = 1 << 8,
3470+ NL80211_FEATURE_VIF_TXPOWER = 1 << 9,
3471+ NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10,
3472+ NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11,
3473+ NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12,
3474+ /* bit 13 is reserved */
3475+ NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 1 << 14,
3476+ NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15,
30383477 };
30393478
30403479 /**
@@ -3062,11 +3501,90 @@ enum nl80211_probe_resp_offload_support_attr { · 21 unmodified lines
30623501 * enum nl80211_connect_failed_reason - connection request failed reasons
30633502 * @NL80211_CONN_FAIL_MAX_CLIENTS: Maximum number of clients that can be
30643503 * handled by the AP is reached.
3065− * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Client's MAC is in the AP's blocklist.
3504+ * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Connection request is rejected due to ACL.
30663505 */
30673506 enum nl80211_connect_failed_reason {
30683507 NL80211_CONN_FAIL_MAX_CLIENTS,
30693508 NL80211_CONN_FAIL_BLOCKED_CLIENT,
30703509 };
30713510
3511+/**
3512+ * enum nl80211_scan_flags - scan request control flags
3513+ *
3514+ * Scan request control flags are used to control the handling
3515+ * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN
3516+ * requests.
3517+ *
3518+ * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority
3519+ * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning
3520+ * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured
3521+ * as AP and the beaconing has already been configured. This attribute is
3522+ * dangerous because will destroy stations performance as a lot of frames
3523+ * will be lost while scanning off-channel, therefore it must be used only
3524+ * when really needed
3525+ */
3526+enum nl80211_scan_flags {
3527+ NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
3528+ NL80211_SCAN_FLAG_FLUSH = 1<<1,
3529+ NL80211_SCAN_FLAG_AP = 1<<2,
3530+};
3531+
3532+/**
3533+ * enum nl80211_acl_policy - access control policy
3534+ *
3535+ * Access control policy is applied on a MAC list set by
3536+ * %NL80211_CMD_START_AP and %NL80211_CMD_SET_MAC_ACL, to
3537+ * be used with %NL80211_ATTR_ACL_POLICY.
3538+ *
3539+ * @NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED: Deny stations which are
3540+ * listed in ACL, i.e. allow all the stations which are not listed
3541+ * in ACL to authenticate.
3542+ * @NL80211_ACL_POLICY_DENY_UNLESS_LISTED: Allow the stations which are listed
3543+ * in ACL, i.e. deny all the stations which are not listed in ACL.
3544+ */
3545+enum nl80211_acl_policy {
3546+ NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED,
3547+ NL80211_ACL_POLICY_DENY_UNLESS_LISTED,
3548+};
3549+
3550+/**
3551+ * enum nl80211_radar_event - type of radar event for DFS operation
3552+ *
3553+ * Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace
3554+ * about detected radars or success of the channel available check (CAC)
3555+ *
3556+ * @NL80211_RADAR_DETECTED: A radar pattern has been detected. The channel is
3557+ * now unusable.
3558+ * @NL80211_RADAR_CAC_FINISHED: Channel Availability Check has been finished,
3559+ * the channel is now available.
3560+ * @NL80211_RADAR_CAC_ABORTED: Channel Availability Check has been aborted, no
3561+ * change to the channel status.
3562+ * @NL80211_RADAR_NOP_FINISHED: The Non-Occupancy Period for this channel is
3563+ * over, channel becomes usable.
3564+ */
3565+enum nl80211_radar_event {
3566+ NL80211_RADAR_DETECTED,
3567+ NL80211_RADAR_CAC_FINISHED,
3568+ NL80211_RADAR_CAC_ABORTED,
3569+ NL80211_RADAR_NOP_FINISHED,
3570+};
3571+
3572+/**
3573+ * enum nl80211_dfs_state - DFS states for channels
3574+ *
3575+ * Channel states used by the DFS code.
3576+ *
3577+ * @IEEE80211_DFS_USABLE: The channel can be used, but channel availability
3578+ * check (CAC) must be performed before using it for AP or IBSS.
3579+ * @IEEE80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it
3580+ * is therefore marked as not available.
3581+ * @IEEE80211_DFS_AVAILABLE: The channel has been CAC checked and is available.
3582+ */
3583+
3584+enum nl80211_dfs_state {
3585+ NL80211_DFS_USABLE,
3586+ NL80211_DFS_UNAVAILABLE,
3587+ NL80211_DFS_AVAILABLE,
3588+};
3589+
30723590 #endif /* __LINUX_NL80211_H */
include/uapi/linux/oom.h+9−0
@@ -8,4 +8,13 @@ · 7 unmodified lines
88 #define OOM_SCORE_ADJ_MIN (-1000)
99 #define OOM_SCORE_ADJ_MAX 1000
1010
11+/*
12+ * /proc/<pid>/oom_adj set to -17 protects from the oom killer for legacy
13+ * purposes.
14+ */
15+#define OOM_DISABLE (-17)
16+/* inclusive */
17+#define OOM_ADJUST_MIN (-16)
18+#define OOM_ADJUST_MAX 15
19+
1120 #endif /* _UAPI__INCLUDE_LINUX_OOM_H */
include/uapi/linux/pci_regs.h+21−4
@@ -349,7 +349,7 @@ · 348 unmodified lines
349349 #define PCI_AF_STATUS_TP 0x01
350350 #define PCI_CAP_AF_SIZEOF 6 /* size of AF registers */
351351
352−/* PCI-X registers */
352+/* PCI-X registers (Type 0 (non-bridge) devices) */
353353
354354 #define PCI_X_CMD 2 /* Modes & Features */
355355 #define PCI_X_CMD_DPERR_E 0x0001 /* Data Parity Error Recovery Enable */
@@ -389,6 +389,19 @@ · 33 unmodified lines
389389 #define PCI_CAP_PCIX_SIZEOF_V1 24 /* size for Version 1 */
390390 #define PCI_CAP_PCIX_SIZEOF_V2 PCI_CAP_PCIX_SIZEOF_V1 /* Same for v2 */
391391
392+/* PCI-X registers (Type 1 (bridge) devices) */
393+
394+#define PCI_X_BRIDGE_SSTATUS 2 /* Secondary Status */
395+#define PCI_X_SSTATUS_64BIT 0x0001 /* Secondary AD interface is 64 bits */
396+#define PCI_X_SSTATUS_133MHZ 0x0002 /* 133 MHz capable */
397+#define PCI_X_SSTATUS_FREQ 0x03c0 /* Secondary Bus Mode and Frequency */
398+#define PCI_X_SSTATUS_VERS 0x3000 /* PCI-X Capability Version */
399+#define PCI_X_SSTATUS_V1 0x1000 /* Mode 2, not Mode 1 */
400+#define PCI_X_SSTATUS_V2 0x2000 /* Mode 1 or Modes 1 and 2 */
401+#define PCI_X_SSTATUS_266MHZ 0x4000 /* 266 MHz capable */
402+#define PCI_X_SSTATUS_533MHZ 0x8000 /* 533 MHz capable */
403+#define PCI_X_BRIDGE_STATUS 4 /* Bridge Status */
404+
392405 /* PCI Bridge Subsystem ID registers */
393406
394407 #define PCI_SSVID_VENDOR_ID 4 /* PCI-Bridge subsystem vendor id register */
@@ -445,6 +458,8 @@ · 50 unmodified lines
445458 #define PCI_EXP_DEVSTA_TRPND 0x20 /* Transactions Pending */
446459 #define PCI_EXP_LNKCAP 12 /* Link Capabilities */
447460 #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */
461+#define PCI_EXP_LNKCAP_SLS_2_5GB 0x1 /* LNKCAP2 SLS Vector bit 0 (2.5GT/s) */
462+#define PCI_EXP_LNKCAP_SLS_5_0GB 0x2 /* LNKCAP2 SLS Vector bit 1 (5.0GT/s) */
448463 #define PCI_EXP_LNKCAP_MLW 0x000003f0 /* Maximum Link Width */
449464 #define PCI_EXP_LNKCAP_ASPMS 0x00000c00 /* ASPM Support */
450465 #define PCI_EXP_LNKCAP_L0SEL 0x00007000 /* L0s Exit Latency */
@@ -456,6 +471,8 @@ · 5 unmodified lines
456471 #define PCI_EXP_LNKCAP_PN 0xff000000 /* Port Number */
457472 #define PCI_EXP_LNKCTL 16 /* Link Control */
458473 #define PCI_EXP_LNKCTL_ASPMC 0x0003 /* ASPM Control */
474+#define PCI_EXP_LNKCTL_ASPM_L0S 0x01 /* L0s Enable */
475+#define PCI_EXP_LNKCTL_ASPM_L1 0x02 /* L1 Enable */
459476 #define PCI_EXP_LNKCTL_RCB 0x0008 /* Read Completion Boundary */
460477 #define PCI_EXP_LNKCTL_LD 0x0010 /* Link Disable */
461478 #define PCI_EXP_LNKCTL_RL 0x0020 /* Retrain Link */
@@ -544,9 +561,9 @@ · 82 unmodified lines
544561 #define PCI_EXP_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */
545562 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */
546563 #define PCI_EXP_LNKCAP2 44 /* Link Capability 2 */
547−#define PCI_EXP_LNKCAP2_SLS_2_5GB 0x01 /* Current Link Speed 2.5GT/s */
548−#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x02 /* Current Link Speed 5.0GT/s */
549−#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x04 /* Current Link Speed 8.0GT/s */
564+#define PCI_EXP_LNKCAP2_SLS_2_5GB 0x02 /* Supported Link Speed 2.5GT/s */
565+#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x04 /* Supported Link Speed 5.0GT/s */
566+#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x08 /* Supported Link Speed 8.0GT/s */
550567 #define PCI_EXP_LNKCAP2_CROSSLINK 0x100 /* Crosslink supported */
551568 #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */
552569 #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
include/uapi/linux/perf_event.h+2−1
@@ -579,7 +579,8 @@ enum perf_event_type { · 578 unmodified lines
579579 * { u32 size;
580580 * char data[size];}&& PERF_SAMPLE_RAW
581581 *
582− * { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK
582+ * { u64 nr;
583+ * { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK
583584 *
584585 * { u64 abi; # enum perf_sample_regs_abi
585586 * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_USER
include/uapi/linux/ptp_clock.h+14−0
@@ -67,12 +67,26 @@ struct ptp_perout_request { · 66 unmodified lines
6767 unsigned int rsv[4]; /* Reserved for future use. */
6868 };
6969
70+#define PTP_MAX_SAMPLES 25 /* Maximum allowed offset measurement samples. */
71+
72+struct ptp_sys_offset {
73+ unsigned int n_samples; /* Desired number of measurements. */
74+ unsigned int rsv[3]; /* Reserved for future use. */
75+ /*
76+ * Array of interleaved system/phc time stamps. The kernel
77+ * will provide 2*n_samples + 1 time stamps, with the last
78+ * one as a system time stamp.
79+ */
80+ struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1];
81+};
82+
7083 #define PTP_CLK_MAGIC '='
7184
7285 #define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps)
7386 #define PTP_EXTTS_REQUEST _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request)
7487 #define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request)
7588 #define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int)
89+#define PTP_SYS_OFFSET _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset)
7690
7791 struct ptp_extts_event {
7892 struct ptp_clock_time t; /* Time event occured. */
include/uapi/linux/ptrace.h+4−1
@@ -73,7 +73,10 @@ · 72 unmodified lines
7373 #define PTRACE_O_TRACEEXIT (1 << PTRACE_EVENT_EXIT)
7474 #define PTRACE_O_TRACESECCOMP (1 << PTRACE_EVENT_SECCOMP)
7575
76−#define PTRACE_O_MASK 0x000000ff
76+/* eventless options */
77+#define PTRACE_O_EXITKILL (1 << 20)
78+
79+#define PTRACE_O_MASK (0x000000ff | PTRACE_O_EXITKILL)
7780
7881 #include <asm/ptrace.h>
7982
include/uapi/linux/raid/md_p.h+4−2
@@ -145,16 +145,18 @@ typedef struct mdp_superblock_s { · 144 unmodified lines
145145 __u32 failed_disks; /* 4 Number of failed disks */
146146 __u32 spare_disks; /* 5 Number of spare disks */
147147 __u32 sb_csum; /* 6 checksum of the whole superblock */
148−#ifdef __BIG_ENDIAN
148+#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
149149 __u32 events_hi; /* 7 high-order of superblock update count */
150150 __u32 events_lo; /* 8 low-order of superblock update count */
151151 __u32 cp_events_hi; /* 9 high-order of checkpoint update count */
152152 __u32 cp_events_lo; /* 10 low-order of checkpoint update count */
153−#else
153+#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
154154 __u32 events_lo; /* 7 low-order of superblock update count */
155155 __u32 events_hi; /* 8 high-order of superblock update count */
156156 __u32 cp_events_lo; /* 9 low-order of checkpoint update count */
157157 __u32 cp_events_hi; /* 10 high-order of checkpoint update count */
158+#else
159+#error unspecified endianness
158160 #endif
159161 __u32 recovery_cp; /* 11 recovery checkpoint sector count */
160162 /* There are only valid for minor_version > 90 */
include/uapi/linux/rtnetlink.h+27−0
@@ -120,6 +120,18 @@ enum { · 119 unmodified lines
120120 RTM_SETDCB,
121121 #define RTM_SETDCB RTM_SETDCB
122122
123+ RTM_NEWNETCONF = 80,
124+#define RTM_NEWNETCONF RTM_NEWNETCONF
125+ RTM_GETNETCONF = 82,
126+#define RTM_GETNETCONF RTM_GETNETCONF
127+
128+ RTM_NEWMDB = 84,
129+#define RTM_NEWMDB RTM_NEWMDB
130+ RTM_DELMDB = 85,
131+#define RTM_DELMDB RTM_DELMDB
132+ RTM_GETMDB = 86,
133+#define RTM_GETMDB RTM_GETMDB
134+
123135 __RTM_MAX,
124136 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
125137 };
@@ -222,6 +234,7 @@ enum { · 96 unmodified lines
222234 #define RTPROT_XORP 14 /* XORP */
223235 #define RTPROT_NTK 15 /* Netsukuku */
224236 #define RTPROT_DHCP 16 /* DHCP client */
237+#define RTPROT_MROUTED 17 /* Multicast daemon */
225238
226239 /* rtm_scope
227240
@@ -283,6 +296,7 @@ enum rtattr_type_t { · 55 unmodified lines
283296 RTA_MP_ALGO, /* no longer used */
284297 RTA_TABLE,
285298 RTA_MARK,
299+ RTA_MFC_STATS,
286300 __RTA_MAX
287301 };
288302
@@ -403,6 +417,12 @@ struct rta_session { · 114 unmodified lines
403417 } u;
404418 };
405419
420+struct rta_mfc_stats {
421+ __u64 mfcs_packets;
422+ __u64 mfcs_bytes;
423+ __u64 mfcs_wrong_if;
424+};
425+
406426 /****
407427 * General form of address family dependent message.
408428 ****/
@@ -587,6 +607,12 @@ enum rtnetlink_groups { · 178 unmodified lines
587607 #define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE
588608 RTNLGRP_DCB,
589609 #define RTNLGRP_DCB RTNLGRP_DCB
610+ RTNLGRP_IPV4_NETCONF,
611+#define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF
612+ RTNLGRP_IPV6_NETCONF,
613+#define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF
614+ RTNLGRP_MDB,
615+#define RTNLGRP_MDB RTNLGRP_MDB
590616 __RTNLGRP_MAX
591617 };
592618 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
@@ -604,6 +630,7 @@ struct tcamsg { · 11 unmodified lines
604630
605631 /* New extended info filters for IFLA_EXT_MASK */
606632 #define RTEXT_FILTER_VF (1 << 0)
633+#define RTEXT_FILTER_BRVLAN (1 << 1)
607634
608635 /* End of information exported to user level */
609636
include/uapi/linux/serial_core.h+11−1
@@ -49,7 +49,12 @@ · 48 unmodified lines
4949 #define PORT_XR17D15X 21 /* Exar XR17D15x UART */
5050 #define PORT_LPC3220 22 /* NXP LPC32xx SoC "Standard" UART */
5151 #define PORT_8250_CIR 23 /* CIR infrared port, has its own driver */
52−#define PORT_MAX_8250 23 /* max port ID */
52+#define PORT_XR17V35X 24 /* Exar XR17V35x UARTs */
53+#define PORT_BRCM_TRUMANAGE 25
54+#define PORT_ALTR_16550_F32 26 /* Altera 16550 UART with 32 FIFOs */
55+#define PORT_ALTR_16550_F64 27 /* Altera 16550 UART with 64 FIFOs */
56+#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */
57+#define PORT_MAX_8250 28 /* max port ID */
5358
5459 /*
5560 * ARM specific type numbers. These are not currently guaranteed
@@ -215,5 +220,10 @@ · 159 unmodified lines
215220 /* Energy Micro efm32 SoC */
216221 #define PORT_EFMUART 100
217222
223+/* ARC (Synopsys) on-chip UART */
224+#define PORT_ARC 101
225+
226+/* Rocketport EXPRESS/INFINITY */
227+#define PORT_RP2 102
218228
219229 #endif /* _UAPILINUX_SERIAL_CORE_H */
include/uapi/linux/serial_reg.h+18−0
@@ -367,5 +367,23 @@ · 366 unmodified lines
367367 #define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */
368368 #define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */
369369
370+/*
371+ * These are definitions for the Exar XR17V35X and XR17(C|D)15X
372+ */
373+#define UART_EXAR_8XMODE 0x88 /* 8X sampling rate select */
374+#define UART_EXAR_SLEEP 0x8b /* Sleep mode */
375+#define UART_EXAR_DVID 0x8d /* Device identification */
376+
377+#define UART_EXAR_FCTR 0x08 /* Feature Control Register */
378+#define UART_FCTR_EXAR_IRDA 0x08 /* IrDa data encode select */
379+#define UART_FCTR_EXAR_485 0x10 /* Auto 485 half duplex dir ctl */
380+#define UART_FCTR_EXAR_TRGA 0x00 /* FIFO trigger table A */
381+#define UART_FCTR_EXAR_TRGB 0x60 /* FIFO trigger table B */
382+#define UART_FCTR_EXAR_TRGC 0x80 /* FIFO trigger table C */
383+#define UART_FCTR_EXAR_TRGD 0xc0 /* FIFO trigger table D programmable */
384+
385+#define UART_EXAR_TXTRG 0x0a /* Tx FIFO trigger level write-only */
386+#define UART_EXAR_RXTRG 0x0b /* Rx FIFO trigger level write-only */
387+
370388 #endif /* _LINUX_SERIAL_REG_H */
371389
include/uapi/linux/signal.h+2−0
@@ -4,5 +4,7 @@ · 3 unmodified lines
44 #include <asm/signal.h>
55 #include <asm/siginfo.h>
66
7+#define SS_ONSTACK 1
8+#define SS_DISABLE 2
79
810 #endif /* _UAPI_LINUX_SIGNAL_H */
include/uapi/linux/snmp.h+1−0
@@ -278,6 +278,7 @@ enum · 277 unmodified lines
278278 LINUX_MIB_XFRMOUTPOLDEAD, /* XfrmOutPolDead */
279279 LINUX_MIB_XFRMOUTPOLERROR, /* XfrmOutPolError */
280280 LINUX_MIB_XFRMFWDHDRERROR, /* XfrmFwdHdrError*/
281+ LINUX_MIB_XFRMOUTSTATEINVALID, /* XfrmOutStateInvalid */
281282 __LINUX_MIB_XFRMMAX
282283 };
283284
include/uapi/linux/swab.h+9−3
@@ -45,7 +45,9 @@ · 44 unmodified lines
4545
4646 static inline __attribute_const__ __u16 __fswab16(__u16 val)
4747 {
48−#ifdef __arch_swab16
48+#ifdef __HAVE_BUILTIN_BSWAP16__
49+ return __builtin_bswap16(val);
50+#elif defined (__arch_swab16)
4951 return __arch_swab16(val);
5052 #else
5153 return ___constant_swab16(val);
@@ -54,7 +56,9 @@ static inline __attribute_const__ __u16 __fswab16(__u16 val) · 2 unmodified lines
5456
5557 static inline __attribute_const__ __u32 __fswab32(__u32 val)
5658 {
57−#ifdef __arch_swab32
59+#ifdef __HAVE_BUILTIN_BSWAP32__
60+ return __builtin_bswap32(val);
61+#elif defined(__arch_swab32)
5862 return __arch_swab32(val);
5963 #else
6064 return ___constant_swab32(val);
@@ -63,7 +67,9 @@ static inline __attribute_const__ __u32 __fswab32(__u32 val) · 2 unmodified lines
6367
6468 static inline __attribute_const__ __u64 __fswab64(__u64 val)
6569 {
66−#ifdef __arch_swab64
70+#ifdef __HAVE_BUILTIN_BSWAP64__
71+ return __builtin_bswap64(val);
72+#elif defined (__arch_swab64)
6773 return __arch_swab64(val);
6874 #elif defined(__SWAB_64_THRU_32__)
6975 __u32 h = val >> 32;
include/uapi/linux/tcp.h+1−0
@@ -111,6 +111,7 @@ enum { · 110 unmodified lines
111111 #define TCP_QUEUE_SEQ 21
112112 #define TCP_REPAIR_OPTIONS 22
113113 #define TCP_FASTOPEN 23 /* Enable FastOpen on listeners */
114+#define TCP_TIMESTAMP 24
114115
115116 struct tcp_repair_opt {
116117 __u32 opt_code;
include/uapi/linux/uhid.h+1−1
@@ -86,7 +86,7 @@ struct uhid_feature_answer_req { · 85 unmodified lines
8686 __u16 err;
8787 __u16 size;
8888 __u8 data[UHID_DATA_MAX];
89−};
89+} __attribute__((__packed__));
9090
9191 struct uhid_event {
9292 __u32 type;
include/uapi/linux/unix_diag.h+1−0
@@ -37,6 +37,7 @@ enum { · 36 unmodified lines
3737 UNIX_DIAG_ICONS,
3838 UNIX_DIAG_RQLEN,
3939 UNIX_DIAG_MEMINFO,
40+ UNIX_DIAG_SHUTDOWN,
4041
4142 UNIX_DIAG_MAX,
4243 };
include/uapi/linux/usb/audio.h+4−2
@@ -384,14 +384,16 @@ static inline __u8 uac_processing_unit_iProcessing(struct uac_processing_unit_de · 383 unmodified lines
384384 int protocol)
385385 {
386386 __u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
387− return desc->baSourceID[desc->bNrInPins + control_size];
387+ return *(uac_processing_unit_bmControls(desc, protocol)
388+ + control_size);
388389 }
389390
390391 static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc,
391392 int protocol)
392393 {
393394 __u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
394− return &desc->baSourceID[desc->bNrInPins + control_size + 1];
395+ return uac_processing_unit_bmControls(desc, protocol)
396+ + control_size + 1;
395397 }
396398
397399 /* 4.5.2 Class-Specific AS Interface Descriptor */
include/uapi/linux/usb/cdc.h+23−0
@@ -19,6 +19,7 @@ · 18 unmodified lines
1919 #define USB_CDC_SUBCLASS_OBEX 0x0b
2020 #define USB_CDC_SUBCLASS_EEM 0x0c
2121 #define USB_CDC_SUBCLASS_NCM 0x0d
22+#define USB_CDC_SUBCLASS_MBIM 0x0e
2223
2324 #define USB_CDC_PROTO_NONE 0
2425
@@ -33,6 +34,7 @@ · 8 unmodified lines
3334 #define USB_CDC_PROTO_EEM 7
3435
3536 #define USB_CDC_NCM_PROTO_NTB 1
37+#define USB_CDC_MBIM_PROTO_NTB 2
3638
3739 /*-------------------------------------------------------------------------*/
3840
@@ -53,6 +55,7 @@ · 14 unmodified lines
5355 #define USB_CDC_DMM_TYPE 0x14
5456 #define USB_CDC_OBEX_TYPE 0x15
5557 #define USB_CDC_NCM_TYPE 0x1a
58+#define USB_CDC_MBIM_TYPE 0x1b
5659
5760 /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */
5861 struct usb_cdc_header_desc {
@@ -187,6 +190,21 @@ struct usb_cdc_ncm_desc { · 128 unmodified lines
187190 __le16 bcdNcmVersion;
188191 __u8 bmNetworkCapabilities;
189192 } __attribute__ ((packed));
193+
194+/* "MBIM Control Model Functional Descriptor" */
195+struct usb_cdc_mbim_desc {
196+ __u8 bLength;
197+ __u8 bDescriptorType;
198+ __u8 bDescriptorSubType;
199+
200+ __le16 bcdMBIMVersion;
201+ __le16 wMaxControlMessage;
202+ __u8 bNumberFilters;
203+ __u8 bMaxFilterSize;
204+ __le16 wMaxSegmentSize;
205+ __u8 bmNetworkCapabilities;
206+} __attribute__ ((packed));
207+
190208 /*-------------------------------------------------------------------------*/
191209
192210 /*
@@ -332,6 +350,11 @@ struct usb_cdc_ncm_nth32 { · 139 unmodified lines
332350 #define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */
333351 #define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */
334352
353+#define USB_CDC_MBIM_NDP16_IPS_SIGN 0x00535049 /* IPS<sessionID> : IPS0 for now */
354+#define USB_CDC_MBIM_NDP32_IPS_SIGN 0x00737069 /* ips<sessionID> : ips0 for now */
355+#define USB_CDC_MBIM_NDP16_DSS_SIGN 0x00535344 /* DSS<sessionID> */
356+#define USB_CDC_MBIM_NDP32_DSS_SIGN 0x00737364 /* dss<sessionID> */
357+
335358 /* 16-bit NCM Datagram Pointer Entry */
336359 struct usb_cdc_ncm_dpe16 {
337360 __le16 wDatagramIndex;
include/uapi/linux/usb/ch9.h+6−0
@@ -152,6 +152,12 @@ · 151 unmodified lines
152152 #define USB_INTRF_FUNC_SUSPEND_LP (1 << (8 + 0))
153153 #define USB_INTRF_FUNC_SUSPEND_RW (1 << (8 + 1))
154154
155+/*
156+ * Interface status, Figure 9-5 USB 3.0 spec
157+ */
158+#define USB_INTRF_STAT_FUNC_RW_CAP 1
159+#define USB_INTRF_STAT_FUNC_RW 2
160+
155161 #define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */
156162
157163 /* Bit array elements as returned by the USB_REQ_GET_STATUS request. */
include/uapi/linux/v4l2-controls.h+29−4
@@ -88,10 +88,6 @@ · 87 unmodified lines
8888 #define V4L2_CID_HFLIP (V4L2_CID_BASE+20)
8989 #define V4L2_CID_VFLIP (V4L2_CID_BASE+21)
9090
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−
9591 #define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24)
9692 enum v4l2_power_line_frequency {
9793 V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0,
@@ -144,6 +140,11 @@ enum v4l2_colorfx { · 46 unmodified lines
144140 /* last CID + 1 */
145141 #define V4L2_CID_LASTP1 (V4L2_CID_BASE+43)
146142
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)
147148
148149 /* MPEG-class control IDs */
149150
@@ -782,6 +783,7 @@ enum v4l2_jpeg_chroma_subsampling { · 632 unmodified lines
782783 #define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17)
783784 #define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18)
784785
786+
785787 /* Image source controls */
786788 #define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)
787789 #define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1)
@@ -800,4 +802,27 @@ enum v4l2_jpeg_chroma_subsampling { · 12 unmodified lines
800802 #define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)
801803 #define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3)
802804
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)
814+enum 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)
819+enum 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+
803828 #endif
include/uapi/linux/v4l2-mediabus.h+9−2
@@ -47,8 +47,9 @@ enum v4l2_mbus_pixelcode { · 46 unmodified lines
4747 V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007,
4848 V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008,
4949
50− /* YUV (including grey) - next is 0x2014 */
50+ /* YUV (including grey) - next is 0x2017 */
5151 V4L2_MBUS_FMT_Y8_1X8 = 0x2001,
52+ V4L2_MBUS_FMT_UV8_1X8 = 0x2015,
5253 V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002,
5354 V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003,
5455 V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004,
@@ -65,14 +66,20 @@ enum v4l2_mbus_pixelcode { · 10 unmodified lines
6566 V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010,
6667 V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011,
6768 V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012,
69+ V4L2_MBUS_FMT_YDYUYDYV8_1X16 = 0x2014,
6870 V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d,
6971 V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e,
72+ V4L2_MBUS_FMT_YUV10_1X30 = 0x2016,
7073
71− /* Bayer - next is 0x3015 */
74+ /* Bayer - next is 0x3019 */
7275 V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001,
7376 V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013,
7477 V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002,
7578 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,
7683 V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b,
7784 V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c,
7885 V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009,
include/uapi/linux/vfio.h+9−0
@@ -303,6 +303,15 @@ enum { · 302 unmodified lines
303303 VFIO_PCI_BAR5_REGION_INDEX,
304304 VFIO_PCI_ROM_REGION_INDEX,
305305 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,
306315 VFIO_PCI_NUM_REGIONS
307316 };
308317
include/uapi/linux/videodev2.h+49−23
@@ -186,6 +186,7 @@ enum v4l2_memory { · 185 unmodified lines
186186 V4L2_MEMORY_MMAP = 1,
187187 V4L2_MEMORY_USERPTR = 2,
188188 V4L2_MEMORY_OVERLAY = 3,
189+ V4L2_MEMORY_DMABUF = 4,
189190 };
190191
191192 /* see also http://vektor.theorem.ca/graphics/ycbcr/ */
@@ -333,6 +334,9 @@ struct v4l2_pix_format { · 141 unmodified lines
333334 /* Palette formats */
334335 #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */
335336
337+/* Chrominance formats */
338+#define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') /* 8 UV 4:4 */
339+
336340 /* Luminance+Chrominance formats */
337341 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */
338342 #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */
@@ -385,6 +389,11 @@ struct v4l2_pix_format { · 46 unmodified lines
385389 #define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */
386390 #define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
387391 #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')
388397 /* 10bit raw bayer DPCM compressed to 8 bits */
389398 #define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8')
390399 #define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8')
@@ -602,6 +611,8 @@ struct v4l2_requestbuffers { · 211 unmodified lines
602611 * should be passed to mmap() called on the video node)
603612 * @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer
604613 * pointing to this plane
614+ * @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file
615+ * descriptor associated with this plane
605616 * @data_offset: offset in the plane to the start of data; usually 0,
606617 * unless there is a header in front of the data
607618 *
@@ -616,6 +627,7 @@ struct v4l2_plane { · 8 unmodified lines
616627 union {
617628 __u32 mem_offset;
618629 unsigned long userptr;
630+ __s32 fd;
619631 } m;
620632 __u32 data_offset;
621633 __u32 reserved[11];
@@ -640,6 +652,8 @@ struct v4l2_plane { · 18 unmodified lines
640652 * (or a "cookie" that should be passed to mmap() as offset)
641653 * @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;
642654 * a userspace pointer pointing to this buffer
655+ * @fd: for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF;
656+ * a userspace file descriptor associated with this buffer
643657 * @planes: for multiplanar buffers; userspace pointer to the array of plane
644658 * info structs for this buffer
645659 * @length: size in bytes of the buffer (NOT its payload) for single-plane
@@ -666,6 +680,7 @@ struct v4l2_buffer { · 20 unmodified lines
666680 __u32 offset;
667681 unsigned long userptr;
668682 struct v4l2_plane *planes;
683+ __s32 fd;
669684 } m;
670685 __u32 length;
671686 __u32 reserved2;
@@ -686,6 +701,37 @@ struct v4l2_buffer { · 14 unmodified lines
686701 /* Cache handling flags */
687702 #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800
688703 #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
708+
709+/**
710+ * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor
711+ *
712+ * @index: id number of the buffer
713+ * @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for
714+ * multiplanar buffers);
715+ * @plane: index of the plane to be exported, 0 for single plane queues
716+ * @flags: flags for newly created file, currently only O_CLOEXEC is
717+ * supported, refer to manual of open syscall for more details
718+ * @fd: file descriptor associated with DMABUF (set by driver)
719+ *
720+ * Contains data used for exporting a video buffer as DMABUF file descriptor.
721+ * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF
722+ * (identical to the cookie used to mmap() the buffer to userspace). All
723+ * reserved fields must be set to zero. The field reserved0 is expected to
724+ * become a structure 'type' allowing an alternative layout of the structure
725+ * content. Therefore this field should not be used for any other extensions.
726+ */
727+struct v4l2_exportbuffer {
728+ __u32 type; /* enum v4l2_buf_type */
729+ __u32 index;
730+ __u32 plane;
731+ __u32 flags;
732+ __s32 fd;
733+ __u32 reserved[11];
734+};
689735
690736 /*
691737 * O V E R L A Y P R E V I E W
@@ -737,7 +783,7 @@ struct v4l2_window { · 45 unmodified lines
737783 struct v4l2_captureparm {
738784 __u32 capability; /* Supported modes */
739785 __u32 capturemode; /* Current mode */
740− struct v4l2_fract timeperframe; /* Time per frame in .1us units */
786+ struct v4l2_fract timeperframe; /* Time per frame in seconds */
741787 __u32 extendedmode; /* Driver-specific extensions */
742788 __u32 readbuffers; /* # of buffers for read */
743789 __u32 reserved[4];
@@ -1308,28 +1354,6 @@ struct v4l2_querymenu { · 564 unmodified lines
13081354 #define V4L2_CID_PRIVATE_BASE 0x08000000
13091355
13101356
1311−/* DV-class control IDs defined by V4L2 */
1312−#define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900)
1313−#define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1)
1314−
1315−#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1)
1316−#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2)
1317−#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3)
1318−#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4)
1319−enum v4l2_dv_tx_mode {
1320− V4L2_DV_TX_MODE_DVI_D = 0,
1321− V4L2_DV_TX_MODE_HDMI = 1,
1322−};
1323−#define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5)
1324−enum v4l2_dv_rgb_range {
1325− V4L2_DV_RGB_RANGE_AUTO = 0,
1326− V4L2_DV_RGB_RANGE_LIMITED = 1,
1327− V4L2_DV_RGB_RANGE_FULL = 2,
1328−};
1329−
1330−#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100)
1331−#define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101)
1332−
13331357 /*
13341358 * T U N I N G
13351359 */
@@ -1776,6 +1800,7 @@ struct v4l2_event_vsync { · 440 unmodified lines
17761800 /* Payload for V4L2_EVENT_CTRL */
17771801 #define V4L2_EVENT_CTRL_CH_VALUE (1 << 0)
17781802 #define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1)
1803+#define V4L2_EVENT_CTRL_CH_RANGE (1 << 2)
17791804
17801805 struct v4l2_event_ctrl {
17811806 __u32 changes;
@@ -1888,6 +1913,7 @@ struct v4l2_create_buffers { · 106 unmodified lines
18881913 #define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer)
18891914 #define VIDIOC_OVERLAY _IOW('V', 14, int)
18901915 #define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer)
1916+#define VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer)
18911917 #define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer)
18921918 #define VIDIOC_STREAMON _IOW('V', 18, int)
18931919 #define VIDIOC_STREAMOFF _IOW('V', 19, int)
include/uapi/linux/virtio_ids.h+1−0
@@ -37,5 +37,6 @@ · 36 unmodified lines
3737 #define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */
3838 #define VIRTIO_ID_SCSI 8 /* virtio scsi */
3939 #define VIRTIO_ID_9P 9 /* 9p virtio console */
40+#define VIRTIO_ID_RPROC_SERIAL 11 /* virtio remoteproc serial link */
4041
4142 #endif /* _LINUX_VIRTIO_IDS_H */
include/uapi/linux/virtio_net.h+34−1
@@ -51,6 +51,9 @@ · 50 unmodified lines
5151 #define VIRTIO_NET_F_CTRL_RX_EXTRA 20 /* Extra RX mode control support */
5252 #define VIRTIO_NET_F_GUEST_ANNOUNCE 21 /* Guest can announce device on the
5353 * network */
54+#define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow
55+ * Steering */
56+#define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
5457
5558 #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */
5659 #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */
@@ -60,6 +63,11 @@ struct virtio_net_config { · 3 unmodified lines
6063 __u8 mac[6];
6164 /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */
6265 __u16 status;
66+ /* Maximum number of each of transmit and receive queues;
67+ * see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ.
68+ * Legal values are between 1 and 0x8000
69+ */
70+ __u16 max_virtqueue_pairs;
6371 } __attribute__((packed));
6472
6573 /* This is the first element of the scatter-gather list. If you don't
@@ -120,7 +128,7 @@ typedef __u8 virtio_net_ctrl_ack; · 54 unmodified lines
120128 #define VIRTIO_NET_CTRL_RX_NOBCAST 5
121129
122130 /*
123− * Control the MAC filter table.
131+ * Control the MAC
124132 *
125133 * The MAC filter table is managed by the hypervisor, the guest should
126134 * assume the size is infinite. Filtering should be considered
@@ -133,6 +141,10 @@ typedef __u8 virtio_net_ctrl_ack; · 6 unmodified lines
133141 * first sg list contains unicast addresses, the second is for multicast.
134142 * This functionality is present if the VIRTIO_NET_F_CTRL_RX feature
135143 * is available.
144+ *
145+ * The ADDR_SET command requests one out scatterlist, it contains a
146+ * 6 bytes MAC address. This functionality is present if the
147+ * VIRTIO_NET_F_CTRL_MAC_ADDR feature is available.
136148 */
137149 struct virtio_net_ctrl_mac {
138150 __u32 entries;
@@ -141,6 +153,7 @@ struct virtio_net_ctrl_mac { · 2 unmodified lines
141153
142154 #define VIRTIO_NET_CTRL_MAC 1
143155 #define VIRTIO_NET_CTRL_MAC_TABLE_SET 0
156+ #define VIRTIO_NET_CTRL_MAC_ADDR_SET 1
144157
145158 /*
146159 * Control VLAN filtering
@@ -166,4 +179,24 @@ struct virtio_net_ctrl_mac { · 19 unmodified lines
166179 #define VIRTIO_NET_CTRL_ANNOUNCE 3
167180 #define VIRTIO_NET_CTRL_ANNOUNCE_ACK 0
168181
182+/*
183+ * Control Receive Flow Steering
184+ *
185+ * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET
186+ * enables Receive Flow Steering, specifying the number of the transmit and
187+ * receive queues that will be used. After the command is consumed and acked by
188+ * the device, the device will not steer new packets on receive virtqueues
189+ * other than specified nor read from transmit virtqueues other than specified.
190+ * Accordingly, driver should not transmit new packets on virtqueues other than
191+ * specified.
192+ */
193+struct virtio_net_ctrl_mq {
194+ u16 virtqueue_pairs;
195+};
196+
197+#define VIRTIO_NET_CTRL_MQ 4
198+ #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0
199+ #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1
200+ #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000
201+
169202 #endif /* _LINUX_VIRTIO_NET_H */
include/uapi/linux/vm_sockets.h+163−0
@@ -0,0 +1,163 @@
1+/*
2+ * VMware vSockets Driver
3+ *
4+ * Copyright (C) 2007-2013 VMware, Inc. All rights reserved.
5+ *
6+ * This program is free software; you can redistribute it and/or modify it
7+ * under the terms of the GNU General Public License as published by the Free
8+ * Software Foundation version 2 and no later version.
9+ *
10+ * This program is distributed in the hope that it will be useful, but WITHOUT
11+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13+ * more details.
14+ */
15+
16+#ifndef _VM_SOCKETS_H_
17+#define _VM_SOCKETS_H_
18+
19+#if !defined(__KERNEL__)
20+#include <sys/socket.h>
21+#endif
22+
23+/* Option name for STREAM socket buffer size. Use as the option name in
24+ * setsockopt(3) or getsockopt(3) to set or get an unsigned long long that
25+ * specifies the size of the buffer underlying a vSockets STREAM socket.
26+ * Value is clamped to the MIN and MAX.
27+ */
28+
29+#define SO_VM_SOCKETS_BUFFER_SIZE 0
30+
31+/* Option name for STREAM socket minimum buffer size. Use as the option name
32+ * in setsockopt(3) or getsockopt(3) to set or get an unsigned long long that
33+ * specifies the minimum size allowed for the buffer underlying a vSockets
34+ * STREAM socket.
35+ */
36+
37+#define SO_VM_SOCKETS_BUFFER_MIN_SIZE 1
38+
39+/* Option name for STREAM socket maximum buffer size. Use as the option name
40+ * in setsockopt(3) or getsockopt(3) to set or get an unsigned long long
41+ * that specifies the maximum size allowed for the buffer underlying a
42+ * vSockets STREAM socket.
43+ */
44+
45+#define SO_VM_SOCKETS_BUFFER_MAX_SIZE 2
46+
47+/* Option name for socket peer's host-specific VM ID. Use as the option name
48+ * in getsockopt(3) to get a host-specific identifier for the peer endpoint's
49+ * VM. The identifier is a signed integer.
50+ * Only available for hypervisor endpoints.
51+ */
52+
53+#define SO_VM_SOCKETS_PEER_HOST_VM_ID 3
54+
55+/* Option name for determining if a socket is trusted. Use as the option name
56+ * in getsockopt(3) to determine if a socket is trusted. The value is a
57+ * signed integer.
58+ */
59+
60+#define SO_VM_SOCKETS_TRUSTED 5
61+
62+/* Option name for STREAM socket connection timeout. Use as the option name
63+ * in setsockopt(3) or getsockopt(3) to set or get the connection
64+ * timeout for a STREAM socket.
65+ */
66+
67+#define SO_VM_SOCKETS_CONNECT_TIMEOUT 6
68+
69+/* Option name for using non-blocking send/receive. Use as the option name
70+ * for setsockopt(3) or getsockopt(3) to set or get the non-blocking
71+ * transmit/receive flag for a STREAM socket. This flag determines whether
72+ * send() and recv() can be called in non-blocking contexts for the given
73+ * socket. The value is a signed integer.
74+ *
75+ * This option is only relevant to kernel endpoints, where descheduling the
76+ * thread of execution is not allowed, for example, while holding a spinlock.
77+ * It is not to be confused with conventional non-blocking socket operations.
78+ *
79+ * Only available for hypervisor endpoints.
80+ */
81+
82+#define SO_VM_SOCKETS_NONBLOCK_TXRX 7
83+
84+/* The vSocket equivalent of INADDR_ANY. This works for the svm_cid field of
85+ * sockaddr_vm and indicates the context ID of the current endpoint.
86+ */
87+
88+#define VMADDR_CID_ANY -1U
89+
90+/* Bind to any available port. Works for the svm_port field of
91+ * sockaddr_vm.
92+ */
93+
94+#define VMADDR_PORT_ANY -1U
95+
96+/* Use this as the destination CID in an address when referring to the
97+ * hypervisor. VMCI relies on it being 0, but this would be useful for other
98+ * transports too.
99+ */
100+
101+#define VMADDR_CID_HYPERVISOR 0
102+
103+/* This CID is specific to VMCI and can be considered reserved (even VMCI
104+ * doesn't use it anymore, it's a legacy value from an older release).
105+ */
106+
107+#define VMADDR_CID_RESERVED 1
108+
109+/* Use this as the destination CID in an address when referring to the host
110+ * (any process other than the hypervisor). VMCI relies on it being 2, but
111+ * this would be useful for other transports too.
112+ */
113+
114+#define VMADDR_CID_HOST 2
115+
116+/* Invalid vSockets version. */
117+
118+#define VM_SOCKETS_INVALID_VERSION -1U
119+
120+/* The epoch (first) component of the vSockets version. A single byte
121+ * representing the epoch component of the vSockets version.
122+ */
123+
124+#define VM_SOCKETS_VERSION_EPOCH(_v) (((_v) & 0xFF000000) >> 24)
125+
126+/* The major (second) component of the vSockets version. A single byte
127+ * representing the major component of the vSockets version. Typically
128+ * changes for every major release of a product.
129+ */
130+
131+#define VM_SOCKETS_VERSION_MAJOR(_v) (((_v) & 0x00FF0000) >> 16)
132+
133+/* The minor (third) component of the vSockets version. Two bytes representing
134+ * the minor component of the vSockets version.
135+ */
136+
137+#define VM_SOCKETS_VERSION_MINOR(_v) (((_v) & 0x0000FFFF))
138+
139+/* Address structure for vSockets. The address family should be set to
140+ * whatever vmci_sock_get_af_value_fd() returns. The structure members should
141+ * all align on their natural boundaries without resorting to compiler packing
142+ * directives. The total size of this structure should be exactly the same as
143+ * that of struct sockaddr.
144+ */
145+
146+struct sockaddr_vm {
147+ sa_family_t svm_family;
148+ unsigned short svm_reserved1;
149+ unsigned int svm_port;
150+ unsigned int svm_cid;
151+ unsigned char svm_zero[sizeof(struct sockaddr) -
152+ sizeof(sa_family_t) -
153+ sizeof(unsigned short) -
154+ sizeof(unsigned int) - sizeof(unsigned int)];
155+};
156+
157+#define IOCTL_VM_SOCKETS_GET_LOCAL_CID _IO(7, 0xb9)
158+
159+#if defined(__KERNEL__)
160+int vm_sockets_get_local_cid(void);
161+#endif
162+
163+#endif
include/uapi/linux/wanrouter.h+4−439
@@ -1,363 +1,9 @@
1−/*****************************************************************************
2−* wanrouter.h Definitions for the WAN Multiprotocol Router Module.
3−* This module provides API and common services for WAN Link
4−* Drivers and is completely hardware-independent.
5−*
6−* Author: Nenad Corbic <ncorbic@sangoma.com>
7−* Gideon Hack
8−* Additions: Arnaldo Melo
9−*
10−* Copyright: (c) 1995-2000 Sangoma Technologies Inc.
11−*
12−* This program is free software; you can redistribute it and/or
13−* modify it under the terms of the GNU General Public License
14−* as published by the Free Software Foundation; either version
15−* 2 of the License, or (at your option) any later version.
16−* ============================================================================
17−* Jul 21, 2000 Nenad Corbic Added WAN_FT1_READY State
18−* Feb 24, 2000 Nenad Corbic Added support for socket based x25api
19−* Jan 28, 2000 Nenad Corbic Added support for the ASYNC protocol.
20−* Oct 04, 1999 Nenad Corbic Updated for 2.1.0 release
21−* Jun 02, 1999 Gideon Hack Added support for the S514 adapter.
22−* May 23, 1999 Arnaldo Melo Added local_addr to wanif_conf_t
23−* WAN_DISCONNECTING state added
24−* Jul 20, 1998 David Fong Added Inverse ARP options to 'wanif_conf_t'
25−* Jun 12, 1998 David Fong Added Cisco HDLC support.
26−* Dec 16, 1997 Jaspreet Singh Moved 'enable_IPX' and 'network_number' to
27−* 'wanif_conf_t'
28−* Dec 05, 1997 Jaspreet Singh Added 'pap', 'chap' to 'wanif_conf_t'
29−* Added 'authenticator' to 'wan_ppp_conf_t'
30−* Nov 06, 1997 Jaspreet Singh Changed Router Driver version to 1.1 from 1.0
31−* Oct 20, 1997 Jaspreet Singh Added 'cir','bc','be' and 'mc' to 'wanif_conf_t'
32−* Added 'enable_IPX' and 'network_number' to
33−* 'wan_device_t'. Also added defines for
34−* UDP PACKET TYPE, Interrupt test, critical values
35−* for RACE conditions.
36−* Oct 05, 1997 Jaspreet Singh Added 'dlci_num' and 'dlci[100]' to
37−* 'wan_fr_conf_t' to configure a list of dlci(s)
38−* for a NODE
39−* Jul 07, 1997 Jaspreet Singh Added 'ttl' to 'wandev_conf_t' & 'wan_device_t'
40−* May 29, 1997 Jaspreet Singh Added 'tx_int_enabled' to 'wan_device_t'
41−* May 21, 1997 Jaspreet Singh Added 'udp_port' to 'wan_device_t'
42−* Apr 25, 1997 Farhan Thawar Added 'udp_port' to 'wandev_conf_t'
43−* Jan 16, 1997 Gene Kozin router_devlist made public
44−* Jan 02, 1997 Gene Kozin Initial version (based on wanpipe.h).
45−*****************************************************************************/
46−
47−#ifndef _UAPI_ROUTER_H
48−#define _UAPI_ROUTER_H
49−
50−#define ROUTER_NAME "wanrouter" /* in case we ever change it */
51−#define ROUTER_VERSION 1 /* version number */
52−#define ROUTER_RELEASE 1 /* release (minor version) number */
53−#define ROUTER_IOCTL 'W' /* for IOCTL calls */
54−#define ROUTER_MAGIC 0x524D4157L /* signature: 'WANR' reversed */
55−
56−/* IOCTL codes for /proc/router/<device> entries (up to 255) */
57−enum router_ioctls
58−{
59− ROUTER_SETUP = ROUTER_IOCTL<<8, /* configure device */
60− ROUTER_DOWN, /* shut down device */
61− ROUTER_STAT, /* get device status */
62− ROUTER_IFNEW, /* add interface */
63− ROUTER_IFDEL, /* delete interface */
64− ROUTER_IFSTAT, /* get interface status */
65− ROUTER_USER = (ROUTER_IOCTL<<8)+16, /* driver-specific calls */
66− ROUTER_USER_MAX = (ROUTER_IOCTL<<8)+31
67−};
68−
69−/* identifiers for displaying proc file data for dual port adapters */
70−#define PROC_DATA_PORT_0 0x8000 /* the data is for port 0 */
71−#define PROC_DATA_PORT_1 0x8001 /* the data is for port 1 */
72−
73−/* NLPID for packet encapsulation (ISO/IEC TR 9577) */
74−#define NLPID_IP 0xCC /* Internet Protocol Datagram */
75−#define NLPID_SNAP 0x80 /* IEEE Subnetwork Access Protocol */
76−#define NLPID_CLNP 0x81 /* ISO/IEC 8473 */
77−#define NLPID_ESIS 0x82 /* ISO/IEC 9542 */
78−#define NLPID_ISIS 0x83 /* ISO/IEC ISIS */
79−#define NLPID_Q933 0x08 /* CCITT Q.933 */
80−
81−/* Miscellaneous */
82−#define WAN_IFNAME_SZ 15 /* max length of the interface name */
83−#define WAN_DRVNAME_SZ 15 /* max length of the link driver name */
84−#define WAN_ADDRESS_SZ 31 /* max length of the WAN media address */
85−#define USED_BY_FIELD 8 /* max length of the used by field */
86−
87−/* Defines for UDP PACKET TYPE */
88−#define UDP_PTPIPE_TYPE 0x01
89−#define UDP_FPIPE_TYPE 0x02
90−#define UDP_CPIPE_TYPE 0x03
91−#define UDP_DRVSTATS_TYPE 0x04
92−#define UDP_INVALID_TYPE 0x05
93−
94−/* Command return code */
95−#define CMD_OK 0 /* normal firmware return code */
96−#define CMD_TIMEOUT 0xFF /* firmware command timed out */
97−
98−/* UDP Packet Management */
99−#define UDP_PKT_FRM_STACK 0x00
100−#define UDP_PKT_FRM_NETWORK 0x01
101−
102−/* Maximum interrupt test counter */
103−#define MAX_INTR_TEST_COUNTER 100
104−
105−/* Critical Values for RACE conditions*/
106−#define CRITICAL_IN_ISR 0xA1
107−#define CRITICAL_INTR_HANDLED 0xB1
108−
109−/****** Data Types **********************************************************/
110−
111−/*----------------------------------------------------------------------------
112− * X.25-specific link-level configuration.
113− */
114−typedef struct wan_x25_conf
115−{
116− unsigned lo_pvc; /* lowest permanent circuit number */
117− unsigned hi_pvc; /* highest permanent circuit number */
118− unsigned lo_svc; /* lowest switched circuit number */
119− unsigned hi_svc; /* highest switched circuit number */
120− unsigned hdlc_window; /* HDLC window size (1..7) */
121− unsigned pkt_window; /* X.25 packet window size (1..7) */
122− unsigned t1; /* HDLC timer T1, sec (1..30) */
123− unsigned t2; /* HDLC timer T2, sec (0..29) */
124− unsigned t4; /* HDLC supervisory frame timer = T4 * T1 */
125− unsigned n2; /* HDLC retransmission limit (1..30) */
126− unsigned t10_t20; /* X.25 RESTART timeout, sec (1..255) */
127− unsigned t11_t21; /* X.25 CALL timeout, sec (1..255) */
128− unsigned t12_t22; /* X.25 RESET timeout, sec (1..255) */
129− unsigned t13_t23; /* X.25 CLEAR timeout, sec (1..255) */
130− unsigned t16_t26; /* X.25 INTERRUPT timeout, sec (1..255) */
131− unsigned t28; /* X.25 REGISTRATION timeout, sec (1..255) */
132− unsigned r10_r20; /* RESTART retransmission limit (0..250) */
133− unsigned r12_r22; /* RESET retransmission limit (0..250) */
134− unsigned r13_r23; /* CLEAR retransmission limit (0..250) */
135− unsigned ccitt_compat; /* compatibility mode: 1988/1984/1980 */
136− unsigned x25_conf_opt; /* User defined x25 config optoins */
137− unsigned char LAPB_hdlc_only; /* Run in HDLC only mode */
138− unsigned char logging; /* Control connection logging */
139− unsigned char oob_on_modem; /* Whether to send modem status to the user app */
140−} wan_x25_conf_t;
141−
142−/*----------------------------------------------------------------------------
143− * Frame relay specific link-level configuration.
144− */
145−typedef struct wan_fr_conf
146−{
147− unsigned signalling; /* local in-channel signalling type */
148− unsigned t391; /* link integrity verification timer */
149− unsigned t392; /* polling verification timer */
150− unsigned n391; /* full status polling cycle counter */
151− unsigned n392; /* error threshold counter */
152− unsigned n393; /* monitored events counter */
153− unsigned dlci_num; /* number of DLCs (access node) */
154− unsigned dlci[100]; /* List of all DLCIs */
155−} wan_fr_conf_t;
156−
157−/*----------------------------------------------------------------------------
158− * PPP-specific link-level configuration.
159− */
160−typedef struct wan_ppp_conf
161−{
162− unsigned restart_tmr; /* restart timer */
163− unsigned auth_rsrt_tmr; /* authentication timer */
164− unsigned auth_wait_tmr; /* authentication timer */
165− unsigned mdm_fail_tmr; /* modem failure timer */
166− unsigned dtr_drop_tmr; /* DTR drop timer */
167− unsigned connect_tmout; /* connection timeout */
168− unsigned conf_retry; /* max. retry */
169− unsigned term_retry; /* max. retry */
170− unsigned fail_retry; /* max. retry */
171− unsigned auth_retry; /* max. retry */
172− unsigned auth_options; /* authentication opt. */
173− unsigned ip_options; /* IP options */
174− char authenticator; /* AUTHENTICATOR or not */
175− char ip_mode; /* Static/Host/Peer */
176−} wan_ppp_conf_t;
177−
178−/*----------------------------------------------------------------------------
179− * CHDLC-specific link-level configuration.
180− */
181−typedef struct wan_chdlc_conf
182−{
183− unsigned char ignore_dcd; /* Protocol options: */
184− unsigned char ignore_cts; /* Ignore these to determine */
185− unsigned char ignore_keepalive; /* link status (Yes or No) */
186− unsigned char hdlc_streaming; /* hdlc_streaming mode (Y/N) */
187− unsigned char receive_only; /* no transmit buffering (Y/N) */
188− unsigned keepalive_tx_tmr; /* transmit keepalive timer */
189− unsigned keepalive_rx_tmr; /* receive keepalive timer */
190− unsigned keepalive_err_margin; /* keepalive_error_tolerance */
191− unsigned slarp_timer; /* SLARP request timer */
192−} wan_chdlc_conf_t;
193−
194−
195−/*----------------------------------------------------------------------------
196− * WAN device configuration. Passed to ROUTER_SETUP IOCTL.
197− */
198−typedef struct wandev_conf
199−{
200− unsigned magic; /* magic number (for verification) */
201− unsigned config_id; /* configuration structure identifier */
202− /****** hardware configuration ******/
203− unsigned ioport; /* adapter I/O port base */
204− unsigned long maddr; /* dual-port memory address */
205− unsigned msize; /* dual-port memory size */
206− int irq; /* interrupt request level */
207− int dma; /* DMA request level */
208− char S514_CPU_no[1]; /* S514 PCI adapter CPU number ('A' or 'B') */
209− unsigned PCI_slot_no; /* S514 PCI adapter slot number */
210− char auto_pci_cfg; /* S515 PCI automatic slot detection */
211− char comm_port; /* Communication Port (PRI=0, SEC=1) */
212− unsigned bps; /* data transfer rate */
213− unsigned mtu; /* maximum transmit unit size */
214− unsigned udp_port; /* UDP port for management */
215− unsigned char ttl; /* Time To Live for UDP security */
216− unsigned char ft1; /* FT1 Configurator Option */
217− char interface; /* RS-232/V.35, etc. */
218− char clocking; /* external/internal */
219− char line_coding; /* NRZ/NRZI/FM0/FM1, etc. */
220− char station; /* DTE/DCE, primary/secondary, etc. */
221− char connection; /* permanent/switched/on-demand */
222− char read_mode; /* read mode: Polling or interrupt */
223− char receive_only; /* disable tx buffers */
224− char tty; /* Create a fake tty device */
225− unsigned tty_major; /* Major number for wanpipe tty device */
226− unsigned tty_minor; /* Minor number for wanpipe tty device */
227− unsigned tty_mode; /* TTY operation mode SYNC or ASYNC */
228− char backup; /* Backup Mode */
229− unsigned hw_opt[4]; /* other hardware options */
230− unsigned reserved[4];
231− /****** arbitrary data ***************/
232− unsigned data_size; /* data buffer size */
233− void* data; /* data buffer, e.g. firmware */
234− union /****** protocol-specific ************/
235− {
236− wan_x25_conf_t x25; /* X.25 configuration */
237− wan_ppp_conf_t ppp; /* PPP configuration */
238− wan_fr_conf_t fr; /* frame relay configuration */
239− wan_chdlc_conf_t chdlc; /* Cisco HDLC configuration */
240− } u;
241−} wandev_conf_t;
242−
243−/* 'config_id' definitions */
244−#define WANCONFIG_X25 101 /* X.25 link */
245−#define WANCONFIG_FR 102 /* frame relay link */
246−#define WANCONFIG_PPP 103 /* synchronous PPP link */
247−#define WANCONFIG_CHDLC 104 /* Cisco HDLC Link */
248−#define WANCONFIG_BSC 105 /* BiSync Streaming */
249−#define WANCONFIG_HDLC 106 /* HDLC Support */
250−#define WANCONFIG_MPPP 107 /* Multi Port PPP over RAW CHDLC */
251−
2521 /*
253− * Configuration options defines.
2+ * wanrouter.h Legacy declarations kept around until X25 is removed
2543 */
255−/* general options */
256−#define WANOPT_OFF 0
257−#define WANOPT_ON 1
258−#define WANOPT_NO 0
259−#define WANOPT_YES 1
260−
261−/* intercace options */
262−#define WANOPT_RS232 0
263−#define WANOPT_V35 1
264−
265−/* data encoding options */
266−#define WANOPT_NRZ 0
267−#define WANOPT_NRZI 1
268−#define WANOPT_FM0 2
269−#define WANOPT_FM1 3
270−
271−/* link type options */
272−#define WANOPT_POINTTOPOINT 0 /* RTS always active */
273−#define WANOPT_MULTIDROP 1 /* RTS is active when transmitting */
274−
275−/* clocking options */
276−#define WANOPT_EXTERNAL 0
277−#define WANOPT_INTERNAL 1
278−
279−/* station options */
280−#define WANOPT_DTE 0
281−#define WANOPT_DCE 1
282−#define WANOPT_CPE 0
283−#define WANOPT_NODE 1
284−#define WANOPT_SECONDARY 0
285−#define WANOPT_PRIMARY 1
286−
287−/* connection options */
288−#define WANOPT_PERMANENT 0 /* DTR always active */
289−#define WANOPT_SWITCHED 1 /* use DTR to setup link (dial-up) */
290−#define WANOPT_ONDEMAND 2 /* activate DTR only before sending */
291−
292−/* frame relay in-channel signalling */
293−#define WANOPT_FR_ANSI 1 /* ANSI T1.617 Annex D */
294−#define WANOPT_FR_Q933 2 /* ITU Q.933A */
295−#define WANOPT_FR_LMI 3 /* LMI */
296−
297−/* PPP IP Mode Options */
298−#define WANOPT_PPP_STATIC 0
299−#define WANOPT_PPP_HOST 1
300−#define WANOPT_PPP_PEER 2
301−
302−/* ASY Mode Options */
303−#define WANOPT_ONE 1
304−#define WANOPT_TWO 2
305−#define WANOPT_ONE_AND_HALF 3
306−
307−#define WANOPT_NONE 0
308−#define WANOPT_ODD 1
309−#define WANOPT_EVEN 2
310−
311−/* CHDLC Protocol Options */
312−/* DF Commented out for now.
313−
314−#define WANOPT_CHDLC_NO_DCD IGNORE_DCD_FOR_LINK_STAT
315−#define WANOPT_CHDLC_NO_CTS IGNORE_CTS_FOR_LINK_STAT
316−#define WANOPT_CHDLC_NO_KEEPALIVE IGNORE_KPALV_FOR_LINK_STAT
317−*/
318−
319−/* Port options */
320−#define WANOPT_PRI 0
321−#define WANOPT_SEC 1
322−/* read mode */
323−#define WANOPT_INTR 0
324−#define WANOPT_POLL 1
3254
326−
327−#define WANOPT_TTY_SYNC 0
328−#define WANOPT_TTY_ASYNC 1
329−/*----------------------------------------------------------------------------
330− * WAN Link Status Info (for ROUTER_STAT IOCTL).
331− */
332−typedef struct wandev_stat
333−{
334− unsigned state; /* link state */
335− unsigned ndev; /* number of configured interfaces */
336−
337− /* link/interface configuration */
338− unsigned connection; /* permanent/switched/on-demand */
339− unsigned media_type; /* Frame relay/PPP/X.25/SDLC, etc. */
340− unsigned mtu; /* max. transmit unit for this device */
341−
342− /* physical level statistics */
343− unsigned modem_status; /* modem status */
344− unsigned rx_frames; /* received frames count */
345− unsigned rx_overruns; /* receiver overrun error count */
346− unsigned rx_crc_err; /* receive CRC error count */
347− unsigned rx_aborts; /* received aborted frames count */
348− unsigned rx_bad_length; /* unexpetedly long/short frames count */
349− unsigned rx_dropped; /* frames discarded at device level */
350− unsigned tx_frames; /* transmitted frames count */
351− unsigned tx_underruns; /* aborted transmissions (underruns) count */
352− unsigned tx_timeouts; /* transmission timeouts */
353− unsigned tx_rejects; /* other transmit errors */
354−
355− /* media level statistics */
356− unsigned rx_bad_format; /* frames with invalid format */
357− unsigned rx_bad_addr; /* frames with invalid media address */
358− unsigned tx_retries; /* frames re-transmitted */
359− unsigned reserved[16]; /* reserved for future use */
360−} wandev_stat_t;
5+#ifndef _UAPI_ROUTER_H
6+#define _UAPI_ROUTER_H
3617
3628 /* 'state' defines */
3639 enum wan_states
@@ -365,88 +11,7 @@ enum wan_states · 1 unmodified line
36511 WAN_UNCONFIGURED, /* link/channel is not configured */
36612 WAN_DISCONNECTED, /* link/channel is disconnected */
36713 WAN_CONNECTING, /* connection is in progress */
368− WAN_CONNECTED, /* link/channel is operational */
369− WAN_LIMIT, /* for verification only */
370− WAN_DUALPORT, /* for Dual Port cards */
371− WAN_DISCONNECTING,
372− WAN_FT1_READY /* FT1 Configurator Ready */
14+ WAN_CONNECTED /* link/channel is operational */
37315 };
37416
375−enum {
376− WAN_LOCAL_IP,
377− WAN_POINTOPOINT_IP,
378− WAN_NETMASK_IP,
379− WAN_BROADCAST_IP
380−};
381−
382−/* 'modem_status' masks */
383−#define WAN_MODEM_CTS 0x0001 /* CTS line active */
384−#define WAN_MODEM_DCD 0x0002 /* DCD line active */
385−#define WAN_MODEM_DTR 0x0010 /* DTR line active */
386−#define WAN_MODEM_RTS 0x0020 /* RTS line active */
387−
388−/*----------------------------------------------------------------------------
389− * WAN interface (logical channel) configuration (for ROUTER_IFNEW IOCTL).
390− */
391−typedef struct wanif_conf
392−{
393− unsigned magic; /* magic number */
394− unsigned config_id; /* configuration identifier */
395− char name[WAN_IFNAME_SZ+1]; /* interface name, ASCIIZ */
396− char addr[WAN_ADDRESS_SZ+1]; /* media address, ASCIIZ */
397− char usedby[USED_BY_FIELD]; /* used by API or WANPIPE */
398− unsigned idle_timeout; /* sec, before disconnecting */
399− unsigned hold_timeout; /* sec, before re-connecting */
400− unsigned cir; /* Committed Information Rate fwd,bwd*/
401− unsigned bc; /* Committed Burst Size fwd, bwd */
402− unsigned be; /* Excess Burst Size fwd, bwd */
403− unsigned char enable_IPX; /* Enable or Disable IPX */
404− unsigned char inarp; /* Send Inverse ARP requests Y/N */
405− unsigned inarp_interval; /* sec, between InARP requests */
406− unsigned long network_number; /* Network Number for IPX */
407− char mc; /* Multicast on or off */
408− char local_addr[WAN_ADDRESS_SZ+1];/* local media address, ASCIIZ */
409− unsigned char port; /* board port */
410− unsigned char protocol; /* prococol used in this channel (TCPOX25 or X25) */
411− char pap; /* PAP enabled or disabled */
412− char chap; /* CHAP enabled or disabled */
413− unsigned char userid[511]; /* List of User Id */
414− unsigned char passwd[511]; /* List of passwords */
415− unsigned char sysname[31]; /* Name of the system */
416− unsigned char ignore_dcd; /* Protocol options: */
417− unsigned char ignore_cts; /* Ignore these to determine */
418− unsigned char ignore_keepalive; /* link status (Yes or No) */
419− unsigned char hdlc_streaming; /* Hdlc streaming mode (Y/N) */
420− unsigned keepalive_tx_tmr; /* transmit keepalive timer */
421− unsigned keepalive_rx_tmr; /* receive keepalive timer */
422− unsigned keepalive_err_margin; /* keepalive_error_tolerance */
423− unsigned slarp_timer; /* SLARP request timer */
424− unsigned char ttl; /* Time To Live for UDP security */
425− char interface; /* RS-232/V.35, etc. */
426− char clocking; /* external/internal */
427− unsigned bps; /* data transfer rate */
428− unsigned mtu; /* maximum transmit unit size */
429− unsigned char if_down; /* brind down interface when disconnected */
430− unsigned char gateway; /* Is this interface a gateway */
431− unsigned char true_if_encoding; /* Set the dev->type to true board protocol */
432−
433− unsigned char asy_data_trans; /* async API options */
434− unsigned char rts_hs_for_receive; /* async Protocol options */
435− unsigned char xon_xoff_hs_for_receive;
436− unsigned char xon_xoff_hs_for_transmit;
437− unsigned char dcd_hs_for_transmit;
438− unsigned char cts_hs_for_transmit;
439− unsigned char async_mode;
440− unsigned tx_bits_per_char;
441− unsigned rx_bits_per_char;
442− unsigned stop_bits;
443− unsigned char parity;
444− unsigned break_timer;
445− unsigned inter_char_timer;
446− unsigned rx_complete_length;
447− unsigned xon_char;
448− unsigned xoff_char;
449− unsigned char receive_only; /* no transmit buffering (Y/N) */
450−} wanif_conf_t;
451−
45217 #endif /* _UAPI_ROUTER_H */
include/uapi/linux/xattr.h+8−5
@@ -15,19 +15,22 @@ · 14 unmodified lines
1515
1616 /* Namespaces */
1717 #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)
1922
2023 #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)
2225
2326 #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)
2528
2629 #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)
2831
2932 #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)
3134
3235 /* Security namespace */
3336 #define XATTR_EVM_SUFFIX "evm"

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t