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