Merge with mainline to bring in module_platform_driver_probe() and devm_ioremap_resource().
Showing the changes to include/uapi/linux (82 of 17348 files). Show all
Unified · Split
| @@ -68,6 +68,7 @@ header-y += blkpg.h · 67 unmodified lines | ||
| 68 | 68 | header-y += blktrace_api.h |
| 69 | 69 | header-y += bpqether.h |
| 70 | 70 | header-y += bsg.h |
| 71 | +header-y += btrfs.h | |
| 71 | 72 | header-y += can.h |
| 72 | 73 | header-y += capability.h |
| 73 | 74 | header-y += capi.h |
| @@ -258,6 +259,7 @@ header-y += neighbour.h · 184 unmodified lines | ||
| 258 | 259 | header-y += net.h |
| 259 | 260 | header-y += net_dropmon.h |
| 260 | 261 | header-y += net_tstamp.h |
| 262 | +header-y += netconf.h | |
| 261 | 263 | header-y += netdevice.h |
| 262 | 264 | header-y += netfilter.h |
| 263 | 265 | header-y += netfilter_arp.h |
| @@ -415,3 +417,4 @@ header-y += wireless.h · 151 unmodified lines | ||
| 415 | 417 | header-y += x25.h |
| 416 | 418 | header-y += xattr.h |
| 417 | 419 | header-y += xfrm.h |
| 420 | +header-y += hw_breakpoint.h | |
| @@ -107,10 +107,12 @@ struct acct_v3 · 106 unmodified lines | ||
| 107 | 107 | #define ACORE 0x08 /* ... dumped core */ |
| 108 | 108 | #define AXSIG 0x10 /* ... was killed by a signal */ |
| 109 | 109 | |
| 110 | −#ifdef __BIG_ENDIAN | |
| 110 | +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) | |
| 111 | 111 | #define ACCT_BYTEORDER 0x80 /* accounting file is big endian */ |
| 112 | −#else | |
| 112 | +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) | |
| 113 | 113 | #define ACCT_BYTEORDER 0x00 /* accounting file is little endian */ |
| 114 | +#else | |
| 115 | +#error unspecified endianness | |
| 114 | 116 | #endif |
| 115 | 117 | |
| 116 | 118 | #ifndef __KERNEL__ |
| @@ -62,9 +62,9 @@ struct io_event { · 61 unmodified lines | ||
| 62 | 62 | __s64 res2; /* secondary result */ |
| 63 | 63 | }; |
| 64 | 64 | |
| 65 | −#if defined(__LITTLE_ENDIAN) | |
| 65 | +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) | |
| 66 | 66 | #define PADDED(x,y) x, y |
| 67 | −#elif defined(__BIG_ENDIAN) | |
| 67 | +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) | |
| 68 | 68 | #define PADDED(x,y) y, x |
| 69 | 69 | #else |
| 70 | 70 | #error edit for your odd byteorder. |
| @@ -26,7 +26,6 @@ · 25 unmodified lines | ||
| 26 | 26 | |
| 27 | 27 | #include <linux/types.h> |
| 28 | 28 | #include <linux/elf-em.h> |
| 29 | −#include <linux/ptrace.h> | |
| 30 | 29 | |
| 31 | 30 | /* The netlink messages for the audit system is divided into blocks: |
| 32 | 31 | * 1000 - 1099 are for commanding the audit system |
| @@ -106,6 +105,7 @@ · 73 unmodified lines | ||
| 106 | 105 | #define AUDIT_MMAP 1323 /* Record showing descriptor and flags in mmap */ |
| 107 | 106 | #define AUDIT_NETFILTER_PKT 1324 /* Packets traversing netfilter chains */ |
| 108 | 107 | #define AUDIT_NETFILTER_CFG 1325 /* Netfilter chain modifications */ |
| 108 | +#define AUDIT_SECCOMP 1326 /* Secure Computing event */ | |
| 109 | 109 | |
| 110 | 110 | #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ |
| 111 | 111 | #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ |
| @@ -28,25 +28,16 @@ · 27 unmodified lines | ||
| 28 | 28 | #define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION |
| 29 | 29 | |
| 30 | 30 | /* |
| 31 | − * Architectures where both 32- and 64-bit binaries can be executed | |
| 32 | − * on 64-bit kernels need this. This keeps the structure format | |
| 33 | − * uniform, and makes sure the wait_queue_token isn't too big to be | |
| 34 | − * passed back down to the kernel. | |
| 35 | − * | |
| 36 | − * This assumes that on these architectures: | |
| 37 | − * mode 32 bit 64 bit | |
| 38 | − * ------------------------- | |
| 39 | − * int 32 bit 32 bit | |
| 40 | − * long 32 bit 64 bit | |
| 41 | − * | |
| 42 | − * If so, 32-bit user-space code should be backwards compatible. | |
| 31 | + * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed | |
| 32 | + * back to the kernel via ioctl from userspace. On architectures where 32- and | |
| 33 | + * 64-bit userspace binaries can be executed it's important that the size of | |
| 34 | + * autofs_wqt_t stays constant between 32- and 64-bit Linux kernels so that we | |
| 35 | + * do not break the binary ABI interface by changing the structure size. | |
| 43 | 36 | */ |
| 44 | − | |
| 45 | −#if defined(__sparc__) || defined(__mips__) || defined(__x86_64__) \ | |
| 46 | − || defined(__powerpc__) || defined(__s390__) | |
| 47 | −typedef unsigned int autofs_wqt_t; | |
| 48 | −#else | |
| 37 | +#if defined(__ia64__) || defined(__alpha__) /* pure 64bit architectures */ | |
| 49 | 38 | typedef unsigned long autofs_wqt_t; |
| 39 | +#else | |
| 40 | +typedef unsigned int autofs_wqt_t; | |
| 50 | 41 | #endif |
| 51 | 42 | |
| 52 | 43 | /* Packet types */ |
| @@ -0,0 +1,514 @@ | ||
| 1 | +/* | |
| 2 | + * Copyright (C) 2007 Oracle. All rights reserved. | |
| 3 | + * | |
| 4 | + * This program is free software; you can redistribute it and/or | |
| 5 | + * modify it under the terms of the GNU General Public | |
| 6 | + * License v2 as published by the Free Software Foundation. | |
| 7 | + * | |
| 8 | + * This program is distributed in the hope that it will be useful, | |
| 9 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 10 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 11 | + * General Public License for more details. | |
| 12 | + * | |
| 13 | + * You should have received a copy of the GNU General Public | |
| 14 | + * License along with this program; if not, write to the | |
| 15 | + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 16 | + * Boston, MA 021110-1307, USA. | |
| 17 | + */ | |
| 18 | + | |
| 19 | +#ifndef _UAPI_LINUX_BTRFS_H | |
| 20 | +#define _UAPI_LINUX_BTRFS_H | |
| 21 | +#include <linux/types.h> | |
| 22 | +#include <linux/ioctl.h> | |
| 23 | + | |
| 24 | +#define BTRFS_IOCTL_MAGIC 0x94 | |
| 25 | +#define BTRFS_VOL_NAME_MAX 255 | |
| 26 | + | |
| 27 | +/* this should be 4k */ | |
| 28 | +#define BTRFS_PATH_NAME_MAX 4087 | |
| 29 | +struct btrfs_ioctl_vol_args { | |
| 30 | + __s64 fd; | |
| 31 | + char name[BTRFS_PATH_NAME_MAX + 1]; | |
| 32 | +}; | |
| 33 | + | |
| 34 | +#define BTRFS_DEVICE_PATH_NAME_MAX 1024 | |
| 35 | + | |
| 36 | +#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0) | |
| 37 | +#define BTRFS_SUBVOL_RDONLY (1ULL << 1) | |
| 38 | +#define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2) | |
| 39 | +#define BTRFS_FSID_SIZE 16 | |
| 40 | +#define BTRFS_UUID_SIZE 16 | |
| 41 | + | |
| 42 | +#define BTRFS_QGROUP_INHERIT_SET_LIMITS (1ULL << 0) | |
| 43 | + | |
| 44 | +struct btrfs_qgroup_limit { | |
| 45 | + __u64 flags; | |
| 46 | + __u64 max_rfer; | |
| 47 | + __u64 max_excl; | |
| 48 | + __u64 rsv_rfer; | |
| 49 | + __u64 rsv_excl; | |
| 50 | +}; | |
| 51 | + | |
| 52 | +struct btrfs_qgroup_inherit { | |
| 53 | + __u64 flags; | |
| 54 | + __u64 num_qgroups; | |
| 55 | + __u64 num_ref_copies; | |
| 56 | + __u64 num_excl_copies; | |
| 57 | + struct btrfs_qgroup_limit lim; | |
| 58 | + __u64 qgroups[0]; | |
| 59 | +}; | |
| 60 | + | |
| 61 | +struct btrfs_ioctl_qgroup_limit_args { | |
| 62 | + __u64 qgroupid; | |
| 63 | + struct btrfs_qgroup_limit lim; | |
| 64 | +}; | |
| 65 | + | |
| 66 | +#define BTRFS_SUBVOL_NAME_MAX 4039 | |
| 67 | +struct btrfs_ioctl_vol_args_v2 { | |
| 68 | + __s64 fd; | |
| 69 | + __u64 transid; | |
| 70 | + __u64 flags; | |
| 71 | + union { | |
| 72 | + struct { | |
| 73 | + __u64 size; | |
| 74 | + struct btrfs_qgroup_inherit __user *qgroup_inherit; | |
| 75 | + }; | |
| 76 | + __u64 unused[4]; | |
| 77 | + }; | |
| 78 | + char name[BTRFS_SUBVOL_NAME_MAX + 1]; | |
| 79 | +}; | |
| 80 | + | |
| 81 | +/* | |
| 82 | + * structure to report errors and progress to userspace, either as a | |
| 83 | + * result of a finished scrub, a canceled scrub or a progress inquiry | |
| 84 | + */ | |
| 85 | +struct btrfs_scrub_progress { | |
| 86 | + __u64 data_extents_scrubbed; /* # of data extents scrubbed */ | |
| 87 | + __u64 tree_extents_scrubbed; /* # of tree extents scrubbed */ | |
| 88 | + __u64 data_bytes_scrubbed; /* # of data bytes scrubbed */ | |
| 89 | + __u64 tree_bytes_scrubbed; /* # of tree bytes scrubbed */ | |
| 90 | + __u64 read_errors; /* # of read errors encountered (EIO) */ | |
| 91 | + __u64 csum_errors; /* # of failed csum checks */ | |
| 92 | + __u64 verify_errors; /* # of occurences, where the metadata | |
| 93 | + * of a tree block did not match the | |
| 94 | + * expected values, like generation or | |
| 95 | + * logical */ | |
| 96 | + __u64 no_csum; /* # of 4k data block for which no csum | |
| 97 | + * is present, probably the result of | |
| 98 | + * data written with nodatasum */ | |
| 99 | + __u64 csum_discards; /* # of csum for which no data was found | |
| 100 | + * in the extent tree. */ | |
| 101 | + __u64 super_errors; /* # of bad super blocks encountered */ | |
| 102 | + __u64 malloc_errors; /* # of internal kmalloc errors. These | |
| 103 | + * will likely cause an incomplete | |
| 104 | + * scrub */ | |
| 105 | + __u64 uncorrectable_errors; /* # of errors where either no intact | |
| 106 | + * copy was found or the writeback | |
| 107 | + * failed */ | |
| 108 | + __u64 corrected_errors; /* # of errors corrected */ | |
| 109 | + __u64 last_physical; /* last physical address scrubbed. In | |
| 110 | + * case a scrub was aborted, this can | |
| 111 | + * be used to restart the scrub */ | |
| 112 | + __u64 unverified_errors; /* # of occurences where a read for a | |
| 113 | + * full (64k) bio failed, but the re- | |
| 114 | + * check succeeded for each 4k piece. | |
| 115 | + * Intermittent error. */ | |
| 116 | +}; | |
| 117 | + | |
| 118 | +#define BTRFS_SCRUB_READONLY 1 | |
| 119 | +struct btrfs_ioctl_scrub_args { | |
| 120 | + __u64 devid; /* in */ | |
| 121 | + __u64 start; /* in */ | |
| 122 | + __u64 end; /* in */ | |
| 123 | + __u64 flags; /* in */ | |
| 124 | + struct btrfs_scrub_progress progress; /* out */ | |
| 125 | + /* pad to 1k */ | |
| 126 | + __u64 unused[(1024-32-sizeof(struct btrfs_scrub_progress))/8]; | |
| 127 | +}; | |
| 128 | + | |
| 129 | +#define BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS 0 | |
| 130 | +#define BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID 1 | |
| 131 | +struct btrfs_ioctl_dev_replace_start_params { | |
| 132 | + __u64 srcdevid; /* in, if 0, use srcdev_name instead */ | |
| 133 | + __u64 cont_reading_from_srcdev_mode; /* in, see #define | |
| 134 | + * above */ | |
| 135 | + __u8 srcdev_name[BTRFS_DEVICE_PATH_NAME_MAX + 1]; /* in */ | |
| 136 | + __u8 tgtdev_name[BTRFS_DEVICE_PATH_NAME_MAX + 1]; /* in */ | |
| 137 | +}; | |
| 138 | + | |
| 139 | +#define BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED 0 | |
| 140 | +#define BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED 1 | |
| 141 | +#define BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED 2 | |
| 142 | +#define BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED 3 | |
| 143 | +#define BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED 4 | |
| 144 | +struct btrfs_ioctl_dev_replace_status_params { | |
| 145 | + __u64 replace_state; /* out, see #define above */ | |
| 146 | + __u64 progress_1000; /* out, 0 <= x <= 1000 */ | |
| 147 | + __u64 time_started; /* out, seconds since 1-Jan-1970 */ | |
| 148 | + __u64 time_stopped; /* out, seconds since 1-Jan-1970 */ | |
| 149 | + __u64 num_write_errors; /* out */ | |
| 150 | + __u64 num_uncorrectable_read_errors; /* out */ | |
| 151 | +}; | |
| 152 | + | |
| 153 | +#define BTRFS_IOCTL_DEV_REPLACE_CMD_START 0 | |
| 154 | +#define BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS 1 | |
| 155 | +#define BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL 2 | |
| 156 | +#define BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR 0 | |
| 157 | +#define BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED 1 | |
| 158 | +#define BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED 2 | |
| 159 | +struct btrfs_ioctl_dev_replace_args { | |
| 160 | + __u64 cmd; /* in */ | |
| 161 | + __u64 result; /* out */ | |
| 162 | + | |
| 163 | + union { | |
| 164 | + struct btrfs_ioctl_dev_replace_start_params start; | |
| 165 | + struct btrfs_ioctl_dev_replace_status_params status; | |
| 166 | + }; /* in/out */ | |
| 167 | + | |
| 168 | + __u64 spare[64]; | |
| 169 | +}; | |
| 170 | + | |
| 171 | +struct btrfs_ioctl_dev_info_args { | |
| 172 | + __u64 devid; /* in/out */ | |
| 173 | + __u8 uuid[BTRFS_UUID_SIZE]; /* in/out */ | |
| 174 | + __u64 bytes_used; /* out */ | |
| 175 | + __u64 total_bytes; /* out */ | |
| 176 | + __u64 unused[379]; /* pad to 4k */ | |
| 177 | + __u8 path[BTRFS_DEVICE_PATH_NAME_MAX]; /* out */ | |
| 178 | +}; | |
| 179 | + | |
| 180 | +struct btrfs_ioctl_fs_info_args { | |
| 181 | + __u64 max_id; /* out */ | |
| 182 | + __u64 num_devices; /* out */ | |
| 183 | + __u8 fsid[BTRFS_FSID_SIZE]; /* out */ | |
| 184 | + __u64 reserved[124]; /* pad to 1k */ | |
| 185 | +}; | |
| 186 | + | |
| 187 | +/* balance control ioctl modes */ | |
| 188 | +#define BTRFS_BALANCE_CTL_PAUSE 1 | |
| 189 | +#define BTRFS_BALANCE_CTL_CANCEL 2 | |
| 190 | + | |
| 191 | +/* | |
| 192 | + * this is packed, because it should be exactly the same as its disk | |
| 193 | + * byte order counterpart (struct btrfs_disk_balance_args) | |
| 194 | + */ | |
| 195 | +struct btrfs_balance_args { | |
| 196 | + __u64 profiles; | |
| 197 | + __u64 usage; | |
| 198 | + __u64 devid; | |
| 199 | + __u64 pstart; | |
| 200 | + __u64 pend; | |
| 201 | + __u64 vstart; | |
| 202 | + __u64 vend; | |
| 203 | + | |
| 204 | + __u64 target; | |
| 205 | + | |
| 206 | + __u64 flags; | |
| 207 | + | |
| 208 | + __u64 unused[8]; | |
| 209 | +} __attribute__ ((__packed__)); | |
| 210 | + | |
| 211 | +/* report balance progress to userspace */ | |
| 212 | +struct btrfs_balance_progress { | |
| 213 | + __u64 expected; /* estimated # of chunks that will be | |
| 214 | + * relocated to fulfill the request */ | |
| 215 | + __u64 considered; /* # of chunks we have considered so far */ | |
| 216 | + __u64 completed; /* # of chunks relocated so far */ | |
| 217 | +}; | |
| 218 | + | |
| 219 | +#define BTRFS_BALANCE_STATE_RUNNING (1ULL << 0) | |
| 220 | +#define BTRFS_BALANCE_STATE_PAUSE_REQ (1ULL << 1) | |
| 221 | +#define BTRFS_BALANCE_STATE_CANCEL_REQ (1ULL << 2) | |
| 222 | + | |
| 223 | +struct btrfs_ioctl_balance_args { | |
| 224 | + __u64 flags; /* in/out */ | |
| 225 | + __u64 state; /* out */ | |
| 226 | + | |
| 227 | + struct btrfs_balance_args data; /* in/out */ | |
| 228 | + struct btrfs_balance_args meta; /* in/out */ | |
| 229 | + struct btrfs_balance_args sys; /* in/out */ | |
| 230 | + | |
| 231 | + struct btrfs_balance_progress stat; /* out */ | |
| 232 | + | |
| 233 | + __u64 unused[72]; /* pad to 1k */ | |
| 234 | +}; | |
| 235 | + | |
| 236 | +#define BTRFS_INO_LOOKUP_PATH_MAX 4080 | |
| 237 | +struct btrfs_ioctl_ino_lookup_args { | |
| 238 | + __u64 treeid; | |
| 239 | + __u64 objectid; | |
| 240 | + char name[BTRFS_INO_LOOKUP_PATH_MAX]; | |
| 241 | +}; | |
| 242 | + | |
| 243 | +struct btrfs_ioctl_search_key { | |
| 244 | + /* which root are we searching. 0 is the tree of tree roots */ | |
| 245 | + __u64 tree_id; | |
| 246 | + | |
| 247 | + /* keys returned will be >= min and <= max */ | |
| 248 | + __u64 min_objectid; | |
| 249 | + __u64 max_objectid; | |
| 250 | + | |
| 251 | + /* keys returned will be >= min and <= max */ | |
| 252 | + __u64 min_offset; | |
| 253 | + __u64 max_offset; | |
| 254 | + | |
| 255 | + /* max and min transids to search for */ | |
| 256 | + __u64 min_transid; | |
| 257 | + __u64 max_transid; | |
| 258 | + | |
| 259 | + /* keys returned will be >= min and <= max */ | |
| 260 | + __u32 min_type; | |
| 261 | + __u32 max_type; | |
| 262 | + | |
| 263 | + /* | |
| 264 | + * how many items did userland ask for, and how many are we | |
| 265 | + * returning | |
| 266 | + */ | |
| 267 | + __u32 nr_items; | |
| 268 | + | |
| 269 | + /* align to 64 bits */ | |
| 270 | + __u32 unused; | |
| 271 | + | |
| 272 | + /* some extra for later */ | |
| 273 | + __u64 unused1; | |
| 274 | + __u64 unused2; | |
| 275 | + __u64 unused3; | |
| 276 | + __u64 unused4; | |
| 277 | +}; | |
| 278 | + | |
| 279 | +struct btrfs_ioctl_search_header { | |
| 280 | + __u64 transid; | |
| 281 | + __u64 objectid; | |
| 282 | + __u64 offset; | |
| 283 | + __u32 type; | |
| 284 | + __u32 len; | |
| 285 | +}; | |
| 286 | + | |
| 287 | +#define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key)) | |
| 288 | +/* | |
| 289 | + * the buf is an array of search headers where | |
| 290 | + * each header is followed by the actual item | |
| 291 | + * the type field is expanded to 32 bits for alignment | |
| 292 | + */ | |
| 293 | +struct btrfs_ioctl_search_args { | |
| 294 | + struct btrfs_ioctl_search_key key; | |
| 295 | + char buf[BTRFS_SEARCH_ARGS_BUFSIZE]; | |
| 296 | +}; | |
| 297 | + | |
| 298 | +struct btrfs_ioctl_clone_range_args { | |
| 299 | + __s64 src_fd; | |
| 300 | + __u64 src_offset, src_length; | |
| 301 | + __u64 dest_offset; | |
| 302 | +}; | |
| 303 | + | |
| 304 | +/* flags for the defrag range ioctl */ | |
| 305 | +#define BTRFS_DEFRAG_RANGE_COMPRESS 1 | |
| 306 | +#define BTRFS_DEFRAG_RANGE_START_IO 2 | |
| 307 | + | |
| 308 | +struct btrfs_ioctl_space_info { | |
| 309 | + __u64 flags; | |
| 310 | + __u64 total_bytes; | |
| 311 | + __u64 used_bytes; | |
| 312 | +}; | |
| 313 | + | |
| 314 | +struct btrfs_ioctl_space_args { | |
| 315 | + __u64 space_slots; | |
| 316 | + __u64 total_spaces; | |
| 317 | + struct btrfs_ioctl_space_info spaces[0]; | |
| 318 | +}; | |
| 319 | + | |
| 320 | +struct btrfs_data_container { | |
| 321 | + __u32 bytes_left; /* out -- bytes not needed to deliver output */ | |
| 322 | + __u32 bytes_missing; /* out -- additional bytes needed for result */ | |
| 323 | + __u32 elem_cnt; /* out */ | |
| 324 | + __u32 elem_missed; /* out */ | |
| 325 | + __u64 val[0]; /* out */ | |
| 326 | +}; | |
| 327 | + | |
| 328 | +struct btrfs_ioctl_ino_path_args { | |
| 329 | + __u64 inum; /* in */ | |
| 330 | + __u64 size; /* in */ | |
| 331 | + __u64 reserved[4]; | |
| 332 | + /* struct btrfs_data_container *fspath; out */ | |
| 333 | + __u64 fspath; /* out */ | |
| 334 | +}; | |
| 335 | + | |
| 336 | +struct btrfs_ioctl_logical_ino_args { | |
| 337 | + __u64 logical; /* in */ | |
| 338 | + __u64 size; /* in */ | |
| 339 | + __u64 reserved[4]; | |
| 340 | + /* struct btrfs_data_container *inodes; out */ | |
| 341 | + __u64 inodes; | |
| 342 | +}; | |
| 343 | + | |
| 344 | +enum btrfs_dev_stat_values { | |
| 345 | + /* disk I/O failure stats */ | |
| 346 | + BTRFS_DEV_STAT_WRITE_ERRS, /* EIO or EREMOTEIO from lower layers */ | |
| 347 | + BTRFS_DEV_STAT_READ_ERRS, /* EIO or EREMOTEIO from lower layers */ | |
| 348 | + BTRFS_DEV_STAT_FLUSH_ERRS, /* EIO or EREMOTEIO from lower layers */ | |
| 349 | + | |
| 350 | + /* stats for indirect indications for I/O failures */ | |
| 351 | + BTRFS_DEV_STAT_CORRUPTION_ERRS, /* checksum error, bytenr error or | |
| 352 | + * contents is illegal: this is an | |
| 353 | + * indication that the block was damaged | |
| 354 | + * during read or write, or written to | |
| 355 | + * wrong location or read from wrong | |
| 356 | + * location */ | |
| 357 | + BTRFS_DEV_STAT_GENERATION_ERRS, /* an indication that blocks have not | |
| 358 | + * been written */ | |
| 359 | + | |
| 360 | + BTRFS_DEV_STAT_VALUES_MAX | |
| 361 | +}; | |
| 362 | + | |
| 363 | +/* Reset statistics after reading; needs SYS_ADMIN capability */ | |
| 364 | +#define BTRFS_DEV_STATS_RESET (1ULL << 0) | |
| 365 | + | |
| 366 | +struct btrfs_ioctl_get_dev_stats { | |
| 367 | + __u64 devid; /* in */ | |
| 368 | + __u64 nr_items; /* in/out */ | |
| 369 | + __u64 flags; /* in/out */ | |
| 370 | + | |
| 371 | + /* out values: */ | |
| 372 | + __u64 values[BTRFS_DEV_STAT_VALUES_MAX]; | |
| 373 | + | |
| 374 | + __u64 unused[128 - 2 - BTRFS_DEV_STAT_VALUES_MAX]; /* pad to 1k */ | |
| 375 | +}; | |
| 376 | + | |
| 377 | +#define BTRFS_QUOTA_CTL_ENABLE 1 | |
| 378 | +#define BTRFS_QUOTA_CTL_DISABLE 2 | |
| 379 | +#define BTRFS_QUOTA_CTL_RESCAN 3 | |
| 380 | +struct btrfs_ioctl_quota_ctl_args { | |
| 381 | + __u64 cmd; | |
| 382 | + __u64 status; | |
| 383 | +}; | |
| 384 | + | |
| 385 | +struct btrfs_ioctl_qgroup_assign_args { | |
| 386 | + __u64 assign; | |
| 387 | + __u64 src; | |
| 388 | + __u64 dst; | |
| 389 | +}; | |
| 390 | + | |
| 391 | +struct btrfs_ioctl_qgroup_create_args { | |
| 392 | + __u64 create; | |
| 393 | + __u64 qgroupid; | |
| 394 | +}; | |
| 395 | +struct btrfs_ioctl_timespec { | |
| 396 | + __u64 sec; | |
| 397 | + __u32 nsec; | |
| 398 | +}; | |
| 399 | + | |
| 400 | +struct btrfs_ioctl_received_subvol_args { | |
| 401 | + char uuid[BTRFS_UUID_SIZE]; /* in */ | |
| 402 | + __u64 stransid; /* in */ | |
| 403 | + __u64 rtransid; /* out */ | |
| 404 | + struct btrfs_ioctl_timespec stime; /* in */ | |
| 405 | + struct btrfs_ioctl_timespec rtime; /* out */ | |
| 406 | + __u64 flags; /* in */ | |
| 407 | + __u64 reserved[16]; /* in */ | |
| 408 | +}; | |
| 409 | + | |
| 410 | +/* | |
| 411 | + * Caller doesn't want file data in the send stream, even if the | |
| 412 | + * search of clone sources doesn't find an extent. UPDATE_EXTENT | |
| 413 | + * commands will be sent instead of WRITE commands. | |
| 414 | + */ | |
| 415 | +#define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1 | |
| 416 | + | |
| 417 | +struct btrfs_ioctl_send_args { | |
| 418 | + __s64 send_fd; /* in */ | |
| 419 | + __u64 clone_sources_count; /* in */ | |
| 420 | + __u64 __user *clone_sources; /* in */ | |
| 421 | + __u64 parent_root; /* in */ | |
| 422 | + __u64 flags; /* in */ | |
| 423 | + __u64 reserved[4]; /* in */ | |
| 424 | +}; | |
| 425 | + | |
| 426 | +#define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \ | |
| 427 | + struct btrfs_ioctl_vol_args) | |
| 428 | +#define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, \ | |
| 429 | + struct btrfs_ioctl_vol_args) | |
| 430 | +#define BTRFS_IOC_RESIZE _IOW(BTRFS_IOCTL_MAGIC, 3, \ | |
| 431 | + struct btrfs_ioctl_vol_args) | |
| 432 | +#define BTRFS_IOC_SCAN_DEV _IOW(BTRFS_IOCTL_MAGIC, 4, \ | |
| 433 | + struct btrfs_ioctl_vol_args) | |
| 434 | +/* trans start and trans end are dangerous, and only for | |
| 435 | + * use by applications that know how to avoid the | |
| 436 | + * resulting deadlocks | |
| 437 | + */ | |
| 438 | +#define BTRFS_IOC_TRANS_START _IO(BTRFS_IOCTL_MAGIC, 6) | |
| 439 | +#define BTRFS_IOC_TRANS_END _IO(BTRFS_IOCTL_MAGIC, 7) | |
| 440 | +#define BTRFS_IOC_SYNC _IO(BTRFS_IOCTL_MAGIC, 8) | |
| 441 | + | |
| 442 | +#define BTRFS_IOC_CLONE _IOW(BTRFS_IOCTL_MAGIC, 9, int) | |
| 443 | +#define BTRFS_IOC_ADD_DEV _IOW(BTRFS_IOCTL_MAGIC, 10, \ | |
| 444 | + struct btrfs_ioctl_vol_args) | |
| 445 | +#define BTRFS_IOC_RM_DEV _IOW(BTRFS_IOCTL_MAGIC, 11, \ | |
| 446 | + struct btrfs_ioctl_vol_args) | |
| 447 | +#define BTRFS_IOC_BALANCE _IOW(BTRFS_IOCTL_MAGIC, 12, \ | |
| 448 | + struct btrfs_ioctl_vol_args) | |
| 449 | + | |
| 450 | +#define BTRFS_IOC_CLONE_RANGE _IOW(BTRFS_IOCTL_MAGIC, 13, \ | |
| 451 | + struct btrfs_ioctl_clone_range_args) | |
| 452 | + | |
| 453 | +#define BTRFS_IOC_SUBVOL_CREATE _IOW(BTRFS_IOCTL_MAGIC, 14, \ | |
| 454 | + struct btrfs_ioctl_vol_args) | |
| 455 | +#define BTRFS_IOC_SNAP_DESTROY _IOW(BTRFS_IOCTL_MAGIC, 15, \ | |
| 456 | + struct btrfs_ioctl_vol_args) | |
| 457 | +#define BTRFS_IOC_DEFRAG_RANGE _IOW(BTRFS_IOCTL_MAGIC, 16, \ | |
| 458 | + struct btrfs_ioctl_defrag_range_args) | |
| 459 | +#define BTRFS_IOC_TREE_SEARCH _IOWR(BTRFS_IOCTL_MAGIC, 17, \ | |
| 460 | + struct btrfs_ioctl_search_args) | |
| 461 | +#define BTRFS_IOC_INO_LOOKUP _IOWR(BTRFS_IOCTL_MAGIC, 18, \ | |
| 462 | + struct btrfs_ioctl_ino_lookup_args) | |
| 463 | +#define BTRFS_IOC_DEFAULT_SUBVOL _IOW(BTRFS_IOCTL_MAGIC, 19, u64) | |
| 464 | +#define BTRFS_IOC_SPACE_INFO _IOWR(BTRFS_IOCTL_MAGIC, 20, \ | |
| 465 | + struct btrfs_ioctl_space_args) | |
| 466 | +#define BTRFS_IOC_START_SYNC _IOR(BTRFS_IOCTL_MAGIC, 24, __u64) | |
| 467 | +#define BTRFS_IOC_WAIT_SYNC _IOW(BTRFS_IOCTL_MAGIC, 22, __u64) | |
| 468 | +#define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \ | |
| 469 | + struct btrfs_ioctl_vol_args_v2) | |
| 470 | +#define BTRFS_IOC_SUBVOL_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 24, \ | |
| 471 | + struct btrfs_ioctl_vol_args_v2) | |
| 472 | +#define BTRFS_IOC_SUBVOL_GETFLAGS _IOR(BTRFS_IOCTL_MAGIC, 25, __u64) | |
| 473 | +#define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64) | |
| 474 | +#define BTRFS_IOC_SCRUB _IOWR(BTRFS_IOCTL_MAGIC, 27, \ | |
| 475 | + struct btrfs_ioctl_scrub_args) | |
| 476 | +#define BTRFS_IOC_SCRUB_CANCEL _IO(BTRFS_IOCTL_MAGIC, 28) | |
| 477 | +#define BTRFS_IOC_SCRUB_PROGRESS _IOWR(BTRFS_IOCTL_MAGIC, 29, \ | |
| 478 | + struct btrfs_ioctl_scrub_args) | |
| 479 | +#define BTRFS_IOC_DEV_INFO _IOWR(BTRFS_IOCTL_MAGIC, 30, \ | |
| 480 | + struct btrfs_ioctl_dev_info_args) | |
| 481 | +#define BTRFS_IOC_FS_INFO _IOR(BTRFS_IOCTL_MAGIC, 31, \ | |
| 482 | + struct btrfs_ioctl_fs_info_args) | |
| 483 | +#define BTRFS_IOC_BALANCE_V2 _IOWR(BTRFS_IOCTL_MAGIC, 32, \ | |
| 484 | + struct btrfs_ioctl_balance_args) | |
| 485 | +#define BTRFS_IOC_BALANCE_CTL _IOW(BTRFS_IOCTL_MAGIC, 33, int) | |
| 486 | +#define BTRFS_IOC_BALANCE_PROGRESS _IOR(BTRFS_IOCTL_MAGIC, 34, \ | |
| 487 | + struct btrfs_ioctl_balance_args) | |
| 488 | +#define BTRFS_IOC_INO_PATHS _IOWR(BTRFS_IOCTL_MAGIC, 35, \ | |
| 489 | + struct btrfs_ioctl_ino_path_args) | |
| 490 | +#define BTRFS_IOC_LOGICAL_INO _IOWR(BTRFS_IOCTL_MAGIC, 36, \ | |
| 491 | + struct btrfs_ioctl_ino_path_args) | |
| 492 | +#define BTRFS_IOC_SET_RECEIVED_SUBVOL _IOWR(BTRFS_IOCTL_MAGIC, 37, \ | |
| 493 | + struct btrfs_ioctl_received_subvol_args) | |
| 494 | +#define BTRFS_IOC_SEND _IOW(BTRFS_IOCTL_MAGIC, 38, struct btrfs_ioctl_send_args) | |
| 495 | +#define BTRFS_IOC_DEVICES_READY _IOR(BTRFS_IOCTL_MAGIC, 39, \ | |
| 496 | + struct btrfs_ioctl_vol_args) | |
| 497 | +#define BTRFS_IOC_QUOTA_CTL _IOWR(BTRFS_IOCTL_MAGIC, 40, \ | |
| 498 | + struct btrfs_ioctl_quota_ctl_args) | |
| 499 | +#define BTRFS_IOC_QGROUP_ASSIGN _IOW(BTRFS_IOCTL_MAGIC, 41, \ | |
| 500 | + struct btrfs_ioctl_qgroup_assign_args) | |
| 501 | +#define BTRFS_IOC_QGROUP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 42, \ | |
| 502 | + struct btrfs_ioctl_qgroup_create_args) | |
| 503 | +#define BTRFS_IOC_QGROUP_LIMIT _IOR(BTRFS_IOCTL_MAGIC, 43, \ | |
| 504 | + struct btrfs_ioctl_qgroup_limit_args) | |
| 505 | +#define BTRFS_IOC_GET_FSLABEL _IOR(BTRFS_IOCTL_MAGIC, 49, \ | |
| 506 | + char[BTRFS_LABEL_SIZE]) | |
| 507 | +#define BTRFS_IOC_SET_FSLABEL _IOW(BTRFS_IOCTL_MAGIC, 50, \ | |
| 508 | + char[BTRFS_LABEL_SIZE]) | |
| 509 | +#define BTRFS_IOC_GET_DEV_STATS _IOWR(BTRFS_IOCTL_MAGIC, 52, \ | |
| 510 | + struct btrfs_ioctl_get_dev_stats) | |
| 511 | +#define BTRFS_IOC_DEV_REPLACE _IOWR(BTRFS_IOCTL_MAGIC, 53, \ | |
| 512 | + struct btrfs_ioctl_dev_replace_args) | |
| 513 | + | |
| 514 | +#endif /* _UAPI_LINUX_BTRFS_H */ | |
| @@ -44,6 +44,7 @@ enum { · 43 unmodified lines | ||
| 44 | 44 | CGW_SRC_IF, /* ifindex of source network interface */ |
| 45 | 45 | CGW_DST_IF, /* ifindex of destination network interface */ |
| 46 | 46 | CGW_FILTER, /* specify struct can_filter on source CAN device */ |
| 47 | + CGW_DELETED, /* number of deleted CAN frames (see max_hops param) */ | |
| 47 | 48 | __CGW_MAX |
| 48 | 49 | }; |
| 49 | 50 | |
| @@ -51,6 +52,7 @@ enum { · 1 unmodified line | ||
| 51 | 52 | |
| 52 | 53 | #define CGW_FLAGS_CAN_ECHO 0x01 |
| 53 | 54 | #define CGW_FLAGS_CAN_SRC_TSTAMP 0x02 |
| 55 | +#define CGW_FLAGS_CAN_IIF_TX_OK 0x04 | |
| 54 | 56 | |
| 55 | 57 | #define CGW_MOD_FUNCS 4 /* AND OR XOR SET */ |
| 56 | 58 | |
| @@ -908,5 +908,39 @@ struct mode_page_header { · 907 unmodified lines | ||
| 908 | 908 | __be16 desc_length; |
| 909 | 909 | }; |
| 910 | 910 | |
| 911 | +/* removable medium feature descriptor */ | |
| 912 | +struct rm_feature_desc { | |
| 913 | + __be16 feature_code; | |
| 914 | +#if defined(__BIG_ENDIAN_BITFIELD) | |
| 915 | + __u8 reserved1:2; | |
| 916 | + __u8 feature_version:4; | |
| 917 | + __u8 persistent:1; | |
| 918 | + __u8 curr:1; | |
| 919 | +#elif defined(__LITTLE_ENDIAN_BITFIELD) | |
| 920 | + __u8 curr:1; | |
| 921 | + __u8 persistent:1; | |
| 922 | + __u8 feature_version:4; | |
| 923 | + __u8 reserved1:2; | |
| 924 | +#endif | |
| 925 | + __u8 add_len; | |
| 926 | +#if defined(__BIG_ENDIAN_BITFIELD) | |
| 927 | + __u8 mech_type:3; | |
| 928 | + __u8 load:1; | |
| 929 | + __u8 eject:1; | |
| 930 | + __u8 pvnt_jmpr:1; | |
| 931 | + __u8 dbml:1; | |
| 932 | + __u8 lock:1; | |
| 933 | +#elif defined(__LITTLE_ENDIAN_BITFIELD) | |
| 934 | + __u8 lock:1; | |
| 935 | + __u8 dbml:1; | |
| 936 | + __u8 pvnt_jmpr:1; | |
| 937 | + __u8 eject:1; | |
| 938 | + __u8 load:1; | |
| 939 | + __u8 mech_type:3; | |
| 940 | +#endif | |
| 941 | + __u8 reserved2; | |
| 942 | + __u8 reserved3; | |
| 943 | + __u8 reserved4; | |
| 944 | +}; | |
| 911 | 945 | |
| 912 | 946 | #endif /* _UAPI_LINUX_CDROM_H */ |
| @@ -267,9 +267,9 @@ enum { · 266 unmodified lines | ||
| 267 | 267 | #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) |
| 268 | 268 | |
| 269 | 269 | #define DM_VERSION_MAJOR 4 |
| 270 | −#define DM_VERSION_MINOR 23 | |
| 270 | +#define DM_VERSION_MINOR 24 | |
| 271 | 271 | #define DM_VERSION_PATCHLEVEL 0 |
| 272 | −#define DM_VERSION_EXTRA "-ioctl (2012-07-25)" | |
| 272 | +#define DM_VERSION_EXTRA "-ioctl (2013-01-15)" | |
| 273 | 273 | |
| 274 | 274 | /* Status bits */ |
| 275 | 275 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ |
| @@ -336,4 +336,9 @@ enum { · 60 unmodified lines | ||
| 336 | 336 | */ |
| 337 | 337 | #define DM_SECURE_DATA_FLAG (1 << 15) /* In */ |
| 338 | 338 | |
| 339 | +/* | |
| 340 | + * If set, a message generated output data. | |
| 341 | + */ | |
| 342 | +#define DM_DATA_OUT_FLAG (1 << 16) /* Out */ | |
| 343 | + | |
| 339 | 344 | #endif /* _LINUX_DM_IOCTL_H */ |
| @@ -365,7 +365,17 @@ struct dvb_frontend_event { · 364 unmodified lines | ||
| 365 | 365 | #define DTV_INTERLEAVING 60 |
| 366 | 366 | #define DTV_LNA 61 |
| 367 | 367 | |
| 368 | −#define DTV_MAX_COMMAND DTV_LNA | |
| 368 | +/* Quality parameters */ | |
| 369 | +#define DTV_STAT_SIGNAL_STRENGTH 62 | |
| 370 | +#define DTV_STAT_CNR 63 | |
| 371 | +#define DTV_STAT_PRE_ERROR_BIT_COUNT 64 | |
| 372 | +#define DTV_STAT_PRE_TOTAL_BIT_COUNT 65 | |
| 373 | +#define DTV_STAT_POST_ERROR_BIT_COUNT 66 | |
| 374 | +#define DTV_STAT_POST_TOTAL_BIT_COUNT 67 | |
| 375 | +#define DTV_STAT_ERROR_BLOCK_COUNT 68 | |
| 376 | +#define DTV_STAT_TOTAL_BLOCK_COUNT 69 | |
| 377 | + | |
| 378 | +#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT | |
| 369 | 379 | |
| 370 | 380 | typedef enum fe_pilot { |
| 371 | 381 | PILOT_ON, |
| @@ -452,11 +462,78 @@ struct dtv_cmds_h { · 80 unmodified lines | ||
| 452 | 462 | __u32 reserved:30; /* Align */ |
| 453 | 463 | }; |
| 454 | 464 | |
| 465 | +/** | |
| 466 | + * Scale types for the quality parameters. | |
| 467 | + * @FE_SCALE_NOT_AVAILABLE: That QoS measure is not available. That | |
| 468 | + * could indicate a temporary or a permanent | |
| 469 | + * condition. | |
| 470 | + * @FE_SCALE_DECIBEL: The scale is measured in 0.0001 dB steps, typically | |
| 471 | + * used on signal measures. | |
| 472 | + * @FE_SCALE_RELATIVE: The scale is a relative percentual measure, | |
| 473 | + * ranging from 0 (0%) to 0xffff (100%). | |
| 474 | + * @FE_SCALE_COUNTER: The scale counts the occurrence of an event, like | |
| 475 | + * bit error, block error, lapsed time. | |
| 476 | + */ | |
| 477 | +enum fecap_scale_params { | |
| 478 | + FE_SCALE_NOT_AVAILABLE = 0, | |
| 479 | + FE_SCALE_DECIBEL, | |
| 480 | + FE_SCALE_RELATIVE, | |
| 481 | + FE_SCALE_COUNTER | |
| 482 | +}; | |
| 483 | + | |
| 484 | +/** | |
| 485 | + * struct dtv_stats - Used for reading a DTV status property | |
| 486 | + * | |
| 487 | + * @value: value of the measure. Should range from 0 to 0xffff; | |
| 488 | + * @scale: Filled with enum fecap_scale_params - the scale | |
| 489 | + * in usage for that parameter | |
| 490 | + * | |
| 491 | + * For most delivery systems, this will return a single value for each | |
| 492 | + * parameter. | |
| 493 | + * It should be noticed, however, that new OFDM delivery systems like | |
| 494 | + * ISDB can use different modulation types for each group of carriers. | |
| 495 | + * On such standards, up to 8 groups of statistics can be provided, one | |
| 496 | + * for each carrier group (called "layer" on ISDB). | |
| 497 | + * In order to be consistent with other delivery systems, the first | |
| 498 | + * value refers to the entire set of carriers ("global"). | |
| 499 | + * dtv_status:scale should use the value FE_SCALE_NOT_AVAILABLE when | |
| 500 | + * the value for the entire group of carriers or from one specific layer | |
| 501 | + * is not provided by the hardware. | |
| 502 | + * st.len should be filled with the latest filled status + 1. | |
| 503 | + * | |
| 504 | + * In other words, for ISDB, those values should be filled like: | |
| 505 | + * u.st.stat.svalue[0] = global statistics; | |
| 506 | + * u.st.stat.scale[0] = FE_SCALE_DECIBELS; | |
| 507 | + * u.st.stat.value[1] = layer A statistics; | |
| 508 | + * u.st.stat.scale[1] = FE_SCALE_NOT_AVAILABLE (if not available); | |
| 509 | + * u.st.stat.svalue[2] = layer B statistics; | |
| 510 | + * u.st.stat.scale[2] = FE_SCALE_DECIBELS; | |
| 511 | + * u.st.stat.svalue[3] = layer C statistics; | |
| 512 | + * u.st.stat.scale[3] = FE_SCALE_DECIBELS; | |
| 513 | + * u.st.len = 4; | |
| 514 | + */ | |
| 515 | +struct dtv_stats { | |
| 516 | + __u8 scale; /* enum fecap_scale_params type */ | |
| 517 | + union { | |
| 518 | + __u64 uvalue; /* for counters and relative scales */ | |
| 519 | + __s64 svalue; /* for 0.0001 dB measures */ | |
| 520 | + }; | |
| 521 | +} __attribute__ ((packed)); | |
| 522 | + | |
| 523 | + | |
| 524 | +#define MAX_DTV_STATS 4 | |
| 525 | + | |
| 526 | +struct dtv_fe_stats { | |
| 527 | + __u8 len; | |
| 528 | + struct dtv_stats stat[MAX_DTV_STATS]; | |
| 529 | +} __attribute__ ((packed)); | |
| 530 | + | |
| 455 | 531 | struct dtv_property { |
| 456 | 532 | __u32 cmd; |
| 457 | 533 | __u32 reserved[3]; |
| 458 | 534 | union { |
| 459 | 535 | __u32 data; |
| 536 | + struct dtv_fe_stats st; | |
| 460 | 537 | struct { |
| 461 | 538 | __u8 data[32]; |
| 462 | 539 | __u32 len; |
| @@ -24,6 +24,6 @@ · 23 unmodified lines | ||
| 24 | 24 | #define _DVBVERSION_H_ |
| 25 | 25 | |
| 26 | 26 | #define DVB_API_VERSION 5 |
| 27 | −#define DVB_API_VERSION_MINOR 9 | |
| 27 | +#define DVB_API_VERSION_MINOR 10 | |
| 28 | 28 | |
| 29 | 29 | #endif /*_DVBVERSION_H_*/ |
| @@ -49,14 +49,14 @@ typedef __s64 Elf64_Sxword; · 48 unmodified lines | ||
| 49 | 49 | * |
| 50 | 50 | * Specifications are available in: |
| 51 | 51 | * |
| 52 | − * - Sun microsystems: Linker and Libraries. | |
| 53 | − * Part No: 817-1984-17, September 2008. | |
| 54 | − * URL: http://docs.sun.com/app/docs/doc/817-1984 | |
| 52 | + * - Oracle: Linker and Libraries. | |
| 53 | + * Part No: 817–1984–19, August 2011. | |
| 54 | + * http://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf | |
| 55 | 55 | * |
| 56 | 56 | * - System V ABI AMD64 Architecture Processor Supplement |
| 57 | − * Draft Version 0.99., | |
| 58 | − * May 11, 2009. | |
| 59 | − * URL: http://www.x86-64.org/ | |
| 57 | + * Draft Version 0.99.4, | |
| 58 | + * January 13, 2010. | |
| 59 | + * http://www.cs.washington.edu/education/courses/cse351/12wi/supp-docs/abi.pdf | |
| 60 | 60 | */ |
| 61 | 61 | #define PN_XNUM 0xffff |
| 62 | 62 | |
| @@ -395,6 +395,8 @@ typedef struct elf64_shdr { · 332 unmodified lines | ||
| 395 | 395 | #define NT_ARM_TLS 0x401 /* ARM TLS register */ |
| 396 | 396 | #define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ |
| 397 | 397 | #define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */ |
| 398 | +#define NT_METAG_CBUF 0x500 /* Metag catch buffer registers */ | |
| 399 | +#define NT_METAG_RPIPE 0x501 /* Metag read pipeline state */ | |
| 398 | 400 | |
| 399 | 401 | |
| 400 | 402 | /* Note header in a PT_NOTE section */ |
| @@ -500,13 +500,26 @@ union ethtool_flow_union { · 499 unmodified lines | ||
| 500 | 500 | struct ethtool_ah_espip4_spec esp_ip4_spec; |
| 501 | 501 | struct ethtool_usrip4_spec usr_ip4_spec; |
| 502 | 502 | struct ethhdr ether_spec; |
| 503 | − __u8 hdata[60]; | |
| 503 | + __u8 hdata[52]; | |
| 504 | 504 | }; |
| 505 | 505 | |
| 506 | +/** | |
| 507 | + * struct ethtool_flow_ext - additional RX flow fields | |
| 508 | + * @h_dest: destination MAC address | |
| 509 | + * @vlan_etype: VLAN EtherType | |
| 510 | + * @vlan_tci: VLAN tag control information | |
| 511 | + * @data: user defined data | |
| 512 | + * | |
| 513 | + * Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT | |
| 514 | + * is set in &struct ethtool_rx_flow_spec @flow_type. | |
| 515 | + * @h_dest is valid if %FLOW_MAC_EXT is set. | |
| 516 | + */ | |
| 506 | 517 | struct ethtool_flow_ext { |
| 507 | − __be16 vlan_etype; | |
| 508 | − __be16 vlan_tci; | |
| 509 | − __be32 data[2]; | |
| 518 | + __u8 padding[2]; | |
| 519 | + unsigned char h_dest[ETH_ALEN]; | |
| 520 | + __be16 vlan_etype; | |
| 521 | + __be16 vlan_tci; | |
| 522 | + __be32 data[2]; | |
| 510 | 523 | }; |
| 511 | 524 | |
| 512 | 525 | /** |
| @@ -517,7 +530,8 @@ struct ethtool_flow_ext { · 4 unmodified lines | ||
| 517 | 530 | * @m_u: Masks for flow field bits to be matched |
| 518 | 531 | * @m_ext: Masks for additional field bits to be matched |
| 519 | 532 | * Note, all additional fields must be ignored unless @flow_type |
| 520 | − * includes the %FLOW_EXT flag. | |
| 533 | + * includes the %FLOW_EXT or %FLOW_MAC_EXT flag | |
| 534 | + * (see &struct ethtool_flow_ext description). | |
| 521 | 535 | * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC |
| 522 | 536 | * if packets should be discarded |
| 523 | 537 | * @location: Location of rule in the table. Locations must be |
| @@ -1027,6 +1041,7 @@ enum ethtool_sfeatures_retval_bits { · 503 unmodified lines | ||
| 1027 | 1041 | #define ETHER_FLOW 0x12 /* spec only (ether_spec) */ |
| 1028 | 1042 | /* Flag to enable additional fields in struct ethtool_rx_flow_spec */ |
| 1029 | 1043 | #define FLOW_EXT 0x80000000 |
| 1044 | +#define FLOW_MAC_EXT 0x40000000 | |
| 1030 | 1045 | |
| 1031 | 1046 | /* L3-L4 network traffic flow hash options */ |
| 1032 | 1047 | #define RXH_L2DA (1 << 1) |
| @@ -25,7 +25,6 @@ · 24 unmodified lines | ||
| 25 | 25 | #define EPOLL_CTL_ADD 1 |
| 26 | 26 | #define EPOLL_CTL_DEL 2 |
| 27 | 27 | #define EPOLL_CTL_MOD 3 |
| 28 | −#define EPOLL_CTL_DISABLE 4 | |
| 29 | 28 | |
| 30 | 29 | /* |
| 31 | 30 | * Request the handling of system wakeup events so as to prevent system suspends |
| @@ -127,7 +127,9 @@ struct sock_fprog { /* Required for SO_ATTACH_FILTER. */ · 126 unmodified lines | ||
| 127 | 127 | #define SKF_AD_RXHASH 32 |
| 128 | 128 | #define SKF_AD_CPU 36 |
| 129 | 129 | #define SKF_AD_ALU_XOR_X 40 |
| 130 | −#define SKF_AD_MAX 44 | |
| 130 | +#define SKF_AD_VLAN_TAG 44 | |
| 131 | +#define SKF_AD_VLAN_TAG_PRESENT 48 | |
| 132 | +#define SKF_AD_MAX 52 | |
| 131 | 133 | #define SKF_NET_OFF (-0x100000) |
| 132 | 134 | #define SKF_LL_OFF (-0x200000) |
| 133 | 135 | |
| @@ -86,6 +86,9 @@ struct inodes_stat_t { · 85 unmodified lines | ||
| 86 | 86 | #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ |
| 87 | 87 | #define MS_I_VERSION (1<<23) /* Update inode I_version field */ |
| 88 | 88 | #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ |
| 89 | + | |
| 90 | +/* These sb flags are internal to the kernel */ | |
| 91 | +#define MS_SNAP_STABLE (1<<27) /* Snapshot pages during writeback, if needed */ | |
| 89 | 92 | #define MS_NOSEC (1<<28) |
| 90 | 93 | #define MS_BORN (1<<29) |
| 91 | 94 | #define MS_ACTIVE (1<<30) |
| @@ -1,9 +1,35 @@ | ||
| 1 | 1 | /* |
| 2 | − FUSE: Filesystem in Userspace | |
| 2 | + This file defines the kernel interface of FUSE | |
| 3 | 3 | Copyright (C) 2001-2008 Miklos Szeredi <miklos@szeredi.hu> |
| 4 | 4 | |
| 5 | 5 | This program can be distributed under the terms of the GNU GPL. |
| 6 | 6 | See the file COPYING. |
| 7 | + | |
| 8 | + This -- and only this -- header file may also be distributed under | |
| 9 | + the terms of the BSD Licence as follows: | |
| 10 | + | |
| 11 | + Copyright (C) 2001-2007 Miklos Szeredi. All rights reserved. | |
| 12 | + | |
| 13 | + Redistribution and use in source and binary forms, with or without | |
| 14 | + modification, are permitted provided that the following conditions | |
| 15 | + are met: | |
| 16 | + 1. Redistributions of source code must retain the above copyright | |
| 17 | + notice, this list of conditions and the following disclaimer. | |
| 18 | + 2. Redistributions in binary form must reproduce the above copyright | |
| 19 | + notice, this list of conditions and the following disclaimer in the | |
| 20 | + documentation and/or other materials provided with the distribution. | |
| 21 | + | |
| 22 | + THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |
| 23 | + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
| 24 | + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
| 25 | + ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE | |
| 26 | + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
| 27 | + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
| 28 | + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
| 29 | + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
| 30 | + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
| 31 | + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
| 32 | + SUCH DAMAGE. | |
| 7 | 33 | */ |
| 8 | 34 | |
| 9 | 35 | /* |
| @@ -60,12 +86,25 @@ · 50 unmodified lines | ||
| 60 | 86 | * |
| 61 | 87 | * 7.20 |
| 62 | 88 | * - add FUSE_AUTO_INVAL_DATA |
| 89 | + * | |
| 90 | + * 7.21 | |
| 91 | + * - add FUSE_READDIRPLUS | |
| 92 | + * - send the requested events in POLL request | |
| 63 | 93 | */ |
| 64 | 94 | |
| 65 | 95 | #ifndef _LINUX_FUSE_H |
| 66 | 96 | #define _LINUX_FUSE_H |
| 67 | 97 | |
| 98 | +#ifdef __linux__ | |
| 68 | 99 | #include <linux/types.h> |
| 100 | +#else | |
| 101 | +#include <stdint.h> | |
| 102 | +#define __u64 uint64_t | |
| 103 | +#define __s64 int64_t | |
| 104 | +#define __u32 uint32_t | |
| 105 | +#define __s32 int32_t | |
| 106 | +#define __u16 uint16_t | |
| 107 | +#endif | |
| 69 | 108 | |
| 70 | 109 | /* |
| 71 | 110 | * Version negotiation: |
| @@ -91,7 +130,7 @@ · 19 unmodified lines | ||
| 91 | 130 | #define FUSE_KERNEL_VERSION 7 |
| 92 | 131 | |
| 93 | 132 | /** Minor version number of this interface */ |
| 94 | −#define FUSE_KERNEL_MINOR_VERSION 20 | |
| 133 | +#define FUSE_KERNEL_MINOR_VERSION 21 | |
| 95 | 134 | |
| 96 | 135 | /** The node ID of the root inode */ |
| 97 | 136 | #define FUSE_ROOT_ID 1 |
| @@ -179,6 +218,8 @@ struct fuse_file_lock { · 81 unmodified lines | ||
| 179 | 218 | * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks |
| 180 | 219 | * FUSE_HAS_IOCTL_DIR: kernel supports ioctl on directories |
| 181 | 220 | * FUSE_AUTO_INVAL_DATA: automatically invalidate cached pages |
| 221 | + * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one) | |
| 222 | + * FUSE_READDIRPLUS_AUTO: adaptive readdirplus | |
| 182 | 223 | */ |
| 183 | 224 | #define FUSE_ASYNC_READ (1 << 0) |
| 184 | 225 | #define FUSE_POSIX_LOCKS (1 << 1) |
| @@ -193,6 +234,8 @@ struct fuse_file_lock { · 8 unmodified lines | ||
| 193 | 234 | #define FUSE_FLOCK_LOCKS (1 << 10) |
| 194 | 235 | #define FUSE_HAS_IOCTL_DIR (1 << 11) |
| 195 | 236 | #define FUSE_AUTO_INVAL_DATA (1 << 12) |
| 237 | +#define FUSE_DO_READDIRPLUS (1 << 13) | |
| 238 | +#define FUSE_READDIRPLUS_AUTO (1 << 14) | |
| 196 | 239 | |
| 197 | 240 | /** |
| 198 | 241 | * CUSE INIT request/reply flags |
| @@ -299,6 +342,7 @@ enum fuse_opcode { · 100 unmodified lines | ||
| 299 | 342 | FUSE_NOTIFY_REPLY = 41, |
| 300 | 343 | FUSE_BATCH_FORGET = 42, |
| 301 | 344 | FUSE_FALLOCATE = 43, |
| 345 | + FUSE_READDIRPLUS = 44, | |
| 302 | 346 | |
| 303 | 347 | /* CUSE specific operations */ |
| 304 | 348 | CUSE_INIT = 4096, |
| @@ -580,7 +624,7 @@ struct fuse_poll_in { · 275 unmodified lines | ||
| 580 | 624 | __u64 fh; |
| 581 | 625 | __u64 kh; |
| 582 | 626 | __u32 flags; |
| 583 | − __u32 padding; | |
| 627 | + __u32 events; | |
| 584 | 628 | }; |
| 585 | 629 | |
| 586 | 630 | struct fuse_poll_out { |
| @@ -630,6 +674,16 @@ struct fuse_dirent { · 43 unmodified lines | ||
| 630 | 674 | #define FUSE_DIRENT_SIZE(d) \ |
| 631 | 675 | FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen) |
| 632 | 676 | |
| 677 | +struct fuse_direntplus { | |
| 678 | + struct fuse_entry_out entry_out; | |
| 679 | + struct fuse_dirent dirent; | |
| 680 | +}; | |
| 681 | + | |
| 682 | +#define FUSE_NAME_OFFSET_DIRENTPLUS \ | |
| 683 | + offsetof(struct fuse_direntplus, dirent.name) | |
| 684 | +#define FUSE_DIRENTPLUS_SIZE(d) \ | |
| 685 | + FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen) | |
| 686 | + | |
| 633 | 687 | struct fuse_notify_inval_inode_out { |
| 634 | 688 | __u64 ino; |
| 635 | 689 | __s64 off; |
| @@ -1 +1,2 @@ | ||
| 1 | 1 | # UAPI Header export list |
| 2 | +header-y += ioctl.h | |
| @@ -0,0 +1,84 @@ | ||
| 1 | +#ifndef __HDLC_IOCTL_H__ | |
| 2 | +#define __HDLC_IOCTL_H__ | |
| 3 | + | |
| 4 | + | |
| 5 | +#define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */ | |
| 6 | + | |
| 7 | +#define CLOCK_DEFAULT 0 /* Default setting */ | |
| 8 | +#define CLOCK_EXT 1 /* External TX and RX clock - DTE */ | |
| 9 | +#define CLOCK_INT 2 /* Internal TX and RX clock - DCE */ | |
| 10 | +#define CLOCK_TXINT 3 /* Internal TX and external RX clock */ | |
| 11 | +#define CLOCK_TXFROMRX 4 /* TX clock derived from external RX clock */ | |
| 12 | + | |
| 13 | + | |
| 14 | +#define ENCODING_DEFAULT 0 /* Default setting */ | |
| 15 | +#define ENCODING_NRZ 1 | |
| 16 | +#define ENCODING_NRZI 2 | |
| 17 | +#define ENCODING_FM_MARK 3 | |
| 18 | +#define ENCODING_FM_SPACE 4 | |
| 19 | +#define ENCODING_MANCHESTER 5 | |
| 20 | + | |
| 21 | + | |
| 22 | +#define PARITY_DEFAULT 0 /* Default setting */ | |
| 23 | +#define PARITY_NONE 1 /* No parity */ | |
| 24 | +#define PARITY_CRC16_PR0 2 /* CRC16, initial value 0x0000 */ | |
| 25 | +#define PARITY_CRC16_PR1 3 /* CRC16, initial value 0xFFFF */ | |
| 26 | +#define PARITY_CRC16_PR0_CCITT 4 /* CRC16, initial 0x0000, ITU-T version */ | |
| 27 | +#define PARITY_CRC16_PR1_CCITT 5 /* CRC16, initial 0xFFFF, ITU-T version */ | |
| 28 | +#define PARITY_CRC32_PR0_CCITT 6 /* CRC32, initial value 0x00000000 */ | |
| 29 | +#define PARITY_CRC32_PR1_CCITT 7 /* CRC32, initial value 0xFFFFFFFF */ | |
| 30 | + | |
| 31 | +#define LMI_DEFAULT 0 /* Default setting */ | |
| 32 | +#define LMI_NONE 1 /* No LMI, all PVCs are static */ | |
| 33 | +#define LMI_ANSI 2 /* ANSI Annex D */ | |
| 34 | +#define LMI_CCITT 3 /* ITU-T Annex A */ | |
| 35 | +#define LMI_CISCO 4 /* The "original" LMI, aka Gang of Four */ | |
| 36 | + | |
| 37 | +#ifndef __ASSEMBLY__ | |
| 38 | + | |
| 39 | +typedef struct { | |
| 40 | + unsigned int clock_rate; /* bits per second */ | |
| 41 | + unsigned int clock_type; /* internal, external, TX-internal etc. */ | |
| 42 | + unsigned short loopback; | |
| 43 | +} sync_serial_settings; /* V.35, V.24, X.21 */ | |
| 44 | + | |
| 45 | +typedef struct { | |
| 46 | + unsigned int clock_rate; /* bits per second */ | |
| 47 | + unsigned int clock_type; /* internal, external, TX-internal etc. */ | |
| 48 | + unsigned short loopback; | |
| 49 | + unsigned int slot_map; | |
| 50 | +} te1_settings; /* T1, E1 */ | |
| 51 | + | |
| 52 | +typedef struct { | |
| 53 | + unsigned short encoding; | |
| 54 | + unsigned short parity; | |
| 55 | +} raw_hdlc_proto; | |
| 56 | + | |
| 57 | +typedef struct { | |
| 58 | + unsigned int t391; | |
| 59 | + unsigned int t392; | |
| 60 | + unsigned int n391; | |
| 61 | + unsigned int n392; | |
| 62 | + unsigned int n393; | |
| 63 | + unsigned short lmi; | |
| 64 | + unsigned short dce; /* 1 for DCE (network side) operation */ | |
| 65 | +} fr_proto; | |
| 66 | + | |
| 67 | +typedef struct { | |
| 68 | + unsigned int dlci; | |
| 69 | +} fr_proto_pvc; /* for creating/deleting FR PVCs */ | |
| 70 | + | |
| 71 | +typedef struct { | |
| 72 | + unsigned int dlci; | |
| 73 | + char master[IFNAMSIZ]; /* Name of master FRAD device */ | |
| 74 | +}fr_proto_pvc_info; /* for returning PVC information only */ | |
| 75 | + | |
| 76 | +typedef struct { | |
| 77 | + unsigned int interval; | |
| 78 | + unsigned int timeout; | |
| 79 | +} cisco_proto; | |
| 80 | + | |
| 81 | +/* PPP doesn't need any info now - supply length = 0 to ioctl */ | |
| 82 | + | |
| 83 | +#endif /* __ASSEMBLY__ */ | |
| 84 | +#endif /* __HDLC_IOCTL_H__ */ | |
| @@ -0,0 +1,30 @@ | ||
| 1 | +#ifndef _UAPI_LINUX_HW_BREAKPOINT_H | |
| 2 | +#define _UAPI_LINUX_HW_BREAKPOINT_H | |
| 3 | + | |
| 4 | +enum { | |
| 5 | + HW_BREAKPOINT_LEN_1 = 1, | |
| 6 | + HW_BREAKPOINT_LEN_2 = 2, | |
| 7 | + HW_BREAKPOINT_LEN_4 = 4, | |
| 8 | + HW_BREAKPOINT_LEN_8 = 8, | |
| 9 | +}; | |
| 10 | + | |
| 11 | +enum { | |
| 12 | + HW_BREAKPOINT_EMPTY = 0, | |
| 13 | + HW_BREAKPOINT_R = 1, | |
| 14 | + HW_BREAKPOINT_W = 2, | |
| 15 | + HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W, | |
| 16 | + HW_BREAKPOINT_X = 4, | |
| 17 | + HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, | |
| 18 | +}; | |
| 19 | + | |
| 20 | +enum bp_type_idx { | |
| 21 | + TYPE_INST = 0, | |
| 22 | +#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS | |
| 23 | + TYPE_DATA = 0, | |
| 24 | +#else | |
| 25 | + TYPE_DATA = 1, | |
| 26 | +#endif | |
| 27 | + TYPE_MAX | |
| 28 | +}; | |
| 29 | + | |
| 30 | +#endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ | |
| @@ -97,5 +97,100 @@ struct __fdb_entry { · 96 unmodified lines | ||
| 97 | 97 | __u16 unused; |
| 98 | 98 | }; |
| 99 | 99 | |
| 100 | +/* Bridge Flags */ | |
| 101 | +#define BRIDGE_FLAGS_MASTER 1 /* Bridge command to/from master */ | |
| 102 | +#define BRIDGE_FLAGS_SELF 2 /* Bridge command to/from lowerdev */ | |
| 103 | + | |
| 104 | +#define BRIDGE_MODE_VEB 0 /* Default loopback mode */ | |
| 105 | +#define BRIDGE_MODE_VEPA 1 /* 802.1Qbg defined VEPA mode */ | |
| 106 | + | |
| 107 | +/* Bridge management nested attributes | |
| 108 | + * [IFLA_AF_SPEC] = { | |
| 109 | + * [IFLA_BRIDGE_FLAGS] | |
| 110 | + * [IFLA_BRIDGE_MODE] | |
| 111 | + * [IFLA_BRIDGE_VLAN_INFO] | |
| 112 | + * } | |
| 113 | + */ | |
| 114 | +enum { | |
| 115 | + IFLA_BRIDGE_FLAGS, | |
| 116 | + IFLA_BRIDGE_MODE, | |
| 117 | + IFLA_BRIDGE_VLAN_INFO, | |
| 118 | + __IFLA_BRIDGE_MAX, | |
| 119 | +}; | |
| 120 | +#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) | |
| 121 | + | |
| 122 | +#define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */ | |
| 123 | +#define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */ | |
| 124 | +#define BRIDGE_VLAN_INFO_UNTAGGED (1<<2) /* VLAN egresses untagged */ | |
| 125 | + | |
| 126 | +struct bridge_vlan_info { | |
| 127 | + __u16 flags; | |
| 128 | + __u16 vid; | |
| 129 | +}; | |
| 130 | + | |
| 131 | +/* Bridge multicast database attributes | |
| 132 | + * [MDBA_MDB] = { | |
| 133 | + * [MDBA_MDB_ENTRY] = { | |
| 134 | + * [MDBA_MDB_ENTRY_INFO] | |
| 135 | + * } | |
| 136 | + * } | |
| 137 | + * [MDBA_ROUTER] = { | |
| 138 | + * [MDBA_ROUTER_PORT] | |
| 139 | + * } | |
| 140 | + */ | |
| 141 | +enum { | |
| 142 | + MDBA_UNSPEC, | |
| 143 | + MDBA_MDB, | |
| 144 | + MDBA_ROUTER, | |
| 145 | + __MDBA_MAX, | |
| 146 | +}; | |
| 147 | +#define MDBA_MAX (__MDBA_MAX - 1) | |
| 148 | + | |
| 149 | +enum { | |
| 150 | + MDBA_MDB_UNSPEC, | |
| 151 | + MDBA_MDB_ENTRY, | |
| 152 | + __MDBA_MDB_MAX, | |
| 153 | +}; | |
| 154 | +#define MDBA_MDB_MAX (__MDBA_MDB_MAX - 1) | |
| 155 | + | |
| 156 | +enum { | |
| 157 | + MDBA_MDB_ENTRY_UNSPEC, | |
| 158 | + MDBA_MDB_ENTRY_INFO, | |
| 159 | + __MDBA_MDB_ENTRY_MAX, | |
| 160 | +}; | |
| 161 | +#define MDBA_MDB_ENTRY_MAX (__MDBA_MDB_ENTRY_MAX - 1) | |
| 162 | + | |
| 163 | +enum { | |
| 164 | + MDBA_ROUTER_UNSPEC, | |
| 165 | + MDBA_ROUTER_PORT, | |
| 166 | + __MDBA_ROUTER_MAX, | |
| 167 | +}; | |
| 168 | +#define MDBA_ROUTER_MAX (__MDBA_ROUTER_MAX - 1) | |
| 169 | + | |
| 170 | +struct br_port_msg { | |
| 171 | + __u8 family; | |
| 172 | + __u32 ifindex; | |
| 173 | +}; | |
| 174 | + | |
| 175 | +struct br_mdb_entry { | |
| 176 | + __u32 ifindex; | |
| 177 | +#define MDB_TEMPORARY 0 | |
| 178 | +#define MDB_PERMANENT 1 | |
| 179 | + __u8 state; | |
| 180 | + struct { | |
| 181 | + union { | |
| 182 | + __be32 ip4; | |
| 183 | + struct in6_addr ip6; | |
| 184 | + } u; | |
| 185 | + __be16 proto; | |
| 186 | + } addr; | |
| 187 | +}; | |
| 188 | + | |
| 189 | +enum { | |
| 190 | + MDBA_SET_ENTRY_UNSPEC, | |
| 191 | + MDBA_SET_ENTRY, | |
| 192 | + __MDBA_SET_ENTRY_MAX, | |
| 193 | +}; | |
| 194 | +#define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1) | |
| 100 | 195 | |
| 101 | 196 | #endif /* _UAPI_LINUX_IF_BRIDGE_H */ |
| @@ -48,6 +48,7 @@ · 47 unmodified lines | ||
| 48 | 48 | #define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 49 | 49 | #define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ |
| 50 | 50 | #define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ |
| 51 | +#define ETH_P_BATMAN 0x4305 /* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */ | |
| 51 | 52 | #define ETH_P_DEC 0x6000 /* DEC Assigned proto */ |
| 52 | 53 | #define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ |
| 53 | 54 | #define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ |
| @@ -82,6 +83,7 @@ · 28 unmodified lines | ||
| 82 | 83 | #define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */ |
| 83 | 84 | #define ETH_P_TIPC 0x88CA /* TIPC */ |
| 84 | 85 | #define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */ |
| 86 | +#define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */ | |
| 85 | 87 | #define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */ |
| 86 | 88 | #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ |
| 87 | 89 | #define ETH_P_TDLS 0x890D /* TDLS */ |
| @@ -142,6 +142,7 @@ enum { · 141 unmodified lines | ||
| 142 | 142 | #define IFLA_PROMISCUITY IFLA_PROMISCUITY |
| 143 | 143 | IFLA_NUM_TX_QUEUES, |
| 144 | 144 | IFLA_NUM_RX_QUEUES, |
| 145 | + IFLA_CARRIER, | |
| 145 | 146 | __IFLA_MAX |
| 146 | 147 | }; |
| 147 | 148 | |
| @@ -205,6 +206,24 @@ enum { · 57 unmodified lines | ||
| 205 | 206 | |
| 206 | 207 | #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) |
| 207 | 208 | |
| 209 | +enum { | |
| 210 | + BRIDGE_MODE_UNSPEC, | |
| 211 | + BRIDGE_MODE_HAIRPIN, | |
| 212 | +}; | |
| 213 | + | |
| 214 | +enum { | |
| 215 | + IFLA_BRPORT_UNSPEC, | |
| 216 | + IFLA_BRPORT_STATE, /* Spanning tree state */ | |
| 217 | + IFLA_BRPORT_PRIORITY, /* " priority */ | |
| 218 | + IFLA_BRPORT_COST, /* " cost */ | |
| 219 | + IFLA_BRPORT_MODE, /* mode (hairpin) */ | |
| 220 | + IFLA_BRPORT_GUARD, /* bpdu guard */ | |
| 221 | + IFLA_BRPORT_PROTECT, /* root port protection */ | |
| 222 | + IFLA_BRPORT_FAST_LEAVE, /* multicast fast leave */ | |
| 223 | + __IFLA_BRPORT_MAX | |
| 224 | +}; | |
| 225 | +#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | |
| 226 | + | |
| 208 | 227 | struct ifla_cacheinfo { |
| 209 | 228 | __u32 max_reasm_len; |
| 210 | 229 | __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ |
| @@ -285,6 +304,10 @@ enum { · 74 unmodified lines | ||
| 285 | 304 | IFLA_VXLAN_AGEING, |
| 286 | 305 | IFLA_VXLAN_LIMIT, |
| 287 | 306 | IFLA_VXLAN_PORT_RANGE, |
| 307 | + IFLA_VXLAN_PROXY, | |
| 308 | + IFLA_VXLAN_RSC, | |
| 309 | + IFLA_VXLAN_L2MISS, | |
| 310 | + IFLA_VXLAN_L3MISS, | |
| 288 | 311 | __IFLA_VXLAN_MAX |
| 289 | 312 | }; |
| 290 | 313 | #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) |
| @@ -50,6 +50,7 @@ struct sockaddr_ll { · 49 unmodified lines | ||
| 50 | 50 | #define PACKET_TX_TIMESTAMP 16 |
| 51 | 51 | #define PACKET_TIMESTAMP 17 |
| 52 | 52 | #define PACKET_FANOUT 18 |
| 53 | +#define PACKET_TX_HAS_OFF 19 | |
| 53 | 54 | |
| 54 | 55 | #define PACKET_FANOUT_HASH 0 |
| 55 | 56 | #define PACKET_FANOUT_LB 1 |
| @@ -31,9 +31,11 @@ · 30 unmodified lines | ||
| 31 | 31 | #define TUN_FASYNC 0x0010 |
| 32 | 32 | #define TUN_NOCHECKSUM 0x0020 |
| 33 | 33 | #define TUN_NO_PI 0x0040 |
| 34 | +/* This flag has no real effect */ | |
| 34 | 35 | #define TUN_ONE_QUEUE 0x0080 |
| 35 | 36 | #define TUN_PERSIST 0x0100 |
| 36 | 37 | #define TUN_VNET_HDR 0x0200 |
| 38 | +#define TUN_TAP_MQ 0x0400 | |
| 37 | 39 | |
| 38 | 40 | /* Ioctl defines */ |
| 39 | 41 | #define TUNSETNOCSUM _IOW('T', 200, int) |
| @@ -53,14 +55,19 @@ · 13 unmodified lines | ||
| 53 | 55 | #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog) |
| 54 | 56 | #define TUNGETVNETHDRSZ _IOR('T', 215, int) |
| 55 | 57 | #define TUNSETVNETHDRSZ _IOW('T', 216, int) |
| 58 | +#define TUNSETQUEUE _IOW('T', 217, int) | |
| 56 | 59 | |
| 57 | 60 | /* TUNSETIFF ifr flags */ |
| 58 | 61 | #define IFF_TUN 0x0001 |
| 59 | 62 | #define IFF_TAP 0x0002 |
| 60 | 63 | #define IFF_NO_PI 0x1000 |
| 64 | +/* This flag has no real effect */ | |
| 61 | 65 | #define IFF_ONE_QUEUE 0x2000 |
| 62 | 66 | #define IFF_VNET_HDR 0x4000 |
| 63 | 67 | #define IFF_TUN_EXCL 0x8000 |
| 68 | +#define IFF_MULTI_QUEUE 0x0100 | |
| 69 | +#define IFF_ATTACH_QUEUE 0x0200 | |
| 70 | +#define IFF_DETACH_QUEUE 0x0400 | |
| 64 | 71 | |
| 65 | 72 | /* Features for GSO (TUNSETOFFLOAD). */ |
| 66 | 73 | #define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */ |
| @@ -37,6 +37,26 @@ struct ip_tunnel_parm { · 36 unmodified lines | ||
| 37 | 37 | struct iphdr iph; |
| 38 | 38 | }; |
| 39 | 39 | |
| 40 | +enum { | |
| 41 | + IFLA_IPTUN_UNSPEC, | |
| 42 | + IFLA_IPTUN_LINK, | |
| 43 | + IFLA_IPTUN_LOCAL, | |
| 44 | + IFLA_IPTUN_REMOTE, | |
| 45 | + IFLA_IPTUN_TTL, | |
| 46 | + IFLA_IPTUN_TOS, | |
| 47 | + IFLA_IPTUN_ENCAP_LIMIT, | |
| 48 | + IFLA_IPTUN_FLOWINFO, | |
| 49 | + IFLA_IPTUN_FLAGS, | |
| 50 | + IFLA_IPTUN_PROTO, | |
| 51 | + IFLA_IPTUN_PMTUDISC, | |
| 52 | + IFLA_IPTUN_6RD_PREFIX, | |
| 53 | + IFLA_IPTUN_6RD_RELAY_PREFIX, | |
| 54 | + IFLA_IPTUN_6RD_PREFIXLEN, | |
| 55 | + IFLA_IPTUN_6RD_RELAY_PREFIXLEN, | |
| 56 | + __IFLA_IPTUN_MAX, | |
| 57 | +}; | |
| 58 | +#define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) | |
| 59 | + | |
| 40 | 60 | /* SIT-mode i_flags */ |
| 41 | 61 | #define SIT_ISATAP 0x0001 |
| 42 | 62 | |
| @@ -34,6 +34,7 @@ enum vlan_flags { · 33 unmodified lines | ||
| 34 | 34 | VLAN_FLAG_REORDER_HDR = 0x1, |
| 35 | 35 | VLAN_FLAG_GVRP = 0x2, |
| 36 | 36 | VLAN_FLAG_LOOSE_BINDING = 0x4, |
| 37 | + VLAN_FLAG_MVRP = 0x8, | |
| 37 | 38 | }; |
| 38 | 39 | |
| 39 | 40 | enum vlan_name_types { |
| @@ -38,11 +38,6 @@ struct in6_addr { · 37 unmodified lines | ||
| 38 | 38 | #define s6_addr32 in6_u.u6_addr32 |
| 39 | 39 | }; |
| 40 | 40 | |
| 41 | −/* IPv6 Wildcard Address (::) and Loopback Address (::1) defined in RFC2553 | |
| 42 | − * NOTE: Be aware the IN6ADDR_* constants and in6addr_* externals are defined | |
| 43 | − * in network byte order, not in host byte order as are the IPv4 equivalents | |
| 44 | − */ | |
| 45 | − | |
| 46 | 41 | struct sockaddr_in6 { |
| 47 | 42 | unsigned short int sin6_family; /* AF_INET6 */ |
| 48 | 43 | __be16 sin6_port; /* Transport layer port # */ |
| @@ -240,6 +235,7 @@ struct in6_flowlabel_req { · 191 unmodified lines | ||
| 240 | 235 | * |
| 241 | 236 | * IP6T_SO_GET_REVISION_MATCH 68 |
| 242 | 237 | * IP6T_SO_GET_REVISION_TARGET 69 |
| 238 | + * IP6T_SO_ORIGINAL_DST 80 | |
| 243 | 239 | */ |
| 244 | 240 | |
| 245 | 241 | /* RFC5014: Source address selection */ |
| @@ -263,17 +259,10 @@ struct in6_flowlabel_req { · 17 unmodified lines | ||
| 263 | 259 | |
| 264 | 260 | /* |
| 265 | 261 | * Multicast Routing: |
| 266 | − * see include/linux/mroute6.h. | |
| 262 | + * see include/uapi/linux/mroute6.h. | |
| 267 | 263 | * |
| 268 | − * MRT6_INIT 200 | |
| 269 | − * MRT6_DONE 201 | |
| 270 | − * MRT6_ADD_MIF 202 | |
| 271 | − * MRT6_DEL_MIF 203 | |
| 272 | − * MRT6_ADD_MFC 204 | |
| 273 | − * MRT6_DEL_MFC 205 | |
| 274 | − * MRT6_VERSION 206 | |
| 275 | − * MRT6_ASSERT 207 | |
| 276 | − * MRT6_PIM 208 | |
| 277 | − * (reserved) 209 | |
| 264 | + * MRT6_BASE 200 | |
| 265 | + * ... | |
| 266 | + * MRT6_MAX | |
| 278 | 267 | */ |
| 279 | 268 | #endif /* _UAPI_LINUX_IN6_H */ |
| @@ -109,9 +109,10 @@ enum { · 108 unmodified lines | ||
| 109 | 109 | INET_DIAG_TOS, |
| 110 | 110 | INET_DIAG_TCLASS, |
| 111 | 111 | INET_DIAG_SKMEMINFO, |
| 112 | + INET_DIAG_SHUTDOWN, | |
| 112 | 113 | }; |
| 113 | 114 | |
| 114 | −#define INET_DIAG_MAX INET_DIAG_SKMEMINFO | |
| 115 | +#define INET_DIAG_MAX INET_DIAG_SHUTDOWN | |
| 115 | 116 | |
| 116 | 117 | |
| 117 | 118 | /* INET_DIAG_MEM */ |
| @@ -856,6 +856,7 @@ struct input_keymap_entry { · 855 unmodified lines | ||
| 856 | 856 | #define MSC_GESTURE 0x02 |
| 857 | 857 | #define MSC_RAW 0x03 |
| 858 | 858 | #define MSC_SCAN 0x04 |
| 859 | +#define MSC_TIMESTAMP 0x05 | |
| 859 | 860 | #define MSC_MAX 0x07 |
| 860 | 861 | #define MSC_CNT (MSC_MAX+1) |
| 861 | 862 | |
| @@ -59,15 +59,7 @@ · 58 unmodified lines | ||
| 59 | 59 | * if it becomes full and it is queried once a second to see if |
| 60 | 60 | * anything is in it. Incoming commands to the driver will get |
| 61 | 61 | * delivered as commands. |
| 62 | − * | |
| 63 | − * This driver provides two main interfaces: one for in-kernel | |
| 64 | − * applications and another for userland applications. The | |
| 65 | − * capabilities are basically the same for both interface, although | |
| 66 | − * the interfaces are somewhat different. The stuff in the | |
| 67 | − * #ifdef __KERNEL__ below is the in-kernel interface. The userland | |
| 68 | − * interface is defined later in the file. */ | |
| 69 | − | |
| 70 | − | |
| 62 | + */ | |
| 71 | 63 | |
| 72 | 64 | /* |
| 73 | 65 | * This is an overlay for all the address types, so it's easy to |
| @@ -63,6 +63,8 @@ struct ipv6_opt_hdr { · 62 unmodified lines | ||
| 63 | 63 | #define ipv6_destopt_hdr ipv6_opt_hdr |
| 64 | 64 | #define ipv6_hopopt_hdr ipv6_opt_hdr |
| 65 | 65 | |
| 66 | +/* Router Alert option values (RFC2711) */ | |
| 67 | +#define IPV6_OPT_ROUTERALERT_MLD 0x0000 /* MLD(RFC2710) */ | |
| 66 | 68 | |
| 67 | 69 | /* |
| 68 | 70 | * routing header type 0 (used in cmsghdr struct) |
| @@ -157,6 +159,7 @@ enum { · 88 unmodified lines | ||
| 157 | 159 | DEVCONF_DISABLE_IPV6, |
| 158 | 160 | DEVCONF_ACCEPT_DAD, |
| 159 | 161 | DEVCONF_FORCE_TLLAO, |
| 162 | + DEVCONF_NDISC_NOTIFY, | |
| 160 | 163 | DEVCONF_MAX |
| 161 | 164 | }; |
| 162 | 165 | |
| @@ -55,4 +55,7 @@ struct in6_rtmsg { · 54 unmodified lines | ||
| 55 | 55 | #define RTMSG_NEWROUTE 0x21 |
| 56 | 56 | #define RTMSG_DELROUTE 0x22 |
| 57 | 57 | |
| 58 | +#define IP6_RT_PRIO_USER 1024 | |
| 59 | +#define IP6_RT_PRIO_ADDRCONF 256 | |
| 60 | + | |
| 58 | 61 | #endif /* _UAPI_LINUX_IPV6_ROUTE_H */ |
| @@ -115,6 +115,7 @@ struct kvm_irq_level { · 114 unmodified lines | ||
| 115 | 115 | * ACPI gsi notion of irq. |
| 116 | 116 | * For IA-64 (APIC model) IOAPIC0: irq 0-23; IOAPIC1: irq 24-47.. |
| 117 | 117 | * For X86 (standard AT mode) PIC0/1: irq 0-15. IOAPIC0: 0-23.. |
| 118 | + * For ARM: See Documentation/virtual/kvm/api.txt | |
| 118 | 119 | */ |
| 119 | 120 | union { |
| 120 | 121 | __u32 irq; |
| @@ -167,10 +168,17 @@ struct kvm_pit_config { · 46 unmodified lines | ||
| 167 | 168 | #define KVM_EXIT_OSI 18 |
| 168 | 169 | #define KVM_EXIT_PAPR_HCALL 19 |
| 169 | 170 | #define KVM_EXIT_S390_UCONTROL 20 |
| 171 | +#define KVM_EXIT_WATCHDOG 21 | |
| 172 | +#define KVM_EXIT_S390_TSCH 22 | |
| 173 | +#define KVM_EXIT_EPR 23 | |
| 170 | 174 | |
| 171 | 175 | /* For KVM_EXIT_INTERNAL_ERROR */ |
| 172 | −#define KVM_INTERNAL_ERROR_EMULATION 1 | |
| 173 | −#define KVM_INTERNAL_ERROR_SIMUL_EX 2 | |
| 176 | +/* Emulate instruction failed. */ | |
| 177 | +#define KVM_INTERNAL_ERROR_EMULATION 1 | |
| 178 | +/* Encounter unexpected simultaneous exceptions. */ | |
| 179 | +#define KVM_INTERNAL_ERROR_SIMUL_EX 2 | |
| 180 | +/* Encounter unexpected vm-exit due to delivery event. */ | |
| 181 | +#define KVM_INTERNAL_ERROR_DELIVERY_EV 3 | |
| 174 | 182 | |
| 175 | 183 | /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ |
| 176 | 184 | struct kvm_run { |
| @@ -280,6 +288,19 @@ struct kvm_run { · 103 unmodified lines | ||
| 280 | 288 | __u64 ret; |
| 281 | 289 | __u64 args[9]; |
| 282 | 290 | } papr_hcall; |
| 291 | + /* KVM_EXIT_S390_TSCH */ | |
| 292 | + struct { | |
| 293 | + __u16 subchannel_id; | |
| 294 | + __u16 subchannel_nr; | |
| 295 | + __u32 io_int_parm; | |
| 296 | + __u32 io_int_word; | |
| 297 | + __u32 ipb; | |
| 298 | + __u8 dequeued; | |
| 299 | + } s390_tsch; | |
| 300 | + /* KVM_EXIT_EPR */ | |
| 301 | + struct { | |
| 302 | + __u32 epr; | |
| 303 | + } epr; | |
| 283 | 304 | /* Fix the size of the union. */ |
| 284 | 305 | char padding[256]; |
| 285 | 306 | }; |
| @@ -392,10 +413,20 @@ struct kvm_s390_psw { · 106 unmodified lines | ||
| 392 | 413 | #define KVM_S390_PROGRAM_INT 0xfffe0001u |
| 393 | 414 | #define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u |
| 394 | 415 | #define KVM_S390_RESTART 0xfffe0003u |
| 416 | +#define KVM_S390_MCHK 0xfffe1000u | |
| 395 | 417 | #define KVM_S390_INT_VIRTIO 0xffff2603u |
| 396 | 418 | #define KVM_S390_INT_SERVICE 0xffff2401u |
| 397 | 419 | #define KVM_S390_INT_EMERGENCY 0xffff1201u |
| 398 | 420 | #define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u |
| 421 | +/* Anything below 0xfffe0000u is taken by INT_IO */ | |
| 422 | +#define KVM_S390_INT_IO(ai,cssid,ssid,schid) \ | |
| 423 | + (((schid)) | \ | |
| 424 | + ((ssid) << 16) | \ | |
| 425 | + ((cssid) << 18) | \ | |
| 426 | + ((ai) << 26)) | |
| 427 | +#define KVM_S390_INT_IO_MIN 0x00000000u | |
| 428 | +#define KVM_S390_INT_IO_MAX 0xfffdffffu | |
| 429 | + | |
| 399 | 430 | |
| 400 | 431 | struct kvm_s390_interrupt { |
| 401 | 432 | __u32 type; |
| @@ -477,6 +508,8 @@ struct kvm_ppc_smmu_info { · 75 unmodified lines | ||
| 477 | 508 | struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; |
| 478 | 509 | }; |
| 479 | 510 | |
| 511 | +#define KVM_PPC_PVINFO_FLAGS_EV_IDLE (1<<0) | |
| 512 | + | |
| 480 | 513 | #define KVMIO 0xAE |
| 481 | 514 | |
| 482 | 515 | /* machine type bits, to be used as argument to KVM_CREATE_VM */ |
| @@ -626,6 +659,12 @@ struct kvm_ppc_smmu_info { · 143 unmodified lines | ||
| 626 | 659 | #define KVM_CAP_READONLY_MEM 81 |
| 627 | 660 | #endif |
| 628 | 661 | #define KVM_CAP_IRQFD_RESAMPLE 82 |
| 662 | +#define KVM_CAP_PPC_BOOKE_WATCHDOG 83 | |
| 663 | +#define KVM_CAP_PPC_HTAB_FD 84 | |
| 664 | +#define KVM_CAP_S390_CSS_SUPPORT 85 | |
| 665 | +#define KVM_CAP_PPC_EPR 86 | |
| 666 | +#define KVM_CAP_ARM_PSCI 87 | |
| 667 | +#define KVM_CAP_ARM_SET_DEVICE_ADDR 88 | |
| 629 | 668 | |
| 630 | 669 | #ifdef KVM_CAP_IRQ_ROUTING |
| 631 | 670 | |
| @@ -755,6 +794,11 @@ struct kvm_dirty_tlb { · 123 unmodified lines | ||
| 755 | 794 | #define KVM_REG_SIZE_U512 0x0060000000000000ULL |
| 756 | 795 | #define KVM_REG_SIZE_U1024 0x0070000000000000ULL |
| 757 | 796 | |
| 797 | +struct kvm_reg_list { | |
| 798 | + __u64 n; /* number of regs */ | |
| 799 | + __u64 reg[0]; | |
| 800 | +}; | |
| 801 | + | |
| 758 | 802 | struct kvm_one_reg { |
| 759 | 803 | __u64 id; |
| 760 | 804 | __u64 addr; |
| @@ -768,6 +812,11 @@ struct kvm_msi { · 7 unmodified lines | ||
| 768 | 812 | __u8 pad[16]; |
| 769 | 813 | }; |
| 770 | 814 | |
| 815 | +struct kvm_arm_device_addr { | |
| 816 | + __u64 id; | |
| 817 | + __u64 addr; | |
| 818 | +}; | |
| 819 | + | |
| 771 | 820 | /* |
| 772 | 821 | * ioctls for VM fds |
| 773 | 822 | */ |
| @@ -848,6 +897,13 @@ struct kvm_s390_ucas_mapping { · 74 unmodified lines | ||
| 848 | 897 | #define KVM_PPC_GET_SMMU_INFO _IOR(KVMIO, 0xa6, struct kvm_ppc_smmu_info) |
| 849 | 898 | /* Available with KVM_CAP_PPC_ALLOC_HTAB */ |
| 850 | 899 | #define KVM_PPC_ALLOCATE_HTAB _IOWR(KVMIO, 0xa7, __u32) |
| 900 | +#define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce) | |
| 901 | +/* Available with KVM_CAP_RMA */ | |
| 902 | +#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma) | |
| 903 | +/* Available with KVM_CAP_PPC_HTAB_FD */ | |
| 904 | +#define KVM_PPC_GET_HTAB_FD _IOW(KVMIO, 0xaa, struct kvm_get_htab_fd) | |
| 905 | +/* Available with KVM_CAP_ARM_SET_DEVICE_ADDR */ | |
| 906 | +#define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr) | |
| 851 | 907 | |
| 852 | 908 | /* |
| 853 | 909 | * ioctls for vcpu fds |
| @@ -911,9 +967,6 @@ struct kvm_s390_ucas_mapping { · 57 unmodified lines | ||
| 911 | 967 | /* Available with KVM_CAP_XCRS */ |
| 912 | 968 | #define KVM_GET_XCRS _IOR(KVMIO, 0xa6, struct kvm_xcrs) |
| 913 | 969 | #define KVM_SET_XCRS _IOW(KVMIO, 0xa7, struct kvm_xcrs) |
| 914 | −#define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce) | |
| 915 | −/* Available with KVM_CAP_RMA */ | |
| 916 | −#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma) | |
| 917 | 970 | /* Available with KVM_CAP_SW_TLB */ |
| 918 | 971 | #define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb) |
| 919 | 972 | /* Available with KVM_CAP_ONE_REG */ |
| @@ -921,6 +974,8 @@ struct kvm_s390_ucas_mapping { · 1 unmodified line | ||
| 921 | 974 | #define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg) |
| 922 | 975 | /* VM is being stopped by host */ |
| 923 | 976 | #define KVM_KVMCLOCK_CTRL _IO(KVMIO, 0xad) |
| 977 | +#define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init) | |
| 978 | +#define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list) | |
| 924 | 979 | |
| 925 | 980 | #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) |
| 926 | 981 | #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) |
| @@ -23,10 +23,12 @@ · 22 unmodified lines | ||
| 23 | 23 | #define EXT4_SUPER_MAGIC 0xEF53 |
| 24 | 24 | #define BTRFS_SUPER_MAGIC 0x9123683E |
| 25 | 25 | #define NILFS_SUPER_MAGIC 0x3434 |
| 26 | +#define F2FS_SUPER_MAGIC 0xF2F52010 | |
| 26 | 27 | #define HPFS_SUPER_MAGIC 0xf995e849 |
| 27 | 28 | #define ISOFS_SUPER_MAGIC 0x9660 |
| 28 | 29 | #define JFFS2_SUPER_MAGIC 0x72b6 |
| 29 | 30 | #define PSTOREFS_MAGIC 0x6165676C |
| 31 | +#define EFIVARFS_MAGIC 0xde5e81e4 | |
| 30 | 32 | |
| 31 | 33 | #define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */ |
| 32 | 34 | #define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */ |
| @@ -20,6 +20,7 @@ enum { · 19 unmodified lines | ||
| 20 | 20 | MPOL_PREFERRED, |
| 21 | 21 | MPOL_BIND, |
| 22 | 22 | MPOL_INTERLEAVE, |
| 23 | + MPOL_LOCAL, | |
| 23 | 24 | MPOL_MAX, /* always last member of enum */ |
| 24 | 25 | }; |
| 25 | 26 | |
| @@ -47,9 +48,15 @@ enum mpol_rebind_step { · 21 unmodified lines | ||
| 47 | 48 | |
| 48 | 49 | /* Flags for mbind */ |
| 49 | 50 | #define MPOL_MF_STRICT (1<<0) /* Verify existing pages in the mapping */ |
| 50 | −#define MPOL_MF_MOVE (1<<1) /* Move pages owned by this process to conform to mapping */ | |
| 51 | −#define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to mapping */ | |
| 52 | −#define MPOL_MF_INTERNAL (1<<3) /* Internal flags start here */ | |
| 51 | +#define MPOL_MF_MOVE (1<<1) /* Move pages owned by this process to conform | |
| 52 | + to policy */ | |
| 53 | +#define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to policy */ | |
| 54 | +#define MPOL_MF_LAZY (1<<3) /* Modifies '_MOVE: lazy migrate on fault */ | |
| 55 | +#define MPOL_MF_INTERNAL (1<<4) /* Internal flags start here */ | |
| 56 | + | |
| 57 | +#define MPOL_MF_VALID (MPOL_MF_STRICT | \ | |
| 58 | + MPOL_MF_MOVE | \ | |
| 59 | + MPOL_MF_MOVE_ALL) | |
| 53 | 60 | |
| 54 | 61 | /* |
| 55 | 62 | * Internal flags that share the struct mempolicy flags word with |
| @@ -59,6 +66,8 @@ enum mpol_rebind_step { · 3 unmodified lines | ||
| 59 | 66 | #define MPOL_F_SHARED (1 << 0) /* identify shared policies */ |
| 60 | 67 | #define MPOL_F_LOCAL (1 << 1) /* preferred local allocation */ |
| 61 | 68 | #define MPOL_F_REBINDING (1 << 2) /* identify policies in rebinding */ |
| 69 | +#define MPOL_F_MOF (1 << 3) /* this policy wants migrate on fault */ | |
| 70 | +#define MPOL_F_MORON (1 << 4) /* Migrate On pte_numa Reference On Node */ | |
| 62 | 71 | |
| 63 | 72 | |
| 64 | 73 | #endif /* _UAPI_LINUX_MEMPOLICY_H */ |
| @@ -57,10 +57,8 @@ struct meye_params { · 56 unmodified lines | ||
| 57 | 57 | #define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOC_PRIVATE+5, int) |
| 58 | 58 | |
| 59 | 59 | /* V4L2 private controls */ |
| 60 | −#define V4L2_CID_AGC V4L2_CID_PRIVATE_BASE | |
| 61 | −#define V4L2_CID_MEYE_SHARPNESS (V4L2_CID_PRIVATE_BASE + 1) | |
| 62 | −#define V4L2_CID_PICTURE (V4L2_CID_PRIVATE_BASE + 2) | |
| 63 | −#define V4L2_CID_JPEGQUAL (V4L2_CID_PRIVATE_BASE + 3) | |
| 64 | −#define V4L2_CID_FRAMERATE (V4L2_CID_PRIVATE_BASE + 4) | |
| 60 | +#define V4L2_CID_MEYE_AGC (V4L2_CID_USER_MEYE_BASE + 0) | |
| 61 | +#define V4L2_CID_MEYE_PICTURE (V4L2_CID_USER_MEYE_BASE + 1) | |
| 62 | +#define V4L2_CID_MEYE_FRAMERATE (V4L2_CID_USER_MEYE_BASE + 2) | |
| 65 | 63 | |
| 66 | 64 | #endif |
| @@ -0,0 +1,8 @@ | ||
| 1 | +#ifndef _UAPI_LINUX_MODULE_H | |
| 2 | +#define _UAPI_LINUX_MODULE_H | |
| 3 | + | |
| 4 | +/* Flags for sys_finit_module: */ | |
| 5 | +#define MODULE_INIT_IGNORE_MODVERSIONS 1 | |
| 6 | +#define MODULE_INIT_IGNORE_VERMAGIC 2 | |
| 7 | + | |
| 8 | +#endif /* _UAPI_LINUX_MODULE_H */ | |
| @@ -26,6 +26,9 @@ · 25 unmodified lines | ||
| 26 | 26 | #define MRT_ASSERT (MRT_BASE+7) /* Activate PIM assert mode */ |
| 27 | 27 | #define MRT_PIM (MRT_BASE+8) /* enable PIM code */ |
| 28 | 28 | #define MRT_TABLE (MRT_BASE+9) /* Specify mroute table ID */ |
| 29 | +#define MRT_ADD_MFC_PROXY (MRT_BASE+10) /* Add a (*,*|G) mfc entry */ | |
| 30 | +#define MRT_DEL_MFC_PROXY (MRT_BASE+11) /* Del a (*,*|G) mfc entry */ | |
| 31 | +#define MRT_MAX (MRT_BASE+11) | |
| 29 | 32 | |
| 30 | 33 | #define SIOCGETVIFCNT SIOCPROTOPRIVATE /* IP protocol privates */ |
| 31 | 34 | #define SIOCGETSGCNT (SIOCPROTOPRIVATE+1) |
| @@ -26,6 +26,9 @@ · 25 unmodified lines | ||
| 26 | 26 | #define MRT6_ASSERT (MRT6_BASE+7) /* Activate PIM assert mode */ |
| 27 | 27 | #define MRT6_PIM (MRT6_BASE+8) /* enable PIM code */ |
| 28 | 28 | #define MRT6_TABLE (MRT6_BASE+9) /* Specify mroute table ID */ |
| 29 | +#define MRT6_ADD_MFC_PROXY (MRT6_BASE+10) /* Add a (*,*|G) mfc entry */ | |
| 30 | +#define MRT6_DEL_MFC_PROXY (MRT6_BASE+11) /* Del a (*,*|G) mfc entry */ | |
| 31 | +#define MRT6_MAX (MRT6_BASE+11) | |
| 29 | 32 | |
| 30 | 33 | #define SIOCGETMIFCNT_IN6 SIOCPROTOPRIVATE /* IP protocol privates */ |
| 31 | 34 | #define SIOCGETSGCNT_IN6 (SIOCPROTOPRIVATE+1) |
| @@ -87,6 +87,8 @@ · 86 unmodified lines | ||
| 87 | 87 | #define IS_FSINFO(x) (le32_to_cpu((x)->signature1) == FAT_FSINFO_SIG1 \ |
| 88 | 88 | && le32_to_cpu((x)->signature2) == FAT_FSINFO_SIG2) |
| 89 | 89 | |
| 90 | +#define FAT_STATE_DIRTY 0x01 | |
| 91 | + | |
| 90 | 92 | struct __fat_dirent { |
| 91 | 93 | long d_ino; |
| 92 | 94 | __kernel_off_t d_off; |
| @@ -120,14 +122,34 @@ struct fat_boot_sector { · 27 unmodified lines | ||
| 120 | 122 | __le32 hidden; /* hidden sectors (unused) */ |
| 121 | 123 | __le32 total_sect; /* number of sectors (if sectors == 0) */ |
| 122 | 124 | |
| 123 | − /* The following fields are only used by FAT32 */ | |
| 124 | − __le32 fat32_length; /* sectors/FAT */ | |
| 125 | − __le16 flags; /* bit 8: fat mirroring, low 4: active fat */ | |
| 126 | − __u8 version[2]; /* major, minor filesystem version */ | |
| 127 | − __le32 root_cluster; /* first cluster in root directory */ | |
| 128 | − __le16 info_sector; /* filesystem info sector */ | |
| 129 | − __le16 backup_boot; /* backup boot sector */ | |
| 130 | − __le16 reserved2[6]; /* Unused */ | |
| 125 | + union { | |
| 126 | + struct { | |
| 127 | + /* Extended BPB Fields for FAT16 */ | |
| 128 | + __u8 drive_number; /* Physical drive number */ | |
| 129 | + __u8 state; /* undocumented, but used | |
| 130 | + for mount state. */ | |
| 131 | + /* other fiealds are not added here */ | |
| 132 | + } fat16; | |
| 133 | + | |
| 134 | + struct { | |
| 135 | + /* only used by FAT32 */ | |
| 136 | + __le32 length; /* sectors/FAT */ | |
| 137 | + __le16 flags; /* bit 8: fat mirroring, | |
| 138 | + low 4: active fat */ | |
| 139 | + __u8 version[2]; /* major, minor filesystem | |
| 140 | + version */ | |
| 141 | + __le32 root_cluster; /* first cluster in | |
| 142 | + root directory */ | |
| 143 | + __le16 info_sector; /* filesystem info sector */ | |
| 144 | + __le16 backup_boot; /* backup boot sector */ | |
| 145 | + __le16 reserved2[6]; /* Unused */ | |
| 146 | + /* Extended BPB Fields for FAT32 */ | |
| 147 | + __u8 drive_number; /* Physical drive number */ | |
| 148 | + __u8 state; /* undocumented, but used | |
| 149 | + for mount state. */ | |
| 150 | + /* other fiealds are not added here */ | |
| 151 | + } fat32; | |
| 152 | + }; | |
| 131 | 153 | }; |
| 132 | 154 | |
| 133 | 155 | struct fat_boot_fsinfo { |
| @@ -10,6 +10,7 @@ · 9 unmodified lines | ||
| 10 | 10 | /* msgrcv options */ |
| 11 | 11 | #define MSG_NOERROR 010000 /* no error if message is too big */ |
| 12 | 12 | #define MSG_EXCEPT 020000 /* recv any msg except of specified type.*/ |
| 13 | +#define MSG_COPY 040000 /* copy (not remove) all queue messages */ | |
| 13 | 14 | |
| 14 | 15 | /* Obsolete, used only for backwards compatibility and libc5 compiles */ |
| 15 | 16 | struct msqid_ds { |
| @@ -33,13 +33,14 @@ enum { · 32 unmodified lines | ||
| 33 | 33 | NBD_CMD_READ = 0, |
| 34 | 34 | NBD_CMD_WRITE = 1, |
| 35 | 35 | NBD_CMD_DISC = 2, |
| 36 | − /* there is a gap here to match userspace */ | |
| 36 | + NBD_CMD_FLUSH = 3, | |
| 37 | 37 | NBD_CMD_TRIM = 4 |
| 38 | 38 | }; |
| 39 | 39 | |
| 40 | 40 | /* values for flags field */ |
| 41 | 41 | #define NBD_FLAG_HAS_FLAGS (1 << 0) /* nbd-server supports flags */ |
| 42 | 42 | #define NBD_FLAG_READ_ONLY (1 << 1) /* device is read-only */ |
| 43 | +#define NBD_FLAG_SEND_FLUSH (1 << 2) /* can flush writeback cache */ | |
| 43 | 44 | /* there is a gap here to match userspace */ |
| 44 | 45 | #define NBD_FLAG_SEND_TRIM (1 << 5) /* send trim/discard */ |
| 45 | 46 | |
| @@ -20,6 +20,7 @@ enum { · 19 unmodified lines | ||
| 20 | 20 | NDA_LLADDR, |
| 21 | 21 | NDA_CACHEINFO, |
| 22 | 22 | NDA_PROBES, |
| 23 | + NDA_VLAN, | |
| 23 | 24 | __NDA_MAX |
| 24 | 25 | }; |
| 25 | 26 | |
| @@ -0,0 +1,24 @@ | ||
| 1 | +#ifndef _UAPI_LINUX_NETCONF_H_ | |
| 2 | +#define _UAPI_LINUX_NETCONF_H_ | |
| 3 | + | |
| 4 | +#include <linux/types.h> | |
| 5 | +#include <linux/netlink.h> | |
| 6 | + | |
| 7 | +struct netconfmsg { | |
| 8 | + __u8 ncm_family; | |
| 9 | +}; | |
| 10 | + | |
| 11 | +enum { | |
| 12 | + NETCONFA_UNSPEC, | |
| 13 | + NETCONFA_IFINDEX, | |
| 14 | + NETCONFA_FORWARDING, | |
| 15 | + NETCONFA_RP_FILTER, | |
| 16 | + NETCONFA_MC_FORWARDING, | |
| 17 | + __NETCONFA_MAX | |
| 18 | +}; | |
| 19 | +#define NETCONFA_MAX (__NETCONFA_MAX - 1) | |
| 20 | + | |
| 21 | +#define NETCONFA_IFINDEX_ALL -1 | |
| 22 | +#define NETCONFA_IFINDEX_DEFAULT -2 | |
| 23 | + | |
| 24 | +#endif /* _UAPI_LINUX_NETCONF_H_ */ | |
| @@ -35,9 +35,11 @@ header-y += xt_TCPOPTSTRIP.h · 34 unmodified lines | ||
| 35 | 35 | header-y += xt_TEE.h |
| 36 | 36 | header-y += xt_TPROXY.h |
| 37 | 37 | header-y += xt_addrtype.h |
| 38 | +header-y += xt_bpf.h | |
| 38 | 39 | header-y += xt_cluster.h |
| 39 | 40 | header-y += xt_comment.h |
| 40 | 41 | header-y += xt_connbytes.h |
| 42 | +header-y += xt_connlabel.h | |
| 41 | 43 | header-y += xt_connlimit.h |
| 42 | 44 | header-y += xt_connmark.h |
| 43 | 45 | header-y += xt_conntrack.h |
| @@ -101,6 +101,7 @@ enum ip_conntrack_events { · 100 unmodified lines | ||
| 101 | 101 | IPCT_MARK, /* new mark has been set */ |
| 102 | 102 | IPCT_NATSEQADJ, /* NAT is doing sequence adjustment */ |
| 103 | 103 | IPCT_SECMARK, /* new security mark has been set */ |
| 104 | + IPCT_LABEL, /* new connlabel has been set */ | |
| 104 | 105 | }; |
| 105 | 106 | |
| 106 | 107 | enum ip_conntrack_expect_events { |
| @@ -9,6 +9,8 @@ enum cntl_msg_types { · 8 unmodified lines | ||
| 9 | 9 | IPCTNL_MSG_CT_GET_CTRZERO, |
| 10 | 10 | IPCTNL_MSG_CT_GET_STATS_CPU, |
| 11 | 11 | IPCTNL_MSG_CT_GET_STATS, |
| 12 | + IPCTNL_MSG_CT_GET_DYING, | |
| 13 | + IPCTNL_MSG_CT_GET_UNCONFIRMED, | |
| 12 | 14 | |
| 13 | 15 | IPCTNL_MSG_MAX |
| 14 | 16 | }; |
| @@ -47,6 +49,8 @@ enum ctattr_type { · 32 unmodified lines | ||
| 47 | 49 | CTA_SECCTX, |
| 48 | 50 | CTA_TIMESTAMP, |
| 49 | 51 | CTA_MARK_MASK, |
| 52 | + CTA_LABELS, | |
| 53 | + CTA_LABELS_MASK, | |
| 50 | 54 | __CTA_MAX |
| 51 | 55 | }; |
| 52 | 56 | #define CTA_MAX (__CTA_MAX - 1) |
| @@ -3,7 +3,11 @@ · 2 unmodified lines | ||
| 3 | 3 | |
| 4 | 4 | #include <linux/types.h> |
| 5 | 5 | |
| 6 | −#define XT_CT_NOTRACK 0x1 | |
| 6 | +enum { | |
| 7 | + XT_CT_NOTRACK = 1 << 0, | |
| 8 | + XT_CT_NOTRACK_ALIAS = 1 << 1, | |
| 9 | + XT_CT_MASK = XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS, | |
| 10 | +}; | |
| 7 | 11 | |
| 8 | 12 | struct xt_ct_target_info { |
| 9 | 13 | __u16 flags; |
| @@ -0,0 +1,17 @@ | ||
| 1 | +#ifndef _XT_BPF_H | |
| 2 | +#define _XT_BPF_H | |
| 3 | + | |
| 4 | +#include <linux/filter.h> | |
| 5 | +#include <linux/types.h> | |
| 6 | + | |
| 7 | +#define XT_BPF_MAX_NUM_INSTR 64 | |
| 8 | + | |
| 9 | +struct xt_bpf_info { | |
| 10 | + __u16 bpf_program_num_elem; | |
| 11 | + struct sock_filter bpf_program[XT_BPF_MAX_NUM_INSTR]; | |
| 12 | + | |
| 13 | + /* only used in the kernel */ | |
| 14 | + struct sk_filter *filter __attribute__((aligned(8))); | |
| 15 | +}; | |
| 16 | + | |
| 17 | +#endif /*_XT_BPF_H */ | |
| @@ -0,0 +1,12 @@ | ||
| 1 | +#include <linux/types.h> | |
| 2 | + | |
| 3 | +#define XT_CONNLABEL_MAXBIT 127 | |
| 4 | +enum xt_connlabel_mtopts { | |
| 5 | + XT_CONNLABEL_OP_INVERT = 1 << 0, | |
| 6 | + XT_CONNLABEL_OP_SET = 1 << 1, | |
| 7 | +}; | |
| 8 | + | |
| 9 | +struct xt_connlabel_mtinfo { | |
| 10 | + __u16 bit; | |
| 11 | + __u16 options; | |
| 12 | +}; | |
| @@ -31,6 +31,7 @@ enum { · 30 unmodified lines | ||
| 31 | 31 | XT_CONNTRACK_REPLSRC_PORT = 1 << 10, |
| 32 | 32 | XT_CONNTRACK_REPLDST_PORT = 1 << 11, |
| 33 | 33 | XT_CONNTRACK_DIRECTION = 1 << 12, |
| 34 | + XT_CONNTRACK_STATE_ALIAS = 1 << 13, | |
| 34 | 35 | }; |
| 35 | 36 | |
| 36 | 37 | struct xt_conntrack_mtinfo1 { |
| @@ -178,6 +178,9 @@ struct ip6t_error { · 177 unmodified lines | ||
| 178 | 178 | #define IP6T_SO_GET_REVISION_TARGET (IP6T_BASE_CTL + 5) |
| 179 | 179 | #define IP6T_SO_GET_MAX IP6T_SO_GET_REVISION_TARGET |
| 180 | 180 | |
| 181 | +/* obtain original address if REDIRECT'd connection */ | |
| 182 | +#define IP6T_SO_ORIGINAL_DST 80 | |
| 183 | + | |
| 181 | 184 | /* ICMP matching stuff */ |
| 182 | 185 | struct ip6t_icmp { |
| 183 | 186 | __u8 type; /* type to match */ |
| @@ -5,20 +5,17 @@ · 4 unmodified lines | ||
| 5 | 5 | * Lauro Ramos Venancio <lauro.venancio@openbossa.org> |
| 6 | 6 | * Aloisio Almeida Jr <aloisio.almeida@openbossa.org> |
| 7 | 7 | * |
| 8 | − * This program is free software; you can redistribute it and/or modify | |
| 9 | − * it under the terms of the GNU General Public License as published by | |
| 10 | − * the Free Software Foundation; either version 2 of the License, or | |
| 11 | − * (at your option) any later version. | |
| 8 | + * Permission to use, copy, modify, and/or distribute this software for any | |
| 9 | + * purpose with or without fee is hereby granted, provided that the above | |
| 10 | + * copyright notice and this permission notice appear in all copies. | |
| 12 | 11 | * |
| 13 | − * This program is distributed in the hope that it will be useful, | |
| 14 | − * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 15 | − * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 16 | − * GNU General Public License for more details. | |
| 17 | − * | |
| 18 | − * You should have received a copy of the GNU General Public License | |
| 19 | − * along with this program; if not, write to the | |
| 20 | − * Free Software Foundation, Inc., | |
| 21 | − * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
| 12 | + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
| 13 | + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
| 14 | + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
| 15 | + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
| 16 | + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
| 17 | + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
| 18 | + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
| 22 | 19 | */ |
| 23 | 20 | |
| 24 | 21 | #ifndef __LINUX_NFC_H |
| @@ -60,6 +57,18 @@ · 35 unmodified lines | ||
| 60 | 57 | * target mode. |
| 61 | 58 | * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated |
| 62 | 59 | * from target mode. |
| 60 | + * @NFC_CMD_LLC_GET_PARAMS: request LTO, RW, and MIUX parameters for a device | |
| 61 | + * @NFC_CMD_LLC_SET_PARAMS: set one or more of LTO, RW, and MIUX parameters for | |
| 62 | + * a device. LTO must be set before the link is up otherwise -EINPROGRESS | |
| 63 | + * is returned. RW and MIUX can be set at anytime and will be passed in | |
| 64 | + * subsequent CONNECT and CC messages. | |
| 65 | + * If one of the passed parameters is wrong none is set and -EINVAL is | |
| 66 | + * returned. | |
| 67 | + * @NFC_CMD_ENABLE_SE: Enable the physical link to a specific secure element. | |
| 68 | + * Once enabled a secure element will handle card emulation mode, i.e. | |
| 69 | + * starting a poll from a device which has a secure element enabled means | |
| 70 | + * we want to do SE based card emulation. | |
| 71 | + * @NFC_CMD_DISABLE_SE: Disable the physical link to a specific secure element. | |
| 63 | 72 | */ |
| 64 | 73 | enum nfc_commands { |
| 65 | 74 | NFC_CMD_UNSPEC, |
| @@ -77,6 +86,10 @@ enum nfc_commands { · 11 unmodified lines | ||
| 77 | 86 | NFC_EVENT_TARGET_LOST, |
| 78 | 87 | NFC_EVENT_TM_ACTIVATED, |
| 79 | 88 | NFC_EVENT_TM_DEACTIVATED, |
| 89 | + NFC_CMD_LLC_GET_PARAMS, | |
| 90 | + NFC_CMD_LLC_SET_PARAMS, | |
| 91 | + NFC_CMD_ENABLE_SE, | |
| 92 | + NFC_CMD_DISABLE_SE, | |
| 80 | 93 | /* private: internal use only */ |
| 81 | 94 | __NFC_CMD_AFTER_LAST |
| 82 | 95 | }; |
| @@ -102,6 +115,10 @@ enum nfc_commands { · 19 unmodified lines | ||
| 102 | 115 | * @NFC_ATTR_RF_MODE: Initiator or target |
| 103 | 116 | * @NFC_ATTR_IM_PROTOCOLS: Initiator mode protocols to poll for |
| 104 | 117 | * @NFC_ATTR_TM_PROTOCOLS: Target mode protocols to listen for |
| 118 | + * @NFC_ATTR_LLC_PARAM_LTO: Link TimeOut parameter | |
| 119 | + * @NFC_ATTR_LLC_PARAM_RW: Receive Window size parameter | |
| 120 | + * @NFC_ATTR_LLC_PARAM_MIUX: MIU eXtension parameter | |
| 121 | + * @NFC_ATTR_SE: Available Secure Elements | |
| 105 | 122 | */ |
| 106 | 123 | enum nfc_attrs { |
| 107 | 124 | NFC_ATTR_UNSPEC, |
| @@ -119,6 +136,10 @@ enum nfc_attrs { · 11 unmodified lines | ||
| 119 | 136 | NFC_ATTR_DEVICE_POWERED, |
| 120 | 137 | NFC_ATTR_IM_PROTOCOLS, |
| 121 | 138 | NFC_ATTR_TM_PROTOCOLS, |
| 139 | + NFC_ATTR_LLC_PARAM_LTO, | |
| 140 | + NFC_ATTR_LLC_PARAM_RW, | |
| 141 | + NFC_ATTR_LLC_PARAM_MIUX, | |
| 142 | + NFC_ATTR_SE, | |
| 122 | 143 | /* private: internal use only */ |
| 123 | 144 | __NFC_ATTR_AFTER_LAST |
| 124 | 145 | }; |
| @@ -157,6 +178,11 @@ enum nfc_attrs { · 32 unmodified lines | ||
| 157 | 178 | #define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP) |
| 158 | 179 | #define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B) |
| 159 | 180 | |
| 181 | +/* NFC Secure Elements */ | |
| 182 | +#define NFC_SE_NONE 0x0 | |
| 183 | +#define NFC_SE_UICC 0x1 | |
| 184 | +#define NFC_SE_EMBEDDED 0x2 | |
| 185 | + | |
| 160 | 186 | struct sockaddr_nfc { |
| 161 | 187 | sa_family_t sa_family; |
| 162 | 188 | __u32 dev_idx; |
| @@ -118,8 +118,9 @@ · 117 unmodified lines | ||
| 118 | 118 | * to get a list of all present wiphys. |
| 119 | 119 | * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or |
| 120 | 120 | * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, |
| 121 | − * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, | |
| 122 | − * %NL80211_ATTR_WIPHY_CHANNEL_TYPE, %NL80211_ATTR_WIPHY_RETRY_SHORT, | |
| 121 | + * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the | |
| 122 | + * attributes determining the channel width; this is used for setting | |
| 123 | + * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT, | |
| 123 | 124 | * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, |
| 124 | 125 | * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD. |
| 125 | 126 | * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL |
| @@ -169,9 +170,10 @@ · 43 unmodified lines | ||
| 169 | 170 | * %NL80211_ATTR_HIDDEN_SSID, %NL80211_ATTR_CIPHERS_PAIRWISE, |
| 170 | 171 | * %NL80211_ATTR_CIPHER_GROUP, %NL80211_ATTR_WPA_VERSIONS, |
| 171 | 172 | * %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY, |
| 172 | − * %NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT. | |
| 173 | + * %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_INACTIVITY_TIMEOUT, | |
| 174 | + * %NL80211_ATTR_ACL_POLICY and %NL80211_ATTR_MAC_ADDRS. | |
| 173 | 175 | * The channel to use can be set on the interface or be given using the |
| 174 | − * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_CHANNEL_TYPE attrs. | |
| 176 | + * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width. | |
| 175 | 177 | * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP |
| 176 | 178 | * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface |
| 177 | 179 | * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP |
| @@ -373,8 +375,8 @@ · 195 unmodified lines | ||
| 373 | 375 | * requests to connect to a specified network but without separating |
| 374 | 376 | * auth and assoc steps. For this, you need to specify the SSID in a |
| 375 | 377 | * %NL80211_ATTR_SSID attribute, and can optionally specify the association |
| 376 | − * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC, | |
| 377 | − * %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, | |
| 378 | + * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP, | |
| 379 | + * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, | |
| 378 | 380 | * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and |
| 379 | 381 | * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT. |
| 380 | 382 | * Background scan period can optionally be |
| @@ -401,8 +403,7 @@ · 20 unmodified lines | ||
| 401 | 403 | * a response while being associated to an AP on another channel. |
| 402 | 404 | * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus |
| 403 | 405 | * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the |
| 404 | − * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be | |
| 405 | − * optionally used to specify additional channel parameters. | |
| 406 | + * frequency for the operation. | |
| 406 | 407 | * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds |
| 407 | 408 | * to remain on the channel. This command is also used as an event to |
| 408 | 409 | * notify when the requested duration starts (it may take a while for the |
| @@ -440,12 +441,11 @@ · 31 unmodified lines | ||
| 440 | 441 | * as an event indicating reception of a frame that was not processed in |
| 441 | 442 | * kernel code, but is for us (i.e., which may need to be processed in a |
| 442 | 443 | * user space application). %NL80211_ATTR_FRAME is used to specify the |
| 443 | − * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and | |
| 444 | − * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on | |
| 445 | − * which channel the frame is to be transmitted or was received. If this | |
| 446 | − * channel is not the current channel (remain-on-channel or the | |
| 447 | − * operational channel) the device will switch to the given channel and | |
| 448 | − * transmit the frame, optionally waiting for a response for the time | |
| 444 | + * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used | |
| 445 | + * to indicate on which channel the frame is to be transmitted or was | |
| 446 | + * received. If this channel is not the current channel (remain-on-channel | |
| 447 | + * or the operational channel) the device will switch to the given channel | |
| 448 | + * and transmit the frame, optionally waiting for a response for the time | |
| 449 | 449 | * specified using %NL80211_ATTR_DURATION. When called, this operation |
| 450 | 450 | * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the |
| 451 | 451 | * TX status event pertaining to the TX request. |
| @@ -473,8 +473,8 @@ · 21 unmodified lines | ||
| 473 | 473 | * command is used as an event to indicate the that a trigger level was |
| 474 | 474 | * reached. |
| 475 | 475 | * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ |
| 476 | − * and %NL80211_ATTR_WIPHY_CHANNEL_TYPE) the given interface (identifed | |
| 477 | − * by %NL80211_ATTR_IFINDEX) shall operate on. | |
| 476 | + * and the attributes determining channel width) the given interface | |
| 477 | + * (identifed by %NL80211_ATTR_IFINDEX) shall operate on. | |
| 478 | 478 | * In case multiple channels are supported by the device, the mechanism |
| 479 | 479 | * with which it switches channels is implementation-defined. |
| 480 | 480 | * When a monitor interface is given, it can only switch channel while |
| @@ -513,6 +513,12 @@ · 32 unmodified lines | ||
| 513 | 513 | * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For |
| 514 | 514 | * more background information, see |
| 515 | 515 | * http://wireless.kernel.org/en/users/Documentation/WoWLAN. |
| 516 | + * The @NL80211_CMD_SET_WOWLAN command can also be used as a notification | |
| 517 | + * from the driver reporting the wakeup reason. In this case, the | |
| 518 | + * @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason | |
| 519 | + * for the wakeup, if it was caused by wireless. If it is not present | |
| 520 | + * in the wakeup notification, the wireless device didn't cause the | |
| 521 | + * wakeup but reports that it was woken up. | |
| 516 | 522 | * |
| 517 | 523 | * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver |
| 518 | 524 | * the necessary information for supporting GTK rekey offload. This |
| @@ -526,6 +532,12 @@ · 7 unmodified lines | ||
| 526 | 532 | * of PMKSA caching dandidates. |
| 527 | 533 | * |
| 528 | 534 | * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). |
| 535 | + * In addition, this can be used as an event to request userspace to take | |
| 536 | + * actions on TDLS links (set up a new link or tear down an existing one). | |
| 537 | + * In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested | |
| 538 | + * operation, %NL80211_ATTR_MAC contains the peer MAC address, and | |
| 539 | + * %NL80211_ATTR_REASON_CODE the reason code to be used (only with | |
| 540 | + * %NL80211_TDLS_TEARDOWN). | |
| 529 | 541 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. |
| 530 | 542 | * |
| 531 | 543 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP |
| @@ -562,8 +574,8 @@ · 30 unmodified lines | ||
| 562 | 574 | * |
| 563 | 575 | * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels |
| 564 | 576 | * independently of the userspace SME, send this event indicating |
| 565 | − * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ with | |
| 566 | − * %NL80211_ATTR_WIPHY_CHANNEL_TYPE. | |
| 577 | + * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the | |
| 578 | + * attributes determining channel width. | |
| 567 | 579 | * |
| 568 | 580 | * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by |
| 569 | 581 | * its %NL80211_ATTR_WDEV identifier. It must have been created with |
| @@ -578,6 +590,27 @@ · 8 unmodified lines | ||
| 578 | 590 | * station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON |
| 579 | 591 | * is used for this. |
| 580 | 592 | * |
| 593 | + * @NL80211_CMD_SET_MCAST_RATE: Change the rate used to send multicast frames | |
| 594 | + * for IBSS or MESH vif. | |
| 595 | + * | |
| 596 | + * @NL80211_CMD_SET_MAC_ACL: sets ACL for MAC address based access control. | |
| 597 | + * This is to be used with the drivers advertising the support of MAC | |
| 598 | + * address based access control. List of MAC addresses is passed in | |
| 599 | + * %NL80211_ATTR_MAC_ADDRS and ACL policy is passed in | |
| 600 | + * %NL80211_ATTR_ACL_POLICY. Driver will enable ACL with this list, if it | |
| 601 | + * is not already done. The new list will replace any existing list. Driver | |
| 602 | + * will clear its ACL when the list of MAC addresses passed is empty. This | |
| 603 | + * command is used in AP/P2P GO mode. Driver has to make sure to clear its | |
| 604 | + * ACL list during %NL80211_CMD_STOP_AP. | |
| 605 | + * | |
| 606 | + * @NL80211_CMD_RADAR_DETECT: Start a Channel availability check (CAC). Once | |
| 607 | + * a radar is detected or the channel availability scan (CAC) has finished | |
| 608 | + * or was aborted, or a radar was detected, usermode will be notified with | |
| 609 | + * this event. This command is also used to notify userspace about radars | |
| 610 | + * while operating on this channel. | |
| 611 | + * %NL80211_ATTR_RADAR_EVENT is used to inform about the type of the | |
| 612 | + * event. | |
| 613 | + * | |
| 581 | 614 | * @NL80211_CMD_MAX: highest used command number |
| 582 | 615 | * @__NL80211_CMD_AFTER_LAST: internal use |
| 583 | 616 | */ |
| @@ -726,6 +759,12 @@ enum nl80211_commands { · 142 unmodified lines | ||
| 726 | 759 | |
| 727 | 760 | NL80211_CMD_CONN_FAILED, |
| 728 | 761 | |
| 762 | + NL80211_CMD_SET_MCAST_RATE, | |
| 763 | + | |
| 764 | + NL80211_CMD_SET_MAC_ACL, | |
| 765 | + | |
| 766 | + NL80211_CMD_RADAR_DETECT, | |
| 767 | + | |
| 729 | 768 | /* add new commands above here */ |
| 730 | 769 | |
| 731 | 770 | /* used to define NL80211_CMD_MAX below */ |
| @@ -762,14 +801,26 @@ enum nl80211_commands { · 30 unmodified lines | ||
| 762 | 801 | * /sys/class/ieee80211/<phyname>/index |
| 763 | 802 | * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) |
| 764 | 803 | * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters |
| 765 | − * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz | |
| 804 | + * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz, | |
| 805 | + * defines the channel together with the (deprecated) | |
| 806 | + * %NL80211_ATTR_WIPHY_CHANNEL_TYPE attribute or the attributes | |
| 807 | + * %NL80211_ATTR_CHANNEL_WIDTH and if needed %NL80211_ATTR_CENTER_FREQ1 | |
| 808 | + * and %NL80211_ATTR_CENTER_FREQ2 | |
| 809 | + * @NL80211_ATTR_CHANNEL_WIDTH: u32 attribute containing one of the values | |
| 810 | + * of &enum nl80211_chan_width, describing the channel width. See the | |
| 811 | + * documentation of the enum for more information. | |
| 812 | + * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the | |
| 813 | + * channel, used for anything but 20 MHz bandwidth | |
| 814 | + * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the | |
| 815 | + * channel, used only for 80+80 MHz bandwidth | |
| 766 | 816 | * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ |
| 767 | − * if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included): | |
| 817 | + * if HT20 or HT40 are to be used (i.e., HT disabled if not included): | |
| 768 | 818 | * NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including |
| 769 | 819 | * this attribute) |
| 770 | 820 | * NL80211_CHAN_HT20 = HT20 only |
| 771 | 821 | * NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel |
| 772 | 822 | * NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel |
| 823 | + * This attribute is now deprecated. | |
| 773 | 824 | * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is |
| 774 | 825 | * less than or equal to the RTS threshold; allowed range: 1..255; |
| 775 | 826 | * dot11ShortRetryLimit; u8 |
| @@ -936,7 +987,7 @@ enum nl80211_commands { · 160 unmodified lines | ||
| 936 | 987 | * @NL80211_ATTR_USE_MFP: Whether management frame protection (IEEE 802.11w) is |
| 937 | 988 | * used for the association (&enum nl80211_mfp, represented as a u32); |
| 938 | 989 | * this attribute can be used |
| 939 | − * with %NL80211_CMD_ASSOCIATE request | |
| 990 | + * with %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests | |
| 940 | 991 | * |
| 941 | 992 | * @NL80211_ATTR_STA_FLAGS2: Attribute containing a |
| 942 | 993 | * &struct nl80211_sta_flag_update. |
| @@ -1273,6 +1324,50 @@ enum nl80211_commands { · 330 unmodified lines | ||
| 1273 | 1324 | * the connection request from a station. nl80211_connect_failed_reason |
| 1274 | 1325 | * enum has different reasons of connection failure. |
| 1275 | 1326 | * |
| 1327 | + * @NL80211_ATTR_SAE_DATA: SAE elements in Authentication frames. This starts | |
| 1328 | + * with the Authentication transaction sequence number field. | |
| 1329 | + * | |
| 1330 | + * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from | |
| 1331 | + * association request when used with NL80211_CMD_NEW_STATION) | |
| 1332 | + * | |
| 1333 | + * @NL80211_ATTR_SCAN_FLAGS: scan request control flags (u32) | |
| 1334 | + * | |
| 1335 | + * @NL80211_ATTR_P2P_CTWINDOW: P2P GO Client Traffic Window (u8), used with | |
| 1336 | + * the START_AP and SET_BSS commands | |
| 1337 | + * @NL80211_ATTR_P2P_OPPPS: P2P GO opportunistic PS (u8), used with the | |
| 1338 | + * START_AP and SET_BSS commands. This can have the values 0 or 1; | |
| 1339 | + * if not given in START_AP 0 is assumed, if not given in SET_BSS | |
| 1340 | + * no change is made. | |
| 1341 | + * | |
| 1342 | + * @NL80211_ATTR_LOCAL_MESH_POWER_MODE: local mesh STA link-specific power mode | |
| 1343 | + * defined in &enum nl80211_mesh_power_mode. | |
| 1344 | + * | |
| 1345 | + * @NL80211_ATTR_ACL_POLICY: ACL policy, see &enum nl80211_acl_policy, | |
| 1346 | + * carried in a u32 attribute | |
| 1347 | + * | |
| 1348 | + * @NL80211_ATTR_MAC_ADDRS: Array of nested MAC addresses, used for | |
| 1349 | + * MAC ACL. | |
| 1350 | + * | |
| 1351 | + * @NL80211_ATTR_MAC_ACL_MAX: u32 attribute to advertise the maximum | |
| 1352 | + * number of MAC addresses that a device can support for MAC | |
| 1353 | + * ACL. | |
| 1354 | + * | |
| 1355 | + * @NL80211_ATTR_RADAR_EVENT: Type of radar event for notification to userspace, | |
| 1356 | + * contains a value of enum nl80211_radar_event (u32). | |
| 1357 | + * | |
| 1358 | + * @NL80211_ATTR_EXT_CAPA: 802.11 extended capabilities that the kernel driver | |
| 1359 | + * has and handles. The format is the same as the IE contents. See | |
| 1360 | + * 802.11-2012 8.4.2.29 for more information. | |
| 1361 | + * @NL80211_ATTR_EXT_CAPA_MASK: Extended capabilities that the kernel driver | |
| 1362 | + * has set in the %NL80211_ATTR_EXT_CAPA value, for multibit fields. | |
| 1363 | + * | |
| 1364 | + * @NL80211_ATTR_STA_CAPABILITY: Station capabilities (u16) are advertised to | |
| 1365 | + * the driver, e.g., to enable TDLS power save (PU-APSD). | |
| 1366 | + * | |
| 1367 | + * @NL80211_ATTR_STA_EXT_CAPABILITY: Station extended capabilities are | |
| 1368 | + * advertised to the driver, e.g., to enable TDLS off channel operations | |
| 1369 | + * and PU-APSD. | |
| 1370 | + * | |
| 1276 | 1371 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 1277 | 1372 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| 1278 | 1373 | */ |
| @@ -1530,6 +1625,35 @@ enum nl80211_attrs { · 251 unmodified lines | ||
| 1530 | 1625 | |
| 1531 | 1626 | NL80211_ATTR_CONN_FAILED_REASON, |
| 1532 | 1627 | |
| 1628 | + NL80211_ATTR_SAE_DATA, | |
| 1629 | + | |
| 1630 | + NL80211_ATTR_VHT_CAPABILITY, | |
| 1631 | + | |
| 1632 | + NL80211_ATTR_SCAN_FLAGS, | |
| 1633 | + | |
| 1634 | + NL80211_ATTR_CHANNEL_WIDTH, | |
| 1635 | + NL80211_ATTR_CENTER_FREQ1, | |
| 1636 | + NL80211_ATTR_CENTER_FREQ2, | |
| 1637 | + | |
| 1638 | + NL80211_ATTR_P2P_CTWINDOW, | |
| 1639 | + NL80211_ATTR_P2P_OPPPS, | |
| 1640 | + | |
| 1641 | + NL80211_ATTR_LOCAL_MESH_POWER_MODE, | |
| 1642 | + | |
| 1643 | + NL80211_ATTR_ACL_POLICY, | |
| 1644 | + | |
| 1645 | + NL80211_ATTR_MAC_ADDRS, | |
| 1646 | + | |
| 1647 | + NL80211_ATTR_MAC_ACL_MAX, | |
| 1648 | + | |
| 1649 | + NL80211_ATTR_RADAR_EVENT, | |
| 1650 | + | |
| 1651 | + NL80211_ATTR_EXT_CAPA, | |
| 1652 | + NL80211_ATTR_EXT_CAPA_MASK, | |
| 1653 | + | |
| 1654 | + NL80211_ATTR_STA_CAPABILITY, | |
| 1655 | + NL80211_ATTR_STA_EXT_CAPABILITY, | |
| 1656 | + | |
| 1533 | 1657 | /* add attributes here, update the policy in nl80211.c */ |
| 1534 | 1658 | |
| 1535 | 1659 | __NL80211_ATTR_AFTER_LAST, |
| @@ -1573,6 +1697,7 @@ enum nl80211_attrs { · 37 unmodified lines | ||
| 1573 | 1697 | #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 |
| 1574 | 1698 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 |
| 1575 | 1699 | #define NL80211_HT_CAPABILITY_LEN 26 |
| 1700 | +#define NL80211_VHT_CAPABILITY_LEN 12 | |
| 1576 | 1701 | |
| 1577 | 1702 | #define NL80211_MAX_NR_CIPHER_SUITES 5 |
| 1578 | 1703 | #define NL80211_MAX_NR_AKM_SUITES 2 |
| @@ -1646,6 +1771,9 @@ enum nl80211_iftype { · 67 unmodified lines | ||
| 1646 | 1771 | * flag can't be changed, it is only valid while adding a station, and |
| 1647 | 1772 | * attempts to change it will silently be ignored (rather than rejected |
| 1648 | 1773 | * as errors.) |
| 1774 | + * @NL80211_STA_FLAG_ASSOCIATED: station is associated; used with drivers | |
| 1775 | + * that support %NL80211_FEATURE_FULL_AP_CLIENT_STATE to transition a | |
| 1776 | + * previously added station into associated state | |
| 1649 | 1777 | * @NL80211_STA_FLAG_MAX: highest station flag number currently defined |
| 1650 | 1778 | * @__NL80211_STA_FLAG_AFTER_LAST: internal use |
| 1651 | 1779 | */ |
| @@ -1657,6 +1785,7 @@ enum nl80211_sta_flags { · 5 unmodified lines | ||
| 1657 | 1785 | NL80211_STA_FLAG_MFP, |
| 1658 | 1786 | NL80211_STA_FLAG_AUTHENTICATED, |
| 1659 | 1787 | NL80211_STA_FLAG_TDLS_PEER, |
| 1788 | + NL80211_STA_FLAG_ASSOCIATED, | |
| 1660 | 1789 | |
| 1661 | 1790 | /* keep last */ |
| 1662 | 1791 | __NL80211_STA_FLAG_AFTER_LAST, |
| @@ -1693,10 +1822,15 @@ struct nl80211_sta_flag_update { · 30 unmodified lines | ||
| 1693 | 1822 | * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved |
| 1694 | 1823 | * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s) |
| 1695 | 1824 | * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8) |
| 1696 | − * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 Mhz dualchannel bitrate | |
| 1825 | + * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 MHz dualchannel bitrate | |
| 1697 | 1826 | * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval |
| 1698 | 1827 | * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s) |
| 1699 | 1828 | * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined |
| 1829 | + * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) | |
| 1830 | + * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) | |
| 1831 | + * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate | |
| 1832 | + * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate | |
| 1833 | + * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate | |
| 1700 | 1834 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use |
| 1701 | 1835 | */ |
| 1702 | 1836 | enum nl80211_rate_info { |
| @@ -1706,6 +1840,11 @@ enum nl80211_rate_info { · 3 unmodified lines | ||
| 1706 | 1840 | NL80211_RATE_INFO_40_MHZ_WIDTH, |
| 1707 | 1841 | NL80211_RATE_INFO_SHORT_GI, |
| 1708 | 1842 | NL80211_RATE_INFO_BITRATE32, |
| 1843 | + NL80211_RATE_INFO_VHT_MCS, | |
| 1844 | + NL80211_RATE_INFO_VHT_NSS, | |
| 1845 | + NL80211_RATE_INFO_80_MHZ_WIDTH, | |
| 1846 | + NL80211_RATE_INFO_80P80_MHZ_WIDTH, | |
| 1847 | + NL80211_RATE_INFO_160_MHZ_WIDTH, | |
| 1709 | 1848 | |
| 1710 | 1849 | /* keep last */ |
| 1711 | 1850 | __NL80211_RATE_INFO_AFTER_LAST, |
| @@ -1752,6 +1891,8 @@ enum nl80211_sta_bss_param { · 40 unmodified lines | ||
| 1752 | 1891 | * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) |
| 1753 | 1892 | * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) |
| 1754 | 1893 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) |
| 1894 | + * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station) | |
| 1895 | + * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station) | |
| 1755 | 1896 | * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) |
| 1756 | 1897 | * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute |
| 1757 | 1898 | * containing info as possible, see &enum nl80211_rate_info |
| @@ -1773,6 +1914,10 @@ enum nl80211_sta_bss_param { · 15 unmodified lines | ||
| 1773 | 1914 | * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. |
| 1774 | 1915 | * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32) |
| 1775 | 1916 | * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64) |
| 1917 | + * @NL80211_STA_INFO_LOCAL_PM: local mesh STA link-specific power mode | |
| 1918 | + * @NL80211_STA_INFO_PEER_PM: peer mesh STA link-specific power mode | |
| 1919 | + * @NL80211_STA_INFO_NONPEER_PM: neighbor mesh STA power save mode towards | |
| 1920 | + * non-peer STA | |
| 1776 | 1921 | * @__NL80211_STA_INFO_AFTER_LAST: internal |
| 1777 | 1922 | * @NL80211_STA_INFO_MAX: highest possible station info attribute |
| 1778 | 1923 | */ |
| @@ -1797,6 +1942,11 @@ enum nl80211_sta_info { · 18 unmodified lines | ||
| 1797 | 1942 | NL80211_STA_INFO_STA_FLAGS, |
| 1798 | 1943 | NL80211_STA_INFO_BEACON_LOSS, |
| 1799 | 1944 | NL80211_STA_INFO_T_OFFSET, |
| 1945 | + NL80211_STA_INFO_LOCAL_PM, | |
| 1946 | + NL80211_STA_INFO_PEER_PM, | |
| 1947 | + NL80211_STA_INFO_NONPEER_PM, | |
| 1948 | + NL80211_STA_INFO_RX_BYTES64, | |
| 1949 | + NL80211_STA_INFO_TX_BYTES64, | |
| 1800 | 1950 | |
| 1801 | 1951 | /* keep last */ |
| 1802 | 1952 | __NL80211_STA_INFO_AFTER_LAST, |
| @@ -1906,6 +2056,20 @@ enum nl80211_band_attr { · 103 unmodified lines | ||
| 1906 | 2056 | * on this channel in current regulatory domain. |
| 1907 | 2057 | * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm |
| 1908 | 2058 | * (100 * dBm). |
| 2059 | + * @NL80211_FREQUENCY_ATTR_DFS_STATE: current state for DFS | |
| 2060 | + * (enum nl80211_dfs_state) | |
| 2061 | + * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in miliseconds for how long | |
| 2062 | + * this channel is in this DFS state. | |
| 2063 | + * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this | |
| 2064 | + * channel as the control channel | |
| 2065 | + * @NL80211_FREQUENCY_ATTR_NO_HT40_PLUS: HT40+ isn't possible with this | |
| 2066 | + * channel as the control channel | |
| 2067 | + * @NL80211_FREQUENCY_ATTR_NO_80MHZ: any 80 MHz channel using this channel | |
| 2068 | + * as the primary or any of the secondary channels isn't possible, | |
| 2069 | + * this includes 80+80 channels | |
| 2070 | + * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel | |
| 2071 | + * using this channel as the primary or any of the secondary channels | |
| 2072 | + * isn't possible | |
| 1909 | 2073 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| 1910 | 2074 | * currently defined |
| 1911 | 2075 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use |
| @@ -1918,6 +2082,12 @@ enum nl80211_frequency_attr { · 6 unmodified lines | ||
| 1918 | 2082 | NL80211_FREQUENCY_ATTR_NO_IBSS, |
| 1919 | 2083 | NL80211_FREQUENCY_ATTR_RADAR, |
| 1920 | 2084 | NL80211_FREQUENCY_ATTR_MAX_TX_POWER, |
| 2085 | + NL80211_FREQUENCY_ATTR_DFS_STATE, | |
| 2086 | + NL80211_FREQUENCY_ATTR_DFS_TIME, | |
| 2087 | + NL80211_FREQUENCY_ATTR_NO_HT40_MINUS, | |
| 2088 | + NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, | |
| 2089 | + NL80211_FREQUENCY_ATTR_NO_80MHZ, | |
| 2090 | + NL80211_FREQUENCY_ATTR_NO_160MHZ, | |
| 1921 | 2091 | |
| 1922 | 2092 | /* keep last */ |
| 1923 | 2093 | __NL80211_FREQUENCY_ATTR_AFTER_LAST, |
| @@ -2187,6 +2357,34 @@ enum nl80211_mntr_flags { · 263 unmodified lines | ||
| 2187 | 2357 | NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1 |
| 2188 | 2358 | }; |
| 2189 | 2359 | |
| 2360 | +/** | |
| 2361 | + * enum nl80211_mesh_power_mode - mesh power save modes | |
| 2362 | + * | |
| 2363 | + * @NL80211_MESH_POWER_UNKNOWN: The mesh power mode of the mesh STA is | |
| 2364 | + * not known or has not been set yet. | |
| 2365 | + * @NL80211_MESH_POWER_ACTIVE: Active mesh power mode. The mesh STA is | |
| 2366 | + * in Awake state all the time. | |
| 2367 | + * @NL80211_MESH_POWER_LIGHT_SLEEP: Light sleep mode. The mesh STA will | |
| 2368 | + * alternate between Active and Doze states, but will wake up for | |
| 2369 | + * neighbor's beacons. | |
| 2370 | + * @NL80211_MESH_POWER_DEEP_SLEEP: Deep sleep mode. The mesh STA will | |
| 2371 | + * alternate between Active and Doze states, but may not wake up | |
| 2372 | + * for neighbor's beacons. | |
| 2373 | + * | |
| 2374 | + * @__NL80211_MESH_POWER_AFTER_LAST - internal use | |
| 2375 | + * @NL80211_MESH_POWER_MAX - highest possible power save level | |
| 2376 | + */ | |
| 2377 | + | |
| 2378 | +enum nl80211_mesh_power_mode { | |
| 2379 | + NL80211_MESH_POWER_UNKNOWN, | |
| 2380 | + NL80211_MESH_POWER_ACTIVE, | |
| 2381 | + NL80211_MESH_POWER_LIGHT_SLEEP, | |
| 2382 | + NL80211_MESH_POWER_DEEP_SLEEP, | |
| 2383 | + | |
| 2384 | + __NL80211_MESH_POWER_AFTER_LAST, | |
| 2385 | + NL80211_MESH_POWER_MAX = __NL80211_MESH_POWER_AFTER_LAST - 1 | |
| 2386 | +}; | |
| 2387 | + | |
| 2190 | 2388 | /** |
| 2191 | 2389 | * enum nl80211_meshconf_params - mesh configuration parameters |
| 2192 | 2390 | * |
| @@ -2281,6 +2479,11 @@ enum nl80211_mntr_flags { · 88 unmodified lines | ||
| 2281 | 2479 | * (in TUs) during which a mesh STA can send only one Action frame |
| 2282 | 2480 | * containing a PREQ element for root path confirmation. |
| 2283 | 2481 | * |
| 2482 | + * @NL80211_MESHCONF_POWER_MODE: Default mesh power mode for new peer links. | |
| 2483 | + * type &enum nl80211_mesh_power_mode (u32) | |
| 2484 | + * | |
| 2485 | + * @NL80211_MESHCONF_AWAKE_WINDOW: awake window duration (in TUs) | |
| 2486 | + * | |
| 2284 | 2487 | * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use |
| 2285 | 2488 | */ |
| 2286 | 2489 | enum nl80211_meshconf_params { |
| @@ -2310,6 +2513,8 @@ enum nl80211_meshconf_params { · 23 unmodified lines | ||
| 2310 | 2513 | NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT, |
| 2311 | 2514 | NL80211_MESHCONF_HWMP_ROOT_INTERVAL, |
| 2312 | 2515 | NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL, |
| 2516 | + NL80211_MESHCONF_POWER_MODE, | |
| 2517 | + NL80211_MESHCONF_AWAKE_WINDOW, | |
| 2313 | 2518 | |
| 2314 | 2519 | /* keep last */ |
| 2315 | 2520 | __NL80211_MESHCONF_ATTR_AFTER_LAST, |
| @@ -2414,6 +2619,15 @@ enum nl80211_ac { · 98 unmodified lines | ||
| 2414 | 2619 | #define NL80211_TXQ_Q_BE NL80211_AC_BE |
| 2415 | 2620 | #define NL80211_TXQ_Q_BK NL80211_AC_BK |
| 2416 | 2621 | |
| 2622 | +/** | |
| 2623 | + * enum nl80211_channel_type - channel type | |
| 2624 | + * @NL80211_CHAN_NO_HT: 20 MHz, non-HT channel | |
| 2625 | + * @NL80211_CHAN_HT20: 20 MHz HT channel | |
| 2626 | + * @NL80211_CHAN_HT40MINUS: HT40 channel, secondary channel | |
| 2627 | + * below the control channel | |
| 2628 | + * @NL80211_CHAN_HT40PLUS: HT40 channel, secondary channel | |
| 2629 | + * above the control channel | |
| 2630 | + */ | |
| 2417 | 2631 | enum nl80211_channel_type { |
| 2418 | 2632 | NL80211_CHAN_NO_HT, |
| 2419 | 2633 | NL80211_CHAN_HT20, |
| @@ -2421,6 +2635,32 @@ enum nl80211_channel_type { · 1 unmodified line | ||
| 2421 | 2635 | NL80211_CHAN_HT40PLUS |
| 2422 | 2636 | }; |
| 2423 | 2637 | |
| 2638 | +/** | |
| 2639 | + * enum nl80211_chan_width - channel width definitions | |
| 2640 | + * | |
| 2641 | + * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH | |
| 2642 | + * attribute. | |
| 2643 | + * | |
| 2644 | + * @NL80211_CHAN_WIDTH_20_NOHT: 20 MHz, non-HT channel | |
| 2645 | + * @NL80211_CHAN_WIDTH_20: 20 MHz HT channel | |
| 2646 | + * @NL80211_CHAN_WIDTH_40: 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 | |
| 2647 | + * attribute must be provided as well | |
| 2648 | + * @NL80211_CHAN_WIDTH_80: 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 | |
| 2649 | + * attribute must be provided as well | |
| 2650 | + * @NL80211_CHAN_WIDTH_80P80: 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 | |
| 2651 | + * and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well | |
| 2652 | + * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 | |
| 2653 | + * attribute must be provided as well | |
| 2654 | + */ | |
| 2655 | +enum nl80211_chan_width { | |
| 2656 | + NL80211_CHAN_WIDTH_20_NOHT, | |
| 2657 | + NL80211_CHAN_WIDTH_20, | |
| 2658 | + NL80211_CHAN_WIDTH_40, | |
| 2659 | + NL80211_CHAN_WIDTH_80, | |
| 2660 | + NL80211_CHAN_WIDTH_80P80, | |
| 2661 | + NL80211_CHAN_WIDTH_160, | |
| 2662 | +}; | |
| 2663 | + | |
| 2424 | 2664 | /** |
| 2425 | 2665 | * enum nl80211_bss - netlink attributes for a BSS |
| 2426 | 2666 | * |
| @@ -2489,6 +2729,7 @@ enum nl80211_bss_status { · 62 unmodified lines | ||
| 2489 | 2729 | * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only) |
| 2490 | 2730 | * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r) |
| 2491 | 2731 | * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) |
| 2732 | + * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals | |
| 2492 | 2733 | * @__NL80211_AUTHTYPE_NUM: internal |
| 2493 | 2734 | * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm |
| 2494 | 2735 | * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by |
| @@ -2500,6 +2741,7 @@ enum nl80211_auth_type { · 5 unmodified lines | ||
| 2500 | 2741 | NL80211_AUTHTYPE_SHARED_KEY, |
| 2501 | 2742 | NL80211_AUTHTYPE_FT, |
| 2502 | 2743 | NL80211_AUTHTYPE_NETWORK_EAP, |
| 2744 | + NL80211_AUTHTYPE_SAE, | |
| 2503 | 2745 | |
| 2504 | 2746 | /* keep last */ |
| 2505 | 2747 | __NL80211_AUTHTYPE_NUM, |
| @@ -2718,10 +2960,12 @@ enum nl80211_tx_power_setting { · 212 unmodified lines | ||
| 2718 | 2960 | * corresponds to the lowest-order bit in the second byte of the mask. |
| 2719 | 2961 | * For example: The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where |
| 2720 | 2962 | * xx indicates "don't care") would be represented by a pattern of |
| 2721 | − * twelve zero bytes, and a mask of "0xed,0x07". | |
| 2963 | + * twelve zero bytes, and a mask of "0xed,0x01". | |
| 2722 | 2964 | * Note that the pattern matching is done as though frames were not |
| 2723 | 2965 | * 802.11 frames but 802.3 frames, i.e. the frame is fully unpacked |
| 2724 | 2966 | * first (including SNAP header unpacking) and then matched. |
| 2967 | + * @NL80211_WOWLAN_PKTPAT_OFFSET: packet offset, pattern is matched after | |
| 2968 | + * these fixed number of bytes of received packet | |
| 2725 | 2969 | * @NUM_NL80211_WOWLAN_PKTPAT: number of attributes |
| 2726 | 2970 | * @MAX_NL80211_WOWLAN_PKTPAT: max attribute number |
| 2727 | 2971 | */ |
| @@ -2729,6 +2973,7 @@ enum nl80211_wowlan_packet_pattern_attr { · 1 unmodified line | ||
| 2729 | 2973 | __NL80211_WOWLAN_PKTPAT_INVALID, |
| 2730 | 2974 | NL80211_WOWLAN_PKTPAT_MASK, |
| 2731 | 2975 | NL80211_WOWLAN_PKTPAT_PATTERN, |
| 2976 | + NL80211_WOWLAN_PKTPAT_OFFSET, | |
| 2732 | 2977 | |
| 2733 | 2978 | NUM_NL80211_WOWLAN_PKTPAT, |
| 2734 | 2979 | MAX_NL80211_WOWLAN_PKTPAT = NUM_NL80211_WOWLAN_PKTPAT - 1, |
| @@ -2739,6 +2984,7 @@ enum nl80211_wowlan_packet_pattern_attr { · 4 unmodified lines | ||
| 2739 | 2984 | * @max_patterns: maximum number of patterns supported |
| 2740 | 2985 | * @min_pattern_len: minimum length of each pattern |
| 2741 | 2986 | * @max_pattern_len: maximum length of each pattern |
| 2987 | + * @max_pkt_offset: maximum Rx packet offset | |
| 2742 | 2988 | * |
| 2743 | 2989 | * This struct is carried in %NL80211_WOWLAN_TRIG_PKT_PATTERN when |
| 2744 | 2990 | * that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED in the |
| @@ -2748,6 +2994,7 @@ struct nl80211_wowlan_pattern_support { · 3 unmodified lines | ||
| 2748 | 2994 | __u32 max_patterns; |
| 2749 | 2995 | __u32 min_pattern_len; |
| 2750 | 2996 | __u32 max_pattern_len; |
| 2997 | + __u32 max_pkt_offset; | |
| 2751 | 2998 | } __attribute__((packed)); |
| 2752 | 2999 | |
| 2753 | 3000 | /** |
| @@ -2763,12 +3010,17 @@ struct nl80211_wowlan_pattern_support { · 9 unmodified lines | ||
| 2763 | 3010 | * @NL80211_WOWLAN_TRIG_PKT_PATTERN: wake up on the specified packet patterns |
| 2764 | 3011 | * which are passed in an array of nested attributes, each nested attribute |
| 2765 | 3012 | * defining a with attributes from &struct nl80211_wowlan_trig_pkt_pattern. |
| 2766 | − * Each pattern defines a wakeup packet. The matching is done on the MSDU, | |
| 2767 | − * i.e. as though the packet was an 802.3 packet, so the pattern matching | |
| 2768 | − * is done after the packet is converted to the MSDU. | |
| 3013 | + * Each pattern defines a wakeup packet. Packet offset is associated with | |
| 3014 | + * each pattern which is used while matching the pattern. The matching is | |
| 3015 | + * done on the MSDU, i.e. as though the packet was an 802.3 packet, so the | |
| 3016 | + * pattern matching is done after the packet is converted to the MSDU. | |
| 2769 | 3017 | * |
| 2770 | 3018 | * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute |
| 2771 | 3019 | * carrying a &struct nl80211_wowlan_pattern_support. |
| 3020 | + * | |
| 3021 | + * When reporting wakeup. it is a u32 attribute containing the 0-based | |
| 3022 | + * index of the pattern that caused the wakeup, in the patterns passed | |
| 3023 | + * to the kernel when configuring. | |
| 2772 | 3024 | * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be |
| 2773 | 3025 | * used when setting, used only to indicate that GTK rekeying is supported |
| 2774 | 3026 | * by the device (flag) |
| @@ -2779,8 +3031,36 @@ struct nl80211_wowlan_pattern_support { · 4 unmodified lines | ||
| 2779 | 3031 | * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag) |
| 2780 | 3032 | * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released |
| 2781 | 3033 | * (on devices that have rfkill in the device) (flag) |
| 3034 | + * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211: For wakeup reporting only, contains | |
| 3035 | + * the 802.11 packet that caused the wakeup, e.g. a deauth frame. The frame | |
| 3036 | + * may be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN | |
| 3037 | + * attribute contains the original length. | |
| 3038 | + * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN: Original length of the 802.11 | |
| 3039 | + * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 | |
| 3040 | + * attribute if the packet was truncated somewhere. | |
| 3041 | + * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023: For wakeup reporting only, contains the | |
| 3042 | + * 802.11 packet that caused the wakeup, e.g. a magic packet. The frame may | |
| 3043 | + * be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN attribute | |
| 3044 | + * contains the original length. | |
| 3045 | + * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN: Original length of the 802.3 | |
| 3046 | + * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 | |
| 3047 | + * attribute if the packet was truncated somewhere. | |
| 3048 | + * @NL80211_WOWLAN_TRIG_TCP_CONNECTION: TCP connection wake, see DOC section | |
| 3049 | + * "TCP connection wakeup" for more details. This is a nested attribute | |
| 3050 | + * containing the exact information for establishing and keeping alive | |
| 3051 | + * the TCP connection. | |
| 3052 | + * @NL80211_WOWLAN_TRIG_TCP_WAKEUP_MATCH: For wakeup reporting only, the | |
| 3053 | + * wakeup packet was received on the TCP connection | |
| 3054 | + * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST: For wakeup reporting only, the | |
| 3055 | + * TCP connection was lost or failed to be established | |
| 3056 | + * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only, | |
| 3057 | + * the TCP connection ran out of tokens to use for data to send to the | |
| 3058 | + * service | |
| 2782 | 3059 | * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers |
| 2783 | 3060 | * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number |
| 3061 | + * | |
| 3062 | + * These nested attributes are used to configure the wakeup triggers and | |
| 3063 | + * to report the wakeup reason(s). | |
| 2784 | 3064 | */ |
| 2785 | 3065 | enum nl80211_wowlan_triggers { |
| 2786 | 3066 | __NL80211_WOWLAN_TRIG_INVALID, |
| @@ -2793,12 +3073,130 @@ enum nl80211_wowlan_triggers { · 6 unmodified lines | ||
| 2793 | 3073 | NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST, |
| 2794 | 3074 | NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE, |
| 2795 | 3075 | NL80211_WOWLAN_TRIG_RFKILL_RELEASE, |
| 3076 | + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211, | |
| 3077 | + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN, | |
| 3078 | + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023, | |
| 3079 | + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN, | |
| 3080 | + NL80211_WOWLAN_TRIG_TCP_CONNECTION, | |
| 3081 | + NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH, | |
| 3082 | + NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST, | |
| 3083 | + NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS, | |
| 2796 | 3084 | |
| 2797 | 3085 | /* keep last */ |
| 2798 | 3086 | NUM_NL80211_WOWLAN_TRIG, |
| 2799 | 3087 | MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1 |
| 2800 | 3088 | }; |
| 2801 | 3089 | |
| 3090 | +/** | |
| 3091 | + * DOC: TCP connection wakeup | |
| 3092 | + * | |
| 3093 | + * Some devices can establish a TCP connection in order to be woken up by a | |
| 3094 | + * packet coming in from outside their network segment, or behind NAT. If | |
| 3095 | + * configured, the device will establish a TCP connection to the given | |
| 3096 | + * service, and periodically send data to that service. The first data | |
| 3097 | + * packet is usually transmitted after SYN/ACK, also ACKing the SYN/ACK. | |
| 3098 | + * The data packets can optionally include a (little endian) sequence | |
| 3099 | + * number (in the TCP payload!) that is generated by the device, and, also | |
| 3100 | + * optionally, a token from a list of tokens. This serves as a keep-alive | |
| 3101 | + * with the service, and for NATed connections, etc. | |
| 3102 | + * | |
| 3103 | + * During this keep-alive period, the server doesn't send any data to the | |
| 3104 | + * client. When receiving data, it is compared against the wakeup pattern | |
| 3105 | + * (and mask) and if it matches, the host is woken up. Similarly, if the | |
| 3106 | + * connection breaks or cannot be established to start with, the host is | |
| 3107 | + * also woken up. | |
| 3108 | + * | |
| 3109 | + * Developer's note: ARP offload is required for this, otherwise TCP | |
| 3110 | + * response packets might not go through correctly. | |
| 3111 | + */ | |
| 3112 | + | |
| 3113 | +/** | |
| 3114 | + * struct nl80211_wowlan_tcp_data_seq - WoWLAN TCP data sequence | |
| 3115 | + * @start: starting value | |
| 3116 | + * @offset: offset of sequence number in packet | |
| 3117 | + * @len: length of the sequence value to write, 1 through 4 | |
| 3118 | + * | |
| 3119 | + * Note: don't confuse with the TCP sequence number(s), this is for the | |
| 3120 | + * keepalive packet payload. The actual value is written into the packet | |
| 3121 | + * in little endian. | |
| 3122 | + */ | |
| 3123 | +struct nl80211_wowlan_tcp_data_seq { | |
| 3124 | + __u32 start, offset, len; | |
| 3125 | +}; | |
| 3126 | + | |
| 3127 | +/** | |
| 3128 | + * struct nl80211_wowlan_tcp_data_token - WoWLAN TCP data token config | |
| 3129 | + * @offset: offset of token in packet | |
| 3130 | + * @len: length of each token | |
| 3131 | + * @token_stream: stream of data to be used for the tokens, the length must | |
| 3132 | + * be a multiple of @len for this to make sense | |
| 3133 | + */ | |
| 3134 | +struct nl80211_wowlan_tcp_data_token { | |
| 3135 | + __u32 offset, len; | |
| 3136 | + __u8 token_stream[]; | |
| 3137 | +}; | |
| 3138 | + | |
| 3139 | +/** | |
| 3140 | + * struct nl80211_wowlan_tcp_data_token_feature - data token features | |
| 3141 | + * @min_len: minimum token length | |
| 3142 | + * @max_len: maximum token length | |
| 3143 | + * @bufsize: total available token buffer size (max size of @token_stream) | |
| 3144 | + */ | |
| 3145 | +struct nl80211_wowlan_tcp_data_token_feature { | |
| 3146 | + __u32 min_len, max_len, bufsize; | |
| 3147 | +}; | |
| 3148 | + | |
| 3149 | +/** | |
| 3150 | + * enum nl80211_wowlan_tcp_attrs - WoWLAN TCP connection parameters | |
| 3151 | + * @__NL80211_WOWLAN_TCP_INVALID: invalid number for nested attributes | |
| 3152 | + * @NL80211_WOWLAN_TCP_SRC_IPV4: source IPv4 address (in network byte order) | |
| 3153 | + * @NL80211_WOWLAN_TCP_DST_IPV4: destination IPv4 address | |
| 3154 | + * (in network byte order) | |
| 3155 | + * @NL80211_WOWLAN_TCP_DST_MAC: destination MAC address, this is given because | |
| 3156 | + * route lookup when configured might be invalid by the time we suspend, | |
| 3157 | + * and doing a route lookup when suspending is no longer possible as it | |
| 3158 | + * might require ARP querying. | |
| 3159 | + * @NL80211_WOWLAN_TCP_SRC_PORT: source port (u16); optional, if not given a | |
| 3160 | + * socket and port will be allocated | |
| 3161 | + * @NL80211_WOWLAN_TCP_DST_PORT: destination port (u16) | |
| 3162 | + * @NL80211_WOWLAN_TCP_DATA_PAYLOAD: data packet payload, at least one byte. | |
| 3163 | + * For feature advertising, a u32 attribute holding the maximum length | |
| 3164 | + * of the data payload. | |
| 3165 | + * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ: data packet sequence configuration | |
| 3166 | + * (if desired), a &struct nl80211_wowlan_tcp_data_seq. For feature | |
| 3167 | + * advertising it is just a flag | |
| 3168 | + * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN: data packet token configuration, | |
| 3169 | + * see &struct nl80211_wowlan_tcp_data_token and for advertising see | |
| 3170 | + * &struct nl80211_wowlan_tcp_data_token_feature. | |
| 3171 | + * @NL80211_WOWLAN_TCP_DATA_INTERVAL: data interval in seconds, maximum | |
| 3172 | + * interval in feature advertising (u32) | |
| 3173 | + * @NL80211_WOWLAN_TCP_WAKE_PAYLOAD: wake packet payload, for advertising a | |
| 3174 | + * u32 attribute holding the maximum length | |
| 3175 | + * @NL80211_WOWLAN_TCP_WAKE_MASK: Wake packet payload mask, not used for | |
| 3176 | + * feature advertising. The mask works like @NL80211_WOWLAN_PKTPAT_MASK | |
| 3177 | + * but on the TCP payload only. | |
| 3178 | + * @NUM_NL80211_WOWLAN_TCP: number of TCP attributes | |
| 3179 | + * @MAX_NL80211_WOWLAN_TCP: highest attribute number | |
| 3180 | + */ | |
| 3181 | +enum nl80211_wowlan_tcp_attrs { | |
| 3182 | + __NL80211_WOWLAN_TCP_INVALID, | |
| 3183 | + NL80211_WOWLAN_TCP_SRC_IPV4, | |
| 3184 | + NL80211_WOWLAN_TCP_DST_IPV4, | |
| 3185 | + NL80211_WOWLAN_TCP_DST_MAC, | |
| 3186 | + NL80211_WOWLAN_TCP_SRC_PORT, | |
| 3187 | + NL80211_WOWLAN_TCP_DST_PORT, | |
| 3188 | + NL80211_WOWLAN_TCP_DATA_PAYLOAD, | |
| 3189 | + NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ, | |
| 3190 | + NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN, | |
| 3191 | + NL80211_WOWLAN_TCP_DATA_INTERVAL, | |
| 3192 | + NL80211_WOWLAN_TCP_WAKE_PAYLOAD, | |
| 3193 | + NL80211_WOWLAN_TCP_WAKE_MASK, | |
| 3194 | + | |
| 3195 | + /* keep last */ | |
| 3196 | + NUM_NL80211_WOWLAN_TCP, | |
| 3197 | + MAX_NL80211_WOWLAN_TCP = NUM_NL80211_WOWLAN_TCP - 1 | |
| 3198 | +}; | |
| 3199 | + | |
| 2802 | 3200 | /** |
| 2803 | 3201 | * enum nl80211_iface_limit_attrs - limit attributes |
| 2804 | 3202 | * @NL80211_IFACE_LIMIT_UNSPEC: (reserved) |
| @@ -2835,6 +3233,8 @@ enum nl80211_iface_limit_attrs { · 30 unmodified lines | ||
| 2835 | 3233 | * the infrastructure network's beacon interval. |
| 2836 | 3234 | * @NL80211_IFACE_COMB_NUM_CHANNELS: u32 attribute specifying how many |
| 2837 | 3235 | * different channels may be used within this group. |
| 3236 | + * @NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS: u32 attribute containing the bitmap | |
| 3237 | + * of supported channel widths for radar detection. | |
| 2838 | 3238 | * @NUM_NL80211_IFACE_COMB: number of attributes |
| 2839 | 3239 | * @MAX_NL80211_IFACE_COMB: highest attribute number |
| 2840 | 3240 | * |
| @@ -2867,6 +3267,7 @@ enum nl80211_if_combination_attrs { · 26 unmodified lines | ||
| 2867 | 3267 | NL80211_IFACE_COMB_MAXNUM, |
| 2868 | 3268 | NL80211_IFACE_COMB_STA_AP_BI_MATCH, |
| 2869 | 3269 | NL80211_IFACE_COMB_NUM_CHANNELS, |
| 3270 | + NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS, | |
| 2870 | 3271 | |
| 2871 | 3272 | /* keep last */ |
| 2872 | 3273 | NUM_NL80211_IFACE_COMB, |
| @@ -3028,6 +3429,33 @@ enum nl80211_ap_sme_features { · 155 unmodified lines | ||
| 3028 | 3429 | * in the interface combinations, even when it's only used for scan |
| 3029 | 3430 | * and remain-on-channel. This could be due to, for example, the |
| 3030 | 3431 | * remain-on-channel implementation requiring a channel context. |
| 3432 | + * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of | |
| 3433 | + * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station | |
| 3434 | + * mode | |
| 3435 | + * @NL80211_FEATURE_LOW_PRIORITY_SCAN: This driver supports low priority scan | |
| 3436 | + * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported | |
| 3437 | + * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif | |
| 3438 | + * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting | |
| 3439 | + * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform | |
| 3440 | + * OBSS scans and generate 20/40 BSS coex reports. This flag is used only | |
| 3441 | + * for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied. | |
| 3442 | + * @NL80211_FEATURE_P2P_GO_CTWIN: P2P GO implementation supports CT Window | |
| 3443 | + * setting | |
| 3444 | + * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic | |
| 3445 | + * powersave | |
| 3446 | + * @NL80211_FEATURE_FULL_AP_CLIENT_STATE: The driver supports full state | |
| 3447 | + * transitions for AP clients. Without this flag (and if the driver | |
| 3448 | + * doesn't have the AP SME in the device) the driver supports adding | |
| 3449 | + * stations only when they're associated and adds them in associated | |
| 3450 | + * state (to later be transitioned into authorized), with this flag | |
| 3451 | + * they should be added before even sending the authentication reply | |
| 3452 | + * and then transitioned into authenticated, associated and authorized | |
| 3453 | + * states using station flags. | |
| 3454 | + * Note that even for drivers that support this, the default is to add | |
| 3455 | + * stations in authenticated/associated state, so to add unauthenticated | |
| 3456 | + * stations the authenticated/associated bits have to be set in the mask. | |
| 3457 | + * @NL80211_FEATURE_ADVERTISE_CHAN_LIMITS: cfg80211 advertises channel limits | |
| 3458 | + * (HT40, VHT 80/160 MHz) if this flag is set | |
| 3031 | 3459 | */ |
| 3032 | 3460 | enum nl80211_feature_flags { |
| 3033 | 3461 | NL80211_FEATURE_SK_TX_STATUS = 1 << 0, |
| @@ -3035,6 +3463,17 @@ enum nl80211_feature_flags { · 1 unmodified line | ||
| 3035 | 3463 | NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, |
| 3036 | 3464 | NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, |
| 3037 | 3465 | NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, |
| 3466 | + NL80211_FEATURE_SAE = 1 << 5, | |
| 3467 | + NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, | |
| 3468 | + NL80211_FEATURE_SCAN_FLUSH = 1 << 7, | |
| 3469 | + NL80211_FEATURE_AP_SCAN = 1 << 8, | |
| 3470 | + NL80211_FEATURE_VIF_TXPOWER = 1 << 9, | |
| 3471 | + NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10, | |
| 3472 | + NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11, | |
| 3473 | + NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12, | |
| 3474 | + /* bit 13 is reserved */ | |
| 3475 | + NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 1 << 14, | |
| 3476 | + NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15, | |
| 3038 | 3477 | }; |
| 3039 | 3478 | |
| 3040 | 3479 | /** |
| @@ -3062,11 +3501,90 @@ enum nl80211_probe_resp_offload_support_attr { · 21 unmodified lines | ||
| 3062 | 3501 | * enum nl80211_connect_failed_reason - connection request failed reasons |
| 3063 | 3502 | * @NL80211_CONN_FAIL_MAX_CLIENTS: Maximum number of clients that can be |
| 3064 | 3503 | * handled by the AP is reached. |
| 3065 | − * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Client's MAC is in the AP's blocklist. | |
| 3504 | + * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Connection request is rejected due to ACL. | |
| 3066 | 3505 | */ |
| 3067 | 3506 | enum nl80211_connect_failed_reason { |
| 3068 | 3507 | NL80211_CONN_FAIL_MAX_CLIENTS, |
| 3069 | 3508 | NL80211_CONN_FAIL_BLOCKED_CLIENT, |
| 3070 | 3509 | }; |
| 3071 | 3510 | |
| 3511 | +/** | |
| 3512 | + * enum nl80211_scan_flags - scan request control flags | |
| 3513 | + * | |
| 3514 | + * Scan request control flags are used to control the handling | |
| 3515 | + * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN | |
| 3516 | + * requests. | |
| 3517 | + * | |
| 3518 | + * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority | |
| 3519 | + * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning | |
| 3520 | + * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured | |
| 3521 | + * as AP and the beaconing has already been configured. This attribute is | |
| 3522 | + * dangerous because will destroy stations performance as a lot of frames | |
| 3523 | + * will be lost while scanning off-channel, therefore it must be used only | |
| 3524 | + * when really needed | |
| 3525 | + */ | |
| 3526 | +enum nl80211_scan_flags { | |
| 3527 | + NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, | |
| 3528 | + NL80211_SCAN_FLAG_FLUSH = 1<<1, | |
| 3529 | + NL80211_SCAN_FLAG_AP = 1<<2, | |
| 3530 | +}; | |
| 3531 | + | |
| 3532 | +/** | |
| 3533 | + * enum nl80211_acl_policy - access control policy | |
| 3534 | + * | |
| 3535 | + * Access control policy is applied on a MAC list set by | |
| 3536 | + * %NL80211_CMD_START_AP and %NL80211_CMD_SET_MAC_ACL, to | |
| 3537 | + * be used with %NL80211_ATTR_ACL_POLICY. | |
| 3538 | + * | |
| 3539 | + * @NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED: Deny stations which are | |
| 3540 | + * listed in ACL, i.e. allow all the stations which are not listed | |
| 3541 | + * in ACL to authenticate. | |
| 3542 | + * @NL80211_ACL_POLICY_DENY_UNLESS_LISTED: Allow the stations which are listed | |
| 3543 | + * in ACL, i.e. deny all the stations which are not listed in ACL. | |
| 3544 | + */ | |
| 3545 | +enum nl80211_acl_policy { | |
| 3546 | + NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED, | |
| 3547 | + NL80211_ACL_POLICY_DENY_UNLESS_LISTED, | |
| 3548 | +}; | |
| 3549 | + | |
| 3550 | +/** | |
| 3551 | + * enum nl80211_radar_event - type of radar event for DFS operation | |
| 3552 | + * | |
| 3553 | + * Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace | |
| 3554 | + * about detected radars or success of the channel available check (CAC) | |
| 3555 | + * | |
| 3556 | + * @NL80211_RADAR_DETECTED: A radar pattern has been detected. The channel is | |
| 3557 | + * now unusable. | |
| 3558 | + * @NL80211_RADAR_CAC_FINISHED: Channel Availability Check has been finished, | |
| 3559 | + * the channel is now available. | |
| 3560 | + * @NL80211_RADAR_CAC_ABORTED: Channel Availability Check has been aborted, no | |
| 3561 | + * change to the channel status. | |
| 3562 | + * @NL80211_RADAR_NOP_FINISHED: The Non-Occupancy Period for this channel is | |
| 3563 | + * over, channel becomes usable. | |
| 3564 | + */ | |
| 3565 | +enum nl80211_radar_event { | |
| 3566 | + NL80211_RADAR_DETECTED, | |
| 3567 | + NL80211_RADAR_CAC_FINISHED, | |
| 3568 | + NL80211_RADAR_CAC_ABORTED, | |
| 3569 | + NL80211_RADAR_NOP_FINISHED, | |
| 3570 | +}; | |
| 3571 | + | |
| 3572 | +/** | |
| 3573 | + * enum nl80211_dfs_state - DFS states for channels | |
| 3574 | + * | |
| 3575 | + * Channel states used by the DFS code. | |
| 3576 | + * | |
| 3577 | + * @IEEE80211_DFS_USABLE: The channel can be used, but channel availability | |
| 3578 | + * check (CAC) must be performed before using it for AP or IBSS. | |
| 3579 | + * @IEEE80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it | |
| 3580 | + * is therefore marked as not available. | |
| 3581 | + * @IEEE80211_DFS_AVAILABLE: The channel has been CAC checked and is available. | |
| 3582 | + */ | |
| 3583 | + | |
| 3584 | +enum nl80211_dfs_state { | |
| 3585 | + NL80211_DFS_USABLE, | |
| 3586 | + NL80211_DFS_UNAVAILABLE, | |
| 3587 | + NL80211_DFS_AVAILABLE, | |
| 3588 | +}; | |
| 3589 | + | |
| 3072 | 3590 | #endif /* __LINUX_NL80211_H */ |
| @@ -8,4 +8,13 @@ · 7 unmodified lines | ||
| 8 | 8 | #define OOM_SCORE_ADJ_MIN (-1000) |
| 9 | 9 | #define OOM_SCORE_ADJ_MAX 1000 |
| 10 | 10 | |
| 11 | +/* | |
| 12 | + * /proc/<pid>/oom_adj set to -17 protects from the oom killer for legacy | |
| 13 | + * purposes. | |
| 14 | + */ | |
| 15 | +#define OOM_DISABLE (-17) | |
| 16 | +/* inclusive */ | |
| 17 | +#define OOM_ADJUST_MIN (-16) | |
| 18 | +#define OOM_ADJUST_MAX 15 | |
| 19 | + | |
| 11 | 20 | #endif /* _UAPI__INCLUDE_LINUX_OOM_H */ |
| @@ -349,7 +349,7 @@ · 348 unmodified lines | ||
| 349 | 349 | #define PCI_AF_STATUS_TP 0x01 |
| 350 | 350 | #define PCI_CAP_AF_SIZEOF 6 /* size of AF registers */ |
| 351 | 351 | |
| 352 | −/* PCI-X registers */ | |
| 352 | +/* PCI-X registers (Type 0 (non-bridge) devices) */ | |
| 353 | 353 | |
| 354 | 354 | #define PCI_X_CMD 2 /* Modes & Features */ |
| 355 | 355 | #define PCI_X_CMD_DPERR_E 0x0001 /* Data Parity Error Recovery Enable */ |
| @@ -389,6 +389,19 @@ · 33 unmodified lines | ||
| 389 | 389 | #define PCI_CAP_PCIX_SIZEOF_V1 24 /* size for Version 1 */ |
| 390 | 390 | #define PCI_CAP_PCIX_SIZEOF_V2 PCI_CAP_PCIX_SIZEOF_V1 /* Same for v2 */ |
| 391 | 391 | |
| 392 | +/* PCI-X registers (Type 1 (bridge) devices) */ | |
| 393 | + | |
| 394 | +#define PCI_X_BRIDGE_SSTATUS 2 /* Secondary Status */ | |
| 395 | +#define PCI_X_SSTATUS_64BIT 0x0001 /* Secondary AD interface is 64 bits */ | |
| 396 | +#define PCI_X_SSTATUS_133MHZ 0x0002 /* 133 MHz capable */ | |
| 397 | +#define PCI_X_SSTATUS_FREQ 0x03c0 /* Secondary Bus Mode and Frequency */ | |
| 398 | +#define PCI_X_SSTATUS_VERS 0x3000 /* PCI-X Capability Version */ | |
| 399 | +#define PCI_X_SSTATUS_V1 0x1000 /* Mode 2, not Mode 1 */ | |
| 400 | +#define PCI_X_SSTATUS_V2 0x2000 /* Mode 1 or Modes 1 and 2 */ | |
| 401 | +#define PCI_X_SSTATUS_266MHZ 0x4000 /* 266 MHz capable */ | |
| 402 | +#define PCI_X_SSTATUS_533MHZ 0x8000 /* 533 MHz capable */ | |
| 403 | +#define PCI_X_BRIDGE_STATUS 4 /* Bridge Status */ | |
| 404 | + | |
| 392 | 405 | /* PCI Bridge Subsystem ID registers */ |
| 393 | 406 | |
| 394 | 407 | #define PCI_SSVID_VENDOR_ID 4 /* PCI-Bridge subsystem vendor id register */ |
| @@ -445,6 +458,8 @@ · 50 unmodified lines | ||
| 445 | 458 | #define PCI_EXP_DEVSTA_TRPND 0x20 /* Transactions Pending */ |
| 446 | 459 | #define PCI_EXP_LNKCAP 12 /* Link Capabilities */ |
| 447 | 460 | #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ |
| 461 | +#define PCI_EXP_LNKCAP_SLS_2_5GB 0x1 /* LNKCAP2 SLS Vector bit 0 (2.5GT/s) */ | |
| 462 | +#define PCI_EXP_LNKCAP_SLS_5_0GB 0x2 /* LNKCAP2 SLS Vector bit 1 (5.0GT/s) */ | |
| 448 | 463 | #define PCI_EXP_LNKCAP_MLW 0x000003f0 /* Maximum Link Width */ |
| 449 | 464 | #define PCI_EXP_LNKCAP_ASPMS 0x00000c00 /* ASPM Support */ |
| 450 | 465 | #define PCI_EXP_LNKCAP_L0SEL 0x00007000 /* L0s Exit Latency */ |
| @@ -456,6 +471,8 @@ · 5 unmodified lines | ||
| 456 | 471 | #define PCI_EXP_LNKCAP_PN 0xff000000 /* Port Number */ |
| 457 | 472 | #define PCI_EXP_LNKCTL 16 /* Link Control */ |
| 458 | 473 | #define PCI_EXP_LNKCTL_ASPMC 0x0003 /* ASPM Control */ |
| 474 | +#define PCI_EXP_LNKCTL_ASPM_L0S 0x01 /* L0s Enable */ | |
| 475 | +#define PCI_EXP_LNKCTL_ASPM_L1 0x02 /* L1 Enable */ | |
| 459 | 476 | #define PCI_EXP_LNKCTL_RCB 0x0008 /* Read Completion Boundary */ |
| 460 | 477 | #define PCI_EXP_LNKCTL_LD 0x0010 /* Link Disable */ |
| 461 | 478 | #define PCI_EXP_LNKCTL_RL 0x0020 /* Retrain Link */ |
| @@ -544,9 +561,9 @@ · 82 unmodified lines | ||
| 544 | 561 | #define PCI_EXP_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ |
| 545 | 562 | #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */ |
| 546 | 563 | #define PCI_EXP_LNKCAP2 44 /* Link Capability 2 */ |
| 547 | −#define PCI_EXP_LNKCAP2_SLS_2_5GB 0x01 /* Current Link Speed 2.5GT/s */ | |
| 548 | −#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x02 /* Current Link Speed 5.0GT/s */ | |
| 549 | −#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x04 /* Current Link Speed 8.0GT/s */ | |
| 564 | +#define PCI_EXP_LNKCAP2_SLS_2_5GB 0x02 /* Supported Link Speed 2.5GT/s */ | |
| 565 | +#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x04 /* Supported Link Speed 5.0GT/s */ | |
| 566 | +#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x08 /* Supported Link Speed 8.0GT/s */ | |
| 550 | 567 | #define PCI_EXP_LNKCAP2_CROSSLINK 0x100 /* Crosslink supported */ |
| 551 | 568 | #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ |
| 552 | 569 | #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ |
| @@ -579,7 +579,8 @@ enum perf_event_type { · 578 unmodified lines | ||
| 579 | 579 | * { u32 size; |
| 580 | 580 | * char data[size];}&& PERF_SAMPLE_RAW |
| 581 | 581 | * |
| 582 | − * { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK | |
| 582 | + * { u64 nr; | |
| 583 | + * { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK | |
| 583 | 584 | * |
| 584 | 585 | * { u64 abi; # enum perf_sample_regs_abi |
| 585 | 586 | * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_USER |
| @@ -67,12 +67,26 @@ struct ptp_perout_request { · 66 unmodified lines | ||
| 67 | 67 | unsigned int rsv[4]; /* Reserved for future use. */ |
| 68 | 68 | }; |
| 69 | 69 | |
| 70 | +#define PTP_MAX_SAMPLES 25 /* Maximum allowed offset measurement samples. */ | |
| 71 | + | |
| 72 | +struct ptp_sys_offset { | |
| 73 | + unsigned int n_samples; /* Desired number of measurements. */ | |
| 74 | + unsigned int rsv[3]; /* Reserved for future use. */ | |
| 75 | + /* | |
| 76 | + * Array of interleaved system/phc time stamps. The kernel | |
| 77 | + * will provide 2*n_samples + 1 time stamps, with the last | |
| 78 | + * one as a system time stamp. | |
| 79 | + */ | |
| 80 | + struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1]; | |
| 81 | +}; | |
| 82 | + | |
| 70 | 83 | #define PTP_CLK_MAGIC '=' |
| 71 | 84 | |
| 72 | 85 | #define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps) |
| 73 | 86 | #define PTP_EXTTS_REQUEST _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request) |
| 74 | 87 | #define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request) |
| 75 | 88 | #define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int) |
| 89 | +#define PTP_SYS_OFFSET _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset) | |
| 76 | 90 | |
| 77 | 91 | struct ptp_extts_event { |
| 78 | 92 | struct ptp_clock_time t; /* Time event occured. */ |
| @@ -73,7 +73,10 @@ · 72 unmodified lines | ||
| 73 | 73 | #define PTRACE_O_TRACEEXIT (1 << PTRACE_EVENT_EXIT) |
| 74 | 74 | #define PTRACE_O_TRACESECCOMP (1 << PTRACE_EVENT_SECCOMP) |
| 75 | 75 | |
| 76 | −#define PTRACE_O_MASK 0x000000ff | |
| 76 | +/* eventless options */ | |
| 77 | +#define PTRACE_O_EXITKILL (1 << 20) | |
| 78 | + | |
| 79 | +#define PTRACE_O_MASK (0x000000ff | PTRACE_O_EXITKILL) | |
| 77 | 80 | |
| 78 | 81 | #include <asm/ptrace.h> |
| 79 | 82 | |
| @@ -145,16 +145,18 @@ typedef struct mdp_superblock_s { · 144 unmodified lines | ||
| 145 | 145 | __u32 failed_disks; /* 4 Number of failed disks */ |
| 146 | 146 | __u32 spare_disks; /* 5 Number of spare disks */ |
| 147 | 147 | __u32 sb_csum; /* 6 checksum of the whole superblock */ |
| 148 | −#ifdef __BIG_ENDIAN | |
| 148 | +#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) | |
| 149 | 149 | __u32 events_hi; /* 7 high-order of superblock update count */ |
| 150 | 150 | __u32 events_lo; /* 8 low-order of superblock update count */ |
| 151 | 151 | __u32 cp_events_hi; /* 9 high-order of checkpoint update count */ |
| 152 | 152 | __u32 cp_events_lo; /* 10 low-order of checkpoint update count */ |
| 153 | −#else | |
| 153 | +#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) | |
| 154 | 154 | __u32 events_lo; /* 7 low-order of superblock update count */ |
| 155 | 155 | __u32 events_hi; /* 8 high-order of superblock update count */ |
| 156 | 156 | __u32 cp_events_lo; /* 9 low-order of checkpoint update count */ |
| 157 | 157 | __u32 cp_events_hi; /* 10 high-order of checkpoint update count */ |
| 158 | +#else | |
| 159 | +#error unspecified endianness | |
| 158 | 160 | #endif |
| 159 | 161 | __u32 recovery_cp; /* 11 recovery checkpoint sector count */ |
| 160 | 162 | /* There are only valid for minor_version > 90 */ |
| @@ -120,6 +120,18 @@ enum { · 119 unmodified lines | ||
| 120 | 120 | RTM_SETDCB, |
| 121 | 121 | #define RTM_SETDCB RTM_SETDCB |
| 122 | 122 | |
| 123 | + RTM_NEWNETCONF = 80, | |
| 124 | +#define RTM_NEWNETCONF RTM_NEWNETCONF | |
| 125 | + RTM_GETNETCONF = 82, | |
| 126 | +#define RTM_GETNETCONF RTM_GETNETCONF | |
| 127 | + | |
| 128 | + RTM_NEWMDB = 84, | |
| 129 | +#define RTM_NEWMDB RTM_NEWMDB | |
| 130 | + RTM_DELMDB = 85, | |
| 131 | +#define RTM_DELMDB RTM_DELMDB | |
| 132 | + RTM_GETMDB = 86, | |
| 133 | +#define RTM_GETMDB RTM_GETMDB | |
| 134 | + | |
| 123 | 135 | __RTM_MAX, |
| 124 | 136 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) |
| 125 | 137 | }; |
| @@ -222,6 +234,7 @@ enum { · 96 unmodified lines | ||
| 222 | 234 | #define RTPROT_XORP 14 /* XORP */ |
| 223 | 235 | #define RTPROT_NTK 15 /* Netsukuku */ |
| 224 | 236 | #define RTPROT_DHCP 16 /* DHCP client */ |
| 237 | +#define RTPROT_MROUTED 17 /* Multicast daemon */ | |
| 225 | 238 | |
| 226 | 239 | /* rtm_scope |
| 227 | 240 | |
| @@ -283,6 +296,7 @@ enum rtattr_type_t { · 55 unmodified lines | ||
| 283 | 296 | RTA_MP_ALGO, /* no longer used */ |
| 284 | 297 | RTA_TABLE, |
| 285 | 298 | RTA_MARK, |
| 299 | + RTA_MFC_STATS, | |
| 286 | 300 | __RTA_MAX |
| 287 | 301 | }; |
| 288 | 302 | |
| @@ -403,6 +417,12 @@ struct rta_session { · 114 unmodified lines | ||
| 403 | 417 | } u; |
| 404 | 418 | }; |
| 405 | 419 | |
| 420 | +struct rta_mfc_stats { | |
| 421 | + __u64 mfcs_packets; | |
| 422 | + __u64 mfcs_bytes; | |
| 423 | + __u64 mfcs_wrong_if; | |
| 424 | +}; | |
| 425 | + | |
| 406 | 426 | /**** |
| 407 | 427 | * General form of address family dependent message. |
| 408 | 428 | ****/ |
| @@ -587,6 +607,12 @@ enum rtnetlink_groups { · 178 unmodified lines | ||
| 587 | 607 | #define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE |
| 588 | 608 | RTNLGRP_DCB, |
| 589 | 609 | #define RTNLGRP_DCB RTNLGRP_DCB |
| 610 | + RTNLGRP_IPV4_NETCONF, | |
| 611 | +#define RTNLGRP_IPV4_NETCONF RTNLGRP_IPV4_NETCONF | |
| 612 | + RTNLGRP_IPV6_NETCONF, | |
| 613 | +#define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF | |
| 614 | + RTNLGRP_MDB, | |
| 615 | +#define RTNLGRP_MDB RTNLGRP_MDB | |
| 590 | 616 | __RTNLGRP_MAX |
| 591 | 617 | }; |
| 592 | 618 | #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) |
| @@ -604,6 +630,7 @@ struct tcamsg { · 11 unmodified lines | ||
| 604 | 630 | |
| 605 | 631 | /* New extended info filters for IFLA_EXT_MASK */ |
| 606 | 632 | #define RTEXT_FILTER_VF (1 << 0) |
| 633 | +#define RTEXT_FILTER_BRVLAN (1 << 1) | |
| 607 | 634 | |
| 608 | 635 | /* End of information exported to user level */ |
| 609 | 636 | |
| @@ -49,7 +49,12 @@ · 48 unmodified lines | ||
| 49 | 49 | #define PORT_XR17D15X 21 /* Exar XR17D15x UART */ |
| 50 | 50 | #define PORT_LPC3220 22 /* NXP LPC32xx SoC "Standard" UART */ |
| 51 | 51 | #define PORT_8250_CIR 23 /* CIR infrared port, has its own driver */ |
| 52 | −#define PORT_MAX_8250 23 /* max port ID */ | |
| 52 | +#define PORT_XR17V35X 24 /* Exar XR17V35x UARTs */ | |
| 53 | +#define PORT_BRCM_TRUMANAGE 25 | |
| 54 | +#define PORT_ALTR_16550_F32 26 /* Altera 16550 UART with 32 FIFOs */ | |
| 55 | +#define PORT_ALTR_16550_F64 27 /* Altera 16550 UART with 64 FIFOs */ | |
| 56 | +#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ | |
| 57 | +#define PORT_MAX_8250 28 /* max port ID */ | |
| 53 | 58 | |
| 54 | 59 | /* |
| 55 | 60 | * ARM specific type numbers. These are not currently guaranteed |
| @@ -215,5 +220,10 @@ · 159 unmodified lines | ||
| 215 | 220 | /* Energy Micro efm32 SoC */ |
| 216 | 221 | #define PORT_EFMUART 100 |
| 217 | 222 | |
| 223 | +/* ARC (Synopsys) on-chip UART */ | |
| 224 | +#define PORT_ARC 101 | |
| 225 | + | |
| 226 | +/* Rocketport EXPRESS/INFINITY */ | |
| 227 | +#define PORT_RP2 102 | |
| 218 | 228 | |
| 219 | 229 | #endif /* _UAPILINUX_SERIAL_CORE_H */ |
| @@ -367,5 +367,23 @@ · 366 unmodified lines | ||
| 367 | 367 | #define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */ |
| 368 | 368 | #define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */ |
| 369 | 369 | |
| 370 | +/* | |
| 371 | + * These are definitions for the Exar XR17V35X and XR17(C|D)15X | |
| 372 | + */ | |
| 373 | +#define UART_EXAR_8XMODE 0x88 /* 8X sampling rate select */ | |
| 374 | +#define UART_EXAR_SLEEP 0x8b /* Sleep mode */ | |
| 375 | +#define UART_EXAR_DVID 0x8d /* Device identification */ | |
| 376 | + | |
| 377 | +#define UART_EXAR_FCTR 0x08 /* Feature Control Register */ | |
| 378 | +#define UART_FCTR_EXAR_IRDA 0x08 /* IrDa data encode select */ | |
| 379 | +#define UART_FCTR_EXAR_485 0x10 /* Auto 485 half duplex dir ctl */ | |
| 380 | +#define UART_FCTR_EXAR_TRGA 0x00 /* FIFO trigger table A */ | |
| 381 | +#define UART_FCTR_EXAR_TRGB 0x60 /* FIFO trigger table B */ | |
| 382 | +#define UART_FCTR_EXAR_TRGC 0x80 /* FIFO trigger table C */ | |
| 383 | +#define UART_FCTR_EXAR_TRGD 0xc0 /* FIFO trigger table D programmable */ | |
| 384 | + | |
| 385 | +#define UART_EXAR_TXTRG 0x0a /* Tx FIFO trigger level write-only */ | |
| 386 | +#define UART_EXAR_RXTRG 0x0b /* Rx FIFO trigger level write-only */ | |
| 387 | + | |
| 370 | 388 | #endif /* _LINUX_SERIAL_REG_H */ |
| 371 | 389 | |
| @@ -4,5 +4,7 @@ · 3 unmodified lines | ||
| 4 | 4 | #include <asm/signal.h> |
| 5 | 5 | #include <asm/siginfo.h> |
| 6 | 6 | |
| 7 | +#define SS_ONSTACK 1 | |
| 8 | +#define SS_DISABLE 2 | |
| 7 | 9 | |
| 8 | 10 | #endif /* _UAPI_LINUX_SIGNAL_H */ |
| @@ -278,6 +278,7 @@ enum · 277 unmodified lines | ||
| 278 | 278 | LINUX_MIB_XFRMOUTPOLDEAD, /* XfrmOutPolDead */ |
| 279 | 279 | LINUX_MIB_XFRMOUTPOLERROR, /* XfrmOutPolError */ |
| 280 | 280 | LINUX_MIB_XFRMFWDHDRERROR, /* XfrmFwdHdrError*/ |
| 281 | + LINUX_MIB_XFRMOUTSTATEINVALID, /* XfrmOutStateInvalid */ | |
| 281 | 282 | __LINUX_MIB_XFRMMAX |
| 282 | 283 | }; |
| 283 | 284 | |
| @@ -45,7 +45,9 @@ · 44 unmodified lines | ||
| 45 | 45 | |
| 46 | 46 | static inline __attribute_const__ __u16 __fswab16(__u16 val) |
| 47 | 47 | { |
| 48 | −#ifdef __arch_swab16 | |
| 48 | +#ifdef __HAVE_BUILTIN_BSWAP16__ | |
| 49 | + return __builtin_bswap16(val); | |
| 50 | +#elif defined (__arch_swab16) | |
| 49 | 51 | return __arch_swab16(val); |
| 50 | 52 | #else |
| 51 | 53 | return ___constant_swab16(val); |
| @@ -54,7 +56,9 @@ static inline __attribute_const__ __u16 __fswab16(__u16 val) · 2 unmodified lines | ||
| 54 | 56 | |
| 55 | 57 | static inline __attribute_const__ __u32 __fswab32(__u32 val) |
| 56 | 58 | { |
| 57 | −#ifdef __arch_swab32 | |
| 59 | +#ifdef __HAVE_BUILTIN_BSWAP32__ | |
| 60 | + return __builtin_bswap32(val); | |
| 61 | +#elif defined(__arch_swab32) | |
| 58 | 62 | return __arch_swab32(val); |
| 59 | 63 | #else |
| 60 | 64 | return ___constant_swab32(val); |
| @@ -63,7 +67,9 @@ static inline __attribute_const__ __u32 __fswab32(__u32 val) · 2 unmodified lines | ||
| 63 | 67 | |
| 64 | 68 | static inline __attribute_const__ __u64 __fswab64(__u64 val) |
| 65 | 69 | { |
| 66 | −#ifdef __arch_swab64 | |
| 70 | +#ifdef __HAVE_BUILTIN_BSWAP64__ | |
| 71 | + return __builtin_bswap64(val); | |
| 72 | +#elif defined (__arch_swab64) | |
| 67 | 73 | return __arch_swab64(val); |
| 68 | 74 | #elif defined(__SWAB_64_THRU_32__) |
| 69 | 75 | __u32 h = val >> 32; |
| @@ -111,6 +111,7 @@ enum { · 110 unmodified lines | ||
| 111 | 111 | #define TCP_QUEUE_SEQ 21 |
| 112 | 112 | #define TCP_REPAIR_OPTIONS 22 |
| 113 | 113 | #define TCP_FASTOPEN 23 /* Enable FastOpen on listeners */ |
| 114 | +#define TCP_TIMESTAMP 24 | |
| 114 | 115 | |
| 115 | 116 | struct tcp_repair_opt { |
| 116 | 117 | __u32 opt_code; |
| @@ -86,7 +86,7 @@ struct uhid_feature_answer_req { · 85 unmodified lines | ||
| 86 | 86 | __u16 err; |
| 87 | 87 | __u16 size; |
| 88 | 88 | __u8 data[UHID_DATA_MAX]; |
| 89 | −}; | |
| 89 | +} __attribute__((__packed__)); | |
| 90 | 90 | |
| 91 | 91 | struct uhid_event { |
| 92 | 92 | __u32 type; |
| @@ -37,6 +37,7 @@ enum { · 36 unmodified lines | ||
| 37 | 37 | UNIX_DIAG_ICONS, |
| 38 | 38 | UNIX_DIAG_RQLEN, |
| 39 | 39 | UNIX_DIAG_MEMINFO, |
| 40 | + UNIX_DIAG_SHUTDOWN, | |
| 40 | 41 | |
| 41 | 42 | UNIX_DIAG_MAX, |
| 42 | 43 | }; |
| @@ -384,14 +384,16 @@ static inline __u8 uac_processing_unit_iProcessing(struct uac_processing_unit_de · 383 unmodified lines | ||
| 384 | 384 | int protocol) |
| 385 | 385 | { |
| 386 | 386 | __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); |
| 387 | − return desc->baSourceID[desc->bNrInPins + control_size]; | |
| 387 | + return *(uac_processing_unit_bmControls(desc, protocol) | |
| 388 | + + control_size); | |
| 388 | 389 | } |
| 389 | 390 | |
| 390 | 391 | static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc, |
| 391 | 392 | int protocol) |
| 392 | 393 | { |
| 393 | 394 | __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); |
| 394 | − return &desc->baSourceID[desc->bNrInPins + control_size + 1]; | |
| 395 | + return uac_processing_unit_bmControls(desc, protocol) | |
| 396 | + + control_size + 1; | |
| 395 | 397 | } |
| 396 | 398 | |
| 397 | 399 | /* 4.5.2 Class-Specific AS Interface Descriptor */ |
| @@ -19,6 +19,7 @@ · 18 unmodified lines | ||
| 19 | 19 | #define USB_CDC_SUBCLASS_OBEX 0x0b |
| 20 | 20 | #define USB_CDC_SUBCLASS_EEM 0x0c |
| 21 | 21 | #define USB_CDC_SUBCLASS_NCM 0x0d |
| 22 | +#define USB_CDC_SUBCLASS_MBIM 0x0e | |
| 22 | 23 | |
| 23 | 24 | #define USB_CDC_PROTO_NONE 0 |
| 24 | 25 | |
| @@ -33,6 +34,7 @@ · 8 unmodified lines | ||
| 33 | 34 | #define USB_CDC_PROTO_EEM 7 |
| 34 | 35 | |
| 35 | 36 | #define USB_CDC_NCM_PROTO_NTB 1 |
| 37 | +#define USB_CDC_MBIM_PROTO_NTB 2 | |
| 36 | 38 | |
| 37 | 39 | /*-------------------------------------------------------------------------*/ |
| 38 | 40 | |
| @@ -53,6 +55,7 @@ · 14 unmodified lines | ||
| 53 | 55 | #define USB_CDC_DMM_TYPE 0x14 |
| 54 | 56 | #define USB_CDC_OBEX_TYPE 0x15 |
| 55 | 57 | #define USB_CDC_NCM_TYPE 0x1a |
| 58 | +#define USB_CDC_MBIM_TYPE 0x1b | |
| 56 | 59 | |
| 57 | 60 | /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ |
| 58 | 61 | struct usb_cdc_header_desc { |
| @@ -187,6 +190,21 @@ struct usb_cdc_ncm_desc { · 128 unmodified lines | ||
| 187 | 190 | __le16 bcdNcmVersion; |
| 188 | 191 | __u8 bmNetworkCapabilities; |
| 189 | 192 | } __attribute__ ((packed)); |
| 193 | + | |
| 194 | +/* "MBIM Control Model Functional Descriptor" */ | |
| 195 | +struct usb_cdc_mbim_desc { | |
| 196 | + __u8 bLength; | |
| 197 | + __u8 bDescriptorType; | |
| 198 | + __u8 bDescriptorSubType; | |
| 199 | + | |
| 200 | + __le16 bcdMBIMVersion; | |
| 201 | + __le16 wMaxControlMessage; | |
| 202 | + __u8 bNumberFilters; | |
| 203 | + __u8 bMaxFilterSize; | |
| 204 | + __le16 wMaxSegmentSize; | |
| 205 | + __u8 bmNetworkCapabilities; | |
| 206 | +} __attribute__ ((packed)); | |
| 207 | + | |
| 190 | 208 | /*-------------------------------------------------------------------------*/ |
| 191 | 209 | |
| 192 | 210 | /* |
| @@ -332,6 +350,11 @@ struct usb_cdc_ncm_nth32 { · 139 unmodified lines | ||
| 332 | 350 | #define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */ |
| 333 | 351 | #define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */ |
| 334 | 352 | |
| 353 | +#define USB_CDC_MBIM_NDP16_IPS_SIGN 0x00535049 /* IPS<sessionID> : IPS0 for now */ | |
| 354 | +#define USB_CDC_MBIM_NDP32_IPS_SIGN 0x00737069 /* ips<sessionID> : ips0 for now */ | |
| 355 | +#define USB_CDC_MBIM_NDP16_DSS_SIGN 0x00535344 /* DSS<sessionID> */ | |
| 356 | +#define USB_CDC_MBIM_NDP32_DSS_SIGN 0x00737364 /* dss<sessionID> */ | |
| 357 | + | |
| 335 | 358 | /* 16-bit NCM Datagram Pointer Entry */ |
| 336 | 359 | struct usb_cdc_ncm_dpe16 { |
| 337 | 360 | __le16 wDatagramIndex; |
| @@ -152,6 +152,12 @@ · 151 unmodified lines | ||
| 152 | 152 | #define USB_INTRF_FUNC_SUSPEND_LP (1 << (8 + 0)) |
| 153 | 153 | #define USB_INTRF_FUNC_SUSPEND_RW (1 << (8 + 1)) |
| 154 | 154 | |
| 155 | +/* | |
| 156 | + * Interface status, Figure 9-5 USB 3.0 spec | |
| 157 | + */ | |
| 158 | +#define USB_INTRF_STAT_FUNC_RW_CAP 1 | |
| 159 | +#define USB_INTRF_STAT_FUNC_RW 2 | |
| 160 | + | |
| 155 | 161 | #define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */ |
| 156 | 162 | |
| 157 | 163 | /* Bit array elements as returned by the USB_REQ_GET_STATUS request. */ |
| @@ -88,10 +88,6 @@ · 87 unmodified lines | ||
| 88 | 88 | #define V4L2_CID_HFLIP (V4L2_CID_BASE+20) |
| 89 | 89 | #define V4L2_CID_VFLIP (V4L2_CID_BASE+21) |
| 90 | 90 | |
| 91 | −/* Deprecated; use V4L2_CID_PAN_RESET and V4L2_CID_TILT_RESET */ | |
| 92 | −#define V4L2_CID_HCENTER (V4L2_CID_BASE+22) | |
| 93 | −#define V4L2_CID_VCENTER (V4L2_CID_BASE+23) | |
| 94 | − | |
| 95 | 91 | #define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24) |
| 96 | 92 | enum v4l2_power_line_frequency { |
| 97 | 93 | V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0, |
| @@ -144,6 +140,11 @@ enum v4l2_colorfx { · 46 unmodified lines | ||
| 144 | 140 | /* last CID + 1 */ |
| 145 | 141 | #define V4L2_CID_LASTP1 (V4L2_CID_BASE+43) |
| 146 | 142 | |
| 143 | +/* USER-class private control IDs */ | |
| 144 | + | |
| 145 | +/* The base for the meye driver controls. See linux/meye.h for the list | |
| 146 | + * of controls. We reserve 16 controls for this driver. */ | |
| 147 | +#define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000) | |
| 147 | 148 | |
| 148 | 149 | /* MPEG-class control IDs */ |
| 149 | 150 | |
| @@ -782,6 +783,7 @@ enum v4l2_jpeg_chroma_subsampling { · 632 unmodified lines | ||
| 782 | 783 | #define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17) |
| 783 | 784 | #define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18) |
| 784 | 785 | |
| 786 | + | |
| 785 | 787 | /* Image source controls */ |
| 786 | 788 | #define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900) |
| 787 | 789 | #define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1) |
| @@ -800,4 +802,27 @@ enum v4l2_jpeg_chroma_subsampling { · 12 unmodified lines | ||
| 800 | 802 | #define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2) |
| 801 | 803 | #define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) |
| 802 | 804 | |
| 805 | + | |
| 806 | +/* DV-class control IDs defined by V4L2 */ | |
| 807 | +#define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900) | |
| 808 | +#define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1) | |
| 809 | + | |
| 810 | +#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1) | |
| 811 | +#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2) | |
| 812 | +#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3) | |
| 813 | +#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4) | |
| 814 | +enum v4l2_dv_tx_mode { | |
| 815 | + V4L2_DV_TX_MODE_DVI_D = 0, | |
| 816 | + V4L2_DV_TX_MODE_HDMI = 1, | |
| 817 | +}; | |
| 818 | +#define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5) | |
| 819 | +enum v4l2_dv_rgb_range { | |
| 820 | + V4L2_DV_RGB_RANGE_AUTO = 0, | |
| 821 | + V4L2_DV_RGB_RANGE_LIMITED = 1, | |
| 822 | + V4L2_DV_RGB_RANGE_FULL = 2, | |
| 823 | +}; | |
| 824 | + | |
| 825 | +#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) | |
| 826 | +#define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) | |
| 827 | + | |
| 803 | 828 | #endif |
| @@ -47,8 +47,9 @@ enum v4l2_mbus_pixelcode { · 46 unmodified lines | ||
| 47 | 47 | V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007, |
| 48 | 48 | V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008, |
| 49 | 49 | |
| 50 | − /* YUV (including grey) - next is 0x2014 */ | |
| 50 | + /* YUV (including grey) - next is 0x2017 */ | |
| 51 | 51 | V4L2_MBUS_FMT_Y8_1X8 = 0x2001, |
| 52 | + V4L2_MBUS_FMT_UV8_1X8 = 0x2015, | |
| 52 | 53 | V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002, |
| 53 | 54 | V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003, |
| 54 | 55 | V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004, |
| @@ -65,14 +66,20 @@ enum v4l2_mbus_pixelcode { · 10 unmodified lines | ||
| 65 | 66 | V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010, |
| 66 | 67 | V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011, |
| 67 | 68 | V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012, |
| 69 | + V4L2_MBUS_FMT_YDYUYDYV8_1X16 = 0x2014, | |
| 68 | 70 | V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d, |
| 69 | 71 | V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e, |
| 72 | + V4L2_MBUS_FMT_YUV10_1X30 = 0x2016, | |
| 70 | 73 | |
| 71 | − /* Bayer - next is 0x3015 */ | |
| 74 | + /* Bayer - next is 0x3019 */ | |
| 72 | 75 | V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001, |
| 73 | 76 | V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013, |
| 74 | 77 | V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002, |
| 75 | 78 | V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014, |
| 79 | + V4L2_MBUS_FMT_SBGGR10_ALAW8_1X8 = 0x3015, | |
| 80 | + V4L2_MBUS_FMT_SGBRG10_ALAW8_1X8 = 0x3016, | |
| 81 | + V4L2_MBUS_FMT_SGRBG10_ALAW8_1X8 = 0x3017, | |
| 82 | + V4L2_MBUS_FMT_SRGGB10_ALAW8_1X8 = 0x3018, | |
| 76 | 83 | V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b, |
| 77 | 84 | V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c, |
| 78 | 85 | V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009, |
| @@ -303,6 +303,15 @@ enum { · 302 unmodified lines | ||
| 303 | 303 | VFIO_PCI_BAR5_REGION_INDEX, |
| 304 | 304 | VFIO_PCI_ROM_REGION_INDEX, |
| 305 | 305 | VFIO_PCI_CONFIG_REGION_INDEX, |
| 306 | + /* | |
| 307 | + * Expose VGA regions defined for PCI base class 03, subclass 00. | |
| 308 | + * This includes I/O port ranges 0x3b0 to 0x3bb and 0x3c0 to 0x3df | |
| 309 | + * as well as the MMIO range 0xa0000 to 0xbffff. Each implemented | |
| 310 | + * range is found at it's identity mapped offset from the region | |
| 311 | + * offset, for example 0x3b0 is region_info.offset + 0x3b0. Areas | |
| 312 | + * between described ranges are unimplemented. | |
| 313 | + */ | |
| 314 | + VFIO_PCI_VGA_REGION_INDEX, | |
| 306 | 315 | VFIO_PCI_NUM_REGIONS |
| 307 | 316 | }; |
| 308 | 317 | |
| @@ -186,6 +186,7 @@ enum v4l2_memory { · 185 unmodified lines | ||
| 186 | 186 | V4L2_MEMORY_MMAP = 1, |
| 187 | 187 | V4L2_MEMORY_USERPTR = 2, |
| 188 | 188 | V4L2_MEMORY_OVERLAY = 3, |
| 189 | + V4L2_MEMORY_DMABUF = 4, | |
| 189 | 190 | }; |
| 190 | 191 | |
| 191 | 192 | /* see also http://vektor.theorem.ca/graphics/ycbcr/ */ |
| @@ -333,6 +334,9 @@ struct v4l2_pix_format { · 141 unmodified lines | ||
| 333 | 334 | /* Palette formats */ |
| 334 | 335 | #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ |
| 335 | 336 | |
| 337 | +/* Chrominance formats */ | |
| 338 | +#define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') /* 8 UV 4:4 */ | |
| 339 | + | |
| 336 | 340 | /* Luminance+Chrominance formats */ |
| 337 | 341 | #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ |
| 338 | 342 | #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ |
| @@ -385,6 +389,11 @@ struct v4l2_pix_format { · 46 unmodified lines | ||
| 385 | 389 | #define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ |
| 386 | 390 | #define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ |
| 387 | 391 | #define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ |
| 392 | + /* 10bit raw bayer a-law compressed to 8 bits */ | |
| 393 | +#define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8') | |
| 394 | +#define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8') | |
| 395 | +#define V4L2_PIX_FMT_SGRBG10ALAW8 v4l2_fourcc('a', 'g', 'A', '8') | |
| 396 | +#define V4L2_PIX_FMT_SRGGB10ALAW8 v4l2_fourcc('a', 'R', 'A', '8') | |
| 388 | 397 | /* 10bit raw bayer DPCM compressed to 8 bits */ |
| 389 | 398 | #define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8') |
| 390 | 399 | #define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8') |
| @@ -602,6 +611,8 @@ struct v4l2_requestbuffers { · 211 unmodified lines | ||
| 602 | 611 | * should be passed to mmap() called on the video node) |
| 603 | 612 | * @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer |
| 604 | 613 | * pointing to this plane |
| 614 | + * @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file | |
| 615 | + * descriptor associated with this plane | |
| 605 | 616 | * @data_offset: offset in the plane to the start of data; usually 0, |
| 606 | 617 | * unless there is a header in front of the data |
| 607 | 618 | * |
| @@ -616,6 +627,7 @@ struct v4l2_plane { · 8 unmodified lines | ||
| 616 | 627 | union { |
| 617 | 628 | __u32 mem_offset; |
| 618 | 629 | unsigned long userptr; |
| 630 | + __s32 fd; | |
| 619 | 631 | } m; |
| 620 | 632 | __u32 data_offset; |
| 621 | 633 | __u32 reserved[11]; |
| @@ -640,6 +652,8 @@ struct v4l2_plane { · 18 unmodified lines | ||
| 640 | 652 | * (or a "cookie" that should be passed to mmap() as offset) |
| 641 | 653 | * @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR; |
| 642 | 654 | * a userspace pointer pointing to this buffer |
| 655 | + * @fd: for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF; | |
| 656 | + * a userspace file descriptor associated with this buffer | |
| 643 | 657 | * @planes: for multiplanar buffers; userspace pointer to the array of plane |
| 644 | 658 | * info structs for this buffer |
| 645 | 659 | * @length: size in bytes of the buffer (NOT its payload) for single-plane |
| @@ -666,6 +680,7 @@ struct v4l2_buffer { · 20 unmodified lines | ||
| 666 | 680 | __u32 offset; |
| 667 | 681 | unsigned long userptr; |
| 668 | 682 | struct v4l2_plane *planes; |
| 683 | + __s32 fd; | |
| 669 | 684 | } m; |
| 670 | 685 | __u32 length; |
| 671 | 686 | __u32 reserved2; |
| @@ -686,6 +701,37 @@ struct v4l2_buffer { · 14 unmodified lines | ||
| 686 | 701 | /* Cache handling flags */ |
| 687 | 702 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 |
| 688 | 703 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 |
| 704 | +/* Timestamp type */ | |
| 705 | +#define V4L2_BUF_FLAG_TIMESTAMP_MASK 0xe000 | |
| 706 | +#define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x0000 | |
| 707 | +#define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x2000 | |
| 708 | + | |
| 709 | +/** | |
| 710 | + * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor | |
| 711 | + * | |
| 712 | + * @index: id number of the buffer | |
| 713 | + * @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for | |
| 714 | + * multiplanar buffers); | |
| 715 | + * @plane: index of the plane to be exported, 0 for single plane queues | |
| 716 | + * @flags: flags for newly created file, currently only O_CLOEXEC is | |
| 717 | + * supported, refer to manual of open syscall for more details | |
| 718 | + * @fd: file descriptor associated with DMABUF (set by driver) | |
| 719 | + * | |
| 720 | + * Contains data used for exporting a video buffer as DMABUF file descriptor. | |
| 721 | + * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF | |
| 722 | + * (identical to the cookie used to mmap() the buffer to userspace). All | |
| 723 | + * reserved fields must be set to zero. The field reserved0 is expected to | |
| 724 | + * become a structure 'type' allowing an alternative layout of the structure | |
| 725 | + * content. Therefore this field should not be used for any other extensions. | |
| 726 | + */ | |
| 727 | +struct v4l2_exportbuffer { | |
| 728 | + __u32 type; /* enum v4l2_buf_type */ | |
| 729 | + __u32 index; | |
| 730 | + __u32 plane; | |
| 731 | + __u32 flags; | |
| 732 | + __s32 fd; | |
| 733 | + __u32 reserved[11]; | |
| 734 | +}; | |
| 689 | 735 | |
| 690 | 736 | /* |
| 691 | 737 | * O V E R L A Y P R E V I E W |
| @@ -737,7 +783,7 @@ struct v4l2_window { · 45 unmodified lines | ||
| 737 | 783 | struct v4l2_captureparm { |
| 738 | 784 | __u32 capability; /* Supported modes */ |
| 739 | 785 | __u32 capturemode; /* Current mode */ |
| 740 | − struct v4l2_fract timeperframe; /* Time per frame in .1us units */ | |
| 786 | + struct v4l2_fract timeperframe; /* Time per frame in seconds */ | |
| 741 | 787 | __u32 extendedmode; /* Driver-specific extensions */ |
| 742 | 788 | __u32 readbuffers; /* # of buffers for read */ |
| 743 | 789 | __u32 reserved[4]; |
| @@ -1308,28 +1354,6 @@ struct v4l2_querymenu { · 564 unmodified lines | ||
| 1308 | 1354 | #define V4L2_CID_PRIVATE_BASE 0x08000000 |
| 1309 | 1355 | |
| 1310 | 1356 | |
| 1311 | −/* DV-class control IDs defined by V4L2 */ | |
| 1312 | −#define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900) | |
| 1313 | −#define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1) | |
| 1314 | − | |
| 1315 | −#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1) | |
| 1316 | −#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2) | |
| 1317 | −#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3) | |
| 1318 | −#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4) | |
| 1319 | −enum v4l2_dv_tx_mode { | |
| 1320 | − V4L2_DV_TX_MODE_DVI_D = 0, | |
| 1321 | − V4L2_DV_TX_MODE_HDMI = 1, | |
| 1322 | −}; | |
| 1323 | −#define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5) | |
| 1324 | −enum v4l2_dv_rgb_range { | |
| 1325 | − V4L2_DV_RGB_RANGE_AUTO = 0, | |
| 1326 | − V4L2_DV_RGB_RANGE_LIMITED = 1, | |
| 1327 | − V4L2_DV_RGB_RANGE_FULL = 2, | |
| 1328 | −}; | |
| 1329 | − | |
| 1330 | −#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) | |
| 1331 | −#define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) | |
| 1332 | − | |
| 1333 | 1357 | /* |
| 1334 | 1358 | * T U N I N G |
| 1335 | 1359 | */ |
| @@ -1776,6 +1800,7 @@ struct v4l2_event_vsync { · 440 unmodified lines | ||
| 1776 | 1800 | /* Payload for V4L2_EVENT_CTRL */ |
| 1777 | 1801 | #define V4L2_EVENT_CTRL_CH_VALUE (1 << 0) |
| 1778 | 1802 | #define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1) |
| 1803 | +#define V4L2_EVENT_CTRL_CH_RANGE (1 << 2) | |
| 1779 | 1804 | |
| 1780 | 1805 | struct v4l2_event_ctrl { |
| 1781 | 1806 | __u32 changes; |
| @@ -1888,6 +1913,7 @@ struct v4l2_create_buffers { · 106 unmodified lines | ||
| 1888 | 1913 | #define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer) |
| 1889 | 1914 | #define VIDIOC_OVERLAY _IOW('V', 14, int) |
| 1890 | 1915 | #define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer) |
| 1916 | +#define VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer) | |
| 1891 | 1917 | #define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer) |
| 1892 | 1918 | #define VIDIOC_STREAMON _IOW('V', 18, int) |
| 1893 | 1919 | #define VIDIOC_STREAMOFF _IOW('V', 19, int) |
| @@ -37,5 +37,6 @@ · 36 unmodified lines | ||
| 37 | 37 | #define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */ |
| 38 | 38 | #define VIRTIO_ID_SCSI 8 /* virtio scsi */ |
| 39 | 39 | #define VIRTIO_ID_9P 9 /* 9p virtio console */ |
| 40 | +#define VIRTIO_ID_RPROC_SERIAL 11 /* virtio remoteproc serial link */ | |
| 40 | 41 | |
| 41 | 42 | #endif /* _LINUX_VIRTIO_IDS_H */ |
| @@ -51,6 +51,9 @@ · 50 unmodified lines | ||
| 51 | 51 | #define VIRTIO_NET_F_CTRL_RX_EXTRA 20 /* Extra RX mode control support */ |
| 52 | 52 | #define VIRTIO_NET_F_GUEST_ANNOUNCE 21 /* Guest can announce device on the |
| 53 | 53 | * network */ |
| 54 | +#define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow | |
| 55 | + * Steering */ | |
| 56 | +#define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ | |
| 54 | 57 | |
| 55 | 58 | #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ |
| 56 | 59 | #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ |
| @@ -60,6 +63,11 @@ struct virtio_net_config { · 3 unmodified lines | ||
| 60 | 63 | __u8 mac[6]; |
| 61 | 64 | /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ |
| 62 | 65 | __u16 status; |
| 66 | + /* Maximum number of each of transmit and receive queues; | |
| 67 | + * see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ. | |
| 68 | + * Legal values are between 1 and 0x8000 | |
| 69 | + */ | |
| 70 | + __u16 max_virtqueue_pairs; | |
| 63 | 71 | } __attribute__((packed)); |
| 64 | 72 | |
| 65 | 73 | /* This is the first element of the scatter-gather list. If you don't |
| @@ -120,7 +128,7 @@ typedef __u8 virtio_net_ctrl_ack; · 54 unmodified lines | ||
| 120 | 128 | #define VIRTIO_NET_CTRL_RX_NOBCAST 5 |
| 121 | 129 | |
| 122 | 130 | /* |
| 123 | − * Control the MAC filter table. | |
| 131 | + * Control the MAC | |
| 124 | 132 | * |
| 125 | 133 | * The MAC filter table is managed by the hypervisor, the guest should |
| 126 | 134 | * assume the size is infinite. Filtering should be considered |
| @@ -133,6 +141,10 @@ typedef __u8 virtio_net_ctrl_ack; · 6 unmodified lines | ||
| 133 | 141 | * first sg list contains unicast addresses, the second is for multicast. |
| 134 | 142 | * This functionality is present if the VIRTIO_NET_F_CTRL_RX feature |
| 135 | 143 | * is available. |
| 144 | + * | |
| 145 | + * The ADDR_SET command requests one out scatterlist, it contains a | |
| 146 | + * 6 bytes MAC address. This functionality is present if the | |
| 147 | + * VIRTIO_NET_F_CTRL_MAC_ADDR feature is available. | |
| 136 | 148 | */ |
| 137 | 149 | struct virtio_net_ctrl_mac { |
| 138 | 150 | __u32 entries; |
| @@ -141,6 +153,7 @@ struct virtio_net_ctrl_mac { · 2 unmodified lines | ||
| 141 | 153 | |
| 142 | 154 | #define VIRTIO_NET_CTRL_MAC 1 |
| 143 | 155 | #define VIRTIO_NET_CTRL_MAC_TABLE_SET 0 |
| 156 | + #define VIRTIO_NET_CTRL_MAC_ADDR_SET 1 | |
| 144 | 157 | |
| 145 | 158 | /* |
| 146 | 159 | * Control VLAN filtering |
| @@ -166,4 +179,24 @@ struct virtio_net_ctrl_mac { · 19 unmodified lines | ||
| 166 | 179 | #define VIRTIO_NET_CTRL_ANNOUNCE 3 |
| 167 | 180 | #define VIRTIO_NET_CTRL_ANNOUNCE_ACK 0 |
| 168 | 181 | |
| 182 | +/* | |
| 183 | + * Control Receive Flow Steering | |
| 184 | + * | |
| 185 | + * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET | |
| 186 | + * enables Receive Flow Steering, specifying the number of the transmit and | |
| 187 | + * receive queues that will be used. After the command is consumed and acked by | |
| 188 | + * the device, the device will not steer new packets on receive virtqueues | |
| 189 | + * other than specified nor read from transmit virtqueues other than specified. | |
| 190 | + * Accordingly, driver should not transmit new packets on virtqueues other than | |
| 191 | + * specified. | |
| 192 | + */ | |
| 193 | +struct virtio_net_ctrl_mq { | |
| 194 | + u16 virtqueue_pairs; | |
| 195 | +}; | |
| 196 | + | |
| 197 | +#define VIRTIO_NET_CTRL_MQ 4 | |
| 198 | + #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0 | |
| 199 | + #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1 | |
| 200 | + #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000 | |
| 201 | + | |
| 169 | 202 | #endif /* _LINUX_VIRTIO_NET_H */ |
| @@ -0,0 +1,163 @@ | ||
| 1 | +/* | |
| 2 | + * VMware vSockets Driver | |
| 3 | + * | |
| 4 | + * Copyright (C) 2007-2013 VMware, Inc. All rights reserved. | |
| 5 | + * | |
| 6 | + * This program is free software; you can redistribute it and/or modify it | |
| 7 | + * under the terms of the GNU General Public License as published by the Free | |
| 8 | + * Software Foundation version 2 and no later version. | |
| 9 | + * | |
| 10 | + * This program is distributed in the hope that it will be useful, but WITHOUT | |
| 11 | + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| 12 | + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
| 13 | + * more details. | |
| 14 | + */ | |
| 15 | + | |
| 16 | +#ifndef _VM_SOCKETS_H_ | |
| 17 | +#define _VM_SOCKETS_H_ | |
| 18 | + | |
| 19 | +#if !defined(__KERNEL__) | |
| 20 | +#include <sys/socket.h> | |
| 21 | +#endif | |
| 22 | + | |
| 23 | +/* Option name for STREAM socket buffer size. Use as the option name in | |
| 24 | + * setsockopt(3) or getsockopt(3) to set or get an unsigned long long that | |
| 25 | + * specifies the size of the buffer underlying a vSockets STREAM socket. | |
| 26 | + * Value is clamped to the MIN and MAX. | |
| 27 | + */ | |
| 28 | + | |
| 29 | +#define SO_VM_SOCKETS_BUFFER_SIZE 0 | |
| 30 | + | |
| 31 | +/* Option name for STREAM socket minimum buffer size. Use as the option name | |
| 32 | + * in setsockopt(3) or getsockopt(3) to set or get an unsigned long long that | |
| 33 | + * specifies the minimum size allowed for the buffer underlying a vSockets | |
| 34 | + * STREAM socket. | |
| 35 | + */ | |
| 36 | + | |
| 37 | +#define SO_VM_SOCKETS_BUFFER_MIN_SIZE 1 | |
| 38 | + | |
| 39 | +/* Option name for STREAM socket maximum buffer size. Use as the option name | |
| 40 | + * in setsockopt(3) or getsockopt(3) to set or get an unsigned long long | |
| 41 | + * that specifies the maximum size allowed for the buffer underlying a | |
| 42 | + * vSockets STREAM socket. | |
| 43 | + */ | |
| 44 | + | |
| 45 | +#define SO_VM_SOCKETS_BUFFER_MAX_SIZE 2 | |
| 46 | + | |
| 47 | +/* Option name for socket peer's host-specific VM ID. Use as the option name | |
| 48 | + * in getsockopt(3) to get a host-specific identifier for the peer endpoint's | |
| 49 | + * VM. The identifier is a signed integer. | |
| 50 | + * Only available for hypervisor endpoints. | |
| 51 | + */ | |
| 52 | + | |
| 53 | +#define SO_VM_SOCKETS_PEER_HOST_VM_ID 3 | |
| 54 | + | |
| 55 | +/* Option name for determining if a socket is trusted. Use as the option name | |
| 56 | + * in getsockopt(3) to determine if a socket is trusted. The value is a | |
| 57 | + * signed integer. | |
| 58 | + */ | |
| 59 | + | |
| 60 | +#define SO_VM_SOCKETS_TRUSTED 5 | |
| 61 | + | |
| 62 | +/* Option name for STREAM socket connection timeout. Use as the option name | |
| 63 | + * in setsockopt(3) or getsockopt(3) to set or get the connection | |
| 64 | + * timeout for a STREAM socket. | |
| 65 | + */ | |
| 66 | + | |
| 67 | +#define SO_VM_SOCKETS_CONNECT_TIMEOUT 6 | |
| 68 | + | |
| 69 | +/* Option name for using non-blocking send/receive. Use as the option name | |
| 70 | + * for setsockopt(3) or getsockopt(3) to set or get the non-blocking | |
| 71 | + * transmit/receive flag for a STREAM socket. This flag determines whether | |
| 72 | + * send() and recv() can be called in non-blocking contexts for the given | |
| 73 | + * socket. The value is a signed integer. | |
| 74 | + * | |
| 75 | + * This option is only relevant to kernel endpoints, where descheduling the | |
| 76 | + * thread of execution is not allowed, for example, while holding a spinlock. | |
| 77 | + * It is not to be confused with conventional non-blocking socket operations. | |
| 78 | + * | |
| 79 | + * Only available for hypervisor endpoints. | |
| 80 | + */ | |
| 81 | + | |
| 82 | +#define SO_VM_SOCKETS_NONBLOCK_TXRX 7 | |
| 83 | + | |
| 84 | +/* The vSocket equivalent of INADDR_ANY. This works for the svm_cid field of | |
| 85 | + * sockaddr_vm and indicates the context ID of the current endpoint. | |
| 86 | + */ | |
| 87 | + | |
| 88 | +#define VMADDR_CID_ANY -1U | |
| 89 | + | |
| 90 | +/* Bind to any available port. Works for the svm_port field of | |
| 91 | + * sockaddr_vm. | |
| 92 | + */ | |
| 93 | + | |
| 94 | +#define VMADDR_PORT_ANY -1U | |
| 95 | + | |
| 96 | +/* Use this as the destination CID in an address when referring to the | |
| 97 | + * hypervisor. VMCI relies on it being 0, but this would be useful for other | |
| 98 | + * transports too. | |
| 99 | + */ | |
| 100 | + | |
| 101 | +#define VMADDR_CID_HYPERVISOR 0 | |
| 102 | + | |
| 103 | +/* This CID is specific to VMCI and can be considered reserved (even VMCI | |
| 104 | + * doesn't use it anymore, it's a legacy value from an older release). | |
| 105 | + */ | |
| 106 | + | |
| 107 | +#define VMADDR_CID_RESERVED 1 | |
| 108 | + | |
| 109 | +/* Use this as the destination CID in an address when referring to the host | |
| 110 | + * (any process other than the hypervisor). VMCI relies on it being 2, but | |
| 111 | + * this would be useful for other transports too. | |
| 112 | + */ | |
| 113 | + | |
| 114 | +#define VMADDR_CID_HOST 2 | |
| 115 | + | |
| 116 | +/* Invalid vSockets version. */ | |
| 117 | + | |
| 118 | +#define VM_SOCKETS_INVALID_VERSION -1U | |
| 119 | + | |
| 120 | +/* The epoch (first) component of the vSockets version. A single byte | |
| 121 | + * representing the epoch component of the vSockets version. | |
| 122 | + */ | |
| 123 | + | |
| 124 | +#define VM_SOCKETS_VERSION_EPOCH(_v) (((_v) & 0xFF000000) >> 24) | |
| 125 | + | |
| 126 | +/* The major (second) component of the vSockets version. A single byte | |
| 127 | + * representing the major component of the vSockets version. Typically | |
| 128 | + * changes for every major release of a product. | |
| 129 | + */ | |
| 130 | + | |
| 131 | +#define VM_SOCKETS_VERSION_MAJOR(_v) (((_v) & 0x00FF0000) >> 16) | |
| 132 | + | |
| 133 | +/* The minor (third) component of the vSockets version. Two bytes representing | |
| 134 | + * the minor component of the vSockets version. | |
| 135 | + */ | |
| 136 | + | |
| 137 | +#define VM_SOCKETS_VERSION_MINOR(_v) (((_v) & 0x0000FFFF)) | |
| 138 | + | |
| 139 | +/* Address structure for vSockets. The address family should be set to | |
| 140 | + * whatever vmci_sock_get_af_value_fd() returns. The structure members should | |
| 141 | + * all align on their natural boundaries without resorting to compiler packing | |
| 142 | + * directives. The total size of this structure should be exactly the same as | |
| 143 | + * that of struct sockaddr. | |
| 144 | + */ | |
| 145 | + | |
| 146 | +struct sockaddr_vm { | |
| 147 | + sa_family_t svm_family; | |
| 148 | + unsigned short svm_reserved1; | |
| 149 | + unsigned int svm_port; | |
| 150 | + unsigned int svm_cid; | |
| 151 | + unsigned char svm_zero[sizeof(struct sockaddr) - | |
| 152 | + sizeof(sa_family_t) - | |
| 153 | + sizeof(unsigned short) - | |
| 154 | + sizeof(unsigned int) - sizeof(unsigned int)]; | |
| 155 | +}; | |
| 156 | + | |
| 157 | +#define IOCTL_VM_SOCKETS_GET_LOCAL_CID _IO(7, 0xb9) | |
| 158 | + | |
| 159 | +#if defined(__KERNEL__) | |
| 160 | +int vm_sockets_get_local_cid(void); | |
| 161 | +#endif | |
| 162 | + | |
| 163 | +#endif | |
| @@ -1,363 +1,9 @@ | ||
| 1 | −/***************************************************************************** | |
| 2 | −* wanrouter.h Definitions for the WAN Multiprotocol Router Module. | |
| 3 | −* This module provides API and common services for WAN Link | |
| 4 | −* Drivers and is completely hardware-independent. | |
| 5 | −* | |
| 6 | −* Author: Nenad Corbic <ncorbic@sangoma.com> | |
| 7 | −* Gideon Hack | |
| 8 | −* Additions: Arnaldo Melo | |
| 9 | −* | |
| 10 | −* Copyright: (c) 1995-2000 Sangoma Technologies Inc. | |
| 11 | −* | |
| 12 | −* This program is free software; you can redistribute it and/or | |
| 13 | −* modify it under the terms of the GNU General Public License | |
| 14 | −* as published by the Free Software Foundation; either version | |
| 15 | −* 2 of the License, or (at your option) any later version. | |
| 16 | −* ============================================================================ | |
| 17 | −* Jul 21, 2000 Nenad Corbic Added WAN_FT1_READY State | |
| 18 | −* Feb 24, 2000 Nenad Corbic Added support for socket based x25api | |
| 19 | −* Jan 28, 2000 Nenad Corbic Added support for the ASYNC protocol. | |
| 20 | −* Oct 04, 1999 Nenad Corbic Updated for 2.1.0 release | |
| 21 | −* Jun 02, 1999 Gideon Hack Added support for the S514 adapter. | |
| 22 | −* May 23, 1999 Arnaldo Melo Added local_addr to wanif_conf_t | |
| 23 | −* WAN_DISCONNECTING state added | |
| 24 | −* Jul 20, 1998 David Fong Added Inverse ARP options to 'wanif_conf_t' | |
| 25 | −* Jun 12, 1998 David Fong Added Cisco HDLC support. | |
| 26 | −* Dec 16, 1997 Jaspreet Singh Moved 'enable_IPX' and 'network_number' to | |
| 27 | −* 'wanif_conf_t' | |
| 28 | −* Dec 05, 1997 Jaspreet Singh Added 'pap', 'chap' to 'wanif_conf_t' | |
| 29 | −* Added 'authenticator' to 'wan_ppp_conf_t' | |
| 30 | −* Nov 06, 1997 Jaspreet Singh Changed Router Driver version to 1.1 from 1.0 | |
| 31 | −* Oct 20, 1997 Jaspreet Singh Added 'cir','bc','be' and 'mc' to 'wanif_conf_t' | |
| 32 | −* Added 'enable_IPX' and 'network_number' to | |
| 33 | −* 'wan_device_t'. Also added defines for | |
| 34 | −* UDP PACKET TYPE, Interrupt test, critical values | |
| 35 | −* for RACE conditions. | |
| 36 | −* Oct 05, 1997 Jaspreet Singh Added 'dlci_num' and 'dlci[100]' to | |
| 37 | −* 'wan_fr_conf_t' to configure a list of dlci(s) | |
| 38 | −* for a NODE | |
| 39 | −* Jul 07, 1997 Jaspreet Singh Added 'ttl' to 'wandev_conf_t' & 'wan_device_t' | |
| 40 | −* May 29, 1997 Jaspreet Singh Added 'tx_int_enabled' to 'wan_device_t' | |
| 41 | −* May 21, 1997 Jaspreet Singh Added 'udp_port' to 'wan_device_t' | |
| 42 | −* Apr 25, 1997 Farhan Thawar Added 'udp_port' to 'wandev_conf_t' | |
| 43 | −* Jan 16, 1997 Gene Kozin router_devlist made public | |
| 44 | −* Jan 02, 1997 Gene Kozin Initial version (based on wanpipe.h). | |
| 45 | −*****************************************************************************/ | |
| 46 | − | |
| 47 | −#ifndef _UAPI_ROUTER_H | |
| 48 | −#define _UAPI_ROUTER_H | |
| 49 | − | |
| 50 | −#define ROUTER_NAME "wanrouter" /* in case we ever change it */ | |
| 51 | −#define ROUTER_VERSION 1 /* version number */ | |
| 52 | −#define ROUTER_RELEASE 1 /* release (minor version) number */ | |
| 53 | −#define ROUTER_IOCTL 'W' /* for IOCTL calls */ | |
| 54 | −#define ROUTER_MAGIC 0x524D4157L /* signature: 'WANR' reversed */ | |
| 55 | − | |
| 56 | −/* IOCTL codes for /proc/router/<device> entries (up to 255) */ | |
| 57 | −enum router_ioctls | |
| 58 | −{ | |
| 59 | − ROUTER_SETUP = ROUTER_IOCTL<<8, /* configure device */ | |
| 60 | − ROUTER_DOWN, /* shut down device */ | |
| 61 | − ROUTER_STAT, /* get device status */ | |
| 62 | − ROUTER_IFNEW, /* add interface */ | |
| 63 | − ROUTER_IFDEL, /* delete interface */ | |
| 64 | − ROUTER_IFSTAT, /* get interface status */ | |
| 65 | − ROUTER_USER = (ROUTER_IOCTL<<8)+16, /* driver-specific calls */ | |
| 66 | − ROUTER_USER_MAX = (ROUTER_IOCTL<<8)+31 | |
| 67 | −}; | |
| 68 | − | |
| 69 | −/* identifiers for displaying proc file data for dual port adapters */ | |
| 70 | −#define PROC_DATA_PORT_0 0x8000 /* the data is for port 0 */ | |
| 71 | −#define PROC_DATA_PORT_1 0x8001 /* the data is for port 1 */ | |
| 72 | − | |
| 73 | −/* NLPID for packet encapsulation (ISO/IEC TR 9577) */ | |
| 74 | −#define NLPID_IP 0xCC /* Internet Protocol Datagram */ | |
| 75 | −#define NLPID_SNAP 0x80 /* IEEE Subnetwork Access Protocol */ | |
| 76 | −#define NLPID_CLNP 0x81 /* ISO/IEC 8473 */ | |
| 77 | −#define NLPID_ESIS 0x82 /* ISO/IEC 9542 */ | |
| 78 | −#define NLPID_ISIS 0x83 /* ISO/IEC ISIS */ | |
| 79 | −#define NLPID_Q933 0x08 /* CCITT Q.933 */ | |
| 80 | − | |
| 81 | −/* Miscellaneous */ | |
| 82 | −#define WAN_IFNAME_SZ 15 /* max length of the interface name */ | |
| 83 | −#define WAN_DRVNAME_SZ 15 /* max length of the link driver name */ | |
| 84 | −#define WAN_ADDRESS_SZ 31 /* max length of the WAN media address */ | |
| 85 | −#define USED_BY_FIELD 8 /* max length of the used by field */ | |
| 86 | − | |
| 87 | −/* Defines for UDP PACKET TYPE */ | |
| 88 | −#define UDP_PTPIPE_TYPE 0x01 | |
| 89 | −#define UDP_FPIPE_TYPE 0x02 | |
| 90 | −#define UDP_CPIPE_TYPE 0x03 | |
| 91 | −#define UDP_DRVSTATS_TYPE 0x04 | |
| 92 | −#define UDP_INVALID_TYPE 0x05 | |
| 93 | − | |
| 94 | −/* Command return code */ | |
| 95 | −#define CMD_OK 0 /* normal firmware return code */ | |
| 96 | −#define CMD_TIMEOUT 0xFF /* firmware command timed out */ | |
| 97 | − | |
| 98 | −/* UDP Packet Management */ | |
| 99 | −#define UDP_PKT_FRM_STACK 0x00 | |
| 100 | −#define UDP_PKT_FRM_NETWORK 0x01 | |
| 101 | − | |
| 102 | −/* Maximum interrupt test counter */ | |
| 103 | −#define MAX_INTR_TEST_COUNTER 100 | |
| 104 | − | |
| 105 | −/* Critical Values for RACE conditions*/ | |
| 106 | −#define CRITICAL_IN_ISR 0xA1 | |
| 107 | −#define CRITICAL_INTR_HANDLED 0xB1 | |
| 108 | − | |
| 109 | −/****** Data Types **********************************************************/ | |
| 110 | − | |
| 111 | −/*---------------------------------------------------------------------------- | |
| 112 | − * X.25-specific link-level configuration. | |
| 113 | − */ | |
| 114 | −typedef struct wan_x25_conf | |
| 115 | −{ | |
| 116 | − unsigned lo_pvc; /* lowest permanent circuit number */ | |
| 117 | − unsigned hi_pvc; /* highest permanent circuit number */ | |
| 118 | − unsigned lo_svc; /* lowest switched circuit number */ | |
| 119 | − unsigned hi_svc; /* highest switched circuit number */ | |
| 120 | − unsigned hdlc_window; /* HDLC window size (1..7) */ | |
| 121 | − unsigned pkt_window; /* X.25 packet window size (1..7) */ | |
| 122 | − unsigned t1; /* HDLC timer T1, sec (1..30) */ | |
| 123 | − unsigned t2; /* HDLC timer T2, sec (0..29) */ | |
| 124 | − unsigned t4; /* HDLC supervisory frame timer = T4 * T1 */ | |
| 125 | − unsigned n2; /* HDLC retransmission limit (1..30) */ | |
| 126 | − unsigned t10_t20; /* X.25 RESTART timeout, sec (1..255) */ | |
| 127 | − unsigned t11_t21; /* X.25 CALL timeout, sec (1..255) */ | |
| 128 | − unsigned t12_t22; /* X.25 RESET timeout, sec (1..255) */ | |
| 129 | − unsigned t13_t23; /* X.25 CLEAR timeout, sec (1..255) */ | |
| 130 | − unsigned t16_t26; /* X.25 INTERRUPT timeout, sec (1..255) */ | |
| 131 | − unsigned t28; /* X.25 REGISTRATION timeout, sec (1..255) */ | |
| 132 | − unsigned r10_r20; /* RESTART retransmission limit (0..250) */ | |
| 133 | − unsigned r12_r22; /* RESET retransmission limit (0..250) */ | |
| 134 | − unsigned r13_r23; /* CLEAR retransmission limit (0..250) */ | |
| 135 | − unsigned ccitt_compat; /* compatibility mode: 1988/1984/1980 */ | |
| 136 | − unsigned x25_conf_opt; /* User defined x25 config optoins */ | |
| 137 | − unsigned char LAPB_hdlc_only; /* Run in HDLC only mode */ | |
| 138 | − unsigned char logging; /* Control connection logging */ | |
| 139 | − unsigned char oob_on_modem; /* Whether to send modem status to the user app */ | |
| 140 | −} wan_x25_conf_t; | |
| 141 | − | |
| 142 | −/*---------------------------------------------------------------------------- | |
| 143 | − * Frame relay specific link-level configuration. | |
| 144 | − */ | |
| 145 | −typedef struct wan_fr_conf | |
| 146 | −{ | |
| 147 | − unsigned signalling; /* local in-channel signalling type */ | |
| 148 | − unsigned t391; /* link integrity verification timer */ | |
| 149 | − unsigned t392; /* polling verification timer */ | |
| 150 | − unsigned n391; /* full status polling cycle counter */ | |
| 151 | − unsigned n392; /* error threshold counter */ | |
| 152 | − unsigned n393; /* monitored events counter */ | |
| 153 | − unsigned dlci_num; /* number of DLCs (access node) */ | |
| 154 | − unsigned dlci[100]; /* List of all DLCIs */ | |
| 155 | −} wan_fr_conf_t; | |
| 156 | − | |
| 157 | −/*---------------------------------------------------------------------------- | |
| 158 | − * PPP-specific link-level configuration. | |
| 159 | − */ | |
| 160 | −typedef struct wan_ppp_conf | |
| 161 | −{ | |
| 162 | − unsigned restart_tmr; /* restart timer */ | |
| 163 | − unsigned auth_rsrt_tmr; /* authentication timer */ | |
| 164 | − unsigned auth_wait_tmr; /* authentication timer */ | |
| 165 | − unsigned mdm_fail_tmr; /* modem failure timer */ | |
| 166 | − unsigned dtr_drop_tmr; /* DTR drop timer */ | |
| 167 | − unsigned connect_tmout; /* connection timeout */ | |
| 168 | − unsigned conf_retry; /* max. retry */ | |
| 169 | − unsigned term_retry; /* max. retry */ | |
| 170 | − unsigned fail_retry; /* max. retry */ | |
| 171 | − unsigned auth_retry; /* max. retry */ | |
| 172 | − unsigned auth_options; /* authentication opt. */ | |
| 173 | − unsigned ip_options; /* IP options */ | |
| 174 | − char authenticator; /* AUTHENTICATOR or not */ | |
| 175 | − char ip_mode; /* Static/Host/Peer */ | |
| 176 | −} wan_ppp_conf_t; | |
| 177 | − | |
| 178 | −/*---------------------------------------------------------------------------- | |
| 179 | − * CHDLC-specific link-level configuration. | |
| 180 | − */ | |
| 181 | −typedef struct wan_chdlc_conf | |
| 182 | −{ | |
| 183 | − unsigned char ignore_dcd; /* Protocol options: */ | |
| 184 | − unsigned char ignore_cts; /* Ignore these to determine */ | |
| 185 | − unsigned char ignore_keepalive; /* link status (Yes or No) */ | |
| 186 | − unsigned char hdlc_streaming; /* hdlc_streaming mode (Y/N) */ | |
| 187 | − unsigned char receive_only; /* no transmit buffering (Y/N) */ | |
| 188 | − unsigned keepalive_tx_tmr; /* transmit keepalive timer */ | |
| 189 | − unsigned keepalive_rx_tmr; /* receive keepalive timer */ | |
| 190 | − unsigned keepalive_err_margin; /* keepalive_error_tolerance */ | |
| 191 | − unsigned slarp_timer; /* SLARP request timer */ | |
| 192 | −} wan_chdlc_conf_t; | |
| 193 | − | |
| 194 | − | |
| 195 | −/*---------------------------------------------------------------------------- | |
| 196 | − * WAN device configuration. Passed to ROUTER_SETUP IOCTL. | |
| 197 | − */ | |
| 198 | −typedef struct wandev_conf | |
| 199 | −{ | |
| 200 | − unsigned magic; /* magic number (for verification) */ | |
| 201 | − unsigned config_id; /* configuration structure identifier */ | |
| 202 | − /****** hardware configuration ******/ | |
| 203 | − unsigned ioport; /* adapter I/O port base */ | |
| 204 | − unsigned long maddr; /* dual-port memory address */ | |
| 205 | − unsigned msize; /* dual-port memory size */ | |
| 206 | − int irq; /* interrupt request level */ | |
| 207 | − int dma; /* DMA request level */ | |
| 208 | − char S514_CPU_no[1]; /* S514 PCI adapter CPU number ('A' or 'B') */ | |
| 209 | − unsigned PCI_slot_no; /* S514 PCI adapter slot number */ | |
| 210 | − char auto_pci_cfg; /* S515 PCI automatic slot detection */ | |
| 211 | − char comm_port; /* Communication Port (PRI=0, SEC=1) */ | |
| 212 | − unsigned bps; /* data transfer rate */ | |
| 213 | − unsigned mtu; /* maximum transmit unit size */ | |
| 214 | − unsigned udp_port; /* UDP port for management */ | |
| 215 | − unsigned char ttl; /* Time To Live for UDP security */ | |
| 216 | − unsigned char ft1; /* FT1 Configurator Option */ | |
| 217 | − char interface; /* RS-232/V.35, etc. */ | |
| 218 | − char clocking; /* external/internal */ | |
| 219 | − char line_coding; /* NRZ/NRZI/FM0/FM1, etc. */ | |
| 220 | − char station; /* DTE/DCE, primary/secondary, etc. */ | |
| 221 | − char connection; /* permanent/switched/on-demand */ | |
| 222 | − char read_mode; /* read mode: Polling or interrupt */ | |
| 223 | − char receive_only; /* disable tx buffers */ | |
| 224 | − char tty; /* Create a fake tty device */ | |
| 225 | − unsigned tty_major; /* Major number for wanpipe tty device */ | |
| 226 | − unsigned tty_minor; /* Minor number for wanpipe tty device */ | |
| 227 | − unsigned tty_mode; /* TTY operation mode SYNC or ASYNC */ | |
| 228 | − char backup; /* Backup Mode */ | |
| 229 | − unsigned hw_opt[4]; /* other hardware options */ | |
| 230 | − unsigned reserved[4]; | |
| 231 | − /****** arbitrary data ***************/ | |
| 232 | − unsigned data_size; /* data buffer size */ | |
| 233 | − void* data; /* data buffer, e.g. firmware */ | |
| 234 | − union /****** protocol-specific ************/ | |
| 235 | − { | |
| 236 | − wan_x25_conf_t x25; /* X.25 configuration */ | |
| 237 | − wan_ppp_conf_t ppp; /* PPP configuration */ | |
| 238 | − wan_fr_conf_t fr; /* frame relay configuration */ | |
| 239 | − wan_chdlc_conf_t chdlc; /* Cisco HDLC configuration */ | |
| 240 | − } u; | |
| 241 | −} wandev_conf_t; | |
| 242 | − | |
| 243 | −/* 'config_id' definitions */ | |
| 244 | −#define WANCONFIG_X25 101 /* X.25 link */ | |
| 245 | −#define WANCONFIG_FR 102 /* frame relay link */ | |
| 246 | −#define WANCONFIG_PPP 103 /* synchronous PPP link */ | |
| 247 | −#define WANCONFIG_CHDLC 104 /* Cisco HDLC Link */ | |
| 248 | −#define WANCONFIG_BSC 105 /* BiSync Streaming */ | |
| 249 | −#define WANCONFIG_HDLC 106 /* HDLC Support */ | |
| 250 | −#define WANCONFIG_MPPP 107 /* Multi Port PPP over RAW CHDLC */ | |
| 251 | − | |
| 252 | 1 | /* |
| 253 | − * Configuration options defines. | |
| 2 | + * wanrouter.h Legacy declarations kept around until X25 is removed | |
| 254 | 3 | */ |
| 255 | −/* general options */ | |
| 256 | −#define WANOPT_OFF 0 | |
| 257 | −#define WANOPT_ON 1 | |
| 258 | −#define WANOPT_NO 0 | |
| 259 | −#define WANOPT_YES 1 | |
| 260 | − | |
| 261 | −/* intercace options */ | |
| 262 | −#define WANOPT_RS232 0 | |
| 263 | −#define WANOPT_V35 1 | |
| 264 | − | |
| 265 | −/* data encoding options */ | |
| 266 | −#define WANOPT_NRZ 0 | |
| 267 | −#define WANOPT_NRZI 1 | |
| 268 | −#define WANOPT_FM0 2 | |
| 269 | −#define WANOPT_FM1 3 | |
| 270 | − | |
| 271 | −/* link type options */ | |
| 272 | −#define WANOPT_POINTTOPOINT 0 /* RTS always active */ | |
| 273 | −#define WANOPT_MULTIDROP 1 /* RTS is active when transmitting */ | |
| 274 | − | |
| 275 | −/* clocking options */ | |
| 276 | −#define WANOPT_EXTERNAL 0 | |
| 277 | −#define WANOPT_INTERNAL 1 | |
| 278 | − | |
| 279 | −/* station options */ | |
| 280 | −#define WANOPT_DTE 0 | |
| 281 | −#define WANOPT_DCE 1 | |
| 282 | −#define WANOPT_CPE 0 | |
| 283 | −#define WANOPT_NODE 1 | |
| 284 | −#define WANOPT_SECONDARY 0 | |
| 285 | −#define WANOPT_PRIMARY 1 | |
| 286 | − | |
| 287 | −/* connection options */ | |
| 288 | −#define WANOPT_PERMANENT 0 /* DTR always active */ | |
| 289 | −#define WANOPT_SWITCHED 1 /* use DTR to setup link (dial-up) */ | |
| 290 | −#define WANOPT_ONDEMAND 2 /* activate DTR only before sending */ | |
| 291 | − | |
| 292 | −/* frame relay in-channel signalling */ | |
| 293 | −#define WANOPT_FR_ANSI 1 /* ANSI T1.617 Annex D */ | |
| 294 | −#define WANOPT_FR_Q933 2 /* ITU Q.933A */ | |
| 295 | −#define WANOPT_FR_LMI 3 /* LMI */ | |
| 296 | − | |
| 297 | −/* PPP IP Mode Options */ | |
| 298 | −#define WANOPT_PPP_STATIC 0 | |
| 299 | −#define WANOPT_PPP_HOST 1 | |
| 300 | −#define WANOPT_PPP_PEER 2 | |
| 301 | − | |
| 302 | −/* ASY Mode Options */ | |
| 303 | −#define WANOPT_ONE 1 | |
| 304 | −#define WANOPT_TWO 2 | |
| 305 | −#define WANOPT_ONE_AND_HALF 3 | |
| 306 | − | |
| 307 | −#define WANOPT_NONE 0 | |
| 308 | −#define WANOPT_ODD 1 | |
| 309 | −#define WANOPT_EVEN 2 | |
| 310 | − | |
| 311 | −/* CHDLC Protocol Options */ | |
| 312 | −/* DF Commented out for now. | |
| 313 | − | |
| 314 | −#define WANOPT_CHDLC_NO_DCD IGNORE_DCD_FOR_LINK_STAT | |
| 315 | −#define WANOPT_CHDLC_NO_CTS IGNORE_CTS_FOR_LINK_STAT | |
| 316 | −#define WANOPT_CHDLC_NO_KEEPALIVE IGNORE_KPALV_FOR_LINK_STAT | |
| 317 | −*/ | |
| 318 | − | |
| 319 | −/* Port options */ | |
| 320 | −#define WANOPT_PRI 0 | |
| 321 | −#define WANOPT_SEC 1 | |
| 322 | −/* read mode */ | |
| 323 | −#define WANOPT_INTR 0 | |
| 324 | −#define WANOPT_POLL 1 | |
| 325 | 4 | |
| 326 | − | |
| 327 | −#define WANOPT_TTY_SYNC 0 | |
| 328 | −#define WANOPT_TTY_ASYNC 1 | |
| 329 | −/*---------------------------------------------------------------------------- | |
| 330 | − * WAN Link Status Info (for ROUTER_STAT IOCTL). | |
| 331 | − */ | |
| 332 | −typedef struct wandev_stat | |
| 333 | −{ | |
| 334 | − unsigned state; /* link state */ | |
| 335 | − unsigned ndev; /* number of configured interfaces */ | |
| 336 | − | |
| 337 | − /* link/interface configuration */ | |
| 338 | − unsigned connection; /* permanent/switched/on-demand */ | |
| 339 | − unsigned media_type; /* Frame relay/PPP/X.25/SDLC, etc. */ | |
| 340 | − unsigned mtu; /* max. transmit unit for this device */ | |
| 341 | − | |
| 342 | − /* physical level statistics */ | |
| 343 | − unsigned modem_status; /* modem status */ | |
| 344 | − unsigned rx_frames; /* received frames count */ | |
| 345 | − unsigned rx_overruns; /* receiver overrun error count */ | |
| 346 | − unsigned rx_crc_err; /* receive CRC error count */ | |
| 347 | − unsigned rx_aborts; /* received aborted frames count */ | |
| 348 | − unsigned rx_bad_length; /* unexpetedly long/short frames count */ | |
| 349 | − unsigned rx_dropped; /* frames discarded at device level */ | |
| 350 | − unsigned tx_frames; /* transmitted frames count */ | |
| 351 | − unsigned tx_underruns; /* aborted transmissions (underruns) count */ | |
| 352 | − unsigned tx_timeouts; /* transmission timeouts */ | |
| 353 | − unsigned tx_rejects; /* other transmit errors */ | |
| 354 | − | |
| 355 | − /* media level statistics */ | |
| 356 | − unsigned rx_bad_format; /* frames with invalid format */ | |
| 357 | − unsigned rx_bad_addr; /* frames with invalid media address */ | |
| 358 | − unsigned tx_retries; /* frames re-transmitted */ | |
| 359 | − unsigned reserved[16]; /* reserved for future use */ | |
| 360 | −} wandev_stat_t; | |
| 5 | +#ifndef _UAPI_ROUTER_H | |
| 6 | +#define _UAPI_ROUTER_H | |
| 361 | 7 | |
| 362 | 8 | /* 'state' defines */ |
| 363 | 9 | enum wan_states |
| @@ -365,88 +11,7 @@ enum wan_states · 1 unmodified line | ||
| 365 | 11 | WAN_UNCONFIGURED, /* link/channel is not configured */ |
| 366 | 12 | WAN_DISCONNECTED, /* link/channel is disconnected */ |
| 367 | 13 | WAN_CONNECTING, /* connection is in progress */ |
| 368 | − WAN_CONNECTED, /* link/channel is operational */ | |
| 369 | − WAN_LIMIT, /* for verification only */ | |
| 370 | − WAN_DUALPORT, /* for Dual Port cards */ | |
| 371 | − WAN_DISCONNECTING, | |
| 372 | − WAN_FT1_READY /* FT1 Configurator Ready */ | |
| 14 | + WAN_CONNECTED /* link/channel is operational */ | |
| 373 | 15 | }; |
| 374 | 16 | |
| 375 | −enum { | |
| 376 | − WAN_LOCAL_IP, | |
| 377 | − WAN_POINTOPOINT_IP, | |
| 378 | − WAN_NETMASK_IP, | |
| 379 | − WAN_BROADCAST_IP | |
| 380 | −}; | |
| 381 | − | |
| 382 | −/* 'modem_status' masks */ | |
| 383 | −#define WAN_MODEM_CTS 0x0001 /* CTS line active */ | |
| 384 | −#define WAN_MODEM_DCD 0x0002 /* DCD line active */ | |
| 385 | −#define WAN_MODEM_DTR 0x0010 /* DTR line active */ | |
| 386 | −#define WAN_MODEM_RTS 0x0020 /* RTS line active */ | |
| 387 | − | |
| 388 | −/*---------------------------------------------------------------------------- | |
| 389 | − * WAN interface (logical channel) configuration (for ROUTER_IFNEW IOCTL). | |
| 390 | − */ | |
| 391 | −typedef struct wanif_conf | |
| 392 | −{ | |
| 393 | − unsigned magic; /* magic number */ | |
| 394 | − unsigned config_id; /* configuration identifier */ | |
| 395 | − char name[WAN_IFNAME_SZ+1]; /* interface name, ASCIIZ */ | |
| 396 | − char addr[WAN_ADDRESS_SZ+1]; /* media address, ASCIIZ */ | |
| 397 | − char usedby[USED_BY_FIELD]; /* used by API or WANPIPE */ | |
| 398 | − unsigned idle_timeout; /* sec, before disconnecting */ | |
| 399 | − unsigned hold_timeout; /* sec, before re-connecting */ | |
| 400 | − unsigned cir; /* Committed Information Rate fwd,bwd*/ | |
| 401 | − unsigned bc; /* Committed Burst Size fwd, bwd */ | |
| 402 | − unsigned be; /* Excess Burst Size fwd, bwd */ | |
| 403 | − unsigned char enable_IPX; /* Enable or Disable IPX */ | |
| 404 | − unsigned char inarp; /* Send Inverse ARP requests Y/N */ | |
| 405 | − unsigned inarp_interval; /* sec, between InARP requests */ | |
| 406 | − unsigned long network_number; /* Network Number for IPX */ | |
| 407 | − char mc; /* Multicast on or off */ | |
| 408 | − char local_addr[WAN_ADDRESS_SZ+1];/* local media address, ASCIIZ */ | |
| 409 | − unsigned char port; /* board port */ | |
| 410 | − unsigned char protocol; /* prococol used in this channel (TCPOX25 or X25) */ | |
| 411 | − char pap; /* PAP enabled or disabled */ | |
| 412 | − char chap; /* CHAP enabled or disabled */ | |
| 413 | − unsigned char userid[511]; /* List of User Id */ | |
| 414 | − unsigned char passwd[511]; /* List of passwords */ | |
| 415 | − unsigned char sysname[31]; /* Name of the system */ | |
| 416 | − unsigned char ignore_dcd; /* Protocol options: */ | |
| 417 | − unsigned char ignore_cts; /* Ignore these to determine */ | |
| 418 | − unsigned char ignore_keepalive; /* link status (Yes or No) */ | |
| 419 | − unsigned char hdlc_streaming; /* Hdlc streaming mode (Y/N) */ | |
| 420 | − unsigned keepalive_tx_tmr; /* transmit keepalive timer */ | |
| 421 | − unsigned keepalive_rx_tmr; /* receive keepalive timer */ | |
| 422 | − unsigned keepalive_err_margin; /* keepalive_error_tolerance */ | |
| 423 | − unsigned slarp_timer; /* SLARP request timer */ | |
| 424 | − unsigned char ttl; /* Time To Live for UDP security */ | |
| 425 | − char interface; /* RS-232/V.35, etc. */ | |
| 426 | − char clocking; /* external/internal */ | |
| 427 | − unsigned bps; /* data transfer rate */ | |
| 428 | − unsigned mtu; /* maximum transmit unit size */ | |
| 429 | − unsigned char if_down; /* brind down interface when disconnected */ | |
| 430 | − unsigned char gateway; /* Is this interface a gateway */ | |
| 431 | − unsigned char true_if_encoding; /* Set the dev->type to true board protocol */ | |
| 432 | − | |
| 433 | − unsigned char asy_data_trans; /* async API options */ | |
| 434 | − unsigned char rts_hs_for_receive; /* async Protocol options */ | |
| 435 | − unsigned char xon_xoff_hs_for_receive; | |
| 436 | − unsigned char xon_xoff_hs_for_transmit; | |
| 437 | − unsigned char dcd_hs_for_transmit; | |
| 438 | − unsigned char cts_hs_for_transmit; | |
| 439 | − unsigned char async_mode; | |
| 440 | − unsigned tx_bits_per_char; | |
| 441 | − unsigned rx_bits_per_char; | |
| 442 | − unsigned stop_bits; | |
| 443 | − unsigned char parity; | |
| 444 | − unsigned break_timer; | |
| 445 | − unsigned inter_char_timer; | |
| 446 | − unsigned rx_complete_length; | |
| 447 | − unsigned xon_char; | |
| 448 | − unsigned xoff_char; | |
| 449 | − unsigned char receive_only; /* no transmit buffering (Y/N) */ | |
| 450 | −} wanif_conf_t; | |
| 451 | − | |
| 452 | 17 | #endif /* _UAPI_ROUTER_H */ |
| @@ -15,19 +15,22 @@ · 14 unmodified lines | ||
| 15 | 15 | |
| 16 | 16 | /* Namespaces */ |
| 17 | 17 | #define XATTR_OS2_PREFIX "os2." |
| 18 | −#define XATTR_OS2_PREFIX_LEN (sizeof (XATTR_OS2_PREFIX) - 1) | |
| 18 | +#define XATTR_OS2_PREFIX_LEN (sizeof(XATTR_OS2_PREFIX) - 1) | |
| 19 | + | |
| 20 | +#define XATTR_MAC_OSX_PREFIX "osx." | |
| 21 | +#define XATTR_MAC_OSX_PREFIX_LEN (sizeof(XATTR_MAC_OSX_PREFIX) - 1) | |
| 19 | 22 | |
| 20 | 23 | #define XATTR_SECURITY_PREFIX "security." |
| 21 | −#define XATTR_SECURITY_PREFIX_LEN (sizeof (XATTR_SECURITY_PREFIX) - 1) | |
| 24 | +#define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1) | |
| 22 | 25 | |
| 23 | 26 | #define XATTR_SYSTEM_PREFIX "system." |
| 24 | −#define XATTR_SYSTEM_PREFIX_LEN (sizeof (XATTR_SYSTEM_PREFIX) - 1) | |
| 27 | +#define XATTR_SYSTEM_PREFIX_LEN (sizeof(XATTR_SYSTEM_PREFIX) - 1) | |
| 25 | 28 | |
| 26 | 29 | #define XATTR_TRUSTED_PREFIX "trusted." |
| 27 | −#define XATTR_TRUSTED_PREFIX_LEN (sizeof (XATTR_TRUSTED_PREFIX) - 1) | |
| 30 | +#define XATTR_TRUSTED_PREFIX_LEN (sizeof(XATTR_TRUSTED_PREFIX) - 1) | |
| 28 | 31 | |
| 29 | 32 | #define XATTR_USER_PREFIX "user." |
| 30 | −#define XATTR_USER_PREFIX_LEN (sizeof (XATTR_USER_PREFIX) - 1) | |
| 33 | +#define XATTR_USER_PREFIX_LEN (sizeof(XATTR_USER_PREFIX) - 1) | |
| 31 | 34 | |
| 32 | 35 | /* Security namespace */ |
| 33 | 36 | #define XATTR_EVM_SUFFIX "evm" |