diff options
| author | Ingo Molnar <mingo@kernel.org> | 2014-05-07 07:15:46 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2014-05-07 07:15:46 -0400 |
| commit | 2fe5de9ce7d57498abc14b375cad2fcf8c3ee6cc (patch) | |
| tree | 9478e8cf470c1d5bdb2d89b57a7e35919ab95e72 /include/uapi | |
| parent | 08f8aeb55d7727d644dbbbbfb798fe937d47751d (diff) | |
| parent | 2b4cfe64dee0d84506b951d81bf55d9891744d25 (diff) | |
Merge branch 'sched/urgent' into sched/core, to avoid conflicts
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/uapi')
50 files changed, 1110 insertions, 239 deletions
diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h index 95e46c8e05f9..a9b13f8b3595 100644 --- a/include/uapi/asm-generic/fcntl.h +++ b/include/uapi/asm-generic/fcntl.h | |||
| @@ -132,6 +132,22 @@ | |||
| 132 | #define F_GETOWNER_UIDS 17 | 132 | #define F_GETOWNER_UIDS 17 |
| 133 | #endif | 133 | #endif |
| 134 | 134 | ||
| 135 | /* | ||
| 136 | * fd "private" POSIX locks. | ||
| 137 | * | ||
| 138 | * Usually POSIX locks held by a process are released on *any* close and are | ||
| 139 | * not inherited across a fork(). | ||
| 140 | * | ||
| 141 | * These cmd values will set locks that conflict with normal POSIX locks, but | ||
| 142 | * are "owned" by the opened file, not the process. This means that they are | ||
| 143 | * inherited across fork() like BSD (flock) locks, and they are only released | ||
| 144 | * automatically when the last reference to the the open file against which | ||
| 145 | * they were acquired is put. | ||
| 146 | */ | ||
| 147 | #define F_GETLKP 36 | ||
| 148 | #define F_SETLKP 37 | ||
| 149 | #define F_SETLKPW 38 | ||
| 150 | |||
| 135 | #define F_OWNER_TID 0 | 151 | #define F_OWNER_TID 0 |
| 136 | #define F_OWNER_PID 1 | 152 | #define F_OWNER_PID 1 |
| 137 | #define F_OWNER_PGRP 2 | 153 | #define F_OWNER_PGRP 2 |
| @@ -186,8 +202,6 @@ struct flock { | |||
| 186 | }; | 202 | }; |
| 187 | #endif | 203 | #endif |
| 188 | 204 | ||
| 189 | #ifndef CONFIG_64BIT | ||
| 190 | |||
| 191 | #ifndef HAVE_ARCH_STRUCT_FLOCK64 | 205 | #ifndef HAVE_ARCH_STRUCT_FLOCK64 |
| 192 | #ifndef __ARCH_FLOCK64_PAD | 206 | #ifndef __ARCH_FLOCK64_PAD |
| 193 | #define __ARCH_FLOCK64_PAD | 207 | #define __ARCH_FLOCK64_PAD |
| @@ -202,6 +216,5 @@ struct flock64 { | |||
| 202 | __ARCH_FLOCK64_PAD | 216 | __ARCH_FLOCK64_PAD |
| 203 | }; | 217 | }; |
| 204 | #endif | 218 | #endif |
| 205 | #endif /* !CONFIG_64BIT */ | ||
| 206 | 219 | ||
| 207 | #endif /* _ASM_GENERIC_FCNTL_H */ | 220 | #endif /* _ASM_GENERIC_FCNTL_H */ |
diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-generic/mman-common.h index 4164529a94f9..ddc3b36f1046 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h | |||
| @@ -50,7 +50,7 @@ | |||
| 50 | 50 | ||
| 51 | #define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, | 51 | #define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, |
| 52 | overrides the coredump filter bits */ | 52 | overrides the coredump filter bits */ |
| 53 | #define MADV_DODUMP 17 /* Clear the MADV_NODUMP flag */ | 53 | #define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag */ |
| 54 | 54 | ||
| 55 | /* compatibility flags */ | 55 | /* compatibility flags */ |
| 56 | #define MAP_FILE 0 | 56 | #define MAP_FILE 0 |
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h index b06c8ed68707..9abbeb924cbb 100644 --- a/include/uapi/drm/drm.h +++ b/include/uapi/drm/drm.h | |||
| @@ -619,6 +619,15 @@ struct drm_gem_open { | |||
| 619 | #define DRM_PRIME_CAP_EXPORT 0x2 | 619 | #define DRM_PRIME_CAP_EXPORT 0x2 |
| 620 | #define DRM_CAP_TIMESTAMP_MONOTONIC 0x6 | 620 | #define DRM_CAP_TIMESTAMP_MONOTONIC 0x6 |
| 621 | #define DRM_CAP_ASYNC_PAGE_FLIP 0x7 | 621 | #define DRM_CAP_ASYNC_PAGE_FLIP 0x7 |
| 622 | /* | ||
| 623 | * The CURSOR_WIDTH and CURSOR_HEIGHT capabilities return a valid widthxheight | ||
| 624 | * combination for the hardware cursor. The intention is that a hardware | ||
| 625 | * agnostic userspace can query a cursor plane size to use. | ||
| 626 | * | ||
| 627 | * Note that the cross-driver contract is to merely return a valid size; | ||
| 628 | * drivers are free to attach another meaning on top, eg. i915 returns the | ||
| 629 | * maximum plane size. | ||
| 630 | */ | ||
| 622 | #define DRM_CAP_CURSOR_WIDTH 0x8 | 631 | #define DRM_CAP_CURSOR_WIDTH 0x8 |
| 623 | #define DRM_CAP_CURSOR_HEIGHT 0x9 | 632 | #define DRM_CAP_CURSOR_HEIGHT 0x9 |
| 624 | 633 | ||
| @@ -637,6 +646,14 @@ struct drm_get_cap { | |||
| 637 | */ | 646 | */ |
| 638 | #define DRM_CLIENT_CAP_STEREO_3D 1 | 647 | #define DRM_CLIENT_CAP_STEREO_3D 1 |
| 639 | 648 | ||
| 649 | /** | ||
| 650 | * DRM_CLIENT_CAP_UNIVERSAL_PLANES | ||
| 651 | * | ||
| 652 | * If set to 1, the DRM core will expose all planes (overlay, primary, and | ||
| 653 | * cursor) to userspace. | ||
| 654 | */ | ||
| 655 | #define DRM_CLIENT_CAP_UNIVERSAL_PLANES 2 | ||
| 656 | |||
| 640 | /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ | 657 | /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ |
| 641 | struct drm_set_client_cap { | 658 | struct drm_set_client_cap { |
| 642 | __u64 capability; | 659 | __u64 capability; |
diff --git a/include/uapi/drm/msm_drm.h b/include/uapi/drm/msm_drm.h index d3c62074016d..0664c31f010c 100644 --- a/include/uapi/drm/msm_drm.h +++ b/include/uapi/drm/msm_drm.h | |||
| @@ -50,6 +50,7 @@ struct drm_msm_timespec { | |||
| 50 | 50 | ||
| 51 | #define MSM_PARAM_GPU_ID 0x01 | 51 | #define MSM_PARAM_GPU_ID 0x01 |
| 52 | #define MSM_PARAM_GMEM_SIZE 0x02 | 52 | #define MSM_PARAM_GMEM_SIZE 0x02 |
| 53 | #define MSM_PARAM_CHIP_ID 0x03 | ||
| 53 | 54 | ||
| 54 | struct drm_msm_param { | 55 | struct drm_msm_param { |
| 55 | uint32_t pipe; /* in, MSM_PIPE_x */ | 56 | uint32_t pipe; /* in, MSM_PIPE_x */ |
| @@ -69,6 +70,12 @@ struct drm_msm_param { | |||
| 69 | #define MSM_BO_WC 0x00020000 | 70 | #define MSM_BO_WC 0x00020000 |
| 70 | #define MSM_BO_UNCACHED 0x00040000 | 71 | #define MSM_BO_UNCACHED 0x00040000 |
| 71 | 72 | ||
| 73 | #define MSM_BO_FLAGS (MSM_BO_SCANOUT | \ | ||
| 74 | MSM_BO_GPU_READONLY | \ | ||
| 75 | MSM_BO_CACHED | \ | ||
| 76 | MSM_BO_WC | \ | ||
| 77 | MSM_BO_UNCACHED) | ||
| 78 | |||
| 72 | struct drm_msm_gem_new { | 79 | struct drm_msm_gem_new { |
| 73 | uint64_t size; /* in */ | 80 | uint64_t size; /* in */ |
| 74 | uint32_t flags; /* in, mask of MSM_BO_x */ | 81 | uint32_t flags; /* in, mask of MSM_BO_x */ |
| @@ -85,6 +92,8 @@ struct drm_msm_gem_info { | |||
| 85 | #define MSM_PREP_WRITE 0x02 | 92 | #define MSM_PREP_WRITE 0x02 |
| 86 | #define MSM_PREP_NOSYNC 0x04 | 93 | #define MSM_PREP_NOSYNC 0x04 |
| 87 | 94 | ||
| 95 | #define MSM_PREP_FLAGS (MSM_PREP_READ | MSM_PREP_WRITE | MSM_PREP_NOSYNC) | ||
| 96 | |||
| 88 | struct drm_msm_gem_cpu_prep { | 97 | struct drm_msm_gem_cpu_prep { |
| 89 | uint32_t handle; /* in */ | 98 | uint32_t handle; /* in */ |
| 90 | uint32_t op; /* in, mask of MSM_PREP_x */ | 99 | uint32_t op; /* in, mask of MSM_PREP_x */ |
| @@ -152,6 +161,9 @@ struct drm_msm_gem_submit_cmd { | |||
| 152 | */ | 161 | */ |
| 153 | #define MSM_SUBMIT_BO_READ 0x0001 | 162 | #define MSM_SUBMIT_BO_READ 0x0001 |
| 154 | #define MSM_SUBMIT_BO_WRITE 0x0002 | 163 | #define MSM_SUBMIT_BO_WRITE 0x0002 |
| 164 | |||
| 165 | #define MSM_SUBMIT_BO_FLAGS (MSM_SUBMIT_BO_READ | MSM_SUBMIT_BO_WRITE) | ||
| 166 | |||
| 155 | struct drm_msm_gem_submit_bo { | 167 | struct drm_msm_gem_submit_bo { |
| 156 | uint32_t flags; /* in, mask of MSM_SUBMIT_BO_x */ | 168 | uint32_t flags; /* in, mask of MSM_SUBMIT_BO_x */ |
| 157 | uint32_t handle; /* in, GEM handle */ | 169 | uint32_t handle; /* in, GEM handle */ |
diff --git a/include/uapi/drm/radeon_drm.h b/include/uapi/drm/radeon_drm.h index d9ea3a73afe2..aefa2f6afa3b 100644 --- a/include/uapi/drm/radeon_drm.h +++ b/include/uapi/drm/radeon_drm.h | |||
| @@ -510,6 +510,7 @@ typedef struct { | |||
| 510 | #define DRM_RADEON_GEM_GET_TILING 0x29 | 510 | #define DRM_RADEON_GEM_GET_TILING 0x29 |
| 511 | #define DRM_RADEON_GEM_BUSY 0x2a | 511 | #define DRM_RADEON_GEM_BUSY 0x2a |
| 512 | #define DRM_RADEON_GEM_VA 0x2b | 512 | #define DRM_RADEON_GEM_VA 0x2b |
| 513 | #define DRM_RADEON_GEM_OP 0x2c | ||
| 513 | 514 | ||
| 514 | #define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t) | 515 | #define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t) |
| 515 | #define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START) | 516 | #define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START) |
| @@ -552,6 +553,7 @@ typedef struct { | |||
| 552 | #define DRM_IOCTL_RADEON_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_GET_TILING, struct drm_radeon_gem_get_tiling) | 553 | #define DRM_IOCTL_RADEON_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_GET_TILING, struct drm_radeon_gem_get_tiling) |
| 553 | #define DRM_IOCTL_RADEON_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_BUSY, struct drm_radeon_gem_busy) | 554 | #define DRM_IOCTL_RADEON_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_BUSY, struct drm_radeon_gem_busy) |
| 554 | #define DRM_IOCTL_RADEON_GEM_VA DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_VA, struct drm_radeon_gem_va) | 555 | #define DRM_IOCTL_RADEON_GEM_VA DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_VA, struct drm_radeon_gem_va) |
| 556 | #define DRM_IOCTL_RADEON_GEM_OP DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_OP, struct drm_radeon_gem_op) | ||
| 555 | 557 | ||
| 556 | typedef struct drm_radeon_init { | 558 | typedef struct drm_radeon_init { |
| 557 | enum { | 559 | enum { |
| @@ -884,6 +886,16 @@ struct drm_radeon_gem_pwrite { | |||
| 884 | uint64_t data_ptr; | 886 | uint64_t data_ptr; |
| 885 | }; | 887 | }; |
| 886 | 888 | ||
| 889 | /* Sets or returns a value associated with a buffer. */ | ||
| 890 | struct drm_radeon_gem_op { | ||
| 891 | uint32_t handle; /* buffer */ | ||
| 892 | uint32_t op; /* RADEON_GEM_OP_* */ | ||
| 893 | uint64_t value; /* input or return value */ | ||
| 894 | }; | ||
| 895 | |||
| 896 | #define RADEON_GEM_OP_GET_INITIAL_DOMAIN 0 | ||
| 897 | #define RADEON_GEM_OP_SET_INITIAL_DOMAIN 1 | ||
| 898 | |||
| 887 | #define RADEON_VA_MAP 1 | 899 | #define RADEON_VA_MAP 1 |
| 888 | #define RADEON_VA_UNMAP 2 | 900 | #define RADEON_VA_UNMAP 2 |
| 889 | 901 | ||
| @@ -919,6 +931,7 @@ struct drm_radeon_gem_va { | |||
| 919 | #define RADEON_CS_RING_COMPUTE 1 | 931 | #define RADEON_CS_RING_COMPUTE 1 |
| 920 | #define RADEON_CS_RING_DMA 2 | 932 | #define RADEON_CS_RING_DMA 2 |
| 921 | #define RADEON_CS_RING_UVD 3 | 933 | #define RADEON_CS_RING_UVD 3 |
| 934 | #define RADEON_CS_RING_VCE 4 | ||
| 922 | /* The third dword of RADEON_CHUNK_ID_FLAGS is a sint32 that sets the priority */ | 935 | /* The third dword of RADEON_CHUNK_ID_FLAGS is a sint32 that sets the priority */ |
| 923 | /* 0 = normal, + = higher priority, - = lower priority */ | 936 | /* 0 = normal, + = higher priority, - = lower priority */ |
| 924 | 937 | ||
| @@ -987,6 +1000,13 @@ struct drm_radeon_cs { | |||
| 987 | #define RADEON_INFO_SI_BACKEND_ENABLED_MASK 0x19 | 1000 | #define RADEON_INFO_SI_BACKEND_ENABLED_MASK 0x19 |
| 988 | /* max engine clock - needed for OpenCL */ | 1001 | /* max engine clock - needed for OpenCL */ |
| 989 | #define RADEON_INFO_MAX_SCLK 0x1a | 1002 | #define RADEON_INFO_MAX_SCLK 0x1a |
| 1003 | /* version of VCE firmware */ | ||
| 1004 | #define RADEON_INFO_VCE_FW_VERSION 0x1b | ||
| 1005 | /* version of VCE feedback */ | ||
| 1006 | #define RADEON_INFO_VCE_FB_VERSION 0x1c | ||
| 1007 | #define RADEON_INFO_NUM_BYTES_MOVED 0x1d | ||
| 1008 | #define RADEON_INFO_VRAM_USAGE 0x1e | ||
| 1009 | #define RADEON_INFO_GTT_USAGE 0x1f | ||
| 990 | 1010 | ||
| 991 | 1011 | ||
| 992 | struct drm_radeon_info { | 1012 | struct drm_radeon_info { |
diff --git a/include/uapi/drm/tegra_drm.h b/include/uapi/drm/tegra_drm.h index 5e1ab552cbed..b75482112428 100644 --- a/include/uapi/drm/tegra_drm.h +++ b/include/uapi/drm/tegra_drm.h | |||
| @@ -1,17 +1,23 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. | 2 | * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. |
| 3 | * | 3 | * |
| 4 | * This program is free software; you can redistribute it and/or modify it | 4 | * Permission is hereby granted, free of charge, to any person obtaining a |
| 5 | * under the terms and conditions of the GNU General Public License, | 5 | * copy of this software and associated documentation files (the "Software"), |
| 6 | * version 2, as published by the Free Software Foundation. | 6 | * to deal in the Software without restriction, including without limitation |
| 7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
| 8 | * and/or sell copies of the Software, and to permit persons to whom the | ||
| 9 | * Software is furnished to do so, subject to the following conditions: | ||
| 7 | * | 10 | * |
| 8 | * This program is distributed in the hope it will be useful, but WITHOUT | 11 | * The above copyright notice and this permission notice shall be included in |
| 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 12 | * all copies or substantial portions of the Software. |
| 10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
| 11 | * more details. | ||
| 12 | * | 13 | * |
| 13 | * You should have received a copy of the GNU General Public License | 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
| 17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||
| 18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||
| 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
| 20 | * OTHER DEALINGS IN THE SOFTWARE. | ||
| 15 | */ | 21 | */ |
| 16 | 22 | ||
| 17 | #ifndef _UAPI_TEGRA_DRM_H_ | 23 | #ifndef _UAPI_TEGRA_DRM_H_ |
| @@ -114,7 +120,6 @@ struct drm_tegra_submit { | |||
| 114 | __u32 num_waitchks; | 120 | __u32 num_waitchks; |
| 115 | __u32 waitchk_mask; | 121 | __u32 waitchk_mask; |
| 116 | __u32 timeout; | 122 | __u32 timeout; |
| 117 | __u32 pad; | ||
| 118 | __u64 syncpts; | 123 | __u64 syncpts; |
| 119 | __u64 cmdbufs; | 124 | __u64 cmdbufs; |
| 120 | __u64 relocs; | 125 | __u64 relocs; |
diff --git a/include/uapi/drm/vmwgfx_drm.h b/include/uapi/drm/vmwgfx_drm.h index 87792a5fee3b..4fc66f6b12ce 100644 --- a/include/uapi/drm/vmwgfx_drm.h +++ b/include/uapi/drm/vmwgfx_drm.h | |||
| @@ -90,6 +90,15 @@ | |||
| 90 | #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 | 90 | #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 |
| 91 | 91 | ||
| 92 | /** | 92 | /** |
| 93 | * enum drm_vmw_handle_type - handle type for ref ioctls | ||
| 94 | * | ||
| 95 | */ | ||
| 96 | enum drm_vmw_handle_type { | ||
| 97 | DRM_VMW_HANDLE_LEGACY = 0, | ||
| 98 | DRM_VMW_HANDLE_PRIME = 1 | ||
| 99 | }; | ||
| 100 | |||
| 101 | /** | ||
| 93 | * struct drm_vmw_getparam_arg | 102 | * struct drm_vmw_getparam_arg |
| 94 | * | 103 | * |
| 95 | * @value: Returned value. //Out | 104 | * @value: Returned value. //Out |
| @@ -177,6 +186,7 @@ struct drm_vmw_surface_create_req { | |||
| 177 | * struct drm_wmv_surface_arg | 186 | * struct drm_wmv_surface_arg |
| 178 | * | 187 | * |
| 179 | * @sid: Surface id of created surface or surface to destroy or reference. | 188 | * @sid: Surface id of created surface or surface to destroy or reference. |
| 189 | * @handle_type: Handle type for DRM_VMW_REF_SURFACE Ioctl. | ||
| 180 | * | 190 | * |
| 181 | * Output data from the DRM_VMW_CREATE_SURFACE Ioctl. | 191 | * Output data from the DRM_VMW_CREATE_SURFACE Ioctl. |
| 182 | * Input argument to the DRM_VMW_UNREF_SURFACE Ioctl. | 192 | * Input argument to the DRM_VMW_UNREF_SURFACE Ioctl. |
| @@ -185,7 +195,7 @@ struct drm_vmw_surface_create_req { | |||
| 185 | 195 | ||
| 186 | struct drm_vmw_surface_arg { | 196 | struct drm_vmw_surface_arg { |
| 187 | int32_t sid; | 197 | int32_t sid; |
| 188 | uint32_t pad64; | 198 | enum drm_vmw_handle_type handle_type; |
| 189 | }; | 199 | }; |
| 190 | 200 | ||
| 191 | /** | 201 | /** |
diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h index 2d48fe1274ca..11917f747cb4 100644 --- a/include/uapi/linux/audit.h +++ b/include/uapi/linux/audit.h | |||
| @@ -70,7 +70,6 @@ | |||
| 70 | #define AUDIT_TTY_SET 1017 /* Set TTY auditing status */ | 70 | #define AUDIT_TTY_SET 1017 /* Set TTY auditing status */ |
| 71 | #define AUDIT_SET_FEATURE 1018 /* Turn an audit feature on or off */ | 71 | #define AUDIT_SET_FEATURE 1018 /* Turn an audit feature on or off */ |
| 72 | #define AUDIT_GET_FEATURE 1019 /* Get which features are enabled */ | 72 | #define AUDIT_GET_FEATURE 1019 /* Get which features are enabled */ |
| 73 | #define AUDIT_FEATURE_CHANGE 1020 /* audit log listing feature changes */ | ||
| 74 | 73 | ||
| 75 | #define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */ | 74 | #define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */ |
| 76 | #define AUDIT_USER_AVC 1107 /* We filter this differently */ | 75 | #define AUDIT_USER_AVC 1107 /* We filter this differently */ |
| @@ -109,6 +108,8 @@ | |||
| 109 | #define AUDIT_NETFILTER_PKT 1324 /* Packets traversing netfilter chains */ | 108 | #define AUDIT_NETFILTER_PKT 1324 /* Packets traversing netfilter chains */ |
| 110 | #define AUDIT_NETFILTER_CFG 1325 /* Netfilter chain modifications */ | 109 | #define AUDIT_NETFILTER_CFG 1325 /* Netfilter chain modifications */ |
| 111 | #define AUDIT_SECCOMP 1326 /* Secure Computing event */ | 110 | #define AUDIT_SECCOMP 1326 /* Secure Computing event */ |
| 111 | #define AUDIT_PROCTITLE 1327 /* Proctitle emit event */ | ||
| 112 | #define AUDIT_FEATURE_CHANGE 1328 /* audit log listing feature changes */ | ||
| 112 | 113 | ||
| 113 | #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ | 114 | #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ |
| 114 | #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ | 115 | #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ |
diff --git a/include/uapi/linux/can.h b/include/uapi/linux/can.h index e52958d7c2d1..5d9d1d140718 100644 --- a/include/uapi/linux/can.h +++ b/include/uapi/linux/can.h | |||
| @@ -8,6 +8,38 @@ | |||
| 8 | * Copyright (c) 2002-2007 Volkswagen Group Electronic Research | 8 | * Copyright (c) 2002-2007 Volkswagen Group Electronic Research |
| 9 | * All rights reserved. | 9 | * All rights reserved. |
| 10 | * | 10 | * |
| 11 | * Redistribution and use in source and binary forms, with or without | ||
| 12 | * modification, are permitted provided that the following conditions | ||
| 13 | * are met: | ||
| 14 | * 1. Redistributions of source code must retain the above copyright | ||
| 15 | * notice, this list of conditions and the following disclaimer. | ||
| 16 | * 2. Redistributions in binary form must reproduce the above copyright | ||
| 17 | * notice, this list of conditions and the following disclaimer in the | ||
| 18 | * documentation and/or other materials provided with the distribution. | ||
| 19 | * 3. Neither the name of Volkswagen nor the names of its contributors | ||
| 20 | * may be used to endorse or promote products derived from this software | ||
| 21 | * without specific prior written permission. | ||
| 22 | * | ||
| 23 | * Alternatively, provided that this notice is retained in full, this | ||
| 24 | * software may be distributed under the terms of the GNU General | ||
| 25 | * Public License ("GPL") version 2, in which case the provisions of the | ||
| 26 | * GPL apply INSTEAD OF those given above. | ||
| 27 | * | ||
| 28 | * The provided data structures and external interfaces from this code | ||
| 29 | * are not restricted to be used by modules with a GPL compatible license. | ||
| 30 | * | ||
| 31 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
| 32 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| 33 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| 34 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| 35 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 36 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| 37 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| 38 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| 39 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| 40 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
| 41 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH | ||
| 42 | * DAMAGE. | ||
| 11 | */ | 43 | */ |
| 12 | 44 | ||
| 13 | #ifndef CAN_H | 45 | #ifndef CAN_H |
diff --git a/include/uapi/linux/can/netlink.h b/include/uapi/linux/can/netlink.h index df944ed206a8..7e2e1863db16 100644 --- a/include/uapi/linux/can/netlink.h +++ b/include/uapi/linux/can/netlink.h | |||
| @@ -96,6 +96,7 @@ struct can_ctrlmode { | |||
| 96 | #define CAN_CTRLMODE_3_SAMPLES 0x04 /* Triple sampling mode */ | 96 | #define CAN_CTRLMODE_3_SAMPLES 0x04 /* Triple sampling mode */ |
| 97 | #define CAN_CTRLMODE_ONE_SHOT 0x08 /* One-Shot mode */ | 97 | #define CAN_CTRLMODE_ONE_SHOT 0x08 /* One-Shot mode */ |
| 98 | #define CAN_CTRLMODE_BERR_REPORTING 0x10 /* Bus-error reporting */ | 98 | #define CAN_CTRLMODE_BERR_REPORTING 0x10 /* Bus-error reporting */ |
| 99 | #define CAN_CTRLMODE_FD 0x20 /* CAN FD mode */ | ||
| 99 | 100 | ||
| 100 | /* | 101 | /* |
| 101 | * CAN device statistics | 102 | * CAN device statistics |
| @@ -122,6 +123,8 @@ enum { | |||
| 122 | IFLA_CAN_RESTART_MS, | 123 | IFLA_CAN_RESTART_MS, |
| 123 | IFLA_CAN_RESTART, | 124 | IFLA_CAN_RESTART, |
| 124 | IFLA_CAN_BERR_COUNTER, | 125 | IFLA_CAN_BERR_COUNTER, |
| 126 | IFLA_CAN_DATA_BITTIMING, | ||
| 127 | IFLA_CAN_DATA_BITTIMING_CONST, | ||
| 125 | __IFLA_CAN_MAX | 128 | __IFLA_CAN_MAX |
| 126 | }; | 129 | }; |
| 127 | 130 | ||
diff --git a/include/uapi/linux/capability.h b/include/uapi/linux/capability.h index ba478fa3012e..154dd6d3c8fe 100644 --- a/include/uapi/linux/capability.h +++ b/include/uapi/linux/capability.h | |||
| @@ -308,8 +308,12 @@ struct vfs_cap_data { | |||
| 308 | 308 | ||
| 309 | #define CAP_LEASE 28 | 309 | #define CAP_LEASE 28 |
| 310 | 310 | ||
| 311 | /* Allow writing the audit log via unicast netlink socket */ | ||
| 312 | |||
| 311 | #define CAP_AUDIT_WRITE 29 | 313 | #define CAP_AUDIT_WRITE 29 |
| 312 | 314 | ||
| 315 | /* Allow configuration of audit via unicast netlink socket */ | ||
| 316 | |||
| 313 | #define CAP_AUDIT_CONTROL 30 | 317 | #define CAP_AUDIT_CONTROL 30 |
| 314 | 318 | ||
| 315 | #define CAP_SETFCAP 31 | 319 | #define CAP_SETFCAP 31 |
diff --git a/include/uapi/linux/capi.h b/include/uapi/linux/capi.h index 65100d6cb89b..7b145fd7afb6 100644 --- a/include/uapi/linux/capi.h +++ b/include/uapi/linux/capi.h | |||
| @@ -102,7 +102,7 @@ typedef struct capi_manufacturer_cmd { | |||
| 102 | 102 | ||
| 103 | /* | 103 | /* |
| 104 | * member contr is input for | 104 | * member contr is input for |
| 105 | * CAPI_GET_MANUFACTURER, CAPI_VERSION, CAPI_GET_SERIAL | 105 | * CAPI_GET_MANUFACTURER, CAPI_GET_VERSION, CAPI_GET_SERIAL |
| 106 | * and CAPI_GET_PROFILE | 106 | * and CAPI_GET_PROFILE |
| 107 | */ | 107 | */ |
| 108 | typedef union capi_ioctl_struct { | 108 | typedef union capi_ioctl_struct { |
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index 38dbafaa5341..fd161e91b6d7 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h | |||
| @@ -16,37 +16,97 @@ | |||
| 16 | #include <linux/types.h> | 16 | #include <linux/types.h> |
| 17 | #include <linux/if_ether.h> | 17 | #include <linux/if_ether.h> |
| 18 | 18 | ||
| 19 | /* This should work for both 32 and 64 bit userland. */ | 19 | /* All structures exposed to userland should be defined such that they |
| 20 | * have the same layout for 32-bit and 64-bit userland. | ||
| 21 | */ | ||
| 22 | |||
| 23 | /** | ||
| 24 | * struct ethtool_cmd - link control and status | ||
| 25 | * @cmd: Command number = %ETHTOOL_GSET or %ETHTOOL_SSET | ||
| 26 | * @supported: Bitmask of %SUPPORTED_* flags for the link modes, | ||
| 27 | * physical connectors and other link features for which the | ||
| 28 | * interface supports autonegotiation or auto-detection. | ||
| 29 | * Read-only. | ||
| 30 | * @advertising: Bitmask of %ADVERTISED_* flags for the link modes, | ||
| 31 | * physical connectors and other link features that are | ||
| 32 | * advertised through autonegotiation or enabled for | ||
| 33 | * auto-detection. | ||
| 34 | * @speed: Low bits of the speed | ||
| 35 | * @duplex: Duplex mode; one of %DUPLEX_* | ||
| 36 | * @port: Physical connector type; one of %PORT_* | ||
| 37 | * @phy_address: MDIO address of PHY (transceiver); 0 or 255 if not | ||
| 38 | * applicable. For clause 45 PHYs this is the PRTAD. | ||
| 39 | * @transceiver: Historically used to distinguish different possible | ||
| 40 | * PHY types, but not in a consistent way. Deprecated. | ||
| 41 | * @autoneg: Enable/disable autonegotiation and auto-detection; | ||
| 42 | * either %AUTONEG_DISABLE or %AUTONEG_ENABLE | ||
| 43 | * @mdio_support: Bitmask of %ETH_MDIO_SUPPORTS_* flags for the MDIO | ||
| 44 | * protocols supported by the interface; 0 if unknown. | ||
| 45 | * Read-only. | ||
| 46 | * @maxtxpkt: Historically used to report TX IRQ coalescing; now | ||
| 47 | * obsoleted by &struct ethtool_coalesce. Read-only; deprecated. | ||
| 48 | * @maxrxpkt: Historically used to report RX IRQ coalescing; now | ||
| 49 | * obsoleted by &struct ethtool_coalesce. Read-only; deprecated. | ||
| 50 | * @speed_hi: High bits of the speed | ||
| 51 | * @eth_tp_mdix: Ethernet twisted-pair MDI(-X) status; one of | ||
| 52 | * %ETH_TP_MDI_*. If the status is unknown or not applicable, the | ||
| 53 | * value will be %ETH_TP_MDI_INVALID. Read-only. | ||
| 54 | * @eth_tp_mdix_ctrl: Ethernet twisted pair MDI(-X) control; one of | ||
| 55 | * %ETH_TP_MDI_*. If MDI(-X) control is not implemented, reads | ||
| 56 | * yield %ETH_TP_MDI_INVALID and writes may be ignored or rejected. | ||
| 57 | * When written successfully, the link should be renegotiated if | ||
| 58 | * necessary. | ||
| 59 | * @lp_advertising: Bitmask of %ADVERTISED_* flags for the link modes | ||
| 60 | * and other link features that the link partner advertised | ||
| 61 | * through autonegotiation; 0 if unknown or not applicable. | ||
| 62 | * Read-only. | ||
| 63 | * | ||
| 64 | * The link speed in Mbps is split between @speed and @speed_hi. Use | ||
| 65 | * the ethtool_cmd_speed() and ethtool_cmd_speed_set() functions to | ||
| 66 | * access it. | ||
| 67 | * | ||
| 68 | * If autonegotiation is disabled, the speed and @duplex represent the | ||
| 69 | * fixed link mode and are writable if the driver supports multiple | ||
| 70 | * link modes. If it is enabled then they are read-only; if the link | ||
| 71 | * is up they represent the negotiated link mode; if the link is down, | ||
| 72 | * the speed is 0, %SPEED_UNKNOWN or the highest enabled speed and | ||
| 73 | * @duplex is %DUPLEX_UNKNOWN or the best enabled duplex mode. | ||
| 74 | * | ||
| 75 | * Some hardware interfaces may have multiple PHYs and/or physical | ||
| 76 | * connectors fitted or do not allow the driver to detect which are | ||
| 77 | * fitted. For these interfaces @port and/or @phy_address may be | ||
| 78 | * writable, possibly dependent on @autoneg being %AUTONEG_DISABLE. | ||
| 79 | * Otherwise, attempts to write different values may be ignored or | ||
| 80 | * rejected. | ||
| 81 | * | ||
| 82 | * Users should assume that all fields not marked read-only are | ||
| 83 | * writable and subject to validation by the driver. They should use | ||
| 84 | * %ETHTOOL_GSET to get the current values before making specific | ||
| 85 | * changes and then applying them with %ETHTOOL_SSET. | ||
| 86 | * | ||
| 87 | * Drivers that implement set_settings() should validate all fields | ||
| 88 | * other than @cmd that are not described as read-only or deprecated, | ||
| 89 | * and must ignore all fields described as read-only. | ||
| 90 | * | ||
| 91 | * Deprecated fields should be ignored by both users and drivers. | ||
| 92 | */ | ||
| 20 | struct ethtool_cmd { | 93 | struct ethtool_cmd { |
| 21 | __u32 cmd; | 94 | __u32 cmd; |
| 22 | __u32 supported; /* Features this interface supports */ | 95 | __u32 supported; |
| 23 | __u32 advertising; /* Features this interface advertises */ | 96 | __u32 advertising; |
| 24 | __u16 speed; /* The forced speed (lower bits) in | 97 | __u16 speed; |
| 25 | * Mbps. Please use | 98 | __u8 duplex; |
| 26 | * ethtool_cmd_speed()/_set() to | 99 | __u8 port; |
| 27 | * access it */ | 100 | __u8 phy_address; |
| 28 | __u8 duplex; /* Duplex, half or full */ | 101 | __u8 transceiver; |
| 29 | __u8 port; /* Which connector port */ | 102 | __u8 autoneg; |
| 30 | __u8 phy_address; /* MDIO PHY address (PRTAD for clause 45). | 103 | __u8 mdio_support; |
| 31 | * May be read-only or read-write | 104 | __u32 maxtxpkt; |
| 32 | * depending on the driver. | 105 | __u32 maxrxpkt; |
| 33 | */ | 106 | __u16 speed_hi; |
| 34 | __u8 transceiver; /* Which transceiver to use */ | 107 | __u8 eth_tp_mdix; |
| 35 | __u8 autoneg; /* Enable or disable autonegotiation */ | 108 | __u8 eth_tp_mdix_ctrl; |
| 36 | __u8 mdio_support; /* MDIO protocols supported. Read-only. | 109 | __u32 lp_advertising; |
| 37 | * Not set by all drivers. | ||
| 38 | */ | ||
| 39 | __u32 maxtxpkt; /* Tx pkts before generating tx int */ | ||
| 40 | __u32 maxrxpkt; /* Rx pkts before generating rx int */ | ||
| 41 | __u16 speed_hi; /* The forced speed (upper | ||
| 42 | * bits) in Mbps. Please use | ||
| 43 | * ethtool_cmd_speed()/_set() to | ||
| 44 | * access it */ | ||
| 45 | __u8 eth_tp_mdix; /* twisted pair MDI-X status */ | ||
| 46 | __u8 eth_tp_mdix_ctrl; /* twisted pair MDI-X control, when set, | ||
| 47 | * link should be renegotiated if necessary | ||
| 48 | */ | ||
| 49 | __u32 lp_advertising; /* Features the link partner advertises */ | ||
| 50 | __u32 reserved[2]; | 110 | __u32 reserved[2]; |
| 51 | }; | 111 | }; |
| 52 | 112 | ||
| @@ -79,37 +139,68 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) | |||
| 79 | 139 | ||
| 80 | #define ETHTOOL_FWVERS_LEN 32 | 140 | #define ETHTOOL_FWVERS_LEN 32 |
| 81 | #define ETHTOOL_BUSINFO_LEN 32 | 141 | #define ETHTOOL_BUSINFO_LEN 32 |
| 82 | /* these strings are set to whatever the driver author decides... */ | 142 | |
| 143 | /** | ||
| 144 | * struct ethtool_drvinfo - general driver and device information | ||
| 145 | * @cmd: Command number = %ETHTOOL_GDRVINFO | ||
| 146 | * @driver: Driver short name. This should normally match the name | ||
| 147 | * in its bus driver structure (e.g. pci_driver::name). Must | ||
| 148 | * not be an empty string. | ||
| 149 | * @version: Driver version string; may be an empty string | ||
| 150 | * @fw_version: Firmware version string; may be an empty string | ||
| 151 | * @bus_info: Device bus address. This should match the dev_name() | ||
| 152 | * string for the underlying bus device, if there is one. May be | ||
| 153 | * an empty string. | ||
| 154 | * @n_priv_flags: Number of flags valid for %ETHTOOL_GPFLAGS and | ||
| 155 | * %ETHTOOL_SPFLAGS commands; also the number of strings in the | ||
| 156 | * %ETH_SS_PRIV_FLAGS set | ||
| 157 | * @n_stats: Number of u64 statistics returned by the %ETHTOOL_GSTATS | ||
| 158 | * command; also the number of strings in the %ETH_SS_STATS set | ||
| 159 | * @testinfo_len: Number of results returned by the %ETHTOOL_TEST | ||
| 160 | * command; also the number of strings in the %ETH_SS_TEST set | ||
| 161 | * @eedump_len: Size of EEPROM accessible through the %ETHTOOL_GEEPROM | ||
| 162 | * and %ETHTOOL_SEEPROM commands, in bytes | ||
| 163 | * @regdump_len: Size of register dump returned by the %ETHTOOL_GREGS | ||
| 164 | * command, in bytes | ||
| 165 | * | ||
| 166 | * Users can use the %ETHTOOL_GSSET_INFO command to get the number of | ||
| 167 | * strings in any string set (from Linux 2.6.34). | ||
| 168 | * | ||
| 169 | * Drivers should set at most @driver, @version, @fw_version and | ||
| 170 | * @bus_info in their get_drvinfo() implementation. The ethtool | ||
| 171 | * core fills in the other fields using other driver operations. | ||
| 172 | */ | ||
| 83 | struct ethtool_drvinfo { | 173 | struct ethtool_drvinfo { |
| 84 | __u32 cmd; | 174 | __u32 cmd; |
| 85 | char driver[32]; /* driver short name, "tulip", "eepro100" */ | 175 | char driver[32]; |
| 86 | char version[32]; /* driver version string */ | 176 | char version[32]; |
| 87 | char fw_version[ETHTOOL_FWVERS_LEN]; /* firmware version string */ | 177 | char fw_version[ETHTOOL_FWVERS_LEN]; |
| 88 | char bus_info[ETHTOOL_BUSINFO_LEN]; /* Bus info for this IF. */ | 178 | char bus_info[ETHTOOL_BUSINFO_LEN]; |
| 89 | /* For PCI devices, use pci_name(pci_dev). */ | ||
| 90 | char reserved1[32]; | 179 | char reserved1[32]; |
| 91 | char reserved2[12]; | 180 | char reserved2[12]; |
| 92 | /* | 181 | __u32 n_priv_flags; |
| 93 | * Some struct members below are filled in | 182 | __u32 n_stats; |
| 94 | * using ops->get_sset_count(). Obtaining | ||
| 95 | * this info from ethtool_drvinfo is now | ||
| 96 | * deprecated; Use ETHTOOL_GSSET_INFO | ||
| 97 | * instead. | ||
| 98 | */ | ||
| 99 | __u32 n_priv_flags; /* number of flags valid in ETHTOOL_GPFLAGS */ | ||
| 100 | __u32 n_stats; /* number of u64's from ETHTOOL_GSTATS */ | ||
| 101 | __u32 testinfo_len; | 183 | __u32 testinfo_len; |
| 102 | __u32 eedump_len; /* Size of data from ETHTOOL_GEEPROM (bytes) */ | 184 | __u32 eedump_len; |
| 103 | __u32 regdump_len; /* Size of data from ETHTOOL_GREGS (bytes) */ | 185 | __u32 regdump_len; |
| 104 | }; | 186 | }; |
| 105 | 187 | ||
| 106 | #define SOPASS_MAX 6 | 188 | #define SOPASS_MAX 6 |
| 107 | /* wake-on-lan settings */ | 189 | |
| 190 | /** | ||
| 191 | * struct ethtool_wolinfo - Wake-On-Lan configuration | ||
| 192 | * @cmd: Command number = %ETHTOOL_GWOL or %ETHTOOL_SWOL | ||
| 193 | * @supported: Bitmask of %WAKE_* flags for supported Wake-On-Lan modes. | ||
| 194 | * Read-only. | ||
| 195 | * @wolopts: Bitmask of %WAKE_* flags for enabled Wake-On-Lan modes. | ||
| 196 | * @sopass: SecureOn(tm) password; meaningful only if %WAKE_MAGICSECURE | ||
| 197 | * is set in @wolopts. | ||
| 198 | */ | ||
| 108 | struct ethtool_wolinfo { | 199 | struct ethtool_wolinfo { |
| 109 | __u32 cmd; | 200 | __u32 cmd; |
| 110 | __u32 supported; | 201 | __u32 supported; |
| 111 | __u32 wolopts; | 202 | __u32 wolopts; |
| 112 | __u8 sopass[SOPASS_MAX]; /* SecureOn(tm) password */ | 203 | __u8 sopass[SOPASS_MAX]; |
| 113 | }; | 204 | }; |
| 114 | 205 | ||
| 115 | /* for passing single values */ | 206 | /* for passing single values */ |
| @@ -118,20 +209,51 @@ struct ethtool_value { | |||
| 118 | __u32 data; | 209 | __u32 data; |
| 119 | }; | 210 | }; |
| 120 | 211 | ||
| 121 | /* for passing big chunks of data */ | 212 | /** |
| 213 | * struct ethtool_regs - hardware register dump | ||
| 214 | * @cmd: Command number = %ETHTOOL_GREGS | ||
| 215 | * @version: Dump format version. This is driver-specific and may | ||
| 216 | * distinguish different chips/revisions. Drivers must use new | ||
| 217 | * version numbers whenever the dump format changes in an | ||
| 218 | * incompatible way. | ||
| 219 | * @len: On entry, the real length of @data. On return, the number of | ||
| 220 | * bytes used. | ||
| 221 | * @data: Buffer for the register dump | ||
| 222 | * | ||
| 223 | * Users should use %ETHTOOL_GDRVINFO to find the maximum length of | ||
| 224 | * a register dump for the interface. They must allocate the buffer | ||
| 225 | * immediately following this structure. | ||
| 226 | */ | ||
| 122 | struct ethtool_regs { | 227 | struct ethtool_regs { |
| 123 | __u32 cmd; | 228 | __u32 cmd; |
| 124 | __u32 version; /* driver-specific, indicates different chips/revs */ | 229 | __u32 version; |
| 125 | __u32 len; /* bytes */ | 230 | __u32 len; |
| 126 | __u8 data[0]; | 231 | __u8 data[0]; |
| 127 | }; | 232 | }; |
| 128 | 233 | ||
| 129 | /* for passing EEPROM chunks */ | 234 | /** |
| 235 | * struct ethtool_eeprom - EEPROM dump | ||
| 236 | * @cmd: Command number = %ETHTOOL_GEEPROM, %ETHTOOL_GMODULEEEPROM or | ||
| 237 | * %ETHTOOL_SEEPROM | ||
| 238 | * @magic: A 'magic cookie' value to guard against accidental changes. | ||
| 239 | * The value passed in to %ETHTOOL_SEEPROM must match the value | ||
| 240 | * returned by %ETHTOOL_GEEPROM for the same device. This is | ||
| 241 | * unused when @cmd is %ETHTOOL_GMODULEEEPROM. | ||
| 242 | * @offset: Offset within the EEPROM to begin reading/writing, in bytes | ||
| 243 | * @len: On entry, number of bytes to read/write. On successful | ||
| 244 | * return, number of bytes actually read/written. In case of | ||
| 245 | * error, this may indicate at what point the error occurred. | ||
| 246 | * @data: Buffer to read/write from | ||
| 247 | * | ||
| 248 | * Users may use %ETHTOOL_GDRVINFO or %ETHTOOL_GMODULEINFO to find | ||
| 249 | * the length of an on-board or module EEPROM, respectively. They | ||
| 250 | * must allocate the buffer immediately following this structure. | ||
| 251 | */ | ||
| 130 | struct ethtool_eeprom { | 252 | struct ethtool_eeprom { |
| 131 | __u32 cmd; | 253 | __u32 cmd; |
| 132 | __u32 magic; | 254 | __u32 magic; |
| 133 | __u32 offset; /* in bytes */ | 255 | __u32 offset; |
| 134 | __u32 len; /* in bytes */ | 256 | __u32 len; |
| 135 | __u8 data[0]; | 257 | __u8 data[0]; |
| 136 | }; | 258 | }; |
| 137 | 259 | ||
| @@ -229,17 +351,18 @@ struct ethtool_modinfo { | |||
| 229 | * @rate_sample_interval: How often to do adaptive coalescing packet rate | 351 | * @rate_sample_interval: How often to do adaptive coalescing packet rate |
| 230 | * sampling, measured in seconds. Must not be zero. | 352 | * sampling, measured in seconds. Must not be zero. |
| 231 | * | 353 | * |
| 232 | * Each pair of (usecs, max_frames) fields specifies this exit | 354 | * Each pair of (usecs, max_frames) fields specifies that interrupts |
| 233 | * condition for interrupt coalescing: | 355 | * should be coalesced until |
| 234 | * (usecs > 0 && time_since_first_completion >= usecs) || | 356 | * (usecs > 0 && time_since_first_completion >= usecs) || |
| 235 | * (max_frames > 0 && completed_frames >= max_frames) | 357 | * (max_frames > 0 && completed_frames >= max_frames) |
| 358 | * | ||
| 236 | * It is illegal to set both usecs and max_frames to zero as this | 359 | * It is illegal to set both usecs and max_frames to zero as this |
| 237 | * would cause interrupts to never be generated. To disable | 360 | * would cause interrupts to never be generated. To disable |
| 238 | * coalescing, set usecs = 0 and max_frames = 1. | 361 | * coalescing, set usecs = 0 and max_frames = 1. |
| 239 | * | 362 | * |
| 240 | * Some implementations ignore the value of max_frames and use the | 363 | * Some implementations ignore the value of max_frames and use the |
| 241 | * condition: | 364 | * condition time_since_first_completion >= usecs |
| 242 | * time_since_first_completion >= usecs | 365 | * |
| 243 | * This is deprecated. Drivers for hardware that does not support | 366 | * This is deprecated. Drivers for hardware that does not support |
| 244 | * counting completions should validate that max_frames == !rx_usecs. | 367 | * counting completions should validate that max_frames == !rx_usecs. |
| 245 | * | 368 | * |
| @@ -279,22 +402,37 @@ struct ethtool_coalesce { | |||
| 279 | __u32 rate_sample_interval; | 402 | __u32 rate_sample_interval; |
| 280 | }; | 403 | }; |
| 281 | 404 | ||
| 282 | /* for configuring RX/TX ring parameters */ | 405 | /** |
| 406 | * struct ethtool_ringparam - RX/TX ring parameters | ||
| 407 | * @cmd: Command number = %ETHTOOL_GRINGPARAM or %ETHTOOL_SRINGPARAM | ||
| 408 | * @rx_max_pending: Maximum supported number of pending entries per | ||
| 409 | * RX ring. Read-only. | ||
| 410 | * @rx_mini_max_pending: Maximum supported number of pending entries | ||
| 411 | * per RX mini ring. Read-only. | ||
| 412 | * @rx_jumbo_max_pending: Maximum supported number of pending entries | ||
| 413 | * per RX jumbo ring. Read-only. | ||
| 414 | * @tx_max_pending: Maximum supported number of pending entries per | ||
| 415 | * TX ring. Read-only. | ||
| 416 | * @rx_pending: Current maximum number of pending entries per RX ring | ||
| 417 | * @rx_mini_pending: Current maximum number of pending entries per RX | ||
| 418 | * mini ring | ||
| 419 | * @rx_jumbo_pending: Current maximum number of pending entries per RX | ||
| 420 | * jumbo ring | ||
| 421 | * @tx_pending: Current maximum supported number of pending entries | ||
| 422 | * per TX ring | ||
| 423 | * | ||
| 424 | * If the interface does not have separate RX mini and/or jumbo rings, | ||
| 425 | * @rx_mini_max_pending and/or @rx_jumbo_max_pending will be 0. | ||
| 426 | * | ||
| 427 | * There may also be driver-dependent minimum values for the number | ||
| 428 | * of entries per ring. | ||
| 429 | */ | ||
| 283 | struct ethtool_ringparam { | 430 | struct ethtool_ringparam { |
| 284 | __u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */ | 431 | __u32 cmd; |
| 285 | |||
| 286 | /* Read only attributes. These indicate the maximum number | ||
| 287 | * of pending RX/TX ring entries the driver will allow the | ||
| 288 | * user to set. | ||
| 289 | */ | ||
| 290 | __u32 rx_max_pending; | 432 | __u32 rx_max_pending; |
| 291 | __u32 rx_mini_max_pending; | 433 | __u32 rx_mini_max_pending; |
| 292 | __u32 rx_jumbo_max_pending; | 434 | __u32 rx_jumbo_max_pending; |
| 293 | __u32 tx_max_pending; | 435 | __u32 tx_max_pending; |
| 294 | |||
| 295 | /* Values changeable by the user. The valid values are | ||
| 296 | * in the range 1 to the "*_max_pending" counterpart above. | ||
| 297 | */ | ||
| 298 | __u32 rx_pending; | 436 | __u32 rx_pending; |
| 299 | __u32 rx_mini_pending; | 437 | __u32 rx_mini_pending; |
| 300 | __u32 rx_jumbo_pending; | 438 | __u32 rx_jumbo_pending; |
| @@ -329,51 +467,96 @@ struct ethtool_channels { | |||
| 329 | __u32 combined_count; | 467 | __u32 combined_count; |
| 330 | }; | 468 | }; |
| 331 | 469 | ||
| 332 | /* for configuring link flow control parameters */ | 470 | /** |
| 471 | * struct ethtool_pauseparam - Ethernet pause (flow control) parameters | ||
| 472 | * @cmd: Command number = %ETHTOOL_GPAUSEPARAM or %ETHTOOL_SPAUSEPARAM | ||
| 473 | * @autoneg: Flag to enable autonegotiation of pause frame use | ||
| 474 | * @rx_pause: Flag to enable reception of pause frames | ||
| 475 | * @tx_pause: Flag to enable transmission of pause frames | ||
| 476 | * | ||
| 477 | * Drivers should reject a non-zero setting of @autoneg when | ||
| 478 | * autoneogotiation is disabled (or not supported) for the link. | ||
| 479 | * | ||
| 480 | * If the link is autonegotiated, drivers should use | ||
| 481 | * mii_advertise_flowctrl() or similar code to set the advertised | ||
| 482 | * pause frame capabilities based on the @rx_pause and @tx_pause flags, | ||
| 483 | * even if @autoneg is zero. They should also allow the advertised | ||
| 484 | * pause frame capabilities to be controlled directly through the | ||
| 485 | * advertising field of &struct ethtool_cmd. | ||
| 486 | * | ||
| 487 | * If @autoneg is non-zero, the MAC is configured to send and/or | ||
| 488 | * receive pause frames according to the result of autonegotiation. | ||
| 489 | * Otherwise, it is configured directly based on the @rx_pause and | ||
| 490 | * @tx_pause flags. | ||
| 491 | */ | ||
| 333 | struct ethtool_pauseparam { | 492 | struct ethtool_pauseparam { |
| 334 | __u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */ | 493 | __u32 cmd; |
| 335 | |||
| 336 | /* If the link is being auto-negotiated (via ethtool_cmd.autoneg | ||
| 337 | * being true) the user may set 'autoneg' here non-zero to have the | ||
| 338 | * pause parameters be auto-negotiated too. In such a case, the | ||
| 339 | * {rx,tx}_pause values below determine what capabilities are | ||
| 340 | * advertised. | ||
| 341 | * | ||
| 342 | * If 'autoneg' is zero or the link is not being auto-negotiated, | ||
| 343 | * then {rx,tx}_pause force the driver to use/not-use pause | ||
| 344 | * flow control. | ||
| 345 | */ | ||
| 346 | __u32 autoneg; | 494 | __u32 autoneg; |
| 347 | __u32 rx_pause; | 495 | __u32 rx_pause; |
| 348 | __u32 tx_pause; | 496 | __u32 tx_pause; |
| 349 | }; | 497 | }; |
| 350 | 498 | ||
| 351 | #define ETH_GSTRING_LEN 32 | 499 | #define ETH_GSTRING_LEN 32 |
| 500 | |||
| 501 | /** | ||
| 502 | * enum ethtool_stringset - string set ID | ||
| 503 | * @ETH_SS_TEST: Self-test result names, for use with %ETHTOOL_TEST | ||
| 504 | * @ETH_SS_STATS: Statistic names, for use with %ETHTOOL_GSTATS | ||
| 505 | * @ETH_SS_PRIV_FLAGS: Driver private flag names, for use with | ||
| 506 | * %ETHTOOL_GPFLAGS and %ETHTOOL_SPFLAGS | ||
| 507 | * @ETH_SS_NTUPLE_FILTERS: Previously used with %ETHTOOL_GRXNTUPLE; | ||
| 508 | * now deprecated | ||
| 509 | * @ETH_SS_FEATURES: Device feature names | ||
| 510 | */ | ||
| 352 | enum ethtool_stringset { | 511 | enum ethtool_stringset { |
| 353 | ETH_SS_TEST = 0, | 512 | ETH_SS_TEST = 0, |
| 354 | ETH_SS_STATS, | 513 | ETH_SS_STATS, |
| 355 | ETH_SS_PRIV_FLAGS, | 514 | ETH_SS_PRIV_FLAGS, |
| 356 | ETH_SS_NTUPLE_FILTERS, /* Do not use, GRXNTUPLE is now deprecated */ | 515 | ETH_SS_NTUPLE_FILTERS, |
| 357 | ETH_SS_FEATURES, | 516 | ETH_SS_FEATURES, |
| 358 | }; | 517 | }; |
| 359 | 518 | ||
| 360 | /* for passing string sets for data tagging */ | 519 | /** |
| 520 | * struct ethtool_gstrings - string set for data tagging | ||
| 521 | * @cmd: Command number = %ETHTOOL_GSTRINGS | ||
| 522 | * @string_set: String set ID; one of &enum ethtool_stringset | ||
| 523 | * @len: On return, the number of strings in the string set | ||
| 524 | * @data: Buffer for strings. Each string is null-padded to a size of | ||
| 525 | * %ETH_GSTRING_LEN. | ||
| 526 | * | ||
| 527 | * Users must use %ETHTOOL_GSSET_INFO to find the number of strings in | ||
| 528 | * the string set. They must allocate a buffer of the appropriate | ||
| 529 | * size immediately following this structure. | ||
| 530 | */ | ||
| 361 | struct ethtool_gstrings { | 531 | struct ethtool_gstrings { |
| 362 | __u32 cmd; /* ETHTOOL_GSTRINGS */ | 532 | __u32 cmd; |
| 363 | __u32 string_set; /* string set id e.c. ETH_SS_TEST, etc*/ | 533 | __u32 string_set; |
| 364 | __u32 len; /* number of strings in the string set */ | 534 | __u32 len; |
| 365 | __u8 data[0]; | 535 | __u8 data[0]; |
| 366 | }; | 536 | }; |
| 367 | 537 | ||
| 538 | /** | ||
| 539 | * struct ethtool_sset_info - string set information | ||
| 540 | * @cmd: Command number = %ETHTOOL_GSSET_INFO | ||
| 541 | * @sset_mask: On entry, a bitmask of string sets to query, with bits | ||
| 542 | * numbered according to &enum ethtool_stringset. On return, a | ||
| 543 | * bitmask of those string sets queried that are supported. | ||
| 544 | * @data: Buffer for string set sizes. On return, this contains the | ||
| 545 | * size of each string set that was queried and supported, in | ||
| 546 | * order of ID. | ||
| 547 | * | ||
| 548 | * Example: The user passes in @sset_mask = 0x7 (sets 0, 1, 2) and on | ||
| 549 | * return @sset_mask == 0x6 (sets 1, 2). Then @data[0] contains the | ||
| 550 | * size of set 1 and @data[1] contains the size of set 2. | ||
| 551 | * | ||
| 552 | * Users must allocate a buffer of the appropriate size (4 * number of | ||
| 553 | * sets queried) immediately following this structure. | ||
| 554 | */ | ||
| 368 | struct ethtool_sset_info { | 555 | struct ethtool_sset_info { |
| 369 | __u32 cmd; /* ETHTOOL_GSSET_INFO */ | 556 | __u32 cmd; |
| 370 | __u32 reserved; | 557 | __u32 reserved; |
| 371 | __u64 sset_mask; /* input: each bit selects an sset to query */ | 558 | __u64 sset_mask; |
| 372 | /* output: each bit a returned sset */ | 559 | __u32 data[0]; |
| 373 | __u32 data[0]; /* ETH_SS_xxx count, in order, based on bits | ||
| 374 | in sset_mask. One bit implies one | ||
| 375 | __u32, two bits implies two | ||
| 376 | __u32's, etc. */ | ||
| 377 | }; | 560 | }; |
| 378 | 561 | ||
| 379 | /** | 562 | /** |
| @@ -393,24 +576,58 @@ enum ethtool_test_flags { | |||
| 393 | ETH_TEST_FL_EXTERNAL_LB_DONE = (1 << 3), | 576 | ETH_TEST_FL_EXTERNAL_LB_DONE = (1 << 3), |
| 394 | }; | 577 | }; |
| 395 | 578 | ||
| 396 | /* for requesting NIC test and getting results*/ | 579 | /** |
| 580 | * struct ethtool_test - device self-test invocation | ||
| 581 | * @cmd: Command number = %ETHTOOL_TEST | ||
| 582 | * @flags: A bitmask of flags from &enum ethtool_test_flags. Some | ||
| 583 | * flags may be set by the user on entry; others may be set by | ||
| 584 | * the driver on return. | ||
| 585 | * @len: On return, the number of test results | ||
| 586 | * @data: Array of test results | ||
| 587 | * | ||
| 588 | * Users must use %ETHTOOL_GSSET_INFO or %ETHTOOL_GDRVINFO to find the | ||
| 589 | * number of test results that will be returned. They must allocate a | ||
| 590 | * buffer of the appropriate size (8 * number of results) immediately | ||
| 591 | * following this structure. | ||
| 592 | */ | ||
| 397 | struct ethtool_test { | 593 | struct ethtool_test { |
| 398 | __u32 cmd; /* ETHTOOL_TEST */ | 594 | __u32 cmd; |
| 399 | __u32 flags; /* ETH_TEST_FL_xxx */ | 595 | __u32 flags; |
| 400 | __u32 reserved; | 596 | __u32 reserved; |
| 401 | __u32 len; /* result length, in number of u64 elements */ | 597 | __u32 len; |
| 402 | __u64 data[0]; | 598 | __u64 data[0]; |
| 403 | }; | 599 | }; |
| 404 | 600 | ||
| 405 | /* for dumping NIC-specific statistics */ | 601 | /** |
| 602 | * struct ethtool_stats - device-specific statistics | ||
| 603 | * @cmd: Command number = %ETHTOOL_GSTATS | ||
| 604 | * @n_stats: On return, the number of statistics | ||
| 605 | * @data: Array of statistics | ||
| 606 | * | ||
| 607 | * Users must use %ETHTOOL_GSSET_INFO or %ETHTOOL_GDRVINFO to find the | ||
| 608 | * number of statistics that will be returned. They must allocate a | ||
| 609 | * buffer of the appropriate size (8 * number of statistics) | ||
| 610 | * immediately following this structure. | ||
| 611 | */ | ||
| 406 | struct ethtool_stats { | 612 | struct ethtool_stats { |
| 407 | __u32 cmd; /* ETHTOOL_GSTATS */ | 613 | __u32 cmd; |
| 408 | __u32 n_stats; /* number of u64's being returned */ | 614 | __u32 n_stats; |
| 409 | __u64 data[0]; | 615 | __u64 data[0]; |
| 410 | }; | 616 | }; |
| 411 | 617 | ||
| 618 | /** | ||
| 619 | * struct ethtool_perm_addr - permanent hardware address | ||
| 620 | * @cmd: Command number = %ETHTOOL_GPERMADDR | ||
| 621 | * @size: On entry, the size of the buffer. On return, the size of the | ||
| 622 | * address. The command fails if the buffer is too small. | ||
| 623 | * @data: Buffer for the address | ||
| 624 | * | ||
| 625 | * Users must allocate the buffer immediately following this structure. | ||
| 626 | * A buffer size of %MAX_ADDR_LEN should be sufficient for any address | ||
| 627 | * type. | ||
| 628 | */ | ||
| 412 | struct ethtool_perm_addr { | 629 | struct ethtool_perm_addr { |
| 413 | __u32 cmd; /* ETHTOOL_GPERMADDR */ | 630 | __u32 cmd; |
| 414 | __u32 size; | 631 | __u32 size; |
| 415 | __u8 data[0]; | 632 | __u8 data[0]; |
| 416 | }; | 633 | }; |
| @@ -593,7 +810,7 @@ struct ethtool_rx_flow_spec { | |||
| 593 | * %ETHTOOL_SRXCLSRLINS may add the rule at any suitable unused | 810 | * %ETHTOOL_SRXCLSRLINS may add the rule at any suitable unused |
| 594 | * location, and may remove a rule at a later location (lower | 811 | * location, and may remove a rule at a later location (lower |
| 595 | * priority) that matches exactly the same set of flows. The special | 812 | * priority) that matches exactly the same set of flows. The special |
| 596 | * values are: %RX_CLS_LOC_ANY, selecting any location; | 813 | * values are %RX_CLS_LOC_ANY, selecting any location; |
| 597 | * %RX_CLS_LOC_FIRST, selecting the first suitable location (maximum | 814 | * %RX_CLS_LOC_FIRST, selecting the first suitable location (maximum |
| 598 | * priority); and %RX_CLS_LOC_LAST, selecting the last suitable | 815 | * priority); and %RX_CLS_LOC_LAST, selecting the last suitable |
| 599 | * location (minimum priority). Additional special values may be | 816 | * location (minimum priority). Additional special values may be |
| @@ -704,9 +921,6 @@ struct ethtool_flash { | |||
| 704 | * for %ETHTOOL_GET_DUMP_FLAG command | 921 | * for %ETHTOOL_GET_DUMP_FLAG command |
| 705 | * @data: data collected for get dump data operation | 922 | * @data: data collected for get dump data operation |
| 706 | */ | 923 | */ |
| 707 | |||
| 708 | #define ETH_FW_DUMP_DISABLE 0 | ||
| 709 | |||
| 710 | struct ethtool_dump { | 924 | struct ethtool_dump { |
| 711 | __u32 cmd; | 925 | __u32 cmd; |
| 712 | __u32 version; | 926 | __u32 version; |
| @@ -715,6 +929,8 @@ struct ethtool_dump { | |||
| 715 | __u8 data[0]; | 929 | __u8 data[0]; |
| 716 | }; | 930 | }; |
| 717 | 931 | ||
| 932 | #define ETH_FW_DUMP_DISABLE 0 | ||
| 933 | |||
| 718 | /* for returning and changing feature sets */ | 934 | /* for returning and changing feature sets */ |
| 719 | 935 | ||
| 720 | /** | 936 | /** |
| @@ -734,8 +950,9 @@ struct ethtool_get_features_block { | |||
| 734 | /** | 950 | /** |
| 735 | * struct ethtool_gfeatures - command to get state of device's features | 951 | * struct ethtool_gfeatures - command to get state of device's features |
| 736 | * @cmd: command number = %ETHTOOL_GFEATURES | 952 | * @cmd: command number = %ETHTOOL_GFEATURES |
| 737 | * @size: in: number of elements in the features[] array; | 953 | * @size: On entry, the number of elements in the features[] array; |
| 738 | * out: number of elements in features[] needed to hold all features | 954 | * on return, the number of elements in features[] needed to hold |
| 955 | * all features | ||
| 739 | * @features: state of features | 956 | * @features: state of features |
| 740 | */ | 957 | */ |
| 741 | struct ethtool_gfeatures { | 958 | struct ethtool_gfeatures { |
| @@ -905,7 +1122,6 @@ enum ethtool_sfeatures_retval_bits { | |||
| 905 | #define SPARC_ETH_GSET ETHTOOL_GSET | 1122 | #define SPARC_ETH_GSET ETHTOOL_GSET |
| 906 | #define SPARC_ETH_SSET ETHTOOL_SSET | 1123 | #define SPARC_ETH_SSET ETHTOOL_SSET |
| 907 | 1124 | ||
| 908 | /* Indicates what features are supported by the interface. */ | ||
| 909 | #define SUPPORTED_10baseT_Half (1 << 0) | 1125 | #define SUPPORTED_10baseT_Half (1 << 0) |
| 910 | #define SUPPORTED_10baseT_Full (1 << 1) | 1126 | #define SUPPORTED_10baseT_Full (1 << 1) |
| 911 | #define SUPPORTED_100baseT_Half (1 << 2) | 1127 | #define SUPPORTED_100baseT_Half (1 << 2) |
| @@ -934,7 +1150,6 @@ enum ethtool_sfeatures_retval_bits { | |||
| 934 | #define SUPPORTED_40000baseSR4_Full (1 << 25) | 1150 | #define SUPPORTED_40000baseSR4_Full (1 << 25) |
| 935 | #define SUPPORTED_40000baseLR4_Full (1 << 26) | 1151 | #define SUPPORTED_40000baseLR4_Full (1 << 26) |
| 936 | 1152 | ||
| 937 | /* Indicates what features are advertised by the interface. */ | ||
| 938 | #define ADVERTISED_10baseT_Half (1 << 0) | 1153 | #define ADVERTISED_10baseT_Half (1 << 0) |
| 939 | #define ADVERTISED_10baseT_Full (1 << 1) | 1154 | #define ADVERTISED_10baseT_Full (1 << 1) |
| 940 | #define ADVERTISED_100baseT_Half (1 << 2) | 1155 | #define ADVERTISED_100baseT_Half (1 << 2) |
| @@ -999,9 +1214,7 @@ enum ethtool_sfeatures_retval_bits { | |||
| 999 | #define XCVR_DUMMY2 0x03 | 1214 | #define XCVR_DUMMY2 0x03 |
| 1000 | #define XCVR_DUMMY3 0x04 | 1215 | #define XCVR_DUMMY3 0x04 |
| 1001 | 1216 | ||
| 1002 | /* Enable or disable autonegotiation. If this is set to enable, | 1217 | /* Enable or disable autonegotiation. */ |
| 1003 | * the forced link modes above are completely ignored. | ||
| 1004 | */ | ||
| 1005 | #define AUTONEG_DISABLE 0x00 | 1218 | #define AUTONEG_DISABLE 0x00 |
| 1006 | #define AUTONEG_ENABLE 0x01 | 1219 | #define AUTONEG_ENABLE 0x01 |
| 1007 | 1220 | ||
diff --git a/include/uapi/linux/falloc.h b/include/uapi/linux/falloc.h index 990c4ccf8b61..d1197ae3723c 100644 --- a/include/uapi/linux/falloc.h +++ b/include/uapi/linux/falloc.h | |||
| @@ -5,5 +5,40 @@ | |||
| 5 | #define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */ | 5 | #define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */ |
| 6 | #define FALLOC_FL_NO_HIDE_STALE 0x04 /* reserved codepoint */ | 6 | #define FALLOC_FL_NO_HIDE_STALE 0x04 /* reserved codepoint */ |
| 7 | 7 | ||
| 8 | /* | ||
| 9 | * FALLOC_FL_COLLAPSE_RANGE is used to remove a range of a file | ||
| 10 | * without leaving a hole in the file. The contents of the file beyond | ||
| 11 | * the range being removed is appended to the start offset of the range | ||
| 12 | * being removed (i.e. the hole that was punched is "collapsed"), | ||
| 13 | * resulting in a file layout that looks like the range that was | ||
| 14 | * removed never existed. As such collapsing a range of a file changes | ||
| 15 | * the size of the file, reducing it by the same length of the range | ||
| 16 | * that has been removed by the operation. | ||
| 17 | * | ||
| 18 | * Different filesystems may implement different limitations on the | ||
| 19 | * granularity of the operation. Most will limit operations to | ||
| 20 | * filesystem block size boundaries, but this boundary may be larger or | ||
| 21 | * smaller depending on the filesystem and/or the configuration of the | ||
| 22 | * filesystem or file. | ||
| 23 | * | ||
| 24 | * Attempting to collapse a range that crosses the end of the file is | ||
| 25 | * considered an illegal operation - just use ftruncate(2) if you need | ||
| 26 | * to collapse a range that crosses EOF. | ||
| 27 | */ | ||
| 28 | #define FALLOC_FL_COLLAPSE_RANGE 0x08 | ||
| 29 | |||
| 30 | /* | ||
| 31 | * FALLOC_FL_ZERO_RANGE is used to convert a range of file to zeros preferably | ||
| 32 | * without issuing data IO. Blocks should be preallocated for the regions that | ||
| 33 | * span holes in the file, and the entire range is preferable converted to | ||
| 34 | * unwritten extents - even though file system may choose to zero out the | ||
| 35 | * extent or do whatever which will result in reading zeros from the range | ||
| 36 | * while the range remains allocated for the file. | ||
| 37 | * | ||
| 38 | * This can be also used to preallocate blocks past EOF in the same way as | ||
| 39 | * with fallocate. Flag FALLOC_FL_KEEP_SIZE should cause the inode | ||
| 40 | * size to remain the same. | ||
| 41 | */ | ||
| 42 | #define FALLOC_FL_ZERO_RANGE 0x10 | ||
| 8 | 43 | ||
| 9 | #endif /* _UAPI_FALLOC_H_ */ | 44 | #endif /* _UAPI_FALLOC_H_ */ |
diff --git a/include/uapi/linux/fs.h b/include/uapi/linux/fs.h index 6c28b61bb690..ca1a11bb4443 100644 --- a/include/uapi/linux/fs.h +++ b/include/uapi/linux/fs.h | |||
| @@ -35,6 +35,9 @@ | |||
| 35 | #define SEEK_HOLE 4 /* seek to the next hole */ | 35 | #define SEEK_HOLE 4 /* seek to the next hole */ |
| 36 | #define SEEK_MAX SEEK_HOLE | 36 | #define SEEK_MAX SEEK_HOLE |
| 37 | 37 | ||
| 38 | #define RENAME_NOREPLACE (1 << 0) /* Don't overwrite target */ | ||
| 39 | #define RENAME_EXCHANGE (1 << 1) /* Exchange source and dest */ | ||
| 40 | |||
| 38 | struct fstrim_range { | 41 | struct fstrim_range { |
| 39 | __u64 start; | 42 | __u64 start; |
| 40 | __u64 len; | 43 | __u64 len; |
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h index 60bb2f9f7b74..cf4750e1bb49 100644 --- a/include/uapi/linux/fuse.h +++ b/include/uapi/linux/fuse.h | |||
| @@ -93,6 +93,9 @@ | |||
| 93 | * | 93 | * |
| 94 | * 7.22 | 94 | * 7.22 |
| 95 | * - add FUSE_ASYNC_DIO | 95 | * - add FUSE_ASYNC_DIO |
| 96 | * | ||
| 97 | * 7.23 | ||
| 98 | * - add FUSE_WRITEBACK_CACHE | ||
| 96 | */ | 99 | */ |
| 97 | 100 | ||
| 98 | #ifndef _LINUX_FUSE_H | 101 | #ifndef _LINUX_FUSE_H |
| @@ -128,7 +131,7 @@ | |||
| 128 | #define FUSE_KERNEL_VERSION 7 | 131 | #define FUSE_KERNEL_VERSION 7 |
| 129 | 132 | ||
| 130 | /** Minor version number of this interface */ | 133 | /** Minor version number of this interface */ |
| 131 | #define FUSE_KERNEL_MINOR_VERSION 22 | 134 | #define FUSE_KERNEL_MINOR_VERSION 23 |
| 132 | 135 | ||
| 133 | /** The node ID of the root inode */ | 136 | /** The node ID of the root inode */ |
| 134 | #define FUSE_ROOT_ID 1 | 137 | #define FUSE_ROOT_ID 1 |
| @@ -219,6 +222,7 @@ struct fuse_file_lock { | |||
| 219 | * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one) | 222 | * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one) |
| 220 | * FUSE_READDIRPLUS_AUTO: adaptive readdirplus | 223 | * FUSE_READDIRPLUS_AUTO: adaptive readdirplus |
| 221 | * FUSE_ASYNC_DIO: asynchronous direct I/O submission | 224 | * FUSE_ASYNC_DIO: asynchronous direct I/O submission |
| 225 | * FUSE_WRITEBACK_CACHE: use writeback cache for buffered writes | ||
| 222 | */ | 226 | */ |
| 223 | #define FUSE_ASYNC_READ (1 << 0) | 227 | #define FUSE_ASYNC_READ (1 << 0) |
| 224 | #define FUSE_POSIX_LOCKS (1 << 1) | 228 | #define FUSE_POSIX_LOCKS (1 << 1) |
| @@ -236,6 +240,7 @@ struct fuse_file_lock { | |||
| 236 | #define FUSE_DO_READDIRPLUS (1 << 13) | 240 | #define FUSE_DO_READDIRPLUS (1 << 13) |
| 237 | #define FUSE_READDIRPLUS_AUTO (1 << 14) | 241 | #define FUSE_READDIRPLUS_AUTO (1 << 14) |
| 238 | #define FUSE_ASYNC_DIO (1 << 15) | 242 | #define FUSE_ASYNC_DIO (1 << 15) |
| 243 | #define FUSE_WRITEBACK_CACHE (1 << 16) | ||
| 239 | 244 | ||
| 240 | /** | 245 | /** |
| 241 | * CUSE INIT request/reply flags | 246 | * CUSE INIT request/reply flags |
diff --git a/include/uapi/linux/gfs2_ondisk.h b/include/uapi/linux/gfs2_ondisk.h index 0f24c07aed51..db3fdd083882 100644 --- a/include/uapi/linux/gfs2_ondisk.h +++ b/include/uapi/linux/gfs2_ondisk.h | |||
| @@ -304,7 +304,13 @@ struct gfs2_dirent { | |||
| 304 | __be16 de_rec_len; | 304 | __be16 de_rec_len; |
| 305 | __be16 de_name_len; | 305 | __be16 de_name_len; |
| 306 | __be16 de_type; | 306 | __be16 de_type; |
| 307 | __u8 __pad[14]; | 307 | union { |
| 308 | __u8 __pad[14]; | ||
| 309 | struct { | ||
| 310 | __be16 de_rahead; | ||
| 311 | __u8 pad2[12]; | ||
| 312 | }; | ||
| 313 | }; | ||
| 308 | }; | 314 | }; |
| 309 | 315 | ||
| 310 | /* | 316 | /* |
| @@ -347,9 +353,9 @@ struct gfs2_leaf { | |||
| 347 | * metadata header. Each inode, if it has extended attributes, will | 353 | * metadata header. Each inode, if it has extended attributes, will |
| 348 | * have either a single block containing the extended attribute headers | 354 | * have either a single block containing the extended attribute headers |
| 349 | * or a single indirect block pointing to blocks containing the | 355 | * or a single indirect block pointing to blocks containing the |
| 350 | * extended attribure headers. | 356 | * extended attribute headers. |
| 351 | * | 357 | * |
| 352 | * The maximim size of the data part of an extended attribute is 64k | 358 | * The maximum size of the data part of an extended attribute is 64k |
| 353 | * so the number of blocks required depends upon block size. Since the | 359 | * so the number of blocks required depends upon block size. Since the |
| 354 | * block size also determines the number of pointers in an indirect | 360 | * block size also determines the number of pointers in an indirect |
| 355 | * block, its a fairly complicated calculation to work out the maximum | 361 | * block, its a fairly complicated calculation to work out the maximum |
diff --git a/include/uapi/linux/hyperv.h b/include/uapi/linux/hyperv.h index 9beb7c991638..78e4a86030dd 100644 --- a/include/uapi/linux/hyperv.h +++ b/include/uapi/linux/hyperv.h | |||
| @@ -305,6 +305,7 @@ enum hv_kvp_exchg_pool { | |||
| 305 | #define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F | 305 | #define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F |
| 306 | #define HV_INVALIDARG 0x80070057 | 306 | #define HV_INVALIDARG 0x80070057 |
| 307 | #define HV_GUID_NOTFOUND 0x80041002 | 307 | #define HV_GUID_NOTFOUND 0x80041002 |
| 308 | #define HV_ERROR_ALREADY_EXISTS 0x80070050 | ||
| 308 | 309 | ||
| 309 | #define ADDR_FAMILY_NONE 0x00 | 310 | #define ADDR_FAMILY_NONE 0x00 |
| 310 | #define ADDR_FAMILY_IPV4 0x01 | 311 | #define ADDR_FAMILY_IPV4 0x01 |
diff --git a/include/uapi/linux/if.h b/include/uapi/linux/if.h index d758163b0e43..9cf2394f0bcf 100644 --- a/include/uapi/linux/if.h +++ b/include/uapi/linux/if.h | |||
| @@ -27,65 +27,91 @@ | |||
| 27 | #define IFALIASZ 256 | 27 | #define IFALIASZ 256 |
| 28 | #include <linux/hdlc/ioctl.h> | 28 | #include <linux/hdlc/ioctl.h> |
| 29 | 29 | ||
| 30 | /* Standard interface flags (netdevice->flags). */ | 30 | /** |
| 31 | #define IFF_UP 0x1 /* interface is up */ | 31 | * enum net_device_flags - &struct net_device flags |
| 32 | #define IFF_BROADCAST 0x2 /* broadcast address valid */ | 32 | * |
| 33 | #define IFF_DEBUG 0x4 /* turn on debugging */ | 33 | * These are the &struct net_device flags, they can be set by drivers, the |
| 34 | #define IFF_LOOPBACK 0x8 /* is a loopback net */ | 34 | * kernel and some can be triggered by userspace. Userspace can query and |
| 35 | #define IFF_POINTOPOINT 0x10 /* interface is has p-p link */ | 35 | * set these flags using userspace utilities but there is also a sysfs |
| 36 | #define IFF_NOTRAILERS 0x20 /* avoid use of trailers */ | 36 | * entry available for all dev flags which can be queried and set. These flags |
| 37 | #define IFF_RUNNING 0x40 /* interface RFC2863 OPER_UP */ | 37 | * are shared for all types of net_devices. The sysfs entries are available |
| 38 | #define IFF_NOARP 0x80 /* no ARP protocol */ | 38 | * via /sys/class/net/<dev>/flags. Flags which can be toggled through sysfs |
| 39 | #define IFF_PROMISC 0x100 /* receive all packets */ | 39 | * are annotated below, note that only a few flags can be toggled and some |
| 40 | #define IFF_ALLMULTI 0x200 /* receive all multicast packets*/ | 40 | * other flags are always always preserved from the original net_device flags |
| 41 | 41 | * even if you try to set them via sysfs. Flags which are always preserved | |
| 42 | #define IFF_MASTER 0x400 /* master of a load balancer */ | 42 | * are kept under the flag grouping @IFF_VOLATILE. Flags which are volatile |
| 43 | #define IFF_SLAVE 0x800 /* slave of a load balancer */ | 43 | * are annotated below as such. |
| 44 | 44 | * | |
| 45 | #define IFF_MULTICAST 0x1000 /* Supports multicast */ | 45 | * You should have a pretty good reason to be extending these flags. |
| 46 | 46 | * | |
| 47 | #define IFF_PORTSEL 0x2000 /* can set media type */ | 47 | * @IFF_UP: interface is up. Can be toggled through sysfs. |
| 48 | #define IFF_AUTOMEDIA 0x4000 /* auto media select active */ | 48 | * @IFF_BROADCAST: broadcast address valid. Volatile. |
| 49 | #define IFF_DYNAMIC 0x8000 /* dialup device with changing addresses*/ | 49 | * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. |
| 50 | 50 | * @IFF_LOOPBACK: is a loopback net. Volatile. | |
| 51 | #define IFF_LOWER_UP 0x10000 /* driver signals L1 up */ | 51 | * @IFF_POINTOPOINT: interface is has p-p link. Volatile. |
| 52 | #define IFF_DORMANT 0x20000 /* driver signals dormant */ | 52 | * @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs. |
| 53 | * Volatile. | ||
| 54 | * @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile. | ||
| 55 | * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. | ||
| 56 | * @IFF_PROMISC: receive all packets. Can be toggled through sysfs. | ||
| 57 | * @IFF_ALLMULTI: receive all multicast packets. Can be toggled through | ||
| 58 | * sysfs. | ||
| 59 | * @IFF_MASTER: master of a load balancer. Volatile. | ||
| 60 | * @IFF_SLAVE: slave of a load balancer. Volatile. | ||
| 61 | * @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs. | ||
| 62 | * @IFF_PORTSEL: can set media type. Can be toggled through sysfs. | ||
| 63 | * @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs. | ||
| 64 | * @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled | ||
| 65 | * through sysfs. | ||
| 66 | * @IFF_LOWER_UP: driver signals L1 up. Volatile. | ||
| 67 | * @IFF_DORMANT: driver signals dormant. Volatile. | ||
| 68 | * @IFF_ECHO: echo sent packets. Volatile. | ||
| 69 | */ | ||
| 70 | enum net_device_flags { | ||
| 71 | IFF_UP = 1<<0, /* sysfs */ | ||
| 72 | IFF_BROADCAST = 1<<1, /* volatile */ | ||
| 73 | IFF_DEBUG = 1<<2, /* sysfs */ | ||
| 74 | IFF_LOOPBACK = 1<<3, /* volatile */ | ||
| 75 | IFF_POINTOPOINT = 1<<4, /* volatile */ | ||
| 76 | IFF_NOTRAILERS = 1<<5, /* sysfs */ | ||
| 77 | IFF_RUNNING = 1<<6, /* volatile */ | ||
| 78 | IFF_NOARP = 1<<7, /* sysfs */ | ||
| 79 | IFF_PROMISC = 1<<8, /* sysfs */ | ||
| 80 | IFF_ALLMULTI = 1<<9, /* sysfs */ | ||
| 81 | IFF_MASTER = 1<<10, /* volatile */ | ||
| 82 | IFF_SLAVE = 1<<11, /* volatile */ | ||
| 83 | IFF_MULTICAST = 1<<12, /* sysfs */ | ||
| 84 | IFF_PORTSEL = 1<<13, /* sysfs */ | ||
| 85 | IFF_AUTOMEDIA = 1<<14, /* sysfs */ | ||
| 86 | IFF_DYNAMIC = 1<<15, /* sysfs */ | ||
| 87 | IFF_LOWER_UP = 1<<16, /* volatile */ | ||
| 88 | IFF_DORMANT = 1<<17, /* volatile */ | ||
| 89 | IFF_ECHO = 1<<18, /* volatile */ | ||
| 90 | }; | ||
| 53 | 91 | ||
| 54 | #define IFF_ECHO 0x40000 /* echo sent packets */ | 92 | #define IFF_UP IFF_UP |
| 93 | #define IFF_BROADCAST IFF_BROADCAST | ||
| 94 | #define IFF_DEBUG IFF_DEBUG | ||
| 95 | #define IFF_LOOPBACK IFF_LOOPBACK | ||
| 96 | #define IFF_POINTOPOINT IFF_POINTOPOINT | ||
| 97 | #define IFF_NOTRAILERS IFF_NOTRAILERS | ||
| 98 | #define IFF_RUNNING IFF_RUNNING | ||
| 99 | #define IFF_NOARP IFF_NOARP | ||
| 100 | #define IFF_PROMISC IFF_PROMISC | ||
| 101 | #define IFF_ALLMULTI IFF_ALLMULTI | ||
| 102 | #define IFF_MASTER IFF_MASTER | ||
| 103 | #define IFF_SLAVE IFF_SLAVE | ||
| 104 | #define IFF_MULTICAST IFF_MULTICAST | ||
| 105 | #define IFF_PORTSEL IFF_PORTSEL | ||
| 106 | #define IFF_AUTOMEDIA IFF_AUTOMEDIA | ||
| 107 | #define IFF_DYNAMIC IFF_DYNAMIC | ||
| 108 | #define IFF_LOWER_UP IFF_LOWER_UP | ||
| 109 | #define IFF_DORMANT IFF_DORMANT | ||
| 110 | #define IFF_ECHO IFF_ECHO | ||
| 55 | 111 | ||
| 56 | #define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ | 112 | #define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ |
| 57 | IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) | 113 | IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) |
| 58 | 114 | ||
| 59 | /* Private (from user) interface flags (netdevice->priv_flags). */ | ||
| 60 | #define IFF_802_1Q_VLAN 0x1 /* 802.1Q VLAN device. */ | ||
| 61 | #define IFF_EBRIDGE 0x2 /* Ethernet bridging device. */ | ||
| 62 | #define IFF_SLAVE_INACTIVE 0x4 /* bonding slave not the curr. active */ | ||
| 63 | #define IFF_MASTER_8023AD 0x8 /* bonding master, 802.3ad. */ | ||
| 64 | #define IFF_MASTER_ALB 0x10 /* bonding master, balance-alb. */ | ||
| 65 | #define IFF_BONDING 0x20 /* bonding master or slave */ | ||
| 66 | #define IFF_SLAVE_NEEDARP 0x40 /* need ARPs for validation */ | ||
| 67 | #define IFF_ISATAP 0x80 /* ISATAP interface (RFC4214) */ | ||
| 68 | #define IFF_MASTER_ARPMON 0x100 /* bonding master, ARP mon in use */ | ||
| 69 | #define IFF_WAN_HDLC 0x200 /* WAN HDLC device */ | ||
| 70 | #define IFF_XMIT_DST_RELEASE 0x400 /* dev_hard_start_xmit() is allowed to | ||
| 71 | * release skb->dst | ||
| 72 | */ | ||
| 73 | #define IFF_DONT_BRIDGE 0x800 /* disallow bridging this ether dev */ | ||
| 74 | #define IFF_DISABLE_NETPOLL 0x1000 /* disable netpoll at run-time */ | ||
| 75 | #define IFF_MACVLAN_PORT 0x2000 /* device used as macvlan port */ | ||
| 76 | #define IFF_BRIDGE_PORT 0x4000 /* device used as bridge port */ | ||
| 77 | #define IFF_OVS_DATAPATH 0x8000 /* device used as Open vSwitch | ||
| 78 | * datapath port */ | ||
| 79 | #define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing | ||
| 80 | * skbs on transmit */ | ||
| 81 | #define IFF_UNICAST_FLT 0x20000 /* Supports unicast filtering */ | ||
| 82 | #define IFF_TEAM_PORT 0x40000 /* device used as team port */ | ||
| 83 | #define IFF_SUPP_NOFCS 0x80000 /* device supports sending custom FCS */ | ||
| 84 | #define IFF_LIVE_ADDR_CHANGE 0x100000 /* device supports hardware address | ||
| 85 | * change when it's running */ | ||
| 86 | #define IFF_MACVLAN 0x200000 /* Macvlan device */ | ||
| 87 | |||
| 88 | |||
| 89 | #define IF_GET_IFACE 0x0001 /* for querying only */ | 115 | #define IF_GET_IFACE 0x0001 /* for querying only */ |
| 90 | #define IF_GET_PROTO 0x0002 | 116 | #define IF_GET_PROTO 0x0002 |
| 91 | 117 | ||
diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h index 2ce0f6a78fa5..0f8210b8e0bc 100644 --- a/include/uapi/linux/if_ether.h +++ b/include/uapi/linux/if_ether.h | |||
| @@ -68,11 +68,11 @@ | |||
| 68 | #define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */ | 68 | #define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */ |
| 69 | #define ETH_P_WCCP 0x883E /* Web-cache coordination protocol | 69 | #define ETH_P_WCCP 0x883E /* Web-cache coordination protocol |
| 70 | * defined in draft-wilson-wrec-wccp-v2-00.txt */ | 70 | * defined in draft-wilson-wrec-wccp-v2-00.txt */ |
| 71 | #define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */ | ||
| 72 | #define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */ | ||
| 73 | #define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */ | 71 | #define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */ |
| 74 | #define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */ | 72 | #define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */ |
| 75 | #define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */ | 73 | #define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */ |
| 74 | #define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */ | ||
| 75 | #define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */ | ||
| 76 | #define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */ | 76 | #define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */ |
| 77 | #define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport | 77 | #define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport |
| 78 | * over Ethernet | 78 | * over Ethernet |
| @@ -89,6 +89,8 @@ | |||
| 89 | #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ | 89 | #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ |
| 90 | #define ETH_P_TDLS 0x890D /* TDLS */ | 90 | #define ETH_P_TDLS 0x890D /* TDLS */ |
| 91 | #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ | 91 | #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ |
| 92 | #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */ | ||
| 93 | #define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */ | ||
| 92 | #define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ | 94 | #define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 93 | #define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ | 95 | #define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ |
| 94 | #define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ | 96 | #define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ |
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index 16410b6e7819..9a7f7ace6649 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h | |||
| @@ -144,6 +144,7 @@ enum { | |||
| 144 | IFLA_NUM_RX_QUEUES, | 144 | IFLA_NUM_RX_QUEUES, |
| 145 | IFLA_CARRIER, | 145 | IFLA_CARRIER, |
| 146 | IFLA_PHYS_PORT_ID, | 146 | IFLA_PHYS_PORT_ID, |
| 147 | IFLA_CARRIER_CHANGES, | ||
| 147 | __IFLA_MAX | 148 | __IFLA_MAX |
| 148 | }; | 149 | }; |
| 149 | 150 | ||
diff --git a/include/uapi/linux/in.h b/include/uapi/linux/in.h index 393c5de09d42..c33a65e3d62c 100644 --- a/include/uapi/linux/in.h +++ b/include/uapi/linux/in.h | |||
| @@ -120,6 +120,10 @@ struct in_addr { | |||
| 120 | * this socket to prevent accepting spoofed ones. | 120 | * this socket to prevent accepting spoofed ones. |
| 121 | */ | 121 | */ |
| 122 | #define IP_PMTUDISC_INTERFACE 4 | 122 | #define IP_PMTUDISC_INTERFACE 4 |
| 123 | /* weaker version of IP_PMTUDISC_INTERFACE, which allos packets to get | ||
| 124 | * fragmented if they exeed the interface mtu | ||
| 125 | */ | ||
| 126 | #define IP_PMTUDISC_OMIT 5 | ||
| 123 | 127 | ||
| 124 | #define IP_MULTICAST_IF 32 | 128 | #define IP_MULTICAST_IF 32 |
| 125 | #define IP_MULTICAST_TTL 33 | 129 | #define IP_MULTICAST_TTL 33 |
diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h index e9a1d2d973b6..0d8e0f0342dc 100644 --- a/include/uapi/linux/in6.h +++ b/include/uapi/linux/in6.h | |||
| @@ -185,6 +185,10 @@ struct in6_flowlabel_req { | |||
| 185 | * also see comments on IP_PMTUDISC_INTERFACE | 185 | * also see comments on IP_PMTUDISC_INTERFACE |
| 186 | */ | 186 | */ |
| 187 | #define IPV6_PMTUDISC_INTERFACE 4 | 187 | #define IPV6_PMTUDISC_INTERFACE 4 |
| 188 | /* weaker version of IPV6_PMTUDISC_INTERFACE, which allows packets to | ||
| 189 | * get fragmented if they exceed the interface mtu | ||
| 190 | */ | ||
| 191 | #define IPV6_PMTUDISC_OMIT 5 | ||
| 188 | 192 | ||
| 189 | /* Flowlabel */ | 193 | /* Flowlabel */ |
| 190 | #define IPV6_FLOWLABEL_MGR 32 | 194 | #define IPV6_FLOWLABEL_MGR 32 |
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 932d7f2637d6..a8f4ee5d2e82 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
| @@ -413,6 +413,8 @@ struct kvm_s390_psw { | |||
| 413 | #define KVM_S390_PROGRAM_INT 0xfffe0001u | 413 | #define KVM_S390_PROGRAM_INT 0xfffe0001u |
| 414 | #define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u | 414 | #define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u |
| 415 | #define KVM_S390_RESTART 0xfffe0003u | 415 | #define KVM_S390_RESTART 0xfffe0003u |
| 416 | #define KVM_S390_INT_PFAULT_INIT 0xfffe0004u | ||
| 417 | #define KVM_S390_INT_PFAULT_DONE 0xfffe0005u | ||
| 416 | #define KVM_S390_MCHK 0xfffe1000u | 418 | #define KVM_S390_MCHK 0xfffe1000u |
| 417 | #define KVM_S390_INT_VIRTIO 0xffff2603u | 419 | #define KVM_S390_INT_VIRTIO 0xffff2603u |
| 418 | #define KVM_S390_INT_SERVICE 0xffff2401u | 420 | #define KVM_S390_INT_SERVICE 0xffff2401u |
| @@ -434,6 +436,69 @@ struct kvm_s390_interrupt { | |||
| 434 | __u64 parm64; | 436 | __u64 parm64; |
| 435 | }; | 437 | }; |
| 436 | 438 | ||
| 439 | struct kvm_s390_io_info { | ||
| 440 | __u16 subchannel_id; | ||
| 441 | __u16 subchannel_nr; | ||
| 442 | __u32 io_int_parm; | ||
| 443 | __u32 io_int_word; | ||
| 444 | }; | ||
| 445 | |||
| 446 | struct kvm_s390_ext_info { | ||
| 447 | __u32 ext_params; | ||
| 448 | __u32 pad; | ||
| 449 | __u64 ext_params2; | ||
| 450 | }; | ||
| 451 | |||
| 452 | struct kvm_s390_pgm_info { | ||
| 453 | __u64 trans_exc_code; | ||
| 454 | __u64 mon_code; | ||
| 455 | __u64 per_address; | ||
| 456 | __u32 data_exc_code; | ||
| 457 | __u16 code; | ||
| 458 | __u16 mon_class_nr; | ||
| 459 | __u8 per_code; | ||
| 460 | __u8 per_atmid; | ||
| 461 | __u8 exc_access_id; | ||
| 462 | __u8 per_access_id; | ||
| 463 | __u8 op_access_id; | ||
| 464 | __u8 pad[3]; | ||
| 465 | }; | ||
| 466 | |||
| 467 | struct kvm_s390_prefix_info { | ||
| 468 | __u32 address; | ||
| 469 | }; | ||
| 470 | |||
| 471 | struct kvm_s390_extcall_info { | ||
| 472 | __u16 code; | ||
| 473 | }; | ||
| 474 | |||
| 475 | struct kvm_s390_emerg_info { | ||
| 476 | __u16 code; | ||
| 477 | }; | ||
| 478 | |||
| 479 | struct kvm_s390_mchk_info { | ||
| 480 | __u64 cr14; | ||
| 481 | __u64 mcic; | ||
| 482 | __u64 failing_storage_address; | ||
| 483 | __u32 ext_damage_code; | ||
| 484 | __u32 pad; | ||
| 485 | __u8 fixed_logout[16]; | ||
| 486 | }; | ||
| 487 | |||
| 488 | struct kvm_s390_irq { | ||
| 489 | __u64 type; | ||
| 490 | union { | ||
| 491 | struct kvm_s390_io_info io; | ||
| 492 | struct kvm_s390_ext_info ext; | ||
| 493 | struct kvm_s390_pgm_info pgm; | ||
| 494 | struct kvm_s390_emerg_info emerg; | ||
| 495 | struct kvm_s390_extcall_info extcall; | ||
| 496 | struct kvm_s390_prefix_info prefix; | ||
| 497 | struct kvm_s390_mchk_info mchk; | ||
| 498 | char reserved[64]; | ||
| 499 | } u; | ||
| 500 | }; | ||
| 501 | |||
| 437 | /* for KVM_SET_GUEST_DEBUG */ | 502 | /* for KVM_SET_GUEST_DEBUG */ |
| 438 | 503 | ||
| 439 | #define KVM_GUESTDBG_ENABLE 0x00000001 | 504 | #define KVM_GUESTDBG_ENABLE 0x00000001 |
| @@ -675,6 +740,9 @@ struct kvm_ppc_smmu_info { | |||
| 675 | #define KVM_CAP_SPAPR_MULTITCE 94 | 740 | #define KVM_CAP_SPAPR_MULTITCE 94 |
| 676 | #define KVM_CAP_EXT_EMUL_CPUID 95 | 741 | #define KVM_CAP_EXT_EMUL_CPUID 95 |
| 677 | #define KVM_CAP_HYPERV_TIME 96 | 742 | #define KVM_CAP_HYPERV_TIME 96 |
| 743 | #define KVM_CAP_IOAPIC_POLARITY_IGNORED 97 | ||
| 744 | #define KVM_CAP_ENABLE_CAP_VM 98 | ||
| 745 | #define KVM_CAP_S390_IRQCHIP 99 | ||
| 678 | 746 | ||
| 679 | #ifdef KVM_CAP_IRQ_ROUTING | 747 | #ifdef KVM_CAP_IRQ_ROUTING |
| 680 | 748 | ||
| @@ -690,9 +758,18 @@ struct kvm_irq_routing_msi { | |||
| 690 | __u32 pad; | 758 | __u32 pad; |
| 691 | }; | 759 | }; |
| 692 | 760 | ||
| 761 | struct kvm_irq_routing_s390_adapter { | ||
| 762 | __u64 ind_addr; | ||
| 763 | __u64 summary_addr; | ||
| 764 | __u64 ind_offset; | ||
| 765 | __u32 summary_offset; | ||
| 766 | __u32 adapter_id; | ||
| 767 | }; | ||
| 768 | |||
| 693 | /* gsi routing entry types */ | 769 | /* gsi routing entry types */ |
| 694 | #define KVM_IRQ_ROUTING_IRQCHIP 1 | 770 | #define KVM_IRQ_ROUTING_IRQCHIP 1 |
| 695 | #define KVM_IRQ_ROUTING_MSI 2 | 771 | #define KVM_IRQ_ROUTING_MSI 2 |
| 772 | #define KVM_IRQ_ROUTING_S390_ADAPTER 3 | ||
| 696 | 773 | ||
| 697 | struct kvm_irq_routing_entry { | 774 | struct kvm_irq_routing_entry { |
| 698 | __u32 gsi; | 775 | __u32 gsi; |
| @@ -702,6 +779,7 @@ struct kvm_irq_routing_entry { | |||
| 702 | union { | 779 | union { |
| 703 | struct kvm_irq_routing_irqchip irqchip; | 780 | struct kvm_irq_routing_irqchip irqchip; |
| 704 | struct kvm_irq_routing_msi msi; | 781 | struct kvm_irq_routing_msi msi; |
| 782 | struct kvm_irq_routing_s390_adapter adapter; | ||
| 705 | __u32 pad[8]; | 783 | __u32 pad[8]; |
| 706 | } u; | 784 | } u; |
| 707 | }; | 785 | }; |
| @@ -855,6 +933,7 @@ struct kvm_device_attr { | |||
| 855 | #define KVM_DEV_VFIO_GROUP_ADD 1 | 933 | #define KVM_DEV_VFIO_GROUP_ADD 1 |
| 856 | #define KVM_DEV_VFIO_GROUP_DEL 2 | 934 | #define KVM_DEV_VFIO_GROUP_DEL 2 |
| 857 | #define KVM_DEV_TYPE_ARM_VGIC_V2 5 | 935 | #define KVM_DEV_TYPE_ARM_VGIC_V2 5 |
| 936 | #define KVM_DEV_TYPE_FLIC 6 | ||
| 858 | 937 | ||
| 859 | /* | 938 | /* |
| 860 | * ioctls for VM fds | 939 | * ioctls for VM fds |
| @@ -1009,6 +1088,10 @@ struct kvm_s390_ucas_mapping { | |||
| 1009 | /* Available with KVM_CAP_DEBUGREGS */ | 1088 | /* Available with KVM_CAP_DEBUGREGS */ |
| 1010 | #define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs) | 1089 | #define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs) |
| 1011 | #define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs) | 1090 | #define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs) |
| 1091 | /* | ||
| 1092 | * vcpu version available with KVM_ENABLE_CAP | ||
| 1093 | * vm version available with KVM_CAP_ENABLE_CAP_VM | ||
| 1094 | */ | ||
| 1012 | #define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap) | 1095 | #define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap) |
| 1013 | /* Available with KVM_CAP_XSAVE */ | 1096 | /* Available with KVM_CAP_XSAVE */ |
| 1014 | #define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave) | 1097 | #define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave) |
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h index 335e8a7cad39..c140620dad92 100644 --- a/include/uapi/linux/libc-compat.h +++ b/include/uapi/linux/libc-compat.h | |||
| @@ -85,6 +85,12 @@ | |||
| 85 | 85 | ||
| 86 | #endif /* _NETINET_IN_H */ | 86 | #endif /* _NETINET_IN_H */ |
| 87 | 87 | ||
| 88 | /* Definitions for xattr.h */ | ||
| 89 | #if defined(_SYS_XATTR_H) | ||
| 90 | #define __UAPI_DEF_XATTR 0 | ||
| 91 | #else | ||
| 92 | #define __UAPI_DEF_XATTR 1 | ||
| 93 | #endif | ||
| 88 | 94 | ||
| 89 | /* If we did not see any headers from any supported C libraries, | 95 | /* If we did not see any headers from any supported C libraries, |
| 90 | * or we are being included in the kernel, then define everything | 96 | * or we are being included in the kernel, then define everything |
| @@ -98,6 +104,9 @@ | |||
| 98 | #define __UAPI_DEF_IPV6_MREQ 1 | 104 | #define __UAPI_DEF_IPV6_MREQ 1 |
| 99 | #define __UAPI_DEF_IPPROTO_V6 1 | 105 | #define __UAPI_DEF_IPPROTO_V6 1 |
| 100 | 106 | ||
| 107 | /* Definitions for xattr.h */ | ||
| 108 | #define __UAPI_DEF_XATTR 1 | ||
| 109 | |||
| 101 | #endif /* __GLIBC__ */ | 110 | #endif /* __GLIBC__ */ |
| 102 | 111 | ||
| 103 | #endif /* _UAPI_LIBC_COMPAT_H */ | 112 | #endif /* _UAPI_LIBC_COMPAT_H */ |
diff --git a/include/uapi/linux/mpls.h b/include/uapi/linux/mpls.h new file mode 100644 index 000000000000..bc9abfe88c9a --- /dev/null +++ b/include/uapi/linux/mpls.h | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | #ifndef _UAPI_MPLS_H | ||
| 2 | #define _UAPI_MPLS_H | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | #include <asm/byteorder.h> | ||
| 6 | |||
| 7 | /* Reference: RFC 5462, RFC 3032 | ||
| 8 | * | ||
| 9 | * 0 1 2 3 | ||
| 10 | * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||
| 11 | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| 12 | * | Label | TC |S| TTL | | ||
| 13 | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| 14 | * | ||
| 15 | * Label: Label Value, 20 bits | ||
| 16 | * TC: Traffic Class field, 3 bits | ||
| 17 | * S: Bottom of Stack, 1 bit | ||
| 18 | * TTL: Time to Live, 8 bits | ||
| 19 | */ | ||
| 20 | |||
| 21 | struct mpls_label { | ||
| 22 | __be32 entry; | ||
| 23 | }; | ||
| 24 | |||
| 25 | #define MPLS_LS_LABEL_MASK 0xFFFFF000 | ||
| 26 | #define MPLS_LS_LABEL_SHIFT 12 | ||
| 27 | #define MPLS_LS_TC_MASK 0x00000E00 | ||
| 28 | #define MPLS_LS_TC_SHIFT 9 | ||
| 29 | #define MPLS_LS_S_MASK 0x00000100 | ||
| 30 | #define MPLS_LS_S_SHIFT 8 | ||
| 31 | #define MPLS_LS_TTL_MASK 0x000000FF | ||
| 32 | #define MPLS_LS_TTL_SHIFT 0 | ||
| 33 | |||
| 34 | #endif /* _UAPI_MPLS_H */ | ||
diff --git a/include/uapi/linux/netdevice.h b/include/uapi/linux/netdevice.h index 6b9500bc2d56..fdfbd1c17065 100644 --- a/include/uapi/linux/netdevice.h +++ b/include/uapi/linux/netdevice.h | |||
| @@ -49,5 +49,11 @@ enum { | |||
| 49 | IF_PORT_100BASEFX | 49 | IF_PORT_100BASEFX |
| 50 | }; | 50 | }; |
| 51 | 51 | ||
| 52 | /* hardware address assignment types */ | ||
| 53 | #define NET_ADDR_PERM 0 /* address is permanent (default) */ | ||
| 54 | #define NET_ADDR_RANDOM 1 /* address is generated randomly */ | ||
| 55 | #define NET_ADDR_STOLEN 2 /* address is stolen from other device */ | ||
| 56 | #define NET_ADDR_SET 3 /* address is set using | ||
| 57 | * dev_set_mac_address() */ | ||
| 52 | 58 | ||
| 53 | #endif /* _UAPI_LINUX_NETDEVICE_H */ | 59 | #endif /* _UAPI_LINUX_NETDEVICE_H */ |
diff --git a/include/uapi/linux/netfilter/ipset/ip_set.h b/include/uapi/linux/netfilter/ipset/ip_set.h index 25d3b2f79c02..78c2f2e79920 100644 --- a/include/uapi/linux/netfilter/ipset/ip_set.h +++ b/include/uapi/linux/netfilter/ipset/ip_set.h | |||
| @@ -82,6 +82,8 @@ enum { | |||
| 82 | IPSET_ATTR_PROTO, /* 7 */ | 82 | IPSET_ATTR_PROTO, /* 7 */ |
| 83 | IPSET_ATTR_CADT_FLAGS, /* 8 */ | 83 | IPSET_ATTR_CADT_FLAGS, /* 8 */ |
| 84 | IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, /* 9 */ | 84 | IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, /* 9 */ |
| 85 | IPSET_ATTR_MARK, /* 10 */ | ||
| 86 | IPSET_ATTR_MARKMASK, /* 11 */ | ||
| 85 | /* Reserve empty slots */ | 87 | /* Reserve empty slots */ |
| 86 | IPSET_ATTR_CADT_MAX = 16, | 88 | IPSET_ATTR_CADT_MAX = 16, |
| 87 | /* Create-only specific attributes */ | 89 | /* Create-only specific attributes */ |
| @@ -144,6 +146,7 @@ enum ipset_errno { | |||
| 144 | IPSET_ERR_IPADDR_IPV6, | 146 | IPSET_ERR_IPADDR_IPV6, |
| 145 | IPSET_ERR_COUNTER, | 147 | IPSET_ERR_COUNTER, |
| 146 | IPSET_ERR_COMMENT, | 148 | IPSET_ERR_COMMENT, |
| 149 | IPSET_ERR_INVALID_MARKMASK, | ||
| 147 | 150 | ||
| 148 | /* Type specific error codes */ | 151 | /* Type specific error codes */ |
| 149 | IPSET_ERR_TYPE_SPECIFIC = 4352, | 152 | IPSET_ERR_TYPE_SPECIFIC = 4352, |
| @@ -182,9 +185,18 @@ enum ipset_cadt_flags { | |||
| 182 | IPSET_FLAG_WITH_COUNTERS = (1 << IPSET_FLAG_BIT_WITH_COUNTERS), | 185 | IPSET_FLAG_WITH_COUNTERS = (1 << IPSET_FLAG_BIT_WITH_COUNTERS), |
| 183 | IPSET_FLAG_BIT_WITH_COMMENT = 4, | 186 | IPSET_FLAG_BIT_WITH_COMMENT = 4, |
| 184 | IPSET_FLAG_WITH_COMMENT = (1 << IPSET_FLAG_BIT_WITH_COMMENT), | 187 | IPSET_FLAG_WITH_COMMENT = (1 << IPSET_FLAG_BIT_WITH_COMMENT), |
| 188 | IPSET_FLAG_BIT_WITH_FORCEADD = 5, | ||
| 189 | IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD), | ||
| 185 | IPSET_FLAG_CADT_MAX = 15, | 190 | IPSET_FLAG_CADT_MAX = 15, |
| 186 | }; | 191 | }; |
| 187 | 192 | ||
| 193 | /* The flag bits which correspond to the non-extension create flags */ | ||
| 194 | enum ipset_create_flags { | ||
| 195 | IPSET_CREATE_FLAG_BIT_FORCEADD = 0, | ||
| 196 | IPSET_CREATE_FLAG_FORCEADD = (1 << IPSET_CREATE_FLAG_BIT_FORCEADD), | ||
| 197 | IPSET_CREATE_FLAG_BIT_MAX = 7, | ||
| 198 | }; | ||
| 199 | |||
| 188 | /* Commands with settype-specific attributes */ | 200 | /* Commands with settype-specific attributes */ |
| 189 | enum ipset_adt { | 201 | enum ipset_adt { |
| 190 | IPSET_ADD, | 202 | IPSET_ADD, |
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h index 83c985a6170b..c88ccbfda5f1 100644 --- a/include/uapi/linux/netfilter/nf_tables.h +++ b/include/uapi/linux/netfilter/nf_tables.h | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | #ifndef _LINUX_NF_TABLES_H | 1 | #ifndef _LINUX_NF_TABLES_H |
| 2 | #define _LINUX_NF_TABLES_H | 2 | #define _LINUX_NF_TABLES_H |
| 3 | 3 | ||
| 4 | #define NFT_CHAIN_MAXNAMELEN 32 | 4 | #define NFT_CHAIN_MAXNAMELEN 32 |
| 5 | #define NFT_USERDATA_MAXLEN 256 | ||
| 5 | 6 | ||
| 6 | enum nft_registers { | 7 | enum nft_registers { |
| 7 | NFT_REG_VERDICT, | 8 | NFT_REG_VERDICT, |
| @@ -156,6 +157,7 @@ enum nft_chain_attributes { | |||
| 156 | * @NFTA_RULE_EXPRESSIONS: list of expressions (NLA_NESTED: nft_expr_attributes) | 157 | * @NFTA_RULE_EXPRESSIONS: list of expressions (NLA_NESTED: nft_expr_attributes) |
| 157 | * @NFTA_RULE_COMPAT: compatibility specifications of the rule (NLA_NESTED: nft_rule_compat_attributes) | 158 | * @NFTA_RULE_COMPAT: compatibility specifications of the rule (NLA_NESTED: nft_rule_compat_attributes) |
| 158 | * @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64) | 159 | * @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64) |
| 160 | * @NFTA_RULE_USERDATA: user data (NLA_BINARY, NFT_USERDATA_MAXLEN) | ||
| 159 | */ | 161 | */ |
| 160 | enum nft_rule_attributes { | 162 | enum nft_rule_attributes { |
| 161 | NFTA_RULE_UNSPEC, | 163 | NFTA_RULE_UNSPEC, |
| @@ -165,6 +167,7 @@ enum nft_rule_attributes { | |||
| 165 | NFTA_RULE_EXPRESSIONS, | 167 | NFTA_RULE_EXPRESSIONS, |
| 166 | NFTA_RULE_COMPAT, | 168 | NFTA_RULE_COMPAT, |
| 167 | NFTA_RULE_POSITION, | 169 | NFTA_RULE_POSITION, |
| 170 | NFTA_RULE_USERDATA, | ||
| 168 | __NFTA_RULE_MAX | 171 | __NFTA_RULE_MAX |
| 169 | }; | 172 | }; |
| 170 | #define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1) | 173 | #define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1) |
| @@ -601,6 +604,7 @@ enum nft_ct_keys { | |||
| 601 | NFT_CT_PROTOCOL, | 604 | NFT_CT_PROTOCOL, |
| 602 | NFT_CT_PROTO_SRC, | 605 | NFT_CT_PROTO_SRC, |
| 603 | NFT_CT_PROTO_DST, | 606 | NFT_CT_PROTO_DST, |
| 607 | NFT_CT_LABELS, | ||
| 604 | }; | 608 | }; |
| 605 | 609 | ||
| 606 | /** | 610 | /** |
diff --git a/include/uapi/linux/nfc.h b/include/uapi/linux/nfc.h index 6ad6cc03ccd3..9789dc95b6a8 100644 --- a/include/uapi/linux/nfc.h +++ b/include/uapi/linux/nfc.h | |||
| @@ -150,6 +150,8 @@ enum nfc_commands { | |||
| 150 | * @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED) | 150 | * @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED) |
| 151 | * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status | 151 | * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status |
| 152 | * @NFC_ATTR_APDU: Secure element APDU | 152 | * @NFC_ATTR_APDU: Secure element APDU |
| 153 | * @NFC_ATTR_TARGET_ISO15693_DSFID: ISO 15693 Data Storage Format Identifier | ||
| 154 | * @NFC_ATTR_TARGET_ISO15693_UID: ISO 15693 Unique Identifier | ||
| 153 | */ | 155 | */ |
| 154 | enum nfc_attrs { | 156 | enum nfc_attrs { |
| 155 | NFC_ATTR_UNSPEC, | 157 | NFC_ATTR_UNSPEC, |
| @@ -178,6 +180,8 @@ enum nfc_attrs { | |||
| 178 | NFC_ATTR_SE_AID, | 180 | NFC_ATTR_SE_AID, |
| 179 | NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS, | 181 | NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS, |
| 180 | NFC_ATTR_SE_APDU, | 182 | NFC_ATTR_SE_APDU, |
| 183 | NFC_ATTR_TARGET_ISO15693_DSFID, | ||
| 184 | NFC_ATTR_TARGET_ISO15693_UID, | ||
| 181 | /* private: internal use only */ | 185 | /* private: internal use only */ |
| 182 | __NFC_ATTR_AFTER_LAST | 186 | __NFC_ATTR_AFTER_LAST |
| 183 | }; | 187 | }; |
| @@ -200,6 +204,7 @@ enum nfc_sdp_attr { | |||
| 200 | #define NFC_SENSF_RES_MAXSIZE 18 | 204 | #define NFC_SENSF_RES_MAXSIZE 18 |
| 201 | #define NFC_GB_MAXSIZE 48 | 205 | #define NFC_GB_MAXSIZE 48 |
| 202 | #define NFC_FIRMWARE_NAME_MAXSIZE 32 | 206 | #define NFC_FIRMWARE_NAME_MAXSIZE 32 |
| 207 | #define NFC_ISO15693_UID_MAXSIZE 8 | ||
| 203 | 208 | ||
| 204 | /* NFC protocols */ | 209 | /* NFC protocols */ |
| 205 | #define NFC_PROTO_JEWEL 1 | 210 | #define NFC_PROTO_JEWEL 1 |
| @@ -208,8 +213,9 @@ enum nfc_sdp_attr { | |||
| 208 | #define NFC_PROTO_ISO14443 4 | 213 | #define NFC_PROTO_ISO14443 4 |
| 209 | #define NFC_PROTO_NFC_DEP 5 | 214 | #define NFC_PROTO_NFC_DEP 5 |
| 210 | #define NFC_PROTO_ISO14443_B 6 | 215 | #define NFC_PROTO_ISO14443_B 6 |
| 216 | #define NFC_PROTO_ISO15693 7 | ||
| 211 | 217 | ||
| 212 | #define NFC_PROTO_MAX 7 | 218 | #define NFC_PROTO_MAX 8 |
| 213 | 219 | ||
| 214 | /* NFC communication modes */ | 220 | /* NFC communication modes */ |
| 215 | #define NFC_COMM_ACTIVE 0 | 221 | #define NFC_COMM_ACTIVE 0 |
| @@ -227,6 +233,7 @@ enum nfc_sdp_attr { | |||
| 227 | #define NFC_PROTO_ISO14443_MASK (1 << NFC_PROTO_ISO14443) | 233 | #define NFC_PROTO_ISO14443_MASK (1 << NFC_PROTO_ISO14443) |
| 228 | #define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP) | 234 | #define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP) |
| 229 | #define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B) | 235 | #define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B) |
| 236 | #define NFC_PROTO_ISO15693_MASK (1 << NFC_PROTO_ISO15693) | ||
| 230 | 237 | ||
| 231 | /* NFC Secure Elements */ | 238 | /* NFC Secure Elements */ |
| 232 | #define NFC_SE_UICC 0x1 | 239 | #define NFC_SE_UICC 0x1 |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index 91054fd660e0..1ba9d626aa83 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
| @@ -303,8 +303,9 @@ | |||
| 303 | * passed, all channels allowed for the current regulatory domain | 303 | * passed, all channels allowed for the current regulatory domain |
| 304 | * are used. Extra IEs can also be passed from the userspace by | 304 | * are used. Extra IEs can also be passed from the userspace by |
| 305 | * using the %NL80211_ATTR_IE attribute. | 305 | * using the %NL80211_ATTR_IE attribute. |
| 306 | * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT | 306 | * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if |
| 307 | * if scheduled scan is not running. | 307 | * scheduled scan is not running. The caller may assume that as soon |
| 308 | * as the call returns, it is safe to start a new scheduled scan again. | ||
| 308 | * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan | 309 | * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan |
| 309 | * results available. | 310 | * results available. |
| 310 | * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has | 311 | * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has |
| @@ -418,8 +419,18 @@ | |||
| 418 | * %NL80211_ATTR_SSID attribute, and can optionally specify the association | 419 | * %NL80211_ATTR_SSID attribute, and can optionally specify the association |
| 419 | * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP, | 420 | * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP, |
| 420 | * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, | 421 | * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, |
| 421 | * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and | 422 | * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, |
| 422 | * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT. | 423 | * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, %NL80211_ATTR_MAC_HINT, and |
| 424 | * %NL80211_ATTR_WIPHY_FREQ_HINT. | ||
| 425 | * If included, %NL80211_ATTR_MAC and %NL80211_ATTR_WIPHY_FREQ are | ||
| 426 | * restrictions on BSS selection, i.e., they effectively prevent roaming | ||
| 427 | * within the ESS. %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT | ||
| 428 | * can be included to provide a recommendation of the initial BSS while | ||
| 429 | * allowing the driver to roam to other BSSes within the ESS and also to | ||
| 430 | * ignore this recommendation if the indicated BSS is not ideal. Only one | ||
| 431 | * set of BSSID,frequency parameters is used (i.e., either the enforcing | ||
| 432 | * %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict | ||
| 433 | * %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT). | ||
| 423 | * Background scan period can optionally be | 434 | * Background scan period can optionally be |
| 424 | * specified in %NL80211_ATTR_BG_SCAN_PERIOD, | 435 | * specified in %NL80211_ATTR_BG_SCAN_PERIOD, |
| 425 | * if not specified default background scan configuration | 436 | * if not specified default background scan configuration |
| @@ -1555,6 +1566,19 @@ enum nl80211_commands { | |||
| 1555 | * data is in the format defined for the payload of the QoS Map Set element | 1566 | * data is in the format defined for the payload of the QoS Map Set element |
| 1556 | * in IEEE Std 802.11-2012, 8.4.2.97. | 1567 | * in IEEE Std 802.11-2012, 8.4.2.97. |
| 1557 | * | 1568 | * |
| 1569 | * @NL80211_ATTR_MAC_HINT: MAC address recommendation as initial BSS | ||
| 1570 | * @NL80211_ATTR_WIPHY_FREQ_HINT: frequency of the recommended initial BSS | ||
| 1571 | * | ||
| 1572 | * @NL80211_ATTR_MAX_AP_ASSOC_STA: Device attribute that indicates how many | ||
| 1573 | * associated stations are supported in AP mode (including P2P GO); u32. | ||
| 1574 | * Since drivers may not have a fixed limit on the maximum number (e.g., | ||
| 1575 | * other concurrent operations may affect this), drivers are allowed to | ||
| 1576 | * advertise values that cannot always be met. In such cases, an attempt | ||
| 1577 | * to add a new station entry with @NL80211_CMD_NEW_STATION may fail. | ||
| 1578 | * | ||
| 1579 | * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32. | ||
| 1580 | * As specified in the &enum nl80211_tdls_peer_capability. | ||
| 1581 | * | ||
| 1558 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1582 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 1559 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1583 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| 1560 | */ | 1584 | */ |
| @@ -1883,6 +1907,13 @@ enum nl80211_attrs { | |||
| 1883 | 1907 | ||
| 1884 | NL80211_ATTR_QOS_MAP, | 1908 | NL80211_ATTR_QOS_MAP, |
| 1885 | 1909 | ||
| 1910 | NL80211_ATTR_MAC_HINT, | ||
| 1911 | NL80211_ATTR_WIPHY_FREQ_HINT, | ||
| 1912 | |||
| 1913 | NL80211_ATTR_MAX_AP_ASSOC_STA, | ||
| 1914 | |||
| 1915 | NL80211_ATTR_TDLS_PEER_CAPABILITY, | ||
| 1916 | |||
| 1886 | /* add attributes here, update the policy in nl80211.c */ | 1917 | /* add attributes here, update the policy in nl80211.c */ |
| 1887 | 1918 | ||
| 1888 | __NL80211_ATTR_AFTER_LAST, | 1919 | __NL80211_ATTR_AFTER_LAST, |
| @@ -2304,6 +2335,7 @@ enum nl80211_band_attr { | |||
| 2304 | * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel | 2335 | * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel |
| 2305 | * using this channel as the primary or any of the secondary channels | 2336 | * using this channel as the primary or any of the secondary channels |
| 2306 | * isn't possible | 2337 | * isn't possible |
| 2338 | * @NL80211_FREQUENCY_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds. | ||
| 2307 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number | 2339 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| 2308 | * currently defined | 2340 | * currently defined |
| 2309 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use | 2341 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use |
| @@ -2322,6 +2354,7 @@ enum nl80211_frequency_attr { | |||
| 2322 | NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, | 2354 | NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, |
| 2323 | NL80211_FREQUENCY_ATTR_NO_80MHZ, | 2355 | NL80211_FREQUENCY_ATTR_NO_80MHZ, |
| 2324 | NL80211_FREQUENCY_ATTR_NO_160MHZ, | 2356 | NL80211_FREQUENCY_ATTR_NO_160MHZ, |
| 2357 | NL80211_FREQUENCY_ATTR_DFS_CAC_TIME, | ||
| 2325 | 2358 | ||
| 2326 | /* keep last */ | 2359 | /* keep last */ |
| 2327 | __NL80211_FREQUENCY_ATTR_AFTER_LAST, | 2360 | __NL80211_FREQUENCY_ATTR_AFTER_LAST, |
| @@ -2412,12 +2445,14 @@ enum nl80211_reg_type { | |||
| 2412 | * in KHz. This is not a center a frequency but an actual regulatory | 2445 | * in KHz. This is not a center a frequency but an actual regulatory |
| 2413 | * band edge. | 2446 | * band edge. |
| 2414 | * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this | 2447 | * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this |
| 2415 | * frequency range, in KHz. | 2448 | * frequency range, in KHz. |
| 2416 | * @NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN: the maximum allowed antenna gain | 2449 | * @NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN: the maximum allowed antenna gain |
| 2417 | * for a given frequency range. The value is in mBi (100 * dBi). | 2450 | * for a given frequency range. The value is in mBi (100 * dBi). |
| 2418 | * If you don't have one then don't send this. | 2451 | * If you don't have one then don't send this. |
| 2419 | * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for | 2452 | * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for |
| 2420 | * a given frequency range. The value is in mBm (100 * dBm). | 2453 | * a given frequency range. The value is in mBm (100 * dBm). |
| 2454 | * @NL80211_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds. | ||
| 2455 | * If not present or 0 default CAC time will be used. | ||
| 2421 | * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number | 2456 | * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number |
| 2422 | * currently defined | 2457 | * currently defined |
| 2423 | * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use | 2458 | * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use |
| @@ -2433,6 +2468,8 @@ enum nl80211_reg_rule_attr { | |||
| 2433 | NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, | 2468 | NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, |
| 2434 | NL80211_ATTR_POWER_RULE_MAX_EIRP, | 2469 | NL80211_ATTR_POWER_RULE_MAX_EIRP, |
| 2435 | 2470 | ||
| 2471 | NL80211_ATTR_DFS_CAC_TIME, | ||
| 2472 | |||
| 2436 | /* keep last */ | 2473 | /* keep last */ |
| 2437 | __NL80211_REG_RULE_ATTR_AFTER_LAST, | 2474 | __NL80211_REG_RULE_ATTR_AFTER_LAST, |
| 2438 | NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1 | 2475 | NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1 |
| @@ -2442,9 +2479,15 @@ enum nl80211_reg_rule_attr { | |||
| 2442 | * enum nl80211_sched_scan_match_attr - scheduled scan match attributes | 2479 | * enum nl80211_sched_scan_match_attr - scheduled scan match attributes |
| 2443 | * @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved | 2480 | * @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved |
| 2444 | * @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching, | 2481 | * @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching, |
| 2445 | * only report BSS with matching SSID. | 2482 | * only report BSS with matching SSID. |
| 2446 | * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI: RSSI threshold (in dBm) for reporting a | 2483 | * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI: RSSI threshold (in dBm) for reporting a |
| 2447 | * BSS in scan results. Filtering is turned off if not specified. | 2484 | * BSS in scan results. Filtering is turned off if not specified. Note that |
| 2485 | * if this attribute is in a match set of its own, then it is treated as | ||
| 2486 | * the default value for all matchsets with an SSID, rather than being a | ||
| 2487 | * matchset of its own without an RSSI filter. This is due to problems with | ||
| 2488 | * how this API was implemented in the past. Also, due to the same problem, | ||
| 2489 | * the only way to create a matchset with only an RSSI filter (with this | ||
| 2490 | * attribute) is if there's only a single matchset with the RSSI attribute. | ||
| 2448 | * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter | 2491 | * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter |
| 2449 | * attribute number currently defined | 2492 | * attribute number currently defined |
| 2450 | * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use | 2493 | * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use |
| @@ -2477,6 +2520,9 @@ enum nl80211_sched_scan_match_attr { | |||
| 2477 | * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed, | 2520 | * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed, |
| 2478 | * this includes probe requests or modes of operation that require | 2521 | * this includes probe requests or modes of operation that require |
| 2479 | * beaconing. | 2522 | * beaconing. |
| 2523 | * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated | ||
| 2524 | * base on contiguous rules and wider channels will be allowed to cross | ||
| 2525 | * multiple contiguous/overlapping frequency ranges. | ||
| 2480 | */ | 2526 | */ |
| 2481 | enum nl80211_reg_rule_flags { | 2527 | enum nl80211_reg_rule_flags { |
| 2482 | NL80211_RRF_NO_OFDM = 1<<0, | 2528 | NL80211_RRF_NO_OFDM = 1<<0, |
| @@ -2488,6 +2534,7 @@ enum nl80211_reg_rule_flags { | |||
| 2488 | NL80211_RRF_PTMP_ONLY = 1<<6, | 2534 | NL80211_RRF_PTMP_ONLY = 1<<6, |
| 2489 | NL80211_RRF_NO_IR = 1<<7, | 2535 | NL80211_RRF_NO_IR = 1<<7, |
| 2490 | __NL80211_RRF_NO_IBSS = 1<<8, | 2536 | __NL80211_RRF_NO_IBSS = 1<<8, |
| 2537 | NL80211_RRF_AUTO_BW = 1<<11, | ||
| 2491 | }; | 2538 | }; |
| 2492 | 2539 | ||
| 2493 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR | 2540 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR |
| @@ -3131,6 +3178,7 @@ enum nl80211_key_attributes { | |||
| 3131 | * in an array of MCS numbers. | 3178 | * in an array of MCS numbers. |
| 3132 | * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection, | 3179 | * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection, |
| 3133 | * see &struct nl80211_txrate_vht | 3180 | * see &struct nl80211_txrate_vht |
| 3181 | * @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi | ||
| 3134 | * @__NL80211_TXRATE_AFTER_LAST: internal | 3182 | * @__NL80211_TXRATE_AFTER_LAST: internal |
| 3135 | * @NL80211_TXRATE_MAX: highest TX rate attribute | 3183 | * @NL80211_TXRATE_MAX: highest TX rate attribute |
| 3136 | */ | 3184 | */ |
| @@ -3139,6 +3187,7 @@ enum nl80211_tx_rate_attributes { | |||
| 3139 | NL80211_TXRATE_LEGACY, | 3187 | NL80211_TXRATE_LEGACY, |
| 3140 | NL80211_TXRATE_HT, | 3188 | NL80211_TXRATE_HT, |
| 3141 | NL80211_TXRATE_VHT, | 3189 | NL80211_TXRATE_VHT, |
| 3190 | NL80211_TXRATE_GI, | ||
| 3142 | 3191 | ||
| 3143 | /* keep last */ | 3192 | /* keep last */ |
| 3144 | __NL80211_TXRATE_AFTER_LAST, | 3193 | __NL80211_TXRATE_AFTER_LAST, |
| @@ -3156,6 +3205,12 @@ struct nl80211_txrate_vht { | |||
| 3156 | __u16 mcs[NL80211_VHT_NSS_MAX]; | 3205 | __u16 mcs[NL80211_VHT_NSS_MAX]; |
| 3157 | }; | 3206 | }; |
| 3158 | 3207 | ||
| 3208 | enum nl80211_txrate_gi { | ||
| 3209 | NL80211_TXRATE_DEFAULT_GI, | ||
| 3210 | NL80211_TXRATE_FORCE_SGI, | ||
| 3211 | NL80211_TXRATE_FORCE_LGI, | ||
| 3212 | }; | ||
| 3213 | |||
| 3159 | /** | 3214 | /** |
| 3160 | * enum nl80211_band - Frequency band | 3215 | * enum nl80211_band - Frequency band |
| 3161 | * @NL80211_BAND_2GHZ: 2.4 GHz ISM band | 3216 | * @NL80211_BAND_2GHZ: 2.4 GHz ISM band |
| @@ -3801,11 +3856,6 @@ enum nl80211_ap_sme_features { | |||
| 3801 | * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested | 3856 | * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested |
| 3802 | * to work properly to suppport receiving regulatory hints from | 3857 | * to work properly to suppport receiving regulatory hints from |
| 3803 | * cellular base stations. | 3858 | * cellular base stations. |
| 3804 | * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: If this is set, an active | ||
| 3805 | * P2P Device (%NL80211_IFTYPE_P2P_DEVICE) requires its own channel | ||
| 3806 | * in the interface combinations, even when it's only used for scan | ||
| 3807 | * and remain-on-channel. This could be due to, for example, the | ||
| 3808 | * remain-on-channel implementation requiring a channel context. | ||
| 3809 | * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of | 3859 | * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of |
| 3810 | * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station | 3860 | * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station |
| 3811 | * mode | 3861 | * mode |
| @@ -3847,7 +3897,7 @@ enum nl80211_feature_flags { | |||
| 3847 | NL80211_FEATURE_HT_IBSS = 1 << 1, | 3897 | NL80211_FEATURE_HT_IBSS = 1 << 1, |
| 3848 | NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, | 3898 | NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, |
| 3849 | NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, | 3899 | NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, |
| 3850 | NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, | 3900 | /* bit 4 is reserved - don't use */ |
| 3851 | NL80211_FEATURE_SAE = 1 << 5, | 3901 | NL80211_FEATURE_SAE = 1 << 5, |
| 3852 | NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, | 3902 | NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, |
| 3853 | NL80211_FEATURE_SCAN_FLUSH = 1 << 7, | 3903 | NL80211_FEATURE_SCAN_FLUSH = 1 << 7, |
| @@ -4037,4 +4087,20 @@ struct nl80211_vendor_cmd_info { | |||
| 4037 | __u32 subcmd; | 4087 | __u32 subcmd; |
| 4038 | }; | 4088 | }; |
| 4039 | 4089 | ||
| 4090 | /** | ||
| 4091 | * enum nl80211_tdls_peer_capability - TDLS peer flags. | ||
| 4092 | * | ||
| 4093 | * Used by tdls_mgmt() to determine which conditional elements need | ||
| 4094 | * to be added to TDLS Setup frames. | ||
| 4095 | * | ||
| 4096 | * @NL80211_TDLS_PEER_HT: TDLS peer is HT capable. | ||
| 4097 | * @NL80211_TDLS_PEER_VHT: TDLS peer is VHT capable. | ||
| 4098 | * @NL80211_TDLS_PEER_WMM: TDLS peer is WMM capable. | ||
| 4099 | */ | ||
| 4100 | enum nl80211_tdls_peer_capability { | ||
| 4101 | NL80211_TDLS_PEER_HT = 1<<0, | ||
| 4102 | NL80211_TDLS_PEER_VHT = 1<<1, | ||
| 4103 | NL80211_TDLS_PEER_WMM = 1<<2, | ||
| 4104 | }; | ||
| 4105 | |||
| 4040 | #endif /* __LINUX_NL80211_H */ | 4106 | #endif /* __LINUX_NL80211_H */ |
diff --git a/include/uapi/linux/nvme.h b/include/uapi/linux/nvme.h index e5ab62201119..096fe1c6f83d 100644 --- a/include/uapi/linux/nvme.h +++ b/include/uapi/linux/nvme.h | |||
| @@ -434,6 +434,7 @@ enum { | |||
| 434 | NVME_SC_REFTAG_CHECK = 0x284, | 434 | NVME_SC_REFTAG_CHECK = 0x284, |
| 435 | NVME_SC_COMPARE_FAILED = 0x285, | 435 | NVME_SC_COMPARE_FAILED = 0x285, |
| 436 | NVME_SC_ACCESS_DENIED = 0x286, | 436 | NVME_SC_ACCESS_DENIED = 0x286, |
| 437 | NVME_SC_DNR = 0x4000, | ||
| 437 | }; | 438 | }; |
| 438 | 439 | ||
| 439 | struct nvme_completion { | 440 | struct nvme_completion { |
diff --git a/include/uapi/linux/pfkeyv2.h b/include/uapi/linux/pfkeyv2.h index 0b80c806631f..ada7f0171ccc 100644 --- a/include/uapi/linux/pfkeyv2.h +++ b/include/uapi/linux/pfkeyv2.h | |||
| @@ -235,6 +235,18 @@ struct sadb_x_kmaddress { | |||
| 235 | } __attribute__((packed)); | 235 | } __attribute__((packed)); |
| 236 | /* sizeof(struct sadb_x_kmaddress) == 8 */ | 236 | /* sizeof(struct sadb_x_kmaddress) == 8 */ |
| 237 | 237 | ||
| 238 | /* To specify the SA dump filter */ | ||
| 239 | struct sadb_x_filter { | ||
| 240 | __u16 sadb_x_filter_len; | ||
| 241 | __u16 sadb_x_filter_exttype; | ||
| 242 | __u32 sadb_x_filter_saddr[4]; | ||
| 243 | __u32 sadb_x_filter_daddr[4]; | ||
| 244 | __u16 sadb_x_filter_family; | ||
| 245 | __u8 sadb_x_filter_splen; | ||
| 246 | __u8 sadb_x_filter_dplen; | ||
| 247 | } __attribute__((packed)); | ||
| 248 | /* sizeof(struct sadb_x_filter) == 40 */ | ||
| 249 | |||
| 238 | /* Message types */ | 250 | /* Message types */ |
| 239 | #define SADB_RESERVED 0 | 251 | #define SADB_RESERVED 0 |
| 240 | #define SADB_GETSPI 1 | 252 | #define SADB_GETSPI 1 |
| @@ -358,7 +370,8 @@ struct sadb_x_kmaddress { | |||
| 358 | #define SADB_X_EXT_SEC_CTX 24 | 370 | #define SADB_X_EXT_SEC_CTX 24 |
| 359 | /* Used with MIGRATE to pass @ to IKE for negotiation */ | 371 | /* Used with MIGRATE to pass @ to IKE for negotiation */ |
| 360 | #define SADB_X_EXT_KMADDRESS 25 | 372 | #define SADB_X_EXT_KMADDRESS 25 |
| 361 | #define SADB_EXT_MAX 25 | 373 | #define SADB_X_EXT_FILTER 26 |
| 374 | #define SADB_EXT_MAX 26 | ||
| 362 | 375 | ||
| 363 | /* Identity Extension values */ | 376 | /* Identity Extension values */ |
| 364 | #define SADB_IDENTTYPE_RESERVED 0 | 377 | #define SADB_IDENTTYPE_RESERVED 0 |
diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h index 289760f424aa..58afc04c107e 100644 --- a/include/uapi/linux/prctl.h +++ b/include/uapi/linux/prctl.h | |||
| @@ -149,4 +149,7 @@ | |||
| 149 | 149 | ||
| 150 | #define PR_GET_TID_ADDRESS 40 | 150 | #define PR_GET_TID_ADDRESS 40 |
| 151 | 151 | ||
| 152 | #define PR_SET_THP_DISABLE 41 | ||
| 153 | #define PR_GET_THP_DISABLE 42 | ||
| 154 | |||
| 152 | #endif /* _LINUX_PRCTL_H */ | 155 | #endif /* _LINUX_PRCTL_H */ |
diff --git a/include/uapi/linux/ptp_clock.h b/include/uapi/linux/ptp_clock.h index b65c834f83e9..f0b7bfe5da92 100644 --- a/include/uapi/linux/ptp_clock.h +++ b/include/uapi/linux/ptp_clock.h | |||
| @@ -50,7 +50,8 @@ struct ptp_clock_caps { | |||
| 50 | int n_ext_ts; /* Number of external time stamp channels. */ | 50 | int n_ext_ts; /* Number of external time stamp channels. */ |
| 51 | int n_per_out; /* Number of programmable periodic signals. */ | 51 | int n_per_out; /* Number of programmable periodic signals. */ |
| 52 | int pps; /* Whether the clock supports a PPS callback. */ | 52 | int pps; /* Whether the clock supports a PPS callback. */ |
| 53 | int rsv[15]; /* Reserved for future use. */ | 53 | int n_pins; /* Number of input/output pins. */ |
| 54 | int rsv[14]; /* Reserved for future use. */ | ||
| 54 | }; | 55 | }; |
| 55 | 56 | ||
| 56 | struct ptp_extts_request { | 57 | struct ptp_extts_request { |
| @@ -80,6 +81,40 @@ struct ptp_sys_offset { | |||
| 80 | struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1]; | 81 | struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1]; |
| 81 | }; | 82 | }; |
| 82 | 83 | ||
| 84 | enum ptp_pin_function { | ||
| 85 | PTP_PF_NONE, | ||
| 86 | PTP_PF_EXTTS, | ||
| 87 | PTP_PF_PEROUT, | ||
| 88 | PTP_PF_PHYSYNC, | ||
| 89 | }; | ||
| 90 | |||
| 91 | struct ptp_pin_desc { | ||
| 92 | /* | ||
| 93 | * Hardware specific human readable pin name. This field is | ||
| 94 | * set by the kernel during the PTP_PIN_GETFUNC ioctl and is | ||
| 95 | * ignored for the PTP_PIN_SETFUNC ioctl. | ||
| 96 | */ | ||
| 97 | char name[64]; | ||
| 98 | /* | ||
| 99 | * Pin index in the range of zero to ptp_clock_caps.n_pins - 1. | ||
| 100 | */ | ||
| 101 | unsigned int index; | ||
| 102 | /* | ||
| 103 | * Which of the PTP_PF_xxx functions to use on this pin. | ||
| 104 | */ | ||
| 105 | unsigned int func; | ||
| 106 | /* | ||
| 107 | * The specific channel to use for this function. | ||
| 108 | * This corresponds to the 'index' field of the | ||
| 109 | * PTP_EXTTS_REQUEST and PTP_PEROUT_REQUEST ioctls. | ||
| 110 | */ | ||
| 111 | unsigned int chan; | ||
| 112 | /* | ||
| 113 | * Reserved for future use. | ||
| 114 | */ | ||
| 115 | unsigned int rsv[5]; | ||
| 116 | }; | ||
| 117 | |||
| 83 | #define PTP_CLK_MAGIC '=' | 118 | #define PTP_CLK_MAGIC '=' |
| 84 | 119 | ||
| 85 | #define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps) | 120 | #define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps) |
| @@ -87,6 +122,8 @@ struct ptp_sys_offset { | |||
| 87 | #define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request) | 122 | #define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request) |
| 88 | #define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int) | 123 | #define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int) |
| 89 | #define PTP_SYS_OFFSET _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset) | 124 | #define PTP_SYS_OFFSET _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset) |
| 125 | #define PTP_PIN_GETFUNC _IOWR(PTP_CLK_MAGIC, 6, struct ptp_pin_desc) | ||
| 126 | #define PTP_PIN_SETFUNC _IOW(PTP_CLK_MAGIC, 7, struct ptp_pin_desc) | ||
| 90 | 127 | ||
| 91 | struct ptp_extts_event { | 128 | struct ptp_extts_event { |
| 92 | struct ptp_clock_time t; /* Time event occured. */ | 129 | struct ptp_clock_time t; /* Time event occured. */ |
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h index bbaba22f2d1b..df40137f33dd 100644 --- a/include/uapi/linux/snmp.h +++ b/include/uapi/linux/snmp.h | |||
| @@ -252,6 +252,7 @@ enum | |||
| 252 | LINUX_MIB_TCPCHALLENGEACK, /* TCPChallengeACK */ | 252 | LINUX_MIB_TCPCHALLENGEACK, /* TCPChallengeACK */ |
| 253 | LINUX_MIB_TCPSYNCHALLENGE, /* TCPSYNChallenge */ | 253 | LINUX_MIB_TCPSYNCHALLENGE, /* TCPSYNChallenge */ |
| 254 | LINUX_MIB_TCPFASTOPENACTIVE, /* TCPFastOpenActive */ | 254 | LINUX_MIB_TCPFASTOPENACTIVE, /* TCPFastOpenActive */ |
| 255 | LINUX_MIB_TCPFASTOPENACTIVEFAIL, /* TCPFastOpenActiveFail */ | ||
| 255 | LINUX_MIB_TCPFASTOPENPASSIVE, /* TCPFastOpenPassive*/ | 256 | LINUX_MIB_TCPFASTOPENPASSIVE, /* TCPFastOpenPassive*/ |
| 256 | LINUX_MIB_TCPFASTOPENPASSIVEFAIL, /* TCPFastOpenPassiveFail */ | 257 | LINUX_MIB_TCPFASTOPENPASSIVEFAIL, /* TCPFastOpenPassiveFail */ |
| 257 | LINUX_MIB_TCPFASTOPENLISTENOVERFLOW, /* TCPFastOpenListenOverflow */ | 258 | LINUX_MIB_TCPFASTOPENLISTENOVERFLOW, /* TCPFastOpenListenOverflow */ |
| @@ -259,6 +260,11 @@ enum | |||
| 259 | LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ | 260 | LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES, /* TCPSpuriousRtxHostQueues */ |
| 260 | LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */ | 261 | LINUX_MIB_BUSYPOLLRXPACKETS, /* BusyPollRxPackets */ |
| 261 | LINUX_MIB_TCPAUTOCORKING, /* TCPAutoCorking */ | 262 | LINUX_MIB_TCPAUTOCORKING, /* TCPAutoCorking */ |
| 263 | LINUX_MIB_TCPFROMZEROWINDOWADV, /* TCPFromZeroWindowAdv */ | ||
| 264 | LINUX_MIB_TCPTOZEROWINDOWADV, /* TCPToZeroWindowAdv */ | ||
| 265 | LINUX_MIB_TCPWANTZEROWINDOWADV, /* TCPWantZeroWindowAdv */ | ||
| 266 | LINUX_MIB_TCPSYNRETRANS, /* TCPSynRetrans */ | ||
| 267 | LINUX_MIB_TCPORIGDATASENT, /* TCPOrigDataSent */ | ||
| 262 | __LINUX_MIB_MAX | 268 | __LINUX_MIB_MAX |
| 263 | }; | 269 | }; |
| 264 | 270 | ||
diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h index 377f1e59411d..3b9718328d8b 100644 --- a/include/uapi/linux/tcp.h +++ b/include/uapi/linux/tcp.h | |||
| @@ -186,6 +186,9 @@ struct tcp_info { | |||
| 186 | __u32 tcpi_rcv_space; | 186 | __u32 tcpi_rcv_space; |
| 187 | 187 | ||
| 188 | __u32 tcpi_total_retrans; | 188 | __u32 tcpi_total_retrans; |
| 189 | |||
| 190 | __u64 tcpi_pacing_rate; | ||
| 191 | __u64 tcpi_max_pacing_rate; | ||
| 189 | }; | 192 | }; |
| 190 | 193 | ||
| 191 | /* for TCP_MD5SIG socket option */ | 194 | /* for TCP_MD5SIG socket option */ |
diff --git a/include/uapi/linux/tcp_metrics.h b/include/uapi/linux/tcp_metrics.h index 54a37b13f2c4..93533926035c 100644 --- a/include/uapi/linux/tcp_metrics.h +++ b/include/uapi/linux/tcp_metrics.h | |||
| @@ -11,12 +11,15 @@ | |||
| 11 | #define TCP_METRICS_GENL_VERSION 0x1 | 11 | #define TCP_METRICS_GENL_VERSION 0x1 |
| 12 | 12 | ||
| 13 | enum tcp_metric_index { | 13 | enum tcp_metric_index { |
| 14 | TCP_METRIC_RTT, | 14 | TCP_METRIC_RTT, /* in ms units */ |
| 15 | TCP_METRIC_RTTVAR, | 15 | TCP_METRIC_RTTVAR, /* in ms units */ |
| 16 | TCP_METRIC_SSTHRESH, | 16 | TCP_METRIC_SSTHRESH, |
| 17 | TCP_METRIC_CWND, | 17 | TCP_METRIC_CWND, |
| 18 | TCP_METRIC_REORDERING, | 18 | TCP_METRIC_REORDERING, |
| 19 | 19 | ||
| 20 | TCP_METRIC_RTT_US, /* in usec units */ | ||
| 21 | TCP_METRIC_RTTVAR_US, /* in usec units */ | ||
| 22 | |||
| 20 | /* Always last. */ | 23 | /* Always last. */ |
| 21 | __TCP_METRIC_MAX, | 24 | __TCP_METRIC_MAX, |
| 22 | }; | 25 | }; |
diff --git a/include/uapi/linux/uhid.h b/include/uapi/linux/uhid.h index 414b74be4da1..1e3b09c191cd 100644 --- a/include/uapi/linux/uhid.h +++ b/include/uapi/linux/uhid.h | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | 21 | ||
| 22 | #include <linux/input.h> | 22 | #include <linux/input.h> |
| 23 | #include <linux/types.h> | 23 | #include <linux/types.h> |
| 24 | #include <linux/hid.h> | ||
| 24 | 25 | ||
| 25 | enum uhid_event_type { | 26 | enum uhid_event_type { |
| 26 | UHID_CREATE, | 27 | UHID_CREATE, |
| @@ -34,6 +35,8 @@ enum uhid_event_type { | |||
| 34 | UHID_INPUT, | 35 | UHID_INPUT, |
| 35 | UHID_FEATURE, | 36 | UHID_FEATURE, |
| 36 | UHID_FEATURE_ANSWER, | 37 | UHID_FEATURE_ANSWER, |
| 38 | UHID_CREATE2, | ||
| 39 | UHID_INPUT2, | ||
| 37 | }; | 40 | }; |
| 38 | 41 | ||
| 39 | struct uhid_create_req { | 42 | struct uhid_create_req { |
| @@ -50,6 +53,19 @@ struct uhid_create_req { | |||
| 50 | __u32 country; | 53 | __u32 country; |
| 51 | } __attribute__((__packed__)); | 54 | } __attribute__((__packed__)); |
| 52 | 55 | ||
| 56 | struct uhid_create2_req { | ||
| 57 | __u8 name[128]; | ||
| 58 | __u8 phys[64]; | ||
| 59 | __u8 uniq[64]; | ||
| 60 | __u16 rd_size; | ||
| 61 | __u16 bus; | ||
| 62 | __u32 vendor; | ||
| 63 | __u32 product; | ||
| 64 | __u32 version; | ||
| 65 | __u32 country; | ||
| 66 | __u8 rd_data[HID_MAX_DESCRIPTOR_SIZE]; | ||
| 67 | } __attribute__((__packed__)); | ||
| 68 | |||
| 53 | #define UHID_DATA_MAX 4096 | 69 | #define UHID_DATA_MAX 4096 |
| 54 | 70 | ||
| 55 | enum uhid_report_type { | 71 | enum uhid_report_type { |
| @@ -63,6 +79,11 @@ struct uhid_input_req { | |||
| 63 | __u16 size; | 79 | __u16 size; |
| 64 | } __attribute__((__packed__)); | 80 | } __attribute__((__packed__)); |
| 65 | 81 | ||
| 82 | struct uhid_input2_req { | ||
| 83 | __u16 size; | ||
| 84 | __u8 data[UHID_DATA_MAX]; | ||
| 85 | } __attribute__((__packed__)); | ||
| 86 | |||
| 66 | struct uhid_output_req { | 87 | struct uhid_output_req { |
| 67 | __u8 data[UHID_DATA_MAX]; | 88 | __u8 data[UHID_DATA_MAX]; |
| 68 | __u16 size; | 89 | __u16 size; |
| @@ -100,6 +121,8 @@ struct uhid_event { | |||
| 100 | struct uhid_output_ev_req output_ev; | 121 | struct uhid_output_ev_req output_ev; |
| 101 | struct uhid_feature_req feature; | 122 | struct uhid_feature_req feature; |
| 102 | struct uhid_feature_answer_req feature_answer; | 123 | struct uhid_feature_answer_req feature_answer; |
| 124 | struct uhid_create2_req create2; | ||
| 125 | struct uhid_input2_req input2; | ||
| 103 | } u; | 126 | } u; |
| 104 | } __attribute__((__packed__)); | 127 | } __attribute__((__packed__)); |
| 105 | 128 | ||
diff --git a/include/uapi/linux/uinput.h b/include/uapi/linux/uinput.h index fe46431593f9..0389b489bbba 100644 --- a/include/uapi/linux/uinput.h +++ b/include/uapi/linux/uinput.h | |||
| @@ -20,6 +20,8 @@ | |||
| 20 | * Author: Aristeu Sergio Rozanski Filho <aris@cathedrallabs.org> | 20 | * Author: Aristeu Sergio Rozanski Filho <aris@cathedrallabs.org> |
| 21 | * | 21 | * |
| 22 | * Changes/Revisions: | 22 | * Changes/Revisions: |
| 23 | * 0.4 01/09/2014 (Benjamin Tissoires <benjamin.tissoires@redhat.com>) | ||
| 24 | * - add UI_GET_SYSNAME ioctl | ||
| 23 | * 0.3 24/05/2006 (Anssi Hannula <anssi.hannulagmail.com>) | 25 | * 0.3 24/05/2006 (Anssi Hannula <anssi.hannulagmail.com>) |
| 24 | * - update ff support for the changes in kernel interface | 26 | * - update ff support for the changes in kernel interface |
| 25 | * - add UINPUT_VERSION | 27 | * - add UINPUT_VERSION |
| @@ -35,7 +37,7 @@ | |||
| 35 | #include <linux/types.h> | 37 | #include <linux/types.h> |
| 36 | #include <linux/input.h> | 38 | #include <linux/input.h> |
| 37 | 39 | ||
| 38 | #define UINPUT_VERSION 3 | 40 | #define UINPUT_VERSION 4 |
| 39 | 41 | ||
| 40 | 42 | ||
| 41 | struct uinput_ff_upload { | 43 | struct uinput_ff_upload { |
| @@ -73,6 +75,15 @@ struct uinput_ff_erase { | |||
| 73 | #define UI_BEGIN_FF_ERASE _IOWR(UINPUT_IOCTL_BASE, 202, struct uinput_ff_erase) | 75 | #define UI_BEGIN_FF_ERASE _IOWR(UINPUT_IOCTL_BASE, 202, struct uinput_ff_erase) |
| 74 | #define UI_END_FF_ERASE _IOW(UINPUT_IOCTL_BASE, 203, struct uinput_ff_erase) | 76 | #define UI_END_FF_ERASE _IOW(UINPUT_IOCTL_BASE, 203, struct uinput_ff_erase) |
| 75 | 77 | ||
| 78 | /** | ||
| 79 | * UI_GET_SYSNAME - get the sysfs name of the created uinput device | ||
| 80 | * | ||
| 81 | * @return the sysfs name of the created virtual input device. | ||
| 82 | * The complete sysfs path is then /sys/devices/virtual/input/--NAME-- | ||
| 83 | * Usually, it is in the form "inputN" | ||
| 84 | */ | ||
| 85 | #define UI_GET_SYSNAME(len) _IOC(_IOC_READ, UINPUT_IOCTL_BASE, 300, len) | ||
| 86 | |||
| 76 | /* | 87 | /* |
| 77 | * To write a force-feedback-capable driver, the upload_effect | 88 | * To write a force-feedback-capable driver, the upload_effect |
| 78 | * and erase_effect callbacks in input_dev must be implemented. | 89 | * and erase_effect callbacks in input_dev must be implemented. |
diff --git a/include/uapi/linux/usb/cdc.h b/include/uapi/linux/usb/cdc.h index f35aa0a338c7..b6a9cdd6e096 100644 --- a/include/uapi/linux/usb/cdc.h +++ b/include/uapi/linux/usb/cdc.h | |||
| @@ -56,6 +56,7 @@ | |||
| 56 | #define USB_CDC_OBEX_TYPE 0x15 | 56 | #define USB_CDC_OBEX_TYPE 0x15 |
| 57 | #define USB_CDC_NCM_TYPE 0x1a | 57 | #define USB_CDC_NCM_TYPE 0x1a |
| 58 | #define USB_CDC_MBIM_TYPE 0x1b | 58 | #define USB_CDC_MBIM_TYPE 0x1b |
| 59 | #define USB_CDC_MBIM_EXTENDED_TYPE 0x1c | ||
| 59 | 60 | ||
| 60 | /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ | 61 | /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ |
| 61 | struct usb_cdc_header_desc { | 62 | struct usb_cdc_header_desc { |
| @@ -205,6 +206,17 @@ struct usb_cdc_mbim_desc { | |||
| 205 | __u8 bmNetworkCapabilities; | 206 | __u8 bmNetworkCapabilities; |
| 206 | } __attribute__ ((packed)); | 207 | } __attribute__ ((packed)); |
| 207 | 208 | ||
| 209 | /* "MBIM Extended Functional Descriptor" from CDC MBIM spec 1.0 errata-1 */ | ||
| 210 | struct usb_cdc_mbim_extended_desc { | ||
| 211 | __u8 bLength; | ||
| 212 | __u8 bDescriptorType; | ||
| 213 | __u8 bDescriptorSubType; | ||
| 214 | |||
| 215 | __le16 bcdMBIMExtendedVersion; | ||
| 216 | __u8 bMaxOutstandingCommandMessages; | ||
| 217 | __le16 wMTU; | ||
| 218 | } __attribute__ ((packed)); | ||
| 219 | |||
| 208 | /*-------------------------------------------------------------------------*/ | 220 | /*-------------------------------------------------------------------------*/ |
| 209 | 221 | ||
| 210 | /* | 222 | /* |
diff --git a/include/uapi/linux/v4l2-common.h b/include/uapi/linux/v4l2-common.h index 4f0667e010dd..9bf508ad0957 100644 --- a/include/uapi/linux/v4l2-common.h +++ b/include/uapi/linux/v4l2-common.h | |||
| @@ -29,6 +29,8 @@ | |||
| 29 | #ifndef __V4L2_COMMON__ | 29 | #ifndef __V4L2_COMMON__ |
| 30 | #define __V4L2_COMMON__ | 30 | #define __V4L2_COMMON__ |
| 31 | 31 | ||
| 32 | #include <linux/types.h> | ||
| 33 | |||
| 32 | /* | 34 | /* |
| 33 | * | 35 | * |
| 34 | * Selection interface definitions | 36 | * Selection interface definitions |
| @@ -68,4 +70,12 @@ | |||
| 68 | #define V4L2_SUBDEV_SEL_FLAG_SIZE_LE V4L2_SEL_FLAG_LE | 70 | #define V4L2_SUBDEV_SEL_FLAG_SIZE_LE V4L2_SEL_FLAG_LE |
| 69 | #define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG | 71 | #define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG |
| 70 | 72 | ||
| 73 | struct v4l2_edid { | ||
| 74 | __u32 pad; | ||
| 75 | __u32 start_block; | ||
| 76 | __u32 blocks; | ||
| 77 | __u32 reserved[5]; | ||
| 78 | __u8 __user *edid; | ||
| 79 | }; | ||
| 80 | |||
| 71 | #endif /* __V4L2_COMMON__ */ | 81 | #endif /* __V4L2_COMMON__ */ |
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h index 2cbe605bbe04..2ac5597f3ee1 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h | |||
| @@ -60,6 +60,7 @@ | |||
| 60 | #define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */ | 60 | #define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */ |
| 61 | #define V4L2_CTRL_CLASS_DV 0x00a00000 /* Digital Video controls */ | 61 | #define V4L2_CTRL_CLASS_DV 0x00a00000 /* Digital Video controls */ |
| 62 | #define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */ | 62 | #define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */ |
| 63 | #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */ | ||
| 63 | 64 | ||
| 64 | /* User-class control IDs */ | 65 | /* User-class control IDs */ |
| 65 | 66 | ||
| @@ -376,6 +377,8 @@ enum v4l2_mpeg_video_multi_slice_mode { | |||
| 376 | #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) | 377 | #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) |
| 377 | #define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) | 378 | #define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) |
| 378 | #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) | 379 | #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) |
| 380 | #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227) | ||
| 381 | #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) | ||
| 379 | 382 | ||
| 380 | #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) | 383 | #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) |
| 381 | #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) | 384 | #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) |
| @@ -812,6 +815,9 @@ enum v4l2_flash_strobe_source { | |||
| 812 | #define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3) | 815 | #define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3) |
| 813 | #define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4) | 816 | #define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4) |
| 814 | #define V4L2_FLASH_FAULT_INDICATOR (1 << 5) | 817 | #define V4L2_FLASH_FAULT_INDICATOR (1 << 5) |
| 818 | #define V4L2_FLASH_FAULT_UNDER_VOLTAGE (1 << 6) | ||
| 819 | #define V4L2_FLASH_FAULT_INPUT_VOLTAGE (1 << 7) | ||
| 820 | #define V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE (1 << 8) | ||
| 815 | 821 | ||
| 816 | #define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11) | 822 | #define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11) |
| 817 | #define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12) | 823 | #define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12) |
| @@ -895,4 +901,17 @@ enum v4l2_deemphasis { | |||
| 895 | 901 | ||
| 896 | #define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2) | 902 | #define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2) |
| 897 | 903 | ||
| 904 | #define V4L2_CID_RF_TUNER_CLASS_BASE (V4L2_CTRL_CLASS_RF_TUNER | 0x900) | ||
| 905 | #define V4L2_CID_RF_TUNER_CLASS (V4L2_CTRL_CLASS_RF_TUNER | 1) | ||
| 906 | |||
| 907 | #define V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 11) | ||
| 908 | #define V4L2_CID_RF_TUNER_BANDWIDTH (V4L2_CID_RF_TUNER_CLASS_BASE + 12) | ||
| 909 | #define V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 41) | ||
| 910 | #define V4L2_CID_RF_TUNER_LNA_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 42) | ||
| 911 | #define V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 51) | ||
| 912 | #define V4L2_CID_RF_TUNER_MIXER_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 52) | ||
| 913 | #define V4L2_CID_RF_TUNER_IF_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 61) | ||
| 914 | #define V4L2_CID_RF_TUNER_IF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 62) | ||
| 915 | #define V4L2_CID_RF_TUNER_PLL_LOCK (V4L2_CID_RF_TUNER_CLASS_BASE + 91) | ||
| 916 | |||
| 898 | #endif | 917 | #endif |
diff --git a/include/uapi/linux/v4l2-dv-timings.h b/include/uapi/linux/v4l2-dv-timings.h index be709fe29552..b6a5fe00a470 100644 --- a/include/uapi/linux/v4l2-dv-timings.h +++ b/include/uapi/linux/v4l2-dv-timings.h | |||
| @@ -823,4 +823,21 @@ | |||
| 823 | V4L2_DV_FL_REDUCED_BLANKING) \ | 823 | V4L2_DV_FL_REDUCED_BLANKING) \ |
| 824 | } | 824 | } |
| 825 | 825 | ||
| 826 | /* 4K resolutions */ | ||
| 827 | #define V4L2_DV_BT_DMT_4096X2160P60_RB { \ | ||
| 828 | .type = V4L2_DV_BT_656_1120, \ | ||
| 829 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, V4L2_DV_HSYNC_POS_POL, \ | ||
| 830 | 556744000, 8, 32, 40, 48, 8, 6, 0, 0, 0, \ | ||
| 831 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ | ||
| 832 | V4L2_DV_FL_REDUCED_BLANKING) \ | ||
| 833 | } | ||
| 834 | |||
| 835 | #define V4L2_DV_BT_DMT_4096X2160P59_94_RB { \ | ||
| 836 | .type = V4L2_DV_BT_656_1120, \ | ||
| 837 | V4L2_INIT_BT_TIMINGS(4096, 2160, 0, V4L2_DV_HSYNC_POS_POL, \ | ||
| 838 | 556188000, 8, 32, 40, 48, 8, 6, 0, 0, 0, \ | ||
| 839 | V4L2_DV_BT_STD_DMT | V4L2_DV_BT_STD_CVT, \ | ||
| 840 | V4L2_DV_FL_REDUCED_BLANKING) \ | ||
| 841 | } | ||
| 842 | |||
| 826 | #endif | 843 | #endif |
diff --git a/include/uapi/linux/v4l2-subdev.h b/include/uapi/linux/v4l2-subdev.h index a33c4daadce3..87e05159f637 100644 --- a/include/uapi/linux/v4l2-subdev.h +++ b/include/uapi/linux/v4l2-subdev.h | |||
| @@ -148,13 +148,8 @@ struct v4l2_subdev_selection { | |||
| 148 | __u32 reserved[8]; | 148 | __u32 reserved[8]; |
| 149 | }; | 149 | }; |
| 150 | 150 | ||
| 151 | struct v4l2_subdev_edid { | 151 | /* Backwards compatibility define --- to be removed */ |
| 152 | __u32 pad; | 152 | #define v4l2_subdev_edid v4l2_edid |
| 153 | __u32 start_block; | ||
| 154 | __u32 blocks; | ||
| 155 | __u32 reserved[5]; | ||
| 156 | __u8 __user *edid; | ||
| 157 | }; | ||
| 158 | 153 | ||
| 159 | #define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) | 154 | #define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) |
| 160 | #define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) | 155 | #define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) |
| @@ -174,7 +169,8 @@ struct v4l2_subdev_edid { | |||
| 174 | _IOWR('V', 61, struct v4l2_subdev_selection) | 169 | _IOWR('V', 61, struct v4l2_subdev_selection) |
| 175 | #define VIDIOC_SUBDEV_S_SELECTION \ | 170 | #define VIDIOC_SUBDEV_S_SELECTION \ |
| 176 | _IOWR('V', 62, struct v4l2_subdev_selection) | 171 | _IOWR('V', 62, struct v4l2_subdev_selection) |
| 177 | #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_subdev_edid) | 172 | /* These two G/S_EDID ioctls are identical to the ioctls in videodev2.h */ |
| 178 | #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_subdev_edid) | 173 | #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid) |
| 174 | #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid) | ||
| 179 | 175 | ||
| 180 | #endif | 176 | #endif |
diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 0fd47f5bc146..cb9023d4f063 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h | |||
| @@ -23,6 +23,12 @@ | |||
| 23 | 23 | ||
| 24 | #define VFIO_TYPE1_IOMMU 1 | 24 | #define VFIO_TYPE1_IOMMU 1 |
| 25 | #define VFIO_SPAPR_TCE_IOMMU 2 | 25 | #define VFIO_SPAPR_TCE_IOMMU 2 |
| 26 | #define VFIO_TYPE1v2_IOMMU 3 | ||
| 27 | /* | ||
| 28 | * IOMMU enforces DMA cache coherence (ex. PCIe NoSnoop stripping). This | ||
| 29 | * capability is subject to change as groups are added or removed. | ||
| 30 | */ | ||
| 31 | #define VFIO_DMA_CC_IOMMU 4 | ||
| 26 | 32 | ||
| 27 | /* | 33 | /* |
| 28 | * The IOCTL interface is designed for extensibility by embedding the | 34 | * The IOCTL interface is designed for extensibility by embedding the |
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 6ae7bbe988cc..ea468ee8fe21 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h | |||
| @@ -139,6 +139,7 @@ enum v4l2_buf_type { | |||
| 139 | #endif | 139 | #endif |
| 140 | V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, | 140 | V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, |
| 141 | V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, | 141 | V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, |
| 142 | V4L2_BUF_TYPE_SDR_CAPTURE = 11, | ||
| 142 | /* Deprecated, do not use */ | 143 | /* Deprecated, do not use */ |
| 143 | V4L2_BUF_TYPE_PRIVATE = 0x80, | 144 | V4L2_BUF_TYPE_PRIVATE = 0x80, |
| 144 | }; | 145 | }; |
| @@ -159,6 +160,8 @@ enum v4l2_tuner_type { | |||
| 159 | V4L2_TUNER_RADIO = 1, | 160 | V4L2_TUNER_RADIO = 1, |
| 160 | V4L2_TUNER_ANALOG_TV = 2, | 161 | V4L2_TUNER_ANALOG_TV = 2, |
| 161 | V4L2_TUNER_DIGITAL_TV = 3, | 162 | V4L2_TUNER_DIGITAL_TV = 3, |
| 163 | V4L2_TUNER_ADC = 4, | ||
| 164 | V4L2_TUNER_RF = 5, | ||
| 162 | }; | 165 | }; |
| 163 | 166 | ||
| 164 | enum v4l2_memory { | 167 | enum v4l2_memory { |
| @@ -264,6 +267,8 @@ struct v4l2_capability { | |||
| 264 | #define V4L2_CAP_RADIO 0x00040000 /* is a radio device */ | 267 | #define V4L2_CAP_RADIO 0x00040000 /* is a radio device */ |
| 265 | #define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */ | 268 | #define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */ |
| 266 | 269 | ||
| 270 | #define V4L2_CAP_SDR_CAPTURE 0x00100000 /* Is a SDR capture device */ | ||
| 271 | |||
| 267 | #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ | 272 | #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ |
| 268 | #define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ | 273 | #define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ |
| 269 | #define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ | 274 | #define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ |
| @@ -431,6 +436,10 @@ struct v4l2_pix_format { | |||
| 431 | #define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ | 436 | #define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ |
| 432 | #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ | 437 | #define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ |
| 433 | 438 | ||
| 439 | /* SDR formats - used only for Software Defined Radio devices */ | ||
| 440 | #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ | ||
| 441 | #define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */ | ||
| 442 | |||
| 434 | /* | 443 | /* |
| 435 | * F O R M A T E N U M E R A T I O N | 444 | * F O R M A T E N U M E R A T I O N |
| 436 | */ | 445 | */ |
| @@ -669,24 +678,36 @@ struct v4l2_buffer { | |||
| 669 | }; | 678 | }; |
| 670 | 679 | ||
| 671 | /* Flags for 'flags' field */ | 680 | /* Flags for 'flags' field */ |
| 672 | #define V4L2_BUF_FLAG_MAPPED 0x0001 /* Buffer is mapped (flag) */ | 681 | /* Buffer is mapped (flag) */ |
| 673 | #define V4L2_BUF_FLAG_QUEUED 0x0002 /* Buffer is queued for processing */ | 682 | #define V4L2_BUF_FLAG_MAPPED 0x00000001 |
| 674 | #define V4L2_BUF_FLAG_DONE 0x0004 /* Buffer is ready */ | 683 | /* Buffer is queued for processing */ |
| 675 | #define V4L2_BUF_FLAG_KEYFRAME 0x0008 /* Image is a keyframe (I-frame) */ | 684 | #define V4L2_BUF_FLAG_QUEUED 0x00000002 |
| 676 | #define V4L2_BUF_FLAG_PFRAME 0x0010 /* Image is a P-frame */ | 685 | /* Buffer is ready */ |
| 677 | #define V4L2_BUF_FLAG_BFRAME 0x0020 /* Image is a B-frame */ | 686 | #define V4L2_BUF_FLAG_DONE 0x00000004 |
| 687 | /* Image is a keyframe (I-frame) */ | ||
| 688 | #define V4L2_BUF_FLAG_KEYFRAME 0x00000008 | ||
| 689 | /* Image is a P-frame */ | ||
| 690 | #define V4L2_BUF_FLAG_PFRAME 0x00000010 | ||
| 691 | /* Image is a B-frame */ | ||
| 692 | #define V4L2_BUF_FLAG_BFRAME 0x00000020 | ||
| 678 | /* Buffer is ready, but the data contained within is corrupted. */ | 693 | /* Buffer is ready, but the data contained within is corrupted. */ |
| 679 | #define V4L2_BUF_FLAG_ERROR 0x0040 | 694 | #define V4L2_BUF_FLAG_ERROR 0x00000040 |
| 680 | #define V4L2_BUF_FLAG_TIMECODE 0x0100 /* timecode field is valid */ | 695 | /* timecode field is valid */ |
| 681 | #define V4L2_BUF_FLAG_PREPARED 0x0400 /* Buffer is prepared for queuing */ | 696 | #define V4L2_BUF_FLAG_TIMECODE 0x00000100 |
| 697 | /* Buffer is prepared for queuing */ | ||
| 698 | #define V4L2_BUF_FLAG_PREPARED 0x00000400 | ||
| 682 | /* Cache handling flags */ | 699 | /* Cache handling flags */ |
| 683 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 | 700 | #define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x00000800 |
| 684 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 | 701 | #define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x00001000 |
| 685 | /* Timestamp type */ | 702 | /* Timestamp type */ |
| 686 | #define V4L2_BUF_FLAG_TIMESTAMP_MASK 0xe000 | 703 | #define V4L2_BUF_FLAG_TIMESTAMP_MASK 0x0000e000 |
| 687 | #define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x0000 | 704 | #define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x00000000 |
| 688 | #define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x2000 | 705 | #define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x00002000 |
| 689 | #define V4L2_BUF_FLAG_TIMESTAMP_COPY 0x4000 | 706 | #define V4L2_BUF_FLAG_TIMESTAMP_COPY 0x00004000 |
| 707 | /* Timestamp sources. */ | ||
| 708 | #define V4L2_BUF_FLAG_TSTAMP_SRC_MASK 0x00070000 | ||
| 709 | #define V4L2_BUF_FLAG_TSTAMP_SRC_EOF 0x00000000 | ||
| 710 | #define V4L2_BUF_FLAG_TSTAMP_SRC_SOE 0x00010000 | ||
| 690 | 711 | ||
| 691 | /** | 712 | /** |
| 692 | * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor | 713 | * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor |
| @@ -1059,14 +1080,14 @@ struct v4l2_bt_timings { | |||
| 1059 | 1080 | ||
| 1060 | /* A few useful defines to calculate the total blanking and frame sizes */ | 1081 | /* A few useful defines to calculate the total blanking and frame sizes */ |
| 1061 | #define V4L2_DV_BT_BLANKING_WIDTH(bt) \ | 1082 | #define V4L2_DV_BT_BLANKING_WIDTH(bt) \ |
| 1062 | (bt->hfrontporch + bt->hsync + bt->hbackporch) | 1083 | ((bt)->hfrontporch + (bt)->hsync + (bt)->hbackporch) |
| 1063 | #define V4L2_DV_BT_FRAME_WIDTH(bt) \ | 1084 | #define V4L2_DV_BT_FRAME_WIDTH(bt) \ |
| 1064 | (bt->width + V4L2_DV_BT_BLANKING_WIDTH(bt)) | 1085 | ((bt)->width + V4L2_DV_BT_BLANKING_WIDTH(bt)) |
| 1065 | #define V4L2_DV_BT_BLANKING_HEIGHT(bt) \ | 1086 | #define V4L2_DV_BT_BLANKING_HEIGHT(bt) \ |
| 1066 | (bt->vfrontporch + bt->vsync + bt->vbackporch + \ | 1087 | ((bt)->vfrontporch + (bt)->vsync + (bt)->vbackporch + \ |
| 1067 | bt->il_vfrontporch + bt->il_vsync + bt->il_vbackporch) | 1088 | (bt)->il_vfrontporch + (bt)->il_vsync + (bt)->il_vbackporch) |
| 1068 | #define V4L2_DV_BT_FRAME_HEIGHT(bt) \ | 1089 | #define V4L2_DV_BT_FRAME_HEIGHT(bt) \ |
| 1069 | (bt->height + V4L2_DV_BT_BLANKING_HEIGHT(bt)) | 1090 | ((bt)->height + V4L2_DV_BT_BLANKING_HEIGHT(bt)) |
| 1070 | 1091 | ||
| 1071 | /** struct v4l2_dv_timings - DV timings | 1092 | /** struct v4l2_dv_timings - DV timings |
| 1072 | * @type: the type of the timings | 1093 | * @type: the type of the timings |
| @@ -1339,6 +1360,7 @@ struct v4l2_modulator { | |||
| 1339 | #define V4L2_TUNER_CAP_RDS_CONTROLS 0x0200 | 1360 | #define V4L2_TUNER_CAP_RDS_CONTROLS 0x0200 |
| 1340 | #define V4L2_TUNER_CAP_FREQ_BANDS 0x0400 | 1361 | #define V4L2_TUNER_CAP_FREQ_BANDS 0x0400 |
| 1341 | #define V4L2_TUNER_CAP_HWSEEK_PROG_LIM 0x0800 | 1362 | #define V4L2_TUNER_CAP_HWSEEK_PROG_LIM 0x0800 |
| 1363 | #define V4L2_TUNER_CAP_1HZ 0x1000 | ||
| 1342 | 1364 | ||
| 1343 | /* Flags for the 'rxsubchans' field */ | 1365 | /* Flags for the 'rxsubchans' field */ |
| 1344 | #define V4L2_TUNER_SUB_MONO 0x0001 | 1366 | #define V4L2_TUNER_SUB_MONO 0x0001 |
| @@ -1692,6 +1714,15 @@ struct v4l2_pix_format_mplane { | |||
| 1692 | } __attribute__ ((packed)); | 1714 | } __attribute__ ((packed)); |
| 1693 | 1715 | ||
| 1694 | /** | 1716 | /** |
| 1717 | * struct v4l2_sdr_format - SDR format definition | ||
| 1718 | * @pixelformat: little endian four character code (fourcc) | ||
| 1719 | */ | ||
| 1720 | struct v4l2_sdr_format { | ||
| 1721 | __u32 pixelformat; | ||
| 1722 | __u8 reserved[28]; | ||
| 1723 | } __attribute__ ((packed)); | ||
| 1724 | |||
| 1725 | /** | ||
| 1695 | * struct v4l2_format - stream data format | 1726 | * struct v4l2_format - stream data format |
| 1696 | * @type: enum v4l2_buf_type; type of the data stream | 1727 | * @type: enum v4l2_buf_type; type of the data stream |
| 1697 | * @pix: definition of an image format | 1728 | * @pix: definition of an image format |
| @@ -1709,6 +1740,7 @@ struct v4l2_format { | |||
| 1709 | struct v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */ | 1740 | struct v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */ |
| 1710 | struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */ | 1741 | struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */ |
| 1711 | struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */ | 1742 | struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */ |
| 1743 | struct v4l2_sdr_format sdr; /* V4L2_BUF_TYPE_SDR_CAPTURE */ | ||
| 1712 | __u8 raw_data[200]; /* user-defined */ | 1744 | __u8 raw_data[200]; /* user-defined */ |
| 1713 | } fmt; | 1745 | } fmt; |
| 1714 | }; | 1746 | }; |
| @@ -1885,6 +1917,8 @@ struct v4l2_create_buffers { | |||
| 1885 | #define VIDIOC_QUERYMENU _IOWR('V', 37, struct v4l2_querymenu) | 1917 | #define VIDIOC_QUERYMENU _IOWR('V', 37, struct v4l2_querymenu) |
| 1886 | #define VIDIOC_G_INPUT _IOR('V', 38, int) | 1918 | #define VIDIOC_G_INPUT _IOR('V', 38, int) |
| 1887 | #define VIDIOC_S_INPUT _IOWR('V', 39, int) | 1919 | #define VIDIOC_S_INPUT _IOWR('V', 39, int) |
| 1920 | #define VIDIOC_G_EDID _IOWR('V', 40, struct v4l2_edid) | ||
| 1921 | #define VIDIOC_S_EDID _IOWR('V', 41, struct v4l2_edid) | ||
| 1888 | #define VIDIOC_G_OUTPUT _IOR('V', 46, int) | 1922 | #define VIDIOC_G_OUTPUT _IOR('V', 46, int) |
| 1889 | #define VIDIOC_S_OUTPUT _IOWR('V', 47, int) | 1923 | #define VIDIOC_S_OUTPUT _IOWR('V', 47, int) |
| 1890 | #define VIDIOC_ENUMOUTPUT _IOWR('V', 48, struct v4l2_output) | 1924 | #define VIDIOC_ENUMOUTPUT _IOWR('V', 48, struct v4l2_output) |
diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h index 40bbc04b6f81..c38355c1f3c9 100644 --- a/include/uapi/linux/xattr.h +++ b/include/uapi/linux/xattr.h | |||
| @@ -7,11 +7,18 @@ | |||
| 7 | Copyright (c) 2001-2002 Silicon Graphics, Inc. All Rights Reserved. | 7 | Copyright (c) 2001-2002 Silicon Graphics, Inc. All Rights Reserved. |
| 8 | Copyright (c) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com> | 8 | Copyright (c) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com> |
| 9 | */ | 9 | */ |
| 10 | |||
| 11 | #include <linux/libc-compat.h> | ||
| 12 | |||
| 10 | #ifndef _UAPI_LINUX_XATTR_H | 13 | #ifndef _UAPI_LINUX_XATTR_H |
| 11 | #define _UAPI_LINUX_XATTR_H | 14 | #define _UAPI_LINUX_XATTR_H |
| 12 | 15 | ||
| 16 | #ifdef __UAPI_DEF_XATTR | ||
| 17 | #define __USE_KERNEL_XATTR_DEFS | ||
| 18 | |||
| 13 | #define XATTR_CREATE 0x1 /* set value, fail if attr already exists */ | 19 | #define XATTR_CREATE 0x1 /* set value, fail if attr already exists */ |
| 14 | #define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */ | 20 | #define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */ |
| 21 | #endif | ||
| 15 | 22 | ||
| 16 | /* Namespaces */ | 23 | /* Namespaces */ |
| 17 | #define XATTR_OS2_PREFIX "os2." | 24 | #define XATTR_OS2_PREFIX "os2." |
diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h index a8cd6a4a2970..25e5dd916ba4 100644 --- a/include/uapi/linux/xfrm.h +++ b/include/uapi/linux/xfrm.h | |||
| @@ -298,6 +298,8 @@ enum xfrm_attr_type_t { | |||
| 298 | XFRMA_TFCPAD, /* __u32 */ | 298 | XFRMA_TFCPAD, /* __u32 */ |
| 299 | XFRMA_REPLAY_ESN_VAL, /* struct xfrm_replay_esn */ | 299 | XFRMA_REPLAY_ESN_VAL, /* struct xfrm_replay_esn */ |
| 300 | XFRMA_SA_EXTRA_FLAGS, /* __u32 */ | 300 | XFRMA_SA_EXTRA_FLAGS, /* __u32 */ |
| 301 | XFRMA_PROTO, /* __u8 */ | ||
| 302 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ | ||
| 301 | __XFRMA_MAX | 303 | __XFRMA_MAX |
| 302 | 304 | ||
| 303 | #define XFRMA_MAX (__XFRMA_MAX - 1) | 305 | #define XFRMA_MAX (__XFRMA_MAX - 1) |
| @@ -474,6 +476,14 @@ struct xfrm_user_mapping { | |||
| 474 | __be16 new_sport; | 476 | __be16 new_sport; |
| 475 | }; | 477 | }; |
| 476 | 478 | ||
| 479 | struct xfrm_address_filter { | ||
| 480 | xfrm_address_t saddr; | ||
| 481 | xfrm_address_t daddr; | ||
| 482 | __u16 family; | ||
| 483 | __u8 splen; | ||
| 484 | __u8 dplen; | ||
| 485 | }; | ||
| 486 | |||
| 477 | #ifndef __KERNEL__ | 487 | #ifndef __KERNEL__ |
| 478 | /* backwards compatibility for userspace */ | 488 | /* backwards compatibility for userspace */ |
| 479 | #define XFRMGRP_ACQUIRE 1 | 489 | #define XFRMGRP_ACQUIRE 1 |
diff --git a/include/uapi/mtd/ubi-user.h b/include/uapi/mtd/ubi-user.h index 723c324590c1..1927b0d78a99 100644 --- a/include/uapi/mtd/ubi-user.h +++ b/include/uapi/mtd/ubi-user.h | |||
| @@ -134,6 +134,16 @@ | |||
| 134 | * used. A pointer to a &struct ubi_set_vol_prop_req object is expected to be | 134 | * used. A pointer to a &struct ubi_set_vol_prop_req object is expected to be |
| 135 | * passed. The object describes which property should be set, and to which value | 135 | * passed. The object describes which property should be set, and to which value |
| 136 | * it should be set. | 136 | * it should be set. |
| 137 | * | ||
| 138 | * Block devices on UBI volumes | ||
| 139 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| 140 | * | ||
| 141 | * To create a R/O block device on top of an UBI volume the %UBI_IOCVOLCRBLK | ||
| 142 | * should be used. A pointer to a &struct ubi_blkcreate_req object is expected | ||
| 143 | * to be passed, which is not used and reserved for future usage. | ||
| 144 | * | ||
| 145 | * Conversely, to remove a block device the %UBI_IOCVOLRMBLK should be used, | ||
| 146 | * which takes no arguments. | ||
| 137 | */ | 147 | */ |
| 138 | 148 | ||
| 139 | /* | 149 | /* |
| @@ -191,6 +201,10 @@ | |||
| 191 | /* Set an UBI volume property */ | 201 | /* Set an UBI volume property */ |
| 192 | #define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, \ | 202 | #define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, \ |
| 193 | struct ubi_set_vol_prop_req) | 203 | struct ubi_set_vol_prop_req) |
| 204 | /* Create a R/O block device on top of an UBI volume */ | ||
| 205 | #define UBI_IOCVOLCRBLK _IOW(UBI_VOL_IOC_MAGIC, 7, struct ubi_blkcreate_req) | ||
| 206 | /* Remove the R/O block device */ | ||
| 207 | #define UBI_IOCVOLRMBLK _IO(UBI_VOL_IOC_MAGIC, 8) | ||
| 194 | 208 | ||
| 195 | /* Maximum MTD device name length supported by UBI */ | 209 | /* Maximum MTD device name length supported by UBI */ |
| 196 | #define MAX_UBI_MTD_NAME_LEN 127 | 210 | #define MAX_UBI_MTD_NAME_LEN 127 |
| @@ -420,4 +434,12 @@ struct ubi_set_vol_prop_req { | |||
| 420 | __u64 value; | 434 | __u64 value; |
| 421 | } __packed; | 435 | } __packed; |
| 422 | 436 | ||
| 437 | /** | ||
| 438 | * struct ubi_blkcreate_req - a data structure used in block creation requests. | ||
| 439 | * @padding: reserved for future, not used, has to be zeroed | ||
| 440 | */ | ||
| 441 | struct ubi_blkcreate_req { | ||
| 442 | __s8 padding[128]; | ||
| 443 | } __packed; | ||
| 444 | |||
| 423 | #endif /* __UBI_USER_H__ */ | 445 | #endif /* __UBI_USER_H__ */ |
