Now that 4.19-rc1 is cut, backmerge it into -misc-next.
Showing the changes to include/uapi (89 of 10954 files). Show all
Unified · Split
| @@ -107,4 +107,7 @@ · 106 unmodified lines | ||
| 107 | 107 | |
| 108 | 108 | #define SO_ZEROCOPY 60 |
| 109 | 109 | |
| 110 | +#define SO_TXTIME 61 | |
| 111 | +#define SCM_TXTIME SO_TXTIME | |
| 112 | + | |
| 110 | 113 | #endif /* __ASM_GENERIC_SOCKET_H */ |
| @@ -734,9 +734,11 @@ __SYSCALL(__NR_pkey_free, sys_pkey_free) · 733 unmodified lines | ||
| 734 | 734 | __SYSCALL(__NR_statx, sys_statx) |
| 735 | 735 | #define __NR_io_pgetevents 292 |
| 736 | 736 | __SC_COMP(__NR_io_pgetevents, sys_io_pgetevents, compat_sys_io_pgetevents) |
| 737 | +#define __NR_rseq 293 | |
| 738 | +__SYSCALL(__NR_rseq, sys_rseq) | |
| 737 | 739 | |
| 738 | 740 | #undef __NR_syscalls |
| 739 | −#define __NR_syscalls 293 | |
| 741 | +#define __NR_syscalls 294 | |
| 740 | 742 | |
| 741 | 743 | /* |
| 742 | 744 | * 32 bit systems traditionally used different |
| @@ -516,6 +516,7 @@ struct drm_amdgpu_gem_va { · 515 unmodified lines | ||
| 516 | 516 | #define AMDGPU_CHUNK_ID_DEPENDENCIES 0x03 |
| 517 | 517 | #define AMDGPU_CHUNK_ID_SYNCOBJ_IN 0x04 |
| 518 | 518 | #define AMDGPU_CHUNK_ID_SYNCOBJ_OUT 0x05 |
| 519 | +#define AMDGPU_CHUNK_ID_BO_HANDLES 0x06 | |
| 519 | 520 | |
| 520 | 521 | struct drm_amdgpu_cs_chunk { |
| 521 | 522 | __u32 chunk_id; |
| @@ -335,6 +335,19 @@ extern "C" { · 334 unmodified lines | ||
| 335 | 335 | */ |
| 336 | 336 | #define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1) |
| 337 | 337 | |
| 338 | +/* | |
| 339 | + * Qualcomm Compressed Format | |
| 340 | + * | |
| 341 | + * Refers to a compressed variant of the base format that is compressed. | |
| 342 | + * Implementation may be platform and base-format specific. | |
| 343 | + * | |
| 344 | + * Each macrotile consists of m x n (mostly 4 x 4) tiles. | |
| 345 | + * Pixel data pitch/stride is aligned with macrotile width. | |
| 346 | + * Pixel data height is aligned with macrotile height. | |
| 347 | + * Entire pixel data buffer is aligned with 4k(bytes). | |
| 348 | + */ | |
| 349 | +#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1) | |
| 350 | + | |
| 338 | 351 | /* Vivante framebuffer modifiers */ |
| 339 | 352 | |
| 340 | 353 | /* |
| @@ -40,6 +40,7 @@ extern "C" { · 39 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | #define DRM_VMW_GET_PARAM 0 |
| 42 | 42 | #define DRM_VMW_ALLOC_DMABUF 1 |
| 43 | +#define DRM_VMW_ALLOC_BO 1 | |
| 43 | 44 | #define DRM_VMW_UNREF_DMABUF 2 |
| 44 | 45 | #define DRM_VMW_HANDLE_CLOSE 2 |
| 45 | 46 | #define DRM_VMW_CURSOR_BYPASS 3 |
| @@ -68,6 +69,8 @@ extern "C" { · 22 unmodified lines | ||
| 68 | 69 | #define DRM_VMW_GB_SURFACE_REF 24 |
| 69 | 70 | #define DRM_VMW_SYNCCPU 25 |
| 70 | 71 | #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26 |
| 72 | +#define DRM_VMW_GB_SURFACE_CREATE_EXT 27 | |
| 73 | +#define DRM_VMW_GB_SURFACE_REF_EXT 28 | |
| 71 | 74 | |
| 72 | 75 | /*************************************************************************/ |
| 73 | 76 | /** |
| @@ -79,6 +82,9 @@ extern "C" { · 5 unmodified lines | ||
| 79 | 82 | * |
| 80 | 83 | * DRM_VMW_PARAM_OVERLAY_IOCTL: |
| 81 | 84 | * Does the driver support the overlay ioctl. |
| 85 | + * | |
| 86 | + * DRM_VMW_PARAM_SM4_1 | |
| 87 | + * SM4_1 support is enabled. | |
| 82 | 88 | */ |
| 83 | 89 | |
| 84 | 90 | #define DRM_VMW_PARAM_NUM_STREAMS 0 |
| @@ -94,6 +100,8 @@ extern "C" { · 9 unmodified lines | ||
| 94 | 100 | #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 |
| 95 | 101 | #define DRM_VMW_PARAM_SCREEN_TARGET 11 |
| 96 | 102 | #define DRM_VMW_PARAM_DX 12 |
| 103 | +#define DRM_VMW_PARAM_HW_CAPS2 13 | |
| 104 | +#define DRM_VMW_PARAM_SM4_1 14 | |
| 97 | 105 | |
| 98 | 106 | /** |
| 99 | 107 | * enum drm_vmw_handle_type - handle type for ref ioctls |
| @@ -356,9 +364,9 @@ struct drm_vmw_fence_rep { · 256 unmodified lines | ||
| 356 | 364 | |
| 357 | 365 | /*************************************************************************/ |
| 358 | 366 | /** |
| 359 | − * DRM_VMW_ALLOC_DMABUF | |
| 367 | + * DRM_VMW_ALLOC_BO | |
| 360 | 368 | * |
| 361 | − * Allocate a DMA buffer that is visible also to the host. | |
| 369 | + * Allocate a buffer object that is visible also to the host. | |
| 362 | 370 | * NOTE: The buffer is |
| 363 | 371 | * identified by a handle and an offset, which are private to the guest, but |
| 364 | 372 | * useable in the command stream. The guest kernel may translate these |
| @@ -366,27 +374,28 @@ struct drm_vmw_fence_rep { · 1 unmodified line | ||
| 366 | 374 | * be zero at all times, or it may disappear from the interface before it is |
| 367 | 375 | * fixed. |
| 368 | 376 | * |
| 369 | − * The DMA buffer may stay user-space mapped in the guest at all times, | |
| 377 | + * The buffer object may stay user-space mapped in the guest at all times, | |
| 370 | 378 | * and is thus suitable for sub-allocation. |
| 371 | 379 | * |
| 372 | − * DMA buffers are mapped using the mmap() syscall on the drm device. | |
| 380 | + * Buffer objects are mapped using the mmap() syscall on the drm device. | |
| 373 | 381 | */ |
| 374 | 382 | |
| 375 | 383 | /** |
| 376 | − * struct drm_vmw_alloc_dmabuf_req | |
| 384 | + * struct drm_vmw_alloc_bo_req | |
| 377 | 385 | * |
| 378 | 386 | * @size: Required minimum size of the buffer. |
| 379 | 387 | * |
| 380 | − * Input data to the DRM_VMW_ALLOC_DMABUF Ioctl. | |
| 388 | + * Input data to the DRM_VMW_ALLOC_BO Ioctl. | |
| 381 | 389 | */ |
| 382 | 390 | |
| 383 | −struct drm_vmw_alloc_dmabuf_req { | |
| 391 | +struct drm_vmw_alloc_bo_req { | |
| 384 | 392 | __u32 size; |
| 385 | 393 | __u32 pad64; |
| 386 | 394 | }; |
| 395 | +#define drm_vmw_alloc_dmabuf_req drm_vmw_alloc_bo_req | |
| 387 | 396 | |
| 388 | 397 | /** |
| 389 | − * struct drm_vmw_dmabuf_rep | |
| 398 | + * struct drm_vmw_bo_rep | |
| 390 | 399 | * |
| 391 | 400 | * @map_handle: Offset to use in the mmap() call used to map the buffer. |
| 392 | 401 | * @handle: Handle unique to this buffer. Used for unreferencing. |
| @@ -395,50 +404,32 @@ struct drm_vmw_alloc_dmabuf_req { · 2 unmodified lines | ||
| 395 | 404 | * @cur_gmr_offset: Offset to use in the command stream when this buffer is |
| 396 | 405 | * referenced. See note above. |
| 397 | 406 | * |
| 398 | − * Output data from the DRM_VMW_ALLOC_DMABUF Ioctl. | |
| 407 | + * Output data from the DRM_VMW_ALLOC_BO Ioctl. | |
| 399 | 408 | */ |
| 400 | 409 | |
| 401 | −struct drm_vmw_dmabuf_rep { | |
| 410 | +struct drm_vmw_bo_rep { | |
| 402 | 411 | __u64 map_handle; |
| 403 | 412 | __u32 handle; |
| 404 | 413 | __u32 cur_gmr_id; |
| 405 | 414 | __u32 cur_gmr_offset; |
| 406 | 415 | __u32 pad64; |
| 407 | 416 | }; |
| 417 | +#define drm_vmw_dmabuf_rep drm_vmw_bo_rep | |
| 408 | 418 | |
| 409 | 419 | /** |
| 410 | − * union drm_vmw_dmabuf_arg | |
| 420 | + * union drm_vmw_alloc_bo_arg | |
| 411 | 421 | * |
| 412 | 422 | * @req: Input data as described above. |
| 413 | 423 | * @rep: Output data as described above. |
| 414 | 424 | * |
| 415 | − * Argument to the DRM_VMW_ALLOC_DMABUF Ioctl. | |
| 425 | + * Argument to the DRM_VMW_ALLOC_BO Ioctl. | |
| 416 | 426 | */ |
| 417 | 427 | |
| 418 | −union drm_vmw_alloc_dmabuf_arg { | |
| 419 | − struct drm_vmw_alloc_dmabuf_req req; | |
| 420 | − struct drm_vmw_dmabuf_rep rep; | |
| 421 | −}; | |
| 422 | − | |
| 423 | −/*************************************************************************/ | |
| 424 | −/** | |
| 425 | − * DRM_VMW_UNREF_DMABUF - Free a DMA buffer. | |
| 426 | − * | |
| 427 | − */ | |
| 428 | − | |
| 429 | −/** | |
| 430 | − * struct drm_vmw_unref_dmabuf_arg | |
| 431 | − * | |
| 432 | − * @handle: Handle indicating what buffer to free. Obtained from the | |
| 433 | − * DRM_VMW_ALLOC_DMABUF Ioctl. | |
| 434 | − * | |
| 435 | − * Argument to the DRM_VMW_UNREF_DMABUF Ioctl. | |
| 436 | − */ | |
| 437 | − | |
| 438 | −struct drm_vmw_unref_dmabuf_arg { | |
| 439 | − __u32 handle; | |
| 440 | − __u32 pad64; | |
| 428 | +union drm_vmw_alloc_bo_arg { | |
| 429 | + struct drm_vmw_alloc_bo_req req; | |
| 430 | + struct drm_vmw_bo_rep rep; | |
| 441 | 431 | }; |
| 432 | +#define drm_vmw_alloc_dmabuf_arg drm_vmw_alloc_bo_arg | |
| 442 | 433 | |
| 443 | 434 | /*************************************************************************/ |
| 444 | 435 | /** |
| @@ -1103,9 +1094,8 @@ union drm_vmw_extended_context_arg { · 658 unmodified lines | ||
| 1103 | 1094 | * DRM_VMW_HANDLE_CLOSE - Close a user-space handle and release its |
| 1104 | 1095 | * underlying resource. |
| 1105 | 1096 | * |
| 1106 | − * Note that this ioctl is overlaid on the DRM_VMW_UNREF_DMABUF Ioctl. | |
| 1107 | − * The ioctl arguments therefore need to be identical in layout. | |
| 1108 | − * | |
| 1097 | + * Note that this ioctl is overlaid on the deprecated DRM_VMW_UNREF_DMABUF | |
| 1098 | + * Ioctl. | |
| 1109 | 1099 | */ |
| 1110 | 1100 | |
| 1111 | 1101 | /** |
| @@ -1119,7 +1109,107 @@ struct drm_vmw_handle_close_arg { · 7 unmodified lines | ||
| 1119 | 1109 | __u32 handle; |
| 1120 | 1110 | __u32 pad64; |
| 1121 | 1111 | }; |
| 1112 | +#define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg | |
| 1113 | + | |
| 1114 | +/*************************************************************************/ | |
| 1115 | +/** | |
| 1116 | + * DRM_VMW_GB_SURFACE_CREATE_EXT - Create a host guest-backed surface. | |
| 1117 | + * | |
| 1118 | + * Allocates a surface handle and queues a create surface command | |
| 1119 | + * for the host on the first use of the surface. The surface ID can | |
| 1120 | + * be used as the surface ID in commands referencing the surface. | |
| 1121 | + * | |
| 1122 | + * This new command extends DRM_VMW_GB_SURFACE_CREATE by adding version | |
| 1123 | + * parameter and 64 bit svga flag. | |
| 1124 | + */ | |
| 1125 | + | |
| 1126 | +/** | |
| 1127 | + * enum drm_vmw_surface_version | |
| 1128 | + * | |
| 1129 | + * @drm_vmw_surface_gb_v1: Corresponds to current gb surface format with | |
| 1130 | + * svga3d surface flags split into 2, upper half and lower half. | |
| 1131 | + */ | |
| 1132 | +enum drm_vmw_surface_version { | |
| 1133 | + drm_vmw_gb_surface_v1 | |
| 1134 | +}; | |
| 1135 | + | |
| 1136 | +/** | |
| 1137 | + * struct drm_vmw_gb_surface_create_ext_req | |
| 1138 | + * | |
| 1139 | + * @base: Surface create parameters. | |
| 1140 | + * @version: Version of surface create ioctl. | |
| 1141 | + * @svga3d_flags_upper_32_bits: Upper 32 bits of svga3d flags. | |
| 1142 | + * @multisample_pattern: Multisampling pattern when msaa is supported. | |
| 1143 | + * @quality_level: Precision settings for each sample. | |
| 1144 | + * @must_be_zero: Reserved for future usage. | |
| 1145 | + * | |
| 1146 | + * Input argument to the DRM_VMW_GB_SURFACE_CREATE_EXT Ioctl. | |
| 1147 | + * Part of output argument for the DRM_VMW_GB_SURFACE_REF_EXT Ioctl. | |
| 1148 | + */ | |
| 1149 | +struct drm_vmw_gb_surface_create_ext_req { | |
| 1150 | + struct drm_vmw_gb_surface_create_req base; | |
| 1151 | + enum drm_vmw_surface_version version; | |
| 1152 | + uint32_t svga3d_flags_upper_32_bits; | |
| 1153 | + SVGA3dMSPattern multisample_pattern; | |
| 1154 | + SVGA3dMSQualityLevel quality_level; | |
| 1155 | + uint64_t must_be_zero; | |
| 1156 | +}; | |
| 1157 | + | |
| 1158 | +/** | |
| 1159 | + * union drm_vmw_gb_surface_create_ext_arg | |
| 1160 | + * | |
| 1161 | + * @req: Input argument as described above. | |
| 1162 | + * @rep: Output argument as described above. | |
| 1163 | + * | |
| 1164 | + * Argument to the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl. | |
| 1165 | + */ | |
| 1166 | +union drm_vmw_gb_surface_create_ext_arg { | |
| 1167 | + struct drm_vmw_gb_surface_create_rep rep; | |
| 1168 | + struct drm_vmw_gb_surface_create_ext_req req; | |
| 1169 | +}; | |
| 1170 | + | |
| 1171 | +/*************************************************************************/ | |
| 1172 | +/** | |
| 1173 | + * DRM_VMW_GB_SURFACE_REF_EXT - Reference a host surface. | |
| 1174 | + * | |
| 1175 | + * Puts a reference on a host surface with a given handle, as previously | |
| 1176 | + * returned by the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl. | |
| 1177 | + * A reference will make sure the surface isn't destroyed while we hold | |
| 1178 | + * it and will allow the calling client to use the surface handle in | |
| 1179 | + * the command stream. | |
| 1180 | + * | |
| 1181 | + * On successful return, the Ioctl returns the surface information given | |
| 1182 | + * to and returned from the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl. | |
| 1183 | + */ | |
| 1122 | 1184 | |
| 1185 | +/** | |
| 1186 | + * struct drm_vmw_gb_surface_ref_ext_rep | |
| 1187 | + * | |
| 1188 | + * @creq: The data used as input when the surface was created, as described | |
| 1189 | + * above at "struct drm_vmw_gb_surface_create_ext_req" | |
| 1190 | + * @crep: Additional data output when the surface was created, as described | |
| 1191 | + * above at "struct drm_vmw_gb_surface_create_rep" | |
| 1192 | + * | |
| 1193 | + * Output Argument to the DRM_VMW_GB_SURFACE_REF_EXT ioctl. | |
| 1194 | + */ | |
| 1195 | +struct drm_vmw_gb_surface_ref_ext_rep { | |
| 1196 | + struct drm_vmw_gb_surface_create_ext_req creq; | |
| 1197 | + struct drm_vmw_gb_surface_create_rep crep; | |
| 1198 | +}; | |
| 1199 | + | |
| 1200 | +/** | |
| 1201 | + * union drm_vmw_gb_surface_reference_ext_arg | |
| 1202 | + * | |
| 1203 | + * @req: Input data as described above at "struct drm_vmw_surface_arg" | |
| 1204 | + * @rep: Output data as described above at | |
| 1205 | + * "struct drm_vmw_gb_surface_ref_ext_rep" | |
| 1206 | + * | |
| 1207 | + * Argument to the DRM_VMW_GB_SURFACE_REF Ioctl. | |
| 1208 | + */ | |
| 1209 | +union drm_vmw_gb_surface_reference_ext_arg { | |
| 1210 | + struct drm_vmw_gb_surface_ref_ext_rep rep; | |
| 1211 | + struct drm_vmw_surface_arg req; | |
| 1212 | +}; | |
| 1123 | 1213 | |
| 1124 | 1214 | #if defined(__cplusplus) |
| 1125 | 1215 | } |
| @@ -29,7 +29,6 @@ · 28 unmodified lines | ||
| 29 | 29 | |
| 30 | 30 | #include <linux/types.h> |
| 31 | 31 | #include <linux/fs.h> |
| 32 | −#include <linux/signal.h> | |
| 33 | 32 | #include <asm/byteorder.h> |
| 34 | 33 | |
| 35 | 34 | typedef __kernel_ulong_t aio_context_t; |
| @@ -39,10 +38,8 @@ enum { · 3 unmodified lines | ||
| 39 | 38 | IOCB_CMD_PWRITE = 1, |
| 40 | 39 | IOCB_CMD_FSYNC = 2, |
| 41 | 40 | IOCB_CMD_FDSYNC = 3, |
| 42 | − /* These two are experimental. | |
| 43 | − * IOCB_CMD_PREADX = 4, | |
| 44 | − * IOCB_CMD_POLL = 5, | |
| 45 | − */ | |
| 41 | + /* 4 was the experimental IOCB_CMD_PREADX */ | |
| 42 | + IOCB_CMD_POLL = 5, | |
| 46 | 43 | IOCB_CMD_NOOP = 6, |
| 47 | 44 | IOCB_CMD_PREADV = 7, |
| 48 | 45 | IOCB_CMD_PWRITEV = 8, |
| @@ -110,10 +107,5 @@ struct iocb { · 61 unmodified lines | ||
| 110 | 107 | #undef IFBIG |
| 111 | 108 | #undef IFLITTLE |
| 112 | 109 | |
| 113 | −struct __aio_sigset { | |
| 114 | − const sigset_t __user *sigmask; | |
| 115 | − size_t sigsetsize; | |
| 116 | −}; | |
| 117 | − | |
| 118 | 110 | #endif /* __LINUX__AIO_ABI_H */ |
| 119 | 111 | |
| @@ -148,6 +148,7 @@ · 147 unmodified lines | ||
| 148 | 148 | #define AUDIT_INTEGRITY_PCR 1804 /* PCR invalidation msgs */ |
| 149 | 149 | #define AUDIT_INTEGRITY_RULE 1805 /* policy rule */ |
| 150 | 150 | #define AUDIT_INTEGRITY_EVM_XATTR 1806 /* New EVM-covered xattr */ |
| 151 | +#define AUDIT_INTEGRITY_POLICY_RULE 1807 /* IMA policy rules */ | |
| 151 | 152 | |
| 152 | 153 | #define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */ |
| 153 | 154 | |
| @@ -157,7 +158,8 @@ · 3 unmodified lines | ||
| 157 | 158 | #define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */ |
| 158 | 159 | #define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */ |
| 159 | 160 | #define AUDIT_FILTER_EXIT 0x04 /* Apply rule at syscall exit */ |
| 160 | −#define AUDIT_FILTER_TYPE 0x05 /* Apply rule at audit_log_start */ | |
| 161 | +#define AUDIT_FILTER_EXCLUDE 0x05 /* Apply rule before record creation */ | |
| 162 | +#define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE /* obsolete misleading naming */ | |
| 161 | 163 | #define AUDIT_FILTER_FS 0x06 /* Apply rule at __audit_inode_child */ |
| 162 | 164 | |
| 163 | 165 | #define AUDIT_NR_FILTERS 7 |
| @@ -23,7 +23,7 @@ · 22 unmodified lines | ||
| 23 | 23 | #define AUTOFS_MIN_PROTO_VERSION 3 |
| 24 | 24 | #define AUTOFS_MAX_PROTO_VERSION 5 |
| 25 | 25 | |
| 26 | −#define AUTOFS_PROTO_SUBVERSION 2 | |
| 26 | +#define AUTOFS_PROTO_SUBVERSION 3 | |
| 27 | 27 | |
| 28 | 28 | /* |
| 29 | 29 | * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed |
| @@ -90,8 +90,10 @@ enum { · 60 unmodified lines | ||
| 90 | 90 | /* autofs version 4 and later definitions */ |
| 91 | 91 | |
| 92 | 92 | /* Mask for expire behaviour */ |
| 93 | −#define AUTOFS_EXP_IMMEDIATE 1 | |
| 94 | −#define AUTOFS_EXP_LEAVES 2 | |
| 93 | +#define AUTOFS_EXP_NORMAL 0x00 | |
| 94 | +#define AUTOFS_EXP_IMMEDIATE 0x01 | |
| 95 | +#define AUTOFS_EXP_LEAVES 0x02 | |
| 96 | +#define AUTOFS_EXP_FORCED 0x04 | |
| 95 | 97 | |
| 96 | 98 | #define AUTOFS_TYPE_ANY 0U |
| 97 | 99 | #define AUTOFS_TYPE_INDIRECT 1U |
| @@ -30,10 +30,10 @@ struct bkey { · 29 unmodified lines | ||
| 30 | 30 | BITMASK(name, struct bkey, field, offset, size) |
| 31 | 31 | |
| 32 | 32 | #define PTR_FIELD(name, offset, size) \ |
| 33 | −static inline __u64 name(const struct bkey *k, unsigned i) \ | |
| 33 | +static inline __u64 name(const struct bkey *k, unsigned int i) \ | |
| 34 | 34 | { return (k->ptr[i] >> offset) & ~(~0ULL << size); } \ |
| 35 | 35 | \ |
| 36 | −static inline void SET_##name(struct bkey *k, unsigned i, __u64 v) \ | |
| 36 | +static inline void SET_##name(struct bkey *k, unsigned int i, __u64 v) \ | |
| 37 | 37 | { \ |
| 38 | 38 | k->ptr[i] &= ~(~(~0ULL << size) << offset); \ |
| 39 | 39 | k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \ |
| @@ -117,12 +117,14 @@ static inline void bkey_copy_key(struct bkey *dest, const struct bkey *src) · 77 unmodified lines | ||
| 117 | 117 | static inline struct bkey *bkey_next(const struct bkey *k) |
| 118 | 118 | { |
| 119 | 119 | __u64 *d = (void *) k; |
| 120 | + | |
| 120 | 121 | return (struct bkey *) (d + bkey_u64s(k)); |
| 121 | 122 | } |
| 122 | 123 | |
| 123 | −static inline struct bkey *bkey_idx(const struct bkey *k, unsigned nr_keys) | |
| 124 | +static inline struct bkey *bkey_idx(const struct bkey *k, unsigned int nr_keys) | |
| 124 | 125 | { |
| 125 | 126 | __u64 *d = (void *) k; |
| 127 | + | |
| 126 | 128 | return (struct bkey *) (d + nr_keys); |
| 127 | 129 | } |
| 128 | 130 | /* Enough for a key with 6 pointers */ |
| @@ -195,7 +197,7 @@ struct cache_sb { · 66 unmodified lines | ||
| 195 | 197 | }; |
| 196 | 198 | }; |
| 197 | 199 | |
| 198 | − __u32 last_mount; /* time_t */ | |
| 200 | + __u32 last_mount; /* time overflow in y2106 */ | |
| 199 | 201 | |
| 200 | 202 | __u16 first_bucket; |
| 201 | 203 | union { |
| @@ -318,7 +320,7 @@ struct uuid_entry { · 116 unmodified lines | ||
| 318 | 320 | struct { |
| 319 | 321 | __u8 uuid[16]; |
| 320 | 322 | __u8 label[32]; |
| 321 | − __u32 first_reg; | |
| 323 | + __u32 first_reg; /* time overflow in y2106 */ | |
| 322 | 324 | __u32 last_reg; |
| 323 | 325 | __u32 invalidated; |
| 324 | 326 | |
| @@ -117,7 +117,7 @@ struct blk_zone_report { · 116 unmodified lines | ||
| 117 | 117 | __u32 nr_zones; |
| 118 | 118 | __u8 reserved[4]; |
| 119 | 119 | struct blk_zone zones[0]; |
| 120 | −} __packed; | |
| 120 | +}; | |
| 121 | 121 | |
| 122 | 122 | /** |
| 123 | 123 | * struct blk_zone_range - BLKRESETZONE ioctl request |
| @@ -75,6 +75,11 @@ struct bpf_lpm_trie_key { · 74 unmodified lines | ||
| 75 | 75 | __u8 data[0]; /* Arbitrary size */ |
| 76 | 76 | }; |
| 77 | 77 | |
| 78 | +struct bpf_cgroup_storage_key { | |
| 79 | + __u64 cgroup_inode_id; /* cgroup inode id */ | |
| 80 | + __u32 attach_type; /* program attach type */ | |
| 81 | +}; | |
| 82 | + | |
| 78 | 83 | /* BPF syscall commands, see bpf(2) man-page for details. */ |
| 79 | 84 | enum bpf_cmd { |
| 80 | 85 | BPF_MAP_CREATE, |
| @@ -120,6 +125,8 @@ enum bpf_map_type { · 39 unmodified lines | ||
| 120 | 125 | BPF_MAP_TYPE_CPUMAP, |
| 121 | 126 | BPF_MAP_TYPE_XSKMAP, |
| 122 | 127 | BPF_MAP_TYPE_SOCKHASH, |
| 128 | + BPF_MAP_TYPE_CGROUP_STORAGE, | |
| 129 | + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, | |
| 123 | 130 | }; |
| 124 | 131 | |
| 125 | 132 | enum bpf_prog_type { |
| @@ -144,6 +151,7 @@ enum bpf_prog_type { · 18 unmodified lines | ||
| 144 | 151 | BPF_PROG_TYPE_CGROUP_SOCK_ADDR, |
| 145 | 152 | BPF_PROG_TYPE_LWT_SEG6LOCAL, |
| 146 | 153 | BPF_PROG_TYPE_LIRC_MODE2, |
| 154 | + BPF_PROG_TYPE_SK_REUSEPORT, | |
| 147 | 155 | }; |
| 148 | 156 | |
| 149 | 157 | enum bpf_attach_type { |
| @@ -1371,6 +1379,20 @@ union bpf_attr { · 1221 unmodified lines | ||
| 1371 | 1379 | * A 8-byte long non-decreasing number on success, or 0 if the |
| 1372 | 1380 | * socket field is missing inside *skb*. |
| 1373 | 1381 | * |
| 1382 | + * u64 bpf_get_socket_cookie(struct bpf_sock_addr *ctx) | |
| 1383 | + * Description | |
| 1384 | + * Equivalent to bpf_get_socket_cookie() helper that accepts | |
| 1385 | + * *skb*, but gets socket from **struct bpf_sock_addr** contex. | |
| 1386 | + * Return | |
| 1387 | + * A 8-byte long non-decreasing number. | |
| 1388 | + * | |
| 1389 | + * u64 bpf_get_socket_cookie(struct bpf_sock_ops *ctx) | |
| 1390 | + * Description | |
| 1391 | + * Equivalent to bpf_get_socket_cookie() helper that accepts | |
| 1392 | + * *skb*, but gets socket from **struct bpf_sock_ops** contex. | |
| 1393 | + * Return | |
| 1394 | + * A 8-byte long non-decreasing number. | |
| 1395 | + * | |
| 1374 | 1396 | * u32 bpf_get_socket_uid(struct sk_buff *skb) |
| 1375 | 1397 | * Return |
| 1376 | 1398 | * The owner UID of the socket associated to *skb*. If the socket |
| @@ -1826,7 +1848,7 @@ union bpf_attr { · 449 unmodified lines | ||
| 1826 | 1848 | * A non-negative value equal to or less than *size* on success, |
| 1827 | 1849 | * or a negative error in case of failure. |
| 1828 | 1850 | * |
| 1829 | − * int skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header) | |
| 1851 | + * int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header) | |
| 1830 | 1852 | * Description |
| 1831 | 1853 | * This helper is similar to **bpf_skb_load_bytes**\ () in that |
| 1832 | 1854 | * it provides an easy way to load *len* bytes from *offset* |
| @@ -1857,7 +1879,8 @@ union bpf_attr { · 24 unmodified lines | ||
| 1857 | 1879 | * is resolved), the nexthop address is returned in ipv4_dst |
| 1858 | 1880 | * or ipv6_dst based on family, smac is set to mac address of |
| 1859 | 1881 | * egress device, dmac is set to nexthop mac address, rt_metric |
| 1860 | − * is set to metric from route (IPv4/IPv6 only). | |
| 1882 | + * is set to metric from route (IPv4/IPv6 only), and ifindex | |
| 1883 | + * is set to the device index of the nexthop from the FIB lookup. | |
| 1861 | 1884 | * |
| 1862 | 1885 | * *plen* argument is the size of the passed in struct. |
| 1863 | 1886 | * *flags* argument can be a combination of one or more of the |
| @@ -1873,9 +1896,10 @@ union bpf_attr { · 9 unmodified lines | ||
| 1873 | 1896 | * *ctx* is either **struct xdp_md** for XDP programs or |
| 1874 | 1897 | * **struct sk_buff** tc cls_act programs. |
| 1875 | 1898 | * Return |
| 1876 | − * Egress device index on success, 0 if packet needs to continue | |
| 1877 | − * up the stack for further processing or a negative error in case | |
| 1878 | − * of failure. | |
| 1899 | + * * < 0 if any input argument is invalid | |
| 1900 | + * * 0 on success (packet is forwarded, nexthop neighbor exists) | |
| 1901 | + * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the | |
| 1902 | + * packet is not forwarded or needs assist from full stack | |
| 1879 | 1903 | * |
| 1880 | 1904 | * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags) |
| 1881 | 1905 | * Description |
| @@ -2031,7 +2055,6 @@ union bpf_attr { · 149 unmodified lines | ||
| 2031 | 2055 | * This helper is only available is the kernel was compiled with |
| 2032 | 2056 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to |
| 2033 | 2057 | * "**y**". |
| 2034 | − * | |
| 2035 | 2058 | * Return |
| 2036 | 2059 | * 0 |
| 2037 | 2060 | * |
| @@ -2051,7 +2074,6 @@ union bpf_attr { · 13 unmodified lines | ||
| 2051 | 2074 | * This helper is only available is the kernel was compiled with |
| 2052 | 2075 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to |
| 2053 | 2076 | * "**y**". |
| 2054 | − * | |
| 2055 | 2077 | * Return |
| 2056 | 2078 | * 0 |
| 2057 | 2079 | * |
| @@ -2071,10 +2093,54 @@ union bpf_attr { · 13 unmodified lines | ||
| 2071 | 2093 | * Return |
| 2072 | 2094 | * The id is returned or 0 in case the id could not be retrieved. |
| 2073 | 2095 | * |
| 2096 | + * u64 bpf_skb_ancestor_cgroup_id(struct sk_buff *skb, int ancestor_level) | |
| 2097 | + * Description | |
| 2098 | + * Return id of cgroup v2 that is ancestor of cgroup associated | |
| 2099 | + * with the *skb* at the *ancestor_level*. The root cgroup is at | |
| 2100 | + * *ancestor_level* zero and each step down the hierarchy | |
| 2101 | + * increments the level. If *ancestor_level* == level of cgroup | |
| 2102 | + * associated with *skb*, then return value will be same as that | |
| 2103 | + * of **bpf_skb_cgroup_id**\ (). | |
| 2104 | + * | |
| 2105 | + * The helper is useful to implement policies based on cgroups | |
| 2106 | + * that are upper in hierarchy than immediate cgroup associated | |
| 2107 | + * with *skb*. | |
| 2108 | + * | |
| 2109 | + * The format of returned id and helper limitations are same as in | |
| 2110 | + * **bpf_skb_cgroup_id**\ (). | |
| 2111 | + * Return | |
| 2112 | + * The id is returned or 0 in case the id could not be retrieved. | |
| 2113 | + * | |
| 2074 | 2114 | * u64 bpf_get_current_cgroup_id(void) |
| 2075 | 2115 | * Return |
| 2076 | 2116 | * A 64-bit integer containing the current cgroup id based |
| 2077 | 2117 | * on the cgroup within which the current task is running. |
| 2118 | + * | |
| 2119 | + * void* get_local_storage(void *map, u64 flags) | |
| 2120 | + * Description | |
| 2121 | + * Get the pointer to the local storage area. | |
| 2122 | + * The type and the size of the local storage is defined | |
| 2123 | + * by the *map* argument. | |
| 2124 | + * The *flags* meaning is specific for each map type, | |
| 2125 | + * and has to be 0 for cgroup local storage. | |
| 2126 | + * | |
| 2127 | + * Depending on the bpf program type, a local storage area | |
| 2128 | + * can be shared between multiple instances of the bpf program, | |
| 2129 | + * running simultaneously. | |
| 2130 | + * | |
| 2131 | + * A user should care about the synchronization by himself. | |
| 2132 | + * For example, by using the BPF_STX_XADD instruction to alter | |
| 2133 | + * the shared data. | |
| 2134 | + * Return | |
| 2135 | + * Pointer to the local storage area. | |
| 2136 | + * | |
| 2137 | + * int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags) | |
| 2138 | + * Description | |
| 2139 | + * Select a SO_REUSEPORT sk from a BPF_MAP_TYPE_REUSEPORT_ARRAY map | |
| 2140 | + * It checks the selected sk is matching the incoming | |
| 2141 | + * request in the skb. | |
| 2142 | + * Return | |
| 2143 | + * 0 on success, or a negative error in case of failure. | |
| 2078 | 2144 | */ |
| 2079 | 2145 | #define __BPF_FUNC_MAPPER(FN) \ |
| 2080 | 2146 | FN(unspec), \ |
| @@ -2157,7 +2223,10 @@ union bpf_attr { · 76 unmodified lines | ||
| 2157 | 2223 | FN(rc_repeat), \ |
| 2158 | 2224 | FN(rc_keydown), \ |
| 2159 | 2225 | FN(skb_cgroup_id), \ |
| 2160 | − FN(get_current_cgroup_id), | |
| 2226 | + FN(get_current_cgroup_id), \ | |
| 2227 | + FN(get_local_storage), \ | |
| 2228 | + FN(sk_select_reuseport), \ | |
| 2229 | + FN(skb_ancestor_cgroup_id), | |
| 2161 | 2230 | |
| 2162 | 2231 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 2163 | 2232 | * function eBPF program intends to call |
| @@ -2374,6 +2443,30 @@ struct sk_msg_md { · 210 unmodified lines | ||
| 2374 | 2443 | __u32 local_port; /* stored in host byte order */ |
| 2375 | 2444 | }; |
| 2376 | 2445 | |
| 2446 | +struct sk_reuseport_md { | |
| 2447 | + /* | |
| 2448 | + * Start of directly accessible data. It begins from | |
| 2449 | + * the tcp/udp header. | |
| 2450 | + */ | |
| 2451 | + void *data; | |
| 2452 | + void *data_end; /* End of directly accessible data */ | |
| 2453 | + /* | |
| 2454 | + * Total length of packet (starting from the tcp/udp header). | |
| 2455 | + * Note that the directly accessible bytes (data_end - data) | |
| 2456 | + * could be less than this "len". Those bytes could be | |
| 2457 | + * indirectly read by a helper "bpf_skb_load_bytes()". | |
| 2458 | + */ | |
| 2459 | + __u32 len; | |
| 2460 | + /* | |
| 2461 | + * Eth protocol in the mac header (network byte order). e.g. | |
| 2462 | + * ETH_P_IP(0x0800) and ETH_P_IPV6(0x86DD) | |
| 2463 | + */ | |
| 2464 | + __u32 eth_protocol; | |
| 2465 | + __u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */ | |
| 2466 | + __u32 bind_inany; /* Is sock bound to an INANY address? */ | |
| 2467 | + __u32 hash; /* A hash of the packet 4 tuples */ | |
| 2468 | +}; | |
| 2469 | + | |
| 2377 | 2470 | #define BPF_TAG_SIZE 8 |
| 2378 | 2471 | |
| 2379 | 2472 | struct bpf_prog_info { |
| @@ -2555,6 +2648,9 @@ enum { · 175 unmodified lines | ||
| 2555 | 2648 | * Arg1: old_state |
| 2556 | 2649 | * Arg2: new_state |
| 2557 | 2650 | */ |
| 2651 | + BPF_SOCK_OPS_TCP_LISTEN_CB, /* Called on listen(2), right after | |
| 2652 | + * socket transition to LISTEN state. | |
| 2653 | + */ | |
| 2558 | 2654 | }; |
| 2559 | 2655 | |
| 2560 | 2656 | /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect |
| @@ -2612,6 +2708,18 @@ struct bpf_raw_tracepoint_args { · 51 unmodified lines | ||
| 2612 | 2708 | #define BPF_FIB_LOOKUP_DIRECT BIT(0) |
| 2613 | 2709 | #define BPF_FIB_LOOKUP_OUTPUT BIT(1) |
| 2614 | 2710 | |
| 2711 | +enum { | |
| 2712 | + BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */ | |
| 2713 | + BPF_FIB_LKUP_RET_BLACKHOLE, /* dest is blackholed; can be dropped */ | |
| 2714 | + BPF_FIB_LKUP_RET_UNREACHABLE, /* dest is unreachable; can be dropped */ | |
| 2715 | + BPF_FIB_LKUP_RET_PROHIBIT, /* dest not allowed; can be dropped */ | |
| 2716 | + BPF_FIB_LKUP_RET_NOT_FWDED, /* packet is not forwarded */ | |
| 2717 | + BPF_FIB_LKUP_RET_FWD_DISABLED, /* fwding is not enabled on ingress */ | |
| 2718 | + BPF_FIB_LKUP_RET_UNSUPP_LWT, /* fwd requires encapsulation */ | |
| 2719 | + BPF_FIB_LKUP_RET_NO_NEIGH, /* no neighbor entry for nh */ | |
| 2720 | + BPF_FIB_LKUP_RET_FRAG_NEEDED, /* fragmentation required to fwd */ | |
| 2721 | +}; | |
| 2722 | + | |
| 2615 | 2723 | struct bpf_fib_lookup { |
| 2616 | 2724 | /* input: network family for lookup (AF_INET, AF_INET6) |
| 2617 | 2725 | * output: network family of egress nexthop |
| @@ -2625,7 +2733,11 @@ struct bpf_fib_lookup { · 7 unmodified lines | ||
| 2625 | 2733 | |
| 2626 | 2734 | /* total length of packet from network header - used for MTU check */ |
| 2627 | 2735 | __u16 tot_len; |
| 2628 | − __u32 ifindex; /* L3 device index for lookup */ | |
| 2736 | + | |
| 2737 | + /* input: L3 device index for lookup | |
| 2738 | + * output: device index from FIB lookup | |
| 2739 | + */ | |
| 2740 | + __u32 ifindex; | |
| 2629 | 2741 | |
| 2630 | 2742 | union { |
| 2631 | 2743 | /* inputs to lookup */ |
| @@ -76,7 +76,7 @@ struct btf_type { · 75 unmodified lines | ||
| 76 | 76 | */ |
| 77 | 77 | #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24) |
| 78 | 78 | #define BTF_INT_OFFSET(VAL) (((VAL & 0x00ff0000)) >> 16) |
| 79 | −#define BTF_INT_BITS(VAL) ((VAL) & 0x0000ffff) | |
| 79 | +#define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff) | |
| 80 | 80 | |
| 81 | 81 | /* Attributes stored in the BTF_INT_ENCODING */ |
| 82 | 82 | #define BTF_INT_SIGNED (1 << 0) |
| @@ -77,7 +77,7 @@ typedef __u32 canid_t; · 76 unmodified lines | ||
| 77 | 77 | /* |
| 78 | 78 | * Controller Area Network Error Message Frame Mask structure |
| 79 | 79 | * |
| 80 | − * bit 0-28 : error class mask (see include/linux/can/error.h) | |
| 80 | + * bit 0-28 : error class mask (see include/uapi/linux/can/error.h) | |
| 81 | 81 | * bit 29-31 : set to zero |
| 82 | 82 | */ |
| 83 | 83 | typedef __u32 can_err_mask_t; |
| @@ -384,6 +384,8 @@ struct cec_log_addrs { · 383 unmodified lines | ||
| 384 | 384 | #define CEC_EVENT_PIN_CEC_HIGH 4 |
| 385 | 385 | #define CEC_EVENT_PIN_HPD_LOW 5 |
| 386 | 386 | #define CEC_EVENT_PIN_HPD_HIGH 6 |
| 387 | +#define CEC_EVENT_PIN_5V_LOW 7 | |
| 388 | +#define CEC_EVENT_PIN_5V_HIGH 8 | |
| 387 | 389 | |
| 388 | 390 | #define CEC_EVENT_FL_INITIAL_STATE (1 << 0) |
| 389 | 391 | #define CEC_EVENT_FL_DROPPED_EVENTS (1 << 1) |
| @@ -233,7 +233,8 @@ struct cee_pfc { · 232 unmodified lines | ||
| 233 | 233 | * 2 Well known port number over TCP or SCTP |
| 234 | 234 | * 3 Well known port number over UDP or DCCP |
| 235 | 235 | * 4 Well known port number over TCP, SCTP, UDP, or DCCP |
| 236 | − * 5-7 Reserved | |
| 236 | + * 5 Differentiated Services Code Point (DSCP) value | |
| 237 | + * 6-7 Reserved | |
| 237 | 238 | * |
| 238 | 239 | * Selector field values for CEE |
| 239 | 240 | * 0 Ethertype |
| @@ -78,6 +78,17 @@ enum devlink_command { · 77 unmodified lines | ||
| 78 | 78 | */ |
| 79 | 79 | DEVLINK_CMD_RELOAD, |
| 80 | 80 | |
| 81 | + DEVLINK_CMD_PARAM_GET, /* can dump */ | |
| 82 | + DEVLINK_CMD_PARAM_SET, | |
| 83 | + DEVLINK_CMD_PARAM_NEW, | |
| 84 | + DEVLINK_CMD_PARAM_DEL, | |
| 85 | + | |
| 86 | + DEVLINK_CMD_REGION_GET, | |
| 87 | + DEVLINK_CMD_REGION_SET, | |
| 88 | + DEVLINK_CMD_REGION_NEW, | |
| 89 | + DEVLINK_CMD_REGION_DEL, | |
| 90 | + DEVLINK_CMD_REGION_READ, | |
| 91 | + | |
| 81 | 92 | /* add new commands above here */ |
| 82 | 93 | __DEVLINK_CMD_MAX, |
| 83 | 94 | DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1 |
| @@ -142,6 +153,16 @@ enum devlink_port_flavour { · 58 unmodified lines | ||
| 142 | 153 | */ |
| 143 | 154 | }; |
| 144 | 155 | |
| 156 | +enum devlink_param_cmode { | |
| 157 | + DEVLINK_PARAM_CMODE_RUNTIME, | |
| 158 | + DEVLINK_PARAM_CMODE_DRIVERINIT, | |
| 159 | + DEVLINK_PARAM_CMODE_PERMANENT, | |
| 160 | + | |
| 161 | + /* Add new configuration modes above */ | |
| 162 | + __DEVLINK_PARAM_CMODE_MAX, | |
| 163 | + DEVLINK_PARAM_CMODE_MAX = __DEVLINK_PARAM_CMODE_MAX - 1 | |
| 164 | +}; | |
| 165 | + | |
| 145 | 166 | enum devlink_attr { |
| 146 | 167 | /* don't change the order or add anything between, this is ABI! */ |
| 147 | 168 | DEVLINK_ATTR_UNSPEC, |
| @@ -238,6 +259,27 @@ enum devlink_attr { · 90 unmodified lines | ||
| 238 | 259 | DEVLINK_ATTR_PORT_NUMBER, /* u32 */ |
| 239 | 260 | DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER, /* u32 */ |
| 240 | 261 | |
| 262 | + DEVLINK_ATTR_PARAM, /* nested */ | |
| 263 | + DEVLINK_ATTR_PARAM_NAME, /* string */ | |
| 264 | + DEVLINK_ATTR_PARAM_GENERIC, /* flag */ | |
| 265 | + DEVLINK_ATTR_PARAM_TYPE, /* u8 */ | |
| 266 | + DEVLINK_ATTR_PARAM_VALUES_LIST, /* nested */ | |
| 267 | + DEVLINK_ATTR_PARAM_VALUE, /* nested */ | |
| 268 | + DEVLINK_ATTR_PARAM_VALUE_DATA, /* dynamic */ | |
| 269 | + DEVLINK_ATTR_PARAM_VALUE_CMODE, /* u8 */ | |
| 270 | + | |
| 271 | + DEVLINK_ATTR_REGION_NAME, /* string */ | |
| 272 | + DEVLINK_ATTR_REGION_SIZE, /* u64 */ | |
| 273 | + DEVLINK_ATTR_REGION_SNAPSHOTS, /* nested */ | |
| 274 | + DEVLINK_ATTR_REGION_SNAPSHOT, /* nested */ | |
| 275 | + DEVLINK_ATTR_REGION_SNAPSHOT_ID, /* u32 */ | |
| 276 | + | |
| 277 | + DEVLINK_ATTR_REGION_CHUNKS, /* nested */ | |
| 278 | + DEVLINK_ATTR_REGION_CHUNK, /* nested */ | |
| 279 | + DEVLINK_ATTR_REGION_CHUNK_DATA, /* binary */ | |
| 280 | + DEVLINK_ATTR_REGION_CHUNK_ADDR, /* u64 */ | |
| 281 | + DEVLINK_ATTR_REGION_CHUNK_LEN, /* u64 */ | |
| 282 | + | |
| 241 | 283 | /* add new attributes above here, update the policy in devlink.c */ |
| 242 | 284 | |
| 243 | 285 | __DEVLINK_ATTR_MAX, |
| @@ -67,27 +67,6 @@ typedef struct audio_status { · 66 unmodified lines | ||
| 67 | 67 | } audio_status_t; /* separate decoder hardware */ |
| 68 | 68 | |
| 69 | 69 | |
| 70 | −typedef | |
| 71 | −struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */ | |
| 72 | − int vocal1; /* into left and right t at 70% each */ | |
| 73 | − int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/ | |
| 74 | − int melody; /* mixed into the left channel and */ | |
| 75 | − /* Vocal2 into the right channel at 100% each. */ | |
| 76 | − /* if Melody is non-zero, the melody channel gets mixed*/ | |
| 77 | −} audio_karaoke_t; /* into left and right */ | |
| 78 | − | |
| 79 | − | |
| 80 | −typedef __u16 audio_attributes_t; | |
| 81 | −/* bits: descr. */ | |
| 82 | −/* 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, */ | |
| 83 | −/* 12 multichannel extension */ | |
| 84 | −/* 11-10 audio type (0=not spec, 1=language included) */ | |
| 85 | −/* 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) */ | |
| 86 | −/* 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, */ | |
| 87 | −/* 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */ | |
| 88 | −/* 2- 0 number of audio channels (n+1 channels) */ | |
| 89 | − | |
| 90 | − | |
| 91 | 70 | /* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */ |
| 92 | 71 | #define AUDIO_CAP_DTS 1 |
| 93 | 72 | #define AUDIO_CAP_LPCM 2 |
| @@ -115,22 +94,6 @@ typedef __u16 audio_attributes_t; · 21 unmodified lines | ||
| 115 | 94 | #define AUDIO_SET_ID _IO('o', 13) |
| 116 | 95 | #define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t) |
| 117 | 96 | #define AUDIO_SET_STREAMTYPE _IO('o', 15) |
| 118 | −#define AUDIO_SET_EXT_ID _IO('o', 16) | |
| 119 | −#define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t) | |
| 120 | −#define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t) | |
| 121 | − | |
| 122 | −/** | |
| 123 | − * AUDIO_GET_PTS | |
| 124 | − * | |
| 125 | − * Read the 33 bit presentation time stamp as defined | |
| 126 | − * in ITU T-REC-H.222.0 / ISO/IEC 13818-1. | |
| 127 | − * | |
| 128 | − * The PTS should belong to the currently played | |
| 129 | − * frame if possible, but may also be a value close to it | |
| 130 | − * like the PTS of the last decoded frame or the last PTS | |
| 131 | − * extracted by the PES parser. | |
| 132 | − */ | |
| 133 | −#define AUDIO_GET_PTS _IOR('o', 19, __u64) | |
| 134 | 97 | #define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20) |
| 135 | 98 | |
| 136 | 99 | #endif /* _DVBAUDIO_H_ */ |
| @@ -37,18 +37,6 @@ typedef enum { · 36 unmodified lines | ||
| 37 | 37 | } video_format_t; |
| 38 | 38 | |
| 39 | 39 | |
| 40 | −typedef enum { | |
| 41 | − VIDEO_SYSTEM_PAL, | |
| 42 | − VIDEO_SYSTEM_NTSC, | |
| 43 | − VIDEO_SYSTEM_PALN, | |
| 44 | − VIDEO_SYSTEM_PALNc, | |
| 45 | − VIDEO_SYSTEM_PALM, | |
| 46 | − VIDEO_SYSTEM_NTSC60, | |
| 47 | − VIDEO_SYSTEM_PAL60, | |
| 48 | − VIDEO_SYSTEM_PALM60 | |
| 49 | −} video_system_t; | |
| 50 | − | |
| 51 | − | |
| 52 | 40 | typedef enum { |
| 53 | 41 | VIDEO_PAN_SCAN, /* use pan and scan format */ |
| 54 | 42 | VIDEO_LETTER_BOX, /* use letterbox format */ |
| @@ -160,44 +148,6 @@ struct video_still_picture { · 105 unmodified lines | ||
| 160 | 148 | }; |
| 161 | 149 | |
| 162 | 150 | |
| 163 | −typedef | |
| 164 | −struct video_highlight { | |
| 165 | − int active; /* 1=show highlight, 0=hide highlight */ | |
| 166 | − __u8 contrast1; /* 7- 4 Pattern pixel contrast */ | |
| 167 | − /* 3- 0 Background pixel contrast */ | |
| 168 | − __u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */ | |
| 169 | − /* 3- 0 Emphasis pixel-1 contrast */ | |
| 170 | − __u8 color1; /* 7- 4 Pattern pixel color */ | |
| 171 | − /* 3- 0 Background pixel color */ | |
| 172 | − __u8 color2; /* 7- 4 Emphasis pixel-2 color */ | |
| 173 | − /* 3- 0 Emphasis pixel-1 color */ | |
| 174 | − __u32 ypos; /* 23-22 auto action mode */ | |
| 175 | − /* 21-12 start y */ | |
| 176 | − /* 9- 0 end y */ | |
| 177 | − __u32 xpos; /* 23-22 button color number */ | |
| 178 | − /* 21-12 start x */ | |
| 179 | − /* 9- 0 end x */ | |
| 180 | −} video_highlight_t; | |
| 181 | − | |
| 182 | − | |
| 183 | −typedef struct video_spu { | |
| 184 | − int active; | |
| 185 | − int stream_id; | |
| 186 | −} video_spu_t; | |
| 187 | − | |
| 188 | − | |
| 189 | −typedef struct video_spu_palette { /* SPU Palette information */ | |
| 190 | − int length; | |
| 191 | − __u8 __user *palette; | |
| 192 | −} video_spu_palette_t; | |
| 193 | − | |
| 194 | − | |
| 195 | −typedef struct video_navi_pack { | |
| 196 | − int length; /* 0 ... 1024 */ | |
| 197 | − __u8 data[1024]; | |
| 198 | −} video_navi_pack_t; | |
| 199 | − | |
| 200 | − | |
| 201 | 151 | typedef __u16 video_attributes_t; |
| 202 | 152 | /* bits: descr. */ |
| 203 | 153 | /* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */ |
| @@ -242,17 +192,9 @@ typedef __u16 video_attributes_t; · 38 unmodified lines | ||
| 242 | 192 | #define VIDEO_SLOWMOTION _IO('o', 32) |
| 243 | 193 | #define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int) |
| 244 | 194 | #define VIDEO_CLEAR_BUFFER _IO('o', 34) |
| 245 | −#define VIDEO_SET_ID _IO('o', 35) | |
| 246 | 195 | #define VIDEO_SET_STREAMTYPE _IO('o', 36) |
| 247 | 196 | #define VIDEO_SET_FORMAT _IO('o', 37) |
| 248 | −#define VIDEO_SET_SYSTEM _IO('o', 38) | |
| 249 | −#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t) | |
| 250 | −#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t) | |
| 251 | −#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t) | |
| 252 | −#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t) | |
| 253 | −#define VIDEO_SET_ATTRIBUTES _IO('o', 53) | |
| 254 | 197 | #define VIDEO_GET_SIZE _IOR('o', 55, video_size_t) |
| 255 | −#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int) | |
| 256 | 198 | |
| 257 | 199 | /** |
| 258 | 200 | * VIDEO_GET_PTS |
| @@ -422,6 +422,8 @@ typedef struct elf64_shdr { · 421 unmodified lines | ||
| 422 | 422 | #define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */ |
| 423 | 423 | #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ |
| 424 | 424 | #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */ |
| 425 | +#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */ | |
| 426 | +#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */ | |
| 425 | 427 | |
| 426 | 428 | /* Note header in a PT_NOTE section */ |
| 427 | 429 | typedef struct elf32_note { |
| @@ -20,12 +20,16 @@ struct sock_extended_err { · 19 unmodified lines | ||
| 20 | 20 | #define SO_EE_ORIGIN_ICMP6 3 |
| 21 | 21 | #define SO_EE_ORIGIN_TXSTATUS 4 |
| 22 | 22 | #define SO_EE_ORIGIN_ZEROCOPY 5 |
| 23 | +#define SO_EE_ORIGIN_TXTIME 6 | |
| 23 | 24 | #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS |
| 24 | 25 | |
| 25 | 26 | #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) |
| 26 | 27 | |
| 27 | 28 | #define SO_EE_CODE_ZEROCOPY_COPIED 1 |
| 28 | 29 | |
| 30 | +#define SO_EE_CODE_TXTIME_INVALID_PARAM 1 | |
| 31 | +#define SO_EE_CODE_TXTIME_MISSED 2 | |
| 32 | + | |
| 29 | 33 | /** |
| 30 | 34 | * struct scm_timestamping - timestamps exposed through cmsg |
| 31 | 35 | * |
| @@ -226,7 +226,7 @@ enum tunable_id { · 225 unmodified lines | ||
| 226 | 226 | ETHTOOL_TX_COPYBREAK, |
| 227 | 227 | ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */ |
| 228 | 228 | /* |
| 229 | − * Add your fresh new tubale attribute above and remember to update | |
| 229 | + * Add your fresh new tunable attribute above and remember to update | |
| 230 | 230 | * tunable_strings[] in net/core/ethtool.c |
| 231 | 231 | */ |
| 232 | 232 | __ETHTOOL_TUNABLE_COUNT, |
| @@ -870,7 +870,8 @@ struct ethtool_flow_ext { · 637 unmodified lines | ||
| 870 | 870 | * includes the %FLOW_EXT or %FLOW_MAC_EXT flag |
| 871 | 871 | * (see &struct ethtool_flow_ext description). |
| 872 | 872 | * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC |
| 873 | − * if packets should be discarded | |
| 873 | + * if packets should be discarded, or %RX_CLS_FLOW_WAKE if the | |
| 874 | + * packets should be used for Wake-on-LAN with %WAKE_FILTER | |
| 874 | 875 | * @location: Location of rule in the table. Locations must be |
| 875 | 876 | * numbered such that a flow matching multiple rules will be |
| 876 | 877 | * classified according to the first (lowest numbered) rule. |
| @@ -902,13 +903,13 @@ struct ethtool_rx_flow_spec { · 25 unmodified lines | ||
| 902 | 903 | static inline __u64 ethtool_get_flow_spec_ring(__u64 ring_cookie) |
| 903 | 904 | { |
| 904 | 905 | return ETHTOOL_RX_FLOW_SPEC_RING & ring_cookie; |
| 905 | −}; | |
| 906 | +} | |
| 906 | 907 | |
| 907 | 908 | static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie) |
| 908 | 909 | { |
| 909 | 910 | return (ETHTOOL_RX_FLOW_SPEC_RING_VF & ring_cookie) >> |
| 910 | 911 | ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF; |
| 911 | −}; | |
| 912 | +} | |
| 912 | 913 | |
| 913 | 914 | /** |
| 914 | 915 | * struct ethtool_rxnfc - command to get or set RX flow classification rules |
| @@ -1634,6 +1635,7 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 719 unmodified lines | ||
| 1634 | 1635 | #define WAKE_ARP (1 << 4) |
| 1635 | 1636 | #define WAKE_MAGIC (1 << 5) |
| 1636 | 1637 | #define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ |
| 1638 | +#define WAKE_FILTER (1 << 7) | |
| 1637 | 1639 | |
| 1638 | 1640 | /* L2-L4 network traffic flow types */ |
| 1639 | 1641 | #define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */ |
| @@ -1671,6 +1673,7 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 31 unmodified lines | ||
| 1671 | 1673 | #define RXH_DISCARD (1 << 31) |
| 1672 | 1674 | |
| 1673 | 1675 | #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL |
| 1676 | +#define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL | |
| 1674 | 1677 | |
| 1675 | 1678 | /* Special RX classification rule insert location values */ |
| 1676 | 1679 | #define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */ |
| @@ -42,7 +42,7 @@ · 41 unmodified lines | ||
| 42 | 42 | #define EPOLLRDHUP (__force __poll_t)0x00002000 |
| 43 | 43 | |
| 44 | 44 | /* Set exclusive wakeup mode for the target file descriptor */ |
| 45 | −#define EPOLLEXCLUSIVE (__force __poll_t)(1U << 28) | |
| 45 | +#define EPOLLEXCLUSIVE ((__force __poll_t)(1U << 28)) | |
| 46 | 46 | |
| 47 | 47 | /* |
| 48 | 48 | * Request the handling of system wakeup events so as to prevent system suspends |
| @@ -54,13 +54,13 @@ · 5 unmodified lines | ||
| 54 | 54 | * |
| 55 | 55 | * Requires CAP_BLOCK_SUSPEND |
| 56 | 56 | */ |
| 57 | −#define EPOLLWAKEUP (__force __poll_t)(1U << 29) | |
| 57 | +#define EPOLLWAKEUP ((__force __poll_t)(1U << 29)) | |
| 58 | 58 | |
| 59 | 59 | /* Set the One Shot behaviour for the target file descriptor */ |
| 60 | −#define EPOLLONESHOT (__force __poll_t)(1U << 30) | |
| 60 | +#define EPOLLONESHOT ((__force __poll_t)(1U << 30)) | |
| 61 | 61 | |
| 62 | 62 | /* Set the Edge Triggered behaviour for the target file descriptor */ |
| 63 | −#define EPOLLET (__force __poll_t)(1U << 31) | |
| 63 | +#define EPOLLET ((__force __poll_t)(1U << 31)) | |
| 64 | 64 | |
| 65 | 65 | /* |
| 66 | 66 | * On x86-64 make the 64bit structure have the same alignment as the |
| @@ -0,0 +1,179 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | +/* | |
| 3 | + * Header File for FPGA DFL User API | |
| 4 | + * | |
| 5 | + * Copyright (C) 2017-2018 Intel Corporation, Inc. | |
| 6 | + * | |
| 7 | + * Authors: | |
| 8 | + * Kang Luwei <luwei.kang@intel.com> | |
| 9 | + * Zhang Yi <yi.z.zhang@intel.com> | |
| 10 | + * Wu Hao <hao.wu@intel.com> | |
| 11 | + * Xiao Guangrong <guangrong.xiao@linux.intel.com> | |
| 12 | + */ | |
| 13 | + | |
| 14 | +#ifndef _UAPI_LINUX_FPGA_DFL_H | |
| 15 | +#define _UAPI_LINUX_FPGA_DFL_H | |
| 16 | + | |
| 17 | +#include <linux/types.h> | |
| 18 | +#include <linux/ioctl.h> | |
| 19 | + | |
| 20 | +#define DFL_FPGA_API_VERSION 0 | |
| 21 | + | |
| 22 | +/* | |
| 23 | + * The IOCTL interface for DFL based FPGA is designed for extensibility by | |
| 24 | + * embedding the structure length (argsz) and flags into structures passed | |
| 25 | + * between kernel and userspace. This design referenced the VFIO IOCTL | |
| 26 | + * interface (include/uapi/linux/vfio.h). | |
| 27 | + */ | |
| 28 | + | |
| 29 | +#define DFL_FPGA_MAGIC 0xB6 | |
| 30 | + | |
| 31 | +#define DFL_FPGA_BASE 0 | |
| 32 | +#define DFL_PORT_BASE 0x40 | |
| 33 | +#define DFL_FME_BASE 0x80 | |
| 34 | + | |
| 35 | +/* Common IOCTLs for both FME and AFU file descriptor */ | |
| 36 | + | |
| 37 | +/** | |
| 38 | + * DFL_FPGA_GET_API_VERSION - _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 0) | |
| 39 | + * | |
| 40 | + * Report the version of the driver API. | |
| 41 | + * Return: Driver API Version. | |
| 42 | + */ | |
| 43 | + | |
| 44 | +#define DFL_FPGA_GET_API_VERSION _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 0) | |
| 45 | + | |
| 46 | +/** | |
| 47 | + * DFL_FPGA_CHECK_EXTENSION - _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 1) | |
| 48 | + * | |
| 49 | + * Check whether an extension is supported. | |
| 50 | + * Return: 0 if not supported, otherwise the extension is supported. | |
| 51 | + */ | |
| 52 | + | |
| 53 | +#define DFL_FPGA_CHECK_EXTENSION _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 1) | |
| 54 | + | |
| 55 | +/* IOCTLs for AFU file descriptor */ | |
| 56 | + | |
| 57 | +/** | |
| 58 | + * DFL_FPGA_PORT_RESET - _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 0) | |
| 59 | + * | |
| 60 | + * Reset the FPGA Port and its AFU. No parameters are supported. | |
| 61 | + * Userspace can do Port reset at any time, e.g. during DMA or PR. But | |
| 62 | + * it should never cause any system level issue, only functional failure | |
| 63 | + * (e.g. DMA or PR operation failure) and be recoverable from the failure. | |
| 64 | + * Return: 0 on success, -errno of failure | |
| 65 | + */ | |
| 66 | + | |
| 67 | +#define DFL_FPGA_PORT_RESET _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 0) | |
| 68 | + | |
| 69 | +/** | |
| 70 | + * DFL_FPGA_PORT_GET_INFO - _IOR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 1, | |
| 71 | + * struct dfl_fpga_port_info) | |
| 72 | + * | |
| 73 | + * Retrieve information about the fpga port. | |
| 74 | + * Driver fills the info in provided struct dfl_fpga_port_info. | |
| 75 | + * Return: 0 on success, -errno on failure. | |
| 76 | + */ | |
| 77 | +struct dfl_fpga_port_info { | |
| 78 | + /* Input */ | |
| 79 | + __u32 argsz; /* Structure length */ | |
| 80 | + /* Output */ | |
| 81 | + __u32 flags; /* Zero for now */ | |
| 82 | + __u32 num_regions; /* The number of supported regions */ | |
| 83 | + __u32 num_umsgs; /* The number of allocated umsgs */ | |
| 84 | +}; | |
| 85 | + | |
| 86 | +#define DFL_FPGA_PORT_GET_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 1) | |
| 87 | + | |
| 88 | +/** | |
| 89 | + * FPGA_PORT_GET_REGION_INFO - _IOWR(FPGA_MAGIC, PORT_BASE + 2, | |
| 90 | + * struct dfl_fpga_port_region_info) | |
| 91 | + * | |
| 92 | + * Retrieve information about a device memory region. | |
| 93 | + * Caller provides struct dfl_fpga_port_region_info with index value set. | |
| 94 | + * Driver returns the region info in other fields. | |
| 95 | + * Return: 0 on success, -errno on failure. | |
| 96 | + */ | |
| 97 | +struct dfl_fpga_port_region_info { | |
| 98 | + /* input */ | |
| 99 | + __u32 argsz; /* Structure length */ | |
| 100 | + /* Output */ | |
| 101 | + __u32 flags; /* Access permission */ | |
| 102 | +#define DFL_PORT_REGION_READ (1 << 0) /* Region is readable */ | |
| 103 | +#define DFL_PORT_REGION_WRITE (1 << 1) /* Region is writable */ | |
| 104 | +#define DFL_PORT_REGION_MMAP (1 << 2) /* Can be mmaped to userspace */ | |
| 105 | + /* Input */ | |
| 106 | + __u32 index; /* Region index */ | |
| 107 | +#define DFL_PORT_REGION_INDEX_AFU 0 /* AFU */ | |
| 108 | +#define DFL_PORT_REGION_INDEX_STP 1 /* Signal Tap */ | |
| 109 | + __u32 padding; | |
| 110 | + /* Output */ | |
| 111 | + __u64 size; /* Region size (bytes) */ | |
| 112 | + __u64 offset; /* Region offset from start of device fd */ | |
| 113 | +}; | |
| 114 | + | |
| 115 | +#define DFL_FPGA_PORT_GET_REGION_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 2) | |
| 116 | + | |
| 117 | +/** | |
| 118 | + * DFL_FPGA_PORT_DMA_MAP - _IOWR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 3, | |
| 119 | + * struct dfl_fpga_port_dma_map) | |
| 120 | + * | |
| 121 | + * Map the dma memory per user_addr and length which are provided by caller. | |
| 122 | + * Driver fills the iova in provided struct afu_port_dma_map. | |
| 123 | + * This interface only accepts page-size aligned user memory for dma mapping. | |
| 124 | + * Return: 0 on success, -errno on failure. | |
| 125 | + */ | |
| 126 | +struct dfl_fpga_port_dma_map { | |
| 127 | + /* Input */ | |
| 128 | + __u32 argsz; /* Structure length */ | |
| 129 | + __u32 flags; /* Zero for now */ | |
| 130 | + __u64 user_addr; /* Process virtual address */ | |
| 131 | + __u64 length; /* Length of mapping (bytes)*/ | |
| 132 | + /* Output */ | |
| 133 | + __u64 iova; /* IO virtual address */ | |
| 134 | +}; | |
| 135 | + | |
| 136 | +#define DFL_FPGA_PORT_DMA_MAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 3) | |
| 137 | + | |
| 138 | +/** | |
| 139 | + * DFL_FPGA_PORT_DMA_UNMAP - _IOW(FPGA_MAGIC, PORT_BASE + 4, | |
| 140 | + * struct dfl_fpga_port_dma_unmap) | |
| 141 | + * | |
| 142 | + * Unmap the dma memory per iova provided by caller. | |
| 143 | + * Return: 0 on success, -errno on failure. | |
| 144 | + */ | |
| 145 | +struct dfl_fpga_port_dma_unmap { | |
| 146 | + /* Input */ | |
| 147 | + __u32 argsz; /* Structure length */ | |
| 148 | + __u32 flags; /* Zero for now */ | |
| 149 | + __u64 iova; /* IO virtual address */ | |
| 150 | +}; | |
| 151 | + | |
| 152 | +#define DFL_FPGA_PORT_DMA_UNMAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 4) | |
| 153 | + | |
| 154 | +/* IOCTLs for FME file descriptor */ | |
| 155 | + | |
| 156 | +/** | |
| 157 | + * DFL_FPGA_FME_PORT_PR - _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 0, | |
| 158 | + * struct dfl_fpga_fme_port_pr) | |
| 159 | + * | |
| 160 | + * Driver does Partial Reconfiguration based on Port ID and Buffer (Image) | |
| 161 | + * provided by caller. | |
| 162 | + * Return: 0 on success, -errno on failure. | |
| 163 | + * If DFL_FPGA_FME_PORT_PR returns -EIO, that indicates the HW has detected | |
| 164 | + * some errors during PR, under this case, the user can fetch HW error info | |
| 165 | + * from the status of FME's fpga manager. | |
| 166 | + */ | |
| 167 | + | |
| 168 | +struct dfl_fpga_fme_port_pr { | |
| 169 | + /* Input */ | |
| 170 | + __u32 argsz; /* Structure length */ | |
| 171 | + __u32 flags; /* Zero for now */ | |
| 172 | + __u32 port_id; | |
| 173 | + __u32 buffer_size; | |
| 174 | + __u64 buffer_address; /* Userspace address to the buffer for PR */ | |
| 175 | +}; | |
| 176 | + | |
| 177 | +#define DFL_FPGA_FME_PORT_PR _IO(DFL_FPGA_MAGIC, DFL_FME_BASE + 0) | |
| 178 | + | |
| 179 | +#endif /* _UAPI_LINUX_FPGA_DFL_H */ | |
| @@ -0,0 +1,58 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | |
| 2 | +#ifndef _UAPI_LINUX_FSI_H | |
| 3 | +#define _UAPI_LINUX_FSI_H | |
| 4 | + | |
| 5 | +#include <linux/types.h> | |
| 6 | +#include <linux/ioctl.h> | |
| 7 | + | |
| 8 | +/* | |
| 9 | + * /dev/scom "raw" ioctl interface | |
| 10 | + * | |
| 11 | + * The driver supports a high level "read/write" interface which | |
| 12 | + * handles retries and converts the status to Linux error codes, | |
| 13 | + * however low level tools an debugger need to access the "raw" | |
| 14 | + * HW status information and interpret it themselves, so this | |
| 15 | + * ioctl interface is also provided for their use case. | |
| 16 | + */ | |
| 17 | + | |
| 18 | +/* Structure for SCOM read/write */ | |
| 19 | +struct scom_access { | |
| 20 | + __u64 addr; /* SCOM address, supports indirect */ | |
| 21 | + __u64 data; /* SCOM data (in for write, out for read) */ | |
| 22 | + __u64 mask; /* Data mask for writes */ | |
| 23 | + __u32 intf_errors; /* Interface error flags */ | |
| 24 | +#define SCOM_INTF_ERR_PARITY 0x00000001 /* Parity error */ | |
| 25 | +#define SCOM_INTF_ERR_PROTECTION 0x00000002 /* Blocked by secure boot */ | |
| 26 | +#define SCOM_INTF_ERR_ABORT 0x00000004 /* PIB reset during access */ | |
| 27 | +#define SCOM_INTF_ERR_UNKNOWN 0x80000000 /* Unknown error */ | |
| 28 | + /* | |
| 29 | + * Note: Any other bit set in intf_errors need to be considered as an | |
| 30 | + * error. Future implementations may define new error conditions. The | |
| 31 | + * pib_status below is only valid if intf_errors is 0. | |
| 32 | + */ | |
| 33 | + __u8 pib_status; /* 3-bit PIB status */ | |
| 34 | +#define SCOM_PIB_SUCCESS 0 /* Access successful */ | |
| 35 | +#define SCOM_PIB_BLOCKED 1 /* PIB blocked, pls retry */ | |
| 36 | +#define SCOM_PIB_OFFLINE 2 /* Chiplet offline */ | |
| 37 | +#define SCOM_PIB_PARTIAL 3 /* Partial good */ | |
| 38 | +#define SCOM_PIB_BAD_ADDR 4 /* Invalid address */ | |
| 39 | +#define SCOM_PIB_CLK_ERR 5 /* Clock error */ | |
| 40 | +#define SCOM_PIB_PARITY_ERR 6 /* Parity error on the PIB bus */ | |
| 41 | +#define SCOM_PIB_TIMEOUT 7 /* Bus timeout */ | |
| 42 | + __u8 pad; | |
| 43 | +}; | |
| 44 | + | |
| 45 | +/* Flags for SCOM check */ | |
| 46 | +#define SCOM_CHECK_SUPPORTED 0x00000001 /* Interface supported */ | |
| 47 | +#define SCOM_CHECK_PROTECTED 0x00000002 /* Interface blocked by secure boot */ | |
| 48 | + | |
| 49 | +/* Flags for SCOM reset */ | |
| 50 | +#define SCOM_RESET_INTF 0x00000001 /* Reset interface */ | |
| 51 | +#define SCOM_RESET_PIB 0x00000002 /* Reset PIB */ | |
| 52 | + | |
| 53 | +#define FSI_SCOM_CHECK _IOR('s', 0x00, __u32) | |
| 54 | +#define FSI_SCOM_READ _IOWR('s', 0x01, struct scom_access) | |
| 55 | +#define FSI_SCOM_WRITE _IOWR('s', 0x02, struct scom_access) | |
| 56 | +#define FSI_SCOM_RESET _IOW('s', 0x03, __u32) | |
| 57 | + | |
| 58 | +#endif /* _UAPI_LINUX_FSI_H */ | |
| @@ -164,6 +164,8 @@ enum { · 163 unmodified lines | ||
| 164 | 164 | IFLA_CARRIER_UP_COUNT, |
| 165 | 165 | IFLA_CARRIER_DOWN_COUNT, |
| 166 | 166 | IFLA_NEW_IFINDEX, |
| 167 | + IFLA_MIN_MTU, | |
| 168 | + IFLA_MAX_MTU, | |
| 167 | 169 | __IFLA_MAX |
| 168 | 170 | }; |
| 169 | 171 | |
| @@ -334,6 +336,7 @@ enum { · 164 unmodified lines | ||
| 334 | 336 | IFLA_BRPORT_GROUP_FWD_MASK, |
| 335 | 337 | IFLA_BRPORT_NEIGH_SUPPRESS, |
| 336 | 338 | IFLA_BRPORT_ISOLATED, |
| 339 | + IFLA_BRPORT_BACKUP_PORT, | |
| 337 | 340 | __IFLA_BRPORT_MAX |
| 338 | 341 | }; |
| 339 | 342 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -459,6 +462,16 @@ enum { · 119 unmodified lines | ||
| 459 | 462 | |
| 460 | 463 | #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) |
| 461 | 464 | |
| 465 | +/* XFRM section */ | |
| 466 | +enum { | |
| 467 | + IFLA_XFRM_UNSPEC, | |
| 468 | + IFLA_XFRM_LINK, | |
| 469 | + IFLA_XFRM_IF_ID, | |
| 470 | + __IFLA_XFRM_MAX | |
| 471 | +}; | |
| 472 | + | |
| 473 | +#define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1) | |
| 474 | + | |
| 462 | 475 | enum macsec_validation_type { |
| 463 | 476 | MACSEC_VALIDATE_DISABLED = 0, |
| 464 | 477 | MACSEC_VALIDATE_CHECK = 1, |
| @@ -920,6 +933,7 @@ enum { · 455 unmodified lines | ||
| 920 | 933 | XDP_ATTACHED_DRV, |
| 921 | 934 | XDP_ATTACHED_SKB, |
| 922 | 935 | XDP_ATTACHED_HW, |
| 936 | + XDP_ATTACHED_MULTI, | |
| 923 | 937 | }; |
| 924 | 938 | |
| 925 | 939 | enum { |
| @@ -928,6 +942,9 @@ enum { · 2 unmodified lines | ||
| 928 | 942 | IFLA_XDP_ATTACHED, |
| 929 | 943 | IFLA_XDP_FLAGS, |
| 930 | 944 | IFLA_XDP_PROG_ID, |
| 945 | + IFLA_XDP_DRV_PROG_ID, | |
| 946 | + IFLA_XDP_SKB_PROG_ID, | |
| 947 | + IFLA_XDP_HW_PROG_ID, | |
| 931 | 948 | __IFLA_XDP_MAX, |
| 932 | 949 | }; |
| 933 | 950 | |
| @@ -44,6 +44,8 @@ enum iio_chan_type { · 43 unmodified lines | ||
| 44 | 44 | IIO_COUNT, |
| 45 | 45 | IIO_INDEX, |
| 46 | 46 | IIO_GRAVITY, |
| 47 | + IIO_POSITIONRELATIVE, | |
| 48 | + IIO_PHASE, | |
| 47 | 49 | }; |
| 48 | 50 | |
| 49 | 51 | enum iio_modifier { |
| @@ -84,6 +86,7 @@ enum iio_modifier { · 34 unmodified lines | ||
| 84 | 86 | IIO_MOD_CO2, |
| 85 | 87 | IIO_MOD_VOC, |
| 86 | 88 | IIO_MOD_LIGHT_UV, |
| 89 | + IIO_MOD_LIGHT_DUV, | |
| 87 | 90 | }; |
| 88 | 91 | |
| 89 | 92 | enum iio_event_type { |
| @@ -30,6 +30,7 @@ enum { · 29 unmodified lines | ||
| 30 | 30 | ILA_CMD_ADD, |
| 31 | 31 | ILA_CMD_DEL, |
| 32 | 32 | ILA_CMD_GET, |
| 33 | + ILA_CMD_FLUSH, | |
| 33 | 34 | |
| 34 | 35 | __ILA_CMD_MAX, |
| 35 | 36 | }; |
| @@ -53,6 +53,7 @@ struct inotify_event { · 52 unmodified lines | ||
| 53 | 53 | #define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */ |
| 54 | 54 | #define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */ |
| 55 | 55 | #define IN_EXCL_UNLINK 0x04000000 /* exclude events on unlinked objects */ |
| 56 | +#define IN_MASK_CREATE 0x10000000 /* only create watches */ | |
| 56 | 57 | #define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ |
| 57 | 58 | #define IN_ISDIR 0x40000000 /* event occurred against dir */ |
| 58 | 59 | #define IN_ONESHOT 0x80000000 /* only send event once */ |
| @@ -270,10 +270,11 @@ struct input_mask { · 269 unmodified lines | ||
| 270 | 270 | /* |
| 271 | 271 | * MT_TOOL types |
| 272 | 272 | */ |
| 273 | −#define MT_TOOL_FINGER 0 | |
| 274 | −#define MT_TOOL_PEN 1 | |
| 275 | −#define MT_TOOL_PALM 2 | |
| 276 | −#define MT_TOOL_MAX 2 | |
| 273 | +#define MT_TOOL_FINGER 0x00 | |
| 274 | +#define MT_TOOL_PEN 0x01 | |
| 275 | +#define MT_TOOL_PALM 0x02 | |
| 276 | +#define MT_TOOL_DIAL 0x0a | |
| 277 | +#define MT_TOOL_MAX 0x0f | |
| 277 | 278 | |
| 278 | 279 | /* |
| 279 | 280 | * Values describing the status of a force-feedback effect |
| @@ -168,6 +168,7 @@ enum · 167 unmodified lines | ||
| 168 | 168 | IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN, |
| 169 | 169 | IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, |
| 170 | 170 | IPV4_DEVCONF_DROP_GRATUITOUS_ARP, |
| 171 | + IPV4_DEVCONF_BC_FORWARDING, | |
| 171 | 172 | __IPV4_DEVCONF_MAX |
| 172 | 173 | }; |
| 173 | 174 | |
| @@ -18,10 +18,6 @@ · 17 unmodified lines | ||
| 18 | 18 | * You should have received a copy of the GNU General Public License |
| 19 | 19 | * along with this program; if not, write to the Free Software |
| 20 | 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 21 | − * | |
| 22 | − * Should you need to contact me, the author, you can do so either by | |
| 23 | − * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail: | |
| 24 | − * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic | |
| 25 | 21 | */ |
| 26 | 22 | #ifndef _UAPI_LINUX_JOYSTICK_H |
| 27 | 23 | #define _UAPI_LINUX_JOYSTICK_H |
| @@ -357,8 +357,29 @@ · 356 unmodified lines | ||
| 357 | 357 | #define K_DTILDE K(KT_DEAD,3) |
| 358 | 358 | #define K_DDIERE K(KT_DEAD,4) |
| 359 | 359 | #define K_DCEDIL K(KT_DEAD,5) |
| 360 | +#define K_DMACRON K(KT_DEAD,6) | |
| 361 | +#define K_DBREVE K(KT_DEAD,7) | |
| 362 | +#define K_DABDOT K(KT_DEAD,8) | |
| 363 | +#define K_DABRING K(KT_DEAD,9) | |
| 364 | +#define K_DDBACUTE K(KT_DEAD,10) | |
| 365 | +#define K_DCARON K(KT_DEAD,11) | |
| 366 | +#define K_DOGONEK K(KT_DEAD,12) | |
| 367 | +#define K_DIOTA K(KT_DEAD,13) | |
| 368 | +#define K_DVOICED K(KT_DEAD,14) | |
| 369 | +#define K_DSEMVOICED K(KT_DEAD,15) | |
| 370 | +#define K_DBEDOT K(KT_DEAD,16) | |
| 371 | +#define K_DHOOK K(KT_DEAD,17) | |
| 372 | +#define K_DHORN K(KT_DEAD,18) | |
| 373 | +#define K_DSTROKE K(KT_DEAD,19) | |
| 374 | +#define K_DABCOMMA K(KT_DEAD,20) | |
| 375 | +#define K_DABREVCOMMA K(KT_DEAD,21) | |
| 376 | +#define K_DDBGRAVE K(KT_DEAD,22) | |
| 377 | +#define K_DINVBREVE K(KT_DEAD,23) | |
| 378 | +#define K_DBECOMMA K(KT_DEAD,24) | |
| 379 | +#define K_DCURRENCY K(KT_DEAD,25) | |
| 380 | +#define K_DGREEK K(KT_DEAD,26) | |
| 360 | 381 | |
| 361 | −#define NR_DEAD 6 | |
| 382 | +#define NR_DEAD 27 | |
| 362 | 383 | |
| 363 | 384 | #define K_DOWN K(KT_CUR,0) |
| 364 | 385 | #define K_LEFT K(KT_CUR,1) |
| @@ -76,6 +76,12 @@ struct kfd_ioctl_update_queue_args { · 75 unmodified lines | ||
| 76 | 76 | __u32 queue_priority; /* to KFD */ |
| 77 | 77 | }; |
| 78 | 78 | |
| 79 | +struct kfd_ioctl_set_cu_mask_args { | |
| 80 | + __u32 queue_id; /* to KFD */ | |
| 81 | + __u32 num_cu_mask; /* to KFD */ | |
| 82 | + __u64 cu_mask_ptr; /* to KFD */ | |
| 83 | +}; | |
| 84 | + | |
| 79 | 85 | /* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */ |
| 80 | 86 | #define KFD_IOC_CACHE_POLICY_COHERENT 0 |
| 81 | 87 | #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1 |
| @@ -189,6 +195,15 @@ struct kfd_ioctl_dbg_wave_control_args { · 107 unmodified lines | ||
| 189 | 195 | |
| 190 | 196 | #define KFD_SIGNAL_EVENT_LIMIT 4096 |
| 191 | 197 | |
| 198 | +/* For kfd_event_data.hw_exception_data.reset_type. */ | |
| 199 | +#define KFD_HW_EXCEPTION_WHOLE_GPU_RESET 0 | |
| 200 | +#define KFD_HW_EXCEPTION_PER_ENGINE_RESET 1 | |
| 201 | + | |
| 202 | +/* For kfd_event_data.hw_exception_data.reset_cause. */ | |
| 203 | +#define KFD_HW_EXCEPTION_GPU_HANG 0 | |
| 204 | +#define KFD_HW_EXCEPTION_ECC 1 | |
| 205 | + | |
| 206 | + | |
| 192 | 207 | struct kfd_ioctl_create_event_args { |
| 193 | 208 | __u64 event_page_offset; /* from KFD */ |
| 194 | 209 | __u32 event_trigger_data; /* from KFD - signal events only */ |
| @@ -219,7 +234,7 @@ struct kfd_memory_exception_failure { · 24 unmodified lines | ||
| 219 | 234 | __u32 NotPresent; /* Page not present or supervisor privilege */ |
| 220 | 235 | __u32 ReadOnly; /* Write access to a read-only page */ |
| 221 | 236 | __u32 NoExecute; /* Execute access to a page marked NX */ |
| 222 | − __u32 pad; | |
| 237 | + __u32 imprecise; /* Can't determine the exact fault address */ | |
| 223 | 238 | }; |
| 224 | 239 | |
| 225 | 240 | /* memory exception data*/ |
| @@ -230,10 +245,19 @@ struct kfd_hsa_memory_exception_data { · 4 unmodified lines | ||
| 230 | 245 | __u32 pad; |
| 231 | 246 | }; |
| 232 | 247 | |
| 233 | −/* Event data*/ | |
| 248 | +/* hw exception data */ | |
| 249 | +struct kfd_hsa_hw_exception_data { | |
| 250 | + uint32_t reset_type; | |
| 251 | + uint32_t reset_cause; | |
| 252 | + uint32_t memory_lost; | |
| 253 | + uint32_t gpu_id; | |
| 254 | +}; | |
| 255 | + | |
| 256 | +/* Event data */ | |
| 234 | 257 | struct kfd_event_data { |
| 235 | 258 | union { |
| 236 | 259 | struct kfd_hsa_memory_exception_data memory_exception_data; |
| 260 | + struct kfd_hsa_hw_exception_data hw_exception_data; | |
| 237 | 261 | }; /* From KFD */ |
| 238 | 262 | __u64 kfd_event_data_ext; /* pointer to an extension structure |
| 239 | 263 | for future exception types */ |
| @@ -448,7 +472,10 @@ struct kfd_ioctl_unmap_memory_from_gpu_args { · 208 unmodified lines | ||
| 448 | 472 | #define AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU \ |
| 449 | 473 | AMDKFD_IOWR(0x19, struct kfd_ioctl_unmap_memory_from_gpu_args) |
| 450 | 474 | |
| 475 | +#define AMDKFD_IOC_SET_CU_MASK \ | |
| 476 | + AMDKFD_IOW(0x1A, struct kfd_ioctl_set_cu_mask_args) | |
| 477 | + | |
| 451 | 478 | #define AMDKFD_COMMAND_START 0x01 |
| 452 | −#define AMDKFD_COMMAND_END 0x1A | |
| 479 | +#define AMDKFD_COMMAND_END 0x1B | |
| 453 | 480 | |
| 454 | 481 | #endif |
| @@ -949,6 +949,9 @@ struct kvm_ppc_resize_hpt { · 948 unmodified lines | ||
| 949 | 949 | #define KVM_CAP_GET_MSR_FEATURES 153 |
| 950 | 950 | #define KVM_CAP_HYPERV_EVENTFD 154 |
| 951 | 951 | #define KVM_CAP_HYPERV_TLBFLUSH 155 |
| 952 | +#define KVM_CAP_S390_HPAGE_1M 156 | |
| 953 | +#define KVM_CAP_NESTED_STATE 157 | |
| 954 | +#define KVM_CAP_ARM_INJECT_SERROR_ESR 158 | |
| 952 | 955 | |
| 953 | 956 | #ifdef KVM_CAP_IRQ_ROUTING |
| 954 | 957 | |
| @@ -1391,6 +1394,9 @@ struct kvm_enc_region { · 436 unmodified lines | ||
| 1391 | 1394 | /* Available with KVM_CAP_HYPERV_EVENTFD */ |
| 1392 | 1395 | #define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd) |
| 1393 | 1396 | |
| 1397 | +/* Available with KVM_CAP_NESTED_STATE */ | |
| 1398 | +#define KVM_GET_NESTED_STATE _IOWR(KVMIO, 0xbe, struct kvm_nested_state) | |
| 1399 | +#define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state) | |
| 1394 | 1400 | |
| 1395 | 1401 | /* Secure Encrypted Virtualization command */ |
| 1396 | 1402 | enum sev_cmd_id { |
| @@ -13,6 +13,7 @@ · 12 unmodified lines | ||
| 13 | 13 | /* Return values for hypercalls */ |
| 14 | 14 | #define KVM_ENOSYS 1000 |
| 15 | 15 | #define KVM_EFAULT EFAULT |
| 16 | +#define KVM_EINVAL EINVAL | |
| 16 | 17 | #define KVM_E2BIG E2BIG |
| 17 | 18 | #define KVM_EPERM EPERM |
| 18 | 19 | #define KVM_EOPNOTSUPP 95 |
| @@ -26,6 +27,7 @@ · 7 unmodified lines | ||
| 26 | 27 | #define KVM_HC_MIPS_EXIT_VM 7 |
| 27 | 28 | #define KVM_HC_MIPS_CONSOLE_OUTPUT 8 |
| 28 | 29 | #define KVM_HC_CLOCK_PAIRING 9 |
| 30 | +#define KVM_HC_SEND_IPI 10 | |
| 29 | 31 | |
| 30 | 32 | /* |
| 31 | 33 | * hypercalls use architecture specific |
| @@ -60,14 +60,14 @@ struct sockaddr_l2tpip6 { · 59 unmodified lines | ||
| 60 | 60 | /* |
| 61 | 61 | * Commands. |
| 62 | 62 | * Valid TLVs of each command are:- |
| 63 | − * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum, vlanid | |
| 63 | + * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum | |
| 64 | 64 | * TUNNEL_DELETE - CONN_ID |
| 65 | 65 | * TUNNEL_MODIFY - CONN_ID, udpcsum |
| 66 | 66 | * TUNNEL_GETSTATS - CONN_ID, (stats) |
| 67 | 67 | * TUNNEL_GET - CONN_ID, (...) |
| 68 | − * SESSION_CREATE - SESSION_ID, PW_TYPE, data_seq, cookie, peer_cookie, l2spec | |
| 68 | + * SESSION_CREATE - SESSION_ID, PW_TYPE, cookie, peer_cookie, l2spec | |
| 69 | 69 | * SESSION_DELETE - SESSION_ID |
| 70 | − * SESSION_MODIFY - SESSION_ID, data_seq | |
| 70 | + * SESSION_MODIFY - SESSION_ID | |
| 71 | 71 | * SESSION_GET - SESSION_ID, (...) |
| 72 | 72 | * SESSION_GETSTATS - SESSION_ID, (stats) |
| 73 | 73 | * |
| @@ -95,7 +95,7 @@ enum { · 21 unmodified lines | ||
| 95 | 95 | L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */ |
| 96 | 96 | L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */ |
| 97 | 97 | L2TP_ATTR_OFFSET, /* u16 (not used) */ |
| 98 | − L2TP_ATTR_DATA_SEQ, /* u16 */ | |
| 98 | + L2TP_ATTR_DATA_SEQ, /* u16 (not used) */ | |
| 99 | 99 | L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */ |
| 100 | 100 | L2TP_ATTR_L2SPEC_LEN, /* u8 (not used) */ |
| 101 | 101 | L2TP_ATTR_PROTO_VERSION, /* u8 */ |
| @@ -105,7 +105,7 @@ enum { · 3 unmodified lines | ||
| 105 | 105 | L2TP_ATTR_SESSION_ID, /* u32 */ |
| 106 | 106 | L2TP_ATTR_PEER_SESSION_ID, /* u32 */ |
| 107 | 107 | L2TP_ATTR_UDP_CSUM, /* u8 */ |
| 108 | − L2TP_ATTR_VLAN_ID, /* u16 */ | |
| 108 | + L2TP_ATTR_VLAN_ID, /* u16 (not used) */ | |
| 109 | 109 | L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */ |
| 110 | 110 | L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */ |
| 111 | 111 | L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */ |
| @@ -119,8 +119,8 @@ enum { · 7 unmodified lines | ||
| 119 | 119 | L2TP_ATTR_IP_DADDR, /* u32 */ |
| 120 | 120 | L2TP_ATTR_UDP_SPORT, /* u16 */ |
| 121 | 121 | L2TP_ATTR_UDP_DPORT, /* u16 */ |
| 122 | − L2TP_ATTR_MTU, /* u16 */ | |
| 123 | − L2TP_ATTR_MRU, /* u16 */ | |
| 122 | + L2TP_ATTR_MTU, /* u16 (not used) */ | |
| 123 | + L2TP_ATTR_MRU, /* u16 (not used) */ | |
| 124 | 124 | L2TP_ATTR_STATS, /* nested */ |
| 125 | 125 | L2TP_ATTR_IP6_SADDR, /* struct in6_addr */ |
| 126 | 126 | L2TP_ATTR_IP6_DADDR, /* struct in6_addr */ |
| @@ -169,6 +169,7 @@ enum l2tp_encap_type { · 42 unmodified lines | ||
| 169 | 169 | L2TP_ENCAPTYPE_IP, |
| 170 | 170 | }; |
| 171 | 171 | |
| 172 | +/* For L2TP_ATTR_DATA_SEQ. Unused. */ | |
| 172 | 173 | enum l2tp_seqmode { |
| 173 | 174 | L2TP_SEQ_NONE = 0, |
| 174 | 175 | L2TP_SEQ_IP = 1, |
| @@ -62,7 +62,7 @@ · 61 unmodified lines | ||
| 62 | 62 | #define MEDIA_BUS_FMT_RGB121212_1X36 0x1019 |
| 63 | 63 | #define MEDIA_BUS_FMT_RGB161616_1X48 0x101a |
| 64 | 64 | |
| 65 | −/* YUV (including grey) - next is 0x202c */ | |
| 65 | +/* YUV (including grey) - next is 0x202d */ | |
| 66 | 66 | #define MEDIA_BUS_FMT_Y8_1X8 0x2001 |
| 67 | 67 | #define MEDIA_BUS_FMT_UV8_1X8 0x2015 |
| 68 | 68 | #define MEDIA_BUS_FMT_UYVY8_1_5X8 0x2002 |
| @@ -74,6 +74,7 @@ · 5 unmodified lines | ||
| 74 | 74 | #define MEDIA_BUS_FMT_YUYV8_2X8 0x2008 |
| 75 | 75 | #define MEDIA_BUS_FMT_YVYU8_2X8 0x2009 |
| 76 | 76 | #define MEDIA_BUS_FMT_Y10_1X10 0x200a |
| 77 | +#define MEDIA_BUS_FMT_Y10_2X8_PADHI_LE 0x202c | |
| 77 | 78 | #define MEDIA_BUS_FMT_UYVY10_2X10 0x2018 |
| 78 | 79 | #define MEDIA_BUS_FMT_VYUY10_2X10 0x2019 |
| 79 | 80 | #define MEDIA_BUS_FMT_YUYV10_2X10 0x200b |
| @@ -25,7 +25,6 @@ · 24 unmodified lines | ||
| 25 | 25 | #endif |
| 26 | 26 | #include <linux/ioctl.h> |
| 27 | 27 | #include <linux/types.h> |
| 28 | −#include <linux/version.h> | |
| 29 | 28 | |
| 30 | 29 | struct media_device_info { |
| 31 | 30 | char driver[16]; |
| @@ -89,12 +88,6 @@ struct media_device_info { · 57 unmodified lines | ||
| 89 | 88 | #define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2) |
| 90 | 89 | #define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3) |
| 91 | 90 | |
| 92 | −/* | |
| 93 | − * Video decoder functions | |
| 94 | − */ | |
| 95 | −#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4) | |
| 96 | −#define MEDIA_ENT_F_DTV_DECODER (MEDIA_ENT_F_BASE + 0x6001) | |
| 97 | − | |
| 98 | 91 | /* |
| 99 | 92 | * Digital TV, analog TV, radio and/or software defined radio tuner functions. |
| 100 | 93 | * |
| @@ -132,6 +125,8 @@ struct media_device_info { · 31 unmodified lines | ||
| 132 | 125 | #define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004) |
| 133 | 126 | #define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4005) |
| 134 | 127 | #define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006) |
| 128 | +#define MEDIA_ENT_F_PROC_VIDEO_ENCODER (MEDIA_ENT_F_BASE + 0x4007) | |
| 129 | +#define MEDIA_ENT_F_PROC_VIDEO_DECODER (MEDIA_ENT_F_BASE + 0x4008) | |
| 135 | 130 | |
| 136 | 131 | /* |
| 137 | 132 | * Switch and bridge entity functions |
| @@ -139,6 +134,13 @@ struct media_device_info { · 1 unmodified line | ||
| 139 | 134 | #define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001) |
| 140 | 135 | #define MEDIA_ENT_F_VID_IF_BRIDGE (MEDIA_ENT_F_BASE + 0x5002) |
| 141 | 136 | |
| 137 | +/* | |
| 138 | + * Video decoder/encoder functions | |
| 139 | + */ | |
| 140 | +#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4) | |
| 141 | +#define MEDIA_ENT_F_DV_DECODER (MEDIA_ENT_F_BASE + 0x6001) | |
| 142 | +#define MEDIA_ENT_F_DV_ENCODER (MEDIA_ENT_F_BASE + 0x6002) | |
| 143 | + | |
| 142 | 144 | /* Entity flags */ |
| 143 | 145 | #define MEDIA_ENT_FL_DEFAULT (1 << 0) |
| 144 | 146 | #define MEDIA_ENT_FL_CONNECTOR (1 << 1) |
| @@ -280,11 +282,21 @@ struct media_links_enum { · 135 unmodified lines | ||
| 280 | 282 | * MC next gen API definitions |
| 281 | 283 | */ |
| 282 | 284 | |
| 285 | +/* | |
| 286 | + * Appeared in 4.19.0. | |
| 287 | + * | |
| 288 | + * The media_version argument comes from the media_version field in | |
| 289 | + * struct media_device_info. | |
| 290 | + */ | |
| 291 | +#define MEDIA_V2_ENTITY_HAS_FLAGS(media_version) \ | |
| 292 | + ((media_version) >= ((4 << 16) | (19 << 8) | 0)) | |
| 293 | + | |
| 283 | 294 | struct media_v2_entity { |
| 284 | 295 | __u32 id; |
| 285 | 296 | char name[64]; |
| 286 | 297 | __u32 function; /* Main function of the entity */ |
| 287 | − __u32 reserved[6]; | |
| 298 | + __u32 flags; | |
| 299 | + __u32 reserved[5]; | |
| 288 | 300 | } __attribute__ ((packed)); |
| 289 | 301 | |
| 290 | 302 | /* Should match the specific fields at media_intf_devnode */ |
| @@ -305,11 +317,21 @@ struct media_v2_interface { · 14 unmodified lines | ||
| 305 | 317 | }; |
| 306 | 318 | } __attribute__ ((packed)); |
| 307 | 319 | |
| 320 | +/* | |
| 321 | + * Appeared in 4.19.0. | |
| 322 | + * | |
| 323 | + * The media_version argument comes from the media_version field in | |
| 324 | + * struct media_device_info. | |
| 325 | + */ | |
| 326 | +#define MEDIA_V2_PAD_HAS_INDEX(media_version) \ | |
| 327 | + ((media_version) >= ((4 << 16) | (19 << 8) | 0)) | |
| 328 | + | |
| 308 | 329 | struct media_v2_pad { |
| 309 | 330 | __u32 id; |
| 310 | 331 | __u32 entity_id; |
| 311 | 332 | __u32 flags; |
| 312 | − __u32 reserved[5]; | |
| 333 | + __u32 index; | |
| 334 | + __u32 reserved[4]; | |
| 313 | 335 | } __attribute__ ((packed)); |
| 314 | 336 | |
| 315 | 337 | struct media_v2_link { |
| @@ -348,7 +370,7 @@ struct media_v2_topology { · 32 unmodified lines | ||
| 348 | 370 | #define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc) |
| 349 | 371 | #define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology) |
| 350 | 372 | |
| 351 | −#if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API) | |
| 373 | +#ifndef __KERNEL__ | |
| 352 | 374 | |
| 353 | 375 | /* |
| 354 | 376 | * Legacy symbols used to avoid userspace compilation breakages. |
| @@ -380,6 +402,8 @@ struct media_v2_topology { · 25 unmodified lines | ||
| 380 | 402 | #define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER |
| 381 | 403 | #define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER |
| 382 | 404 | |
| 405 | +#define MEDIA_ENT_F_DTV_DECODER MEDIA_ENT_F_DV_DECODER | |
| 406 | + | |
| 383 | 407 | /* |
| 384 | 408 | * There is still no ALSA support in the media controller. These |
| 385 | 409 | * defines should not have been added and we leave them here only |
| @@ -396,7 +420,7 @@ struct media_v2_topology { · 10 unmodified lines | ||
| 396 | 420 | #define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7) |
| 397 | 421 | |
| 398 | 422 | /* Obsolete symbol for media_version, no longer used in the kernel */ |
| 399 | −#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0) | |
| 423 | +#define MEDIA_API_VERSION ((0 << 16) | (1 << 8) | 0) | |
| 400 | 424 | |
| 401 | 425 | #endif |
| 402 | 426 | |
| @@ -136,6 +136,7 @@ · 135 unmodified lines | ||
| 136 | 136 | #define CTL1000_ENABLE_MASTER 0x1000 |
| 137 | 137 | |
| 138 | 138 | /* 1000BASE-T Status register */ |
| 139 | +#define LPA_1000MSFAIL 0x8000 /* Master/Slave resolution failure */ | |
| 139 | 140 | #define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */ |
| 140 | 141 | #define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */ |
| 141 | 142 | #define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */ |
| @@ -120,6 +120,7 @@ enum { · 119 unmodified lines | ||
| 120 | 120 | IPMRA_TABLE_MROUTE_DO_ASSERT, |
| 121 | 121 | IPMRA_TABLE_MROUTE_DO_PIM, |
| 122 | 122 | IPMRA_TABLE_VIFS, |
| 123 | + IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE, | |
| 123 | 124 | __IPMRA_TABLE_MAX |
| 124 | 125 | }; |
| 125 | 126 | #define IPMRA_TABLE_MAX (__IPMRA_TABLE_MAX - 1) |
| @@ -173,5 +174,6 @@ enum { · 47 unmodified lines | ||
| 173 | 174 | #define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */ |
| 174 | 175 | #define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */ |
| 175 | 176 | #define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */ |
| 177 | +#define IGMPMSG_WRVIFWHOLE 4 /* For PIM Register and assert processing */ | |
| 176 | 178 | |
| 177 | 179 | #endif /* _UAPI__LINUX_MROUTE_H */ |
| @@ -141,4 +141,22 @@ struct scm_ts_pktinfo { · 140 unmodified lines | ||
| 141 | 141 | __u32 reserved[2]; |
| 142 | 142 | }; |
| 143 | 143 | |
| 144 | +/* | |
| 145 | + * SO_TXTIME gets a struct sock_txtime with flags being an integer bit | |
| 146 | + * field comprised of these values. | |
| 147 | + */ | |
| 148 | +enum txtime_flags { | |
| 149 | + SOF_TXTIME_DEADLINE_MODE = (1 << 0), | |
| 150 | + SOF_TXTIME_REPORT_ERRORS = (1 << 1), | |
| 151 | + | |
| 152 | + SOF_TXTIME_FLAGS_LAST = SOF_TXTIME_REPORT_ERRORS, | |
| 153 | + SOF_TXTIME_FLAGS_MASK = (SOF_TXTIME_FLAGS_LAST - 1) | | |
| 154 | + SOF_TXTIME_FLAGS_LAST | |
| 155 | +}; | |
| 156 | + | |
| 157 | +struct sock_txtime { | |
| 158 | + clockid_t clockid; /* reference clockid */ | |
| 159 | + __u32 flags; /* as defined by enum txtime_flags */ | |
| 160 | +}; | |
| 161 | + | |
| 144 | 162 | #endif /* _NET_TIMESTAMPING_H */ |
| @@ -18,6 +18,7 @@ enum { · 17 unmodified lines | ||
| 18 | 18 | NETCONFA_PROXY_NEIGH, |
| 19 | 19 | NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, |
| 20 | 20 | NETCONFA_INPUT, |
| 21 | + NETCONFA_BC_FORWARDING, | |
| 21 | 22 | __NETCONFA_MAX |
| 22 | 23 | }; |
| 23 | 24 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) |
| @@ -8,6 +8,7 @@ · 7 unmodified lines | ||
| 8 | 8 | #define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN |
| 9 | 9 | #define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN |
| 10 | 10 | #define NFT_USERDATA_MAXLEN 256 |
| 11 | +#define NFT_OSF_MAXGENRELEN 16 | |
| 11 | 12 | |
| 12 | 13 | /** |
| 13 | 14 | * enum nft_registers - nf_tables registers |
| @@ -921,10 +922,12 @@ enum nft_socket_attributes { · 907 unmodified lines | ||
| 921 | 922 | /* |
| 922 | 923 | * enum nft_socket_keys - nf_tables socket expression keys |
| 923 | 924 | * |
| 924 | − * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option_ | |
| 925 | + * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option | |
| 926 | + * @NFT_SOCKET_MARK: Value of the socket mark | |
| 925 | 927 | */ |
| 926 | 928 | enum nft_socket_keys { |
| 927 | 929 | NFT_SOCKET_TRANSPARENT, |
| 930 | + NFT_SOCKET_MARK, | |
| 928 | 931 | __NFT_SOCKET_MAX |
| 929 | 932 | }; |
| 930 | 933 | #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1) |
| @@ -955,6 +958,7 @@ enum nft_socket_keys { · 24 unmodified lines | ||
| 955 | 958 | * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address) |
| 956 | 959 | * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address) |
| 957 | 960 | * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address) |
| 961 | + * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack | |
| 958 | 962 | */ |
| 959 | 963 | enum nft_ct_keys { |
| 960 | 964 | NFT_CT_STATE, |
| @@ -980,6 +984,7 @@ enum nft_ct_keys { · 19 unmodified lines | ||
| 980 | 984 | NFT_CT_DST_IP, |
| 981 | 985 | NFT_CT_SRC_IP6, |
| 982 | 986 | NFT_CT_DST_IP6, |
| 987 | + NFT_CT_TIMEOUT, | |
| 983 | 988 | __NFT_CT_MAX |
| 984 | 989 | }; |
| 985 | 990 | #define NFT_CT_MAX (__NFT_CT_MAX - 1) |
| @@ -1250,6 +1255,22 @@ enum nft_nat_attributes { · 264 unmodified lines | ||
| 1250 | 1255 | }; |
| 1251 | 1256 | #define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1) |
| 1252 | 1257 | |
| 1258 | +/** | |
| 1259 | + * enum nft_tproxy_attributes - nf_tables tproxy expression netlink attributes | |
| 1260 | + * | |
| 1261 | + * NFTA_TPROXY_FAMILY: Target address family (NLA_U32: nft_registers) | |
| 1262 | + * NFTA_TPROXY_REG_ADDR: Target address register (NLA_U32: nft_registers) | |
| 1263 | + * NFTA_TPROXY_REG_PORT: Target port register (NLA_U32: nft_registers) | |
| 1264 | + */ | |
| 1265 | +enum nft_tproxy_attributes { | |
| 1266 | + NFTA_TPROXY_UNSPEC, | |
| 1267 | + NFTA_TPROXY_FAMILY, | |
| 1268 | + NFTA_TPROXY_REG_ADDR, | |
| 1269 | + NFTA_TPROXY_REG_PORT, | |
| 1270 | + __NFTA_TPROXY_MAX | |
| 1271 | +}; | |
| 1272 | +#define NFTA_TPROXY_MAX (__NFTA_TPROXY_MAX - 1) | |
| 1273 | + | |
| 1253 | 1274 | /** |
| 1254 | 1275 | * enum nft_masq_attributes - nf_tables masquerade expression attributes |
| 1255 | 1276 | * |
| @@ -1392,13 +1413,24 @@ enum nft_ct_helper_attributes { · 136 unmodified lines | ||
| 1392 | 1413 | }; |
| 1393 | 1414 | #define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1) |
| 1394 | 1415 | |
| 1416 | +enum nft_ct_timeout_timeout_attributes { | |
| 1417 | + NFTA_CT_TIMEOUT_UNSPEC, | |
| 1418 | + NFTA_CT_TIMEOUT_L3PROTO, | |
| 1419 | + NFTA_CT_TIMEOUT_L4PROTO, | |
| 1420 | + NFTA_CT_TIMEOUT_DATA, | |
| 1421 | + __NFTA_CT_TIMEOUT_MAX, | |
| 1422 | +}; | |
| 1423 | +#define NFTA_CT_TIMEOUT_MAX (__NFTA_CT_TIMEOUT_MAX - 1) | |
| 1424 | + | |
| 1395 | 1425 | #define NFT_OBJECT_UNSPEC 0 |
| 1396 | 1426 | #define NFT_OBJECT_COUNTER 1 |
| 1397 | 1427 | #define NFT_OBJECT_QUOTA 2 |
| 1398 | 1428 | #define NFT_OBJECT_CT_HELPER 3 |
| 1399 | 1429 | #define NFT_OBJECT_LIMIT 4 |
| 1400 | 1430 | #define NFT_OBJECT_CONNLIMIT 5 |
| 1401 | −#define __NFT_OBJECT_MAX 6 | |
| 1431 | +#define NFT_OBJECT_TUNNEL 6 | |
| 1432 | +#define NFT_OBJECT_CT_TIMEOUT 7 | |
| 1433 | +#define __NFT_OBJECT_MAX 8 | |
| 1402 | 1434 | #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1) |
| 1403 | 1435 | |
| 1404 | 1436 | /** |
| @@ -1461,6 +1493,13 @@ enum nft_flowtable_hook_attributes { · 56 unmodified lines | ||
| 1461 | 1493 | }; |
| 1462 | 1494 | #define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1) |
| 1463 | 1495 | |
| 1496 | +enum nft_osf_attributes { | |
| 1497 | + NFTA_OSF_UNSPEC, | |
| 1498 | + NFTA_OSF_DREG, | |
| 1499 | + __NFTA_OSF_MAX, | |
| 1500 | +}; | |
| 1501 | +#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1) | |
| 1502 | + | |
| 1464 | 1503 | /** |
| 1465 | 1504 | * enum nft_device_attributes - nf_tables device netlink attributes |
| 1466 | 1505 | * |
| @@ -1555,4 +1594,85 @@ enum nft_ng_types { · 88 unmodified lines | ||
| 1555 | 1594 | }; |
| 1556 | 1595 | #define NFT_NG_MAX (__NFT_NG_MAX - 1) |
| 1557 | 1596 | |
| 1597 | +enum nft_tunnel_key_ip_attributes { | |
| 1598 | + NFTA_TUNNEL_KEY_IP_UNSPEC, | |
| 1599 | + NFTA_TUNNEL_KEY_IP_SRC, | |
| 1600 | + NFTA_TUNNEL_KEY_IP_DST, | |
| 1601 | + __NFTA_TUNNEL_KEY_IP_MAX | |
| 1602 | +}; | |
| 1603 | +#define NFTA_TUNNEL_KEY_IP_MAX (__NFTA_TUNNEL_KEY_IP_MAX - 1) | |
| 1604 | + | |
| 1605 | +enum nft_tunnel_ip6_attributes { | |
| 1606 | + NFTA_TUNNEL_KEY_IP6_UNSPEC, | |
| 1607 | + NFTA_TUNNEL_KEY_IP6_SRC, | |
| 1608 | + NFTA_TUNNEL_KEY_IP6_DST, | |
| 1609 | + NFTA_TUNNEL_KEY_IP6_FLOWLABEL, | |
| 1610 | + __NFTA_TUNNEL_KEY_IP6_MAX | |
| 1611 | +}; | |
| 1612 | +#define NFTA_TUNNEL_KEY_IP6_MAX (__NFTA_TUNNEL_KEY_IP6_MAX - 1) | |
| 1613 | + | |
| 1614 | +enum nft_tunnel_opts_attributes { | |
| 1615 | + NFTA_TUNNEL_KEY_OPTS_UNSPEC, | |
| 1616 | + NFTA_TUNNEL_KEY_OPTS_VXLAN, | |
| 1617 | + NFTA_TUNNEL_KEY_OPTS_ERSPAN, | |
| 1618 | + __NFTA_TUNNEL_KEY_OPTS_MAX | |
| 1619 | +}; | |
| 1620 | +#define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1) | |
| 1621 | + | |
| 1622 | +enum nft_tunnel_opts_vxlan_attributes { | |
| 1623 | + NFTA_TUNNEL_KEY_VXLAN_UNSPEC, | |
| 1624 | + NFTA_TUNNEL_KEY_VXLAN_GBP, | |
| 1625 | + __NFTA_TUNNEL_KEY_VXLAN_MAX | |
| 1626 | +}; | |
| 1627 | +#define NFTA_TUNNEL_KEY_VXLAN_MAX (__NFTA_TUNNEL_KEY_VXLAN_MAX - 1) | |
| 1628 | + | |
| 1629 | +enum nft_tunnel_opts_erspan_attributes { | |
| 1630 | + NFTA_TUNNEL_KEY_ERSPAN_UNSPEC, | |
| 1631 | + NFTA_TUNNEL_KEY_ERSPAN_VERSION, | |
| 1632 | + NFTA_TUNNEL_KEY_ERSPAN_V1_INDEX, | |
| 1633 | + NFTA_TUNNEL_KEY_ERSPAN_V2_HWID, | |
| 1634 | + NFTA_TUNNEL_KEY_ERSPAN_V2_DIR, | |
| 1635 | + __NFTA_TUNNEL_KEY_ERSPAN_MAX | |
| 1636 | +}; | |
| 1637 | +#define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1) | |
| 1638 | + | |
| 1639 | +enum nft_tunnel_flags { | |
| 1640 | + NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0), | |
| 1641 | + NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1), | |
| 1642 | + NFT_TUNNEL_F_SEQ_NUMBER = (1 << 2), | |
| 1643 | +}; | |
| 1644 | +#define NFT_TUNNEL_F_MASK (NFT_TUNNEL_F_ZERO_CSUM_TX | \ | |
| 1645 | + NFT_TUNNEL_F_DONT_FRAGMENT | \ | |
| 1646 | + NFT_TUNNEL_F_SEQ_NUMBER) | |
| 1647 | + | |
| 1648 | +enum nft_tunnel_key_attributes { | |
| 1649 | + NFTA_TUNNEL_KEY_UNSPEC, | |
| 1650 | + NFTA_TUNNEL_KEY_ID, | |
| 1651 | + NFTA_TUNNEL_KEY_IP, | |
| 1652 | + NFTA_TUNNEL_KEY_IP6, | |
| 1653 | + NFTA_TUNNEL_KEY_FLAGS, | |
| 1654 | + NFTA_TUNNEL_KEY_TOS, | |
| 1655 | + NFTA_TUNNEL_KEY_TTL, | |
| 1656 | + NFTA_TUNNEL_KEY_SPORT, | |
| 1657 | + NFTA_TUNNEL_KEY_DPORT, | |
| 1658 | + NFTA_TUNNEL_KEY_OPTS, | |
| 1659 | + __NFTA_TUNNEL_KEY_MAX | |
| 1660 | +}; | |
| 1661 | +#define NFTA_TUNNEL_KEY_MAX (__NFTA_TUNNEL_KEY_MAX - 1) | |
| 1662 | + | |
| 1663 | +enum nft_tunnel_keys { | |
| 1664 | + NFT_TUNNEL_PATH, | |
| 1665 | + NFT_TUNNEL_ID, | |
| 1666 | + __NFT_TUNNEL_MAX | |
| 1667 | +}; | |
| 1668 | +#define NFT_TUNNEL_MAX (__NFT_TUNNEL_MAX - 1) | |
| 1669 | + | |
| 1670 | +enum nft_tunnel_attributes { | |
| 1671 | + NFTA_TUNNEL_UNSPEC, | |
| 1672 | + NFTA_TUNNEL_KEY, | |
| 1673 | + NFTA_TUNNEL_DREG, | |
| 1674 | + __NFTA_TUNNEL_MAX | |
| 1675 | +}; | |
| 1676 | +#define NFTA_TUNNEL_MAX (__NFTA_TUNNEL_MAX - 1) | |
| 1677 | + | |
| 1558 | 1678 | #endif /* _LINUX_NF_TABLES_H */ |
| @@ -2,6 +2,8 @@ · 1 unmodified line | ||
| 2 | 2 | #define _NF_OSF_H |
| 3 | 3 | |
| 4 | 4 | #include <linux/types.h> |
| 5 | +#include <linux/ip.h> | |
| 6 | +#include <linux/tcp.h> | |
| 5 | 7 | |
| 6 | 8 | #define MAXGENRELEN 32 |
| 7 | 9 | |
| @@ -16,9 +18,14 @@ · 8 unmodified lines | ||
| 16 | 18 | |
| 17 | 19 | #define NF_OSF_TTL_TRUE 0 /* True ip and fingerprint TTL comparison */ |
| 18 | 20 | |
| 21 | +/* Check if ip TTL is less than fingerprint one */ | |
| 22 | +#define NF_OSF_TTL_LESS 1 | |
| 23 | + | |
| 19 | 24 | /* Do not compare ip and fingerprint TTL at all */ |
| 20 | 25 | #define NF_OSF_TTL_NOCHECK 2 |
| 21 | 26 | |
| 27 | +#define NF_OSF_FLAGMASK (NF_OSF_GENRE | NF_OSF_TTL | \ | |
| 28 | + NF_OSF_LOG | NF_OSF_INVERT) | |
| 22 | 29 | /* Wildcard MSS (kind of). |
| 23 | 30 | * It is used to implement a state machine for the different wildcard values |
| 24 | 31 | * of the MSS and window sizes. |
| @@ -83,4 +90,31 @@ enum iana_options { · 58 unmodified lines | ||
| 83 | 90 | OSFOPT_EMPTY = 255, |
| 84 | 91 | }; |
| 85 | 92 | |
| 93 | +/* Initial window size option state machine: multiple of mss, mtu or | |
| 94 | + * plain numeric value. Can also be made as plain numeric value which | |
| 95 | + * is not a multiple of specified value. | |
| 96 | + */ | |
| 97 | +enum nf_osf_window_size_options { | |
| 98 | + OSF_WSS_PLAIN = 0, | |
| 99 | + OSF_WSS_MSS, | |
| 100 | + OSF_WSS_MTU, | |
| 101 | + OSF_WSS_MODULO, | |
| 102 | + OSF_WSS_MAX, | |
| 103 | +}; | |
| 104 | + | |
| 105 | +enum nf_osf_attr_type { | |
| 106 | + OSF_ATTR_UNSPEC, | |
| 107 | + OSF_ATTR_FINGER, | |
| 108 | + OSF_ATTR_MAX, | |
| 109 | +}; | |
| 110 | + | |
| 111 | +/* | |
| 112 | + * Add/remove fingerprint from the kernel. | |
| 113 | + */ | |
| 114 | +enum nf_osf_msg_types { | |
| 115 | + OSF_MSG_ADD, | |
| 116 | + OSF_MSG_REMOVE, | |
| 117 | + OSF_MSG_MAX, | |
| 118 | +}; | |
| 119 | + | |
| 86 | 120 | #endif /* _NF_OSF_H */ |
| @@ -21,9 +21,7 @@ · 20 unmodified lines | ||
| 21 | 21 | #define _XT_OSF_H |
| 22 | 22 | |
| 23 | 23 | #include <linux/types.h> |
| 24 | −#include <linux/ip.h> | |
| 25 | −#include <linux/tcp.h> | |
| 26 | −#include <linux/netfilter/nf_osf.h> | |
| 24 | +#include <linux/netfilter/nfnetlink_osf.h> | |
| 27 | 25 | |
| 28 | 26 | #define XT_OSF_GENRE NF_OSF_GENRE |
| 29 | 27 | #define XT_OSF_INVERT NF_OSF_INVERT |
| @@ -37,8 +35,7 @@ · 7 unmodified lines | ||
| 37 | 35 | |
| 38 | 36 | #define XT_OSF_TTL_TRUE NF_OSF_TTL_TRUE |
| 39 | 37 | #define XT_OSF_TTL_NOCHECK NF_OSF_TTL_NOCHECK |
| 40 | − | |
| 41 | −#define XT_OSF_TTL_LESS 1 /* Check if ip TTL is less than fingerprint one */ | |
| 38 | +#define XT_OSF_TTL_LESS NF_OSF_TTL_LESS | |
| 42 | 39 | |
| 43 | 40 | #define xt_osf_wc nf_osf_wc |
| 44 | 41 | #define xt_osf_opt nf_osf_opt |
| @@ -47,19 +44,8 @@ · 2 unmodified lines | ||
| 47 | 44 | #define xt_osf_finger nf_osf_finger |
| 48 | 45 | #define xt_osf_nlmsg nf_osf_nlmsg |
| 49 | 46 | |
| 50 | −/* | |
| 51 | − * Add/remove fingerprint from the kernel. | |
| 52 | − */ | |
| 53 | −enum xt_osf_msg_types { | |
| 54 | − OSF_MSG_ADD, | |
| 55 | − OSF_MSG_REMOVE, | |
| 56 | − OSF_MSG_MAX, | |
| 57 | −}; | |
| 58 | − | |
| 59 | −enum xt_osf_attr_type { | |
| 60 | − OSF_ATTR_UNSPEC, | |
| 61 | − OSF_ATTR_FINGER, | |
| 62 | − OSF_ATTR_MAX, | |
| 63 | −}; | |
| 47 | +#define xt_osf_window_size_options nf_osf_window_size_options | |
| 48 | +#define xt_osf_attr_type nf_osf_attr_type | |
| 49 | +#define xt_osf_msg_types nf_osf_msg_types | |
| 64 | 50 | |
| 65 | 51 | #endif /* _XT_OSF_H */ |
| @@ -26,4 +26,15 @@ · 25 unmodified lines | ||
| 26 | 26 | #define NF_BR_BROUTING 5 |
| 27 | 27 | #define NF_BR_NUMHOOKS 6 |
| 28 | 28 | |
| 29 | +enum nf_br_hook_priorities { | |
| 30 | + NF_BR_PRI_FIRST = INT_MIN, | |
| 31 | + NF_BR_PRI_NAT_DST_BRIDGED = -300, | |
| 32 | + NF_BR_PRI_FILTER_BRIDGED = -200, | |
| 33 | + NF_BR_PRI_BRNF = 0, | |
| 34 | + NF_BR_PRI_NAT_DST_OTHER = 100, | |
| 35 | + NF_BR_PRI_FILTER_OTHER = 200, | |
| 36 | + NF_BR_PRI_NAT_SRC = 300, | |
| 37 | + NF_BR_PRI_LAST = INT_MAX, | |
| 38 | +}; | |
| 39 | + | |
| 29 | 40 | #endif /* _UAPI__LINUX_BRIDGE_NETFILTER_H */ |
| @@ -2237,6 +2237,9 @@ enum nl80211_commands { · 2236 unmodified lines | ||
| 2237 | 2237 | * enforced. |
| 2238 | 2238 | * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes |
| 2239 | 2239 | * a flow is assigned on each round of the DRR scheduler. |
| 2240 | + * @NL80211_ATTR_HE_CAPABILITY: HE Capability information element (from | |
| 2241 | + * association request when used with NL80211_CMD_NEW_STATION). Can be set | |
| 2242 | + * only if %NL80211_STA_FLAG_WME is set. | |
| 2240 | 2243 | * |
| 2241 | 2244 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2242 | 2245 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| @@ -2677,6 +2680,8 @@ enum nl80211_attrs { · 434 unmodified lines | ||
| 2677 | 2680 | NL80211_ATTR_TXQ_MEMORY_LIMIT, |
| 2678 | 2681 | NL80211_ATTR_TXQ_QUANTUM, |
| 2679 | 2682 | |
| 2683 | + NL80211_ATTR_HE_CAPABILITY, | |
| 2684 | + | |
| 2680 | 2685 | /* add attributes here, update the policy in nl80211.c */ |
| 2681 | 2686 | |
| 2682 | 2687 | __NL80211_ATTR_AFTER_LAST, |
| @@ -2726,7 +2731,8 @@ enum nl80211_attrs { · 43 unmodified lines | ||
| 2726 | 2731 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 |
| 2727 | 2732 | #define NL80211_HT_CAPABILITY_LEN 26 |
| 2728 | 2733 | #define NL80211_VHT_CAPABILITY_LEN 12 |
| 2729 | − | |
| 2734 | +#define NL80211_HE_MIN_CAPABILITY_LEN 16 | |
| 2735 | +#define NL80211_HE_MAX_CAPABILITY_LEN 51 | |
| 2730 | 2736 | #define NL80211_MAX_NR_CIPHER_SUITES 5 |
| 2731 | 2737 | #define NL80211_MAX_NR_AKM_SUITES 2 |
| 2732 | 2738 | |
| @@ -2853,6 +2859,38 @@ struct nl80211_sta_flag_update { · 120 unmodified lines | ||
| 2853 | 2859 | __u32 set; |
| 2854 | 2860 | } __attribute__((packed)); |
| 2855 | 2861 | |
| 2862 | +/** | |
| 2863 | + * enum nl80211_he_gi - HE guard interval | |
| 2864 | + * @NL80211_RATE_INFO_HE_GI_0_8: 0.8 usec | |
| 2865 | + * @NL80211_RATE_INFO_HE_GI_1_6: 1.6 usec | |
| 2866 | + * @NL80211_RATE_INFO_HE_GI_3_2: 3.2 usec | |
| 2867 | + */ | |
| 2868 | +enum nl80211_he_gi { | |
| 2869 | + NL80211_RATE_INFO_HE_GI_0_8, | |
| 2870 | + NL80211_RATE_INFO_HE_GI_1_6, | |
| 2871 | + NL80211_RATE_INFO_HE_GI_3_2, | |
| 2872 | +}; | |
| 2873 | + | |
| 2874 | +/** | |
| 2875 | + * enum nl80211_he_ru_alloc - HE RU allocation values | |
| 2876 | + * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation | |
| 2877 | + * @NL80211_RATE_INFO_HE_RU_ALLOC_52: 52-tone RU allocation | |
| 2878 | + * @NL80211_RATE_INFO_HE_RU_ALLOC_106: 106-tone RU allocation | |
| 2879 | + * @NL80211_RATE_INFO_HE_RU_ALLOC_242: 242-tone RU allocation | |
| 2880 | + * @NL80211_RATE_INFO_HE_RU_ALLOC_484: 484-tone RU allocation | |
| 2881 | + * @NL80211_RATE_INFO_HE_RU_ALLOC_996: 996-tone RU allocation | |
| 2882 | + * @NL80211_RATE_INFO_HE_RU_ALLOC_2x996: 2x996-tone RU allocation | |
| 2883 | + */ | |
| 2884 | +enum nl80211_he_ru_alloc { | |
| 2885 | + NL80211_RATE_INFO_HE_RU_ALLOC_26, | |
| 2886 | + NL80211_RATE_INFO_HE_RU_ALLOC_52, | |
| 2887 | + NL80211_RATE_INFO_HE_RU_ALLOC_106, | |
| 2888 | + NL80211_RATE_INFO_HE_RU_ALLOC_242, | |
| 2889 | + NL80211_RATE_INFO_HE_RU_ALLOC_484, | |
| 2890 | + NL80211_RATE_INFO_HE_RU_ALLOC_996, | |
| 2891 | + NL80211_RATE_INFO_HE_RU_ALLOC_2x996, | |
| 2892 | +}; | |
| 2893 | + | |
| 2856 | 2894 | /** |
| 2857 | 2895 | * enum nl80211_rate_info - bitrate information |
| 2858 | 2896 | * |
| @@ -2885,6 +2923,13 @@ struct nl80211_sta_flag_update { · 26 unmodified lines | ||
| 2885 | 2923 | * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is |
| 2886 | 2924 | * a legacy rate and will be reported as the actual bitrate, i.e. |
| 2887 | 2925 | * a quarter of the base (20 MHz) rate |
| 2926 | + * @NL80211_RATE_INFO_HE_MCS: HE MCS index (u8, 0-11) | |
| 2927 | + * @NL80211_RATE_INFO_HE_NSS: HE NSS value (u8, 1-8) | |
| 2928 | + * @NL80211_RATE_INFO_HE_GI: HE guard interval identifier | |
| 2929 | + * (u8, see &enum nl80211_he_gi) | |
| 2930 | + * @NL80211_RATE_INFO_HE_DCM: HE DCM value (u8, 0/1) | |
| 2931 | + * @NL80211_RATE_INFO_RU_ALLOC: HE RU allocation, if not present then | |
| 2932 | + * non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc) | |
| 2888 | 2933 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use |
| 2889 | 2934 | */ |
| 2890 | 2935 | enum nl80211_rate_info { |
| @@ -2901,6 +2946,11 @@ enum nl80211_rate_info { · 10 unmodified lines | ||
| 2901 | 2946 | NL80211_RATE_INFO_160_MHZ_WIDTH, |
| 2902 | 2947 | NL80211_RATE_INFO_10_MHZ_WIDTH, |
| 2903 | 2948 | NL80211_RATE_INFO_5_MHZ_WIDTH, |
| 2949 | + NL80211_RATE_INFO_HE_MCS, | |
| 2950 | + NL80211_RATE_INFO_HE_NSS, | |
| 2951 | + NL80211_RATE_INFO_HE_GI, | |
| 2952 | + NL80211_RATE_INFO_HE_DCM, | |
| 2953 | + NL80211_RATE_INFO_HE_RU_ALLOC, | |
| 2904 | 2954 | |
| 2905 | 2955 | /* keep last */ |
| 2906 | 2956 | __NL80211_RATE_INFO_AFTER_LAST, |
| @@ -3166,6 +3216,38 @@ enum nl80211_mpath_info { · 259 unmodified lines | ||
| 3166 | 3216 | NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1 |
| 3167 | 3217 | }; |
| 3168 | 3218 | |
| 3219 | +/** | |
| 3220 | + * enum nl80211_band_iftype_attr - Interface type data attributes | |
| 3221 | + * | |
| 3222 | + * @__NL80211_BAND_IFTYPE_ATTR_INVALID: attribute number 0 is reserved | |
| 3223 | + * @NL80211_BAND_IFTYPE_ATTR_IFTYPES: nested attribute containing a flag attribute | |
| 3224 | + * for each interface type that supports the band data | |
| 3225 | + * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC: HE MAC capabilities as in HE | |
| 3226 | + * capabilities IE | |
| 3227 | + * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY: HE PHY capabilities as in HE | |
| 3228 | + * capabilities IE | |
| 3229 | + * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET: HE supported NSS/MCS as in HE | |
| 3230 | + * capabilities IE | |
| 3231 | + * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as | |
| 3232 | + * defined in HE capabilities IE | |
| 3233 | + * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently | |
| 3234 | + * defined | |
| 3235 | + * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use | |
| 3236 | + */ | |
| 3237 | +enum nl80211_band_iftype_attr { | |
| 3238 | + __NL80211_BAND_IFTYPE_ATTR_INVALID, | |
| 3239 | + | |
| 3240 | + NL80211_BAND_IFTYPE_ATTR_IFTYPES, | |
| 3241 | + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC, | |
| 3242 | + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY, | |
| 3243 | + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET, | |
| 3244 | + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE, | |
| 3245 | + | |
| 3246 | + /* keep last */ | |
| 3247 | + __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST, | |
| 3248 | + NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1 | |
| 3249 | +}; | |
| 3250 | + | |
| 3169 | 3251 | /** |
| 3170 | 3252 | * enum nl80211_band_attr - band attributes |
| 3171 | 3253 | * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved |
| @@ -3181,6 +3263,8 @@ enum nl80211_mpath_info { · 9 unmodified lines | ||
| 3181 | 3263 | * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as |
| 3182 | 3264 | * defined in 802.11ac |
| 3183 | 3265 | * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE |
| 3266 | + * @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using | |
| 3267 | + * attributes from &enum nl80211_band_iftype_attr | |
| 3184 | 3268 | * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined |
| 3185 | 3269 | * @__NL80211_BAND_ATTR_AFTER_LAST: internal use |
| 3186 | 3270 | */ |
| @@ -3196,6 +3280,7 @@ enum nl80211_band_attr { · 9 unmodified lines | ||
| 3196 | 3280 | |
| 3197 | 3281 | NL80211_BAND_ATTR_VHT_MCS_SET, |
| 3198 | 3282 | NL80211_BAND_ATTR_VHT_CAPA, |
| 3283 | + NL80211_BAND_ATTR_IFTYPE_DATA, | |
| 3199 | 3284 | |
| 3200 | 3285 | /* keep last */ |
| 3201 | 3286 | __NL80211_BAND_ATTR_AFTER_LAST, |
| @@ -5133,6 +5218,11 @@ enum nl80211_feature_flags { · 1931 unmodified lines | ||
| 5133 | 5218 | * support to nl80211. |
| 5134 | 5219 | * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate |
| 5135 | 5220 | * TXQs. |
| 5221 | + * @NL80211_EXT_FEATURE_SCAN_RANDOM_SN: Driver/device supports randomizing the | |
| 5222 | + * SN in probe request frames if requested by %NL80211_SCAN_FLAG_RANDOM_SN. | |
| 5223 | + * @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data | |
| 5224 | + * except for supported rates from the probe request content if requested | |
| 5225 | + * by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag. | |
| 5136 | 5226 | * |
| 5137 | 5227 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 5138 | 5228 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| @@ -5167,6 +5257,8 @@ enum nl80211_ext_feature_index { · 28 unmodified lines | ||
| 5167 | 5257 | NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211, |
| 5168 | 5258 | NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT, |
| 5169 | 5259 | NL80211_EXT_FEATURE_TXQS, |
| 5260 | + NL80211_EXT_FEATURE_SCAN_RANDOM_SN, | |
| 5261 | + NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT, | |
| 5170 | 5262 | |
| 5171 | 5263 | /* add new features before the definition below */ |
| 5172 | 5264 | NUM_NL80211_EXT_FEATURES, |
| @@ -5272,6 +5364,12 @@ enum nl80211_timeout_reason { · 99 unmodified lines | ||
| 5272 | 5364 | * possible scan results. This flag hints the driver to use the best |
| 5273 | 5365 | * possible scan configuration to improve the accuracy in scanning. |
| 5274 | 5366 | * Latency and power use may get impacted with this flag. |
| 5367 | + * @NL80211_SCAN_FLAG_RANDOM_SN: randomize the sequence number in probe | |
| 5368 | + * request frames from this scan to avoid correlation/tracking being | |
| 5369 | + * possible. | |
| 5370 | + * @NL80211_SCAN_FLAG_MIN_PREQ_CONTENT: minimize probe request content to | |
| 5371 | + * only have supported rates and no additional capabilities (unless | |
| 5372 | + * added by userspace explicitly.) | |
| 5275 | 5373 | */ |
| 5276 | 5374 | enum nl80211_scan_flags { |
| 5277 | 5375 | NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, |
| @@ -5285,6 +5383,8 @@ enum nl80211_scan_flags { · 7 unmodified lines | ||
| 5285 | 5383 | NL80211_SCAN_FLAG_LOW_SPAN = 1<<8, |
| 5286 | 5384 | NL80211_SCAN_FLAG_LOW_POWER = 1<<9, |
| 5287 | 5385 | NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10, |
| 5386 | + NL80211_SCAN_FLAG_RANDOM_SN = 1<<11, | |
| 5387 | + NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12, | |
| 5288 | 5388 | }; |
| 5289 | 5389 | |
| 5290 | 5390 | /** |
| @@ -840,6 +840,8 @@ struct ovs_action_push_eth { · 839 unmodified lines | ||
| 840 | 840 | * @OVS_ACTION_ATTR_POP_NSH: pop the outermost NSH header off the packet. |
| 841 | 841 | * @OVS_ACTION_ATTR_METER: Run packet through a meter, which may drop the |
| 842 | 842 | * packet, or modify the packet (e.g., change the DSCP field). |
| 843 | + * @OVS_ACTION_ATTR_CLONE: make a copy of the packet and execute a list of | |
| 844 | + * actions without affecting the original packet and key. | |
| 843 | 845 | * |
| 844 | 846 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all |
| 845 | 847 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment |
| @@ -873,6 +875,7 @@ enum ovs_action_attr { · 27 unmodified lines | ||
| 873 | 875 | OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */ |
| 874 | 876 | OVS_ACTION_ATTR_POP_NSH, /* No argument. */ |
| 875 | 877 | OVS_ACTION_ATTR_METER, /* u32 meter ID. */ |
| 878 | + OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */ | |
| 876 | 879 | |
| 877 | 880 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted |
| 878 | 881 | * from userspace. */ |
| @@ -636,6 +636,7 @@ · 635 unmodified lines | ||
| 636 | 636 | #define PCI_EXP_DEVCAP2_OBFF_MASK 0x000c0000 /* OBFF support mechanism */ |
| 637 | 637 | #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */ |
| 638 | 638 | #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 /* Re-use WAKE# for OBFF */ |
| 639 | +#define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000 /* End-End TLP Prefix */ | |
| 639 | 640 | #define PCI_EXP_DEVCTL2 40 /* Device Control 2 */ |
| 640 | 641 | #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */ |
| 641 | 642 | #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 /* Completion Timeout Disable */ |
| @@ -960,8 +961,9 @@ · 318 unmodified lines | ||
| 960 | 961 | #define PCI_REBAR_CTRL 8 /* control register */ |
| 961 | 962 | #define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */ |
| 962 | 963 | #define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 /* # of resizable BARs */ |
| 963 | −#define PCI_REBAR_CTRL_NBAR_SHIFT 5 /* shift for # of BARs */ | |
| 964 | +#define PCI_REBAR_CTRL_NBAR_SHIFT 5 /* shift for # of BARs */ | |
| 964 | 965 | #define PCI_REBAR_CTRL_BAR_SIZE 0x00001F00 /* BAR size */ |
| 966 | +#define PCI_REBAR_CTRL_BAR_SHIFT 8 /* shift for BAR size */ | |
| 965 | 967 | |
| 966 | 968 | /* Dynamic Power Allocation */ |
| 967 | 969 | #define PCI_DPA_CAP 4 /* capability register */ |
| @@ -16,5 +16,8 @@ · 15 unmodified lines | ||
| 16 | 16 | #define PCITEST_WRITE _IOW('P', 0x4, unsigned long) |
| 17 | 17 | #define PCITEST_READ _IOW('P', 0x5, unsigned long) |
| 18 | 18 | #define PCITEST_COPY _IOW('P', 0x6, unsigned long) |
| 19 | +#define PCITEST_MSIX _IOW('P', 0x7, int) | |
| 20 | +#define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int) | |
| 21 | +#define PCITEST_GET_IRQTYPE _IO('P', 0x9) | |
| 19 | 22 | |
| 20 | 23 | #endif /* __UAPI_LINUX_PCITEST_H */ |
| @@ -143,6 +143,8 @@ enum perf_event_sample_format { · 142 unmodified lines | ||
| 143 | 143 | PERF_SAMPLE_PHYS_ADDR = 1U << 19, |
| 144 | 144 | |
| 145 | 145 | PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */ |
| 146 | + | |
| 147 | + __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, | |
| 146 | 148 | }; |
| 147 | 149 | |
| 148 | 150 | /* |
| @@ -45,6 +45,7 @@ enum { · 44 unmodified lines | ||
| 45 | 45 | * the skb and act like everything |
| 46 | 46 | * is alright. |
| 47 | 47 | */ |
| 48 | +#define TC_ACT_VALUE_MAX TC_ACT_TRAP | |
| 48 | 49 | |
| 49 | 50 | /* There is a special kind of actions called "extended actions", |
| 50 | 51 | * which need a value parameter. These have a local opcode located in |
| @@ -55,11 +56,12 @@ enum { · 4 unmodified lines | ||
| 55 | 56 | #define __TC_ACT_EXT_SHIFT 28 |
| 56 | 57 | #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT) |
| 57 | 58 | #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1) |
| 58 | −#define TC_ACT_EXT_CMP(combined, opcode) \ | |
| 59 | − (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode) | |
| 59 | +#define TC_ACT_EXT_OPCODE(combined) ((combined) & (~TC_ACT_EXT_VAL_MASK)) | |
| 60 | +#define TC_ACT_EXT_CMP(combined, opcode) (TC_ACT_EXT_OPCODE(combined) == opcode) | |
| 60 | 61 | |
| 61 | 62 | #define TC_ACT_JUMP __TC_ACT_EXT(1) |
| 62 | 63 | #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2) |
| 64 | +#define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN | |
| 63 | 65 | |
| 64 | 66 | /* Action type identifiers*/ |
| 65 | 67 | enum { |
| @@ -469,11 +471,46 @@ enum { · 403 unmodified lines | ||
| 469 | 471 | TCA_FLOWER_KEY_IP_TTL, /* u8 */ |
| 470 | 472 | TCA_FLOWER_KEY_IP_TTL_MASK, /* u8 */ |
| 471 | 473 | |
| 474 | + TCA_FLOWER_KEY_CVLAN_ID, /* be16 */ | |
| 475 | + TCA_FLOWER_KEY_CVLAN_PRIO, /* u8 */ | |
| 476 | + TCA_FLOWER_KEY_CVLAN_ETH_TYPE, /* be16 */ | |
| 477 | + | |
| 478 | + TCA_FLOWER_KEY_ENC_IP_TOS, /* u8 */ | |
| 479 | + TCA_FLOWER_KEY_ENC_IP_TOS_MASK, /* u8 */ | |
| 480 | + TCA_FLOWER_KEY_ENC_IP_TTL, /* u8 */ | |
| 481 | + TCA_FLOWER_KEY_ENC_IP_TTL_MASK, /* u8 */ | |
| 482 | + | |
| 483 | + TCA_FLOWER_KEY_ENC_OPTS, | |
| 484 | + TCA_FLOWER_KEY_ENC_OPTS_MASK, | |
| 485 | + | |
| 472 | 486 | __TCA_FLOWER_MAX, |
| 473 | 487 | }; |
| 474 | 488 | |
| 475 | 489 | #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) |
| 476 | 490 | |
| 491 | +enum { | |
| 492 | + TCA_FLOWER_KEY_ENC_OPTS_UNSPEC, | |
| 493 | + TCA_FLOWER_KEY_ENC_OPTS_GENEVE, /* Nested | |
| 494 | + * TCA_FLOWER_KEY_ENC_OPT_GENEVE_ | |
| 495 | + * attributes | |
| 496 | + */ | |
| 497 | + __TCA_FLOWER_KEY_ENC_OPTS_MAX, | |
| 498 | +}; | |
| 499 | + | |
| 500 | +#define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1) | |
| 501 | + | |
| 502 | +enum { | |
| 503 | + TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC, | |
| 504 | + TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS, /* u16 */ | |
| 505 | + TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */ | |
| 506 | + TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */ | |
| 507 | + | |
| 508 | + __TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX, | |
| 509 | +}; | |
| 510 | + | |
| 511 | +#define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \ | |
| 512 | + (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1) | |
| 513 | + | |
| 477 | 514 | enum { |
| 478 | 515 | TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), |
| 479 | 516 | TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), |
| @@ -124,6 +124,21 @@ struct tc_fifo_qopt { · 123 unmodified lines | ||
| 124 | 124 | __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */ |
| 125 | 125 | }; |
| 126 | 126 | |
| 127 | +/* SKBPRIO section */ | |
| 128 | + | |
| 129 | +/* | |
| 130 | + * Priorities go from zero to (SKBPRIO_MAX_PRIORITY - 1). | |
| 131 | + * SKBPRIO_MAX_PRIORITY should be at least 64 in order for skbprio to be able | |
| 132 | + * to map one to one the DS field of IPV4 and IPV6 headers. | |
| 133 | + * Memory allocation grows linearly with SKBPRIO_MAX_PRIORITY. | |
| 134 | + */ | |
| 135 | + | |
| 136 | +#define SKBPRIO_MAX_PRIORITY 64 | |
| 137 | + | |
| 138 | +struct tc_skbprio_qopt { | |
| 139 | + __u32 limit; /* Queue length in packets. */ | |
| 140 | +}; | |
| 141 | + | |
| 127 | 142 | /* PRIO section */ |
| 128 | 143 | |
| 129 | 144 | #define TCQ_PRIO_BANDS 16 |
| @@ -539,6 +554,7 @@ enum { · 409 unmodified lines | ||
| 539 | 554 | TCA_NETEM_LATENCY64, |
| 540 | 555 | TCA_NETEM_JITTER64, |
| 541 | 556 | TCA_NETEM_SLOT, |
| 557 | + TCA_NETEM_SLOT_DIST, | |
| 542 | 558 | __TCA_NETEM_MAX, |
| 543 | 559 | }; |
| 544 | 560 | |
| @@ -581,6 +597,8 @@ struct tc_netem_slot { · 36 unmodified lines | ||
| 581 | 597 | __s64 max_delay; |
| 582 | 598 | __s32 max_packets; |
| 583 | 599 | __s32 max_bytes; |
| 600 | + __s64 dist_delay; /* nsec */ | |
| 601 | + __s64 dist_jitter; /* nsec */ | |
| 584 | 602 | }; |
| 585 | 603 | |
| 586 | 604 | enum { |
| @@ -934,4 +952,136 @@ enum { · 347 unmodified lines | ||
| 934 | 952 | |
| 935 | 953 | #define TCA_CBS_MAX (__TCA_CBS_MAX - 1) |
| 936 | 954 | |
| 955 | + | |
| 956 | +/* ETF */ | |
| 957 | +struct tc_etf_qopt { | |
| 958 | + __s32 delta; | |
| 959 | + __s32 clockid; | |
| 960 | + __u32 flags; | |
| 961 | +#define TC_ETF_DEADLINE_MODE_ON BIT(0) | |
| 962 | +#define TC_ETF_OFFLOAD_ON BIT(1) | |
| 963 | +}; | |
| 964 | + | |
| 965 | +enum { | |
| 966 | + TCA_ETF_UNSPEC, | |
| 967 | + TCA_ETF_PARMS, | |
| 968 | + __TCA_ETF_MAX, | |
| 969 | +}; | |
| 970 | + | |
| 971 | +#define TCA_ETF_MAX (__TCA_ETF_MAX - 1) | |
| 972 | + | |
| 973 | + | |
| 974 | +/* CAKE */ | |
| 975 | +enum { | |
| 976 | + TCA_CAKE_UNSPEC, | |
| 977 | + TCA_CAKE_PAD, | |
| 978 | + TCA_CAKE_BASE_RATE64, | |
| 979 | + TCA_CAKE_DIFFSERV_MODE, | |
| 980 | + TCA_CAKE_ATM, | |
| 981 | + TCA_CAKE_FLOW_MODE, | |
| 982 | + TCA_CAKE_OVERHEAD, | |
| 983 | + TCA_CAKE_RTT, | |
| 984 | + TCA_CAKE_TARGET, | |
| 985 | + TCA_CAKE_AUTORATE, | |
| 986 | + TCA_CAKE_MEMORY, | |
| 987 | + TCA_CAKE_NAT, | |
| 988 | + TCA_CAKE_RAW, | |
| 989 | + TCA_CAKE_WASH, | |
| 990 | + TCA_CAKE_MPU, | |
| 991 | + TCA_CAKE_INGRESS, | |
| 992 | + TCA_CAKE_ACK_FILTER, | |
| 993 | + TCA_CAKE_SPLIT_GSO, | |
| 994 | + __TCA_CAKE_MAX | |
| 995 | +}; | |
| 996 | +#define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1) | |
| 997 | + | |
| 998 | +enum { | |
| 999 | + __TCA_CAKE_STATS_INVALID, | |
| 1000 | + TCA_CAKE_STATS_PAD, | |
| 1001 | + TCA_CAKE_STATS_CAPACITY_ESTIMATE64, | |
| 1002 | + TCA_CAKE_STATS_MEMORY_LIMIT, | |
| 1003 | + TCA_CAKE_STATS_MEMORY_USED, | |
| 1004 | + TCA_CAKE_STATS_AVG_NETOFF, | |
| 1005 | + TCA_CAKE_STATS_MIN_NETLEN, | |
| 1006 | + TCA_CAKE_STATS_MAX_NETLEN, | |
| 1007 | + TCA_CAKE_STATS_MIN_ADJLEN, | |
| 1008 | + TCA_CAKE_STATS_MAX_ADJLEN, | |
| 1009 | + TCA_CAKE_STATS_TIN_STATS, | |
| 1010 | + TCA_CAKE_STATS_DEFICIT, | |
| 1011 | + TCA_CAKE_STATS_COBALT_COUNT, | |
| 1012 | + TCA_CAKE_STATS_DROPPING, | |
| 1013 | + TCA_CAKE_STATS_DROP_NEXT_US, | |
| 1014 | + TCA_CAKE_STATS_P_DROP, | |
| 1015 | + TCA_CAKE_STATS_BLUE_TIMER_US, | |
| 1016 | + __TCA_CAKE_STATS_MAX | |
| 1017 | +}; | |
| 1018 | +#define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1) | |
| 1019 | + | |
| 1020 | +enum { | |
| 1021 | + __TCA_CAKE_TIN_STATS_INVALID, | |
| 1022 | + TCA_CAKE_TIN_STATS_PAD, | |
| 1023 | + TCA_CAKE_TIN_STATS_SENT_PACKETS, | |
| 1024 | + TCA_CAKE_TIN_STATS_SENT_BYTES64, | |
| 1025 | + TCA_CAKE_TIN_STATS_DROPPED_PACKETS, | |
| 1026 | + TCA_CAKE_TIN_STATS_DROPPED_BYTES64, | |
| 1027 | + TCA_CAKE_TIN_STATS_ACKS_DROPPED_PACKETS, | |
| 1028 | + TCA_CAKE_TIN_STATS_ACKS_DROPPED_BYTES64, | |
| 1029 | + TCA_CAKE_TIN_STATS_ECN_MARKED_PACKETS, | |
| 1030 | + TCA_CAKE_TIN_STATS_ECN_MARKED_BYTES64, | |
| 1031 | + TCA_CAKE_TIN_STATS_BACKLOG_PACKETS, | |
| 1032 | + TCA_CAKE_TIN_STATS_BACKLOG_BYTES, | |
| 1033 | + TCA_CAKE_TIN_STATS_THRESHOLD_RATE64, | |
| 1034 | + TCA_CAKE_TIN_STATS_TARGET_US, | |
| 1035 | + TCA_CAKE_TIN_STATS_INTERVAL_US, | |
| 1036 | + TCA_CAKE_TIN_STATS_WAY_INDIRECT_HITS, | |
| 1037 | + TCA_CAKE_TIN_STATS_WAY_MISSES, | |
| 1038 | + TCA_CAKE_TIN_STATS_WAY_COLLISIONS, | |
| 1039 | + TCA_CAKE_TIN_STATS_PEAK_DELAY_US, | |
| 1040 | + TCA_CAKE_TIN_STATS_AVG_DELAY_US, | |
| 1041 | + TCA_CAKE_TIN_STATS_BASE_DELAY_US, | |
| 1042 | + TCA_CAKE_TIN_STATS_SPARSE_FLOWS, | |
| 1043 | + TCA_CAKE_TIN_STATS_BULK_FLOWS, | |
| 1044 | + TCA_CAKE_TIN_STATS_UNRESPONSIVE_FLOWS, | |
| 1045 | + TCA_CAKE_TIN_STATS_MAX_SKBLEN, | |
| 1046 | + TCA_CAKE_TIN_STATS_FLOW_QUANTUM, | |
| 1047 | + __TCA_CAKE_TIN_STATS_MAX | |
| 1048 | +}; | |
| 1049 | +#define TCA_CAKE_TIN_STATS_MAX (__TCA_CAKE_TIN_STATS_MAX - 1) | |
| 1050 | +#define TC_CAKE_MAX_TINS (8) | |
| 1051 | + | |
| 1052 | +enum { | |
| 1053 | + CAKE_FLOW_NONE = 0, | |
| 1054 | + CAKE_FLOW_SRC_IP, | |
| 1055 | + CAKE_FLOW_DST_IP, | |
| 1056 | + CAKE_FLOW_HOSTS, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_DST_IP */ | |
| 1057 | + CAKE_FLOW_FLOWS, | |
| 1058 | + CAKE_FLOW_DUAL_SRC, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_FLOWS */ | |
| 1059 | + CAKE_FLOW_DUAL_DST, /* = CAKE_FLOW_DST_IP | CAKE_FLOW_FLOWS */ | |
| 1060 | + CAKE_FLOW_TRIPLE, /* = CAKE_FLOW_HOSTS | CAKE_FLOW_FLOWS */ | |
| 1061 | + CAKE_FLOW_MAX, | |
| 1062 | +}; | |
| 1063 | + | |
| 1064 | +enum { | |
| 1065 | + CAKE_DIFFSERV_DIFFSERV3 = 0, | |
| 1066 | + CAKE_DIFFSERV_DIFFSERV4, | |
| 1067 | + CAKE_DIFFSERV_DIFFSERV8, | |
| 1068 | + CAKE_DIFFSERV_BESTEFFORT, | |
| 1069 | + CAKE_DIFFSERV_PRECEDENCE, | |
| 1070 | + CAKE_DIFFSERV_MAX | |
| 1071 | +}; | |
| 1072 | + | |
| 1073 | +enum { | |
| 1074 | + CAKE_ACK_NONE = 0, | |
| 1075 | + CAKE_ACK_FILTER, | |
| 1076 | + CAKE_ACK_AGGRESSIVE, | |
| 1077 | + CAKE_ACK_MAX | |
| 1078 | +}; | |
| 1079 | + | |
| 1080 | +enum { | |
| 1081 | + CAKE_ATM_NONE = 0, | |
| 1082 | + CAKE_ATM_ATM, | |
| 1083 | + CAKE_ATM_PTM, | |
| 1084 | + CAKE_ATM_MAX | |
| 1085 | +}; | |
| 1086 | + | |
| 937 | 1087 | #endif |
| @@ -93,8 +93,8 @@ enum { · 92 unmodified lines | ||
| 93 | 93 | PMU_HEATHROW_BASED, /* PowerBook G3 series */ |
| 94 | 94 | PMU_PADDINGTON_BASED, /* 1999 PowerBook G3 */ |
| 95 | 95 | PMU_KEYLARGO_BASED, /* Core99 motherboard (PMU99) */ |
| 96 | − PMU_68K_V1, /* 68K PMU, version 1 */ | |
| 97 | − PMU_68K_V2, /* 68K PMU, version 2 */ | |
| 96 | + PMU_68K_V1, /* Unused/deprecated */ | |
| 97 | + PMU_68K_V2, /* Unused/deprecated */ | |
| 98 | 98 | }; |
| 99 | 99 | |
| 100 | 100 | /* PMU PMU_POWER_EVENTS commands */ |
| @@ -68,7 +68,7 @@ struct ppp_option_data { · 67 unmodified lines | ||
| 68 | 68 | struct pppol2tp_ioc_stats { |
| 69 | 69 | __u16 tunnel_id; /* redundant */ |
| 70 | 70 | __u16 session_id; /* if zero, get tunnel stats */ |
| 71 | − __u32 using_ipsec:1; /* valid only for session_id == 0 */ | |
| 71 | + __u32 using_ipsec:1; | |
| 72 | 72 | __aligned_u64 tx_packets; |
| 73 | 73 | __aligned_u64 tx_bytes; |
| 74 | 74 | __aligned_u64 tx_errors; |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */ |
| 2 | 2 | /* |
| 3 | − * Copyright (c) 2008 Oracle. All rights reserved. | |
| 3 | + * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved. | |
| 4 | 4 | * |
| 5 | 5 | * This software is available to you under a choice of one of two |
| 6 | 6 | * licenses. You may choose to be licensed under the terms of the GNU |
| @@ -118,7 +118,17 @@ · 111 unmodified lines | ||
| 118 | 118 | #define RDS_INFO_IB_CONNECTIONS 10008 |
| 119 | 119 | #define RDS_INFO_CONNECTION_STATS 10009 |
| 120 | 120 | #define RDS_INFO_IWARP_CONNECTIONS 10010 |
| 121 | −#define RDS_INFO_LAST 10010 | |
| 121 | + | |
| 122 | +/* PF_RDS6 options */ | |
| 123 | +#define RDS6_INFO_CONNECTIONS 10011 | |
| 124 | +#define RDS6_INFO_SEND_MESSAGES 10012 | |
| 125 | +#define RDS6_INFO_RETRANS_MESSAGES 10013 | |
| 126 | +#define RDS6_INFO_RECV_MESSAGES 10014 | |
| 127 | +#define RDS6_INFO_SOCKETS 10015 | |
| 128 | +#define RDS6_INFO_TCP_SOCKETS 10016 | |
| 129 | +#define RDS6_INFO_IB_CONNECTIONS 10017 | |
| 130 | + | |
| 131 | +#define RDS_INFO_LAST 10017 | |
| 122 | 132 | |
| 123 | 133 | struct rds_info_counter { |
| 124 | 134 | __u8 name[32]; |
| @@ -140,6 +150,15 @@ struct rds_info_connection { · 15 unmodified lines | ||
| 140 | 150 | __u8 flags; |
| 141 | 151 | } __attribute__((packed)); |
| 142 | 152 | |
| 153 | +struct rds6_info_connection { | |
| 154 | + __u64 next_tx_seq; | |
| 155 | + __u64 next_rx_seq; | |
| 156 | + struct in6_addr laddr; | |
| 157 | + struct in6_addr faddr; | |
| 158 | + __u8 transport[TRANSNAMSIZ]; /* null term ascii */ | |
| 159 | + __u8 flags; | |
| 160 | +} __attribute__((packed)); | |
| 161 | + | |
| 143 | 162 | #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 |
| 144 | 163 | #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 |
| 145 | 164 | |
| @@ -153,6 +172,17 @@ struct rds_info_message { · 7 unmodified lines | ||
| 153 | 172 | __u8 flags; |
| 154 | 173 | } __attribute__((packed)); |
| 155 | 174 | |
| 175 | +struct rds6_info_message { | |
| 176 | + __u64 seq; | |
| 177 | + __u32 len; | |
| 178 | + struct in6_addr laddr; | |
| 179 | + struct in6_addr faddr; | |
| 180 | + __be16 lport; | |
| 181 | + __be16 fport; | |
| 182 | + __u8 flags; | |
| 183 | + __u8 tos; | |
| 184 | +} __attribute__((packed)); | |
| 185 | + | |
| 156 | 186 | struct rds_info_socket { |
| 157 | 187 | __u32 sndbuf; |
| 158 | 188 | __be32 bound_addr; |
| @@ -163,6 +193,16 @@ struct rds_info_socket { · 4 unmodified lines | ||
| 163 | 193 | __u64 inum; |
| 164 | 194 | } __attribute__((packed)); |
| 165 | 195 | |
| 196 | +struct rds6_info_socket { | |
| 197 | + __u32 sndbuf; | |
| 198 | + struct in6_addr bound_addr; | |
| 199 | + struct in6_addr connected_addr; | |
| 200 | + __be16 bound_port; | |
| 201 | + __be16 connected_port; | |
| 202 | + __u32 rcvbuf; | |
| 203 | + __u64 inum; | |
| 204 | +} __attribute__((packed)); | |
| 205 | + | |
| 166 | 206 | struct rds_info_tcp_socket { |
| 167 | 207 | __be32 local_addr; |
| 168 | 208 | __be16 local_port; |
| @@ -175,6 +215,18 @@ struct rds_info_tcp_socket { · 6 unmodified lines | ||
| 175 | 215 | __u32 last_seen_una; |
| 176 | 216 | } __attribute__((packed)); |
| 177 | 217 | |
| 218 | +struct rds6_info_tcp_socket { | |
| 219 | + struct in6_addr local_addr; | |
| 220 | + __be16 local_port; | |
| 221 | + struct in6_addr peer_addr; | |
| 222 | + __be16 peer_port; | |
| 223 | + __u64 hdr_rem; | |
| 224 | + __u64 data_rem; | |
| 225 | + __u32 last_sent_nxt; | |
| 226 | + __u32 last_expected_una; | |
| 227 | + __u32 last_seen_una; | |
| 228 | +} __attribute__((packed)); | |
| 229 | + | |
| 178 | 230 | #define RDS_IB_GID_LEN 16 |
| 179 | 231 | struct rds_info_rdma_connection { |
| 180 | 232 | __be32 src_addr; |
| @@ -189,6 +241,19 @@ struct rds_info_rdma_connection { · 8 unmodified lines | ||
| 189 | 241 | __u32 rdma_mr_size; |
| 190 | 242 | }; |
| 191 | 243 | |
| 244 | +struct rds6_info_rdma_connection { | |
| 245 | + struct in6_addr src_addr; | |
| 246 | + struct in6_addr dst_addr; | |
| 247 | + __u8 src_gid[RDS_IB_GID_LEN]; | |
| 248 | + __u8 dst_gid[RDS_IB_GID_LEN]; | |
| 249 | + | |
| 250 | + __u32 max_send_wr; | |
| 251 | + __u32 max_recv_wr; | |
| 252 | + __u32 max_send_sge; | |
| 253 | + __u32 rdma_mr_max; | |
| 254 | + __u32 rdma_mr_size; | |
| 255 | +}; | |
| 256 | + | |
| 192 | 257 | /* RDS message Receive Path Latency points */ |
| 193 | 258 | enum rds_message_rxpath_latency { |
| 194 | 259 | RDS_MSG_RX_HDR_TO_DGRAM_START = 0, |
| @@ -10,13 +10,8 @@ · 9 unmodified lines | ||
| 10 | 10 | * Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| 11 | 11 | */ |
| 12 | 12 | |
| 13 | −#ifdef __KERNEL__ | |
| 14 | −# include <linux/types.h> | |
| 15 | −#else | |
| 16 | −# include <stdint.h> | |
| 17 | −#endif | |
| 18 | − | |
| 19 | −#include <linux/types_32_64.h> | |
| 13 | +#include <linux/types.h> | |
| 14 | +#include <asm/byteorder.h> | |
| 20 | 15 | |
| 21 | 16 | enum rseq_cpu_id_state { |
| 22 | 17 | RSEQ_CPU_ID_UNINITIALIZED = -1, |
| @@ -52,10 +47,10 @@ struct rseq_cs { · 29 unmodified lines | ||
| 52 | 47 | __u32 version; |
| 53 | 48 | /* enum rseq_cs_flags */ |
| 54 | 49 | __u32 flags; |
| 55 | − LINUX_FIELD_u32_u64(start_ip); | |
| 50 | + __u64 start_ip; | |
| 56 | 51 | /* Offset from start_ip. */ |
| 57 | − LINUX_FIELD_u32_u64(post_commit_offset); | |
| 58 | − LINUX_FIELD_u32_u64(abort_ip); | |
| 52 | + __u64 post_commit_offset; | |
| 53 | + __u64 abort_ip; | |
| 59 | 54 | } __attribute__((aligned(4 * sizeof(__u64)))); |
| 60 | 55 | |
| 61 | 56 | /* |
| @@ -67,28 +62,30 @@ struct rseq_cs { · 5 unmodified lines | ||
| 67 | 62 | struct rseq { |
| 68 | 63 | /* |
| 69 | 64 | * Restartable sequences cpu_id_start field. Updated by the |
| 70 | − * kernel, and read by user-space with single-copy atomicity | |
| 71 | − * semantics. Aligned on 32-bit. Always contains a value in the | |
| 72 | − * range of possible CPUs, although the value may not be the | |
| 73 | − * actual current CPU (e.g. if rseq is not initialized). This | |
| 74 | − * CPU number value should always be compared against the value | |
| 75 | − * of the cpu_id field before performing a rseq commit or | |
| 76 | − * returning a value read from a data structure indexed using | |
| 77 | − * the cpu_id_start value. | |
| 65 | + * kernel. Read by user-space with single-copy atomicity | |
| 66 | + * semantics. This field should only be read by the thread which | |
| 67 | + * registered this data structure. Aligned on 32-bit. Always | |
| 68 | + * contains a value in the range of possible CPUs, although the | |
| 69 | + * value may not be the actual current CPU (e.g. if rseq is not | |
| 70 | + * initialized). This CPU number value should always be compared | |
| 71 | + * against the value of the cpu_id field before performing a rseq | |
| 72 | + * commit or returning a value read from a data structure indexed | |
| 73 | + * using the cpu_id_start value. | |
| 78 | 74 | */ |
| 79 | 75 | __u32 cpu_id_start; |
| 80 | 76 | /* |
| 81 | − * Restartable sequences cpu_id field. Updated by the kernel, | |
| 82 | − * and read by user-space with single-copy atomicity semantics. | |
| 83 | − * Aligned on 32-bit. Values RSEQ_CPU_ID_UNINITIALIZED and | |
| 84 | − * RSEQ_CPU_ID_REGISTRATION_FAILED have a special semantic: the | |
| 85 | − * former means "rseq uninitialized", and latter means "rseq | |
| 86 | − * initialization failed". This value is meant to be read within | |
| 87 | − * rseq critical sections and compared with the cpu_id_start | |
| 88 | − * value previously read, before performing the commit instruction, | |
| 89 | − * or read and compared with the cpu_id_start value before returning | |
| 90 | − * a value loaded from a data structure indexed using the | |
| 91 | − * cpu_id_start value. | |
| 77 | + * Restartable sequences cpu_id field. Updated by the kernel. | |
| 78 | + * Read by user-space with single-copy atomicity semantics. This | |
| 79 | + * field should only be read by the thread which registered this | |
| 80 | + * data structure. Aligned on 32-bit. Values | |
| 81 | + * RSEQ_CPU_ID_UNINITIALIZED and RSEQ_CPU_ID_REGISTRATION_FAILED | |
| 82 | + * have a special semantic: the former means "rseq uninitialized", | |
| 83 | + * and latter means "rseq initialization failed". This value is | |
| 84 | + * meant to be read within rseq critical sections and compared | |
| 85 | + * with the cpu_id_start value previously read, before performing | |
| 86 | + * the commit instruction, or read and compared with the | |
| 87 | + * cpu_id_start value before returning a value loaded from a data | |
| 88 | + * structure indexed using the cpu_id_start value. | |
| 92 | 89 | */ |
| 93 | 90 | __u32 cpu_id; |
| 94 | 91 | /* |
| @@ -105,27 +102,44 @@ struct rseq { · 10 unmodified lines | ||
| 105 | 102 | * targeted by the rseq_cs. Also needs to be set to NULL by user-space |
| 106 | 103 | * before reclaiming memory that contains the targeted struct rseq_cs. |
| 107 | 104 | * |
| 108 | − * Read and set by the kernel with single-copy atomicity semantics. | |
| 109 | − * Set by user-space with single-copy atomicity semantics. Aligned | |
| 110 | − * on 64-bit. | |
| 105 | + * Read and set by the kernel. Set by user-space with single-copy | |
| 106 | + * atomicity semantics. This field should only be updated by the | |
| 107 | + * thread which registered this data structure. Aligned on 64-bit. | |
| 111 | 108 | */ |
| 112 | − LINUX_FIELD_u32_u64(rseq_cs); | |
| 109 | + union { | |
| 110 | + __u64 ptr64; | |
| 111 | +#ifdef __LP64__ | |
| 112 | + __u64 ptr; | |
| 113 | +#else | |
| 114 | + struct { | |
| 115 | +#if (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || defined(__BIG_ENDIAN) | |
| 116 | + __u32 padding; /* Initialized to zero. */ | |
| 117 | + __u32 ptr32; | |
| 118 | +#else /* LITTLE */ | |
| 119 | + __u32 ptr32; | |
| 120 | + __u32 padding; /* Initialized to zero. */ | |
| 121 | +#endif /* ENDIAN */ | |
| 122 | + } ptr; | |
| 123 | +#endif | |
| 124 | + } rseq_cs; | |
| 125 | + | |
| 113 | 126 | /* |
| 114 | − * - RSEQ_DISABLE flag: | |
| 127 | + * Restartable sequences flags field. | |
| 128 | + * | |
| 129 | + * This field should only be updated by the thread which | |
| 130 | + * registered this data structure. Read by the kernel. | |
| 131 | + * Mainly used for single-stepping through rseq critical sections | |
| 132 | + * with debuggers. | |
| 115 | 133 | * |
| 116 | − * Fallback fast-track flag for single-stepping. | |
| 117 | − * Set by user-space if lack of progress is detected. | |
| 118 | − * Cleared by user-space after rseq finish. | |
| 119 | − * Read by the kernel. | |
| 120 | 134 | * - RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT |
| 121 | − * Inhibit instruction sequence block restart and event | |
| 122 | − * counter increment on preemption for this thread. | |
| 135 | + * Inhibit instruction sequence block restart on preemption | |
| 136 | + * for this thread. | |
| 123 | 137 | * - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL |
| 124 | − * Inhibit instruction sequence block restart and event | |
| 125 | − * counter increment on signal delivery for this thread. | |
| 138 | + * Inhibit instruction sequence block restart on signal | |
| 139 | + * delivery for this thread. | |
| 126 | 140 | * - RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE |
| 127 | − * Inhibit instruction sequence block restart and event | |
| 128 | − * counter increment on migration for this thread. | |
| 141 | + * Inhibit instruction sequence block restart on migration for | |
| 142 | + * this thread. | |
| 129 | 143 | */ |
| 130 | 144 | __u32 flags; |
| 131 | 145 | } __attribute__((aligned(4 * sizeof(__u64)))); |
| @@ -150,6 +150,13 @@ enum { · 149 unmodified lines | ||
| 150 | 150 | RTM_NEWCACHEREPORT = 96, |
| 151 | 151 | #define RTM_NEWCACHEREPORT RTM_NEWCACHEREPORT |
| 152 | 152 | |
| 153 | + RTM_NEWCHAIN = 100, | |
| 154 | +#define RTM_NEWCHAIN RTM_NEWCHAIN | |
| 155 | + RTM_DELCHAIN, | |
| 156 | +#define RTM_DELCHAIN RTM_DELCHAIN | |
| 157 | + RTM_GETCHAIN, | |
| 158 | +#define RTM_GETCHAIN RTM_GETCHAIN | |
| 159 | + | |
| 153 | 160 | __RTM_MAX, |
| 154 | 161 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) |
| 155 | 162 | }; |
| @@ -100,6 +100,7 @@ typedef __s32 sctp_assoc_t; · 99 unmodified lines | ||
| 100 | 100 | #define SCTP_RECVNXTINFO 33 |
| 101 | 101 | #define SCTP_DEFAULT_SNDINFO 34 |
| 102 | 102 | #define SCTP_AUTH_DEACTIVATE_KEY 35 |
| 103 | +#define SCTP_REUSE_PORT 36 | |
| 103 | 104 | |
| 104 | 105 | /* Internal Socket Options. Some of the sctp library functions are |
| 105 | 106 | * implemented using these socket options. |
| @@ -762,6 +763,8 @@ enum sctp_spp_flags { · 656 unmodified lines | ||
| 762 | 763 | SPP_SACKDELAY_DISABLE = 1<<6, /*Disable SACK*/ |
| 763 | 764 | SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE, |
| 764 | 765 | SPP_HB_TIME_IS_ZERO = 1<<7, /* Set HB delay to 0 */ |
| 766 | + SPP_IPV6_FLOWLABEL = 1<<8, | |
| 767 | + SPP_DSCP = 1<<9, | |
| 765 | 768 | }; |
| 766 | 769 | |
| 767 | 770 | struct sctp_paddrparams { |
| @@ -772,6 +775,8 @@ struct sctp_paddrparams { · 4 unmodified lines | ||
| 772 | 775 | __u32 spp_pathmtu; |
| 773 | 776 | __u32 spp_sackdelay; |
| 774 | 777 | __u32 spp_flags; |
| 778 | + __u32 spp_ipv6_flowlabel; | |
| 779 | + __u8 spp_dscp; | |
| 775 | 780 | } __attribute__((packed, aligned(4))); |
| 776 | 781 | |
| 777 | 782 | /* |
| @@ -20,7 +20,7 @@ struct smc_diag_req { · 19 unmodified lines | ||
| 20 | 20 | struct smc_diag_msg { |
| 21 | 21 | __u8 diag_family; |
| 22 | 22 | __u8 diag_state; |
| 23 | − __u8 diag_fallback; | |
| 23 | + __u8 diag_mode; | |
| 24 | 24 | __u8 diag_shutdown; |
| 25 | 25 | struct inet_diag_sockid id; |
| 26 | 26 | |
| @@ -28,6 +28,13 @@ struct smc_diag_msg { · 1 unmodified line | ||
| 28 | 28 | __u64 diag_inode; |
| 29 | 29 | }; |
| 30 | 30 | |
| 31 | +/* Mode of a connection */ | |
| 32 | +enum { | |
| 33 | + SMC_DIAG_MODE_SMCR, | |
| 34 | + SMC_DIAG_MODE_FALLBACK_TCP, | |
| 35 | + SMC_DIAG_MODE_SMCD, | |
| 36 | +}; | |
| 37 | + | |
| 31 | 38 | /* Extensions */ |
| 32 | 39 | |
| 33 | 40 | enum { |
| @@ -35,6 +42,8 @@ enum { · 1 unmodified line | ||
| 35 | 42 | SMC_DIAG_CONNINFO, |
| 36 | 43 | SMC_DIAG_LGRINFO, |
| 37 | 44 | SMC_DIAG_SHUTDOWN, |
| 45 | + SMC_DIAG_DMBINFO, | |
| 46 | + SMC_DIAG_FALLBACK, | |
| 38 | 47 | __SMC_DIAG_MAX, |
| 39 | 48 | }; |
| 40 | 49 | |
| @@ -83,4 +92,18 @@ struct smc_diag_lgrinfo { · 42 unmodified lines | ||
| 83 | 92 | struct smc_diag_linkinfo lnk[1]; |
| 84 | 93 | __u8 role; |
| 85 | 94 | }; |
| 95 | + | |
| 96 | +struct smc_diag_fallback { | |
| 97 | + __u32 reason; | |
| 98 | + __u32 peer_diagnosis; | |
| 99 | +}; | |
| 100 | + | |
| 101 | +struct smcd_diag_dmbinfo { /* SMC-D Socket internals */ | |
| 102 | + __u32 linkid; /* Link identifier */ | |
| 103 | + __u64 peer_gid; /* Peer GID */ | |
| 104 | + __u64 my_gid; /* My GID */ | |
| 105 | + __u64 token; /* Token of DMB */ | |
| 106 | + __u64 peer_token; /* Token of remote DMBE */ | |
| 107 | +}; | |
| 108 | + | |
| 86 | 109 | #endif /* _UAPI_SMC_DIAG_H_ */ |
| @@ -56,6 +56,7 @@ enum · 55 unmodified lines | ||
| 56 | 56 | IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */ |
| 57 | 57 | IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */ |
| 58 | 58 | IPSTATS_MIB_CEPKTS, /* InCEPkts */ |
| 59 | + IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */ | |
| 59 | 60 | __IPSTATS_MIB_MAX |
| 60 | 61 | }; |
| 61 | 62 | |
| @@ -279,6 +280,8 @@ enum · 217 unmodified lines | ||
| 279 | 280 | LINUX_MIB_TCPDELIVERED, /* TCPDelivered */ |
| 280 | 281 | LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */ |
| 281 | 282 | LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */ |
| 283 | + LINUX_MIB_TCPZEROWINDOWDROP, /* TCPZeroWindowDrop */ | |
| 284 | + LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */ | |
| 282 | 285 | __LINUX_MIB_MAX |
| 283 | 286 | }; |
| 284 | 287 | |
| @@ -575,7 +575,8 @@ enum { · 574 unmodified lines | ||
| 575 | 575 | |
| 576 | 576 | /* /proc/sys/net/ipv6/icmp */ |
| 577 | 577 | enum { |
| 578 | − NET_IPV6_ICMP_RATELIMIT=1 | |
| 578 | + NET_IPV6_ICMP_RATELIMIT = 1, | |
| 579 | + NET_IPV6_ICMP_ECHO_IGNORE_ALL = 2 | |
| 579 | 580 | }; |
| 580 | 581 | |
| 581 | 582 | /* /proc/sys/net/<protocol>/neigh/<dev> */ |
| @@ -17,13 +17,15 @@ enum { · 16 unmodified lines | ||
| 17 | 17 | TCA_PEDIT_KEY_EX, |
| 18 | 18 | __TCA_PEDIT_MAX |
| 19 | 19 | }; |
| 20 | + | |
| 20 | 21 | #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1) |
| 21 | − | |
| 22 | + | |
| 22 | 23 | enum { |
| 23 | 24 | TCA_PEDIT_KEY_EX_HTYPE = 1, |
| 24 | 25 | TCA_PEDIT_KEY_EX_CMD = 2, |
| 25 | 26 | __TCA_PEDIT_KEY_EX_MAX |
| 26 | 27 | }; |
| 28 | + | |
| 27 | 29 | #define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1) |
| 28 | 30 | |
| 29 | 31 | /* TCA_PEDIT_KEY_EX_HDR_TYPE_NETWROK is a special case for legacy users. It |
| @@ -38,6 +40,7 @@ enum pedit_header_type { · 8 unmodified lines | ||
| 38 | 40 | TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5, |
| 39 | 41 | __PEDIT_HDR_TYPE_MAX, |
| 40 | 42 | }; |
| 43 | + | |
| 41 | 44 | #define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1) |
| 42 | 45 | |
| 43 | 46 | enum pedit_cmd { |
| @@ -45,6 +48,7 @@ enum pedit_cmd { · 1 unmodified line | ||
| 45 | 48 | TCA_PEDIT_KEY_EX_CMD_ADD = 1, |
| 46 | 49 | __PEDIT_CMD_MAX, |
| 47 | 50 | }; |
| 51 | + | |
| 48 | 52 | #define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1) |
| 49 | 53 | |
| 50 | 54 | struct tc_pedit_key { |
| @@ -55,13 +59,14 @@ struct tc_pedit_key { · 4 unmodified lines | ||
| 55 | 59 | __u32 offmask; |
| 56 | 60 | __u32 shift; |
| 57 | 61 | }; |
| 58 | − | |
| 62 | + | |
| 59 | 63 | struct tc_pedit_sel { |
| 60 | 64 | tc_gen; |
| 61 | 65 | unsigned char nkeys; |
| 62 | 66 | unsigned char flags; |
| 63 | 67 | struct tc_pedit_key keys[0]; |
| 64 | 68 | }; |
| 69 | + | |
| 65 | 70 | #define tc_pedit tc_pedit_sel |
| 66 | 71 | |
| 67 | 72 | #endif |
| @@ -30,6 +30,7 @@ · 29 unmodified lines | ||
| 30 | 30 | #define SKBEDIT_F_MARK 0x4 |
| 31 | 31 | #define SKBEDIT_F_PTYPE 0x8 |
| 32 | 32 | #define SKBEDIT_F_MASK 0x10 |
| 33 | +#define SKBEDIT_F_INHERITDSFIELD 0x20 | |
| 33 | 34 | |
| 34 | 35 | struct tc_skbedit { |
| 35 | 36 | tc_gen; |
| @@ -45,6 +46,7 @@ enum { · 9 unmodified lines | ||
| 45 | 46 | TCA_SKBEDIT_PAD, |
| 46 | 47 | TCA_SKBEDIT_PTYPE, |
| 47 | 48 | TCA_SKBEDIT_MASK, |
| 49 | + TCA_SKBEDIT_FLAGS, | |
| 48 | 50 | __TCA_SKBEDIT_MAX |
| 49 | 51 | }; |
| 50 | 52 | #define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1) |
| @@ -36,9 +36,37 @@ enum { · 35 unmodified lines | ||
| 36 | 36 | TCA_TUNNEL_KEY_PAD, |
| 37 | 37 | TCA_TUNNEL_KEY_ENC_DST_PORT, /* be16 */ |
| 38 | 38 | TCA_TUNNEL_KEY_NO_CSUM, /* u8 */ |
| 39 | + TCA_TUNNEL_KEY_ENC_OPTS, /* Nested TCA_TUNNEL_KEY_ENC_OPTS_ | |
| 40 | + * attributes | |
| 41 | + */ | |
| 42 | + TCA_TUNNEL_KEY_ENC_TOS, /* u8 */ | |
| 43 | + TCA_TUNNEL_KEY_ENC_TTL, /* u8 */ | |
| 39 | 44 | __TCA_TUNNEL_KEY_MAX, |
| 40 | 45 | }; |
| 41 | 46 | |
| 42 | 47 | #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1) |
| 43 | 48 | |
| 49 | +enum { | |
| 50 | + TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC, | |
| 51 | + TCA_TUNNEL_KEY_ENC_OPTS_GENEVE, /* Nested | |
| 52 | + * TCA_TUNNEL_KEY_ENC_OPTS_ | |
| 53 | + * attributes | |
| 54 | + */ | |
| 55 | + __TCA_TUNNEL_KEY_ENC_OPTS_MAX, | |
| 56 | +}; | |
| 57 | + | |
| 58 | +#define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1) | |
| 59 | + | |
| 60 | +enum { | |
| 61 | + TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC, | |
| 62 | + TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS, /* be16 */ | |
| 63 | + TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */ | |
| 64 | + TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */ | |
| 65 | + | |
| 66 | + __TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX, | |
| 67 | +}; | |
| 68 | + | |
| 69 | +#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \ | |
| 70 | + (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1) | |
| 71 | + | |
| 44 | 72 | #endif |
| @@ -127,6 +127,10 @@ enum { · 126 unmodified lines | ||
| 127 | 127 | |
| 128 | 128 | #define TCP_CM_INQ TCP_INQ |
| 129 | 129 | |
| 130 | +#define TCP_REPAIR_ON 1 | |
| 131 | +#define TCP_REPAIR_OFF 0 | |
| 132 | +#define TCP_REPAIR_OFF_NO_WP -1 /* Turn off without window probes */ | |
| 133 | + | |
| 130 | 134 | struct tcp_repair_opt { |
| 131 | 135 | __u32 opt_code; |
| 132 | 136 | __u32 opt_val; |
| @@ -231,6 +235,11 @@ struct tcp_info { · 98 unmodified lines | ||
| 231 | 235 | |
| 232 | 236 | __u32 tcpi_delivered; |
| 233 | 237 | __u32 tcpi_delivered_ce; |
| 238 | + | |
| 239 | + __u64 tcpi_bytes_sent; /* RFC4898 tcpEStatsPerfHCDataOctetsOut */ | |
| 240 | + __u64 tcpi_bytes_retrans; /* RFC4898 tcpEStatsPerfOctetsRetrans */ | |
| 241 | + __u32 tcpi_dsack_dups; /* RFC4898 tcpEStatsStackDSACKDups */ | |
| 242 | + __u32 tcpi_reord_seen; /* reordering events seen */ | |
| 234 | 243 | }; |
| 235 | 244 | |
| 236 | 245 | /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */ |
| @@ -253,7 +262,10 @@ enum { · 16 unmodified lines | ||
| 253 | 262 | TCP_NLA_SND_SSTHRESH, /* Slow start size threshold */ |
| 254 | 263 | TCP_NLA_DELIVERED, /* Data pkts delivered incl. out-of-order */ |
| 255 | 264 | TCP_NLA_DELIVERED_CE, /* Like above but only ones w/ CE marks */ |
| 256 | − | |
| 265 | + TCP_NLA_BYTES_SENT, /* Data bytes sent including retransmission */ | |
| 266 | + TCP_NLA_BYTES_RETRANS, /* Data bytes retransmitted */ | |
| 267 | + TCP_NLA_DSACK_DUPS, /* DSACK blocks received */ | |
| 268 | + TCP_NLA_REORD_SEEN, /* reordering events seen */ | |
| 257 | 269 | }; |
| 258 | 270 | |
| 259 | 271 | /* for TCP_MD5SIG socket option */ |
| @@ -49,6 +49,13 @@ struct __kernel_timespec { · 48 unmodified lines | ||
| 49 | 49 | }; |
| 50 | 50 | #endif |
| 51 | 51 | |
| 52 | +#ifndef __kernel_itimerspec | |
| 53 | +struct __kernel_itimerspec { | |
| 54 | + struct __kernel_timespec it_interval; /* timer period */ | |
| 55 | + struct __kernel_timespec it_value; /* timer expiration */ | |
| 56 | +}; | |
| 57 | +#endif | |
| 58 | + | |
| 52 | 59 | /* |
| 53 | 60 | * legacy timeval structure, only embedded in structures that |
| 54 | 61 | * traditionally used 'timeval' to pass time intervals (not absolute |
| @@ -121,6 +121,7 @@ enum { · 120 unmodified lines | ||
| 121 | 121 | TIPC_NLA_SOCK_TIPC_STATE, /* u32 */ |
| 122 | 122 | TIPC_NLA_SOCK_COOKIE, /* u64 */ |
| 123 | 123 | TIPC_NLA_SOCK_PAD, /* flag */ |
| 124 | + TIPC_NLA_SOCK_GROUP, /* nest */ | |
| 124 | 125 | |
| 125 | 126 | __TIPC_NLA_SOCK_MAX, |
| 126 | 127 | TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1 |
| @@ -233,6 +234,19 @@ enum { · 106 unmodified lines | ||
| 233 | 234 | TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1 |
| 234 | 235 | }; |
| 235 | 236 | |
| 237 | +/* Nest, socket group info */ | |
| 238 | +enum { | |
| 239 | + TIPC_NLA_SOCK_GROUP_ID, /* u32 */ | |
| 240 | + TIPC_NLA_SOCK_GROUP_OPEN, /* flag */ | |
| 241 | + TIPC_NLA_SOCK_GROUP_NODE_SCOPE, /* flag */ | |
| 242 | + TIPC_NLA_SOCK_GROUP_CLUSTER_SCOPE, /* flag */ | |
| 243 | + TIPC_NLA_SOCK_GROUP_INSTANCE, /* u32 */ | |
| 244 | + TIPC_NLA_SOCK_GROUP_BC_SEND_NEXT, /* u32 */ | |
| 245 | + | |
| 246 | + __TIPC_NLA_SOCK_GROUP_MAX, | |
| 247 | + TIPC_NLA_SOCK_GROUP_MAX = __TIPC_NLA_SOCK_GROUP_MAX - 1 | |
| 248 | +}; | |
| 249 | + | |
| 236 | 250 | /* Nest, connection info */ |
| 237 | 251 | enum { |
| 238 | 252 | TIPC_NLA_CON_UNSPEC, |
| @@ -1,50 +0,0 @@ | ||
| 1 | −/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | |
| 2 | −#ifndef _UAPI_LINUX_TYPES_32_64_H | |
| 3 | −#define _UAPI_LINUX_TYPES_32_64_H | |
| 4 | − | |
| 5 | −/* | |
| 6 | − * linux/types_32_64.h | |
| 7 | − * | |
| 8 | − * Integer type declaration for pointers across 32-bit and 64-bit systems. | |
| 9 | − * | |
| 10 | − * Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
| 11 | − */ | |
| 12 | − | |
| 13 | −#ifdef __KERNEL__ | |
| 14 | −# include <linux/types.h> | |
| 15 | −#else | |
| 16 | −# include <stdint.h> | |
| 17 | −#endif | |
| 18 | − | |
| 19 | −#include <asm/byteorder.h> | |
| 20 | − | |
| 21 | −#ifdef __BYTE_ORDER | |
| 22 | −# if (__BYTE_ORDER == __BIG_ENDIAN) | |
| 23 | −# define LINUX_BYTE_ORDER_BIG_ENDIAN | |
| 24 | −# else | |
| 25 | −# define LINUX_BYTE_ORDER_LITTLE_ENDIAN | |
| 26 | −# endif | |
| 27 | −#else | |
| 28 | −# ifdef __BIG_ENDIAN | |
| 29 | −# define LINUX_BYTE_ORDER_BIG_ENDIAN | |
| 30 | −# else | |
| 31 | −# define LINUX_BYTE_ORDER_LITTLE_ENDIAN | |
| 32 | −# endif | |
| 33 | −#endif | |
| 34 | − | |
| 35 | −#ifdef __LP64__ | |
| 36 | −# define LINUX_FIELD_u32_u64(field) __u64 field | |
| 37 | −# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) field = (intptr_t)v | |
| 38 | −#else | |
| 39 | −# ifdef LINUX_BYTE_ORDER_BIG_ENDIAN | |
| 40 | −# define LINUX_FIELD_u32_u64(field) __u32 field ## _padding, field | |
| 41 | −# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \ | |
| 42 | − field ## _padding = 0, field = (intptr_t)v | |
| 43 | −# else | |
| 44 | −# define LINUX_FIELD_u32_u64(field) __u32 field, field ## _padding | |
| 45 | −# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \ | |
| 46 | − field = (intptr_t)v, field ## _padding = 0 | |
| 47 | −# endif | |
| 48 | −#endif | |
| 49 | − | |
| 50 | −#endif /* _UAPI_LINUX_TYPES_32_64_H */ | |
| @@ -390,33 +390,64 @@ static inline __u8 uac_processing_unit_iChannelNames(struct uac_processing_unit_ · 389 unmodified lines | ||
| 390 | 390 | static inline __u8 uac_processing_unit_bControlSize(struct uac_processing_unit_descriptor *desc, |
| 391 | 391 | int protocol) |
| 392 | 392 | { |
| 393 | − return (protocol == UAC_VERSION_1) ? | |
| 394 | − desc->baSourceID[desc->bNrInPins + 4] : | |
| 395 | − 2; /* in UAC2, this value is constant */ | |
| 393 | + switch (protocol) { | |
| 394 | + case UAC_VERSION_1: | |
| 395 | + return desc->baSourceID[desc->bNrInPins + 4]; | |
| 396 | + case UAC_VERSION_2: | |
| 397 | + return 2; /* in UAC2, this value is constant */ | |
| 398 | + case UAC_VERSION_3: | |
| 399 | + return 4; /* in UAC3, this value is constant */ | |
| 400 | + default: | |
| 401 | + return 1; | |
| 402 | + } | |
| 396 | 403 | } |
| 397 | 404 | |
| 398 | 405 | static inline __u8 *uac_processing_unit_bmControls(struct uac_processing_unit_descriptor *desc, |
| 399 | 406 | int protocol) |
| 400 | 407 | { |
| 401 | − return (protocol == UAC_VERSION_1) ? | |
| 402 | − &desc->baSourceID[desc->bNrInPins + 5] : | |
| 403 | − &desc->baSourceID[desc->bNrInPins + 6]; | |
| 408 | + switch (protocol) { | |
| 409 | + case UAC_VERSION_1: | |
| 410 | + return &desc->baSourceID[desc->bNrInPins + 5]; | |
| 411 | + case UAC_VERSION_2: | |
| 412 | + return &desc->baSourceID[desc->bNrInPins + 6]; | |
| 413 | + case UAC_VERSION_3: | |
| 414 | + return &desc->baSourceID[desc->bNrInPins + 2]; | |
| 415 | + default: | |
| 416 | + return NULL; | |
| 417 | + } | |
| 404 | 418 | } |
| 405 | 419 | |
| 406 | 420 | static inline __u8 uac_processing_unit_iProcessing(struct uac_processing_unit_descriptor *desc, |
| 407 | 421 | int protocol) |
| 408 | 422 | { |
| 409 | 423 | __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); |
| 410 | − return *(uac_processing_unit_bmControls(desc, protocol) | |
| 411 | − + control_size); | |
| 424 | + | |
| 425 | + switch (protocol) { | |
| 426 | + case UAC_VERSION_1: | |
| 427 | + case UAC_VERSION_2: | |
| 428 | + default: | |
| 429 | + return *(uac_processing_unit_bmControls(desc, protocol) | |
| 430 | + + control_size); | |
| 431 | + case UAC_VERSION_3: | |
| 432 | + return 0; /* UAC3 does not have this field */ | |
| 433 | + } | |
| 412 | 434 | } |
| 413 | 435 | |
| 414 | 436 | static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc, |
| 415 | 437 | int protocol) |
| 416 | 438 | { |
| 417 | 439 | __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); |
| 418 | − return uac_processing_unit_bmControls(desc, protocol) | |
| 440 | + | |
| 441 | + switch (protocol) { | |
| 442 | + case UAC_VERSION_1: | |
| 443 | + case UAC_VERSION_2: | |
| 444 | + default: | |
| 445 | + return uac_processing_unit_bmControls(desc, protocol) | |
| 419 | 446 | + control_size + 1; |
| 447 | + case UAC_VERSION_3: | |
| 448 | + return uac_processing_unit_bmControls(desc, protocol) | |
| 449 | + + control_size; | |
| 450 | + } | |
| 420 | 451 | } |
| 421 | 452 | |
| 422 | 453 | /* 4.5.2 Class-Specific AS Interface Descriptor */ |
| @@ -0,0 +1,39 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0+ */ | |
| 2 | +/* | |
| 3 | + * g_uvc.h -- USB Video Class Gadget driver API | |
| 4 | + * | |
| 5 | + * Copyright (C) 2009-2010 Laurent Pinchart <laurent.pinchart@ideasonboard.com> | |
| 6 | + */ | |
| 7 | + | |
| 8 | +#ifndef __LINUX_USB_G_UVC_H | |
| 9 | +#define __LINUX_USB_G_UVC_H | |
| 10 | + | |
| 11 | +#include <linux/ioctl.h> | |
| 12 | +#include <linux/types.h> | |
| 13 | +#include <linux/usb/ch9.h> | |
| 14 | + | |
| 15 | +#define UVC_EVENT_FIRST (V4L2_EVENT_PRIVATE_START + 0) | |
| 16 | +#define UVC_EVENT_CONNECT (V4L2_EVENT_PRIVATE_START + 0) | |
| 17 | +#define UVC_EVENT_DISCONNECT (V4L2_EVENT_PRIVATE_START + 1) | |
| 18 | +#define UVC_EVENT_STREAMON (V4L2_EVENT_PRIVATE_START + 2) | |
| 19 | +#define UVC_EVENT_STREAMOFF (V4L2_EVENT_PRIVATE_START + 3) | |
| 20 | +#define UVC_EVENT_SETUP (V4L2_EVENT_PRIVATE_START + 4) | |
| 21 | +#define UVC_EVENT_DATA (V4L2_EVENT_PRIVATE_START + 5) | |
| 22 | +#define UVC_EVENT_LAST (V4L2_EVENT_PRIVATE_START + 5) | |
| 23 | + | |
| 24 | +struct uvc_request_data { | |
| 25 | + __s32 length; | |
| 26 | + __u8 data[60]; | |
| 27 | +}; | |
| 28 | + | |
| 29 | +struct uvc_event { | |
| 30 | + union { | |
| 31 | + enum usb_device_speed speed; | |
| 32 | + struct usb_ctrlrequest req; | |
| 33 | + struct uvc_request_data data; | |
| 34 | + }; | |
| 35 | +}; | |
| 36 | + | |
| 37 | +#define UVCIOC_SEND_RESPONSE _IOW('U', 1, struct uvc_request_data) | |
| 38 | + | |
| 39 | +#endif /* __LINUX_USB_G_UVC_H */ | |
| @@ -16,6 +16,8 @@ · 15 unmodified lines | ||
| 16 | 16 | #ifndef __LINUX_USB_TMC_H |
| 17 | 17 | #define __LINUX_USB_TMC_H |
| 18 | 18 | |
| 19 | +#include <linux/types.h> /* __u8 etc */ | |
| 20 | + | |
| 19 | 21 | /* USB TMC status values */ |
| 20 | 22 | #define USBTMC_STATUS_SUCCESS 0x01 |
| 21 | 23 | #define USBTMC_STATUS_PENDING 0x02 |
| @@ -38,6 +40,11 @@ · 16 unmodified lines | ||
| 38 | 40 | #define USBTMC488_REQUEST_GOTO_LOCAL 161 |
| 39 | 41 | #define USBTMC488_REQUEST_LOCAL_LOCKOUT 162 |
| 40 | 42 | |
| 43 | +struct usbtmc_termchar { | |
| 44 | + __u8 term_char; | |
| 45 | + __u8 term_char_enabled; | |
| 46 | +} __attribute__ ((packed)); | |
| 47 | + | |
| 41 | 48 | /* Request values for USBTMC driver's ioctl entry point */ |
| 42 | 49 | #define USBTMC_IOC_NR 91 |
| 43 | 50 | #define USBTMC_IOCTL_INDICATOR_PULSE _IO(USBTMC_IOC_NR, 1) |
| @@ -46,11 +53,17 @@ · 2 unmodified lines | ||
| 46 | 53 | #define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4) |
| 47 | 54 | #define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6) |
| 48 | 55 | #define USBTMC_IOCTL_CLEAR_IN_HALT _IO(USBTMC_IOC_NR, 7) |
| 56 | +#define USBTMC_IOCTL_GET_TIMEOUT _IOR(USBTMC_IOC_NR, 9, __u32) | |
| 57 | +#define USBTMC_IOCTL_SET_TIMEOUT _IOW(USBTMC_IOC_NR, 10, __u32) | |
| 58 | +#define USBTMC_IOCTL_EOM_ENABLE _IOW(USBTMC_IOC_NR, 11, __u8) | |
| 59 | +#define USBTMC_IOCTL_CONFIG_TERMCHAR _IOW(USBTMC_IOC_NR, 12, struct usbtmc_termchar) | |
| 60 | + | |
| 49 | 61 | #define USBTMC488_IOCTL_GET_CAPS _IOR(USBTMC_IOC_NR, 17, unsigned char) |
| 50 | 62 | #define USBTMC488_IOCTL_READ_STB _IOR(USBTMC_IOC_NR, 18, unsigned char) |
| 51 | 63 | #define USBTMC488_IOCTL_REN_CONTROL _IOW(USBTMC_IOC_NR, 19, unsigned char) |
| 52 | 64 | #define USBTMC488_IOCTL_GOTO_LOCAL _IO(USBTMC_IOC_NR, 20) |
| 53 | 65 | #define USBTMC488_IOCTL_LOCAL_LOCKOUT _IO(USBTMC_IOC_NR, 21) |
| 66 | +#define USBTMC488_IOCTL_TRIGGER _IO(USBTMC_IOC_NR, 22) | |
| 54 | 67 | |
| 55 | 68 | /* Driver encoded usb488 capabilities */ |
| 56 | 69 | #define USBTMC488_CAPABILITY_TRIGGER 1 |
| @@ -28,6 +28,8 @@ · 27 unmodified lines | ||
| 28 | 28 | #define UVC_CTRL_FLAG_RESTORE (1 << 6) |
| 29 | 29 | /* Control can be updated by the camera. */ |
| 30 | 30 | #define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7) |
| 31 | +/* Control supports asynchronous reporting */ | |
| 32 | +#define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8) | |
| 31 | 33 | |
| 32 | 34 | #define UVC_CTRL_FLAG_GET_RANGE \ |
| 33 | 35 | (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \ |
| @@ -188,7 +188,7 @@ enum v4l2_colorfx { · 187 unmodified lines | ||
| 188 | 188 | |
| 189 | 189 | /* The base for the imx driver controls. |
| 190 | 190 | * We reserve 16 controls for this driver. */ |
| 191 | −#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x1090) | |
| 191 | +#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0) | |
| 192 | 192 | |
| 193 | 193 | /* MPEG-class control IDs */ |
| 194 | 194 | /* The MPEG controls are applicable to all codec controls |
| @@ -587,7 +587,23 @@ enum v4l2_vp8_golden_frame_sel { · 392 unmodified lines | ||
| 587 | 587 | #define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508) |
| 588 | 588 | #define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509) |
| 589 | 589 | #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) |
| 590 | −#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511) | |
| 590 | + | |
| 591 | +#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_MPEG_BASE+511) | |
| 592 | +enum v4l2_mpeg_video_vp8_profile { | |
| 593 | + V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0, | |
| 594 | + V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1, | |
| 595 | + V4L2_MPEG_VIDEO_VP8_PROFILE_2 = 2, | |
| 596 | + V4L2_MPEG_VIDEO_VP8_PROFILE_3 = 3, | |
| 597 | +}; | |
| 598 | +/* Deprecated alias for compatibility reasons. */ | |
| 599 | +#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE | |
| 600 | +#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE+512) | |
| 601 | +enum v4l2_mpeg_video_vp9_profile { | |
| 602 | + V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0, | |
| 603 | + V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1, | |
| 604 | + V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2, | |
| 605 | + V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3, | |
| 606 | +}; | |
| 591 | 607 | |
| 592 | 608 | /* CIDs for HEVC encoding. */ |
| 593 | 609 | |
| @@ -170,8 +170,12 @@ struct v4l2_subdev_selection { · 169 unmodified lines | ||
| 170 | 170 | #define VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection) |
| 171 | 171 | #define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection) |
| 172 | 172 | /* The following ioctls are identical to the ioctls in videodev2.h */ |
| 173 | +#define VIDIOC_SUBDEV_G_STD _IOR('V', 23, v4l2_std_id) | |
| 174 | +#define VIDIOC_SUBDEV_S_STD _IOW('V', 24, v4l2_std_id) | |
| 175 | +#define VIDIOC_SUBDEV_ENUMSTD _IOWR('V', 25, struct v4l2_standard) | |
| 173 | 176 | #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid) |
| 174 | 177 | #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid) |
| 178 | +#define VIDIOC_SUBDEV_QUERYSTD _IOR('V', 63, v4l2_std_id) | |
| 175 | 179 | #define VIDIOC_SUBDEV_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) |
| 176 | 180 | #define VIDIOC_SUBDEV_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) |
| 177 | 181 | #define VIDIOC_SUBDEV_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) |
| @@ -65,6 +65,7 @@ struct vhost_iotlb_msg { · 64 unmodified lines | ||
| 65 | 65 | }; |
| 66 | 66 | |
| 67 | 67 | #define VHOST_IOTLB_MSG 0x1 |
| 68 | +#define VHOST_IOTLB_MSG_V2 0x2 | |
| 68 | 69 | |
| 69 | 70 | struct vhost_msg { |
| 70 | 71 | int type; |
| @@ -74,6 +75,15 @@ struct vhost_msg { · 3 unmodified lines | ||
| 74 | 75 | }; |
| 75 | 76 | }; |
| 76 | 77 | |
| 78 | +struct vhost_msg_v2 { | |
| 79 | + __u32 type; | |
| 80 | + __u32 reserved; | |
| 81 | + union { | |
| 82 | + struct vhost_iotlb_msg iotlb; | |
| 83 | + __u8 padding[64]; | |
| 84 | + }; | |
| 85 | +}; | |
| 86 | + | |
| 77 | 87 | struct vhost_memory_region { |
| 78 | 88 | __u64 guest_phys_addr; |
| 79 | 89 | __u64 memory_size; /* bytes */ |
| @@ -160,6 +170,14 @@ struct vhost_memory { · 80 unmodified lines | ||
| 160 | 170 | #define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \ |
| 161 | 171 | struct vhost_vring_state) |
| 162 | 172 | |
| 173 | +/* Set or get vhost backend capability */ | |
| 174 | + | |
| 175 | +/* Use message type V2 */ | |
| 176 | +#define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1 | |
| 177 | + | |
| 178 | +#define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64) | |
| 179 | +#define VHOST_GET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x26, __u64) | |
| 180 | + | |
| 163 | 181 | /* VHOST_NET specific defines */ |
| 164 | 182 | |
| 165 | 183 | /* Attach virtio net ring to a raw socket, or tap device. |
| @@ -522,6 +522,7 @@ struct v4l2_pix_format { · 521 unmodified lines | ||
| 522 | 522 | |
| 523 | 523 | /* Grey bit-packed formats */ |
| 524 | 524 | #define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ |
| 525 | +#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */ | |
| 525 | 526 | |
| 526 | 527 | /* Palette formats */ |
| 527 | 528 | #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ |
| @@ -609,6 +610,11 @@ struct v4l2_pix_format { · 81 unmodified lines | ||
| 609 | 610 | #define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C') |
| 610 | 611 | #define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C') |
| 611 | 612 | #define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C') |
| 613 | + /* 14bit raw bayer packed, 7 bytes for every 4 pixels */ | |
| 614 | +#define V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E') | |
| 615 | +#define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E') | |
| 616 | +#define V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E') | |
| 617 | +#define V4L2_PIX_FMT_SRGGB14P v4l2_fourcc('p', 'R', 'E', 'E') | |
| 612 | 618 | #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */ |
| 613 | 619 | #define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */ |
| 614 | 620 | #define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */ |
| @@ -636,6 +642,7 @@ struct v4l2_pix_format { · 21 unmodified lines | ||
| 636 | 642 | #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ |
| 637 | 643 | #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */ |
| 638 | 644 | #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */ |
| 645 | +#define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */ | |
| 639 | 646 | |
| 640 | 647 | /* Vendor-specific formats */ |
| 641 | 648 | #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ |
| @@ -2310,7 +2317,6 @@ struct v4l2_create_buffers { · 1668 unmodified lines | ||
| 2310 | 2317 | * |
| 2311 | 2318 | */ |
| 2312 | 2319 | #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability) |
| 2313 | −#define VIDIOC_RESERVED _IO('V', 1) | |
| 2314 | 2320 | #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc) |
| 2315 | 2321 | #define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format) |
| 2316 | 2322 | #define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format) |
| @@ -305,9 +305,12 @@ enum xfrm_attr_type_t { · 304 unmodified lines | ||
| 305 | 305 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ |
| 306 | 306 | XFRMA_PAD, |
| 307 | 307 | XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */ |
| 308 | − XFRMA_OUTPUT_MARK, /* __u32 */ | |
| 308 | + XFRMA_SET_MARK, /* __u32 */ | |
| 309 | + XFRMA_SET_MARK_MASK, /* __u32 */ | |
| 310 | + XFRMA_IF_ID, /* __u32 */ | |
| 309 | 311 | __XFRMA_MAX |
| 310 | 312 | |
| 313 | +#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */ | |
| 311 | 314 | #define XFRMA_MAX (__XFRMA_MAX - 1) |
| 312 | 315 | }; |
| 313 | 316 | |
| @@ -285,6 +285,20 @@ struct ubi_attach_req { · 284 unmodified lines | ||
| 285 | 285 | __s8 padding[10]; |
| 286 | 286 | }; |
| 287 | 287 | |
| 288 | +/* | |
| 289 | + * UBI volume flags. | |
| 290 | + * | |
| 291 | + * @UBI_VOL_SKIP_CRC_CHECK_FLG: skip the CRC check done on a static volume at | |
| 292 | + * open time. Only valid for static volumes and | |
| 293 | + * should only be used if the volume user has a | |
| 294 | + * way to verify data integrity | |
| 295 | + */ | |
| 296 | +enum { | |
| 297 | + UBI_VOL_SKIP_CRC_CHECK_FLG = 0x1, | |
| 298 | +}; | |
| 299 | + | |
| 300 | +#define UBI_VOL_VALID_FLGS (UBI_VOL_SKIP_CRC_CHECK_FLG) | |
| 301 | + | |
| 288 | 302 | /** |
| 289 | 303 | * struct ubi_mkvol_req - volume description data structure used in |
| 290 | 304 | * volume creation requests. |
| @@ -292,7 +306,7 @@ struct ubi_attach_req { · 1 unmodified line | ||
| 292 | 306 | * @alignment: volume alignment |
| 293 | 307 | * @bytes: volume size in bytes |
| 294 | 308 | * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME) |
| 295 | − * @padding1: reserved for future, not used, has to be zeroed | |
| 309 | + * @flags: volume flags (%UBI_VOL_SKIP_CRC_CHECK_FLG) | |
| 296 | 310 | * @name_len: volume name length |
| 297 | 311 | * @padding2: reserved for future, not used, has to be zeroed |
| 298 | 312 | * @name: volume name |
| @@ -321,7 +335,7 @@ struct ubi_mkvol_req { · 22 unmodified lines | ||
| 321 | 335 | __s32 alignment; |
| 322 | 336 | __s64 bytes; |
| 323 | 337 | __s8 vol_type; |
| 324 | − __s8 padding1; | |
| 338 | + __u8 flags; | |
| 325 | 339 | __s16 name_len; |
| 326 | 340 | __s8 padding2[4]; |
| 327 | 341 | char name[UBI_MAX_VOLUME_NAME + 1]; |
| @@ -44,6 +44,16 @@ · 43 unmodified lines | ||
| 44 | 44 | * In particular do not use pointer types -- pass pointers in __aligned_u64 |
| 45 | 45 | * instead. |
| 46 | 46 | */ |
| 47 | + | |
| 48 | +enum { | |
| 49 | + C4IW_64B_CQE = (1 << 0) | |
| 50 | +}; | |
| 51 | + | |
| 52 | +struct c4iw_create_cq { | |
| 53 | + __u32 flags; | |
| 54 | + __u32 reserved; | |
| 55 | +}; | |
| 56 | + | |
| 47 | 57 | struct c4iw_create_cq_resp { |
| 48 | 58 | __aligned_u64 key; |
| 49 | 59 | __aligned_u64 gts_key; |
| @@ -51,11 +61,12 @@ struct c4iw_create_cq_resp { · 1 unmodified line | ||
| 51 | 61 | __u32 cqid; |
| 52 | 62 | __u32 size; |
| 53 | 63 | __u32 qid_mask; |
| 54 | − __u32 reserved; /* explicit padding (optional for i386) */ | |
| 64 | + __u32 flags; | |
| 55 | 65 | }; |
| 56 | 66 | |
| 57 | 67 | enum { |
| 58 | − C4IW_QPF_ONCHIP = (1 << 0) | |
| 68 | + C4IW_QPF_ONCHIP = (1 << 0), | |
| 69 | + C4IW_QPF_WRITE_W_IMM = (1 << 1) | |
| 59 | 70 | }; |
| 60 | 71 | |
| 61 | 72 | struct c4iw_create_qp_resp { |
| @@ -74,6 +85,23 @@ struct c4iw_create_qp_resp { · 12 unmodified lines | ||
| 74 | 85 | __u32 flags; |
| 75 | 86 | }; |
| 76 | 87 | |
| 88 | +struct c4iw_create_srq_resp { | |
| 89 | + __aligned_u64 srq_key; | |
| 90 | + __aligned_u64 srq_db_gts_key; | |
| 91 | + __aligned_u64 srq_memsize; | |
| 92 | + __u32 srqid; | |
| 93 | + __u32 srq_size; | |
| 94 | + __u32 rqt_abs_idx; | |
| 95 | + __u32 qid_mask; | |
| 96 | + __u32 flags; | |
| 97 | + __u32 reserved; /* explicit padding */ | |
| 98 | +}; | |
| 99 | + | |
| 100 | +enum { | |
| 101 | + /* HW supports SRQ_LIMIT_REACHED event */ | |
| 102 | + T4_SRQ_LIMIT_SUPPORT = 1 << 0, | |
| 103 | +}; | |
| 104 | + | |
| 77 | 105 | struct c4iw_alloc_ucontext_resp { |
| 78 | 106 | __aligned_u64 status_page_key; |
| 79 | 107 | __u32 status_page_size; |
| @@ -53,6 +53,7 @@ struct hns_roce_ib_create_qp { · 52 unmodified lines | ||
| 53 | 53 | __u8 log_sq_stride; |
| 54 | 54 | __u8 sq_no_prefetch; |
| 55 | 55 | __u8 reserved[5]; |
| 56 | + __aligned_u64 sdb_addr; | |
| 56 | 57 | }; |
| 57 | 58 | |
| 58 | 59 | struct hns_roce_ib_create_qp_resp { |
| @@ -79,7 +79,7 @@ enum uverbs_attrs_destroy_cq_cmd_attr_ids { · 78 unmodified lines | ||
| 79 | 79 | }; |
| 80 | 80 | |
| 81 | 81 | enum uverbs_attrs_create_flow_action_esp { |
| 82 | − UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE, | |
| 82 | + UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE, | |
| 83 | 83 | UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS, |
| 84 | 84 | UVERBS_ATTR_FLOW_ACTION_ESP_ESN, |
| 85 | 85 | UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT, |
| @@ -87,6 +87,11 @@ enum uverbs_attrs_create_flow_action_esp { · 1 unmodified line | ||
| 87 | 87 | UVERBS_ATTR_FLOW_ACTION_ESP_ENCAP, |
| 88 | 88 | }; |
| 89 | 89 | |
| 90 | +enum uverbs_attrs_modify_flow_action_esp { | |
| 91 | + UVERBS_ATTR_MODIFY_FLOW_ACTION_ESP_HANDLE = | |
| 92 | + UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE, | |
| 93 | +}; | |
| 94 | + | |
| 90 | 95 | enum uverbs_attrs_destroy_flow_action_esp { |
| 91 | 96 | UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE, |
| 92 | 97 | }; |
| @@ -40,6 +40,59 @@ · 39 unmodified lines | ||
| 40 | 40 | #define RDMA_UAPI_PTR(_type, _name) __aligned_u64 _name |
| 41 | 41 | #endif |
| 42 | 42 | |
| 43 | +enum ib_uverbs_access_flags { | |
| 44 | + IB_UVERBS_ACCESS_LOCAL_WRITE = 1 << 0, | |
| 45 | + IB_UVERBS_ACCESS_REMOTE_WRITE = 1 << 1, | |
| 46 | + IB_UVERBS_ACCESS_REMOTE_READ = 1 << 2, | |
| 47 | + IB_UVERBS_ACCESS_REMOTE_ATOMIC = 1 << 3, | |
| 48 | + IB_UVERBS_ACCESS_MW_BIND = 1 << 4, | |
| 49 | + IB_UVERBS_ACCESS_ZERO_BASED = 1 << 5, | |
| 50 | + IB_UVERBS_ACCESS_ON_DEMAND = 1 << 6, | |
| 51 | + IB_UVERBS_ACCESS_HUGETLB = 1 << 7, | |
| 52 | +}; | |
| 53 | + | |
| 54 | +enum ib_uverbs_query_port_cap_flags { | |
| 55 | + IB_UVERBS_PCF_SM = 1 << 1, | |
| 56 | + IB_UVERBS_PCF_NOTICE_SUP = 1 << 2, | |
| 57 | + IB_UVERBS_PCF_TRAP_SUP = 1 << 3, | |
| 58 | + IB_UVERBS_PCF_OPT_IPD_SUP = 1 << 4, | |
| 59 | + IB_UVERBS_PCF_AUTO_MIGR_SUP = 1 << 5, | |
| 60 | + IB_UVERBS_PCF_SL_MAP_SUP = 1 << 6, | |
| 61 | + IB_UVERBS_PCF_MKEY_NVRAM = 1 << 7, | |
| 62 | + IB_UVERBS_PCF_PKEY_NVRAM = 1 << 8, | |
| 63 | + IB_UVERBS_PCF_LED_INFO_SUP = 1 << 9, | |
| 64 | + IB_UVERBS_PCF_SM_DISABLED = 1 << 10, | |
| 65 | + IB_UVERBS_PCF_SYS_IMAGE_GUID_SUP = 1 << 11, | |
| 66 | + IB_UVERBS_PCF_PKEY_SW_EXT_PORT_TRAP_SUP = 1 << 12, | |
| 67 | + IB_UVERBS_PCF_EXTENDED_SPEEDS_SUP = 1 << 14, | |
| 68 | + IB_UVERBS_PCF_CM_SUP = 1 << 16, | |
| 69 | + IB_UVERBS_PCF_SNMP_TUNNEL_SUP = 1 << 17, | |
| 70 | + IB_UVERBS_PCF_REINIT_SUP = 1 << 18, | |
| 71 | + IB_UVERBS_PCF_DEVICE_MGMT_SUP = 1 << 19, | |
| 72 | + IB_UVERBS_PCF_VENDOR_CLASS_SUP = 1 << 20, | |
| 73 | + IB_UVERBS_PCF_DR_NOTICE_SUP = 1 << 21, | |
| 74 | + IB_UVERBS_PCF_CAP_MASK_NOTICE_SUP = 1 << 22, | |
| 75 | + IB_UVERBS_PCF_BOOT_MGMT_SUP = 1 << 23, | |
| 76 | + IB_UVERBS_PCF_LINK_LATENCY_SUP = 1 << 24, | |
| 77 | + IB_UVERBS_PCF_CLIENT_REG_SUP = 1 << 25, | |
| 78 | + /* | |
| 79 | + * IsOtherLocalChangesNoticeSupported is aliased by IP_BASED_GIDS and | |
| 80 | + * is inaccessible | |
| 81 | + */ | |
| 82 | + IB_UVERBS_PCF_LINK_SPEED_WIDTH_TABLE_SUP = 1 << 27, | |
| 83 | + IB_UVERBS_PCF_VENDOR_SPECIFIC_MADS_TABLE_SUP = 1 << 28, | |
| 84 | + IB_UVERBS_PCF_MCAST_PKEY_TRAP_SUPPRESSION_SUP = 1 << 29, | |
| 85 | + IB_UVERBS_PCF_MCAST_FDB_TOP_SUP = 1 << 30, | |
| 86 | + IB_UVERBS_PCF_HIERARCHY_INFO_SUP = 1ULL << 31, | |
| 87 | + | |
| 88 | + /* NOTE this is an internal flag, not an IBA flag */ | |
| 89 | + IB_UVERBS_PCF_IP_BASED_GIDS = 1 << 26, | |
| 90 | +}; | |
| 91 | + | |
| 92 | +enum ib_uverbs_query_port_flags { | |
| 93 | + IB_UVERBS_QPF_GRH_REQUIRED = 1 << 0, | |
| 94 | +}; | |
| 95 | + | |
| 43 | 96 | enum ib_uverbs_flow_action_esp_keymat { |
| 44 | 97 | IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM, |
| 45 | 98 | }; |
| @@ -99,4 +152,9 @@ struct ib_uverbs_flow_action_esp { · 53 unmodified lines | ||
| 99 | 152 | __aligned_u64 hard_limit_pkts; |
| 100 | 153 | }; |
| 101 | 154 | |
| 155 | +enum ib_uverbs_read_counters_flags { | |
| 156 | + /* prefer read values from driver cache */ | |
| 157 | + IB_UVERBS_READ_COUNTERS_PREFER_CACHED = 1 << 0, | |
| 158 | +}; | |
| 159 | + | |
| 102 | 160 | #endif |
| @@ -279,7 +279,7 @@ struct ib_uverbs_query_port { · 278 unmodified lines | ||
| 279 | 279 | }; |
| 280 | 280 | |
| 281 | 281 | struct ib_uverbs_query_port_resp { |
| 282 | − __u32 port_cap_flags; | |
| 282 | + __u32 port_cap_flags; /* see ib_uverbs_query_port_cap_flags */ | |
| 283 | 283 | __u32 max_msg_sz; |
| 284 | 284 | __u32 bad_pkey_cntr; |
| 285 | 285 | __u32 qkey_viol_cntr; |
| @@ -299,7 +299,8 @@ struct ib_uverbs_query_port_resp { · 13 unmodified lines | ||
| 299 | 299 | __u8 active_speed; |
| 300 | 300 | __u8 phys_state; |
| 301 | 301 | __u8 link_layer; |
| 302 | − __u8 reserved[2]; | |
| 302 | + __u8 flags; /* see ib_uverbs_query_port_flags */ | |
| 303 | + __u8 reserved; | |
| 303 | 304 | }; |
| 304 | 305 | |
| 305 | 306 | struct ib_uverbs_alloc_pd { |
| @@ -76,6 +76,9 @@ enum mlx5_lib_caps { · 75 unmodified lines | ||
| 76 | 76 | MLX5_LIB_CAP_4K_UAR = (__u64)1 << 0, |
| 77 | 77 | }; |
| 78 | 78 | |
| 79 | +enum mlx5_ib_alloc_uctx_v2_flags { | |
| 80 | + MLX5_IB_ALLOC_UCTX_DEVX = 1 << 0, | |
| 81 | +}; | |
| 79 | 82 | struct mlx5_ib_alloc_ucontext_req_v2 { |
| 80 | 83 | __u32 total_num_bfregs; |
| 81 | 84 | __u32 num_low_latency_bfregs; |
| @@ -90,6 +93,7 @@ struct mlx5_ib_alloc_ucontext_req_v2 { · 8 unmodified lines | ||
| 90 | 93 | |
| 91 | 94 | enum mlx5_ib_alloc_ucontext_resp_mask { |
| 92 | 95 | MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0, |
| 96 | + MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1, | |
| 93 | 97 | }; |
| 94 | 98 | |
| 95 | 99 | enum mlx5_user_cmds_supp_uhw { |
| @@ -138,7 +142,7 @@ struct mlx5_ib_alloc_ucontext_resp { · 42 unmodified lines | ||
| 138 | 142 | __u32 log_uar_size; |
| 139 | 143 | __u32 num_uars_per_page; |
| 140 | 144 | __u32 num_dyn_bfregs; |
| 141 | − __u32 reserved3; | |
| 145 | + __u32 dump_fill_mkey; | |
| 142 | 146 | }; |
| 143 | 147 | |
| 144 | 148 | struct mlx5_ib_alloc_pd_resp { |
| @@ -33,6 +33,7 @@ · 32 unmodified lines | ||
| 33 | 33 | #ifndef MLX5_USER_IOCTL_CMDS_H |
| 34 | 34 | #define MLX5_USER_IOCTL_CMDS_H |
| 35 | 35 | |
| 36 | +#include <linux/types.h> | |
| 36 | 37 | #include <rdma/ib_user_ioctl_cmds.h> |
| 37 | 38 | |
| 38 | 39 | enum mlx5_ib_create_flow_action_attrs { |
| @@ -45,4 +46,124 @@ enum mlx5_ib_alloc_dm_attrs { · 6 unmodified lines | ||
| 45 | 46 | MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX, |
| 46 | 47 | }; |
| 47 | 48 | |
| 49 | +enum mlx5_ib_devx_methods { | |
| 50 | + MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT), | |
| 51 | + MLX5_IB_METHOD_DEVX_QUERY_UAR, | |
| 52 | + MLX5_IB_METHOD_DEVX_QUERY_EQN, | |
| 53 | +}; | |
| 54 | + | |
| 55 | +enum mlx5_ib_devx_other_attrs { | |
| 56 | + MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT), | |
| 57 | + MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT, | |
| 58 | +}; | |
| 59 | + | |
| 60 | +enum mlx5_ib_devx_obj_create_attrs { | |
| 61 | + MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 62 | + MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN, | |
| 63 | + MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT, | |
| 64 | +}; | |
| 65 | + | |
| 66 | +enum mlx5_ib_devx_query_uar_attrs { | |
| 67 | + MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT), | |
| 68 | + MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX, | |
| 69 | +}; | |
| 70 | + | |
| 71 | +enum mlx5_ib_devx_obj_destroy_attrs { | |
| 72 | + MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 73 | +}; | |
| 74 | + | |
| 75 | +enum mlx5_ib_devx_obj_modify_attrs { | |
| 76 | + MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 77 | + MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN, | |
| 78 | + MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT, | |
| 79 | +}; | |
| 80 | + | |
| 81 | +enum mlx5_ib_devx_obj_query_attrs { | |
| 82 | + MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 83 | + MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN, | |
| 84 | + MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT, | |
| 85 | +}; | |
| 86 | + | |
| 87 | +enum mlx5_ib_devx_query_eqn_attrs { | |
| 88 | + MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT), | |
| 89 | + MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN, | |
| 90 | +}; | |
| 91 | + | |
| 92 | +enum mlx5_ib_devx_obj_methods { | |
| 93 | + MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT), | |
| 94 | + MLX5_IB_METHOD_DEVX_OBJ_DESTROY, | |
| 95 | + MLX5_IB_METHOD_DEVX_OBJ_MODIFY, | |
| 96 | + MLX5_IB_METHOD_DEVX_OBJ_QUERY, | |
| 97 | +}; | |
| 98 | + | |
| 99 | +enum mlx5_ib_devx_umem_reg_attrs { | |
| 100 | + MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 101 | + MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR, | |
| 102 | + MLX5_IB_ATTR_DEVX_UMEM_REG_LEN, | |
| 103 | + MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS, | |
| 104 | + MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID, | |
| 105 | +}; | |
| 106 | + | |
| 107 | +enum mlx5_ib_devx_umem_dereg_attrs { | |
| 108 | + MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 109 | +}; | |
| 110 | + | |
| 111 | +enum mlx5_ib_devx_umem_methods { | |
| 112 | + MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT), | |
| 113 | + MLX5_IB_METHOD_DEVX_UMEM_DEREG, | |
| 114 | +}; | |
| 115 | + | |
| 116 | +enum mlx5_ib_objects { | |
| 117 | + MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT), | |
| 118 | + MLX5_IB_OBJECT_DEVX_OBJ, | |
| 119 | + MLX5_IB_OBJECT_DEVX_UMEM, | |
| 120 | + MLX5_IB_OBJECT_FLOW_MATCHER, | |
| 121 | +}; | |
| 122 | + | |
| 123 | +enum mlx5_ib_flow_matcher_create_attrs { | |
| 124 | + MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 125 | + MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK, | |
| 126 | + MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE, | |
| 127 | + MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA, | |
| 128 | +}; | |
| 129 | + | |
| 130 | +enum mlx5_ib_flow_matcher_destroy_attrs { | |
| 131 | + MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 132 | +}; | |
| 133 | + | |
| 134 | +enum mlx5_ib_flow_matcher_methods { | |
| 135 | + MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT), | |
| 136 | + MLX5_IB_METHOD_FLOW_MATCHER_DESTROY, | |
| 137 | +}; | |
| 138 | + | |
| 139 | +#define MLX5_IB_DW_MATCH_PARAM 0x80 | |
| 140 | + | |
| 141 | +struct mlx5_ib_match_params { | |
| 142 | + __u32 match_params[MLX5_IB_DW_MATCH_PARAM]; | |
| 143 | +}; | |
| 144 | + | |
| 145 | +enum mlx5_ib_flow_type { | |
| 146 | + MLX5_IB_FLOW_TYPE_NORMAL, | |
| 147 | + MLX5_IB_FLOW_TYPE_SNIFFER, | |
| 148 | + MLX5_IB_FLOW_TYPE_ALL_DEFAULT, | |
| 149 | + MLX5_IB_FLOW_TYPE_MC_DEFAULT, | |
| 150 | +}; | |
| 151 | + | |
| 152 | +enum mlx5_ib_create_flow_attrs { | |
| 153 | + MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 154 | + MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE, | |
| 155 | + MLX5_IB_ATTR_CREATE_FLOW_DEST_QP, | |
| 156 | + MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX, | |
| 157 | + MLX5_IB_ATTR_CREATE_FLOW_MATCHER, | |
| 158 | +}; | |
| 159 | + | |
| 160 | +enum mlx5_ib_destoy_flow_attrs { | |
| 161 | + MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
| 162 | +}; | |
| 163 | + | |
| 164 | +enum mlx5_ib_flow_methods { | |
| 165 | + MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT), | |
| 166 | + MLX5_IB_METHOD_DESTROY_FLOW, | |
| 167 | +}; | |
| 168 | + | |
| 48 | 169 | #endif |
| @@ -111,4 +111,21 @@ struct qedr_create_qp_uresp { · 110 unmodified lines | ||
| 111 | 111 | __u32 reserved; |
| 112 | 112 | }; |
| 113 | 113 | |
| 114 | +struct qedr_create_srq_ureq { | |
| 115 | + /* user space virtual address of producer pair */ | |
| 116 | + __aligned_u64 prod_pair_addr; | |
| 117 | + | |
| 118 | + /* user space virtual address of SRQ buffer */ | |
| 119 | + __aligned_u64 srq_addr; | |
| 120 | + | |
| 121 | + /* length of SRQ buffer */ | |
| 122 | + __aligned_u64 srq_len; | |
| 123 | +}; | |
| 124 | + | |
| 125 | +struct qedr_create_srq_uresp { | |
| 126 | + __u16 srq_id; | |
| 127 | + __u16 reserved0; | |
| 128 | + __u32 reserved1; | |
| 129 | +}; | |
| 130 | + | |
| 114 | 131 | #endif /* __QEDR_USER_H__ */ |
| @@ -62,7 +62,12 @@ struct ib_uverbs_attr { · 61 unmodified lines | ||
| 62 | 62 | } enum_data; |
| 63 | 63 | __u16 reserved; |
| 64 | 64 | } attr_data; |
| 65 | − __aligned_u64 data; /* ptr to command, inline data or idr/fd */ | |
| 65 | + union { | |
| 66 | + /* Used by PTR_IN/OUT, ENUM_IN and IDR */ | |
| 67 | + __aligned_u64 data; | |
| 68 | + /* Used by FD_IN and FD_OUT */ | |
| 69 | + __s64 data_s64; | |
| 70 | + }; | |
| 66 | 71 | }; |
| 67 | 72 | |
| 68 | 73 | struct ib_uverbs_ioctl_hdr { |
| @@ -5,6 +5,7 @@ · 4 unmodified lines | ||
| 5 | 5 | * Interface to /dev/xen/gntdev. |
| 6 | 6 | * |
| 7 | 7 | * Copyright (c) 2007, D G Murray |
| 8 | + * Copyright (c) 2018, Oleksandr Andrushchenko, EPAM Systems Inc. | |
| 8 | 9 | * |
| 9 | 10 | * This program is free software; you can redistribute it and/or |
| 10 | 11 | * modify it under the terms of the GNU General Public License version 2 |
| @@ -200,4 +201,109 @@ struct ioctl_gntdev_grant_copy { · 189 unmodified lines | ||
| 200 | 201 | /* Send an interrupt on the indicated event channel */ |
| 201 | 202 | #define UNMAP_NOTIFY_SEND_EVENT 0x2 |
| 202 | 203 | |
| 204 | +/* | |
| 205 | + * Flags to be used while requesting memory mapping's backing storage | |
| 206 | + * to be allocated with DMA API. | |
| 207 | + */ | |
| 208 | + | |
| 209 | +/* | |
| 210 | + * The buffer is backed with memory allocated with dma_alloc_wc. | |
| 211 | + */ | |
| 212 | +#define GNTDEV_DMA_FLAG_WC (1 << 0) | |
| 213 | + | |
| 214 | +/* | |
| 215 | + * The buffer is backed with memory allocated with dma_alloc_coherent. | |
| 216 | + */ | |
| 217 | +#define GNTDEV_DMA_FLAG_COHERENT (1 << 1) | |
| 218 | + | |
| 219 | +/* | |
| 220 | + * Create a dma-buf [1] from grant references @refs of count @count provided | |
| 221 | + * by the foreign domain @domid with flags @flags. | |
| 222 | + * | |
| 223 | + * By default dma-buf is backed by system memory pages, but by providing | |
| 224 | + * one of the GNTDEV_DMA_FLAG_XXX flags it can also be created as | |
| 225 | + * a DMA write-combine or coherent buffer, e.g. allocated with dma_alloc_wc/ | |
| 226 | + * dma_alloc_coherent. | |
| 227 | + * | |
| 228 | + * Returns 0 if dma-buf was successfully created and the corresponding | |
| 229 | + * dma-buf's file descriptor is returned in @fd. | |
| 230 | + * | |
| 231 | + * [1] Documentation/driver-api/dma-buf.rst | |
| 232 | + */ | |
| 233 | + | |
| 234 | +#define IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS \ | |
| 235 | + _IOC(_IOC_NONE, 'G', 9, \ | |
| 236 | + sizeof(struct ioctl_gntdev_dmabuf_exp_from_refs)) | |
| 237 | +struct ioctl_gntdev_dmabuf_exp_from_refs { | |
| 238 | + /* IN parameters. */ | |
| 239 | + /* Specific options for this dma-buf: see GNTDEV_DMA_FLAG_XXX. */ | |
| 240 | + __u32 flags; | |
| 241 | + /* Number of grant references in @refs array. */ | |
| 242 | + __u32 count; | |
| 243 | + /* OUT parameters. */ | |
| 244 | + /* File descriptor of the dma-buf. */ | |
| 245 | + __u32 fd; | |
| 246 | + /* The domain ID of the grant references to be mapped. */ | |
| 247 | + __u32 domid; | |
| 248 | + /* Variable IN parameter. */ | |
| 249 | + /* Array of grant references of size @count. */ | |
| 250 | + __u32 refs[1]; | |
| 251 | +}; | |
| 252 | + | |
| 253 | +/* | |
| 254 | + * This will block until the dma-buf with the file descriptor @fd is | |
| 255 | + * released. This is only valid for buffers created with | |
| 256 | + * IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS. | |
| 257 | + * | |
| 258 | + * If within @wait_to_ms milliseconds the buffer is not released | |
| 259 | + * then -ETIMEDOUT error is returned. | |
| 260 | + * If the buffer with the file descriptor @fd does not exist or has already | |
| 261 | + * been released, then -ENOENT is returned. For valid file descriptors | |
| 262 | + * this must not be treated as error. | |
| 263 | + */ | |
| 264 | +#define IOCTL_GNTDEV_DMABUF_EXP_WAIT_RELEASED \ | |
| 265 | + _IOC(_IOC_NONE, 'G', 10, \ | |
| 266 | + sizeof(struct ioctl_gntdev_dmabuf_exp_wait_released)) | |
| 267 | +struct ioctl_gntdev_dmabuf_exp_wait_released { | |
| 268 | + /* IN parameters */ | |
| 269 | + __u32 fd; | |
| 270 | + __u32 wait_to_ms; | |
| 271 | +}; | |
| 272 | + | |
| 273 | +/* | |
| 274 | + * Import a dma-buf with file descriptor @fd and export granted references | |
| 275 | + * to the pages of that dma-buf into array @refs of size @count. | |
| 276 | + */ | |
| 277 | +#define IOCTL_GNTDEV_DMABUF_IMP_TO_REFS \ | |
| 278 | + _IOC(_IOC_NONE, 'G', 11, \ | |
| 279 | + sizeof(struct ioctl_gntdev_dmabuf_imp_to_refs)) | |
| 280 | +struct ioctl_gntdev_dmabuf_imp_to_refs { | |
| 281 | + /* IN parameters. */ | |
| 282 | + /* File descriptor of the dma-buf. */ | |
| 283 | + __u32 fd; | |
| 284 | + /* Number of grant references in @refs array. */ | |
| 285 | + __u32 count; | |
| 286 | + /* The domain ID for which references to be granted. */ | |
| 287 | + __u32 domid; | |
| 288 | + /* Reserved - must be zero. */ | |
| 289 | + __u32 reserved; | |
| 290 | + /* OUT parameters. */ | |
| 291 | + /* Array of grant references of size @count. */ | |
| 292 | + __u32 refs[1]; | |
| 293 | +}; | |
| 294 | + | |
| 295 | +/* | |
| 296 | + * This will close all references to the imported buffer with file descriptor | |
| 297 | + * @fd, so it can be released by the owner. This is only valid for buffers | |
| 298 | + * created with IOCTL_GNTDEV_DMABUF_IMP_TO_REFS. | |
| 299 | + */ | |
| 300 | +#define IOCTL_GNTDEV_DMABUF_IMP_RELEASE \ | |
| 301 | + _IOC(_IOC_NONE, 'G', 12, \ | |
| 302 | + sizeof(struct ioctl_gntdev_dmabuf_imp_release)) | |
| 303 | +struct ioctl_gntdev_dmabuf_imp_release { | |
| 304 | + /* IN parameters */ | |
| 305 | + __u32 fd; | |
| 306 | + __u32 reserved; | |
| 307 | +}; | |
| 308 | + | |
| 203 | 309 | #endif /* __LINUX_PUBLIC_GNTDEV_H__ */ |