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 | #define SO_ZEROCOPY 60 | 108 | #define SO_ZEROCOPY 60 |
| 109 | 109 | ||
| 110 | #define SO_TXTIME 61 | ||
| 111 | #define SCM_TXTIME SO_TXTIME | ||
| 112 | |||
| 110 | #endif /* __ASM_GENERIC_SOCKET_H */ | 113 | #endif /* __ASM_GENERIC_SOCKET_H */ |
| @@ -734,9 +734,11 @@ __SYSCALL(__NR_pkey_free, sys_pkey_free) · 733 unmodified lines | |||
| 734 | __SYSCALL(__NR_statx, sys_statx) | 734 | __SYSCALL(__NR_statx, sys_statx) |
| 735 | #define __NR_io_pgetevents 292 | 735 | #define __NR_io_pgetevents 292 |
| 736 | __SC_COMP(__NR_io_pgetevents, sys_io_pgetevents, compat_sys_io_pgetevents) | 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 | #undef __NR_syscalls | 740 | #undef __NR_syscalls |
| 739 | #define __NR_syscalls 293 | 741 | #define __NR_syscalls 294 |
| 740 | 742 | ||
| 741 | /* | 743 | /* |
| 742 | * 32 bit systems traditionally used different | 744 | * 32 bit systems traditionally used different |
| @@ -516,6 +516,7 @@ struct drm_amdgpu_gem_va { · 515 unmodified lines | |||
| 516 | #define AMDGPU_CHUNK_ID_DEPENDENCIES 0x03 | 516 | #define AMDGPU_CHUNK_ID_DEPENDENCIES 0x03 |
| 517 | #define AMDGPU_CHUNK_ID_SYNCOBJ_IN 0x04 | 517 | #define AMDGPU_CHUNK_ID_SYNCOBJ_IN 0x04 |
| 518 | #define AMDGPU_CHUNK_ID_SYNCOBJ_OUT 0x05 | 518 | #define AMDGPU_CHUNK_ID_SYNCOBJ_OUT 0x05 |
| 519 | #define AMDGPU_CHUNK_ID_BO_HANDLES 0x06 | ||
| 519 | 520 | ||
| 520 | struct drm_amdgpu_cs_chunk { | 521 | struct drm_amdgpu_cs_chunk { |
| 521 | __u32 chunk_id; | 522 | __u32 chunk_id; |
| @@ -335,6 +335,19 @@ extern "C" { · 334 unmodified lines | |||
| 335 | */ | 335 | */ |
| 336 | #define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1) | 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 | /* Vivante framebuffer modifiers */ | 351 | /* Vivante framebuffer modifiers */ |
| 339 | 352 | ||
| 340 | /* | 353 | /* |
| @@ -40,6 +40,7 @@ extern "C" { · 39 unmodified lines | |||
| 40 | 40 | ||
| 41 | #define DRM_VMW_GET_PARAM 0 | 41 | #define DRM_VMW_GET_PARAM 0 |
| 42 | #define DRM_VMW_ALLOC_DMABUF 1 | 42 | #define DRM_VMW_ALLOC_DMABUF 1 |
| 43 | #define DRM_VMW_ALLOC_BO 1 | ||
| 43 | #define DRM_VMW_UNREF_DMABUF 2 | 44 | #define DRM_VMW_UNREF_DMABUF 2 |
| 44 | #define DRM_VMW_HANDLE_CLOSE 2 | 45 | #define DRM_VMW_HANDLE_CLOSE 2 |
| 45 | #define DRM_VMW_CURSOR_BYPASS 3 | 46 | #define DRM_VMW_CURSOR_BYPASS 3 |
| @@ -68,6 +69,8 @@ extern "C" { · 22 unmodified lines | |||
| 68 | #define DRM_VMW_GB_SURFACE_REF 24 | 69 | #define DRM_VMW_GB_SURFACE_REF 24 |
| 69 | #define DRM_VMW_SYNCCPU 25 | 70 | #define DRM_VMW_SYNCCPU 25 |
| 70 | #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26 | 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 | * DRM_VMW_PARAM_OVERLAY_IOCTL: | 83 | * DRM_VMW_PARAM_OVERLAY_IOCTL: |
| 81 | * Does the driver support the overlay ioctl. | 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 | #define DRM_VMW_PARAM_NUM_STREAMS 0 | 90 | #define DRM_VMW_PARAM_NUM_STREAMS 0 |
| @@ -94,6 +100,8 @@ extern "C" { · 9 unmodified lines | |||
| 94 | #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 | 100 | #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 |
| 95 | #define DRM_VMW_PARAM_SCREEN_TARGET 11 | 101 | #define DRM_VMW_PARAM_SCREEN_TARGET 11 |
| 96 | #define DRM_VMW_PARAM_DX 12 | 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 | * enum drm_vmw_handle_type - handle type for ref ioctls | 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 | * NOTE: The buffer is | 370 | * NOTE: The buffer is |
| 363 | * identified by a handle and an offset, which are private to the guest, but | 371 | * identified by a handle and an offset, which are private to the guest, but |
| 364 | * useable in the command stream. The guest kernel may translate these | 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 | * be zero at all times, or it may disappear from the interface before it is | 374 | * be zero at all times, or it may disappear from the interface before it is |
| 367 | * fixed. | 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 | * and is thus suitable for sub-allocation. | 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 | * @size: Required minimum size of the buffer. | 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 | __u32 size; | 392 | __u32 size; |
| 385 | __u32 pad64; | 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 | * @map_handle: Offset to use in the mmap() call used to map the buffer. | 400 | * @map_handle: Offset to use in the mmap() call used to map the buffer. |
| 392 | * @handle: Handle unique to this buffer. Used for unreferencing. | 401 | * @handle: Handle unique to this buffer. Used for unreferencing. |
| @@ -395,50 +404,32 @@ struct drm_vmw_alloc_dmabuf_req { · 2 unmodified lines | |||
| 395 | * @cur_gmr_offset: Offset to use in the command stream when this buffer is | 404 | * @cur_gmr_offset: Offset to use in the command stream when this buffer is |
| 396 | * referenced. See note above. | 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 | __u64 map_handle; | 411 | __u64 map_handle; |
| 403 | __u32 handle; | 412 | __u32 handle; |
| 404 | __u32 cur_gmr_id; | 413 | __u32 cur_gmr_id; |
| 405 | __u32 cur_gmr_offset; | 414 | __u32 cur_gmr_offset; |
| 406 | __u32 pad64; | 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 | * @req: Input data as described above. | 422 | * @req: Input data as described above. |
| 413 | * @rep: Output data as described above. | 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 { | 428 | union drm_vmw_alloc_bo_arg { |
| 419 | struct drm_vmw_alloc_dmabuf_req req; | 429 | struct drm_vmw_alloc_bo_req req; |
| 420 | struct drm_vmw_dmabuf_rep rep; | 430 | struct drm_vmw_bo_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; | ||
| 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 | * DRM_VMW_HANDLE_CLOSE - Close a user-space handle and release its | 1094 | * DRM_VMW_HANDLE_CLOSE - Close a user-space handle and release its |
| 1104 | * underlying resource. | 1095 | * underlying resource. |
| 1105 | * | 1096 | * |
| 1106 | * Note that this ioctl is overlaid on the DRM_VMW_UNREF_DMABUF Ioctl. | 1097 | * Note that this ioctl is overlaid on the deprecated DRM_VMW_UNREF_DMABUF |
| 1107 | * The ioctl arguments therefore need to be identical in layout. | 1098 | * Ioctl. |
| 1108 | * | ||
| 1109 | */ | 1099 | */ |
| 1110 | 1100 | ||
| 1111 | /** | 1101 | /** |
| @@ -1119,7 +1109,107 @@ struct drm_vmw_handle_close_arg { · 7 unmodified lines | |||
| 1119 | __u32 handle; | 1109 | __u32 handle; |
| 1120 | __u32 pad64; | 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 | #if defined(__cplusplus) | 1214 | #if defined(__cplusplus) |
| 1125 | } | 1215 | } |
| @@ -29,7 +29,6 @@ · 28 unmodified lines | |||
| 29 | 29 | ||
| 30 | #include <linux/types.h> | 30 | #include <linux/types.h> |
| 31 | #include <linux/fs.h> | 31 | #include <linux/fs.h> |
| 32 | #include <linux/signal.h> | ||
| 33 | #include <asm/byteorder.h> | 32 | #include <asm/byteorder.h> |
| 34 | 33 | ||
| 35 | typedef __kernel_ulong_t aio_context_t; | 34 | typedef __kernel_ulong_t aio_context_t; |
| @@ -39,10 +38,8 @@ enum { · 3 unmodified lines | |||
| 39 | IOCB_CMD_PWRITE = 1, | 38 | IOCB_CMD_PWRITE = 1, |
| 40 | IOCB_CMD_FSYNC = 2, | 39 | IOCB_CMD_FSYNC = 2, |
| 41 | IOCB_CMD_FDSYNC = 3, | 40 | IOCB_CMD_FDSYNC = 3, |
| 42 | /* These two are experimental. | 41 | /* 4 was the experimental IOCB_CMD_PREADX */ |
| 43 | * IOCB_CMD_PREADX = 4, | 42 | IOCB_CMD_POLL = 5, |
| 44 | * IOCB_CMD_POLL = 5, | ||
| 45 | */ | ||
| 46 | IOCB_CMD_NOOP = 6, | 43 | IOCB_CMD_NOOP = 6, |
| 47 | IOCB_CMD_PREADV = 7, | 44 | IOCB_CMD_PREADV = 7, |
| 48 | IOCB_CMD_PWRITEV = 8, | 45 | IOCB_CMD_PWRITEV = 8, |
| @@ -110,10 +107,5 @@ struct iocb { · 61 unmodified lines | |||
| 110 | #undef IFBIG | 107 | #undef IFBIG |
| 111 | #undef IFLITTLE | 108 | #undef IFLITTLE |
| 112 | 109 | ||
| 113 | struct __aio_sigset { | ||
| 114 | const sigset_t __user *sigmask; | ||
| 115 | size_t sigsetsize; | ||
| 116 | }; | ||
| 117 | |||
| 118 | #endif /* __LINUX__AIO_ABI_H */ | 110 | #endif /* __LINUX__AIO_ABI_H */ |
| 119 | 111 | ||
| @@ -148,6 +148,7 @@ · 147 unmodified lines | |||
| 148 | #define AUDIT_INTEGRITY_PCR 1804 /* PCR invalidation msgs */ | 148 | #define AUDIT_INTEGRITY_PCR 1804 /* PCR invalidation msgs */ |
| 149 | #define AUDIT_INTEGRITY_RULE 1805 /* policy rule */ | 149 | #define AUDIT_INTEGRITY_RULE 1805 /* policy rule */ |
| 150 | #define AUDIT_INTEGRITY_EVM_XATTR 1806 /* New EVM-covered xattr */ | 150 | #define AUDIT_INTEGRITY_EVM_XATTR 1806 /* New EVM-covered xattr */ |
| 151 | #define AUDIT_INTEGRITY_POLICY_RULE 1807 /* IMA policy rules */ | ||
| 151 | 152 | ||
| 152 | #define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */ | 153 | #define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */ |
| 153 | 154 | ||
| @@ -157,7 +158,8 @@ · 3 unmodified lines | |||
| 157 | #define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */ | 158 | #define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */ |
| 158 | #define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */ | 159 | #define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */ |
| 159 | #define AUDIT_FILTER_EXIT 0x04 /* Apply rule at syscall exit */ | 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 | #define AUDIT_FILTER_FS 0x06 /* Apply rule at __audit_inode_child */ | 163 | #define AUDIT_FILTER_FS 0x06 /* Apply rule at __audit_inode_child */ |
| 162 | 164 | ||
| 163 | #define AUDIT_NR_FILTERS 7 | 165 | #define AUDIT_NR_FILTERS 7 |
| @@ -23,7 +23,7 @@ · 22 unmodified lines | |||
| 23 | #define AUTOFS_MIN_PROTO_VERSION 3 | 23 | #define AUTOFS_MIN_PROTO_VERSION 3 |
| 24 | #define AUTOFS_MAX_PROTO_VERSION 5 | 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 | * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed | 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 | /* autofs version 4 and later definitions */ | 90 | /* autofs version 4 and later definitions */ |
| 91 | 91 | ||
| 92 | /* Mask for expire behaviour */ | 92 | /* Mask for expire behaviour */ |
| 93 | #define AUTOFS_EXP_IMMEDIATE 1 | 93 | #define AUTOFS_EXP_NORMAL 0x00 |
| 94 | #define AUTOFS_EXP_LEAVES 2 | 94 | #define AUTOFS_EXP_IMMEDIATE 0x01 |
| 95 | #define AUTOFS_EXP_LEAVES 0x02 | ||
| 96 | #define AUTOFS_EXP_FORCED 0x04 | ||
| 95 | 97 | ||
| 96 | #define AUTOFS_TYPE_ANY 0U | 98 | #define AUTOFS_TYPE_ANY 0U |
| 97 | #define AUTOFS_TYPE_INDIRECT 1U | 99 | #define AUTOFS_TYPE_INDIRECT 1U |
| @@ -30,10 +30,10 @@ struct bkey { · 29 unmodified lines | |||
| 30 | BITMASK(name, struct bkey, field, offset, size) | 30 | BITMASK(name, struct bkey, field, offset, size) |
| 31 | 31 | ||
| 32 | #define PTR_FIELD(name, offset, size) \ | 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 | { return (k->ptr[i] >> offset) & ~(~0ULL << size); } \ | 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 | k->ptr[i] &= ~(~(~0ULL << size) << offset); \ | 38 | k->ptr[i] &= ~(~(~0ULL << size) << offset); \ |
| 39 | k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \ | 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 | static inline struct bkey *bkey_next(const struct bkey *k) | 117 | static inline struct bkey *bkey_next(const struct bkey *k) |
| 118 | { | 118 | { |
| 119 | __u64 *d = (void *) k; | 119 | __u64 *d = (void *) k; |
| 120 | |||
| 120 | return (struct bkey *) (d + bkey_u64s(k)); | 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 | __u64 *d = (void *) k; | 126 | __u64 *d = (void *) k; |
| 127 | |||
| 126 | return (struct bkey *) (d + nr_keys); | 128 | return (struct bkey *) (d + nr_keys); |
| 127 | } | 129 | } |
| 128 | /* Enough for a key with 6 pointers */ | 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 | __u16 first_bucket; | 202 | __u16 first_bucket; |
| 201 | union { | 203 | union { |
| @@ -318,7 +320,7 @@ struct uuid_entry { · 116 unmodified lines | |||
| 318 | struct { | 320 | struct { |
| 319 | __u8 uuid[16]; | 321 | __u8 uuid[16]; |
| 320 | __u8 label[32]; | 322 | __u8 label[32]; |
| 321 | __u32 first_reg; | 323 | __u32 first_reg; /* time overflow in y2106 */ |
| 322 | __u32 last_reg; | 324 | __u32 last_reg; |
| 323 | __u32 invalidated; | 325 | __u32 invalidated; |
| 324 | 326 | ||
| @@ -117,7 +117,7 @@ struct blk_zone_report { · 116 unmodified lines | |||
| 117 | __u32 nr_zones; | 117 | __u32 nr_zones; |
| 118 | __u8 reserved[4]; | 118 | __u8 reserved[4]; |
| 119 | struct blk_zone zones[0]; | 119 | struct blk_zone zones[0]; |
| 120 | } __packed; | 120 | }; |
| 121 | 121 | ||
| 122 | /** | 122 | /** |
| 123 | * struct blk_zone_range - BLKRESETZONE ioctl request | 123 | * struct blk_zone_range - BLKRESETZONE ioctl request |
| @@ -75,6 +75,11 @@ struct bpf_lpm_trie_key { · 74 unmodified lines | |||
| 75 | __u8 data[0]; /* Arbitrary size */ | 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 | /* BPF syscall commands, see bpf(2) man-page for details. */ | 83 | /* BPF syscall commands, see bpf(2) man-page for details. */ |
| 79 | enum bpf_cmd { | 84 | enum bpf_cmd { |
| 80 | BPF_MAP_CREATE, | 85 | BPF_MAP_CREATE, |
| @@ -120,6 +125,8 @@ enum bpf_map_type { · 39 unmodified lines | |||
| 120 | BPF_MAP_TYPE_CPUMAP, | 125 | BPF_MAP_TYPE_CPUMAP, |
| 121 | BPF_MAP_TYPE_XSKMAP, | 126 | BPF_MAP_TYPE_XSKMAP, |
| 122 | BPF_MAP_TYPE_SOCKHASH, | 127 | BPF_MAP_TYPE_SOCKHASH, |
| 128 | BPF_MAP_TYPE_CGROUP_STORAGE, | ||
| 129 | BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, | ||
| 123 | }; | 130 | }; |
| 124 | 131 | ||
| 125 | enum bpf_prog_type { | 132 | enum bpf_prog_type { |
| @@ -144,6 +151,7 @@ enum bpf_prog_type { · 18 unmodified lines | |||
| 144 | BPF_PROG_TYPE_CGROUP_SOCK_ADDR, | 151 | BPF_PROG_TYPE_CGROUP_SOCK_ADDR, |
| 145 | BPF_PROG_TYPE_LWT_SEG6LOCAL, | 152 | BPF_PROG_TYPE_LWT_SEG6LOCAL, |
| 146 | BPF_PROG_TYPE_LIRC_MODE2, | 153 | BPF_PROG_TYPE_LIRC_MODE2, |
| 154 | BPF_PROG_TYPE_SK_REUSEPORT, | ||
| 147 | }; | 155 | }; |
| 148 | 156 | ||
| 149 | enum bpf_attach_type { | 157 | enum bpf_attach_type { |
| @@ -1371,6 +1379,20 @@ union bpf_attr { · 1221 unmodified lines | |||
| 1371 | * A 8-byte long non-decreasing number on success, or 0 if the | 1379 | * A 8-byte long non-decreasing number on success, or 0 if the |
| 1372 | * socket field is missing inside *skb*. | 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 | * u32 bpf_get_socket_uid(struct sk_buff *skb) | 1396 | * u32 bpf_get_socket_uid(struct sk_buff *skb) |
| 1375 | * Return | 1397 | * Return |
| 1376 | * The owner UID of the socket associated to *skb*. If the socket | 1398 | * The owner UID of the socket associated to *skb*. If the socket |
| @@ -1826,7 +1848,7 @@ union bpf_attr { · 449 unmodified lines | |||
| 1826 | * A non-negative value equal to or less than *size* on success, | 1848 | * A non-negative value equal to or less than *size* on success, |
| 1827 | * or a negative error in case of failure. | 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 | * Description | 1852 | * Description |
| 1831 | * This helper is similar to **bpf_skb_load_bytes**\ () in that | 1853 | * This helper is similar to **bpf_skb_load_bytes**\ () in that |
| 1832 | * it provides an easy way to load *len* bytes from *offset* | 1854 | * it provides an easy way to load *len* bytes from *offset* |
| @@ -1857,7 +1879,8 @@ union bpf_attr { · 24 unmodified lines | |||
| 1857 | * is resolved), the nexthop address is returned in ipv4_dst | 1879 | * is resolved), the nexthop address is returned in ipv4_dst |
| 1858 | * or ipv6_dst based on family, smac is set to mac address of | 1880 | * or ipv6_dst based on family, smac is set to mac address of |
| 1859 | * egress device, dmac is set to nexthop mac address, rt_metric | 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 | * *plen* argument is the size of the passed in struct. | 1885 | * *plen* argument is the size of the passed in struct. |
| 1863 | * *flags* argument can be a combination of one or more of the | 1886 | * *flags* argument can be a combination of one or more of the |
| @@ -1873,9 +1896,10 @@ union bpf_attr { · 9 unmodified lines | |||
| 1873 | * *ctx* is either **struct xdp_md** for XDP programs or | 1896 | * *ctx* is either **struct xdp_md** for XDP programs or |
| 1874 | * **struct sk_buff** tc cls_act programs. | 1897 | * **struct sk_buff** tc cls_act programs. |
| 1875 | * Return | 1898 | * Return |
| 1876 | * Egress device index on success, 0 if packet needs to continue | 1899 | * * < 0 if any input argument is invalid |
| 1877 | * up the stack for further processing or a negative error in case | 1900 | * * 0 on success (packet is forwarded, nexthop neighbor exists) |
| 1878 | * of failure. | 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 | * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags) | 1904 | * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags) |
| 1881 | * Description | 1905 | * Description |
| @@ -2031,7 +2055,6 @@ union bpf_attr { · 149 unmodified lines | |||
| 2031 | * This helper is only available is the kernel was compiled with | 2055 | * This helper is only available is the kernel was compiled with |
| 2032 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to | 2056 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to |
| 2033 | * "**y**". | 2057 | * "**y**". |
| 2034 | * | ||
| 2035 | * Return | 2058 | * Return |
| 2036 | * 0 | 2059 | * 0 |
| 2037 | * | 2060 | * |
| @@ -2051,7 +2074,6 @@ union bpf_attr { · 13 unmodified lines | |||
| 2051 | * This helper is only available is the kernel was compiled with | 2074 | * This helper is only available is the kernel was compiled with |
| 2052 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to | 2075 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to |
| 2053 | * "**y**". | 2076 | * "**y**". |
| 2054 | * | ||
| 2055 | * Return | 2077 | * Return |
| 2056 | * 0 | 2078 | * 0 |
| 2057 | * | 2079 | * |
| @@ -2071,10 +2093,54 @@ union bpf_attr { · 13 unmodified lines | |||
| 2071 | * Return | 2093 | * Return |
| 2072 | * The id is returned or 0 in case the id could not be retrieved. | 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 | * u64 bpf_get_current_cgroup_id(void) | 2114 | * u64 bpf_get_current_cgroup_id(void) |
| 2075 | * Return | 2115 | * Return |
| 2076 | * A 64-bit integer containing the current cgroup id based | 2116 | * A 64-bit integer containing the current cgroup id based |
| 2077 | * on the cgroup within which the current task is running. | 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 | #define __BPF_FUNC_MAPPER(FN) \ | 2145 | #define __BPF_FUNC_MAPPER(FN) \ |
| 2080 | FN(unspec), \ | 2146 | FN(unspec), \ |
| @@ -2157,7 +2223,10 @@ union bpf_attr { · 76 unmodified lines | |||
| 2157 | FN(rc_repeat), \ | 2223 | FN(rc_repeat), \ |
| 2158 | FN(rc_keydown), \ | 2224 | FN(rc_keydown), \ |
| 2159 | FN(skb_cgroup_id), \ | 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 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper | 2231 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 2163 | * function eBPF program intends to call | 2232 | * function eBPF program intends to call |
| @@ -2374,6 +2443,30 @@ struct sk_msg_md { · 210 unmodified lines | |||
| 2374 | __u32 local_port; /* stored in host byte order */ | 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 | #define BPF_TAG_SIZE 8 | 2470 | #define BPF_TAG_SIZE 8 |
| 2378 | 2471 | ||
| 2379 | struct bpf_prog_info { | 2472 | struct bpf_prog_info { |
| @@ -2555,6 +2648,9 @@ enum { · 175 unmodified lines | |||
| 2555 | * Arg1: old_state | 2648 | * Arg1: old_state |
| 2556 | * Arg2: new_state | 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 | /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect | 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 | #define BPF_FIB_LOOKUP_DIRECT BIT(0) | 2708 | #define BPF_FIB_LOOKUP_DIRECT BIT(0) |
| 2613 | #define BPF_FIB_LOOKUP_OUTPUT BIT(1) | 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 | struct bpf_fib_lookup { | 2723 | struct bpf_fib_lookup { |
| 2616 | /* input: network family for lookup (AF_INET, AF_INET6) | 2724 | /* input: network family for lookup (AF_INET, AF_INET6) |
| 2617 | * output: network family of egress nexthop | 2725 | * output: network family of egress nexthop |
| @@ -2625,7 +2733,11 @@ struct bpf_fib_lookup { · 7 unmodified lines | |||
| 2625 | 2733 | ||
| 2626 | /* total length of packet from network header - used for MTU check */ | 2734 | /* total length of packet from network header - used for MTU check */ |
| 2627 | __u16 tot_len; | 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 | union { | 2742 | union { |
| 2631 | /* inputs to lookup */ | 2743 | /* inputs to lookup */ |
| @@ -76,7 +76,7 @@ struct btf_type { · 75 unmodified lines | |||
| 76 | */ | 76 | */ |
| 77 | #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24) | 77 | #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24) |
| 78 | #define BTF_INT_OFFSET(VAL) (((VAL & 0x00ff0000)) >> 16) | 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 | /* Attributes stored in the BTF_INT_ENCODING */ | 81 | /* Attributes stored in the BTF_INT_ENCODING */ |
| 82 | #define BTF_INT_SIGNED (1 << 0) | 82 | #define BTF_INT_SIGNED (1 << 0) |
| @@ -77,7 +77,7 @@ typedef __u32 canid_t; · 76 unmodified lines | |||
| 77 | /* | 77 | /* |
| 78 | * Controller Area Network Error Message Frame Mask structure | 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 | * bit 29-31 : set to zero | 81 | * bit 29-31 : set to zero |
| 82 | */ | 82 | */ |
| 83 | typedef __u32 can_err_mask_t; | 83 | typedef __u32 can_err_mask_t; |
| @@ -384,6 +384,8 @@ struct cec_log_addrs { · 383 unmodified lines | |||
| 384 | #define CEC_EVENT_PIN_CEC_HIGH 4 | 384 | #define CEC_EVENT_PIN_CEC_HIGH 4 |
| 385 | #define CEC_EVENT_PIN_HPD_LOW 5 | 385 | #define CEC_EVENT_PIN_HPD_LOW 5 |
| 386 | #define CEC_EVENT_PIN_HPD_HIGH 6 | 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 | #define CEC_EVENT_FL_INITIAL_STATE (1 << 0) | 390 | #define CEC_EVENT_FL_INITIAL_STATE (1 << 0) |
| 389 | #define CEC_EVENT_FL_DROPPED_EVENTS (1 << 1) | 391 | #define CEC_EVENT_FL_DROPPED_EVENTS (1 << 1) |
| @@ -233,7 +233,8 @@ struct cee_pfc { · 232 unmodified lines | |||
| 233 | * 2 Well known port number over TCP or SCTP | 233 | * 2 Well known port number over TCP or SCTP |
| 234 | * 3 Well known port number over UDP or DCCP | 234 | * 3 Well known port number over UDP or DCCP |
| 235 | * 4 Well known port number over TCP, SCTP, UDP, or DCCP | 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 | * Selector field values for CEE | 239 | * Selector field values for CEE |
| 239 | * 0 Ethertype | 240 | * 0 Ethertype |
| @@ -78,6 +78,17 @@ enum devlink_command { · 77 unmodified lines | |||
| 78 | */ | 78 | */ |
| 79 | DEVLINK_CMD_RELOAD, | 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 | /* add new commands above here */ | 92 | /* add new commands above here */ |
| 82 | __DEVLINK_CMD_MAX, | 93 | __DEVLINK_CMD_MAX, |
| 83 | DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1 | 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 | enum devlink_attr { | 166 | enum devlink_attr { |
| 146 | /* don't change the order or add anything between, this is ABI! */ | 167 | /* don't change the order or add anything between, this is ABI! */ |
| 147 | DEVLINK_ATTR_UNSPEC, | 168 | DEVLINK_ATTR_UNSPEC, |
| @@ -238,6 +259,27 @@ enum devlink_attr { · 90 unmodified lines | |||
| 238 | DEVLINK_ATTR_PORT_NUMBER, /* u32 */ | 259 | DEVLINK_ATTR_PORT_NUMBER, /* u32 */ |
| 239 | DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER, /* u32 */ | 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 | /* add new attributes above here, update the policy in devlink.c */ | 283 | /* add new attributes above here, update the policy in devlink.c */ |
| 242 | 284 | ||
| 243 | __DEVLINK_ATTR_MAX, | 285 | __DEVLINK_ATTR_MAX, |
| @@ -67,27 +67,6 @@ typedef struct audio_status { · 66 unmodified lines | |||
| 67 | } audio_status_t; /* separate decoder hardware */ | 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 | /* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */ | 70 | /* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */ |
| 92 | #define AUDIO_CAP_DTS 1 | 71 | #define AUDIO_CAP_DTS 1 |
| 93 | #define AUDIO_CAP_LPCM 2 | 72 | #define AUDIO_CAP_LPCM 2 |
| @@ -115,22 +94,6 @@ typedef __u16 audio_attributes_t; · 21 unmodified lines | |||
| 115 | #define AUDIO_SET_ID _IO('o', 13) | 94 | #define AUDIO_SET_ID _IO('o', 13) |
| 116 | #define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t) | 95 | #define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t) |
| 117 | #define AUDIO_SET_STREAMTYPE _IO('o', 15) | 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 | #define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20) | 97 | #define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20) |
| 135 | 98 | ||
| 136 | #endif /* _DVBAUDIO_H_ */ | 99 | #endif /* _DVBAUDIO_H_ */ |
| @@ -37,18 +37,6 @@ typedef enum { · 36 unmodified lines | |||
| 37 | } video_format_t; | 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 | typedef enum { | 40 | typedef enum { |
| 53 | VIDEO_PAN_SCAN, /* use pan and scan format */ | 41 | VIDEO_PAN_SCAN, /* use pan and scan format */ |
| 54 | VIDEO_LETTER_BOX, /* use letterbox format */ | 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 | typedef __u16 video_attributes_t; | 151 | typedef __u16 video_attributes_t; |
| 202 | /* bits: descr. */ | 152 | /* bits: descr. */ |
| 203 | /* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */ | 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 | #define VIDEO_SLOWMOTION _IO('o', 32) | 192 | #define VIDEO_SLOWMOTION _IO('o', 32) |
| 243 | #define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int) | 193 | #define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int) |
| 244 | #define VIDEO_CLEAR_BUFFER _IO('o', 34) | 194 | #define VIDEO_CLEAR_BUFFER _IO('o', 34) |
| 245 | #define VIDEO_SET_ID _IO('o', 35) | ||
| 246 | #define VIDEO_SET_STREAMTYPE _IO('o', 36) | 195 | #define VIDEO_SET_STREAMTYPE _IO('o', 36) |
| 247 | #define VIDEO_SET_FORMAT _IO('o', 37) | 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 | #define VIDEO_GET_SIZE _IOR('o', 55, video_size_t) | 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 | * VIDEO_GET_PTS | 200 | * VIDEO_GET_PTS |
| @@ -422,6 +422,8 @@ typedef struct elf64_shdr { · 421 unmodified lines | |||
| 422 | #define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */ | 422 | #define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */ |
| 423 | #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ | 423 | #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ |
| 424 | #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */ | 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 | /* Note header in a PT_NOTE section */ | 428 | /* Note header in a PT_NOTE section */ |
| 427 | typedef struct elf32_note { | 429 | typedef struct elf32_note { |
| @@ -20,12 +20,16 @@ struct sock_extended_err { · 19 unmodified lines | |||
| 20 | #define SO_EE_ORIGIN_ICMP6 3 | 20 | #define SO_EE_ORIGIN_ICMP6 3 |
| 21 | #define SO_EE_ORIGIN_TXSTATUS 4 | 21 | #define SO_EE_ORIGIN_TXSTATUS 4 |
| 22 | #define SO_EE_ORIGIN_ZEROCOPY 5 | 22 | #define SO_EE_ORIGIN_ZEROCOPY 5 |
| 23 | #define SO_EE_ORIGIN_TXTIME 6 | ||
| 23 | #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS | 24 | #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS |
| 24 | 25 | ||
| 25 | #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) | 26 | #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) |
| 26 | 27 | ||
| 27 | #define SO_EE_CODE_ZEROCOPY_COPIED 1 | 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 | * struct scm_timestamping - timestamps exposed through cmsg | 34 | * struct scm_timestamping - timestamps exposed through cmsg |
| 31 | * | 35 | * |
| @@ -226,7 +226,7 @@ enum tunable_id { · 225 unmodified lines | |||
| 226 | ETHTOOL_TX_COPYBREAK, | 226 | ETHTOOL_TX_COPYBREAK, |
| 227 | ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */ | 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 | * tunable_strings[] in net/core/ethtool.c | 230 | * tunable_strings[] in net/core/ethtool.c |
| 231 | */ | 231 | */ |
| 232 | __ETHTOOL_TUNABLE_COUNT, | 232 | __ETHTOOL_TUNABLE_COUNT, |
| @@ -870,7 +870,8 @@ struct ethtool_flow_ext { · 637 unmodified lines | |||
| 870 | * includes the %FLOW_EXT or %FLOW_MAC_EXT flag | 870 | * includes the %FLOW_EXT or %FLOW_MAC_EXT flag |
| 871 | * (see &struct ethtool_flow_ext description). | 871 | * (see &struct ethtool_flow_ext description). |
| 872 | * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC | 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 | * @location: Location of rule in the table. Locations must be | 875 | * @location: Location of rule in the table. Locations must be |
| 875 | * numbered such that a flow matching multiple rules will be | 876 | * numbered such that a flow matching multiple rules will be |
| 876 | * classified according to the first (lowest numbered) rule. | 877 | * classified according to the first (lowest numbered) rule. |
| @@ -902,13 +903,13 @@ struct ethtool_rx_flow_spec { · 25 unmodified lines | |||
| 902 | static inline __u64 ethtool_get_flow_spec_ring(__u64 ring_cookie) | 903 | static inline __u64 ethtool_get_flow_spec_ring(__u64 ring_cookie) |
| 903 | { | 904 | { |
| 904 | return ETHTOOL_RX_FLOW_SPEC_RING & ring_cookie; | 905 | return ETHTOOL_RX_FLOW_SPEC_RING & ring_cookie; |
| 905 | }; | 906 | } |
| 906 | 907 | ||
| 907 | static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie) | 908 | static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie) |
| 908 | { | 909 | { |
| 909 | return (ETHTOOL_RX_FLOW_SPEC_RING_VF & ring_cookie) >> | 910 | return (ETHTOOL_RX_FLOW_SPEC_RING_VF & ring_cookie) >> |
| 910 | ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF; | 911 | ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF; |
| 911 | }; | 912 | } |
| 912 | 913 | ||
| 913 | /** | 914 | /** |
| 914 | * struct ethtool_rxnfc - command to get or set RX flow classification rules | 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 | #define WAKE_ARP (1 << 4) | 1635 | #define WAKE_ARP (1 << 4) |
| 1635 | #define WAKE_MAGIC (1 << 5) | 1636 | #define WAKE_MAGIC (1 << 5) |
| 1636 | #define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ | 1637 | #define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ |
| 1638 | #define WAKE_FILTER (1 << 7) | ||
| 1637 | 1639 | ||
| 1638 | /* L2-L4 network traffic flow types */ | 1640 | /* L2-L4 network traffic flow types */ |
| 1639 | #define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */ | 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 | #define RXH_DISCARD (1 << 31) | 1673 | #define RXH_DISCARD (1 << 31) |
| 1672 | 1674 | ||
| 1673 | #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL | 1675 | #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL |
| 1676 | #define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL | ||
| 1674 | 1677 | ||
| 1675 | /* Special RX classification rule insert location values */ | 1678 | /* Special RX classification rule insert location values */ |
| 1676 | #define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */ | 1679 | #define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */ |
| @@ -42,7 +42,7 @@ · 41 unmodified lines | |||
| 42 | #define EPOLLRDHUP (__force __poll_t)0x00002000 | 42 | #define EPOLLRDHUP (__force __poll_t)0x00002000 |
| 43 | 43 | ||
| 44 | /* Set exclusive wakeup mode for the target file descriptor */ | 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 | * Request the handling of system wakeup events so as to prevent system suspends | 48 | * Request the handling of system wakeup events so as to prevent system suspends |
| @@ -54,13 +54,13 @@ · 5 unmodified lines | |||
| 54 | * | 54 | * |
| 55 | * Requires CAP_BLOCK_SUSPEND | 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 | /* Set the One Shot behaviour for the target file descriptor */ | 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 | /* Set the Edge Triggered behaviour for the target file descriptor */ | 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 | * On x86-64 make the 64bit structure have the same alignment as the | 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 | IFLA_CARRIER_UP_COUNT, | 164 | IFLA_CARRIER_UP_COUNT, |
| 165 | IFLA_CARRIER_DOWN_COUNT, | 165 | IFLA_CARRIER_DOWN_COUNT, |
| 166 | IFLA_NEW_IFINDEX, | 166 | IFLA_NEW_IFINDEX, |
| 167 | IFLA_MIN_MTU, | ||
| 168 | IFLA_MAX_MTU, | ||
| 167 | __IFLA_MAX | 169 | __IFLA_MAX |
| 168 | }; | 170 | }; |
| 169 | 171 | ||
| @@ -334,6 +336,7 @@ enum { · 164 unmodified lines | |||
| 334 | IFLA_BRPORT_GROUP_FWD_MASK, | 336 | IFLA_BRPORT_GROUP_FWD_MASK, |
| 335 | IFLA_BRPORT_NEIGH_SUPPRESS, | 337 | IFLA_BRPORT_NEIGH_SUPPRESS, |
| 336 | IFLA_BRPORT_ISOLATED, | 338 | IFLA_BRPORT_ISOLATED, |
| 339 | IFLA_BRPORT_BACKUP_PORT, | ||
| 337 | __IFLA_BRPORT_MAX | 340 | __IFLA_BRPORT_MAX |
| 338 | }; | 341 | }; |
| 339 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | 342 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -459,6 +462,16 @@ enum { · 119 unmodified lines | |||
| 459 | 462 | ||
| 460 | #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) | 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 | enum macsec_validation_type { | 475 | enum macsec_validation_type { |
| 463 | MACSEC_VALIDATE_DISABLED = 0, | 476 | MACSEC_VALIDATE_DISABLED = 0, |
| 464 | MACSEC_VALIDATE_CHECK = 1, | 477 | MACSEC_VALIDATE_CHECK = 1, |
| @@ -920,6 +933,7 @@ enum { · 455 unmodified lines | |||
| 920 | XDP_ATTACHED_DRV, | 933 | XDP_ATTACHED_DRV, |
| 921 | XDP_ATTACHED_SKB, | 934 | XDP_ATTACHED_SKB, |
| 922 | XDP_ATTACHED_HW, | 935 | XDP_ATTACHED_HW, |
| 936 | XDP_ATTACHED_MULTI, | ||
| 923 | }; | 937 | }; |
| 924 | 938 | ||
| 925 | enum { | 939 | enum { |
| @@ -928,6 +942,9 @@ enum { · 2 unmodified lines | |||
| 928 | IFLA_XDP_ATTACHED, | 942 | IFLA_XDP_ATTACHED, |
| 929 | IFLA_XDP_FLAGS, | 943 | IFLA_XDP_FLAGS, |
| 930 | IFLA_XDP_PROG_ID, | 944 | IFLA_XDP_PROG_ID, |
| 945 | IFLA_XDP_DRV_PROG_ID, | ||
| 946 | IFLA_XDP_SKB_PROG_ID, | ||
| 947 | IFLA_XDP_HW_PROG_ID, | ||
| 931 | __IFLA_XDP_MAX, | 948 | __IFLA_XDP_MAX, |
| 932 | }; | 949 | }; |
| 933 | 950 | ||
| @@ -44,6 +44,8 @@ enum iio_chan_type { · 43 unmodified lines | |||
| 44 | IIO_COUNT, | 44 | IIO_COUNT, |
| 45 | IIO_INDEX, | 45 | IIO_INDEX, |
| 46 | IIO_GRAVITY, | 46 | IIO_GRAVITY, |
| 47 | IIO_POSITIONRELATIVE, | ||
| 48 | IIO_PHASE, | ||
| 47 | }; | 49 | }; |
| 48 | 50 | ||
| 49 | enum iio_modifier { | 51 | enum iio_modifier { |
| @@ -84,6 +86,7 @@ enum iio_modifier { · 34 unmodified lines | |||
| 84 | IIO_MOD_CO2, | 86 | IIO_MOD_CO2, |
| 85 | IIO_MOD_VOC, | 87 | IIO_MOD_VOC, |
| 86 | IIO_MOD_LIGHT_UV, | 88 | IIO_MOD_LIGHT_UV, |
| 89 | IIO_MOD_LIGHT_DUV, | ||
| 87 | }; | 90 | }; |
| 88 | 91 | ||
| 89 | enum iio_event_type { | 92 | enum iio_event_type { |
| @@ -30,6 +30,7 @@ enum { · 29 unmodified lines | |||
| 30 | ILA_CMD_ADD, | 30 | ILA_CMD_ADD, |
| 31 | ILA_CMD_DEL, | 31 | ILA_CMD_DEL, |
| 32 | ILA_CMD_GET, | 32 | ILA_CMD_GET, |
| 33 | ILA_CMD_FLUSH, | ||
| 33 | 34 | ||
| 34 | __ILA_CMD_MAX, | 35 | __ILA_CMD_MAX, |
| 35 | }; | 36 | }; |
| @@ -53,6 +53,7 @@ struct inotify_event { · 52 unmodified lines | |||
| 53 | #define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */ | 53 | #define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */ |
| 54 | #define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */ | 54 | #define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */ |
| 55 | #define IN_EXCL_UNLINK 0x04000000 /* exclude events on unlinked objects */ | 55 | #define IN_EXCL_UNLINK 0x04000000 /* exclude events on unlinked objects */ |
| 56 | #define IN_MASK_CREATE 0x10000000 /* only create watches */ | ||
| 56 | #define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ | 57 | #define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ |
| 57 | #define IN_ISDIR 0x40000000 /* event occurred against dir */ | 58 | #define IN_ISDIR 0x40000000 /* event occurred against dir */ |
| 58 | #define IN_ONESHOT 0x80000000 /* only send event once */ | 59 | #define IN_ONESHOT 0x80000000 /* only send event once */ |
| @@ -270,10 +270,11 @@ struct input_mask { · 269 unmodified lines | |||
| 270 | /* | 270 | /* |
| 271 | * MT_TOOL types | 271 | * MT_TOOL types |
| 272 | */ | 272 | */ |
| 273 | #define MT_TOOL_FINGER 0 | 273 | #define MT_TOOL_FINGER 0x00 |
| 274 | #define MT_TOOL_PEN 1 | 274 | #define MT_TOOL_PEN 0x01 |
| 275 | #define MT_TOOL_PALM 2 | 275 | #define MT_TOOL_PALM 0x02 |
| 276 | #define MT_TOOL_MAX 2 | 276 | #define MT_TOOL_DIAL 0x0a |
| 277 | #define MT_TOOL_MAX 0x0f | ||
| 277 | 278 | ||
| 278 | /* | 279 | /* |
| 279 | * Values describing the status of a force-feedback effect | 280 | * Values describing the status of a force-feedback effect |
| @@ -168,6 +168,7 @@ enum · 167 unmodified lines | |||
| 168 | IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN, | 168 | IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN, |
| 169 | IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, | 169 | IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, |
| 170 | IPV4_DEVCONF_DROP_GRATUITOUS_ARP, | 170 | IPV4_DEVCONF_DROP_GRATUITOUS_ARP, |
| 171 | IPV4_DEVCONF_BC_FORWARDING, | ||
| 171 | __IPV4_DEVCONF_MAX | 172 | __IPV4_DEVCONF_MAX |
| 172 | }; | 173 | }; |
| 173 | 174 | ||
| @@ -18,10 +18,6 @@ · 17 unmodified lines | |||
| 18 | * You should have received a copy of the GNU General Public License | 18 | * You should have received a copy of the GNU General Public License |
| 19 | * along with this program; if not, write to the Free Software | 19 | * along with this program; if not, write to the Free Software |
| 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 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 | #ifndef _UAPI_LINUX_JOYSTICK_H | 22 | #ifndef _UAPI_LINUX_JOYSTICK_H |
| 27 | #define _UAPI_LINUX_JOYSTICK_H | 23 | #define _UAPI_LINUX_JOYSTICK_H |
| @@ -357,8 +357,29 @@ · 356 unmodified lines | |||
| 357 | #define K_DTILDE K(KT_DEAD,3) | 357 | #define K_DTILDE K(KT_DEAD,3) |
| 358 | #define K_DDIERE K(KT_DEAD,4) | 358 | #define K_DDIERE K(KT_DEAD,4) |
| 359 | #define K_DCEDIL K(KT_DEAD,5) | 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 | #define K_DOWN K(KT_CUR,0) | 384 | #define K_DOWN K(KT_CUR,0) |
| 364 | #define K_LEFT K(KT_CUR,1) | 385 | #define K_LEFT K(KT_CUR,1) |
| @@ -76,6 +76,12 @@ struct kfd_ioctl_update_queue_args { · 75 unmodified lines | |||
| 76 | __u32 queue_priority; /* to KFD */ | 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 | /* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */ | 85 | /* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */ |
| 80 | #define KFD_IOC_CACHE_POLICY_COHERENT 0 | 86 | #define KFD_IOC_CACHE_POLICY_COHERENT 0 |
| 81 | #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1 | 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 | #define KFD_SIGNAL_EVENT_LIMIT 4096 | 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 | struct kfd_ioctl_create_event_args { | 207 | struct kfd_ioctl_create_event_args { |
| 193 | __u64 event_page_offset; /* from KFD */ | 208 | __u64 event_page_offset; /* from KFD */ |
| 194 | __u32 event_trigger_data; /* from KFD - signal events only */ | 209 | __u32 event_trigger_data; /* from KFD - signal events only */ |
| @@ -219,7 +234,7 @@ struct kfd_memory_exception_failure { · 24 unmodified lines | |||
| 219 | __u32 NotPresent; /* Page not present or supervisor privilege */ | 234 | __u32 NotPresent; /* Page not present or supervisor privilege */ |
| 220 | __u32 ReadOnly; /* Write access to a read-only page */ | 235 | __u32 ReadOnly; /* Write access to a read-only page */ |
| 221 | __u32 NoExecute; /* Execute access to a page marked NX */ | 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 | /* memory exception data*/ | 240 | /* memory exception data*/ |
| @@ -230,10 +245,19 @@ struct kfd_hsa_memory_exception_data { · 4 unmodified lines | |||
| 230 | __u32 pad; | 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 | struct kfd_event_data { | 257 | struct kfd_event_data { |
| 235 | union { | 258 | union { |
| 236 | struct kfd_hsa_memory_exception_data memory_exception_data; | 259 | struct kfd_hsa_memory_exception_data memory_exception_data; |
| 260 | struct kfd_hsa_hw_exception_data hw_exception_data; | ||
| 237 | }; /* From KFD */ | 261 | }; /* From KFD */ |
| 238 | __u64 kfd_event_data_ext; /* pointer to an extension structure | 262 | __u64 kfd_event_data_ext; /* pointer to an extension structure |
| 239 | for future exception types */ | 263 | for future exception types */ |
| @@ -448,7 +472,10 @@ struct kfd_ioctl_unmap_memory_from_gpu_args { · 208 unmodified lines | |||
| 448 | #define AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU \ | 472 | #define AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU \ |
| 449 | AMDKFD_IOWR(0x19, struct kfd_ioctl_unmap_memory_from_gpu_args) | 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 | #define AMDKFD_COMMAND_START 0x01 | 478 | #define AMDKFD_COMMAND_START 0x01 |
| 452 | #define AMDKFD_COMMAND_END 0x1A | 479 | #define AMDKFD_COMMAND_END 0x1B |
| 453 | 480 | ||
| 454 | #endif | 481 | #endif |
| @@ -949,6 +949,9 @@ struct kvm_ppc_resize_hpt { · 948 unmodified lines | |||
| 949 | #define KVM_CAP_GET_MSR_FEATURES 153 | 949 | #define KVM_CAP_GET_MSR_FEATURES 153 |
| 950 | #define KVM_CAP_HYPERV_EVENTFD 154 | 950 | #define KVM_CAP_HYPERV_EVENTFD 154 |
| 951 | #define KVM_CAP_HYPERV_TLBFLUSH 155 | 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 | #ifdef KVM_CAP_IRQ_ROUTING | 956 | #ifdef KVM_CAP_IRQ_ROUTING |
| 954 | 957 | ||
| @@ -1391,6 +1394,9 @@ struct kvm_enc_region { · 436 unmodified lines | |||
| 1391 | /* Available with KVM_CAP_HYPERV_EVENTFD */ | 1394 | /* Available with KVM_CAP_HYPERV_EVENTFD */ |
| 1392 | #define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd) | 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 | /* Secure Encrypted Virtualization command */ | 1401 | /* Secure Encrypted Virtualization command */ |
| 1396 | enum sev_cmd_id { | 1402 | enum sev_cmd_id { |
| @@ -13,6 +13,7 @@ · 12 unmodified lines | |||
| 13 | /* Return values for hypercalls */ | 13 | /* Return values for hypercalls */ |
| 14 | #define KVM_ENOSYS 1000 | 14 | #define KVM_ENOSYS 1000 |
| 15 | #define KVM_EFAULT EFAULT | 15 | #define KVM_EFAULT EFAULT |
| 16 | #define KVM_EINVAL EINVAL | ||
| 16 | #define KVM_E2BIG E2BIG | 17 | #define KVM_E2BIG E2BIG |
| 17 | #define KVM_EPERM EPERM | 18 | #define KVM_EPERM EPERM |
| 18 | #define KVM_EOPNOTSUPP 95 | 19 | #define KVM_EOPNOTSUPP 95 |
| @@ -26,6 +27,7 @@ · 7 unmodified lines | |||
| 26 | #define KVM_HC_MIPS_EXIT_VM 7 | 27 | #define KVM_HC_MIPS_EXIT_VM 7 |
| 27 | #define KVM_HC_MIPS_CONSOLE_OUTPUT 8 | 28 | #define KVM_HC_MIPS_CONSOLE_OUTPUT 8 |
| 28 | #define KVM_HC_CLOCK_PAIRING 9 | 29 | #define KVM_HC_CLOCK_PAIRING 9 |
| 30 | #define KVM_HC_SEND_IPI 10 | ||
| 29 | 31 | ||
| 30 | /* | 32 | /* |
| 31 | * hypercalls use architecture specific | 33 | * hypercalls use architecture specific |
| @@ -60,14 +60,14 @@ struct sockaddr_l2tpip6 { · 59 unmodified lines | |||
| 60 | /* | 60 | /* |
| 61 | * Commands. | 61 | * Commands. |
| 62 | * Valid TLVs of each command are:- | 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 | * TUNNEL_DELETE - CONN_ID | 64 | * TUNNEL_DELETE - CONN_ID |
| 65 | * TUNNEL_MODIFY - CONN_ID, udpcsum | 65 | * TUNNEL_MODIFY - CONN_ID, udpcsum |
| 66 | * TUNNEL_GETSTATS - CONN_ID, (stats) | 66 | * TUNNEL_GETSTATS - CONN_ID, (stats) |
| 67 | * TUNNEL_GET - CONN_ID, (...) | 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 | * SESSION_DELETE - SESSION_ID | 69 | * SESSION_DELETE - SESSION_ID |
| 70 | * SESSION_MODIFY - SESSION_ID, data_seq | 70 | * SESSION_MODIFY - SESSION_ID |
| 71 | * SESSION_GET - SESSION_ID, (...) | 71 | * SESSION_GET - SESSION_ID, (...) |
| 72 | * SESSION_GETSTATS - SESSION_ID, (stats) | 72 | * SESSION_GETSTATS - SESSION_ID, (stats) |
| 73 | * | 73 | * |
| @@ -95,7 +95,7 @@ enum { · 21 unmodified lines | |||
| 95 | L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */ | 95 | L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */ |
| 96 | L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */ | 96 | L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */ |
| 97 | L2TP_ATTR_OFFSET, /* u16 (not used) */ | 97 | L2TP_ATTR_OFFSET, /* u16 (not used) */ |
| 98 | L2TP_ATTR_DATA_SEQ, /* u16 */ | 98 | L2TP_ATTR_DATA_SEQ, /* u16 (not used) */ |
| 99 | L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */ | 99 | L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */ |
| 100 | L2TP_ATTR_L2SPEC_LEN, /* u8 (not used) */ | 100 | L2TP_ATTR_L2SPEC_LEN, /* u8 (not used) */ |
| 101 | L2TP_ATTR_PROTO_VERSION, /* u8 */ | 101 | L2TP_ATTR_PROTO_VERSION, /* u8 */ |
| @@ -105,7 +105,7 @@ enum { · 3 unmodified lines | |||
| 105 | L2TP_ATTR_SESSION_ID, /* u32 */ | 105 | L2TP_ATTR_SESSION_ID, /* u32 */ |
| 106 | L2TP_ATTR_PEER_SESSION_ID, /* u32 */ | 106 | L2TP_ATTR_PEER_SESSION_ID, /* u32 */ |
| 107 | L2TP_ATTR_UDP_CSUM, /* u8 */ | 107 | L2TP_ATTR_UDP_CSUM, /* u8 */ |
| 108 | L2TP_ATTR_VLAN_ID, /* u16 */ | 108 | L2TP_ATTR_VLAN_ID, /* u16 (not used) */ |
| 109 | L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */ | 109 | L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */ |
| 110 | L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */ | 110 | L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */ |
| 111 | L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */ | 111 | L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */ |
| @@ -119,8 +119,8 @@ enum { · 7 unmodified lines | |||
| 119 | L2TP_ATTR_IP_DADDR, /* u32 */ | 119 | L2TP_ATTR_IP_DADDR, /* u32 */ |
| 120 | L2TP_ATTR_UDP_SPORT, /* u16 */ | 120 | L2TP_ATTR_UDP_SPORT, /* u16 */ |
| 121 | L2TP_ATTR_UDP_DPORT, /* u16 */ | 121 | L2TP_ATTR_UDP_DPORT, /* u16 */ |
| 122 | L2TP_ATTR_MTU, /* u16 */ | 122 | L2TP_ATTR_MTU, /* u16 (not used) */ |
| 123 | L2TP_ATTR_MRU, /* u16 */ | 123 | L2TP_ATTR_MRU, /* u16 (not used) */ |
| 124 | L2TP_ATTR_STATS, /* nested */ | 124 | L2TP_ATTR_STATS, /* nested */ |
| 125 | L2TP_ATTR_IP6_SADDR, /* struct in6_addr */ | 125 | L2TP_ATTR_IP6_SADDR, /* struct in6_addr */ |
| 126 | L2TP_ATTR_IP6_DADDR, /* struct in6_addr */ | 126 | L2TP_ATTR_IP6_DADDR, /* struct in6_addr */ |
| @@ -169,6 +169,7 @@ enum l2tp_encap_type { · 42 unmodified lines | |||
| 169 | L2TP_ENCAPTYPE_IP, | 169 | L2TP_ENCAPTYPE_IP, |
| 170 | }; | 170 | }; |
| 171 | 171 | ||
| 172 | /* For L2TP_ATTR_DATA_SEQ. Unused. */ | ||
| 172 | enum l2tp_seqmode { | 173 | enum l2tp_seqmode { |
| 173 | L2TP_SEQ_NONE = 0, | 174 | L2TP_SEQ_NONE = 0, |
| 174 | L2TP_SEQ_IP = 1, | 175 | L2TP_SEQ_IP = 1, |
| @@ -62,7 +62,7 @@ · 61 unmodified lines | |||
| 62 | #define MEDIA_BUS_FMT_RGB121212_1X36 0x1019 | 62 | #define MEDIA_BUS_FMT_RGB121212_1X36 0x1019 |
| 63 | #define MEDIA_BUS_FMT_RGB161616_1X48 0x101a | 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 | #define MEDIA_BUS_FMT_Y8_1X8 0x2001 | 66 | #define MEDIA_BUS_FMT_Y8_1X8 0x2001 |
| 67 | #define MEDIA_BUS_FMT_UV8_1X8 0x2015 | 67 | #define MEDIA_BUS_FMT_UV8_1X8 0x2015 |
| 68 | #define MEDIA_BUS_FMT_UYVY8_1_5X8 0x2002 | 68 | #define MEDIA_BUS_FMT_UYVY8_1_5X8 0x2002 |
| @@ -74,6 +74,7 @@ · 5 unmodified lines | |||
| 74 | #define MEDIA_BUS_FMT_YUYV8_2X8 0x2008 | 74 | #define MEDIA_BUS_FMT_YUYV8_2X8 0x2008 |
| 75 | #define MEDIA_BUS_FMT_YVYU8_2X8 0x2009 | 75 | #define MEDIA_BUS_FMT_YVYU8_2X8 0x2009 |
| 76 | #define MEDIA_BUS_FMT_Y10_1X10 0x200a | 76 | #define MEDIA_BUS_FMT_Y10_1X10 0x200a |
| 77 | #define MEDIA_BUS_FMT_Y10_2X8_PADHI_LE 0x202c | ||
| 77 | #define MEDIA_BUS_FMT_UYVY10_2X10 0x2018 | 78 | #define MEDIA_BUS_FMT_UYVY10_2X10 0x2018 |
| 78 | #define MEDIA_BUS_FMT_VYUY10_2X10 0x2019 | 79 | #define MEDIA_BUS_FMT_VYUY10_2X10 0x2019 |
| 79 | #define MEDIA_BUS_FMT_YUYV10_2X10 0x200b | 80 | #define MEDIA_BUS_FMT_YUYV10_2X10 0x200b |
| @@ -25,7 +25,6 @@ · 24 unmodified lines | |||
| 25 | #endif | 25 | #endif |
| 26 | #include <linux/ioctl.h> | 26 | #include <linux/ioctl.h> |
| 27 | #include <linux/types.h> | 27 | #include <linux/types.h> |
| 28 | #include <linux/version.h> | ||
| 29 | 28 | ||
| 30 | struct media_device_info { | 29 | struct media_device_info { |
| 31 | char driver[16]; | 30 | char driver[16]; |
| @@ -89,12 +88,6 @@ struct media_device_info { · 57 unmodified lines | |||
| 89 | #define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2) | 88 | #define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2) |
| 90 | #define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3) | 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 | * Digital TV, analog TV, radio and/or software defined radio tuner functions. | 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 | #define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004) | 125 | #define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004) |
| 133 | #define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4005) | 126 | #define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4005) |
| 134 | #define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006) | 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 | * Switch and bridge entity functions | 132 | * Switch and bridge entity functions |
| @@ -139,6 +134,13 @@ struct media_device_info { · 1 unmodified line | |||
| 139 | #define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001) | 134 | #define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001) |
| 140 | #define MEDIA_ENT_F_VID_IF_BRIDGE (MEDIA_ENT_F_BASE + 0x5002) | 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 | /* Entity flags */ | 144 | /* Entity flags */ |
| 143 | #define MEDIA_ENT_FL_DEFAULT (1 << 0) | 145 | #define MEDIA_ENT_FL_DEFAULT (1 << 0) |
| 144 | #define MEDIA_ENT_FL_CONNECTOR (1 << 1) | 146 | #define MEDIA_ENT_FL_CONNECTOR (1 << 1) |
| @@ -280,11 +282,21 @@ struct media_links_enum { · 135 unmodified lines | |||
| 280 | * MC next gen API definitions | 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 | struct media_v2_entity { | 294 | struct media_v2_entity { |
| 284 | __u32 id; | 295 | __u32 id; |
| 285 | char name[64]; | 296 | char name[64]; |
| 286 | __u32 function; /* Main function of the entity */ | 297 | __u32 function; /* Main function of the entity */ |
| 287 | __u32 reserved[6]; | 298 | __u32 flags; |
| 299 | __u32 reserved[5]; | ||
| 288 | } __attribute__ ((packed)); | 300 | } __attribute__ ((packed)); |
| 289 | 301 | ||
| 290 | /* Should match the specific fields at media_intf_devnode */ | 302 | /* Should match the specific fields at media_intf_devnode */ |
| @@ -305,11 +317,21 @@ struct media_v2_interface { · 14 unmodified lines | |||
| 305 | }; | 317 | }; |
| 306 | } __attribute__ ((packed)); | 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 | struct media_v2_pad { | 329 | struct media_v2_pad { |
| 309 | __u32 id; | 330 | __u32 id; |
| 310 | __u32 entity_id; | 331 | __u32 entity_id; |
| 311 | __u32 flags; | 332 | __u32 flags; |
| 312 | __u32 reserved[5]; | 333 | __u32 index; |
| 334 | __u32 reserved[4]; | ||
| 313 | } __attribute__ ((packed)); | 335 | } __attribute__ ((packed)); |
| 314 | 336 | ||
| 315 | struct media_v2_link { | 337 | struct media_v2_link { |
| @@ -348,7 +370,7 @@ struct media_v2_topology { · 32 unmodified lines | |||
| 348 | #define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc) | 370 | #define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc) |
| 349 | #define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology) | 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 | * Legacy symbols used to avoid userspace compilation breakages. | 376 | * Legacy symbols used to avoid userspace compilation breakages. |
| @@ -380,6 +402,8 @@ struct media_v2_topology { · 25 unmodified lines | |||
| 380 | #define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER | 402 | #define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER |
| 381 | #define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER | 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 | * There is still no ALSA support in the media controller. These | 408 | * There is still no ALSA support in the media controller. These |
| 385 | * defines should not have been added and we leave them here only | 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 | #define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7) | 420 | #define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7) |
| 397 | 421 | ||
| 398 | /* Obsolete symbol for media_version, no longer used in the kernel */ | 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 | #endif | 425 | #endif |
| 402 | 426 | ||
| @@ -136,6 +136,7 @@ · 135 unmodified lines | |||
| 136 | #define CTL1000_ENABLE_MASTER 0x1000 | 136 | #define CTL1000_ENABLE_MASTER 0x1000 |
| 137 | 137 | ||
| 138 | /* 1000BASE-T Status register */ | 138 | /* 1000BASE-T Status register */ |
| 139 | #define LPA_1000MSFAIL 0x8000 /* Master/Slave resolution failure */ | ||
| 139 | #define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */ | 140 | #define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */ |
| 140 | #define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */ | 141 | #define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */ |
| 141 | #define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */ | 142 | #define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */ |
| @@ -120,6 +120,7 @@ enum { · 119 unmodified lines | |||
| 120 | IPMRA_TABLE_MROUTE_DO_ASSERT, | 120 | IPMRA_TABLE_MROUTE_DO_ASSERT, |
| 121 | IPMRA_TABLE_MROUTE_DO_PIM, | 121 | IPMRA_TABLE_MROUTE_DO_PIM, |
| 122 | IPMRA_TABLE_VIFS, | 122 | IPMRA_TABLE_VIFS, |
| 123 | IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE, | ||
| 123 | __IPMRA_TABLE_MAX | 124 | __IPMRA_TABLE_MAX |
| 124 | }; | 125 | }; |
| 125 | #define IPMRA_TABLE_MAX (__IPMRA_TABLE_MAX - 1) | 126 | #define IPMRA_TABLE_MAX (__IPMRA_TABLE_MAX - 1) |
| @@ -173,5 +174,6 @@ enum { · 47 unmodified lines | |||
| 173 | #define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */ | 174 | #define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */ |
| 174 | #define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */ | 175 | #define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */ |
| 175 | #define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */ | 176 | #define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */ |
| 177 | #define IGMPMSG_WRVIFWHOLE 4 /* For PIM Register and assert processing */ | ||
| 176 | 178 | ||
| 177 | #endif /* _UAPI__LINUX_MROUTE_H */ | 179 | #endif /* _UAPI__LINUX_MROUTE_H */ |
| @@ -141,4 +141,22 @@ struct scm_ts_pktinfo { · 140 unmodified lines | |||
| 141 | __u32 reserved[2]; | 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 | #endif /* _NET_TIMESTAMPING_H */ | 162 | #endif /* _NET_TIMESTAMPING_H */ |
| @@ -18,6 +18,7 @@ enum { · 17 unmodified lines | |||
| 18 | NETCONFA_PROXY_NEIGH, | 18 | NETCONFA_PROXY_NEIGH, |
| 19 | NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, | 19 | NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, |
| 20 | NETCONFA_INPUT, | 20 | NETCONFA_INPUT, |
| 21 | NETCONFA_BC_FORWARDING, | ||
| 21 | __NETCONFA_MAX | 22 | __NETCONFA_MAX |
| 22 | }; | 23 | }; |
| 23 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) | 24 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) |
| @@ -8,6 +8,7 @@ · 7 unmodified lines | |||
| 8 | #define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN | 8 | #define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN |
| 9 | #define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN | 9 | #define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN |
| 10 | #define NFT_USERDATA_MAXLEN 256 | 10 | #define NFT_USERDATA_MAXLEN 256 |
| 11 | #define NFT_OSF_MAXGENRELEN 16 | ||
| 11 | 12 | ||
| 12 | /** | 13 | /** |
| 13 | * enum nft_registers - nf_tables registers | 14 | * enum nft_registers - nf_tables registers |
| @@ -921,10 +922,12 @@ enum nft_socket_attributes { · 907 unmodified lines | |||
| 921 | /* | 922 | /* |
| 922 | * enum nft_socket_keys - nf_tables socket expression keys | 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 | enum nft_socket_keys { | 928 | enum nft_socket_keys { |
| 927 | NFT_SOCKET_TRANSPARENT, | 929 | NFT_SOCKET_TRANSPARENT, |
| 930 | NFT_SOCKET_MARK, | ||
| 928 | __NFT_SOCKET_MAX | 931 | __NFT_SOCKET_MAX |
| 929 | }; | 932 | }; |
| 930 | #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1) | 933 | #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1) |
| @@ -955,6 +958,7 @@ enum nft_socket_keys { · 24 unmodified lines | |||
| 955 | * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address) | 958 | * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address) |
| 956 | * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address) | 959 | * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address) |
| 957 | * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address) | 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 | enum nft_ct_keys { | 963 | enum nft_ct_keys { |
| 960 | NFT_CT_STATE, | 964 | NFT_CT_STATE, |
| @@ -980,6 +984,7 @@ enum nft_ct_keys { · 19 unmodified lines | |||
| 980 | NFT_CT_DST_IP, | 984 | NFT_CT_DST_IP, |
| 981 | NFT_CT_SRC_IP6, | 985 | NFT_CT_SRC_IP6, |
| 982 | NFT_CT_DST_IP6, | 986 | NFT_CT_DST_IP6, |
| 987 | NFT_CT_TIMEOUT, | ||
| 983 | __NFT_CT_MAX | 988 | __NFT_CT_MAX |
| 984 | }; | 989 | }; |
| 985 | #define NFT_CT_MAX (__NFT_CT_MAX - 1) | 990 | #define NFT_CT_MAX (__NFT_CT_MAX - 1) |
| @@ -1250,6 +1255,22 @@ enum nft_nat_attributes { · 264 unmodified lines | |||
| 1250 | }; | 1255 | }; |
| 1251 | #define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1) | 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 | * enum nft_masq_attributes - nf_tables masquerade expression attributes | 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 | #define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1) | 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 | #define NFT_OBJECT_UNSPEC 0 | 1425 | #define NFT_OBJECT_UNSPEC 0 |
| 1396 | #define NFT_OBJECT_COUNTER 1 | 1426 | #define NFT_OBJECT_COUNTER 1 |
| 1397 | #define NFT_OBJECT_QUOTA 2 | 1427 | #define NFT_OBJECT_QUOTA 2 |
| 1398 | #define NFT_OBJECT_CT_HELPER 3 | 1428 | #define NFT_OBJECT_CT_HELPER 3 |
| 1399 | #define NFT_OBJECT_LIMIT 4 | 1429 | #define NFT_OBJECT_LIMIT 4 |
| 1400 | #define NFT_OBJECT_CONNLIMIT 5 | 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 | #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1) | 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 | #define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1) | 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 | * enum nft_device_attributes - nf_tables device netlink attributes | 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 | #define NFT_NG_MAX (__NFT_NG_MAX - 1) | 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 | #endif /* _LINUX_NF_TABLES_H */ | 1678 | #endif /* _LINUX_NF_TABLES_H */ |
| @@ -2,6 +2,8 @@ · 1 unmodified line | |||
| 2 | #define _NF_OSF_H | 2 | #define _NF_OSF_H |
| 3 | 3 | ||
| 4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 5 | #include <linux/ip.h> | ||
| 6 | #include <linux/tcp.h> | ||
| 5 | 7 | ||
| 6 | #define MAXGENRELEN 32 | 8 | #define MAXGENRELEN 32 |
| 7 | 9 | ||
| @@ -16,9 +18,14 @@ · 8 unmodified lines | |||
| 16 | 18 | ||
| 17 | #define NF_OSF_TTL_TRUE 0 /* True ip and fingerprint TTL comparison */ | 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 | /* Do not compare ip and fingerprint TTL at all */ | 24 | /* Do not compare ip and fingerprint TTL at all */ |
| 20 | #define NF_OSF_TTL_NOCHECK 2 | 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 | /* Wildcard MSS (kind of). | 29 | /* Wildcard MSS (kind of). |
| 23 | * It is used to implement a state machine for the different wildcard values | 30 | * It is used to implement a state machine for the different wildcard values |
| 24 | * of the MSS and window sizes. | 31 | * of the MSS and window sizes. |
| @@ -83,4 +90,31 @@ enum iana_options { · 58 unmodified lines | |||
| 83 | OSFOPT_EMPTY = 255, | 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 | #endif /* _NF_OSF_H */ | 120 | #endif /* _NF_OSF_H */ |
| @@ -21,9 +21,7 @@ · 20 unmodified lines | |||
| 21 | #define _XT_OSF_H | 21 | #define _XT_OSF_H |
| 22 | 22 | ||
| 23 | #include <linux/types.h> | 23 | #include <linux/types.h> |
| 24 | #include <linux/ip.h> | 24 | #include <linux/netfilter/nfnetlink_osf.h> |
| 25 | #include <linux/tcp.h> | ||
| 26 | #include <linux/netfilter/nf_osf.h> | ||
| 27 | 25 | ||
| 28 | #define XT_OSF_GENRE NF_OSF_GENRE | 26 | #define XT_OSF_GENRE NF_OSF_GENRE |
| 29 | #define XT_OSF_INVERT NF_OSF_INVERT | 27 | #define XT_OSF_INVERT NF_OSF_INVERT |
| @@ -37,8 +35,7 @@ · 7 unmodified lines | |||
| 37 | 35 | ||
| 38 | #define XT_OSF_TTL_TRUE NF_OSF_TTL_TRUE | 36 | #define XT_OSF_TTL_TRUE NF_OSF_TTL_TRUE |
| 39 | #define XT_OSF_TTL_NOCHECK NF_OSF_TTL_NOCHECK | 37 | #define XT_OSF_TTL_NOCHECK NF_OSF_TTL_NOCHECK |
| 40 | 38 | #define XT_OSF_TTL_LESS NF_OSF_TTL_LESS | |
| 41 | #define XT_OSF_TTL_LESS 1 /* Check if ip TTL is less than fingerprint one */ | ||
| 42 | 39 | ||
| 43 | #define xt_osf_wc nf_osf_wc | 40 | #define xt_osf_wc nf_osf_wc |
| 44 | #define xt_osf_opt nf_osf_opt | 41 | #define xt_osf_opt nf_osf_opt |
| @@ -47,19 +44,8 @@ · 2 unmodified lines | |||
| 47 | #define xt_osf_finger nf_osf_finger | 44 | #define xt_osf_finger nf_osf_finger |
| 48 | #define xt_osf_nlmsg nf_osf_nlmsg | 45 | #define xt_osf_nlmsg nf_osf_nlmsg |
| 49 | 46 | ||
| 50 | /* | 47 | #define xt_osf_window_size_options nf_osf_window_size_options |
| 51 | * Add/remove fingerprint from the kernel. | 48 | #define xt_osf_attr_type nf_osf_attr_type |
| 52 | */ | 49 | #define xt_osf_msg_types nf_osf_msg_types |
| 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 | }; | ||
| 64 | 50 | ||
| 65 | #endif /* _XT_OSF_H */ | 51 | #endif /* _XT_OSF_H */ |
| @@ -26,4 +26,15 @@ · 25 unmodified lines | |||
| 26 | #define NF_BR_BROUTING 5 | 26 | #define NF_BR_BROUTING 5 |
| 27 | #define NF_BR_NUMHOOKS 6 | 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 | #endif /* _UAPI__LINUX_BRIDGE_NETFILTER_H */ | 40 | #endif /* _UAPI__LINUX_BRIDGE_NETFILTER_H */ |
| @@ -2237,6 +2237,9 @@ enum nl80211_commands { · 2236 unmodified lines | |||
| 2237 | * enforced. | 2237 | * enforced. |
| 2238 | * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes | 2238 | * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes |
| 2239 | * a flow is assigned on each round of the DRR scheduler. | 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 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 2244 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2242 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 2245 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| @@ -2677,6 +2680,8 @@ enum nl80211_attrs { · 434 unmodified lines | |||
| 2677 | NL80211_ATTR_TXQ_MEMORY_LIMIT, | 2680 | NL80211_ATTR_TXQ_MEMORY_LIMIT, |
| 2678 | NL80211_ATTR_TXQ_QUANTUM, | 2681 | NL80211_ATTR_TXQ_QUANTUM, |
| 2679 | 2682 | ||
| 2683 | NL80211_ATTR_HE_CAPABILITY, | ||
| 2684 | |||
| 2680 | /* add attributes here, update the policy in nl80211.c */ | 2685 | /* add attributes here, update the policy in nl80211.c */ |
| 2681 | 2686 | ||
| 2682 | __NL80211_ATTR_AFTER_LAST, | 2687 | __NL80211_ATTR_AFTER_LAST, |
| @@ -2726,7 +2731,8 @@ enum nl80211_attrs { · 43 unmodified lines | |||
| 2726 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 | 2731 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 |
| 2727 | #define NL80211_HT_CAPABILITY_LEN 26 | 2732 | #define NL80211_HT_CAPABILITY_LEN 26 |
| 2728 | #define NL80211_VHT_CAPABILITY_LEN 12 | 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 | #define NL80211_MAX_NR_CIPHER_SUITES 5 | 2736 | #define NL80211_MAX_NR_CIPHER_SUITES 5 |
| 2731 | #define NL80211_MAX_NR_AKM_SUITES 2 | 2737 | #define NL80211_MAX_NR_AKM_SUITES 2 |
| 2732 | 2738 | ||
| @@ -2853,6 +2859,38 @@ struct nl80211_sta_flag_update { · 120 unmodified lines | |||
| 2853 | __u32 set; | 2859 | __u32 set; |
| 2854 | } __attribute__((packed)); | 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 | * enum nl80211_rate_info - bitrate information | 2895 | * enum nl80211_rate_info - bitrate information |
| 2858 | * | 2896 | * |
| @@ -2885,6 +2923,13 @@ struct nl80211_sta_flag_update { · 26 unmodified lines | |||
| 2885 | * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is | 2923 | * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is |
| 2886 | * a legacy rate and will be reported as the actual bitrate, i.e. | 2924 | * a legacy rate and will be reported as the actual bitrate, i.e. |
| 2887 | * a quarter of the base (20 MHz) rate | 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 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use | 2933 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use |
| 2889 | */ | 2934 | */ |
| 2890 | enum nl80211_rate_info { | 2935 | enum nl80211_rate_info { |
| @@ -2901,6 +2946,11 @@ enum nl80211_rate_info { · 10 unmodified lines | |||
| 2901 | NL80211_RATE_INFO_160_MHZ_WIDTH, | 2946 | NL80211_RATE_INFO_160_MHZ_WIDTH, |
| 2902 | NL80211_RATE_INFO_10_MHZ_WIDTH, | 2947 | NL80211_RATE_INFO_10_MHZ_WIDTH, |
| 2903 | NL80211_RATE_INFO_5_MHZ_WIDTH, | 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 | /* keep last */ | 2955 | /* keep last */ |
| 2906 | __NL80211_RATE_INFO_AFTER_LAST, | 2956 | __NL80211_RATE_INFO_AFTER_LAST, |
| @@ -3166,6 +3216,38 @@ enum nl80211_mpath_info { · 259 unmodified lines | |||
| 3166 | NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1 | 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 | * enum nl80211_band_attr - band attributes | 3252 | * enum nl80211_band_attr - band attributes |
| 3171 | * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved | 3253 | * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved |
| @@ -3181,6 +3263,8 @@ enum nl80211_mpath_info { · 9 unmodified lines | |||
| 3181 | * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as | 3263 | * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as |
| 3182 | * defined in 802.11ac | 3264 | * defined in 802.11ac |
| 3183 | * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE | 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 | * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined | 3268 | * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined |
| 3185 | * @__NL80211_BAND_ATTR_AFTER_LAST: internal use | 3269 | * @__NL80211_BAND_ATTR_AFTER_LAST: internal use |
| 3186 | */ | 3270 | */ |
| @@ -3196,6 +3280,7 @@ enum nl80211_band_attr { · 9 unmodified lines | |||
| 3196 | 3280 | ||
| 3197 | NL80211_BAND_ATTR_VHT_MCS_SET, | 3281 | NL80211_BAND_ATTR_VHT_MCS_SET, |
| 3198 | NL80211_BAND_ATTR_VHT_CAPA, | 3282 | NL80211_BAND_ATTR_VHT_CAPA, |
| 3283 | NL80211_BAND_ATTR_IFTYPE_DATA, | ||
| 3199 | 3284 | ||
| 3200 | /* keep last */ | 3285 | /* keep last */ |
| 3201 | __NL80211_BAND_ATTR_AFTER_LAST, | 3286 | __NL80211_BAND_ATTR_AFTER_LAST, |
| @@ -5133,6 +5218,11 @@ enum nl80211_feature_flags { · 1931 unmodified lines | |||
| 5133 | * support to nl80211. | 5218 | * support to nl80211. |
| 5134 | * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate | 5219 | * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate |
| 5135 | * TXQs. | 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 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | 5227 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 5138 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | 5228 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| @@ -5167,6 +5257,8 @@ enum nl80211_ext_feature_index { · 28 unmodified lines | |||
| 5167 | NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211, | 5257 | NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211, |
| 5168 | NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT, | 5258 | NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT, |
| 5169 | NL80211_EXT_FEATURE_TXQS, | 5259 | NL80211_EXT_FEATURE_TXQS, |
| 5260 | NL80211_EXT_FEATURE_SCAN_RANDOM_SN, | ||
| 5261 | NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT, | ||
| 5170 | 5262 | ||
| 5171 | /* add new features before the definition below */ | 5263 | /* add new features before the definition below */ |
| 5172 | NUM_NL80211_EXT_FEATURES, | 5264 | NUM_NL80211_EXT_FEATURES, |
| @@ -5272,6 +5364,12 @@ enum nl80211_timeout_reason { · 99 unmodified lines | |||
| 5272 | * possible scan results. This flag hints the driver to use the best | 5364 | * possible scan results. This flag hints the driver to use the best |
| 5273 | * possible scan configuration to improve the accuracy in scanning. | 5365 | * possible scan configuration to improve the accuracy in scanning. |
| 5274 | * Latency and power use may get impacted with this flag. | 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 | enum nl80211_scan_flags { | 5374 | enum nl80211_scan_flags { |
| 5277 | NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, | 5375 | NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, |
| @@ -5285,6 +5383,8 @@ enum nl80211_scan_flags { · 7 unmodified lines | |||
| 5285 | NL80211_SCAN_FLAG_LOW_SPAN = 1<<8, | 5383 | NL80211_SCAN_FLAG_LOW_SPAN = 1<<8, |
| 5286 | NL80211_SCAN_FLAG_LOW_POWER = 1<<9, | 5384 | NL80211_SCAN_FLAG_LOW_POWER = 1<<9, |
| 5287 | NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10, | 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 | * @OVS_ACTION_ATTR_POP_NSH: pop the outermost NSH header off the packet. | 840 | * @OVS_ACTION_ATTR_POP_NSH: pop the outermost NSH header off the packet. |
| 841 | * @OVS_ACTION_ATTR_METER: Run packet through a meter, which may drop the | 841 | * @OVS_ACTION_ATTR_METER: Run packet through a meter, which may drop the |
| 842 | * packet, or modify the packet (e.g., change the DSCP field). | 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 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all | 846 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all |
| 845 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment | 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 | OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */ | 875 | OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */ |
| 874 | OVS_ACTION_ATTR_POP_NSH, /* No argument. */ | 876 | OVS_ACTION_ATTR_POP_NSH, /* No argument. */ |
| 875 | OVS_ACTION_ATTR_METER, /* u32 meter ID. */ | 877 | OVS_ACTION_ATTR_METER, /* u32 meter ID. */ |
| 878 | OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */ | ||
| 876 | 879 | ||
| 877 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted | 880 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted |
| 878 | * from userspace. */ | 881 | * from userspace. */ |
| @@ -636,6 +636,7 @@ · 635 unmodified lines | |||
| 636 | #define PCI_EXP_DEVCAP2_OBFF_MASK 0x000c0000 /* OBFF support mechanism */ | 636 | #define PCI_EXP_DEVCAP2_OBFF_MASK 0x000c0000 /* OBFF support mechanism */ |
| 637 | #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */ | 637 | #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */ |
| 638 | #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 /* Re-use WAKE# for OBFF */ | 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 | #define PCI_EXP_DEVCTL2 40 /* Device Control 2 */ | 640 | #define PCI_EXP_DEVCTL2 40 /* Device Control 2 */ |
| 640 | #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */ | 641 | #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */ |
| 641 | #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 /* Completion Timeout Disable */ | 642 | #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 /* Completion Timeout Disable */ |
| @@ -960,8 +961,9 @@ · 318 unmodified lines | |||
| 960 | #define PCI_REBAR_CTRL 8 /* control register */ | 961 | #define PCI_REBAR_CTRL 8 /* control register */ |
| 961 | #define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */ | 962 | #define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */ |
| 962 | #define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 /* # of resizable BARs */ | 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 | #define PCI_REBAR_CTRL_BAR_SIZE 0x00001F00 /* BAR size */ | 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 | /* Dynamic Power Allocation */ | 968 | /* Dynamic Power Allocation */ |
| 967 | #define PCI_DPA_CAP 4 /* capability register */ | 969 | #define PCI_DPA_CAP 4 /* capability register */ |
| @@ -16,5 +16,8 @@ · 15 unmodified lines | |||
| 16 | #define PCITEST_WRITE _IOW('P', 0x4, unsigned long) | 16 | #define PCITEST_WRITE _IOW('P', 0x4, unsigned long) |
| 17 | #define PCITEST_READ _IOW('P', 0x5, unsigned long) | 17 | #define PCITEST_READ _IOW('P', 0x5, unsigned long) |
| 18 | #define PCITEST_COPY _IOW('P', 0x6, unsigned long) | 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 | #endif /* __UAPI_LINUX_PCITEST_H */ | 23 | #endif /* __UAPI_LINUX_PCITEST_H */ |
| @@ -143,6 +143,8 @@ enum perf_event_sample_format { · 142 unmodified lines | |||
| 143 | PERF_SAMPLE_PHYS_ADDR = 1U << 19, | 143 | PERF_SAMPLE_PHYS_ADDR = 1U << 19, |
| 144 | 144 | ||
| 145 | PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */ | 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 | * the skb and act like everything | 45 | * the skb and act like everything |
| 46 | * is alright. | 46 | * is alright. |
| 47 | */ | 47 | */ |
| 48 | #define TC_ACT_VALUE_MAX TC_ACT_TRAP | ||
| 48 | 49 | ||
| 49 | /* There is a special kind of actions called "extended actions", | 50 | /* There is a special kind of actions called "extended actions", |
| 50 | * which need a value parameter. These have a local opcode located in | 51 | * which need a value parameter. These have a local opcode located in |
| @@ -55,11 +56,12 @@ enum { · 4 unmodified lines | |||
| 55 | #define __TC_ACT_EXT_SHIFT 28 | 56 | #define __TC_ACT_EXT_SHIFT 28 |
| 56 | #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT) | 57 | #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT) |
| 57 | #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1) | 58 | #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1) |
| 58 | #define TC_ACT_EXT_CMP(combined, opcode) \ | 59 | #define TC_ACT_EXT_OPCODE(combined) ((combined) & (~TC_ACT_EXT_VAL_MASK)) |
| 59 | (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode) | 60 | #define TC_ACT_EXT_CMP(combined, opcode) (TC_ACT_EXT_OPCODE(combined) == opcode) |
| 60 | 61 | ||
| 61 | #define TC_ACT_JUMP __TC_ACT_EXT(1) | 62 | #define TC_ACT_JUMP __TC_ACT_EXT(1) |
| 62 | #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2) | 63 | #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2) |
| 64 | #define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN | ||
| 63 | 65 | ||
| 64 | /* Action type identifiers*/ | 66 | /* Action type identifiers*/ |
| 65 | enum { | 67 | enum { |
| @@ -469,11 +471,46 @@ enum { · 403 unmodified lines | |||
| 469 | TCA_FLOWER_KEY_IP_TTL, /* u8 */ | 471 | TCA_FLOWER_KEY_IP_TTL, /* u8 */ |
| 470 | TCA_FLOWER_KEY_IP_TTL_MASK, /* u8 */ | 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 | __TCA_FLOWER_MAX, | 486 | __TCA_FLOWER_MAX, |
| 473 | }; | 487 | }; |
| 474 | 488 | ||
| 475 | #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) | 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 | enum { | 514 | enum { |
| 478 | TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), | 515 | TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), |
| 479 | TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), | 516 | TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), |
| @@ -124,6 +124,21 @@ struct tc_fifo_qopt { · 123 unmodified lines | |||
| 124 | __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */ | 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 | /* PRIO section */ | 142 | /* PRIO section */ |
| 128 | 143 | ||
| 129 | #define TCQ_PRIO_BANDS 16 | 144 | #define TCQ_PRIO_BANDS 16 |
| @@ -539,6 +554,7 @@ enum { · 409 unmodified lines | |||
| 539 | TCA_NETEM_LATENCY64, | 554 | TCA_NETEM_LATENCY64, |
| 540 | TCA_NETEM_JITTER64, | 555 | TCA_NETEM_JITTER64, |
| 541 | TCA_NETEM_SLOT, | 556 | TCA_NETEM_SLOT, |
| 557 | TCA_NETEM_SLOT_DIST, | ||
| 542 | __TCA_NETEM_MAX, | 558 | __TCA_NETEM_MAX, |
| 543 | }; | 559 | }; |
| 544 | 560 | ||
| @@ -581,6 +597,8 @@ struct tc_netem_slot { · 36 unmodified lines | |||
| 581 | __s64 max_delay; | 597 | __s64 max_delay; |
| 582 | __s32 max_packets; | 598 | __s32 max_packets; |
| 583 | __s32 max_bytes; | 599 | __s32 max_bytes; |
| 600 | __s64 dist_delay; /* nsec */ | ||
| 601 | __s64 dist_jitter; /* nsec */ | ||
| 584 | }; | 602 | }; |
| 585 | 603 | ||
| 586 | enum { | 604 | enum { |
| @@ -934,4 +952,136 @@ enum { · 347 unmodified lines | |||
| 934 | 952 | ||
| 935 | #define TCA_CBS_MAX (__TCA_CBS_MAX - 1) | 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 | #endif | 1087 | #endif |
| @@ -93,8 +93,8 @@ enum { · 92 unmodified lines | |||
| 93 | PMU_HEATHROW_BASED, /* PowerBook G3 series */ | 93 | PMU_HEATHROW_BASED, /* PowerBook G3 series */ |
| 94 | PMU_PADDINGTON_BASED, /* 1999 PowerBook G3 */ | 94 | PMU_PADDINGTON_BASED, /* 1999 PowerBook G3 */ |
| 95 | PMU_KEYLARGO_BASED, /* Core99 motherboard (PMU99) */ | 95 | PMU_KEYLARGO_BASED, /* Core99 motherboard (PMU99) */ |
| 96 | PMU_68K_V1, /* 68K PMU, version 1 */ | 96 | PMU_68K_V1, /* Unused/deprecated */ |
| 97 | PMU_68K_V2, /* 68K PMU, version 2 */ | 97 | PMU_68K_V2, /* Unused/deprecated */ |
| 98 | }; | 98 | }; |
| 99 | 99 | ||
| 100 | /* PMU PMU_POWER_EVENTS commands */ | 100 | /* PMU PMU_POWER_EVENTS commands */ |
| @@ -68,7 +68,7 @@ struct ppp_option_data { · 67 unmodified lines | |||
| 68 | struct pppol2tp_ioc_stats { | 68 | struct pppol2tp_ioc_stats { |
| 69 | __u16 tunnel_id; /* redundant */ | 69 | __u16 tunnel_id; /* redundant */ |
| 70 | __u16 session_id; /* if zero, get tunnel stats */ | 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 | __aligned_u64 tx_packets; | 72 | __aligned_u64 tx_packets; |
| 73 | __aligned_u64 tx_bytes; | 73 | __aligned_u64 tx_bytes; |
| 74 | __aligned_u64 tx_errors; | 74 | __aligned_u64 tx_errors; |
| @@ -1,6 +1,6 @@ | |||
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */ | 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 | * This software is available to you under a choice of one of two | 5 | * This software is available to you under a choice of one of two |
| 6 | * licenses. You may choose to be licensed under the terms of the GNU | 6 | * licenses. You may choose to be licensed under the terms of the GNU |
| @@ -118,7 +118,17 @@ · 111 unmodified lines | |||
| 118 | #define RDS_INFO_IB_CONNECTIONS 10008 | 118 | #define RDS_INFO_IB_CONNECTIONS 10008 |
| 119 | #define RDS_INFO_CONNECTION_STATS 10009 | 119 | #define RDS_INFO_CONNECTION_STATS 10009 |
| 120 | #define RDS_INFO_IWARP_CONNECTIONS 10010 | 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 | struct rds_info_counter { | 133 | struct rds_info_counter { |
| 124 | __u8 name[32]; | 134 | __u8 name[32]; |
| @@ -140,6 +150,15 @@ struct rds_info_connection { · 15 unmodified lines | |||
| 140 | __u8 flags; | 150 | __u8 flags; |
| 141 | } __attribute__((packed)); | 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 | #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 | 162 | #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 |
| 144 | #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 | 163 | #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 |
| 145 | 164 | ||
| @@ -153,6 +172,17 @@ struct rds_info_message { · 7 unmodified lines | |||
| 153 | __u8 flags; | 172 | __u8 flags; |
| 154 | } __attribute__((packed)); | 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 | struct rds_info_socket { | 186 | struct rds_info_socket { |
| 157 | __u32 sndbuf; | 187 | __u32 sndbuf; |
| 158 | __be32 bound_addr; | 188 | __be32 bound_addr; |
| @@ -163,6 +193,16 @@ struct rds_info_socket { · 4 unmodified lines | |||
| 163 | __u64 inum; | 193 | __u64 inum; |
| 164 | } __attribute__((packed)); | 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 | struct rds_info_tcp_socket { | 206 | struct rds_info_tcp_socket { |
| 167 | __be32 local_addr; | 207 | __be32 local_addr; |
| 168 | __be16 local_port; | 208 | __be16 local_port; |
| @@ -175,6 +215,18 @@ struct rds_info_tcp_socket { · 6 unmodified lines | |||
| 175 | __u32 last_seen_una; | 215 | __u32 last_seen_una; |
| 176 | } __attribute__((packed)); | 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 | #define RDS_IB_GID_LEN 16 | 230 | #define RDS_IB_GID_LEN 16 |
| 179 | struct rds_info_rdma_connection { | 231 | struct rds_info_rdma_connection { |
| 180 | __be32 src_addr; | 232 | __be32 src_addr; |
| @@ -189,6 +241,19 @@ struct rds_info_rdma_connection { · 8 unmodified lines | |||
| 189 | __u32 rdma_mr_size; | 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 | /* RDS message Receive Path Latency points */ | 257 | /* RDS message Receive Path Latency points */ |
| 193 | enum rds_message_rxpath_latency { | 258 | enum rds_message_rxpath_latency { |
| 194 | RDS_MSG_RX_HDR_TO_DGRAM_START = 0, | 259 | RDS_MSG_RX_HDR_TO_DGRAM_START = 0, |
| @@ -10,13 +10,8 @@ · 9 unmodified lines | |||
| 10 | * Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 10 | * Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #ifdef __KERNEL__ | 13 | #include <linux/types.h> |
| 14 | # include <linux/types.h> | 14 | #include <asm/byteorder.h> |
| 15 | #else | ||
| 16 | # include <stdint.h> | ||
| 17 | #endif | ||
| 18 | |||
| 19 | #include <linux/types_32_64.h> | ||
| 20 | 15 | ||
| 21 | enum rseq_cpu_id_state { | 16 | enum rseq_cpu_id_state { |
| 22 | RSEQ_CPU_ID_UNINITIALIZED = -1, | 17 | RSEQ_CPU_ID_UNINITIALIZED = -1, |
| @@ -52,10 +47,10 @@ struct rseq_cs { · 29 unmodified lines | |||
| 52 | __u32 version; | 47 | __u32 version; |
| 53 | /* enum rseq_cs_flags */ | 48 | /* enum rseq_cs_flags */ |
| 54 | __u32 flags; | 49 | __u32 flags; |
| 55 | LINUX_FIELD_u32_u64(start_ip); | 50 | __u64 start_ip; |
| 56 | /* Offset from start_ip. */ | 51 | /* Offset from start_ip. */ |
| 57 | LINUX_FIELD_u32_u64(post_commit_offset); | 52 | __u64 post_commit_offset; |
| 58 | LINUX_FIELD_u32_u64(abort_ip); | 53 | __u64 abort_ip; |
| 59 | } __attribute__((aligned(4 * sizeof(__u64)))); | 54 | } __attribute__((aligned(4 * sizeof(__u64)))); |
| 60 | 55 | ||
| 61 | /* | 56 | /* |
| @@ -67,28 +62,30 @@ struct rseq_cs { · 5 unmodified lines | |||
| 67 | struct rseq { | 62 | struct rseq { |
| 68 | /* | 63 | /* |
| 69 | * Restartable sequences cpu_id_start field. Updated by the | 64 | * Restartable sequences cpu_id_start field. Updated by the |
| 70 | * kernel, and read by user-space with single-copy atomicity | 65 | * kernel. Read by user-space with single-copy atomicity |
| 71 | * semantics. Aligned on 32-bit. Always contains a value in the | 66 | * semantics. This field should only be read by the thread which |
| 72 | * range of possible CPUs, although the value may not be the | 67 | * registered this data structure. Aligned on 32-bit. Always |
| 73 | * actual current CPU (e.g. if rseq is not initialized). This | 68 | * contains a value in the range of possible CPUs, although the |
| 74 | * CPU number value should always be compared against the value | 69 | * value may not be the actual current CPU (e.g. if rseq is not |
| 75 | * of the cpu_id field before performing a rseq commit or | 70 | * initialized). This CPU number value should always be compared |
| 76 | * returning a value read from a data structure indexed using | 71 | * against the value of the cpu_id field before performing a rseq |
| 77 | * the cpu_id_start value. | 72 | * commit or returning a value read from a data structure indexed |
| 73 | * using the cpu_id_start value. | ||
| 78 | */ | 74 | */ |
| 79 | __u32 cpu_id_start; | 75 | __u32 cpu_id_start; |
| 80 | /* | 76 | /* |
| 81 | * Restartable sequences cpu_id field. Updated by the kernel, | 77 | * Restartable sequences cpu_id field. Updated by the kernel. |
| 82 | * and read by user-space with single-copy atomicity semantics. | 78 | * Read by user-space with single-copy atomicity semantics. This |
| 83 | * Aligned on 32-bit. Values RSEQ_CPU_ID_UNINITIALIZED and | 79 | * field should only be read by the thread which registered this |
| 84 | * RSEQ_CPU_ID_REGISTRATION_FAILED have a special semantic: the | 80 | * data structure. Aligned on 32-bit. Values |
| 85 | * former means "rseq uninitialized", and latter means "rseq | 81 | * RSEQ_CPU_ID_UNINITIALIZED and RSEQ_CPU_ID_REGISTRATION_FAILED |
| 86 | * initialization failed". This value is meant to be read within | 82 | * have a special semantic: the former means "rseq uninitialized", |
| 87 | * rseq critical sections and compared with the cpu_id_start | 83 | * and latter means "rseq initialization failed". This value is |
| 88 | * value previously read, before performing the commit instruction, | 84 | * meant to be read within rseq critical sections and compared |
| 89 | * or read and compared with the cpu_id_start value before returning | 85 | * with the cpu_id_start value previously read, before performing |
| 90 | * a value loaded from a data structure indexed using the | 86 | * the commit instruction, or read and compared with the |
| 91 | * cpu_id_start value. | 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 | __u32 cpu_id; | 90 | __u32 cpu_id; |
| 94 | /* | 91 | /* |
| @@ -105,27 +102,44 @@ struct rseq { · 10 unmodified lines | |||
| 105 | * targeted by the rseq_cs. Also needs to be set to NULL by user-space | 102 | * targeted by the rseq_cs. Also needs to be set to NULL by user-space |
| 106 | * before reclaiming memory that contains the targeted struct rseq_cs. | 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. | 105 | * Read and set by the kernel. Set by user-space with single-copy |
| 109 | * Set by user-space with single-copy atomicity semantics. Aligned | 106 | * atomicity semantics. This field should only be updated by the |
| 110 | * on 64-bit. | 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 | * - RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT | 134 | * - RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT |
| 121 | * Inhibit instruction sequence block restart and event | 135 | * Inhibit instruction sequence block restart on preemption |
| 122 | * counter increment on preemption for this thread. | 136 | * for this thread. |
| 123 | * - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL | 137 | * - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL |
| 124 | * Inhibit instruction sequence block restart and event | 138 | * Inhibit instruction sequence block restart on signal |
| 125 | * counter increment on signal delivery for this thread. | 139 | * delivery for this thread. |
| 126 | * - RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE | 140 | * - RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE |
| 127 | * Inhibit instruction sequence block restart and event | 141 | * Inhibit instruction sequence block restart on migration for |
| 128 | * counter increment on migration for this thread. | 142 | * this thread. |
| 129 | */ | 143 | */ |
| 130 | __u32 flags; | 144 | __u32 flags; |
| 131 | } __attribute__((aligned(4 * sizeof(__u64)))); | 145 | } __attribute__((aligned(4 * sizeof(__u64)))); |
| @@ -150,6 +150,13 @@ enum { · 149 unmodified lines | |||
| 150 | RTM_NEWCACHEREPORT = 96, | 150 | RTM_NEWCACHEREPORT = 96, |
| 151 | #define RTM_NEWCACHEREPORT RTM_NEWCACHEREPORT | 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 | __RTM_MAX, | 160 | __RTM_MAX, |
| 154 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) | 161 | #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) |
| 155 | }; | 162 | }; |
| @@ -100,6 +100,7 @@ typedef __s32 sctp_assoc_t; · 99 unmodified lines | |||
| 100 | #define SCTP_RECVNXTINFO 33 | 100 | #define SCTP_RECVNXTINFO 33 |
| 101 | #define SCTP_DEFAULT_SNDINFO 34 | 101 | #define SCTP_DEFAULT_SNDINFO 34 |
| 102 | #define SCTP_AUTH_DEACTIVATE_KEY 35 | 102 | #define SCTP_AUTH_DEACTIVATE_KEY 35 |
| 103 | #define SCTP_REUSE_PORT 36 | ||
| 103 | 104 | ||
| 104 | /* Internal Socket Options. Some of the sctp library functions are | 105 | /* Internal Socket Options. Some of the sctp library functions are |
| 105 | * implemented using these socket options. | 106 | * implemented using these socket options. |
| @@ -762,6 +763,8 @@ enum sctp_spp_flags { · 656 unmodified lines | |||
| 762 | SPP_SACKDELAY_DISABLE = 1<<6, /*Disable SACK*/ | 763 | SPP_SACKDELAY_DISABLE = 1<<6, /*Disable SACK*/ |
| 763 | SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE, | 764 | SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE, |
| 764 | SPP_HB_TIME_IS_ZERO = 1<<7, /* Set HB delay to 0 */ | 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 | struct sctp_paddrparams { | 770 | struct sctp_paddrparams { |
| @@ -772,6 +775,8 @@ struct sctp_paddrparams { · 4 unmodified lines | |||
| 772 | __u32 spp_pathmtu; | 775 | __u32 spp_pathmtu; |
| 773 | __u32 spp_sackdelay; | 776 | __u32 spp_sackdelay; |
| 774 | __u32 spp_flags; | 777 | __u32 spp_flags; |
| 778 | __u32 spp_ipv6_flowlabel; | ||
| 779 | __u8 spp_dscp; | ||
| 775 | } __attribute__((packed, aligned(4))); | 780 | } __attribute__((packed, aligned(4))); |
| 776 | 781 | ||
| 777 | /* | 782 | /* |
| @@ -20,7 +20,7 @@ struct smc_diag_req { · 19 unmodified lines | |||
| 20 | struct smc_diag_msg { | 20 | struct smc_diag_msg { |
| 21 | __u8 diag_family; | 21 | __u8 diag_family; |
| 22 | __u8 diag_state; | 22 | __u8 diag_state; |
| 23 | __u8 diag_fallback; | 23 | __u8 diag_mode; |
| 24 | __u8 diag_shutdown; | 24 | __u8 diag_shutdown; |
| 25 | struct inet_diag_sockid id; | 25 | struct inet_diag_sockid id; |
| 26 | 26 | ||
| @@ -28,6 +28,13 @@ struct smc_diag_msg { · 1 unmodified line | |||
| 28 | __u64 diag_inode; | 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 | /* Extensions */ | 38 | /* Extensions */ |
| 32 | 39 | ||
| 33 | enum { | 40 | enum { |
| @@ -35,6 +42,8 @@ enum { · 1 unmodified line | |||
| 35 | SMC_DIAG_CONNINFO, | 42 | SMC_DIAG_CONNINFO, |
| 36 | SMC_DIAG_LGRINFO, | 43 | SMC_DIAG_LGRINFO, |
| 37 | SMC_DIAG_SHUTDOWN, | 44 | SMC_DIAG_SHUTDOWN, |
| 45 | SMC_DIAG_DMBINFO, | ||
| 46 | SMC_DIAG_FALLBACK, | ||
| 38 | __SMC_DIAG_MAX, | 47 | __SMC_DIAG_MAX, |
| 39 | }; | 48 | }; |
| 40 | 49 | ||
| @@ -83,4 +92,18 @@ struct smc_diag_lgrinfo { · 42 unmodified lines | |||
| 83 | struct smc_diag_linkinfo lnk[1]; | 92 | struct smc_diag_linkinfo lnk[1]; |
| 84 | __u8 role; | 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 | #endif /* _UAPI_SMC_DIAG_H_ */ | 109 | #endif /* _UAPI_SMC_DIAG_H_ */ |
| @@ -56,6 +56,7 @@ enum · 55 unmodified lines | |||
| 56 | IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */ | 56 | IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */ |
| 57 | IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */ | 57 | IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */ |
| 58 | IPSTATS_MIB_CEPKTS, /* InCEPkts */ | 58 | IPSTATS_MIB_CEPKTS, /* InCEPkts */ |
| 59 | IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */ | ||
| 59 | __IPSTATS_MIB_MAX | 60 | __IPSTATS_MIB_MAX |
| 60 | }; | 61 | }; |
| 61 | 62 | ||
| @@ -279,6 +280,8 @@ enum · 217 unmodified lines | |||
| 279 | LINUX_MIB_TCPDELIVERED, /* TCPDelivered */ | 280 | LINUX_MIB_TCPDELIVERED, /* TCPDelivered */ |
| 280 | LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */ | 281 | LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */ |
| 281 | LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */ | 282 | LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */ |
| 283 | LINUX_MIB_TCPZEROWINDOWDROP, /* TCPZeroWindowDrop */ | ||
| 284 | LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */ | ||
| 282 | __LINUX_MIB_MAX | 285 | __LINUX_MIB_MAX |
| 283 | }; | 286 | }; |
| 284 | 287 | ||
| @@ -575,7 +575,8 @@ enum { · 574 unmodified lines | |||
| 575 | 575 | ||
| 576 | /* /proc/sys/net/ipv6/icmp */ | 576 | /* /proc/sys/net/ipv6/icmp */ |
| 577 | enum { | 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 | /* /proc/sys/net/<protocol>/neigh/<dev> */ | 582 | /* /proc/sys/net/<protocol>/neigh/<dev> */ |
| @@ -17,13 +17,15 @@ enum { · 16 unmodified lines | |||
| 17 | TCA_PEDIT_KEY_EX, | 17 | TCA_PEDIT_KEY_EX, |
| 18 | __TCA_PEDIT_MAX | 18 | __TCA_PEDIT_MAX |
| 19 | }; | 19 | }; |
| 20 | |||
| 20 | #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1) | 21 | #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1) |
| 21 | 22 | ||
| 22 | enum { | 23 | enum { |
| 23 | TCA_PEDIT_KEY_EX_HTYPE = 1, | 24 | TCA_PEDIT_KEY_EX_HTYPE = 1, |
| 24 | TCA_PEDIT_KEY_EX_CMD = 2, | 25 | TCA_PEDIT_KEY_EX_CMD = 2, |
| 25 | __TCA_PEDIT_KEY_EX_MAX | 26 | __TCA_PEDIT_KEY_EX_MAX |
| 26 | }; | 27 | }; |
| 28 | |||
| 27 | #define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1) | 29 | #define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1) |
| 28 | 30 | ||
| 29 | /* TCA_PEDIT_KEY_EX_HDR_TYPE_NETWROK is a special case for legacy users. It | 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 | TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5, | 40 | TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5, |
| 39 | __PEDIT_HDR_TYPE_MAX, | 41 | __PEDIT_HDR_TYPE_MAX, |
| 40 | }; | 42 | }; |
| 43 | |||
| 41 | #define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1) | 44 | #define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1) |
| 42 | 45 | ||
| 43 | enum pedit_cmd { | 46 | enum pedit_cmd { |
| @@ -45,6 +48,7 @@ enum pedit_cmd { · 1 unmodified line | |||
| 45 | TCA_PEDIT_KEY_EX_CMD_ADD = 1, | 48 | TCA_PEDIT_KEY_EX_CMD_ADD = 1, |
| 46 | __PEDIT_CMD_MAX, | 49 | __PEDIT_CMD_MAX, |
| 47 | }; | 50 | }; |
| 51 | |||
| 48 | #define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1) | 52 | #define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1) |
| 49 | 53 | ||
| 50 | struct tc_pedit_key { | 54 | struct tc_pedit_key { |
| @@ -55,13 +59,14 @@ struct tc_pedit_key { · 4 unmodified lines | |||
| 55 | __u32 offmask; | 59 | __u32 offmask; |
| 56 | __u32 shift; | 60 | __u32 shift; |
| 57 | }; | 61 | }; |
| 58 | 62 | ||
| 59 | struct tc_pedit_sel { | 63 | struct tc_pedit_sel { |
| 60 | tc_gen; | 64 | tc_gen; |
| 61 | unsigned char nkeys; | 65 | unsigned char nkeys; |
| 62 | unsigned char flags; | 66 | unsigned char flags; |
| 63 | struct tc_pedit_key keys[0]; | 67 | struct tc_pedit_key keys[0]; |
| 64 | }; | 68 | }; |
| 69 | |||
| 65 | #define tc_pedit tc_pedit_sel | 70 | #define tc_pedit tc_pedit_sel |
| 66 | 71 | ||
| 67 | #endif | 72 | #endif |
| @@ -30,6 +30,7 @@ · 29 unmodified lines | |||
| 30 | #define SKBEDIT_F_MARK 0x4 | 30 | #define SKBEDIT_F_MARK 0x4 |
| 31 | #define SKBEDIT_F_PTYPE 0x8 | 31 | #define SKBEDIT_F_PTYPE 0x8 |
| 32 | #define SKBEDIT_F_MASK 0x10 | 32 | #define SKBEDIT_F_MASK 0x10 |
| 33 | #define SKBEDIT_F_INHERITDSFIELD 0x20 | ||
| 33 | 34 | ||
| 34 | struct tc_skbedit { | 35 | struct tc_skbedit { |
| 35 | tc_gen; | 36 | tc_gen; |
| @@ -45,6 +46,7 @@ enum { · 9 unmodified lines | |||
| 45 | TCA_SKBEDIT_PAD, | 46 | TCA_SKBEDIT_PAD, |
| 46 | TCA_SKBEDIT_PTYPE, | 47 | TCA_SKBEDIT_PTYPE, |
| 47 | TCA_SKBEDIT_MASK, | 48 | TCA_SKBEDIT_MASK, |
| 49 | TCA_SKBEDIT_FLAGS, | ||
| 48 | __TCA_SKBEDIT_MAX | 50 | __TCA_SKBEDIT_MAX |
| 49 | }; | 51 | }; |
| 50 | #define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1) | 52 | #define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1) |
| @@ -36,9 +36,37 @@ enum { · 35 unmodified lines | |||
| 36 | TCA_TUNNEL_KEY_PAD, | 36 | TCA_TUNNEL_KEY_PAD, |
| 37 | TCA_TUNNEL_KEY_ENC_DST_PORT, /* be16 */ | 37 | TCA_TUNNEL_KEY_ENC_DST_PORT, /* be16 */ |
| 38 | TCA_TUNNEL_KEY_NO_CSUM, /* u8 */ | 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 | __TCA_TUNNEL_KEY_MAX, | 44 | __TCA_TUNNEL_KEY_MAX, |
| 40 | }; | 45 | }; |
| 41 | 46 | ||
| 42 | #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1) | 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 | #endif | 72 | #endif |
| @@ -127,6 +127,10 @@ enum { · 126 unmodified lines | |||
| 127 | 127 | ||
| 128 | #define TCP_CM_INQ TCP_INQ | 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 | struct tcp_repair_opt { | 134 | struct tcp_repair_opt { |
| 131 | __u32 opt_code; | 135 | __u32 opt_code; |
| 132 | __u32 opt_val; | 136 | __u32 opt_val; |
| @@ -231,6 +235,11 @@ struct tcp_info { · 98 unmodified lines | |||
| 231 | 235 | ||
| 232 | __u32 tcpi_delivered; | 236 | __u32 tcpi_delivered; |
| 233 | __u32 tcpi_delivered_ce; | 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 | /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */ | 245 | /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */ |
| @@ -253,7 +262,10 @@ enum { · 16 unmodified lines | |||
| 253 | TCP_NLA_SND_SSTHRESH, /* Slow start size threshold */ | 262 | TCP_NLA_SND_SSTHRESH, /* Slow start size threshold */ |
| 254 | TCP_NLA_DELIVERED, /* Data pkts delivered incl. out-of-order */ | 263 | TCP_NLA_DELIVERED, /* Data pkts delivered incl. out-of-order */ |
| 255 | TCP_NLA_DELIVERED_CE, /* Like above but only ones w/ CE marks */ | 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 | /* for TCP_MD5SIG socket option */ | 271 | /* for TCP_MD5SIG socket option */ |
| @@ -49,6 +49,13 @@ struct __kernel_timespec { · 48 unmodified lines | |||
| 49 | }; | 49 | }; |
| 50 | #endif | 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 | * legacy timeval structure, only embedded in structures that | 60 | * legacy timeval structure, only embedded in structures that |
| 54 | * traditionally used 'timeval' to pass time intervals (not absolute | 61 | * traditionally used 'timeval' to pass time intervals (not absolute |
| @@ -121,6 +121,7 @@ enum { · 120 unmodified lines | |||
| 121 | TIPC_NLA_SOCK_TIPC_STATE, /* u32 */ | 121 | TIPC_NLA_SOCK_TIPC_STATE, /* u32 */ |
| 122 | TIPC_NLA_SOCK_COOKIE, /* u64 */ | 122 | TIPC_NLA_SOCK_COOKIE, /* u64 */ |
| 123 | TIPC_NLA_SOCK_PAD, /* flag */ | 123 | TIPC_NLA_SOCK_PAD, /* flag */ |
| 124 | TIPC_NLA_SOCK_GROUP, /* nest */ | ||
| 124 | 125 | ||
| 125 | __TIPC_NLA_SOCK_MAX, | 126 | __TIPC_NLA_SOCK_MAX, |
| 126 | TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1 | 127 | TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1 |
| @@ -233,6 +234,19 @@ enum { · 106 unmodified lines | |||
| 233 | TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1 | 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 | /* Nest, connection info */ | 250 | /* Nest, connection info */ |
| 237 | enum { | 251 | enum { |
| 238 | TIPC_NLA_CON_UNSPEC, | 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 | static inline __u8 uac_processing_unit_bControlSize(struct uac_processing_unit_descriptor *desc, | 390 | static inline __u8 uac_processing_unit_bControlSize(struct uac_processing_unit_descriptor *desc, |
| 391 | int protocol) | 391 | int protocol) |
| 392 | { | 392 | { |
| 393 | return (protocol == UAC_VERSION_1) ? | 393 | switch (protocol) { |
| 394 | desc->baSourceID[desc->bNrInPins + 4] : | 394 | case UAC_VERSION_1: |
| 395 | 2; /* in UAC2, this value is constant */ | 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 | static inline __u8 *uac_processing_unit_bmControls(struct uac_processing_unit_descriptor *desc, | 405 | static inline __u8 *uac_processing_unit_bmControls(struct uac_processing_unit_descriptor *desc, |
| 399 | int protocol) | 406 | int protocol) |
| 400 | { | 407 | { |
| 401 | return (protocol == UAC_VERSION_1) ? | 408 | switch (protocol) { |
| 402 | &desc->baSourceID[desc->bNrInPins + 5] : | 409 | case UAC_VERSION_1: |
| 403 | &desc->baSourceID[desc->bNrInPins + 6]; | 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 | static inline __u8 uac_processing_unit_iProcessing(struct uac_processing_unit_descriptor *desc, | 420 | static inline __u8 uac_processing_unit_iProcessing(struct uac_processing_unit_descriptor *desc, |
| 407 | int protocol) | 421 | int protocol) |
| 408 | { | 422 | { |
| 409 | __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); | 423 | __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); |
| 410 | return *(uac_processing_unit_bmControls(desc, protocol) | 424 | |
| 411 | + control_size); | 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 | static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc, | 436 | static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc, |
| 415 | int protocol) | 437 | int protocol) |
| 416 | { | 438 | { |
| 417 | __u8 control_size = uac_processing_unit_bControlSize(desc, protocol); | 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 | + control_size + 1; | 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 | /* 4.5.2 Class-Specific AS Interface Descriptor */ | 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 | #ifndef __LINUX_USB_TMC_H | 16 | #ifndef __LINUX_USB_TMC_H |
| 17 | #define __LINUX_USB_TMC_H | 17 | #define __LINUX_USB_TMC_H |
| 18 | 18 | ||
| 19 | #include <linux/types.h> /* __u8 etc */ | ||
| 20 | |||
| 19 | /* USB TMC status values */ | 21 | /* USB TMC status values */ |
| 20 | #define USBTMC_STATUS_SUCCESS 0x01 | 22 | #define USBTMC_STATUS_SUCCESS 0x01 |
| 21 | #define USBTMC_STATUS_PENDING 0x02 | 23 | #define USBTMC_STATUS_PENDING 0x02 |
| @@ -38,6 +40,11 @@ · 16 unmodified lines | |||
| 38 | #define USBTMC488_REQUEST_GOTO_LOCAL 161 | 40 | #define USBTMC488_REQUEST_GOTO_LOCAL 161 |
| 39 | #define USBTMC488_REQUEST_LOCAL_LOCKOUT 162 | 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 | /* Request values for USBTMC driver's ioctl entry point */ | 48 | /* Request values for USBTMC driver's ioctl entry point */ |
| 42 | #define USBTMC_IOC_NR 91 | 49 | #define USBTMC_IOC_NR 91 |
| 43 | #define USBTMC_IOCTL_INDICATOR_PULSE _IO(USBTMC_IOC_NR, 1) | 50 | #define USBTMC_IOCTL_INDICATOR_PULSE _IO(USBTMC_IOC_NR, 1) |
| @@ -46,11 +53,17 @@ · 2 unmodified lines | |||
| 46 | #define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4) | 53 | #define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4) |
| 47 | #define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6) | 54 | #define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6) |
| 48 | #define USBTMC_IOCTL_CLEAR_IN_HALT _IO(USBTMC_IOC_NR, 7) | 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 | #define USBTMC488_IOCTL_GET_CAPS _IOR(USBTMC_IOC_NR, 17, unsigned char) | 61 | #define USBTMC488_IOCTL_GET_CAPS _IOR(USBTMC_IOC_NR, 17, unsigned char) |
| 50 | #define USBTMC488_IOCTL_READ_STB _IOR(USBTMC_IOC_NR, 18, unsigned char) | 62 | #define USBTMC488_IOCTL_READ_STB _IOR(USBTMC_IOC_NR, 18, unsigned char) |
| 51 | #define USBTMC488_IOCTL_REN_CONTROL _IOW(USBTMC_IOC_NR, 19, unsigned char) | 63 | #define USBTMC488_IOCTL_REN_CONTROL _IOW(USBTMC_IOC_NR, 19, unsigned char) |
| 52 | #define USBTMC488_IOCTL_GOTO_LOCAL _IO(USBTMC_IOC_NR, 20) | 64 | #define USBTMC488_IOCTL_GOTO_LOCAL _IO(USBTMC_IOC_NR, 20) |
| 53 | #define USBTMC488_IOCTL_LOCAL_LOCKOUT _IO(USBTMC_IOC_NR, 21) | 65 | #define USBTMC488_IOCTL_LOCAL_LOCKOUT _IO(USBTMC_IOC_NR, 21) |
| 66 | #define USBTMC488_IOCTL_TRIGGER _IO(USBTMC_IOC_NR, 22) | ||
| 54 | 67 | ||
| 55 | /* Driver encoded usb488 capabilities */ | 68 | /* Driver encoded usb488 capabilities */ |
| 56 | #define USBTMC488_CAPABILITY_TRIGGER 1 | 69 | #define USBTMC488_CAPABILITY_TRIGGER 1 |
| @@ -28,6 +28,8 @@ · 27 unmodified lines | |||
| 28 | #define UVC_CTRL_FLAG_RESTORE (1 << 6) | 28 | #define UVC_CTRL_FLAG_RESTORE (1 << 6) |
| 29 | /* Control can be updated by the camera. */ | 29 | /* Control can be updated by the camera. */ |
| 30 | #define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7) | 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 | #define UVC_CTRL_FLAG_GET_RANGE \ | 34 | #define UVC_CTRL_FLAG_GET_RANGE \ |
| 33 | (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \ | 35 | (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \ |
| @@ -188,7 +188,7 @@ enum v4l2_colorfx { · 187 unmodified lines | |||
| 188 | 188 | ||
| 189 | /* The base for the imx driver controls. | 189 | /* The base for the imx driver controls. |
| 190 | * We reserve 16 controls for this driver. */ | 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 | /* MPEG-class control IDs */ | 193 | /* MPEG-class control IDs */ |
| 194 | /* The MPEG controls are applicable to all codec controls | 194 | /* The MPEG controls are applicable to all codec controls |
| @@ -587,7 +587,23 @@ enum v4l2_vp8_golden_frame_sel { · 392 unmodified lines | |||
| 587 | #define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508) | 587 | #define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508) |
| 588 | #define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509) | 588 | #define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509) |
| 589 | #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) | 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 | /* CIDs for HEVC encoding. */ | 608 | /* CIDs for HEVC encoding. */ |
| 593 | 609 | ||
| @@ -170,8 +170,12 @@ struct v4l2_subdev_selection { · 169 unmodified lines | |||
| 170 | #define VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection) | 170 | #define VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection) |
| 171 | #define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection) | 171 | #define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection) |
| 172 | /* The following ioctls are identical to the ioctls in videodev2.h */ | 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 | #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid) | 176 | #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid) |
| 174 | #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid) | 177 | #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid) |
| 178 | #define VIDIOC_SUBDEV_QUERYSTD _IOR('V', 63, v4l2_std_id) | ||
| 175 | #define VIDIOC_SUBDEV_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) | 179 | #define VIDIOC_SUBDEV_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) |
| 176 | #define VIDIOC_SUBDEV_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) | 180 | #define VIDIOC_SUBDEV_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) |
| 177 | #define VIDIOC_SUBDEV_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) | 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 | #define VHOST_IOTLB_MSG 0x1 | 67 | #define VHOST_IOTLB_MSG 0x1 |
| 68 | #define VHOST_IOTLB_MSG_V2 0x2 | ||
| 68 | 69 | ||
| 69 | struct vhost_msg { | 70 | struct vhost_msg { |
| 70 | int type; | 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 | struct vhost_memory_region { | 87 | struct vhost_memory_region { |
| 78 | __u64 guest_phys_addr; | 88 | __u64 guest_phys_addr; |
| 79 | __u64 memory_size; /* bytes */ | 89 | __u64 memory_size; /* bytes */ |
| @@ -160,6 +170,14 @@ struct vhost_memory { · 80 unmodified lines | |||
| 160 | #define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \ | 170 | #define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \ |
| 161 | struct vhost_vring_state) | 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 | /* VHOST_NET specific defines */ | 181 | /* VHOST_NET specific defines */ |
| 164 | 182 | ||
| 165 | /* Attach virtio net ring to a raw socket, or tap device. | 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 | /* Grey bit-packed formats */ | 523 | /* Grey bit-packed formats */ |
| 524 | #define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ | 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 | /* Palette formats */ | 527 | /* Palette formats */ |
| 527 | #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ | 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 | #define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C') | 610 | #define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C') |
| 610 | #define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C') | 611 | #define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C') |
| 611 | #define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C') | 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 | #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */ | 618 | #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */ |
| 613 | #define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */ | 619 | #define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */ |
| 614 | #define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */ | 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 | #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ | 642 | #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ |
| 637 | #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */ | 643 | #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */ |
| 638 | #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */ | 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 | /* Vendor-specific formats */ | 647 | /* Vendor-specific formats */ |
| 641 | #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ | 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 | #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability) | 2319 | #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability) |
| 2313 | #define VIDIOC_RESERVED _IO('V', 1) | ||
| 2314 | #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc) | 2320 | #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc) |
| 2315 | #define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format) | 2321 | #define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format) |
| 2316 | #define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format) | 2322 | #define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format) |
| @@ -305,9 +305,12 @@ enum xfrm_attr_type_t { · 304 unmodified lines | |||
| 305 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ | 305 | XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ |
| 306 | XFRMA_PAD, | 306 | XFRMA_PAD, |
| 307 | XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */ | 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 | __XFRMA_MAX | 311 | __XFRMA_MAX |
| 310 | 312 | ||
| 313 | #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */ | ||
| 311 | #define XFRMA_MAX (__XFRMA_MAX - 1) | 314 | #define XFRMA_MAX (__XFRMA_MAX - 1) |
| 312 | }; | 315 | }; |
| 313 | 316 | ||
| @@ -285,6 +285,20 @@ struct ubi_attach_req { · 284 unmodified lines | |||
| 285 | __s8 padding[10]; | 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 | * struct ubi_mkvol_req - volume description data structure used in | 303 | * struct ubi_mkvol_req - volume description data structure used in |
| 290 | * volume creation requests. | 304 | * volume creation requests. |
| @@ -292,7 +306,7 @@ struct ubi_attach_req { · 1 unmodified line | |||
| 292 | * @alignment: volume alignment | 306 | * @alignment: volume alignment |
| 293 | * @bytes: volume size in bytes | 307 | * @bytes: volume size in bytes |
| 294 | * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME) | 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 | * @name_len: volume name length | 310 | * @name_len: volume name length |
| 297 | * @padding2: reserved for future, not used, has to be zeroed | 311 | * @padding2: reserved for future, not used, has to be zeroed |
| 298 | * @name: volume name | 312 | * @name: volume name |
| @@ -321,7 +335,7 @@ struct ubi_mkvol_req { · 22 unmodified lines | |||
| 321 | __s32 alignment; | 335 | __s32 alignment; |
| 322 | __s64 bytes; | 336 | __s64 bytes; |
| 323 | __s8 vol_type; | 337 | __s8 vol_type; |
| 324 | __s8 padding1; | 338 | __u8 flags; |
| 325 | __s16 name_len; | 339 | __s16 name_len; |
| 326 | __s8 padding2[4]; | 340 | __s8 padding2[4]; |
| 327 | char name[UBI_MAX_VOLUME_NAME + 1]; | 341 | char name[UBI_MAX_VOLUME_NAME + 1]; |
| @@ -44,6 +44,16 @@ · 43 unmodified lines | |||
| 44 | * In particular do not use pointer types -- pass pointers in __aligned_u64 | 44 | * In particular do not use pointer types -- pass pointers in __aligned_u64 |
| 45 | * instead. | 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 | struct c4iw_create_cq_resp { | 57 | struct c4iw_create_cq_resp { |
| 48 | __aligned_u64 key; | 58 | __aligned_u64 key; |
| 49 | __aligned_u64 gts_key; | 59 | __aligned_u64 gts_key; |
| @@ -51,11 +61,12 @@ struct c4iw_create_cq_resp { · 1 unmodified line | |||
| 51 | __u32 cqid; | 61 | __u32 cqid; |
| 52 | __u32 size; | 62 | __u32 size; |
| 53 | __u32 qid_mask; | 63 | __u32 qid_mask; |
| 54 | __u32 reserved; /* explicit padding (optional for i386) */ | 64 | __u32 flags; |
| 55 | }; | 65 | }; |
| 56 | 66 | ||
| 57 | enum { | 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 | struct c4iw_create_qp_resp { | 72 | struct c4iw_create_qp_resp { |
| @@ -74,6 +85,23 @@ struct c4iw_create_qp_resp { · 12 unmodified lines | |||
| 74 | __u32 flags; | 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 | struct c4iw_alloc_ucontext_resp { | 105 | struct c4iw_alloc_ucontext_resp { |
| 78 | __aligned_u64 status_page_key; | 106 | __aligned_u64 status_page_key; |
| 79 | __u32 status_page_size; | 107 | __u32 status_page_size; |
| @@ -53,6 +53,7 @@ struct hns_roce_ib_create_qp { · 52 unmodified lines | |||
| 53 | __u8 log_sq_stride; | 53 | __u8 log_sq_stride; |
| 54 | __u8 sq_no_prefetch; | 54 | __u8 sq_no_prefetch; |
| 55 | __u8 reserved[5]; | 55 | __u8 reserved[5]; |
| 56 | __aligned_u64 sdb_addr; | ||
| 56 | }; | 57 | }; |
| 57 | 58 | ||
| 58 | struct hns_roce_ib_create_qp_resp { | 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 | enum uverbs_attrs_create_flow_action_esp { | 81 | enum uverbs_attrs_create_flow_action_esp { |
| 82 | UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE, | 82 | UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE, |
| 83 | UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS, | 83 | UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS, |
| 84 | UVERBS_ATTR_FLOW_ACTION_ESP_ESN, | 84 | UVERBS_ATTR_FLOW_ACTION_ESP_ESN, |
| 85 | UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT, | 85 | UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT, |
| @@ -87,6 +87,11 @@ enum uverbs_attrs_create_flow_action_esp { · 1 unmodified line | |||
| 87 | UVERBS_ATTR_FLOW_ACTION_ESP_ENCAP, | 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 | enum uverbs_attrs_destroy_flow_action_esp { | 95 | enum uverbs_attrs_destroy_flow_action_esp { |
| 91 | UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE, | 96 | UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE, |
| 92 | }; | 97 | }; |
| @@ -40,6 +40,59 @@ · 39 unmodified lines | |||
| 40 | #define RDMA_UAPI_PTR(_type, _name) __aligned_u64 _name | 40 | #define RDMA_UAPI_PTR(_type, _name) __aligned_u64 _name |
| 41 | #endif | 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 | enum ib_uverbs_flow_action_esp_keymat { | 96 | enum ib_uverbs_flow_action_esp_keymat { |
| 44 | IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM, | 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 | __aligned_u64 hard_limit_pkts; | 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 | #endif | 160 | #endif |
| @@ -279,7 +279,7 @@ struct ib_uverbs_query_port { · 278 unmodified lines | |||
| 279 | }; | 279 | }; |
| 280 | 280 | ||
| 281 | struct ib_uverbs_query_port_resp { | 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 | __u32 max_msg_sz; | 283 | __u32 max_msg_sz; |
| 284 | __u32 bad_pkey_cntr; | 284 | __u32 bad_pkey_cntr; |
| 285 | __u32 qkey_viol_cntr; | 285 | __u32 qkey_viol_cntr; |
| @@ -299,7 +299,8 @@ struct ib_uverbs_query_port_resp { · 13 unmodified lines | |||
| 299 | __u8 active_speed; | 299 | __u8 active_speed; |
| 300 | __u8 phys_state; | 300 | __u8 phys_state; |
| 301 | __u8 link_layer; | 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 | struct ib_uverbs_alloc_pd { | 306 | struct ib_uverbs_alloc_pd { |
| @@ -76,6 +76,9 @@ enum mlx5_lib_caps { · 75 unmodified lines | |||
| 76 | MLX5_LIB_CAP_4K_UAR = (__u64)1 << 0, | 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 | struct mlx5_ib_alloc_ucontext_req_v2 { | 82 | struct mlx5_ib_alloc_ucontext_req_v2 { |
| 80 | __u32 total_num_bfregs; | 83 | __u32 total_num_bfregs; |
| 81 | __u32 num_low_latency_bfregs; | 84 | __u32 num_low_latency_bfregs; |
| @@ -90,6 +93,7 @@ struct mlx5_ib_alloc_ucontext_req_v2 { · 8 unmodified lines | |||
| 90 | 93 | ||
| 91 | enum mlx5_ib_alloc_ucontext_resp_mask { | 94 | enum mlx5_ib_alloc_ucontext_resp_mask { |
| 92 | MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0, | 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 | enum mlx5_user_cmds_supp_uhw { | 99 | enum mlx5_user_cmds_supp_uhw { |
| @@ -138,7 +142,7 @@ struct mlx5_ib_alloc_ucontext_resp { · 42 unmodified lines | |||
| 138 | __u32 log_uar_size; | 142 | __u32 log_uar_size; |
| 139 | __u32 num_uars_per_page; | 143 | __u32 num_uars_per_page; |
| 140 | __u32 num_dyn_bfregs; | 144 | __u32 num_dyn_bfregs; |
| 141 | __u32 reserved3; | 145 | __u32 dump_fill_mkey; |
| 142 | }; | 146 | }; |
| 143 | 147 | ||
| 144 | struct mlx5_ib_alloc_pd_resp { | 148 | struct mlx5_ib_alloc_pd_resp { |
| @@ -33,6 +33,7 @@ · 32 unmodified lines | |||
| 33 | #ifndef MLX5_USER_IOCTL_CMDS_H | 33 | #ifndef MLX5_USER_IOCTL_CMDS_H |
| 34 | #define MLX5_USER_IOCTL_CMDS_H | 34 | #define MLX5_USER_IOCTL_CMDS_H |
| 35 | 35 | ||
| 36 | #include <linux/types.h> | ||
| 36 | #include <rdma/ib_user_ioctl_cmds.h> | 37 | #include <rdma/ib_user_ioctl_cmds.h> |
| 37 | 38 | ||
| 38 | enum mlx5_ib_create_flow_action_attrs { | 39 | enum mlx5_ib_create_flow_action_attrs { |
| @@ -45,4 +46,124 @@ enum mlx5_ib_alloc_dm_attrs { · 6 unmodified lines | |||
| 45 | MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX, | 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 | #endif | 169 | #endif |
| @@ -111,4 +111,21 @@ struct qedr_create_qp_uresp { · 110 unmodified lines | |||
| 111 | __u32 reserved; | 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 | #endif /* __QEDR_USER_H__ */ | 131 | #endif /* __QEDR_USER_H__ */ |
| @@ -62,7 +62,12 @@ struct ib_uverbs_attr { · 61 unmodified lines | |||
| 62 | } enum_data; | 62 | } enum_data; |
| 63 | __u16 reserved; | 63 | __u16 reserved; |
| 64 | } attr_data; | 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 | struct ib_uverbs_ioctl_hdr { | 73 | struct ib_uverbs_ioctl_hdr { |
| @@ -5,6 +5,7 @@ · 4 unmodified lines | |||
| 5 | * Interface to /dev/xen/gntdev. | 5 | * Interface to /dev/xen/gntdev. |
| 6 | * | 6 | * |
| 7 | * Copyright (c) 2007, D G Murray | 7 | * Copyright (c) 2007, D G Murray |
| 8 | * Copyright (c) 2018, Oleksandr Andrushchenko, EPAM Systems Inc. | ||
| 8 | * | 9 | * |
| 9 | * This program is free software; you can redistribute it and/or | 10 | * This program is free software; you can redistribute it and/or |
| 10 | * modify it under the terms of the GNU General Public License version 2 | 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 | /* Send an interrupt on the indicated event channel */ | 201 | /* Send an interrupt on the indicated event channel */ |
| 201 | #define UNMAP_NOTIFY_SEND_EVENT 0x2 | 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 | #endif /* __LINUX_PUBLIC_GNTDEV_H__ */ | 309 | #endif /* __LINUX_PUBLIC_GNTDEV_H__ */ |