Backmerge to get some hwmon dependencies.
Showing the changes to include/uapi (71 of 13016 files). Show all
Unified · Split
| @@ -91,7 +91,6 @@ · 90 unmodified lines | ||
| 91 | 91 | |
| 92 | 92 | /* a horrid kludge trying to make sure that this will fail on old kernels */ |
| 93 | 93 | #define O_TMPFILE (__O_TMPFILE | O_DIRECTORY) |
| 94 | −#define O_TMPFILE_MASK (__O_TMPFILE | O_DIRECTORY | O_CREAT) | |
| 95 | 94 | |
| 96 | 95 | #ifndef O_NDELAY |
| 97 | 96 | #define O_NDELAY O_NONBLOCK |
| @@ -708,7 +708,8 @@ enum hl_server_type { · 707 unmodified lines | ||
| 708 | 708 | HL_SERVER_GAUDI_HLS1H = 2, |
| 709 | 709 | HL_SERVER_GAUDI_TYPE1 = 3, |
| 710 | 710 | HL_SERVER_GAUDI_TYPE2 = 4, |
| 711 | − HL_SERVER_GAUDI2_HLS2 = 5 | |
| 711 | + HL_SERVER_GAUDI2_HLS2 = 5, | |
| 712 | + HL_SERVER_GAUDI2_TYPE1 = 7 | |
| 712 | 713 | }; |
| 713 | 714 | |
| 714 | 715 | /* |
| @@ -2491,7 +2491,7 @@ struct i915_context_param_engines { · 2490 unmodified lines | ||
| 2491 | 2491 | #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0 /* see i915_context_engines_load_balance */ |
| 2492 | 2492 | #define I915_CONTEXT_ENGINES_EXT_BOND 1 /* see i915_context_engines_bond */ |
| 2493 | 2493 | #define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2 /* see i915_context_engines_parallel_submit */ |
| 2494 | − struct i915_engine_class_instance engines[0]; | |
| 2494 | + struct i915_engine_class_instance engines[]; | |
| 2495 | 2495 | } __attribute__((packed)); |
| 2496 | 2496 | |
| 2497 | 2497 | #define I915_DEFINE_CONTEXT_PARAM_ENGINES(name__, N__) struct { \ |
| @@ -2676,6 +2676,10 @@ enum drm_i915_oa_format { · 178 unmodified lines | ||
| 2676 | 2676 | I915_OAR_FORMAT_A32u40_A4u32_B8_C8, |
| 2677 | 2677 | I915_OA_FORMAT_A24u40_A14u32_B8_C8, |
| 2678 | 2678 | |
| 2679 | + /* MTL OAM */ | |
| 2680 | + I915_OAM_FORMAT_MPEC8u64_B8_C8, | |
| 2681 | + I915_OAM_FORMAT_MPEC8u32_B8_C8, | |
| 2682 | + | |
| 2679 | 2683 | I915_OA_FORMAT_MAX /* non-ABI */ |
| 2680 | 2684 | }; |
| 2681 | 2685 | |
| @@ -2758,6 +2762,25 @@ enum drm_i915_perf_property_id { · 76 unmodified lines | ||
| 2758 | 2762 | */ |
| 2759 | 2763 | DRM_I915_PERF_PROP_POLL_OA_PERIOD, |
| 2760 | 2764 | |
| 2765 | + /** | |
| 2766 | + * Multiple engines may be mapped to the same OA unit. The OA unit is | |
| 2767 | + * identified by class:instance of any engine mapped to it. | |
| 2768 | + * | |
| 2769 | + * This parameter specifies the engine class and must be passed along | |
| 2770 | + * with DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE. | |
| 2771 | + * | |
| 2772 | + * This property is available in perf revision 6. | |
| 2773 | + */ | |
| 2774 | + DRM_I915_PERF_PROP_OA_ENGINE_CLASS, | |
| 2775 | + | |
| 2776 | + /** | |
| 2777 | + * This parameter specifies the engine instance and must be passed along | |
| 2778 | + * with DRM_I915_PERF_PROP_OA_ENGINE_CLASS. | |
| 2779 | + * | |
| 2780 | + * This property is available in perf revision 6. | |
| 2781 | + */ | |
| 2782 | + DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, | |
| 2783 | + | |
| 2761 | 2784 | DRM_I915_PERF_PROP_MAX /* non-ABI */ |
| 2762 | 2785 | }; |
| 2763 | 2786 | |
| @@ -151,8 +151,13 @@ struct drm_msm_gem_info { · 150 unmodified lines | ||
| 151 | 151 | #define MSM_PREP_READ 0x01 |
| 152 | 152 | #define MSM_PREP_WRITE 0x02 |
| 153 | 153 | #define MSM_PREP_NOSYNC 0x04 |
| 154 | +#define MSM_PREP_BOOST 0x08 | |
| 154 | 155 | |
| 155 | −#define MSM_PREP_FLAGS (MSM_PREP_READ | MSM_PREP_WRITE | MSM_PREP_NOSYNC) | |
| 156 | +#define MSM_PREP_FLAGS (MSM_PREP_READ | \ | |
| 157 | + MSM_PREP_WRITE | \ | |
| 158 | + MSM_PREP_NOSYNC | \ | |
| 159 | + MSM_PREP_BOOST | \ | |
| 160 | + 0) | |
| 156 | 161 | |
| 157 | 162 | struct drm_msm_gem_cpu_prep { |
| 158 | 163 | __u32 handle; /* in */ |
| @@ -181,7 +186,11 @@ struct drm_msm_gem_cpu_fini { · 22 unmodified lines | ||
| 181 | 186 | */ |
| 182 | 187 | struct drm_msm_gem_submit_reloc { |
| 183 | 188 | __u32 submit_offset; /* in, offset from submit_bo */ |
| 189 | +#ifdef __cplusplus | |
| 190 | + __u32 _or; /* in, value OR'd with result */ | |
| 191 | +#else | |
| 184 | 192 | __u32 or; /* in, value OR'd with result */ |
| 193 | +#endif | |
| 185 | 194 | __s32 shift; /* in, amount of left shift (can be negative) */ |
| 186 | 195 | __u32 reloc_idx; /* in, index of reloc_bo buffer */ |
| 187 | 196 | __u64 reloc_offset; /* in, offset from start of reloc_bo */ |
| @@ -286,6 +295,11 @@ struct drm_msm_gem_submit { · 98 unmodified lines | ||
| 286 | 295 | |
| 287 | 296 | }; |
| 288 | 297 | |
| 298 | +#define MSM_WAIT_FENCE_BOOST 0x00000001 | |
| 299 | +#define MSM_WAIT_FENCE_FLAGS ( \ | |
| 300 | + MSM_WAIT_FENCE_BOOST | \ | |
| 301 | + 0) | |
| 302 | + | |
| 289 | 303 | /* The normal way to synchronize with the GPU is just to CPU_PREP on |
| 290 | 304 | * a buffer if you need to access it from the CPU (other cmdstream |
| 291 | 305 | * submission from same or other contexts, PAGE_FLIP ioctl, etc, all |
| @@ -295,7 +309,7 @@ struct drm_msm_gem_submit { · 3 unmodified lines | ||
| 295 | 309 | */ |
| 296 | 310 | struct drm_msm_wait_fence { |
| 297 | 311 | __u32 fence; /* in */ |
| 298 | − __u32 pad; | |
| 312 | + __u32 flags; /* in, bitmask of MSM_WAIT_FENCE_x */ | |
| 299 | 313 | struct drm_msm_timespec timeout; /* in */ |
| 300 | 314 | __u32 queueid; /* in, submitqueue id */ |
| 301 | 315 | }; |
| @@ -0,0 +1,397 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note | |
| 2 | + * | |
| 3 | + * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. | |
| 4 | + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. | |
| 5 | + */ | |
| 6 | + | |
| 7 | +#ifndef QAIC_ACCEL_H_ | |
| 8 | +#define QAIC_ACCEL_H_ | |
| 9 | + | |
| 10 | +#include "drm.h" | |
| 11 | + | |
| 12 | +#if defined(__cplusplus) | |
| 13 | +extern "C" { | |
| 14 | +#endif | |
| 15 | + | |
| 16 | +/* The length(4K) includes len and count fields of qaic_manage_msg */ | |
| 17 | +#define QAIC_MANAGE_MAX_MSG_LENGTH SZ_4K | |
| 18 | + | |
| 19 | +/* semaphore flags */ | |
| 20 | +#define QAIC_SEM_INSYNCFENCE 2 | |
| 21 | +#define QAIC_SEM_OUTSYNCFENCE 1 | |
| 22 | + | |
| 23 | +/* Semaphore commands */ | |
| 24 | +#define QAIC_SEM_NOP 0 | |
| 25 | +#define QAIC_SEM_INIT 1 | |
| 26 | +#define QAIC_SEM_INC 2 | |
| 27 | +#define QAIC_SEM_DEC 3 | |
| 28 | +#define QAIC_SEM_WAIT_EQUAL 4 | |
| 29 | +#define QAIC_SEM_WAIT_GT_EQ 5 /* Greater than or equal */ | |
| 30 | +#define QAIC_SEM_WAIT_GT_0 6 /* Greater than 0 */ | |
| 31 | + | |
| 32 | +#define QAIC_TRANS_UNDEFINED 0 | |
| 33 | +#define QAIC_TRANS_PASSTHROUGH_FROM_USR 1 | |
| 34 | +#define QAIC_TRANS_PASSTHROUGH_TO_USR 2 | |
| 35 | +#define QAIC_TRANS_PASSTHROUGH_FROM_DEV 3 | |
| 36 | +#define QAIC_TRANS_PASSTHROUGH_TO_DEV 4 | |
| 37 | +#define QAIC_TRANS_DMA_XFER_FROM_USR 5 | |
| 38 | +#define QAIC_TRANS_DMA_XFER_TO_DEV 6 | |
| 39 | +#define QAIC_TRANS_ACTIVATE_FROM_USR 7 | |
| 40 | +#define QAIC_TRANS_ACTIVATE_FROM_DEV 8 | |
| 41 | +#define QAIC_TRANS_ACTIVATE_TO_DEV 9 | |
| 42 | +#define QAIC_TRANS_DEACTIVATE_FROM_USR 10 | |
| 43 | +#define QAIC_TRANS_DEACTIVATE_FROM_DEV 11 | |
| 44 | +#define QAIC_TRANS_STATUS_FROM_USR 12 | |
| 45 | +#define QAIC_TRANS_STATUS_TO_USR 13 | |
| 46 | +#define QAIC_TRANS_STATUS_FROM_DEV 14 | |
| 47 | +#define QAIC_TRANS_STATUS_TO_DEV 15 | |
| 48 | +#define QAIC_TRANS_TERMINATE_FROM_DEV 16 | |
| 49 | +#define QAIC_TRANS_TERMINATE_TO_DEV 17 | |
| 50 | +#define QAIC_TRANS_DMA_XFER_CONT 18 | |
| 51 | +#define QAIC_TRANS_VALIDATE_PARTITION_FROM_DEV 19 | |
| 52 | +#define QAIC_TRANS_VALIDATE_PARTITION_TO_DEV 20 | |
| 53 | + | |
| 54 | +/** | |
| 55 | + * struct qaic_manage_trans_hdr - Header for a transaction in a manage message. | |
| 56 | + * @type: In. Identifies this transaction. See QAIC_TRANS_* defines. | |
| 57 | + * @len: In. Length of this transaction, including this header. | |
| 58 | + */ | |
| 59 | +struct qaic_manage_trans_hdr { | |
| 60 | + __u32 type; | |
| 61 | + __u32 len; | |
| 62 | +}; | |
| 63 | + | |
| 64 | +/** | |
| 65 | + * struct qaic_manage_trans_passthrough - Defines a passthrough transaction. | |
| 66 | + * @hdr: In. Header to identify this transaction. | |
| 67 | + * @data: In. Payload of this ransaction. Opaque to the driver. Userspace must | |
| 68 | + * encode in little endian and align/pad to 64-bit. | |
| 69 | + */ | |
| 70 | +struct qaic_manage_trans_passthrough { | |
| 71 | + struct qaic_manage_trans_hdr hdr; | |
| 72 | + __u8 data[]; | |
| 73 | +}; | |
| 74 | + | |
| 75 | +/** | |
| 76 | + * struct qaic_manage_trans_dma_xfer - Defines a DMA transfer transaction. | |
| 77 | + * @hdr: In. Header to identify this transaction. | |
| 78 | + * @tag: In. Identified this transfer in other transactions. Opaque to the | |
| 79 | + * driver. | |
| 80 | + * @pad: Structure padding. | |
| 81 | + * @addr: In. Address of the data to DMA to the device. | |
| 82 | + * @size: In. Length of the data to DMA to the device. | |
| 83 | + */ | |
| 84 | +struct qaic_manage_trans_dma_xfer { | |
| 85 | + struct qaic_manage_trans_hdr hdr; | |
| 86 | + __u32 tag; | |
| 87 | + __u32 pad; | |
| 88 | + __u64 addr; | |
| 89 | + __u64 size; | |
| 90 | +}; | |
| 91 | + | |
| 92 | +/** | |
| 93 | + * struct qaic_manage_trans_activate_to_dev - Defines an activate request. | |
| 94 | + * @hdr: In. Header to identify this transaction. | |
| 95 | + * @queue_size: In. Number of elements for DBC request and response queues. | |
| 96 | + * @eventfd: Unused. | |
| 97 | + * @options: In. Device specific options for this activate. | |
| 98 | + * @pad: Structure padding. Must be 0. | |
| 99 | + */ | |
| 100 | +struct qaic_manage_trans_activate_to_dev { | |
| 101 | + struct qaic_manage_trans_hdr hdr; | |
| 102 | + __u32 queue_size; | |
| 103 | + __u32 eventfd; | |
| 104 | + __u32 options; | |
| 105 | + __u32 pad; | |
| 106 | +}; | |
| 107 | + | |
| 108 | +/** | |
| 109 | + * struct qaic_manage_trans_activate_from_dev - Defines an activate response. | |
| 110 | + * @hdr: Out. Header to identify this transaction. | |
| 111 | + * @status: Out. Return code of the request from the device. | |
| 112 | + * @dbc_id: Out. Id of the assigned DBC for successful request. | |
| 113 | + * @options: Out. Device specific options for this activate. | |
| 114 | + */ | |
| 115 | +struct qaic_manage_trans_activate_from_dev { | |
| 116 | + struct qaic_manage_trans_hdr hdr; | |
| 117 | + __u32 status; | |
| 118 | + __u32 dbc_id; | |
| 119 | + __u64 options; | |
| 120 | +}; | |
| 121 | + | |
| 122 | +/** | |
| 123 | + * struct qaic_manage_trans_deactivate - Defines a deactivate request. | |
| 124 | + * @hdr: In. Header to identify this transaction. | |
| 125 | + * @dbc_id: In. Id of assigned DBC. | |
| 126 | + * @pad: Structure padding. Must be 0. | |
| 127 | + */ | |
| 128 | +struct qaic_manage_trans_deactivate { | |
| 129 | + struct qaic_manage_trans_hdr hdr; | |
| 130 | + __u32 dbc_id; | |
| 131 | + __u32 pad; | |
| 132 | +}; | |
| 133 | + | |
| 134 | +/** | |
| 135 | + * struct qaic_manage_trans_status_to_dev - Defines a status request. | |
| 136 | + * @hdr: In. Header to identify this transaction. | |
| 137 | + */ | |
| 138 | +struct qaic_manage_trans_status_to_dev { | |
| 139 | + struct qaic_manage_trans_hdr hdr; | |
| 140 | +}; | |
| 141 | + | |
| 142 | +/** | |
| 143 | + * struct qaic_manage_trans_status_from_dev - Defines a status response. | |
| 144 | + * @hdr: Out. Header to identify this transaction. | |
| 145 | + * @major: Out. NNC protocol version major number. | |
| 146 | + * @minor: Out. NNC protocol version minor number. | |
| 147 | + * @status: Out. Return code from device. | |
| 148 | + * @status_flags: Out. Flags from device. Bit 0 indicates if CRCs are required. | |
| 149 | + */ | |
| 150 | +struct qaic_manage_trans_status_from_dev { | |
| 151 | + struct qaic_manage_trans_hdr hdr; | |
| 152 | + __u16 major; | |
| 153 | + __u16 minor; | |
| 154 | + __u32 status; | |
| 155 | + __u64 status_flags; | |
| 156 | +}; | |
| 157 | + | |
| 158 | +/** | |
| 159 | + * struct qaic_manage_msg - Defines a message to the device. | |
| 160 | + * @len: In. Length of all the transactions contained within this message. | |
| 161 | + * @count: In. Number of transactions in this message. | |
| 162 | + * @data: In. Address to an array where the transactions can be found. | |
| 163 | + */ | |
| 164 | +struct qaic_manage_msg { | |
| 165 | + __u32 len; | |
| 166 | + __u32 count; | |
| 167 | + __u64 data; | |
| 168 | +}; | |
| 169 | + | |
| 170 | +/** | |
| 171 | + * struct qaic_create_bo - Defines a request to create a buffer object. | |
| 172 | + * @size: In. Size of the buffer in bytes. | |
| 173 | + * @handle: Out. GEM handle for the BO. | |
| 174 | + * @pad: Structure padding. Must be 0. | |
| 175 | + */ | |
| 176 | +struct qaic_create_bo { | |
| 177 | + __u64 size; | |
| 178 | + __u32 handle; | |
| 179 | + __u32 pad; | |
| 180 | +}; | |
| 181 | + | |
| 182 | +/** | |
| 183 | + * struct qaic_mmap_bo - Defines a request to prepare a BO for mmap(). | |
| 184 | + * @handle: In. Handle of the GEM BO to prepare for mmap(). | |
| 185 | + * @pad: Structure padding. Must be 0. | |
| 186 | + * @offset: Out. Offset value to provide to mmap(). | |
| 187 | + */ | |
| 188 | +struct qaic_mmap_bo { | |
| 189 | + __u32 handle; | |
| 190 | + __u32 pad; | |
| 191 | + __u64 offset; | |
| 192 | +}; | |
| 193 | + | |
| 194 | +/** | |
| 195 | + * struct qaic_sem - Defines a semaphore command for a BO slice. | |
| 196 | + * @val: In. Only lower 12 bits are valid. | |
| 197 | + * @index: In. Only lower 5 bits are valid. | |
| 198 | + * @presync: In. 1 if presync operation, 0 if postsync. | |
| 199 | + * @cmd: In. One of QAIC_SEM_*. | |
| 200 | + * @flags: In. Bitfield. See QAIC_SEM_INSYNCFENCE and QAIC_SEM_OUTSYNCFENCE | |
| 201 | + * @pad: Structure padding. Must be 0. | |
| 202 | + */ | |
| 203 | +struct qaic_sem { | |
| 204 | + __u16 val; | |
| 205 | + __u8 index; | |
| 206 | + __u8 presync; | |
| 207 | + __u8 cmd; | |
| 208 | + __u8 flags; | |
| 209 | + __u16 pad; | |
| 210 | +}; | |
| 211 | + | |
| 212 | +/** | |
| 213 | + * struct qaic_attach_slice_entry - Defines a single BO slice. | |
| 214 | + * @size: In. Size of this slice in bytes. | |
| 215 | + * @sem0: In. Semaphore command 0. Must be 0 is not valid. | |
| 216 | + * @sem1: In. Semaphore command 1. Must be 0 is not valid. | |
| 217 | + * @sem2: In. Semaphore command 2. Must be 0 is not valid. | |
| 218 | + * @sem3: In. Semaphore command 3. Must be 0 is not valid. | |
| 219 | + * @dev_addr: In. Device address this slice pushes to or pulls from. | |
| 220 | + * @db_addr: In. Address of the doorbell to ring. | |
| 221 | + * @db_data: In. Data to write to the doorbell. | |
| 222 | + * @db_len: In. Size of the doorbell data in bits - 32, 16, or 8. 0 is for | |
| 223 | + * inactive doorbells. | |
| 224 | + * @offset: In. Start of this slice as an offset from the start of the BO. | |
| 225 | + */ | |
| 226 | +struct qaic_attach_slice_entry { | |
| 227 | + __u64 size; | |
| 228 | + struct qaic_sem sem0; | |
| 229 | + struct qaic_sem sem1; | |
| 230 | + struct qaic_sem sem2; | |
| 231 | + struct qaic_sem sem3; | |
| 232 | + __u64 dev_addr; | |
| 233 | + __u64 db_addr; | |
| 234 | + __u32 db_data; | |
| 235 | + __u32 db_len; | |
| 236 | + __u64 offset; | |
| 237 | +}; | |
| 238 | + | |
| 239 | +/** | |
| 240 | + * struct qaic_attach_slice_hdr - Defines metadata for a set of BO slices. | |
| 241 | + * @count: In. Number of slices for this BO. | |
| 242 | + * @dbc_id: In. Associate the sliced BO with this DBC. | |
| 243 | + * @handle: In. GEM handle of the BO to slice. | |
| 244 | + * @dir: In. Direction of data flow. 1 = DMA_TO_DEVICE, 2 = DMA_FROM_DEVICE | |
| 245 | + * @size: In. Total length of the BO. | |
| 246 | + * If BO is imported (DMABUF/PRIME) then this size | |
| 247 | + * should not exceed the size of DMABUF provided. | |
| 248 | + * If BO is allocated using DRM_IOCTL_QAIC_CREATE_BO | |
| 249 | + * then this size should be exactly same as the size | |
| 250 | + * provided during DRM_IOCTL_QAIC_CREATE_BO. | |
| 251 | + * @dev_addr: In. Device address this slice pushes to or pulls from. | |
| 252 | + * @db_addr: In. Address of the doorbell to ring. | |
| 253 | + * @db_data: In. Data to write to the doorbell. | |
| 254 | + * @db_len: In. Size of the doorbell data in bits - 32, 16, or 8. 0 is for | |
| 255 | + * inactive doorbells. | |
| 256 | + * @offset: In. Start of this slice as an offset from the start of the BO. | |
| 257 | + */ | |
| 258 | +struct qaic_attach_slice_hdr { | |
| 259 | + __u32 count; | |
| 260 | + __u32 dbc_id; | |
| 261 | + __u32 handle; | |
| 262 | + __u32 dir; | |
| 263 | + __u64 size; | |
| 264 | +}; | |
| 265 | + | |
| 266 | +/** | |
| 267 | + * struct qaic_attach_slice - Defines a set of BO slices. | |
| 268 | + * @hdr: In. Metadata of the set of slices. | |
| 269 | + * @data: In. Pointer to an array containing the slice definitions. | |
| 270 | + */ | |
| 271 | +struct qaic_attach_slice { | |
| 272 | + struct qaic_attach_slice_hdr hdr; | |
| 273 | + __u64 data; | |
| 274 | +}; | |
| 275 | + | |
| 276 | +/** | |
| 277 | + * struct qaic_execute_entry - Defines a BO to submit to the device. | |
| 278 | + * @handle: In. GEM handle of the BO to commit to the device. | |
| 279 | + * @dir: In. Direction of data. 1 = to device, 2 = from device. | |
| 280 | + */ | |
| 281 | +struct qaic_execute_entry { | |
| 282 | + __u32 handle; | |
| 283 | + __u32 dir; | |
| 284 | +}; | |
| 285 | + | |
| 286 | +/** | |
| 287 | + * struct qaic_partial_execute_entry - Defines a BO to resize and submit. | |
| 288 | + * @handle: In. GEM handle of the BO to commit to the device. | |
| 289 | + * @dir: In. Direction of data. 1 = to device, 2 = from device. | |
| 290 | + * @resize: In. New size of the BO. Must be <= the original BO size. 0 is | |
| 291 | + * short for no resize. | |
| 292 | + */ | |
| 293 | +struct qaic_partial_execute_entry { | |
| 294 | + __u32 handle; | |
| 295 | + __u32 dir; | |
| 296 | + __u64 resize; | |
| 297 | +}; | |
| 298 | + | |
| 299 | +/** | |
| 300 | + * struct qaic_execute_hdr - Defines metadata for BO submission. | |
| 301 | + * @count: In. Number of BOs to submit. | |
| 302 | + * @dbc_id: In. DBC to submit the BOs on. | |
| 303 | + */ | |
| 304 | +struct qaic_execute_hdr { | |
| 305 | + __u32 count; | |
| 306 | + __u32 dbc_id; | |
| 307 | +}; | |
| 308 | + | |
| 309 | +/** | |
| 310 | + * struct qaic_execute - Defines a list of BOs to submit to the device. | |
| 311 | + * @hdr: In. BO list metadata. | |
| 312 | + * @data: In. Pointer to an array of BOs to submit. | |
| 313 | + */ | |
| 314 | +struct qaic_execute { | |
| 315 | + struct qaic_execute_hdr hdr; | |
| 316 | + __u64 data; | |
| 317 | +}; | |
| 318 | + | |
| 319 | +/** | |
| 320 | + * struct qaic_wait - Defines a blocking wait for BO execution. | |
| 321 | + * @handle: In. GEM handle of the BO to wait on. | |
| 322 | + * @timeout: In. Maximum time in ms to wait for the BO. | |
| 323 | + * @dbc_id: In. DBC the BO is submitted to. | |
| 324 | + * @pad: Structure padding. Must be 0. | |
| 325 | + */ | |
| 326 | +struct qaic_wait { | |
| 327 | + __u32 handle; | |
| 328 | + __u32 timeout; | |
| 329 | + __u32 dbc_id; | |
| 330 | + __u32 pad; | |
| 331 | +}; | |
| 332 | + | |
| 333 | +/** | |
| 334 | + * struct qaic_perf_stats_hdr - Defines metadata for getting BO perf info. | |
| 335 | + * @count: In. Number of BOs requested. | |
| 336 | + * @pad: Structure padding. Must be 0. | |
| 337 | + * @dbc_id: In. DBC the BO are associated with. | |
| 338 | + */ | |
| 339 | +struct qaic_perf_stats_hdr { | |
| 340 | + __u16 count; | |
| 341 | + __u16 pad; | |
| 342 | + __u32 dbc_id; | |
| 343 | +}; | |
| 344 | + | |
| 345 | +/** | |
| 346 | + * struct qaic_perf_stats - Defines a request for getting BO perf info. | |
| 347 | + * @hdr: In. Request metadata | |
| 348 | + * @data: In. Pointer to array of stats structures that will receive the data. | |
| 349 | + */ | |
| 350 | +struct qaic_perf_stats { | |
| 351 | + struct qaic_perf_stats_hdr hdr; | |
| 352 | + __u64 data; | |
| 353 | +}; | |
| 354 | + | |
| 355 | +/** | |
| 356 | + * struct qaic_perf_stats_entry - Defines a BO perf info. | |
| 357 | + * @handle: In. GEM handle of the BO to get perf stats for. | |
| 358 | + * @queue_level_before: Out. Number of elements in the queue before this BO | |
| 359 | + * was submitted. | |
| 360 | + * @num_queue_element: Out. Number of elements added to the queue to submit | |
| 361 | + * this BO. | |
| 362 | + * @submit_latency_us: Out. Time taken by the driver to submit this BO. | |
| 363 | + * @device_latency_us: Out. Time taken by the device to execute this BO. | |
| 364 | + * @pad: Structure padding. Must be 0. | |
| 365 | + */ | |
| 366 | +struct qaic_perf_stats_entry { | |
| 367 | + __u32 handle; | |
| 368 | + __u32 queue_level_before; | |
| 369 | + __u32 num_queue_element; | |
| 370 | + __u32 submit_latency_us; | |
| 371 | + __u32 device_latency_us; | |
| 372 | + __u32 pad; | |
| 373 | +}; | |
| 374 | + | |
| 375 | +#define DRM_QAIC_MANAGE 0x00 | |
| 376 | +#define DRM_QAIC_CREATE_BO 0x01 | |
| 377 | +#define DRM_QAIC_MMAP_BO 0x02 | |
| 378 | +#define DRM_QAIC_ATTACH_SLICE_BO 0x03 | |
| 379 | +#define DRM_QAIC_EXECUTE_BO 0x04 | |
| 380 | +#define DRM_QAIC_PARTIAL_EXECUTE_BO 0x05 | |
| 381 | +#define DRM_QAIC_WAIT_BO 0x06 | |
| 382 | +#define DRM_QAIC_PERF_STATS_BO 0x07 | |
| 383 | + | |
| 384 | +#define DRM_IOCTL_QAIC_MANAGE DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_MANAGE, struct qaic_manage_msg) | |
| 385 | +#define DRM_IOCTL_QAIC_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_CREATE_BO, struct qaic_create_bo) | |
| 386 | +#define DRM_IOCTL_QAIC_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_MMAP_BO, struct qaic_mmap_bo) | |
| 387 | +#define DRM_IOCTL_QAIC_ATTACH_SLICE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_ATTACH_SLICE_BO, struct qaic_attach_slice) | |
| 388 | +#define DRM_IOCTL_QAIC_EXECUTE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_EXECUTE_BO, struct qaic_execute) | |
| 389 | +#define DRM_IOCTL_QAIC_PARTIAL_EXECUTE_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_PARTIAL_EXECUTE_BO, struct qaic_execute) | |
| 390 | +#define DRM_IOCTL_QAIC_WAIT_BO DRM_IOW(DRM_COMMAND_BASE + DRM_QAIC_WAIT_BO, struct qaic_wait) | |
| 391 | +#define DRM_IOCTL_QAIC_PERF_STATS_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_QAIC_PERF_STATS_BO, struct qaic_perf_stats) | |
| 392 | + | |
| 393 | +#if defined(__cplusplus) | |
| 394 | +} | |
| 395 | +#endif | |
| 396 | + | |
| 397 | +#endif /* QAIC_ACCEL_H_ */ | |
| @@ -101,10 +101,6 @@ struct atm_dev_stats { · 100 unmodified lines | ||
| 101 | 101 | /* use backend to make new if */ |
| 102 | 102 | #define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf) |
| 103 | 103 | /* add party to p2mp call */ |
| 104 | −#ifdef CONFIG_COMPAT | |
| 105 | −/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */ | |
| 106 | −#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf) | |
| 107 | −#endif | |
| 108 | 104 | #define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int) |
| 109 | 105 | /* drop party from p2mp call */ |
| 110 | 106 | |
| @@ -986,6 +986,7 @@ enum bpf_prog_type { · 985 unmodified lines | ||
| 986 | 986 | BPF_PROG_TYPE_LSM, |
| 987 | 987 | BPF_PROG_TYPE_SK_LOOKUP, |
| 988 | 988 | BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */ |
| 989 | + BPF_PROG_TYPE_NETFILTER, | |
| 989 | 990 | }; |
| 990 | 991 | |
| 991 | 992 | enum bpf_attach_type { |
| @@ -1033,6 +1034,7 @@ enum bpf_attach_type { · 41 unmodified lines | ||
| 1033 | 1034 | BPF_PERF_EVENT, |
| 1034 | 1035 | BPF_TRACE_KPROBE_MULTI, |
| 1035 | 1036 | BPF_LSM_CGROUP, |
| 1037 | + BPF_STRUCT_OPS, | |
| 1036 | 1038 | __MAX_BPF_ATTACH_TYPE |
| 1037 | 1039 | }; |
| 1038 | 1040 | |
| @@ -1049,6 +1051,7 @@ enum bpf_link_type { · 10 unmodified lines | ||
| 1049 | 1051 | BPF_LINK_TYPE_PERF_EVENT = 7, |
| 1050 | 1052 | BPF_LINK_TYPE_KPROBE_MULTI = 8, |
| 1051 | 1053 | BPF_LINK_TYPE_STRUCT_OPS = 9, |
| 1054 | + BPF_LINK_TYPE_NETFILTER = 10, | |
| 1052 | 1055 | |
| 1053 | 1056 | MAX_BPF_LINK_TYPE, |
| 1054 | 1057 | }; |
| @@ -1108,7 +1111,7 @@ enum bpf_link_type { · 53 unmodified lines | ||
| 1108 | 1111 | */ |
| 1109 | 1112 | #define BPF_F_STRICT_ALIGNMENT (1U << 0) |
| 1110 | 1113 | |
| 1111 | −/* If BPF_F_ANY_ALIGNMENT is used in BPF_PROF_LOAD command, the | |
| 1114 | +/* If BPF_F_ANY_ALIGNMENT is used in BPF_PROG_LOAD command, the | |
| 1112 | 1115 | * verifier will allow any alignment whatsoever. On platforms |
| 1113 | 1116 | * with strict alignment requirements for loads ands stores (such |
| 1114 | 1117 | * as sparc and mips) the verifier validates that all loads and |
| @@ -1266,6 +1269,9 @@ enum { · 151 unmodified lines | ||
| 1266 | 1269 | |
| 1267 | 1270 | /* Create a map that is suitable to be an inner map with dynamic max entries */ |
| 1268 | 1271 | BPF_F_INNER_MAP = (1U << 12), |
| 1272 | + | |
| 1273 | +/* Create a map that will be registered/unregesitered by the backed bpf_link */ | |
| 1274 | + BPF_F_LINK = (1U << 13), | |
| 1269 | 1275 | }; |
| 1270 | 1276 | |
| 1271 | 1277 | /* Flags for BPF_PROG_QUERY. */ |
| @@ -1403,6 +1409,11 @@ union bpf_attr { · 131 unmodified lines | ||
| 1403 | 1409 | __aligned_u64 fd_array; /* array of FDs */ |
| 1404 | 1410 | __aligned_u64 core_relos; |
| 1405 | 1411 | __u32 core_relo_rec_size; /* sizeof(struct bpf_core_relo) */ |
| 1412 | + /* output: actual total log contents size (including termintaing zero). | |
| 1413 | + * It could be both larger than original log_size (if log was | |
| 1414 | + * truncated), or smaller (if log buffer wasn't filled completely). | |
| 1415 | + */ | |
| 1416 | + __u32 log_true_size; | |
| 1406 | 1417 | }; |
| 1407 | 1418 | |
| 1408 | 1419 | struct { /* anonymous struct used by BPF_OBJ_* commands */ |
| @@ -1488,6 +1499,11 @@ union bpf_attr { · 79 unmodified lines | ||
| 1488 | 1499 | __u32 btf_size; |
| 1489 | 1500 | __u32 btf_log_size; |
| 1490 | 1501 | __u32 btf_log_level; |
| 1502 | + /* output: actual total log contents size (including termintaing zero). | |
| 1503 | + * It could be both larger than original log_size (if log was | |
| 1504 | + * truncated), or smaller (if log buffer wasn't filled completely). | |
| 1505 | + */ | |
| 1506 | + __u32 btf_log_true_size; | |
| 1491 | 1507 | }; |
| 1492 | 1508 | |
| 1493 | 1509 | struct { |
| @@ -1507,7 +1523,10 @@ union bpf_attr { · 13 unmodified lines | ||
| 1507 | 1523 | } task_fd_query; |
| 1508 | 1524 | |
| 1509 | 1525 | struct { /* struct used by BPF_LINK_CREATE command */ |
| 1510 | − __u32 prog_fd; /* eBPF program to attach */ | |
| 1526 | + union { | |
| 1527 | + __u32 prog_fd; /* eBPF program to attach */ | |
| 1528 | + __u32 map_fd; /* struct_ops to attach */ | |
| 1529 | + }; | |
| 1511 | 1530 | union { |
| 1512 | 1531 | __u32 target_fd; /* object to attach to */ |
| 1513 | 1532 | __u32 target_ifindex; /* target ifindex */ |
| @@ -1543,17 +1562,34 @@ union bpf_attr { · 29 unmodified lines | ||
| 1543 | 1562 | */ |
| 1544 | 1563 | __u64 cookie; |
| 1545 | 1564 | } tracing; |
| 1565 | + struct { | |
| 1566 | + __u32 pf; | |
| 1567 | + __u32 hooknum; | |
| 1568 | + __s32 priority; | |
| 1569 | + __u32 flags; | |
| 1570 | + } netfilter; | |
| 1546 | 1571 | }; |
| 1547 | 1572 | } link_create; |
| 1548 | 1573 | |
| 1549 | 1574 | struct { /* struct used by BPF_LINK_UPDATE command */ |
| 1550 | 1575 | __u32 link_fd; /* link fd */ |
| 1551 | − /* new program fd to update link with */ | |
| 1552 | − __u32 new_prog_fd; | |
| 1576 | + union { | |
| 1577 | + /* new program fd to update link with */ | |
| 1578 | + __u32 new_prog_fd; | |
| 1579 | + /* new struct_ops map fd to update link with */ | |
| 1580 | + __u32 new_map_fd; | |
| 1581 | + }; | |
| 1553 | 1582 | __u32 flags; /* extra flags */ |
| 1554 | − /* expected link's program fd; is specified only if | |
| 1555 | − * BPF_F_REPLACE flag is set in flags */ | |
| 1556 | − __u32 old_prog_fd; | |
| 1583 | + union { | |
| 1584 | + /* expected link's program fd; is specified only if | |
| 1585 | + * BPF_F_REPLACE flag is set in flags. | |
| 1586 | + */ | |
| 1587 | + __u32 old_prog_fd; | |
| 1588 | + /* expected link's map fd; is specified only | |
| 1589 | + * if BPF_F_REPLACE flag is set. | |
| 1590 | + */ | |
| 1591 | + __u32 old_map_fd; | |
| 1592 | + }; | |
| 1557 | 1593 | } link_update; |
| 1558 | 1594 | |
| 1559 | 1595 | struct { |
| @@ -1647,17 +1683,17 @@ union bpf_attr { · 87 unmodified lines | ||
| 1647 | 1683 | * Description |
| 1648 | 1684 | * This helper is a "printk()-like" facility for debugging. It |
| 1649 | 1685 | * prints a message defined by format *fmt* (of size *fmt_size*) |
| 1650 | − * to file *\/sys/kernel/debug/tracing/trace* from DebugFS, if | |
| 1686 | + * to file *\/sys/kernel/tracing/trace* from TraceFS, if | |
| 1651 | 1687 | * available. It can take up to three additional **u64** |
| 1652 | 1688 | * arguments (as an eBPF helpers, the total number of arguments is |
| 1653 | 1689 | * limited to five). |
| 1654 | 1690 | * |
| 1655 | 1691 | * Each time the helper is called, it appends a line to the trace. |
| 1656 | − * Lines are discarded while *\/sys/kernel/debug/tracing/trace* is | |
| 1657 | − * open, use *\/sys/kernel/debug/tracing/trace_pipe* to avoid this. | |
| 1692 | + * Lines are discarded while *\/sys/kernel/tracing/trace* is | |
| 1693 | + * open, use *\/sys/kernel/tracing/trace_pipe* to avoid this. | |
| 1658 | 1694 | * The format of the trace is customizable, and the exact output |
| 1659 | 1695 | * one will get depends on the options set in |
| 1660 | − * *\/sys/kernel/debug/tracing/trace_options* (see also the | |
| 1696 | + * *\/sys/kernel/tracing/trace_options* (see also the | |
| 1661 | 1697 | * *README* file under the same directory). However, it usually |
| 1662 | 1698 | * defaults to something like: |
| 1663 | 1699 | * |
| @@ -4969,6 +5005,12 @@ union bpf_attr { · 3305 unmodified lines | ||
| 4969 | 5005 | * different maps if key/value layout matches across maps. |
| 4970 | 5006 | * Every bpf_timer_set_callback() can have different callback_fn. |
| 4971 | 5007 | * |
| 5008 | + * *flags* can be one of: | |
| 5009 | + * | |
| 5010 | + * **BPF_F_TIMER_ABS** | |
| 5011 | + * Start the timer in absolute expire value instead of the | |
| 5012 | + * default relative one. | |
| 5013 | + * | |
| 4972 | 5014 | * Return |
| 4973 | 5015 | * 0 on success. |
| 4974 | 5016 | * **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier |
| @@ -5325,11 +5367,22 @@ union bpf_attr { · 350 unmodified lines | ||
| 5325 | 5367 | * Description |
| 5326 | 5368 | * Write *len* bytes from *src* into *dst*, starting from *offset* |
| 5327 | 5369 | * into *dst*. |
| 5328 | − * *flags* is currently unused. | |
| 5370 | + * | |
| 5371 | + * *flags* must be 0 except for skb-type dynptrs. | |
| 5372 | + * | |
| 5373 | + * For skb-type dynptrs: | |
| 5374 | + * * All data slices of the dynptr are automatically | |
| 5375 | + * invalidated after **bpf_dynptr_write**\ (). This is | |
| 5376 | + * because writing may pull the skb and change the | |
| 5377 | + * underlying packet buffer. | |
| 5378 | + * | |
| 5379 | + * * For *flags*, please see the flags accepted by | |
| 5380 | + * **bpf_skb_store_bytes**\ (). | |
| 5329 | 5381 | * Return |
| 5330 | 5382 | * 0 on success, -E2BIG if *offset* + *len* exceeds the length |
| 5331 | 5383 | * of *dst*'s data, -EINVAL if *dst* is an invalid dynptr or if *dst* |
| 5332 | − * is a read-only dynptr or if *flags* is not 0. | |
| 5384 | + * is a read-only dynptr or if *flags* is not correct. For skb-type dynptrs, | |
| 5385 | + * other errors correspond to errors returned by **bpf_skb_store_bytes**\ (). | |
| 5333 | 5386 | * |
| 5334 | 5387 | * void *bpf_dynptr_data(const struct bpf_dynptr *ptr, u32 offset, u32 len) |
| 5335 | 5388 | * Description |
| @@ -5337,6 +5390,9 @@ union bpf_attr { · 1 unmodified line | ||
| 5337 | 5390 | * |
| 5338 | 5391 | * *len* must be a statically known value. The returned data slice |
| 5339 | 5392 | * is invalidated whenever the dynptr is invalidated. |
| 5393 | + * | |
| 5394 | + * skb and xdp type dynptrs may not use bpf_dynptr_data. They should | |
| 5395 | + * instead use bpf_dynptr_slice and bpf_dynptr_slice_rdwr. | |
| 5340 | 5396 | * Return |
| 5341 | 5397 | * Pointer to the underlying dynptr data, NULL if the dynptr is |
| 5342 | 5398 | * read-only, if the dynptr is invalid, or if the offset and length |
| @@ -6359,6 +6415,15 @@ struct bpf_link_info { · 1016 unmodified lines | ||
| 6359 | 6415 | struct { |
| 6360 | 6416 | __u32 ifindex; |
| 6361 | 6417 | } xdp; |
| 6418 | + struct { | |
| 6419 | + __u32 map_id; | |
| 6420 | + } struct_ops; | |
| 6421 | + struct { | |
| 6422 | + __u32 pf; | |
| 6423 | + __u32 hooknum; | |
| 6424 | + __s32 priority; | |
| 6425 | + __u32 flags; | |
| 6426 | + } netfilter; | |
| 6362 | 6427 | }; |
| 6363 | 6428 | } __attribute__((aligned(8))); |
| 6364 | 6429 | |
| @@ -6934,6 +6999,10 @@ struct bpf_rb_node { · 569 unmodified lines | ||
| 6934 | 6999 | __u64 :64; |
| 6935 | 7000 | } __attribute__((aligned(8))); |
| 6936 | 7001 | |
| 7002 | +struct bpf_refcount { | |
| 7003 | + __u32 :32; | |
| 7004 | +} __attribute__((aligned(4))); | |
| 7005 | + | |
| 6937 | 7006 | struct bpf_sysctl { |
| 6938 | 7007 | __u32 write; /* Sysctl is being read (= 0) or written (= 1). |
| 6939 | 7008 | * Allows 1,2,4-byte read, but no write. |
| @@ -7083,4 +7152,21 @@ struct bpf_core_relo { · 143 unmodified lines | ||
| 7083 | 7152 | enum bpf_core_relo_kind kind; |
| 7084 | 7153 | }; |
| 7085 | 7154 | |
| 7155 | +/* | |
| 7156 | + * Flags to control bpf_timer_start() behaviour. | |
| 7157 | + * - BPF_F_TIMER_ABS: Timeout passed is absolute time, by default it is | |
| 7158 | + * relative to current time. | |
| 7159 | + */ | |
| 7160 | +enum { | |
| 7161 | + BPF_F_TIMER_ABS = (1ULL << 0), | |
| 7162 | +}; | |
| 7163 | + | |
| 7164 | +/* BPF numbers iterator state */ | |
| 7165 | +struct bpf_iter_num { | |
| 7166 | + /* opaque iterator state; having __u64 here allows to preserve correct | |
| 7167 | + * alignment requirements in vmlinux.h, generated from BTF | |
| 7168 | + */ | |
| 7169 | + __u64 __opaque[1]; | |
| 7170 | +} __attribute__((aligned(8))); | |
| 7171 | + | |
| 7086 | 7172 | #endif /* _UAPI__LINUX_BPF_H__ */ |
| @@ -187,6 +187,7 @@ struct btrfs_scrub_progress { · 186 unmodified lines | ||
| 187 | 187 | }; |
| 188 | 188 | |
| 189 | 189 | #define BTRFS_SCRUB_READONLY 1 |
| 190 | +#define BTRFS_SCRUB_SUPPORTED_FLAGS (BTRFS_SCRUB_READONLY) | |
| 190 | 191 | struct btrfs_ioctl_scrub_args { |
| 191 | 192 | __u64 devid; /* in */ |
| 192 | 193 | __u64 start; /* in */ |
| @@ -1,64 +0,0 @@ | ||
| 1 | −/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | −#ifndef _UAPI_CM4000_H_ | |
| 3 | −#define _UAPI_CM4000_H_ | |
| 4 | − | |
| 5 | −#include <linux/types.h> | |
| 6 | −#include <linux/ioctl.h> | |
| 7 | − | |
| 8 | −#define MAX_ATR 33 | |
| 9 | − | |
| 10 | −#define CM4000_MAX_DEV 4 | |
| 11 | − | |
| 12 | −/* those two structures are passed via ioctl() from/to userspace. They are | |
| 13 | − * used by existing userspace programs, so I kepth the awkward "bIFSD" naming | |
| 14 | − * not to break compilation of userspace apps. -HW */ | |
| 15 | − | |
| 16 | −typedef struct atreq { | |
| 17 | − __s32 atr_len; | |
| 18 | − unsigned char atr[64]; | |
| 19 | − __s32 power_act; | |
| 20 | − unsigned char bIFSD; | |
| 21 | − unsigned char bIFSC; | |
| 22 | −} atreq_t; | |
| 23 | − | |
| 24 | − | |
| 25 | −/* what is particularly stupid in the original driver is the arch-dependent | |
| 26 | − * member sizes. This leads to CONFIG_COMPAT breakage, since 32bit userspace | |
| 27 | − * will lay out the structure members differently than the 64bit kernel. | |
| 28 | − * | |
| 29 | − * I've changed "ptsreq.protocol" from "unsigned long" to "__u32". | |
| 30 | − * On 32bit this will make no difference. With 64bit kernels, it will make | |
| 31 | − * 32bit apps work, too. | |
| 32 | − */ | |
| 33 | − | |
| 34 | −typedef struct ptsreq { | |
| 35 | − __u32 protocol; /*T=0: 2^0, T=1: 2^1*/ | |
| 36 | − unsigned char flags; | |
| 37 | − unsigned char pts1; | |
| 38 | − unsigned char pts2; | |
| 39 | − unsigned char pts3; | |
| 40 | −} ptsreq_t; | |
| 41 | − | |
| 42 | −#define CM_IOC_MAGIC 'c' | |
| 43 | −#define CM_IOC_MAXNR 255 | |
| 44 | − | |
| 45 | −#define CM_IOCGSTATUS _IOR (CM_IOC_MAGIC, 0, unsigned char *) | |
| 46 | −#define CM_IOCGATR _IOWR(CM_IOC_MAGIC, 1, atreq_t *) | |
| 47 | −#define CM_IOCSPTS _IOW (CM_IOC_MAGIC, 2, ptsreq_t *) | |
| 48 | −#define CM_IOCSRDR _IO (CM_IOC_MAGIC, 3) | |
| 49 | −#define CM_IOCARDOFF _IO (CM_IOC_MAGIC, 4) | |
| 50 | − | |
| 51 | −#define CM_IOSDBGLVL _IOW(CM_IOC_MAGIC, 250, int*) | |
| 52 | − | |
| 53 | −/* card and device states */ | |
| 54 | −#define CM_CARD_INSERTED 0x01 | |
| 55 | −#define CM_CARD_POWERED 0x02 | |
| 56 | −#define CM_ATR_PRESENT 0x04 | |
| 57 | −#define CM_ATR_VALID 0x08 | |
| 58 | −#define CM_STATE_VALID 0x0f | |
| 59 | −/* extra info only from CM4000 */ | |
| 60 | −#define CM_NO_READER 0x10 | |
| 61 | −#define CM_BAD_CARD 0x20 | |
| 62 | − | |
| 63 | − | |
| 64 | −#endif /* _UAPI_CM4000_H_ */ | |
| @@ -28,7 +28,7 @@ · 27 unmodified lines | ||
| 28 | 28 | #define _BITUL(x) (_UL(1) << (x)) |
| 29 | 29 | #define _BITULL(x) (_ULL(1) << (x)) |
| 30 | 30 | |
| 31 | −#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) | |
| 31 | +#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1) | |
| 32 | 32 | #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) |
| 33 | 33 | |
| 34 | 34 | #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) |
| @@ -40,19 +40,22 @@ · 39 unmodified lines | ||
| 40 | 40 | ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), \ |
| 41 | 41 | ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), \ |
| 42 | 42 | ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), \ |
| 43 | − ___C(GET_POISON, "Get Poison List"), \ | |
| 44 | − ___C(INJECT_POISON, "Inject Poison"), \ | |
| 45 | − ___C(CLEAR_POISON, "Clear Poison"), \ | |
| 43 | + ___DEPRECATED(GET_POISON, "Get Poison List"), \ | |
| 44 | + ___DEPRECATED(INJECT_POISON, "Inject Poison"), \ | |
| 45 | + ___DEPRECATED(CLEAR_POISON, "Clear Poison"), \ | |
| 46 | 46 | ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), \ |
| 47 | − ___C(SCAN_MEDIA, "Scan Media"), \ | |
| 48 | − ___C(GET_SCAN_MEDIA, "Get Scan Media Results"), \ | |
| 47 | + ___DEPRECATED(SCAN_MEDIA, "Scan Media"), \ | |
| 48 | + ___DEPRECATED(GET_SCAN_MEDIA, "Get Scan Media Results"), \ | |
| 49 | 49 | ___C(MAX, "invalid / last command") |
| 50 | 50 | |
| 51 | 51 | #define ___C(a, b) CXL_MEM_COMMAND_ID_##a |
| 52 | +#define ___DEPRECATED(a, b) CXL_MEM_DEPRECATED_ID_##a | |
| 52 | 53 | enum { CXL_CMDS }; |
| 53 | 54 | |
| 54 | 55 | #undef ___C |
| 56 | +#undef ___DEPRECATED | |
| 55 | 57 | #define ___C(a, b) { b } |
| 58 | +#define ___DEPRECATED(a, b) { "Deprecated " b } | |
| 56 | 59 | static const struct { |
| 57 | 60 | const char *name; |
| 58 | 61 | } cxl_command_names[] __attribute__((__unused__)) = { CXL_CMDS }; |
| @@ -68,6 +71,28 @@ static const struct { · 9 unmodified lines | ||
| 68 | 71 | */ |
| 69 | 72 | |
| 70 | 73 | #undef ___C |
| 74 | +#undef ___DEPRECATED | |
| 75 | +#define ___C(a, b) (0) | |
| 76 | +#define ___DEPRECATED(a, b) (1) | |
| 77 | + | |
| 78 | +static const __u8 cxl_deprecated_commands[] | |
| 79 | + __attribute__((__unused__)) = { CXL_CMDS }; | |
| 80 | + | |
| 81 | +/* | |
| 82 | + * Here's how this actually breaks out: | |
| 83 | + * cxl_deprecated_commands[] = { | |
| 84 | + * [CXL_MEM_COMMAND_ID_INVALID] = 0, | |
| 85 | + * [CXL_MEM_COMMAND_ID_IDENTIFY] = 0, | |
| 86 | + * ... | |
| 87 | + * [CXL_MEM_DEPRECATED_ID_GET_POISON] = 1, | |
| 88 | + * [CXL_MEM_DEPRECATED_ID_INJECT_POISON] = 1, | |
| 89 | + * [CXL_MEM_DEPRECATED_ID_CLEAR_POISON] = 1, | |
| 90 | + * ... | |
| 91 | + * }; | |
| 92 | + */ | |
| 93 | + | |
| 94 | +#undef ___C | |
| 95 | +#undef ___DEPRECATED | |
| 71 | 96 | |
| 72 | 97 | /** |
| 73 | 98 | * struct cxl_command_info - Command information returned from a query. |
| @@ -68,6 +68,7 @@ struct dlm_lksb { · 67 unmodified lines | ||
| 68 | 68 | |
| 69 | 69 | /* dlm_new_lockspace() flags */ |
| 70 | 70 | |
| 71 | +/* DLM_LSFL_TIMEWARN is deprecated and reserved. DO NOT USE! */ | |
| 71 | 72 | #define DLM_LSFL_TIMEWARN 0x00000002 |
| 72 | 73 | #define DLM_LSFL_NEWEXCL 0x00000008 |
| 73 | 74 | |
| @@ -1,60 +0,0 @@ | ||
| 1 | −/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | −/* | |
| 3 | − * Copyright (C) 2007 Red Hat, Inc. All rights reserved. | |
| 4 | − * | |
| 5 | − * This copyrighted material is made available to anyone wishing to use, | |
| 6 | − * modify, copy, or redistribute it subject to the terms and conditions | |
| 7 | − * of the GNU General Public License v.2. | |
| 8 | − */ | |
| 9 | − | |
| 10 | −#ifndef _DLM_NETLINK_H | |
| 11 | −#define _DLM_NETLINK_H | |
| 12 | − | |
| 13 | −#include <linux/types.h> | |
| 14 | −#include <linux/dlmconstants.h> | |
| 15 | − | |
| 16 | −enum { | |
| 17 | − DLM_STATUS_WAITING = 1, | |
| 18 | − DLM_STATUS_GRANTED = 2, | |
| 19 | − DLM_STATUS_CONVERT = 3, | |
| 20 | −}; | |
| 21 | − | |
| 22 | −#define DLM_LOCK_DATA_VERSION 1 | |
| 23 | − | |
| 24 | −struct dlm_lock_data { | |
| 25 | − __u16 version; | |
| 26 | − __u32 lockspace_id; | |
| 27 | − int nodeid; | |
| 28 | − int ownpid; | |
| 29 | − __u32 id; | |
| 30 | − __u32 remid; | |
| 31 | − __u64 xid; | |
| 32 | − __s8 status; | |
| 33 | − __s8 grmode; | |
| 34 | − __s8 rqmode; | |
| 35 | − unsigned long timestamp; | |
| 36 | − int resource_namelen; | |
| 37 | − char resource_name[DLM_RESNAME_MAXLEN]; | |
| 38 | −}; | |
| 39 | − | |
| 40 | −enum { | |
| 41 | − DLM_CMD_UNSPEC = 0, | |
| 42 | − DLM_CMD_HELLO, /* user->kernel */ | |
| 43 | − DLM_CMD_TIMEOUT, /* kernel->user */ | |
| 44 | − __DLM_CMD_MAX, | |
| 45 | −}; | |
| 46 | − | |
| 47 | −#define DLM_CMD_MAX (__DLM_CMD_MAX - 1) | |
| 48 | − | |
| 49 | −enum { | |
| 50 | − DLM_TYPE_UNSPEC = 0, | |
| 51 | − DLM_TYPE_LOCK, | |
| 52 | − __DLM_TYPE_MAX, | |
| 53 | −}; | |
| 54 | − | |
| 55 | −#define DLM_TYPE_MAX (__DLM_TYPE_MAX - 1) | |
| 56 | − | |
| 57 | −#define DLM_GENL_VERSION 0x1 | |
| 58 | −#define DLM_GENL_NAME "DLM" | |
| 59 | − | |
| 60 | −#endif /* _DLM_NETLINK_H */ | |
| @@ -87,7 +87,6 @@ · 86 unmodified lines | ||
| 87 | 87 | * DLM_LKF_NODLCKWT |
| 88 | 88 | * |
| 89 | 89 | * Do not cancel the lock if it gets into conversion deadlock. |
| 90 | − * Exclude this lock from being monitored due to DLM_LSFL_TIMEWARN. | |
| 91 | 90 | * |
| 92 | 91 | * DLM_LKF_NODLCKBLK |
| 93 | 92 | * |
| @@ -132,6 +131,10 @@ · 38 unmodified lines | ||
| 132 | 131 | * Unlock the lock even if it is converting or waiting or has sublocks. |
| 133 | 132 | * Only really for use by the userland device.c code. |
| 134 | 133 | * |
| 134 | + * DLM_LKF_TIMEOUT | |
| 135 | + * | |
| 136 | + * This value is deprecated and reserved. DO NOT USE! | |
| 137 | + * | |
| 135 | 138 | */ |
| 136 | 139 | |
| 137 | 140 | #define DLM_LKF_NOQUEUE 0x00000001 |
| @@ -286,9 +286,9 @@ enum { · 285 unmodified lines | ||
| 286 | 286 | #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) |
| 287 | 287 | |
| 288 | 288 | #define DM_VERSION_MAJOR 4 |
| 289 | −#define DM_VERSION_MINOR 47 | |
| 289 | +#define DM_VERSION_MINOR 48 | |
| 290 | 290 | #define DM_VERSION_PATCHLEVEL 0 |
| 291 | −#define DM_VERSION_EXTRA "-ioctl (2022-07-28)" | |
| 291 | +#define DM_VERSION_EXTRA "-ioctl (2023-03-01)" | |
| 292 | 292 | |
| 293 | 293 | /* Status bits */ |
| 294 | 294 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ |
| @@ -357,6 +357,8 @@ enum { · 356 unmodified lines | ||
| 357 | 357 | ETHTOOL_A_RINGS_CQE_SIZE, /* u32 */ |
| 358 | 358 | ETHTOOL_A_RINGS_TX_PUSH, /* u8 */ |
| 359 | 359 | ETHTOOL_A_RINGS_RX_PUSH, /* u8 */ |
| 360 | + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN, /* u32 */ | |
| 361 | + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX, /* u32 */ | |
| 360 | 362 | |
| 361 | 363 | /* add new constants above here */ |
| 362 | 364 | __ETHTOOL_A_RINGS_CNT, |
| @@ -85,16 +85,4 @@ struct epoll_event { · 84 unmodified lines | ||
| 85 | 85 | __u64 data; |
| 86 | 86 | } EPOLL_PACKED; |
| 87 | 87 | |
| 88 | −#ifdef CONFIG_PM_SLEEP | |
| 89 | −static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) | |
| 90 | −{ | |
| 91 | − if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND)) | |
| 92 | − epev->events &= ~EPOLLWAKEUP; | |
| 93 | −} | |
| 94 | −#else | |
| 95 | −static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev) | |
| 96 | −{ | |
| 97 | − epev->events &= ~EPOLLWAKEUP; | |
| 98 | −} | |
| 99 | −#endif | |
| 100 | 88 | #endif /* _UAPI_LINUX_EVENTPOLL_H */ |
| @@ -0,0 +1,117 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | + | |
| 3 | +#ifndef _UAPI_LINUX_EXT4_H | |
| 4 | +#define _UAPI_LINUX_EXT4_H | |
| 5 | +#include <linux/fiemap.h> | |
| 6 | +#include <linux/fs.h> | |
| 7 | +#include <linux/ioctl.h> | |
| 8 | +#include <linux/types.h> | |
| 9 | + | |
| 10 | +/* | |
| 11 | + * ext4-specific ioctl commands | |
| 12 | + */ | |
| 13 | +#define EXT4_IOC_GETVERSION _IOR('f', 3, long) | |
| 14 | +#define EXT4_IOC_SETVERSION _IOW('f', 4, long) | |
| 15 | +#define EXT4_IOC_GETVERSION_OLD FS_IOC_GETVERSION | |
| 16 | +#define EXT4_IOC_SETVERSION_OLD FS_IOC_SETVERSION | |
| 17 | +#define EXT4_IOC_GETRSVSZ _IOR('f', 5, long) | |
| 18 | +#define EXT4_IOC_SETRSVSZ _IOW('f', 6, long) | |
| 19 | +#define EXT4_IOC_GROUP_EXTEND _IOW('f', 7, unsigned long) | |
| 20 | +#define EXT4_IOC_GROUP_ADD _IOW('f', 8, struct ext4_new_group_input) | |
| 21 | +#define EXT4_IOC_MIGRATE _IO('f', 9) | |
| 22 | + /* note ioctl 10 reserved for an early version of the FIEMAP ioctl */ | |
| 23 | + /* note ioctl 11 reserved for filesystem-independent FIEMAP ioctl */ | |
| 24 | +#define EXT4_IOC_ALLOC_DA_BLKS _IO('f', 12) | |
| 25 | +#define EXT4_IOC_MOVE_EXT _IOWR('f', 15, struct move_extent) | |
| 26 | +#define EXT4_IOC_RESIZE_FS _IOW('f', 16, __u64) | |
| 27 | +#define EXT4_IOC_SWAP_BOOT _IO('f', 17) | |
| 28 | +#define EXT4_IOC_PRECACHE_EXTENTS _IO('f', 18) | |
| 29 | +/* ioctl codes 19--39 are reserved for fscrypt */ | |
| 30 | +#define EXT4_IOC_CLEAR_ES_CACHE _IO('f', 40) | |
| 31 | +#define EXT4_IOC_GETSTATE _IOW('f', 41, __u32) | |
| 32 | +#define EXT4_IOC_GET_ES_CACHE _IOWR('f', 42, struct fiemap) | |
| 33 | +#define EXT4_IOC_CHECKPOINT _IOW('f', 43, __u32) | |
| 34 | +#define EXT4_IOC_GETFSUUID _IOR('f', 44, struct fsuuid) | |
| 35 | +#define EXT4_IOC_SETFSUUID _IOW('f', 44, struct fsuuid) | |
| 36 | + | |
| 37 | +#define EXT4_IOC_SHUTDOWN _IOR('X', 125, __u32) | |
| 38 | + | |
| 39 | +/* | |
| 40 | + * ioctl commands in 32 bit emulation | |
| 41 | + */ | |
| 42 | +#define EXT4_IOC32_GETVERSION _IOR('f', 3, int) | |
| 43 | +#define EXT4_IOC32_SETVERSION _IOW('f', 4, int) | |
| 44 | +#define EXT4_IOC32_GETRSVSZ _IOR('f', 5, int) | |
| 45 | +#define EXT4_IOC32_SETRSVSZ _IOW('f', 6, int) | |
| 46 | +#define EXT4_IOC32_GROUP_EXTEND _IOW('f', 7, unsigned int) | |
| 47 | +#define EXT4_IOC32_GROUP_ADD _IOW('f', 8, struct compat_ext4_new_group_input) | |
| 48 | +#define EXT4_IOC32_GETVERSION_OLD FS_IOC32_GETVERSION | |
| 49 | +#define EXT4_IOC32_SETVERSION_OLD FS_IOC32_SETVERSION | |
| 50 | + | |
| 51 | +/* | |
| 52 | + * Flags returned by EXT4_IOC_GETSTATE | |
| 53 | + * | |
| 54 | + * We only expose to userspace a subset of the state flags in | |
| 55 | + * i_state_flags | |
| 56 | + */ | |
| 57 | +#define EXT4_STATE_FLAG_EXT_PRECACHED 0x00000001 | |
| 58 | +#define EXT4_STATE_FLAG_NEW 0x00000002 | |
| 59 | +#define EXT4_STATE_FLAG_NEWENTRY 0x00000004 | |
| 60 | +#define EXT4_STATE_FLAG_DA_ALLOC_CLOSE 0x00000008 | |
| 61 | + | |
| 62 | +/* | |
| 63 | + * Flags for ioctl EXT4_IOC_CHECKPOINT | |
| 64 | + */ | |
| 65 | +#define EXT4_IOC_CHECKPOINT_FLAG_DISCARD 0x1 | |
| 66 | +#define EXT4_IOC_CHECKPOINT_FLAG_ZEROOUT 0x2 | |
| 67 | +#define EXT4_IOC_CHECKPOINT_FLAG_DRY_RUN 0x4 | |
| 68 | +#define EXT4_IOC_CHECKPOINT_FLAG_VALID (EXT4_IOC_CHECKPOINT_FLAG_DISCARD | \ | |
| 69 | + EXT4_IOC_CHECKPOINT_FLAG_ZEROOUT | \ | |
| 70 | + EXT4_IOC_CHECKPOINT_FLAG_DRY_RUN) | |
| 71 | + | |
| 72 | +/* | |
| 73 | + * Structure for EXT4_IOC_GETFSUUID/EXT4_IOC_SETFSUUID | |
| 74 | + */ | |
| 75 | +struct fsuuid { | |
| 76 | + __u32 fsu_len; | |
| 77 | + __u32 fsu_flags; | |
| 78 | + __u8 fsu_uuid[]; | |
| 79 | +}; | |
| 80 | + | |
| 81 | +/* | |
| 82 | + * Structure for EXT4_IOC_MOVE_EXT | |
| 83 | + */ | |
| 84 | +struct move_extent { | |
| 85 | + __u32 reserved; /* should be zero */ | |
| 86 | + __u32 donor_fd; /* donor file descriptor */ | |
| 87 | + __u64 orig_start; /* logical start offset in block for orig */ | |
| 88 | + __u64 donor_start; /* logical start offset in block for donor */ | |
| 89 | + __u64 len; /* block length to be moved */ | |
| 90 | + __u64 moved_len; /* moved block length */ | |
| 91 | +}; | |
| 92 | + | |
| 93 | +/* | |
| 94 | + * Flags used by EXT4_IOC_SHUTDOWN | |
| 95 | + */ | |
| 96 | +#define EXT4_GOING_FLAGS_DEFAULT 0x0 /* going down */ | |
| 97 | +#define EXT4_GOING_FLAGS_LOGFLUSH 0x1 /* flush log but not data */ | |
| 98 | +#define EXT4_GOING_FLAGS_NOLOGFLUSH 0x2 /* don't flush log nor data */ | |
| 99 | + | |
| 100 | +/* Used to pass group descriptor data when online resize is done */ | |
| 101 | +struct ext4_new_group_input { | |
| 102 | + __u32 group; /* Group number for this data */ | |
| 103 | + __u64 block_bitmap; /* Absolute block number of block bitmap */ | |
| 104 | + __u64 inode_bitmap; /* Absolute block number of inode bitmap */ | |
| 105 | + __u64 inode_table; /* Absolute block number of inode table start */ | |
| 106 | + __u32 blocks_count; /* Total number of blocks in this group */ | |
| 107 | + __u16 reserved_blocks; /* Number of reserved blocks in this group */ | |
| 108 | + __u16 unused; | |
| 109 | +}; | |
| 110 | + | |
| 111 | +/* | |
| 112 | + * Returned by EXT4_IOC_GET_ES_CACHE as an additional possible flag. | |
| 113 | + * It indicates that the entry in extent status cache is for a hole. | |
| 114 | + */ | |
| 115 | +#define EXT4_FIEMAP_EXTENT_HOLE 0x08000000 | |
| 116 | + | |
| 117 | +#endif /* _UAPI_LINUX_EXT4_H */ | |
| @@ -1,4 +1,4 @@ | ||
| 1 | −/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause */ | |
| 1 | +/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | |
| 2 | 2 | /* Do not edit directly, auto-generated from: */ |
| 3 | 3 | /* Documentation/netlink/specs/fou.yaml */ |
| 4 | 4 | /* YNL-GEN uapi header */ |
| @@ -43,10 +43,25 @@ struct gsm_config_ext { · 42 unmodified lines | ||
| 43 | 43 | __u32 keep_alive; /* Control channel keep-alive in 1/100th of a |
| 44 | 44 | * second (0 to disable) |
| 45 | 45 | */ |
| 46 | − __u32 reserved[7]; /* For future use, must be initialized to zero */ | |
| 46 | + __u32 wait_config; /* Wait for DLCI config before opening virtual link? */ | |
| 47 | + __u32 reserved[6]; /* For future use, must be initialized to zero */ | |
| 47 | 48 | }; |
| 48 | 49 | |
| 49 | 50 | #define GSMIOC_GETCONF_EXT _IOR('G', 5, struct gsm_config_ext) |
| 50 | 51 | #define GSMIOC_SETCONF_EXT _IOW('G', 6, struct gsm_config_ext) |
| 51 | 52 | |
| 53 | +/* Set channel accordingly before calling GSMIOC_GETCONF_DLCI. */ | |
| 54 | +struct gsm_dlci_config { | |
| 55 | + __u32 channel; /* DLCI (0 for the associated DLCI) */ | |
| 56 | + __u32 adaption; /* Convergence layer type */ | |
| 57 | + __u32 mtu; /* Maximum transfer unit */ | |
| 58 | + __u32 priority; /* Priority (0 for default value) */ | |
| 59 | + __u32 i; /* Frame type (1 = UIH, 2 = UI) */ | |
| 60 | + __u32 k; /* Window size (0 for default value) */ | |
| 61 | + __u32 reserved[8]; /* For future use, must be initialized to zero */ | |
| 62 | +}; | |
| 63 | + | |
| 64 | +#define GSMIOC_GETCONF_DLCI _IOWR('G', 7, struct gsm_dlci_config) | |
| 65 | +#define GSMIOC_SETCONF_DLCI _IOW('G', 8, struct gsm_dlci_config) | |
| 66 | + | |
| 52 | 67 | #endif |
| @@ -0,0 +1,73 @@ | ||
| 1 | +/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | |
| 2 | +/* Do not edit directly, auto-generated from: */ | |
| 3 | +/* Documentation/netlink/specs/handshake.yaml */ | |
| 4 | +/* YNL-GEN uapi header */ | |
| 5 | + | |
| 6 | +#ifndef _UAPI_LINUX_HANDSHAKE_H | |
| 7 | +#define _UAPI_LINUX_HANDSHAKE_H | |
| 8 | + | |
| 9 | +#define HANDSHAKE_FAMILY_NAME "handshake" | |
| 10 | +#define HANDSHAKE_FAMILY_VERSION 1 | |
| 11 | + | |
| 12 | +enum handshake_handler_class { | |
| 13 | + HANDSHAKE_HANDLER_CLASS_NONE, | |
| 14 | + HANDSHAKE_HANDLER_CLASS_TLSHD, | |
| 15 | + HANDSHAKE_HANDLER_CLASS_MAX, | |
| 16 | +}; | |
| 17 | + | |
| 18 | +enum handshake_msg_type { | |
| 19 | + HANDSHAKE_MSG_TYPE_UNSPEC, | |
| 20 | + HANDSHAKE_MSG_TYPE_CLIENTHELLO, | |
| 21 | + HANDSHAKE_MSG_TYPE_SERVERHELLO, | |
| 22 | +}; | |
| 23 | + | |
| 24 | +enum handshake_auth { | |
| 25 | + HANDSHAKE_AUTH_UNSPEC, | |
| 26 | + HANDSHAKE_AUTH_UNAUTH, | |
| 27 | + HANDSHAKE_AUTH_PSK, | |
| 28 | + HANDSHAKE_AUTH_X509, | |
| 29 | +}; | |
| 30 | + | |
| 31 | +enum { | |
| 32 | + HANDSHAKE_A_X509_CERT = 1, | |
| 33 | + HANDSHAKE_A_X509_PRIVKEY, | |
| 34 | + | |
| 35 | + __HANDSHAKE_A_X509_MAX, | |
| 36 | + HANDSHAKE_A_X509_MAX = (__HANDSHAKE_A_X509_MAX - 1) | |
| 37 | +}; | |
| 38 | + | |
| 39 | +enum { | |
| 40 | + HANDSHAKE_A_ACCEPT_SOCKFD = 1, | |
| 41 | + HANDSHAKE_A_ACCEPT_HANDLER_CLASS, | |
| 42 | + HANDSHAKE_A_ACCEPT_MESSAGE_TYPE, | |
| 43 | + HANDSHAKE_A_ACCEPT_TIMEOUT, | |
| 44 | + HANDSHAKE_A_ACCEPT_AUTH_MODE, | |
| 45 | + HANDSHAKE_A_ACCEPT_PEER_IDENTITY, | |
| 46 | + HANDSHAKE_A_ACCEPT_CERTIFICATE, | |
| 47 | + | |
| 48 | + __HANDSHAKE_A_ACCEPT_MAX, | |
| 49 | + HANDSHAKE_A_ACCEPT_MAX = (__HANDSHAKE_A_ACCEPT_MAX - 1) | |
| 50 | +}; | |
| 51 | + | |
| 52 | +enum { | |
| 53 | + HANDSHAKE_A_DONE_STATUS = 1, | |
| 54 | + HANDSHAKE_A_DONE_SOCKFD, | |
| 55 | + HANDSHAKE_A_DONE_REMOTE_AUTH, | |
| 56 | + | |
| 57 | + __HANDSHAKE_A_DONE_MAX, | |
| 58 | + HANDSHAKE_A_DONE_MAX = (__HANDSHAKE_A_DONE_MAX - 1) | |
| 59 | +}; | |
| 60 | + | |
| 61 | +enum { | |
| 62 | + HANDSHAKE_CMD_READY = 1, | |
| 63 | + HANDSHAKE_CMD_ACCEPT, | |
| 64 | + HANDSHAKE_CMD_DONE, | |
| 65 | + | |
| 66 | + __HANDSHAKE_CMD_MAX, | |
| 67 | + HANDSHAKE_CMD_MAX = (__HANDSHAKE_CMD_MAX - 1) | |
| 68 | +}; | |
| 69 | + | |
| 70 | +#define HANDSHAKE_MCGRP_NONE "none" | |
| 71 | +#define HANDSHAKE_MCGRP_TLSHD "tlshd" | |
| 72 | + | |
| 73 | +#endif /* _UAPI_LINUX_HANDSHAKE_H */ | |
| @@ -22,14 +22,4 @@ enum { · 21 unmodified lines | ||
| 22 | 22 | HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, |
| 23 | 23 | }; |
| 24 | 24 | |
| 25 | −enum bp_type_idx { | |
| 26 | − TYPE_INST = 0, | |
| 27 | −#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS | |
| 28 | − TYPE_DATA = 0, | |
| 29 | −#else | |
| 30 | − TYPE_DATA = 1, | |
| 31 | −#endif | |
| 32 | − TYPE_MAX | |
| 33 | −}; | |
| 34 | − | |
| 35 | 25 | #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ |
| @@ -30,6 +30,7 @@ enum idxd_scmd_stat { · 29 unmodified lines | ||
| 30 | 30 | IDXD_SCMD_WQ_NO_PRIV = 0x800f0000, |
| 31 | 31 | IDXD_SCMD_WQ_IRQ_ERR = 0x80100000, |
| 32 | 32 | IDXD_SCMD_WQ_USER_NO_IOMMU = 0x80110000, |
| 33 | + IDXD_SCMD_DEV_EVL_ERR = 0x80120000, | |
| 33 | 34 | }; |
| 34 | 35 | |
| 35 | 36 | #define IDXD_SCMD_SOFTERR_MASK 0x80000000 |
| @@ -72,12 +73,14 @@ enum dsa_opcode { · 36 unmodified lines | ||
| 72 | 73 | DSA_OPCODE_CR_DELTA, |
| 73 | 74 | DSA_OPCODE_AP_DELTA, |
| 74 | 75 | DSA_OPCODE_DUALCAST, |
| 76 | + DSA_OPCODE_TRANSL_FETCH, | |
| 75 | 77 | DSA_OPCODE_CRCGEN = 0x10, |
| 76 | 78 | DSA_OPCODE_COPY_CRC, |
| 77 | 79 | DSA_OPCODE_DIF_CHECK, |
| 78 | 80 | DSA_OPCODE_DIF_INS, |
| 79 | 81 | DSA_OPCODE_DIF_STRP, |
| 80 | 82 | DSA_OPCODE_DIF_UPDT, |
| 83 | + DSA_OPCODE_DIX_GEN = 0x17, | |
| 81 | 84 | DSA_OPCODE_CFLUSH = 0x20, |
| 82 | 85 | }; |
| 83 | 86 | |
| @@ -132,6 +135,8 @@ enum dsa_completion_status { · 48 unmodified lines | ||
| 132 | 135 | DSA_COMP_HW_ERR1, |
| 133 | 136 | DSA_COMP_HW_ERR_DRB, |
| 134 | 137 | DSA_COMP_TRANSLATION_FAIL, |
| 138 | + DSA_COMP_DRAIN_EVL = 0x26, | |
| 139 | + DSA_COMP_BATCH_EVL_ERR, | |
| 135 | 140 | }; |
| 136 | 141 | |
| 137 | 142 | enum iax_completion_status { |
| @@ -167,6 +172,7 @@ enum iax_completion_status { · 29 unmodified lines | ||
| 167 | 172 | |
| 168 | 173 | #define DSA_COMP_STATUS_MASK 0x7f |
| 169 | 174 | #define DSA_COMP_STATUS_WRITE 0x80 |
| 175 | +#define DSA_COMP_STATUS(status) ((status) & DSA_COMP_STATUS_MASK) | |
| 170 | 176 | |
| 171 | 177 | struct dsa_hw_desc { |
| 172 | 178 | uint32_t pasid:20; |
| @@ -180,6 +186,8 @@ struct dsa_hw_desc { · 7 unmodified lines | ||
| 180 | 186 | uint64_t rdback_addr; |
| 181 | 187 | uint64_t pattern; |
| 182 | 188 | uint64_t desc_list_addr; |
| 189 | + uint64_t pattern_lower; | |
| 190 | + uint64_t transl_fetch_addr; | |
| 183 | 191 | }; |
| 184 | 192 | union { |
| 185 | 193 | uint64_t dst_addr; |
| @@ -190,6 +198,7 @@ struct dsa_hw_desc { · 4 unmodified lines | ||
| 190 | 198 | union { |
| 191 | 199 | uint32_t xfer_size; |
| 192 | 200 | uint32_t desc_count; |
| 201 | + uint32_t region_size; | |
| 193 | 202 | }; |
| 194 | 203 | uint16_t int_handle; |
| 195 | 204 | uint16_t rsvd1; |
| @@ -244,6 +253,26 @@ struct dsa_hw_desc { · 48 unmodified lines | ||
| 244 | 253 | uint16_t dest_app_tag_seed; |
| 245 | 254 | }; |
| 246 | 255 | |
| 256 | + /* Fill */ | |
| 257 | + uint64_t pattern_upper; | |
| 258 | + | |
| 259 | + /* Translation fetch */ | |
| 260 | + struct { | |
| 261 | + uint64_t transl_fetch_res; | |
| 262 | + uint32_t region_stride; | |
| 263 | + }; | |
| 264 | + | |
| 265 | + /* DIX generate */ | |
| 266 | + struct { | |
| 267 | + uint8_t dix_gen_res; | |
| 268 | + uint8_t dest_dif_flags; | |
| 269 | + uint8_t dif_flags; | |
| 270 | + uint8_t dix_gen_res2[13]; | |
| 271 | + uint32_t ref_tag_seed; | |
| 272 | + uint16_t app_tag_mask; | |
| 273 | + uint16_t app_tag_seed; | |
| 274 | + }; | |
| 275 | + | |
| 247 | 276 | uint8_t op_specific[24]; |
| 248 | 277 | }; |
| 249 | 278 | } __attribute__((packed)); |
| @@ -284,8 +313,12 @@ struct dsa_completion_record { · 34 unmodified lines | ||
| 284 | 313 | uint8_t result; |
| 285 | 314 | uint8_t dif_status; |
| 286 | 315 | }; |
| 287 | − uint16_t rsvd; | |
| 288 | − uint32_t bytes_completed; | |
| 316 | + uint8_t fault_info; | |
| 317 | + uint8_t rsvd; | |
| 318 | + union { | |
| 319 | + uint32_t bytes_completed; | |
| 320 | + uint32_t descs_completed; | |
| 321 | + }; | |
| 289 | 322 | uint64_t fault_addr; |
| 290 | 323 | union { |
| 291 | 324 | /* common record */ |
| @@ -322,6 +355,14 @@ struct dsa_completion_record { · 30 unmodified lines | ||
| 322 | 355 | uint16_t dif_upd_dest_app_tag; |
| 323 | 356 | }; |
| 324 | 357 | |
| 358 | + /* DIX generate */ | |
| 359 | + struct { | |
| 360 | + uint64_t dix_gen_res; | |
| 361 | + uint32_t dix_ref_tag; | |
| 362 | + uint16_t dix_app_tag_mask; | |
| 363 | + uint16_t dix_app_tag; | |
| 364 | + }; | |
| 365 | + | |
| 325 | 366 | uint8_t op_specific[16]; |
| 326 | 367 | }; |
| 327 | 368 | } __attribute__((packed)); |
| @@ -333,7 +374,8 @@ struct dsa_raw_completion_record { · 5 unmodified lines | ||
| 333 | 374 | struct iax_completion_record { |
| 334 | 375 | volatile uint8_t status; |
| 335 | 376 | uint8_t error_code; |
| 336 | − uint16_t rsvd; | |
| 377 | + uint8_t fault_info; | |
| 378 | + uint8_t rsvd; | |
| 337 | 379 | uint32_t bytes_completed; |
| 338 | 380 | uint64_t fault_addr; |
| 339 | 381 | uint32_t invalid_flags; |
| @@ -525,6 +525,7 @@ enum { · 524 unmodified lines | ||
| 525 | 525 | BRIDGE_VLANDB_ENTRY_MCAST_ROUTER, |
| 526 | 526 | BRIDGE_VLANDB_ENTRY_MCAST_N_GROUPS, |
| 527 | 527 | BRIDGE_VLANDB_ENTRY_MCAST_MAX_GROUPS, |
| 528 | + BRIDGE_VLANDB_ENTRY_NEIGH_SUPPRESS, | |
| 528 | 529 | __BRIDGE_VLANDB_ENTRY_MAX, |
| 529 | 530 | }; |
| 530 | 531 | #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1) |
| @@ -633,6 +634,11 @@ enum { · 102 unmodified lines | ||
| 633 | 634 | MDBA_MDB_EATTR_GROUP_MODE, |
| 634 | 635 | MDBA_MDB_EATTR_SOURCE, |
| 635 | 636 | MDBA_MDB_EATTR_RTPROT, |
| 637 | + MDBA_MDB_EATTR_DST, | |
| 638 | + MDBA_MDB_EATTR_DST_PORT, | |
| 639 | + MDBA_MDB_EATTR_VNI, | |
| 640 | + MDBA_MDB_EATTR_IFINDEX, | |
| 641 | + MDBA_MDB_EATTR_SRC_VNI, | |
| 636 | 642 | __MDBA_MDB_EATTR_MAX |
| 637 | 643 | }; |
| 638 | 644 | #define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1) |
| @@ -728,6 +734,11 @@ enum { · 89 unmodified lines | ||
| 728 | 734 | MDBE_ATTR_SRC_LIST, |
| 729 | 735 | MDBE_ATTR_GROUP_MODE, |
| 730 | 736 | MDBE_ATTR_RTPROT, |
| 737 | + MDBE_ATTR_DST, | |
| 738 | + MDBE_ATTR_DST_PORT, | |
| 739 | + MDBE_ATTR_VNI, | |
| 740 | + MDBE_ATTR_IFINDEX, | |
| 741 | + MDBE_ATTR_SRC_VNI, | |
| 731 | 742 | __MDBE_ATTR_MAX, |
| 732 | 743 | }; |
| 733 | 744 | #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1) |
| @@ -569,6 +569,7 @@ enum { · 568 unmodified lines | ||
| 569 | 569 | IFLA_BRPORT_MAB, |
| 570 | 570 | IFLA_BRPORT_MCAST_N_GROUPS, |
| 571 | 571 | IFLA_BRPORT_MCAST_MAX_GROUPS, |
| 572 | + IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, | |
| 572 | 573 | __IFLA_BRPORT_MAX |
| 573 | 574 | }; |
| 574 | 575 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -635,6 +636,7 @@ enum { · 60 unmodified lines | ||
| 635 | 636 | IFLA_MACVLAN_MACADDR_COUNT, |
| 636 | 637 | IFLA_MACVLAN_BC_QUEUE_LEN, |
| 637 | 638 | IFLA_MACVLAN_BC_QUEUE_LEN_USED, |
| 639 | + IFLA_MACVLAN_BC_CUTOFF, | |
| 638 | 640 | __IFLA_MACVLAN_MAX, |
| 639 | 641 | }; |
| 640 | 642 | |
| @@ -59,6 +59,7 @@ struct sockaddr_ll { · 58 unmodified lines | ||
| 59 | 59 | #define PACKET_ROLLOVER_STATS 21 |
| 60 | 60 | #define PACKET_FANOUT_DATA 22 |
| 61 | 61 | #define PACKET_IGNORE_OUTGOING 23 |
| 62 | +#define PACKET_VNET_HDR_SZ 24 | |
| 62 | 63 | |
| 63 | 64 | #define PACKET_FANOUT_HASH 0 |
| 64 | 65 | #define PACKET_FANOUT_LB 1 |
| @@ -250,6 +250,7 @@ enum io_uring_op { · 249 unmodified lines | ||
| 250 | 250 | #define IORING_TIMEOUT_REALTIME (1U << 3) |
| 251 | 251 | #define IORING_LINK_TIMEOUT_UPDATE (1U << 4) |
| 252 | 252 | #define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5) |
| 253 | +#define IORING_TIMEOUT_MULTISHOT (1U << 6) | |
| 253 | 254 | #define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME) |
| 254 | 255 | #define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE) |
| 255 | 256 | /* |
| @@ -389,6 +390,9 @@ enum { · 133 unmodified lines | ||
| 389 | 390 | #define IORING_OFF_SQ_RING 0ULL |
| 390 | 391 | #define IORING_OFF_CQ_RING 0x8000000ULL |
| 391 | 392 | #define IORING_OFF_SQES 0x10000000ULL |
| 393 | +#define IORING_OFF_PBUF_RING 0x80000000ULL | |
| 394 | +#define IORING_OFF_PBUF_SHIFT 16 | |
| 395 | +#define IORING_OFF_MMAP_MASK 0xf8000000ULL | |
| 392 | 396 | |
| 393 | 397 | /* |
| 394 | 398 | * Filled with the offset for mmap(2) |
| @@ -568,19 +572,6 @@ struct io_uring_rsrc_update2 { · 173 unmodified lines | ||
| 568 | 572 | __u32 resv2; |
| 569 | 573 | }; |
| 570 | 574 | |
| 571 | −struct io_uring_notification_slot { | |
| 572 | − __u64 tag; | |
| 573 | − __u64 resv[3]; | |
| 574 | −}; | |
| 575 | − | |
| 576 | −struct io_uring_notification_register { | |
| 577 | − __u32 nr_slots; | |
| 578 | − __u32 resv; | |
| 579 | − __u64 resv2; | |
| 580 | − __u64 data; | |
| 581 | − __u64 resv3; | |
| 582 | −}; | |
| 583 | − | |
| 584 | 575 | /* Skip updating fd indexes set to this value in the fd table */ |
| 585 | 576 | #define IORING_REGISTER_FILES_SKIP (-2) |
| 586 | 577 | |
| @@ -635,12 +626,26 @@ struct io_uring_buf_ring { · 48 unmodified lines | ||
| 635 | 626 | }; |
| 636 | 627 | }; |
| 637 | 628 | |
| 629 | +/* | |
| 630 | + * Flags for IORING_REGISTER_PBUF_RING. | |
| 631 | + * | |
| 632 | + * IOU_PBUF_RING_MMAP: If set, kernel will allocate the memory for the ring. | |
| 633 | + * The application must not set a ring_addr in struct | |
| 634 | + * io_uring_buf_reg, instead it must subsequently call | |
| 635 | + * mmap(2) with the offset set as: | |
| 636 | + * IORING_OFF_PBUF_RING | (bgid << IORING_OFF_PBUF_SHIFT) | |
| 637 | + * to get a virtual mapping for the ring. | |
| 638 | + */ | |
| 639 | +enum { | |
| 640 | + IOU_PBUF_RING_MMAP = 1, | |
| 641 | +}; | |
| 642 | + | |
| 638 | 643 | /* argument for IORING_(UN)REGISTER_PBUF_RING */ |
| 639 | 644 | struct io_uring_buf_reg { |
| 640 | 645 | __u64 ring_addr; |
| 641 | 646 | __u32 ring_entries; |
| 642 | 647 | __u16 bgid; |
| 643 | − __u16 pad; | |
| 648 | + __u16 flags; | |
| 644 | 649 | __u64 resv[3]; |
| 645 | 650 | }; |
| 646 | 651 | |
| @@ -81,7 +81,7 @@ struct ipv6_opt_hdr { · 80 unmodified lines | ||
| 81 | 81 | struct rt0_hdr { |
| 82 | 82 | struct ipv6_rt_hdr rt_hdr; |
| 83 | 83 | __u32 reserved; |
| 84 | − struct in6_addr addr[0]; | |
| 84 | + struct in6_addr addr[]; | |
| 85 | 85 | |
| 86 | 86 | #define rt0_type rt_hdr.type |
| 87 | 87 | }; |
| @@ -163,10 +163,313 @@ struct isst_if_msr_cmds { · 162 unmodified lines | ||
| 163 | 163 | struct isst_if_msr_cmd msr_cmd[1]; |
| 164 | 164 | }; |
| 165 | 165 | |
| 166 | +/** | |
| 167 | + * struct isst_core_power - Structure to get/set core_power feature | |
| 168 | + * @get_set: 0: Get, 1: Set | |
| 169 | + * @socket_id: Socket/package id | |
| 170 | + * @power_domain: Power Domain id | |
| 171 | + * @enable: Feature enable status | |
| 172 | + * @priority_type: Priority type for the feature (ordered/proportional) | |
| 173 | + * | |
| 174 | + * Structure to get/set core_power feature state using IOCTL | |
| 175 | + * ISST_IF_CORE_POWER_STATE. | |
| 176 | + */ | |
| 177 | +struct isst_core_power { | |
| 178 | + __u8 get_set; | |
| 179 | + __u8 socket_id; | |
| 180 | + __u8 power_domain_id; | |
| 181 | + __u8 enable; | |
| 182 | + __u8 supported; | |
| 183 | + __u8 priority_type; | |
| 184 | +}; | |
| 185 | + | |
| 186 | +/** | |
| 187 | + * struct isst_clos_param - Structure to get/set clos praram | |
| 188 | + * @get_set: 0: Get, 1: Set | |
| 189 | + * @socket_id: Socket/package id | |
| 190 | + * @power_domain: Power Domain id | |
| 191 | + * clos: Clos ID for the parameters | |
| 192 | + * min_freq_mhz: Minimum frequency in MHz | |
| 193 | + * max_freq_mhz: Maximum frequency in MHz | |
| 194 | + * prop_prio: Proportional priority from 0-15 | |
| 195 | + * | |
| 196 | + * Structure to get/set per clos property using IOCTL | |
| 197 | + * ISST_IF_CLOS_PARAM. | |
| 198 | + */ | |
| 199 | +struct isst_clos_param { | |
| 200 | + __u8 get_set; | |
| 201 | + __u8 socket_id; | |
| 202 | + __u8 power_domain_id; | |
| 203 | + __u8 clos; | |
| 204 | + __u16 min_freq_mhz; | |
| 205 | + __u16 max_freq_mhz; | |
| 206 | + __u8 prop_prio; | |
| 207 | +}; | |
| 208 | + | |
| 209 | +/** | |
| 210 | + * struct isst_if_clos_assoc - Structure to assign clos to a CPU | |
| 211 | + * @socket_id: Socket/package id | |
| 212 | + * @power_domain: Power Domain id | |
| 213 | + * @logical_cpu: CPU number | |
| 214 | + * @clos: Clos ID to assign to the logical CPU | |
| 215 | + * | |
| 216 | + * Structure to get/set core_power feature. | |
| 217 | + */ | |
| 218 | +struct isst_if_clos_assoc { | |
| 219 | + __u8 socket_id; | |
| 220 | + __u8 power_domain_id; | |
| 221 | + __u16 logical_cpu; | |
| 222 | + __u16 clos; | |
| 223 | +}; | |
| 224 | + | |
| 225 | +/** | |
| 226 | + * struct isst_if_clos_assoc_cmds - Structure to assign clos to CPUs | |
| 227 | + * @cmd_count: Number of cmds (cpus) in this request | |
| 228 | + * @get_set: Request is for get or set | |
| 229 | + * @punit_cpu_map: Set to 1 if the CPU number is punit numbering not | |
| 230 | + * Linux CPU number | |
| 231 | + * | |
| 232 | + * Structure used to get/set associate CPUs to clos using IOCTL | |
| 233 | + * ISST_IF_CLOS_ASSOC. | |
| 234 | + */ | |
| 235 | +struct isst_if_clos_assoc_cmds { | |
| 236 | + __u16 cmd_count; | |
| 237 | + __u16 get_set; | |
| 238 | + __u16 punit_cpu_map; | |
| 239 | + struct isst_if_clos_assoc assoc_info[1]; | |
| 240 | +}; | |
| 241 | + | |
| 242 | +/** | |
| 243 | + * struct isst_tpmi_instance_count - Get number of TPMI instances per socket | |
| 244 | + * @socket_id: Socket/package id | |
| 245 | + * @count: Number of instances | |
| 246 | + * @valid_mask: Mask of instances as there can be holes | |
| 247 | + * | |
| 248 | + * Structure used to get TPMI instances information using | |
| 249 | + * IOCTL ISST_IF_COUNT_TPMI_INSTANCES. | |
| 250 | + */ | |
| 251 | +struct isst_tpmi_instance_count { | |
| 252 | + __u8 socket_id; | |
| 253 | + __u8 count; | |
| 254 | + __u16 valid_mask; | |
| 255 | +}; | |
| 256 | + | |
| 257 | +/** | |
| 258 | + * struct isst_perf_level_info - Structure to get information on SST-PP levels | |
| 259 | + * @socket_id: Socket/package id | |
| 260 | + * @power_domain: Power Domain id | |
| 261 | + * @logical_cpu: CPU number | |
| 262 | + * @clos: Clos ID to assign to the logical CPU | |
| 263 | + * @max_level: Maximum performance level supported by the platform | |
| 264 | + * @feature_rev: The feature revision for SST-PP supported by the platform | |
| 265 | + * @level_mask: Mask of supported performance levels | |
| 266 | + * @current_level: Current performance level | |
| 267 | + * @feature_state: SST-BF and SST-TF (enabled/disabled) status at current level | |
| 268 | + * @locked: SST-PP performance level change is locked/unlocked | |
| 269 | + * @enabled: SST-PP feature is enabled or not | |
| 270 | + * @sst-tf_support: SST-TF support status at this level | |
| 271 | + * @sst-bf_support: SST-BF support status at this level | |
| 272 | + * | |
| 273 | + * Structure to get SST-PP details using IOCTL ISST_IF_PERF_LEVELS. | |
| 274 | + */ | |
| 275 | +struct isst_perf_level_info { | |
| 276 | + __u8 socket_id; | |
| 277 | + __u8 power_domain_id; | |
| 278 | + __u8 max_level; | |
| 279 | + __u8 feature_rev; | |
| 280 | + __u8 level_mask; | |
| 281 | + __u8 current_level; | |
| 282 | + __u8 feature_state; | |
| 283 | + __u8 locked; | |
| 284 | + __u8 enabled; | |
| 285 | + __u8 sst_tf_support; | |
| 286 | + __u8 sst_bf_support; | |
| 287 | +}; | |
| 288 | + | |
| 289 | +/** | |
| 290 | + * struct isst_perf_level_control - Structure to set SST-PP level | |
| 291 | + * @socket_id: Socket/package id | |
| 292 | + * @power_domain: Power Domain id | |
| 293 | + * @level: level to set | |
| 294 | + * | |
| 295 | + * Structure used change SST-PP level using IOCTL ISST_IF_PERF_SET_LEVEL. | |
| 296 | + */ | |
| 297 | +struct isst_perf_level_control { | |
| 298 | + __u8 socket_id; | |
| 299 | + __u8 power_domain_id; | |
| 300 | + __u8 level; | |
| 301 | +}; | |
| 302 | + | |
| 303 | +/** | |
| 304 | + * struct isst_perf_feature_control - Structure to activate SST-BF/SST-TF | |
| 305 | + * @socket_id: Socket/package id | |
| 306 | + * @power_domain: Power Domain id | |
| 307 | + * @feature: bit 0 = SST-BF state, bit 1 = SST-TF state | |
| 308 | + * | |
| 309 | + * Structure used to enable SST-BF/SST-TF using IOCTL ISST_IF_PERF_SET_FEATURE. | |
| 310 | + */ | |
| 311 | +struct isst_perf_feature_control { | |
| 312 | + __u8 socket_id; | |
| 313 | + __u8 power_domain_id; | |
| 314 | + __u8 feature; | |
| 315 | +}; | |
| 316 | + | |
| 317 | +#define TRL_MAX_BUCKETS 8 | |
| 318 | +#define TRL_MAX_LEVELS 6 | |
| 319 | + | |
| 320 | +/** | |
| 321 | + * struct isst_perf_level_data_info - Structure to get SST-PP level details | |
| 322 | + * @socket_id: Socket/package id | |
| 323 | + * @power_domain: Power Domain id | |
| 324 | + * @level: SST-PP level for which caller wants to get information | |
| 325 | + * @tdp_ratio: TDP Ratio | |
| 326 | + * @base_freq_mhz: Base frequency in MHz | |
| 327 | + * @base_freq_avx2_mhz: AVX2 Base frequency in MHz | |
| 328 | + * @base_freq_avx512_mhz: AVX512 base frequency in MHz | |
| 329 | + * @base_freq_amx_mhz: AMX base frequency in MHz | |
| 330 | + * @thermal_design_power_w: Thermal design (TDP) power | |
| 331 | + * @tjunction_max_c: Max junction temperature | |
| 332 | + * @max_memory_freq_mhz: Max memory frequency in MHz | |
| 333 | + * @cooling_type: Type of cooling is used | |
| 334 | + * @p0_freq_mhz: core maximum frequency | |
| 335 | + * @p1_freq_mhz: Core TDP frequency | |
| 336 | + * @pn_freq_mhz: Core maximum efficiency frequency | |
| 337 | + * @pm_freq_mhz: Core minimum frequency | |
| 338 | + * @p0_fabric_freq_mhz: Fabric (Uncore) maximum frequency | |
| 339 | + * @p1_fabric_freq_mhz: Fabric (Uncore) TDP frequency | |
| 340 | + * @pn_fabric_freq_mhz: Fabric (Uncore) minimum efficiency frequency | |
| 341 | + * @pm_fabric_freq_mhz: Fabric (Uncore) minimum frequency | |
| 342 | + * @max_buckets: Maximum trl buckets | |
| 343 | + * @max_trl_levels: Maximum trl levels | |
| 344 | + * @bucket_core_counts[TRL_MAX_BUCKETS]: Number of cores per bucket | |
| 345 | + * @trl_freq_mhz[TRL_MAX_LEVELS][TRL_MAX_BUCKETS]: maximum frequency | |
| 346 | + * for a bucket and trl level | |
| 347 | + * | |
| 348 | + * Structure used to get information on frequencies and TDP for a SST-PP | |
| 349 | + * level using ISST_IF_GET_PERF_LEVEL_INFO. | |
| 350 | + */ | |
| 351 | +struct isst_perf_level_data_info { | |
| 352 | + __u8 socket_id; | |
| 353 | + __u8 power_domain_id; | |
| 354 | + __u16 level; | |
| 355 | + __u16 tdp_ratio; | |
| 356 | + __u16 base_freq_mhz; | |
| 357 | + __u16 base_freq_avx2_mhz; | |
| 358 | + __u16 base_freq_avx512_mhz; | |
| 359 | + __u16 base_freq_amx_mhz; | |
| 360 | + __u16 thermal_design_power_w; | |
| 361 | + __u16 tjunction_max_c; | |
| 362 | + __u16 max_memory_freq_mhz; | |
| 363 | + __u16 cooling_type; | |
| 364 | + __u16 p0_freq_mhz; | |
| 365 | + __u16 p1_freq_mhz; | |
| 366 | + __u16 pn_freq_mhz; | |
| 367 | + __u16 pm_freq_mhz; | |
| 368 | + __u16 p0_fabric_freq_mhz; | |
| 369 | + __u16 p1_fabric_freq_mhz; | |
| 370 | + __u16 pn_fabric_freq_mhz; | |
| 371 | + __u16 pm_fabric_freq_mhz; | |
| 372 | + __u16 max_buckets; | |
| 373 | + __u16 max_trl_levels; | |
| 374 | + __u16 bucket_core_counts[TRL_MAX_BUCKETS]; | |
| 375 | + __u16 trl_freq_mhz[TRL_MAX_LEVELS][TRL_MAX_BUCKETS]; | |
| 376 | +}; | |
| 377 | + | |
| 378 | +/** | |
| 379 | + * struct isst_perf_level_cpu_mask - Structure to get SST-PP level CPU mask | |
| 380 | + * @socket_id: Socket/package id | |
| 381 | + * @power_domain: Power Domain id | |
| 382 | + * @level: SST-PP level for which caller wants to get information | |
| 383 | + * @punit_cpu_map: Set to 1 if the CPU number is punit numbering not | |
| 384 | + * Linux CPU number. If 0 CPU buffer is copied to user space | |
| 385 | + * supplied cpu_buffer of size cpu_buffer_size. Punit | |
| 386 | + * cpu mask is copied to "mask" field. | |
| 387 | + * @mask: cpu mask for this PP level (punit CPU numbering) | |
| 388 | + * @cpu_buffer_size: size of cpu_buffer also used to return the copied CPU | |
| 389 | + * buffer size. | |
| 390 | + * @cpu_buffer: Buffer to copy CPU mask when punit_cpu_map is 0 | |
| 391 | + * | |
| 392 | + * Structure used to get cpumask for a SST-PP level using | |
| 393 | + * IOCTL ISST_IF_GET_PERF_LEVEL_CPU_MASK. Also used to get CPU mask for | |
| 394 | + * IOCTL ISST_IF_GET_BASE_FREQ_CPU_MASK for SST-BF. | |
| 395 | + */ | |
| 396 | +struct isst_perf_level_cpu_mask { | |
| 397 | + __u8 socket_id; | |
| 398 | + __u8 power_domain_id; | |
| 399 | + __u8 level; | |
| 400 | + __u8 punit_cpu_map; | |
| 401 | + __u64 mask; | |
| 402 | + __u16 cpu_buffer_size; | |
| 403 | + __s8 cpu_buffer[1]; | |
| 404 | +}; | |
| 405 | + | |
| 406 | +/** | |
| 407 | + * struct isst_base_freq_info - Structure to get SST-BF frequencies | |
| 408 | + * @socket_id: Socket/package id | |
| 409 | + * @power_domain: Power Domain id | |
| 410 | + * @level: SST-PP level for which caller wants to get information | |
| 411 | + * @high_base_freq_mhz: High priority CPU base frequency | |
| 412 | + * @low_base_freq_mhz: Low priority CPU base frequency | |
| 413 | + * @tjunction_max_c: Max junction temperature | |
| 414 | + * @thermal_design_power_w: Thermal design power in watts | |
| 415 | + * | |
| 416 | + * Structure used to get SST-BF information using | |
| 417 | + * IOCTL ISST_IF_GET_BASE_FREQ_INFO. | |
| 418 | + */ | |
| 419 | +struct isst_base_freq_info { | |
| 420 | + __u8 socket_id; | |
| 421 | + __u8 power_domain_id; | |
| 422 | + __u16 level; | |
| 423 | + __u16 high_base_freq_mhz; | |
| 424 | + __u16 low_base_freq_mhz; | |
| 425 | + __u16 tjunction_max_c; | |
| 426 | + __u16 thermal_design_power_w; | |
| 427 | +}; | |
| 428 | + | |
| 429 | +/** | |
| 430 | + * struct isst_turbo_freq_info - Structure to get SST-TF frequencies | |
| 431 | + * @socket_id: Socket/package id | |
| 432 | + * @power_domain: Power Domain id | |
| 433 | + * @level: SST-PP level for which caller wants to get information | |
| 434 | + * @max_clip_freqs: Maximum number of low priority core clipping frequencies | |
| 435 | + * @lp_clip_freq_mhz: Clip frequencies per trl level | |
| 436 | + * @bucket_core_counts: Maximum number of cores for a bucket | |
| 437 | + * @trl_freq_mhz: Frequencies per trl level for each bucket | |
| 438 | + * | |
| 439 | + * Structure used to get SST-TF information using | |
| 440 | + * IOCTL ISST_IF_GET_TURBO_FREQ_INFO. | |
| 441 | + */ | |
| 442 | +struct isst_turbo_freq_info { | |
| 443 | + __u8 socket_id; | |
| 444 | + __u8 power_domain_id; | |
| 445 | + __u16 level; | |
| 446 | + __u16 max_clip_freqs; | |
| 447 | + __u16 max_buckets; | |
| 448 | + __u16 max_trl_levels; | |
| 449 | + __u16 lp_clip_freq_mhz[TRL_MAX_LEVELS]; | |
| 450 | + __u16 bucket_core_counts[TRL_MAX_BUCKETS]; | |
| 451 | + __u16 trl_freq_mhz[TRL_MAX_LEVELS][TRL_MAX_BUCKETS]; | |
| 452 | +}; | |
| 453 | + | |
| 166 | 454 | #define ISST_IF_MAGIC 0xFE |
| 167 | 455 | #define ISST_IF_GET_PLATFORM_INFO _IOR(ISST_IF_MAGIC, 0, struct isst_if_platform_info *) |
| 168 | 456 | #define ISST_IF_GET_PHY_ID _IOWR(ISST_IF_MAGIC, 1, struct isst_if_cpu_map *) |
| 169 | 457 | #define ISST_IF_IO_CMD _IOW(ISST_IF_MAGIC, 2, struct isst_if_io_regs *) |
| 170 | 458 | #define ISST_IF_MBOX_COMMAND _IOWR(ISST_IF_MAGIC, 3, struct isst_if_mbox_cmds *) |
| 171 | 459 | #define ISST_IF_MSR_COMMAND _IOWR(ISST_IF_MAGIC, 4, struct isst_if_msr_cmds *) |
| 460 | + | |
| 461 | +#define ISST_IF_COUNT_TPMI_INSTANCES _IOR(ISST_IF_MAGIC, 5, struct isst_tpmi_instance_count *) | |
| 462 | +#define ISST_IF_CORE_POWER_STATE _IOWR(ISST_IF_MAGIC, 6, struct isst_core_power *) | |
| 463 | +#define ISST_IF_CLOS_PARAM _IOWR(ISST_IF_MAGIC, 7, struct isst_clos_param *) | |
| 464 | +#define ISST_IF_CLOS_ASSOC _IOWR(ISST_IF_MAGIC, 8, struct isst_if_clos_assoc_cmds *) | |
| 465 | + | |
| 466 | +#define ISST_IF_PERF_LEVELS _IOWR(ISST_IF_MAGIC, 9, struct isst_perf_level_info *) | |
| 467 | +#define ISST_IF_PERF_SET_LEVEL _IOW(ISST_IF_MAGIC, 10, struct isst_perf_level_control *) | |
| 468 | +#define ISST_IF_PERF_SET_FEATURE _IOW(ISST_IF_MAGIC, 11, struct isst_perf_feature_control *) | |
| 469 | +#define ISST_IF_GET_PERF_LEVEL_INFO _IOR(ISST_IF_MAGIC, 12, struct isst_perf_level_data_info *) | |
| 470 | +#define ISST_IF_GET_PERF_LEVEL_CPU_MASK _IOR(ISST_IF_MAGIC, 13, struct isst_perf_level_cpu_mask *) | |
| 471 | +#define ISST_IF_GET_BASE_FREQ_INFO _IOR(ISST_IF_MAGIC, 14, struct isst_base_freq_info *) | |
| 472 | +#define ISST_IF_GET_BASE_FREQ_CPU_MASK _IOR(ISST_IF_MAGIC, 15, struct isst_perf_level_cpu_mask *) | |
| 473 | +#define ISST_IF_GET_TURBO_FREQ_INFO _IOR(ISST_IF_MAGIC, 16, struct isst_turbo_freq_info *) | |
| 474 | + | |
| 172 | 475 | #endif |
| @@ -341,8 +341,13 @@ struct kvm_run { · 340 unmodified lines | ||
| 341 | 341 | __u64 nr; |
| 342 | 342 | __u64 args[6]; |
| 343 | 343 | __u64 ret; |
| 344 | − __u32 longmode; | |
| 345 | − __u32 pad; | |
| 344 | + | |
| 345 | + union { | |
| 346 | +#ifndef __KERNEL__ | |
| 347 | + __u32 longmode; | |
| 348 | +#endif | |
| 349 | + __u64 flags; | |
| 350 | + }; | |
| 346 | 351 | } hypercall; |
| 347 | 352 | /* KVM_EXIT_TPR_ACCESS */ |
| 348 | 353 | struct { |
| @@ -1184,6 +1189,7 @@ struct kvm_ppc_resize_hpt { · 835 unmodified lines | ||
| 1184 | 1189 | #define KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 224 |
| 1185 | 1190 | #define KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP 225 |
| 1186 | 1191 | #define KVM_CAP_PMU_EVENT_MASKED_EVENTS 226 |
| 1192 | +#define KVM_CAP_COUNTER_OFFSET 227 | |
| 1187 | 1193 | |
| 1188 | 1194 | #ifdef KVM_CAP_IRQ_ROUTING |
| 1189 | 1195 | |
| @@ -1451,7 +1457,7 @@ struct kvm_vfio_spapr_tce { · 261 unmodified lines | ||
| 1451 | 1457 | #define KVM_CREATE_VCPU _IO(KVMIO, 0x41) |
| 1452 | 1458 | #define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log) |
| 1453 | 1459 | #define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44) |
| 1454 | −#define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45) | |
| 1460 | +#define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45) /* deprecated */ | |
| 1455 | 1461 | #define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46, \ |
| 1456 | 1462 | struct kvm_userspace_memory_region) |
| 1457 | 1463 | #define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47) |
| @@ -1543,6 +1549,8 @@ struct kvm_s390_ucas_mapping { · 85 unmodified lines | ||
| 1543 | 1549 | #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter) |
| 1544 | 1550 | #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3) |
| 1545 | 1551 | #define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags) |
| 1552 | +/* Available with KVM_CAP_COUNTER_OFFSET */ | |
| 1553 | +#define KVM_ARM_SET_COUNTER_OFFSET _IOW(KVMIO, 0xb5, struct kvm_arm_counter_offset) | |
| 1546 | 1554 | |
| 1547 | 1555 | /* ioctl for vm fd */ |
| 1548 | 1556 | #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) |
| @@ -130,21 +130,37 @@ struct landlock_path_beneath_attr { · 129 unmodified lines | ||
| 130 | 130 | * - %LANDLOCK_ACCESS_FS_MAKE_BLOCK: Create (or rename or link) a block device. |
| 131 | 131 | * - %LANDLOCK_ACCESS_FS_MAKE_SYM: Create (or rename or link) a symbolic link. |
| 132 | 132 | * - %LANDLOCK_ACCESS_FS_REFER: Link or rename a file from or to a different |
| 133 | − * directory (i.e. reparent a file hierarchy). This access right is | |
| 134 | − * available since the second version of the Landlock ABI. This is also the | |
| 135 | − * only access right which is always considered handled by any ruleset in | |
| 136 | − * such a way that reparenting a file hierarchy is always denied by default. | |
| 137 | − * To avoid privilege escalation, it is not enough to add a rule with this | |
| 138 | − * access right. When linking or renaming a file, the destination directory | |
| 139 | − * hierarchy must also always have the same or a superset of restrictions of | |
| 140 | − * the source hierarchy. If it is not the case, or if the domain doesn't | |
| 141 | − * handle this access right, such actions are denied by default with errno | |
| 142 | − * set to ``EXDEV``. Linking also requires a ``LANDLOCK_ACCESS_FS_MAKE_*`` | |
| 143 | − * access right on the destination directory, and renaming also requires a | |
| 144 | − * ``LANDLOCK_ACCESS_FS_REMOVE_*`` access right on the source's (file or | |
| 145 | − * directory) parent. Otherwise, such actions are denied with errno set to | |
| 146 | − * ``EACCES``. The ``EACCES`` errno prevails over ``EXDEV`` to let user space | |
| 147 | − * efficiently deal with an unrecoverable error. | |
| 133 | + * directory (i.e. reparent a file hierarchy). | |
| 134 | + * | |
| 135 | + * This access right is available since the second version of the Landlock | |
| 136 | + * ABI. | |
| 137 | + * | |
| 138 | + * This is the only access right which is denied by default by any ruleset, | |
| 139 | + * even if the right is not specified as handled at ruleset creation time. | |
| 140 | + * The only way to make a ruleset grant this right is to explicitly allow it | |
| 141 | + * for a specific directory by adding a matching rule to the ruleset. | |
| 142 | + * | |
| 143 | + * In particular, when using the first Landlock ABI version, Landlock will | |
| 144 | + * always deny attempts to reparent files between different directories. | |
| 145 | + * | |
| 146 | + * In addition to the source and destination directories having the | |
| 147 | + * %LANDLOCK_ACCESS_FS_REFER access right, the attempted link or rename | |
| 148 | + * operation must meet the following constraints: | |
| 149 | + * | |
| 150 | + * * The reparented file may not gain more access rights in the destination | |
| 151 | + * directory than it previously had in the source directory. If this is | |
| 152 | + * attempted, the operation results in an ``EXDEV`` error. | |
| 153 | + * | |
| 154 | + * * When linking or renaming, the ``LANDLOCK_ACCESS_FS_MAKE_*`` right for the | |
| 155 | + * respective file type must be granted for the destination directory. | |
| 156 | + * Otherwise, the operation results in an ``EACCES`` error. | |
| 157 | + * | |
| 158 | + * * When renaming, the ``LANDLOCK_ACCESS_FS_REMOVE_*`` right for the | |
| 159 | + * respective file type must be granted for the source directory. Otherwise, | |
| 160 | + * the operation results in an ``EACCES`` error. | |
| 161 | + * | |
| 162 | + * If multiple requirements are not met, the ``EACCES`` error code takes | |
| 163 | + * precedence over ``EXDEV``. | |
| 148 | 164 | * |
| 149 | 165 | * .. warning:: |
| 150 | 166 | * |
| @@ -7,7 +7,7 @@ · 6 unmodified lines | ||
| 7 | 7 | #ifndef _LINUX_MEI_H |
| 8 | 8 | #define _LINUX_MEI_H |
| 9 | 9 | |
| 10 | −#include <linux/uuid.h> | |
| 10 | +#include <linux/mei_uuid.h> | |
| 11 | 11 | |
| 12 | 12 | /* |
| 13 | 13 | * This IOCTL is used to associate the current file descriptor with a |
| @@ -0,0 +1,29 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | +/* | |
| 3 | + * MEI UUID definition | |
| 4 | + * | |
| 5 | + * Copyright (C) 2010, Intel Corp. | |
| 6 | + * Huang Ying <ying.huang@intel.com> | |
| 7 | + */ | |
| 8 | + | |
| 9 | +#ifndef _UAPI_LINUX_MEI_UUID_H_ | |
| 10 | +#define _UAPI_LINUX_MEI_UUID_H_ | |
| 11 | + | |
| 12 | +#include <linux/types.h> | |
| 13 | + | |
| 14 | +typedef struct { | |
| 15 | + __u8 b[16]; | |
| 16 | +} uuid_le; | |
| 17 | + | |
| 18 | +#define UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ | |
| 19 | +((uuid_le) \ | |
| 20 | +{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ | |
| 21 | + (b) & 0xff, ((b) >> 8) & 0xff, \ | |
| 22 | + (c) & 0xff, ((c) >> 8) & 0xff, \ | |
| 23 | + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) | |
| 24 | + | |
| 25 | +#define NULL_UUID_LE \ | |
| 26 | + UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \ | |
| 27 | + 0x00, 0x00, 0x00, 0x00) | |
| 28 | + | |
| 29 | +#endif /* _UAPI_LINUX_MEI_UUID_H_ */ | |
| @@ -11,6 +11,8 @@ · 10 unmodified lines | ||
| 11 | 11 | * Cleanup PARANOIA usage & code. |
| 12 | 12 | * 2004/02/19 Paul Clements |
| 13 | 13 | * Removed PARANOIA, plus various cleanup and comments |
| 14 | + * 2023 Copyright Red Hat | |
| 15 | + * Link to userspace extensions, favor cookie over handle. | |
| 14 | 16 | */ |
| 15 | 17 | |
| 16 | 18 | #ifndef _UAPILINUX_NBD_H |
| @@ -30,12 +32,18 @@ · 13 unmodified lines | ||
| 30 | 32 | #define NBD_SET_TIMEOUT _IO( 0xab, 9 ) |
| 31 | 33 | #define NBD_SET_FLAGS _IO( 0xab, 10) |
| 32 | 34 | |
| 35 | +/* | |
| 36 | + * See also https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md | |
| 37 | + * for additional userspace extensions not yet utilized in the kernel module. | |
| 38 | + */ | |
| 39 | + | |
| 33 | 40 | enum { |
| 34 | 41 | NBD_CMD_READ = 0, |
| 35 | 42 | NBD_CMD_WRITE = 1, |
| 36 | 43 | NBD_CMD_DISC = 2, |
| 37 | 44 | NBD_CMD_FLUSH = 3, |
| 38 | 45 | NBD_CMD_TRIM = 4 |
| 46 | + /* userspace defines additional extension commands */ | |
| 39 | 47 | }; |
| 40 | 48 | |
| 41 | 49 | /* values for flags field, these are server interaction specific. */ |
| @@ -64,15 +72,19 @@ enum { · 22 unmodified lines | ||
| 64 | 72 | #define NBD_REQUEST_MAGIC 0x25609513 |
| 65 | 73 | #define NBD_REPLY_MAGIC 0x67446698 |
| 66 | 74 | /* Do *not* use magics: 0x12560953 0x96744668. */ |
| 75 | +/* magic 0x668e33ef for structured reply not supported by kernel yet */ | |
| 67 | 76 | |
| 68 | 77 | /* |
| 69 | 78 | * This is the packet used for communication between client and |
| 70 | 79 | * server. All data are in network byte order. |
| 71 | 80 | */ |
| 72 | 81 | struct nbd_request { |
| 73 | − __be32 magic; | |
| 74 | − __be32 type; /* == READ || == WRITE */ | |
| 75 | − char handle[8]; | |
| 82 | + __be32 magic; /* NBD_REQUEST_MAGIC */ | |
| 83 | + __be32 type; /* See NBD_CMD_* */ | |
| 84 | + union { | |
| 85 | + __be64 cookie; /* Opaque identifier for request */ | |
| 86 | + char handle[8]; /* older spelling of cookie */ | |
| 87 | + }; | |
| 76 | 88 | __be64 from; |
| 77 | 89 | __be32 len; |
| 78 | 90 | } __attribute__((packed)); |
| @@ -82,8 +94,11 @@ struct nbd_request { · 3 unmodified lines | ||
| 82 | 94 | * it has completed an I/O request (or an error occurs). |
| 83 | 95 | */ |
| 84 | 96 | struct nbd_reply { |
| 85 | − __be32 magic; | |
| 97 | + __be32 magic; /* NBD_REPLY_MAGIC */ | |
| 86 | 98 | __be32 error; /* 0 = ok, else error */ |
| 87 | − char handle[8]; /* handle you got from request */ | |
| 99 | + union { | |
| 100 | + __be64 cookie; /* Opaque identifier from request */ | |
| 101 | + char handle[8]; /* older spelling of cookie */ | |
| 102 | + }; | |
| 88 | 103 | }; |
| 89 | 104 | #endif /* _UAPILINUX_NBD_H */ |
| @@ -1,4 +1,4 @@ | ||
| 1 | −/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause */ | |
| 1 | +/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | |
| 2 | 2 | /* Do not edit directly, auto-generated from: */ |
| 3 | 3 | /* Documentation/netlink/specs/netdev.yaml */ |
| 4 | 4 | /* YNL-GEN uapi header */ |
| @@ -33,6 +33,8 @@ enum netdev_xdp_act { · 28 unmodified lines | ||
| 33 | 33 | NETDEV_XDP_ACT_HW_OFFLOAD = 16, |
| 34 | 34 | NETDEV_XDP_ACT_RX_SG = 32, |
| 35 | 35 | NETDEV_XDP_ACT_NDO_XMIT_SG = 64, |
| 36 | + | |
| 37 | + NETDEV_XDP_ACT_MASK = 127, | |
| 36 | 38 | }; |
| 37 | 39 | |
| 38 | 40 | enum { |
| @@ -685,7 +685,7 @@ enum nft_range_ops { · 684 unmodified lines | ||
| 685 | 685 | * enum nft_range_attributes - nf_tables range expression netlink attributes |
| 686 | 686 | * |
| 687 | 687 | * @NFTA_RANGE_SREG: source register of data to compare (NLA_U32: nft_registers) |
| 688 | − * @NFTA_RANGE_OP: cmp operation (NLA_U32: nft_cmp_ops) | |
| 688 | + * @NFTA_RANGE_OP: cmp operation (NLA_U32: nft_range_ops) | |
| 689 | 689 | * @NFTA_RANGE_FROM_DATA: data range from (NLA_NESTED: nft_data_attributes) |
| 690 | 690 | * @NFTA_RANGE_TO_DATA: data range to (NLA_NESTED: nft_data_attributes) |
| 691 | 691 | */ |
| @@ -878,7 +878,7 @@ enum nft_exthdr_op { · 186 unmodified lines | ||
| 878 | 878 | * @NFTA_EXTHDR_LEN: extension header length (NLA_U32) |
| 879 | 879 | * @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32) |
| 880 | 880 | * @NFTA_EXTHDR_OP: option match type (NLA_U32) |
| 881 | − * @NFTA_EXTHDR_SREG: option match type (NLA_U32) | |
| 881 | + * @NFTA_EXTHDR_SREG: source register (NLA_U32: nft_registers) | |
| 882 | 882 | */ |
| 883 | 883 | enum nft_exthdr_attributes { |
| 884 | 884 | NFTA_EXTHDR_UNSPEC, |
| @@ -931,6 +931,7 @@ enum nft_exthdr_attributes { · 46 unmodified lines | ||
| 931 | 931 | * @NFT_META_TIME_HOUR: hour of day (in seconds) |
| 932 | 932 | * @NFT_META_SDIF: slave device interface index |
| 933 | 933 | * @NFT_META_SDIFNAME: slave device interface name |
| 934 | + * @NFT_META_BRI_BROUTE: packet br_netfilter_broute bit | |
| 934 | 935 | */ |
| 935 | 936 | enum nft_meta_keys { |
| 936 | 937 | NFT_META_LEN, |
| @@ -969,6 +970,7 @@ enum nft_meta_keys { · 32 unmodified lines | ||
| 969 | 970 | NFT_META_TIME_HOUR, |
| 970 | 971 | NFT_META_SDIF, |
| 971 | 972 | NFT_META_SDIFNAME, |
| 973 | + NFT_META_BRI_BROUTE, | |
| 972 | 974 | __NFT_META_IIFTYPE, |
| 973 | 975 | }; |
| 974 | 976 | |
| @@ -1260,10 +1262,10 @@ enum nft_last_attributes { · 285 unmodified lines | ||
| 1260 | 1262 | /** |
| 1261 | 1263 | * enum nft_log_attributes - nf_tables log expression netlink attributes |
| 1262 | 1264 | * |
| 1263 | − * @NFTA_LOG_GROUP: netlink group to send messages to (NLA_U32) | |
| 1265 | + * @NFTA_LOG_GROUP: netlink group to send messages to (NLA_U16) | |
| 1264 | 1266 | * @NFTA_LOG_PREFIX: prefix to prepend to log messages (NLA_STRING) |
| 1265 | 1267 | * @NFTA_LOG_SNAPLEN: length of payload to include in netlink message (NLA_U32) |
| 1266 | − * @NFTA_LOG_QTHRESHOLD: queue threshold (NLA_U32) | |
| 1268 | + * @NFTA_LOG_QTHRESHOLD: queue threshold (NLA_U16) | |
| 1267 | 1269 | * @NFTA_LOG_LEVEL: log level (NLA_U32) |
| 1268 | 1270 | * @NFTA_LOG_FLAGS: logging flags (NLA_U32) |
| 1269 | 1271 | */ |
| @@ -32,8 +32,12 @@ enum nfnl_hook_attributes { · 31 unmodified lines | ||
| 32 | 32 | /** |
| 33 | 33 | * enum nfnl_hook_chain_info_attributes - chain description |
| 34 | 34 | * |
| 35 | − * NFNLA_HOOK_INFO_DESC: nft chain and table name (enum nft_table_attributes) (NLA_NESTED) | |
| 36 | − * NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32) | |
| 35 | + * @NFNLA_HOOK_INFO_DESC: nft chain and table name (NLA_NESTED) | |
| 36 | + * @NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32) | |
| 37 | + * | |
| 38 | + * NFNLA_HOOK_INFO_DESC depends on NFNLA_HOOK_INFO_TYPE value: | |
| 39 | + * NFNL_HOOK_TYPE_NFTABLES: enum nft_table_attributes | |
| 40 | + * NFNL_HOOK_TYPE_BPF: enum nfnl_hook_bpf_attributes | |
| 37 | 41 | */ |
| 38 | 42 | enum nfnl_hook_chain_info_attributes { |
| 39 | 43 | NFNLA_HOOK_INFO_UNSPEC, |
| @@ -55,10 +59,24 @@ enum nfnl_hook_chain_desc_attributes { · 15 unmodified lines | ||
| 55 | 59 | /** |
| 56 | 60 | * enum nfnl_hook_chaintype - chain type |
| 57 | 61 | * |
| 58 | − * @NFNL_HOOK_TYPE_NFTABLES nf_tables base chain | |
| 62 | + * @NFNL_HOOK_TYPE_NFTABLES: nf_tables base chain | |
| 63 | + * @NFNL_HOOK_TYPE_BPF: bpf program | |
| 59 | 64 | */ |
| 60 | 65 | enum nfnl_hook_chaintype { |
| 61 | 66 | NFNL_HOOK_TYPE_NFTABLES = 0x1, |
| 67 | + NFNL_HOOK_TYPE_BPF, | |
| 68 | +}; | |
| 69 | + | |
| 70 | +/** | |
| 71 | + * enum nfnl_hook_bpf_attributes - bpf prog description | |
| 72 | + * | |
| 73 | + * @NFNLA_HOOK_BPF_ID: bpf program id (NLA_U32) | |
| 74 | + */ | |
| 75 | +enum nfnl_hook_bpf_attributes { | |
| 76 | + NFNLA_HOOK_BPF_UNSPEC, | |
| 77 | + NFNLA_HOOK_BPF_ID, | |
| 78 | + __NFNLA_HOOK_BPF_MAX, | |
| 62 | 79 | }; |
| 80 | +#define NFNLA_HOOK_BPF_MAX (__NFNLA_HOOK_BPF_MAX - 1) | |
| 63 | 81 | |
| 64 | 82 | #endif /* _NFNL_HOOK_H */ |
| @@ -62,6 +62,7 @@ enum nfqnl_attr_type { · 61 unmodified lines | ||
| 62 | 62 | NFQA_VLAN, /* nested attribute: packet vlan info */ |
| 63 | 63 | NFQA_L2HDR, /* full L2 header */ |
| 64 | 64 | NFQA_PRIORITY, /* skb->priority */ |
| 65 | + NFQA_CGROUP_CLASSID, /* __u32 cgroup classid */ | |
| 65 | 66 | |
| 66 | 67 | __NFQA_MAX |
| 67 | 68 | }; |
| @@ -62,5 +62,18 @@ · 61 unmodified lines | ||
| 62 | 62 | | NFSEXP_ALLSQUASH \ |
| 63 | 63 | | NFSEXP_INSECURE_PORT) |
| 64 | 64 | |
| 65 | +/* | |
| 66 | + * Transport layer security policies that are permitted to access | |
| 67 | + * an export | |
| 68 | + */ | |
| 69 | +#define NFSEXP_XPRTSEC_NONE 0x0001 | |
| 70 | +#define NFSEXP_XPRTSEC_TLS 0x0002 | |
| 71 | +#define NFSEXP_XPRTSEC_MTLS 0x0004 | |
| 72 | + | |
| 73 | +#define NFSEXP_XPRTSEC_NUM (3) | |
| 74 | + | |
| 75 | +#define NFSEXP_XPRTSEC_ALL (NFSEXP_XPRTSEC_NONE | \ | |
| 76 | + NFSEXP_XPRTSEC_TLS | \ | |
| 77 | + NFSEXP_XPRTSEC_MTLS) | |
| 65 | 78 | |
| 66 | 79 | #endif /* _UAPINFSD_EXPORT_H */ |
| @@ -1299,6 +1299,16 @@ · 1298 unmodified lines | ||
| 1299 | 1299 | * @NL80211_CMD_MODIFY_LINK_STA: Modify a link of an MLD station |
| 1300 | 1300 | * @NL80211_CMD_REMOVE_LINK_STA: Remove a link of an MLD station |
| 1301 | 1301 | * |
| 1302 | + * @NL80211_CMD_SET_HW_TIMESTAMP: Enable/disable HW timestamping of Timing | |
| 1303 | + * measurement and Fine timing measurement frames. If %NL80211_ATTR_MAC | |
| 1304 | + * is included, enable/disable HW timestamping only for frames to/from the | |
| 1305 | + * specified MAC address. Otherwise enable/disable HW timestamping for | |
| 1306 | + * all TM/FTM frames (including ones that were enabled with specific MAC | |
| 1307 | + * address). If %NL80211_ATTR_HW_TIMESTAMP_ENABLED is not included, disable | |
| 1308 | + * HW timestamping. | |
| 1309 | + * The number of peers that HW timestamping can be enabled for concurrently | |
| 1310 | + * is indicated by %NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS. | |
| 1311 | + * | |
| 1302 | 1312 | * @NL80211_CMD_MAX: highest used command number |
| 1303 | 1313 | * @__NL80211_CMD_AFTER_LAST: internal use |
| 1304 | 1314 | */ |
| @@ -1550,6 +1560,8 @@ enum nl80211_commands { · 245 unmodified lines | ||
| 1550 | 1560 | NL80211_CMD_MODIFY_LINK_STA, |
| 1551 | 1561 | NL80211_CMD_REMOVE_LINK_STA, |
| 1552 | 1562 | |
| 1563 | + NL80211_CMD_SET_HW_TIMESTAMP, | |
| 1564 | + | |
| 1553 | 1565 | /* add new commands above here */ |
| 1554 | 1566 | |
| 1555 | 1567 | /* used to define NL80211_CMD_MAX below */ |
| @@ -2775,6 +2787,24 @@ enum nl80211_commands { · 1219 unmodified lines | ||
| 2775 | 2787 | * indicates that the sub-channel is punctured. Higher 16 bits are |
| 2776 | 2788 | * reserved. |
| 2777 | 2789 | * |
| 2790 | + * @NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS: Maximum number of peers that HW | |
| 2791 | + * timestamping can be enabled for concurrently (u16), a wiphy attribute. | |
| 2792 | + * A value of 0xffff indicates setting for all peers (i.e. not specifying | |
| 2793 | + * an address with %NL80211_CMD_SET_HW_TIMESTAMP) is supported. | |
| 2794 | + * @NL80211_ATTR_HW_TIMESTAMP_ENABLED: Indicates whether HW timestamping should | |
| 2795 | + * be enabled or not (flag attribute). | |
| 2796 | + * | |
| 2797 | + * @NL80211_ATTR_EMA_RNR_ELEMS: Optional nested attribute for | |
| 2798 | + * reduced neighbor report (RNR) elements. This attribute can be used | |
| 2799 | + * only when NL80211_MBSSID_CONFIG_ATTR_EMA is enabled. | |
| 2800 | + * Userspace is responsible for splitting the RNR into multiple | |
| 2801 | + * elements such that each element excludes the non-transmitting | |
| 2802 | + * profiles already included in the MBSSID element | |
| 2803 | + * (%NL80211_ATTR_MBSSID_ELEMS) at the same index. Each EMA beacon | |
| 2804 | + * will be generated by adding MBSSID and RNR elements at the same | |
| 2805 | + * index. If the userspace includes more RNR elements than number of | |
| 2806 | + * MBSSID elements then these will be added in every EMA beacon. | |
| 2807 | + * | |
| 2778 | 2808 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2779 | 2809 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 2780 | 2810 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -3306,6 +3336,11 @@ enum nl80211_attrs { · 525 unmodified lines | ||
| 3306 | 3336 | |
| 3307 | 3337 | NL80211_ATTR_PUNCT_BITMAP, |
| 3308 | 3338 | |
| 3339 | + NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS, | |
| 3340 | + NL80211_ATTR_HW_TIMESTAMP_ENABLED, | |
| 3341 | + | |
| 3342 | + NL80211_ATTR_EMA_RNR_ELEMS, | |
| 3343 | + | |
| 3309 | 3344 | /* add attributes here, update the policy in nl80211.c */ |
| 3310 | 3345 | |
| 3311 | 3346 | __NL80211_ATTR_AFTER_LAST, |
| @@ -4026,6 +4061,10 @@ enum nl80211_band_iftype_attr { · 714 unmodified lines | ||
| 4026 | 4061 | * @NL80211_BAND_ATTR_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes |
| 4027 | 4062 | * the allowed channel bandwidth configurations. |
| 4028 | 4063 | * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13. |
| 4064 | + * @NL80211_BAND_ATTR_S1G_MCS_NSS_SET: S1G capabilities, supported S1G-MCS and NSS | |
| 4065 | + * set subfield, as in the S1G information IE, 5 bytes | |
| 4066 | + * @NL80211_BAND_ATTR_S1G_CAPA: S1G capabilities information subfield as in the | |
| 4067 | + * S1G information IE, 10 bytes | |
| 4029 | 4068 | * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined |
| 4030 | 4069 | * @__NL80211_BAND_ATTR_AFTER_LAST: internal use |
| 4031 | 4070 | */ |
| @@ -4046,6 +4085,9 @@ enum nl80211_band_attr { · 14 unmodified lines | ||
| 4046 | 4085 | NL80211_BAND_ATTR_EDMG_CHANNELS, |
| 4047 | 4086 | NL80211_BAND_ATTR_EDMG_BW_CONFIG, |
| 4048 | 4087 | |
| 4088 | + NL80211_BAND_ATTR_S1G_MCS_NSS_SET, | |
| 4089 | + NL80211_BAND_ATTR_S1G_CAPA, | |
| 4090 | + | |
| 4049 | 4091 | /* keep last */ |
| 4050 | 4092 | __NL80211_BAND_ATTR_AFTER_LAST, |
| 4051 | 4093 | NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 |
| @@ -6326,6 +6368,10 @@ enum nl80211_feature_flags { · 2274 unmodified lines | ||
| 6326 | 6368 | * @NL80211_EXT_FEATURE_SECURE_NAN: Device supports NAN Pairing which enables |
| 6327 | 6369 | * authentication, data encryption and message integrity. |
| 6328 | 6370 | * |
| 6371 | + * @NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA: Device supports randomized TA | |
| 6372 | + * in authentication and deauthentication frames sent to unassociated peer | |
| 6373 | + * using @NL80211_CMD_FRAME. | |
| 6374 | + * | |
| 6329 | 6375 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 6330 | 6376 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| 6331 | 6377 | */ |
| @@ -6396,6 +6442,7 @@ enum nl80211_ext_feature_index { · 64 unmodified lines | ||
| 6396 | 6442 | NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE, |
| 6397 | 6443 | NL80211_EXT_FEATURE_PUNCT, |
| 6398 | 6444 | NL80211_EXT_FEATURE_SECURE_NAN, |
| 6445 | + NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA, | |
| 6399 | 6446 | |
| 6400 | 6447 | /* add new features before the definition below */ |
| 6401 | 6448 | NUM_NL80211_EXT_FEATURES, |
| @@ -6510,8 +6557,16 @@ enum nl80211_timeout_reason { · 108 unmodified lines | ||
| 6510 | 6557 | * @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with |
| 6511 | 6558 | * %NL80211_ATTR_SCAN_FREQ_KHZ. This also means |
| 6512 | 6559 | * %NL80211_ATTR_SCAN_FREQUENCIES will not be included. |
| 6513 | − * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for colocated APs reported by | |
| 6514 | − * 2.4/5 GHz APs | |
| 6560 | + * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for collocated APs reported by | |
| 6561 | + * 2.4/5 GHz APs. When the flag is set, the scan logic will use the | |
| 6562 | + * information from the RNR element found in beacons/probe responses | |
| 6563 | + * received on the 2.4/5 GHz channels to actively scan only the 6GHz | |
| 6564 | + * channels on which APs are expected to be found. Note that when not set, | |
| 6565 | + * the scan logic would scan all 6GHz channels, but since transmission of | |
| 6566 | + * probe requests on non PSC channels is limited, it is highly likely that | |
| 6567 | + * these channels would passively be scanned. Also note that when the flag | |
| 6568 | + * is set, in addition to the colocated APs, PSC channels would also be | |
| 6569 | + * scanned if the user space has asked for it. | |
| 6515 | 6570 | */ |
| 6516 | 6571 | enum nl80211_scan_flags { |
| 6517 | 6572 | NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, |
| @@ -90,6 +90,9 @@ typedef enum { · 89 unmodified lines | ||
| 90 | 90 | /* Flags for block transfer operations. */ |
| 91 | 91 | #define PARPORT_EPP_FAST (1<<0) /* Unreliable counts. */ |
| 92 | 92 | #define PARPORT_W91284PIC (1<<1) /* have a Warp9 w91284pic in the device */ |
| 93 | +#define PARPORT_EPP_FAST_32 PARPORT_EPP_FAST /* 32-bit EPP transfers */ | |
| 94 | +#define PARPORT_EPP_FAST_16 (1<<2) /* 16-bit EPP transfers */ | |
| 95 | +#define PARPORT_EPP_FAST_8 (1<<3) /* 8-bit EPP transfers */ | |
| 93 | 96 | |
| 94 | 97 | /* The rest is for the kernel only */ |
| 95 | 98 | #endif /* _UAPI_PARPORT_H_ */ |
| @@ -719,6 +719,11 @@ enum { · 718 unmodified lines | ||
| 719 | 719 | |
| 720 | 720 | #define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1) |
| 721 | 721 | |
| 722 | +enum { | |
| 723 | + TC_FP_EXPRESS = 1, | |
| 724 | + TC_FP_PREEMPTIBLE = 2, | |
| 725 | +}; | |
| 726 | + | |
| 722 | 727 | struct tc_mqprio_qopt { |
| 723 | 728 | __u8 num_tc; |
| 724 | 729 | __u8 prio_tc_map[TC_QOPT_BITMASK + 1]; |
| @@ -732,12 +737,23 @@ struct tc_mqprio_qopt { · 7 unmodified lines | ||
| 732 | 737 | #define TC_MQPRIO_F_MIN_RATE 0x4 |
| 733 | 738 | #define TC_MQPRIO_F_MAX_RATE 0x8 |
| 734 | 739 | |
| 740 | +enum { | |
| 741 | + TCA_MQPRIO_TC_ENTRY_UNSPEC, | |
| 742 | + TCA_MQPRIO_TC_ENTRY_INDEX, /* u32 */ | |
| 743 | + TCA_MQPRIO_TC_ENTRY_FP, /* u32 */ | |
| 744 | + | |
| 745 | + /* add new constants above here */ | |
| 746 | + __TCA_MQPRIO_TC_ENTRY_CNT, | |
| 747 | + TCA_MQPRIO_TC_ENTRY_MAX = (__TCA_MQPRIO_TC_ENTRY_CNT - 1) | |
| 748 | +}; | |
| 749 | + | |
| 735 | 750 | enum { |
| 736 | 751 | TCA_MQPRIO_UNSPEC, |
| 737 | 752 | TCA_MQPRIO_MODE, |
| 738 | 753 | TCA_MQPRIO_SHAPER, |
| 739 | 754 | TCA_MQPRIO_MIN_RATE64, |
| 740 | 755 | TCA_MQPRIO_MAX_RATE64, |
| 756 | + TCA_MQPRIO_TC_ENTRY, | |
| 741 | 757 | __TCA_MQPRIO_MAX, |
| 742 | 758 | }; |
| 743 | 759 | |
| @@ -1236,6 +1252,7 @@ enum { · 492 unmodified lines | ||
| 1236 | 1252 | TCA_TAPRIO_TC_ENTRY_UNSPEC, |
| 1237 | 1253 | TCA_TAPRIO_TC_ENTRY_INDEX, /* u32 */ |
| 1238 | 1254 | TCA_TAPRIO_TC_ENTRY_MAX_SDU, /* u32 */ |
| 1255 | + TCA_TAPRIO_TC_ENTRY_FP, /* u32 */ | |
| 1239 | 1256 | |
| 1240 | 1257 | /* add new constants above here */ |
| 1241 | 1258 | __TCA_TAPRIO_TC_ENTRY_CNT, |
| @@ -29,17 +29,6 @@ · 28 unmodified lines | ||
| 29 | 29 | */ |
| 30 | 30 | #define PACKET_WAIT_TIME (HZ * 5 / 1000) |
| 31 | 31 | |
| 32 | −/* | |
| 33 | − * use drive write caching -- we need deferred error handling to be | |
| 34 | − * able to successfully recover with this option (drive will return good | |
| 35 | − * status as soon as the cdb is validated). | |
| 36 | − */ | |
| 37 | −#if defined(CONFIG_CDROM_PKTCDVD_WCACHE) | |
| 38 | −#define USE_WCACHING 1 | |
| 39 | −#else | |
| 40 | −#define USE_WCACHING 0 | |
| 41 | −#endif | |
| 42 | − | |
| 43 | 32 | /* |
| 44 | 33 | * No user-servicable parts beyond this point -> |
| 45 | 34 | */ |
| @@ -290,4 +290,8 @@ struct prctl_mm_map { · 289 unmodified lines | ||
| 290 | 290 | #define PR_SET_VMA 0x53564d41 |
| 291 | 291 | # define PR_SET_VMA_ANON_NAME 0 |
| 292 | 292 | |
| 293 | +#define PR_GET_AUXV 0x41555856 | |
| 294 | + | |
| 295 | +#define PR_SET_MEMORY_MERGE 67 | |
| 296 | +#define PR_GET_MEMORY_MERGE 68 | |
| 293 | 297 | #endif /* _LINUX_PRCTL_H */ |
| @@ -36,6 +36,13 @@ enum { · 35 unmodified lines | ||
| 36 | 36 | * SEV Firmware status code |
| 37 | 37 | */ |
| 38 | 38 | typedef enum { |
| 39 | + /* | |
| 40 | + * This error code is not in the SEV spec. Its purpose is to convey that | |
| 41 | + * there was an error that prevented the SEV firmware from being called. | |
| 42 | + * The SEV API error codes are 16 bits, so the -1 value will not overlap | |
| 43 | + * with possible values from the specification. | |
| 44 | + */ | |
| 45 | + SEV_RET_NO_FW_CALL = -1, | |
| 39 | 46 | SEV_RET_SUCCESS = 0, |
| 40 | 47 | SEV_RET_INVALID_PLATFORM_STATE, |
| 41 | 48 | SEV_RET_INVALID_GUEST_STATE, |
| @@ -112,6 +112,36 @@ struct ptrace_rseq_configuration { · 111 unmodified lines | ||
| 112 | 112 | __u32 pad; |
| 113 | 113 | }; |
| 114 | 114 | |
| 115 | +#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG 0x4210 | |
| 116 | +#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG 0x4211 | |
| 117 | + | |
| 118 | +/* | |
| 119 | + * struct ptrace_sud_config - Per-task configuration for Syscall User Dispatch | |
| 120 | + * @mode: One of PR_SYS_DISPATCH_ON or PR_SYS_DISPATCH_OFF | |
| 121 | + * @selector: Tracees user virtual address of SUD selector | |
| 122 | + * @offset: SUD exclusion area (virtual address) | |
| 123 | + * @len: Length of SUD exclusion area | |
| 124 | + * | |
| 125 | + * Used to get/set the syscall user dispatch configuration for a tracee. | |
| 126 | + * Selector is optional (may be NULL), and if invalid will produce | |
| 127 | + * a SIGSEGV in the tracee upon first access. | |
| 128 | + * | |
| 129 | + * If mode is PR_SYS_DISPATCH_ON, syscall dispatch will be enabled. If | |
| 130 | + * PR_SYS_DISPATCH_OFF, syscall dispatch will be disabled and all other | |
| 131 | + * parameters must be 0. The value in *selector (if not null), also determines | |
| 132 | + * whether syscall dispatch will occur. | |
| 133 | + * | |
| 134 | + * The Syscall User Dispatch Exclusion area described by offset/len is the | |
| 135 | + * virtual address space from which syscalls will not produce a user | |
| 136 | + * dispatch. | |
| 137 | + */ | |
| 138 | +struct ptrace_sud_config { | |
| 139 | + __u64 mode; | |
| 140 | + __u64 selector; | |
| 141 | + __u64 offset; | |
| 142 | + __u64 len; | |
| 143 | +}; | |
| 144 | + | |
| 115 | 145 | /* |
| 116 | 146 | * These values are stored in task->ptrace_message |
| 117 | 147 | * by ptrace_stop to describe the current syscall-stop. |
| @@ -789,6 +789,7 @@ enum { · 788 unmodified lines | ||
| 789 | 789 | TCA_ROOT_FLAGS, |
| 790 | 790 | TCA_ROOT_COUNT, |
| 791 | 791 | TCA_ROOT_TIME_DELTA, /* in msecs */ |
| 792 | + TCA_ROOT_EXT_WARN_MSG, | |
| 792 | 793 | __TCA_ROOT_MAX, |
| 793 | 794 | #define TCA_ROOT_MAX (__TCA_ROOT_MAX - 1) |
| 794 | 795 | }; |
| @@ -1211,7 +1211,9 @@ enum sctp_sched_type { · 1210 unmodified lines | ||
| 1211 | 1211 | SCTP_SS_DEFAULT = SCTP_SS_FCFS, |
| 1212 | 1212 | SCTP_SS_PRIO, |
| 1213 | 1213 | SCTP_SS_RR, |
| 1214 | − SCTP_SS_MAX = SCTP_SS_RR | |
| 1214 | + SCTP_SS_FC, | |
| 1215 | + SCTP_SS_WFQ, | |
| 1216 | + SCTP_SS_MAX = SCTP_SS_WFQ | |
| 1215 | 1217 | }; |
| 1216 | 1218 | |
| 1217 | 1219 | /* Probe Interval socket option */ |
| @@ -78,6 +78,16 @@ struct opal_user_lr_setup { · 77 unmodified lines | ||
| 78 | 78 | struct opal_session_info session; |
| 79 | 79 | }; |
| 80 | 80 | |
| 81 | +struct opal_lr_status { | |
| 82 | + struct opal_session_info session; | |
| 83 | + __u64 range_start; | |
| 84 | + __u64 range_length; | |
| 85 | + __u32 RLE; /* Read Lock enabled */ | |
| 86 | + __u32 WLE; /* Write Lock Enabled */ | |
| 87 | + __u32 l_state; | |
| 88 | + __u8 align[4]; | |
| 89 | +}; | |
| 90 | + | |
| 81 | 91 | struct opal_lock_unlock { |
| 82 | 92 | struct opal_session_info session; |
| 83 | 93 | __u32 l_state; |
| @@ -151,6 +161,18 @@ struct opal_status { · 67 unmodified lines | ||
| 151 | 161 | __u32 reserved; |
| 152 | 162 | }; |
| 153 | 163 | |
| 164 | +/* | |
| 165 | + * Geometry Reporting per TCG Storage OPAL SSC | |
| 166 | + * section 3.1.1.4 | |
| 167 | + */ | |
| 168 | +struct opal_geometry { | |
| 169 | + __u8 align; | |
| 170 | + __u32 logical_block_size; | |
| 171 | + __u64 alignment_granularity; | |
| 172 | + __u64 lowest_aligned_lba; | |
| 173 | + __u8 __align[3]; | |
| 174 | +}; | |
| 175 | + | |
| 154 | 176 | #define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock) |
| 155 | 177 | #define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock) |
| 156 | 178 | #define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key) |
| @@ -168,5 +190,7 @@ struct opal_status { · 11 unmodified lines | ||
| 168 | 190 | #define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr) |
| 169 | 191 | #define IOC_OPAL_GENERIC_TABLE_RW _IOW('p', 235, struct opal_read_write_table) |
| 170 | 192 | #define IOC_OPAL_GET_STATUS _IOR('p', 236, struct opal_status) |
| 193 | +#define IOC_OPAL_GET_LR_STATUS _IOW('p', 237, struct opal_lr_status) | |
| 194 | +#define IOC_OPAL_GET_GEOMETRY _IOR('p', 238, struct opal_geometry) | |
| 171 | 195 | |
| 172 | 196 | #endif /* _UAPI_SED_OPAL_H */ |
| @@ -52,8 +52,14 @@ struct snp_guest_request_ioctl { · 51 unmodified lines | ||
| 52 | 52 | __u64 req_data; |
| 53 | 53 | __u64 resp_data; |
| 54 | 54 | |
| 55 | − /* firmware error code on failure (see psp-sev.h) */ | |
| 56 | − __u64 fw_err; | |
| 55 | + /* bits[63:32]: VMM error code, bits[31:0] firmware error code (see psp-sev.h) */ | |
| 56 | + union { | |
| 57 | + __u64 exitinfo2; | |
| 58 | + struct { | |
| 59 | + __u32 fw_error; | |
| 60 | + __u32 vmm_error; | |
| 61 | + }; | |
| 62 | + }; | |
| 57 | 63 | }; |
| 58 | 64 | |
| 59 | 65 | struct snp_ext_report_req { |
| @@ -77,4 +83,12 @@ struct snp_ext_report_req { · 17 unmodified lines | ||
| 77 | 83 | /* Get SNP extended report as defined in the GHCB specification version 2. */ |
| 78 | 84 | #define SNP_GET_EXT_REPORT _IOWR(SNP_GUEST_REQ_IOC_TYPE, 0x2, struct snp_guest_request_ioctl) |
| 79 | 85 | |
| 86 | +/* Guest message request EXIT_INFO_2 constants */ | |
| 87 | +#define SNP_GUEST_FW_ERR_MASK GENMASK_ULL(31, 0) | |
| 88 | +#define SNP_GUEST_VMM_ERR_SHIFT 32 | |
| 89 | +#define SNP_GUEST_VMM_ERR(x) (((u64)x) << SNP_GUEST_VMM_ERR_SHIFT) | |
| 90 | + | |
| 91 | +#define SNP_GUEST_VMM_ERR_INVALID_LEN 1 | |
| 92 | +#define SNP_GUEST_VMM_ERR_BUSY 2 | |
| 93 | + | |
| 80 | 94 | #endif /* __UAPI_LINUX_SEV_GUEST_H_ */ |
| @@ -16,12 +16,16 @@ · 15 unmodified lines | ||
| 16 | 16 | #include <linux/types.h> |
| 17 | 17 | |
| 18 | 18 | /** |
| 19 | − * struct sync_merge_data - data passed to merge ioctl | |
| 19 | + * struct sync_merge_data - SYNC_IOC_MERGE: merge two fences | |
| 20 | 20 | * @name: name of new fence |
| 21 | 21 | * @fd2: file descriptor of second fence |
| 22 | 22 | * @fence: returns the fd of the new fence to userspace |
| 23 | 23 | * @flags: merge_data flags |
| 24 | 24 | * @pad: padding for 64-bit alignment, should always be zero |
| 25 | + * | |
| 26 | + * Creates a new fence containing copies of the sync_pts in both | |
| 27 | + * the calling fd and sync_merge_data.fd2. Returns the new fence's | |
| 28 | + * fd in sync_merge_data.fence | |
| 25 | 29 | */ |
| 26 | 30 | struct sync_merge_data { |
| 27 | 31 | char name[32]; |
| @@ -34,8 +38,8 @@ struct sync_merge_data { · 6 unmodified lines | ||
| 34 | 38 | /** |
| 35 | 39 | * struct sync_fence_info - detailed fence information |
| 36 | 40 | * @obj_name: name of parent sync_timeline |
| 37 | −* @driver_name: name of driver implementing the parent | |
| 38 | −* @status: status of the fence 0:active 1:signaled <0:error | |
| 41 | + * @driver_name: name of driver implementing the parent | |
| 42 | + * @status: status of the fence 0:active 1:signaled <0:error | |
| 39 | 43 | * @flags: fence_info flags |
| 40 | 44 | * @timestamp_ns: timestamp of status change in nanoseconds |
| 41 | 45 | */ |
| @@ -48,14 +52,19 @@ struct sync_fence_info { · 6 unmodified lines | ||
| 48 | 52 | }; |
| 49 | 53 | |
| 50 | 54 | /** |
| 51 | − * struct sync_file_info - data returned from fence info ioctl | |
| 55 | + * struct sync_file_info - SYNC_IOC_FILE_INFO: get detailed information on a sync_file | |
| 52 | 56 | * @name: name of fence |
| 53 | 57 | * @status: status of fence. 1: signaled 0:active <0:error |
| 54 | 58 | * @flags: sync_file_info flags |
| 55 | 59 | * @num_fences number of fences in the sync_file |
| 56 | 60 | * @pad: padding for 64-bit alignment, should always be zero |
| 57 | − * @sync_fence_info: pointer to array of structs sync_fence_info with all | |
| 61 | + * @sync_fence_info: pointer to array of struct &sync_fence_info with all | |
| 58 | 62 | * fences in the sync_file |
| 63 | + * | |
| 64 | + * Takes a struct sync_file_info. If num_fences is 0, the field is updated | |
| 65 | + * with the actual number of fences. If num_fences is > 0, the system will | |
| 66 | + * use the pointer provided on sync_fence_info to return up to num_fences of | |
| 67 | + * struct sync_fence_info, with detailed fence information. | |
| 59 | 68 | */ |
| 60 | 69 | struct sync_file_info { |
| 61 | 70 | char name[32]; |
| @@ -69,30 +78,14 @@ struct sync_file_info { · 7 unmodified lines | ||
| 69 | 78 | |
| 70 | 79 | #define SYNC_IOC_MAGIC '>' |
| 71 | 80 | |
| 72 | −/** | |
| 81 | +/* | |
| 73 | 82 | * Opcodes 0, 1 and 2 were burned during a API change to avoid users of the |
| 74 | 83 | * old API to get weird errors when trying to handling sync_files. The API |
| 75 | 84 | * change happened during the de-stage of the Sync Framework when there was |
| 76 | 85 | * no upstream users available. |
| 77 | 86 | */ |
| 78 | 87 | |
| 79 | −/** | |
| 80 | − * DOC: SYNC_IOC_MERGE - merge two fences | |
| 81 | − * | |
| 82 | − * Takes a struct sync_merge_data. Creates a new fence containing copies of | |
| 83 | − * the sync_pts in both the calling fd and sync_merge_data.fd2. Returns the | |
| 84 | − * new fence's fd in sync_merge_data.fence | |
| 85 | − */ | |
| 86 | 88 | #define SYNC_IOC_MERGE _IOWR(SYNC_IOC_MAGIC, 3, struct sync_merge_data) |
| 87 | − | |
| 88 | −/** | |
| 89 | − * DOC: SYNC_IOC_FILE_INFO - get detailed information on a sync_file | |
| 90 | − * | |
| 91 | − * Takes a struct sync_file_info. If num_fences is 0, the field is updated | |
| 92 | − * with the actual number of fences. If num_fences is > 0, the system will | |
| 93 | − * use the pointer provided on sync_fence_info to return up to num_fences of | |
| 94 | − * struct sync_fence_info, with detailed fence information. | |
| 95 | − */ | |
| 96 | 89 | #define SYNC_IOC_FILE_INFO _IOWR(SYNC_IOC_MAGIC, 4, struct sync_file_info) |
| 97 | 90 | |
| 98 | 91 | #endif /* _UAPI_LINUX_SYNC_H */ |
| @@ -119,7 +119,7 @@ struct tcmu_cmd_entry { · 118 unmodified lines | ||
| 119 | 119 | __u64 cdb_off; |
| 120 | 120 | __u64 __pad1; |
| 121 | 121 | __u64 __pad2; |
| 122 | − struct iovec iov[0]; | |
| 122 | + __DECLARE_FLEX_ARRAY(struct iovec, iov); | |
| 123 | 123 | } req; |
| 124 | 124 | struct { |
| 125 | 125 | __u8 scsi_status; |
| @@ -34,7 +34,7 @@ · 33 unmodified lines | ||
| 34 | 34 | */ |
| 35 | 35 | |
| 36 | 36 | |
| 37 | −#define TASKSTATS_VERSION 13 | |
| 37 | +#define TASKSTATS_VERSION 14 | |
| 38 | 38 | #define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN |
| 39 | 39 | * in linux/sched.h */ |
| 40 | 40 | |
| @@ -198,6 +198,10 @@ struct taskstats { · 157 unmodified lines | ||
| 198 | 198 | /* v13: Delay waiting for write-protect copy */ |
| 199 | 199 | __u64 wpcopy_count; |
| 200 | 200 | __u64 wpcopy_delay_total; |
| 201 | + | |
| 202 | + /* v14: Delay waiting for IRQ/SOFTIRQ */ | |
| 203 | + __u64 irq_count; | |
| 204 | + __u64 irq_delay_total; | |
| 201 | 205 | }; |
| 202 | 206 | |
| 203 | 207 | |
| @@ -34,6 +34,7 @@ enum { · 33 unmodified lines | ||
| 34 | 34 | */ |
| 35 | 35 | TCA_TUNNEL_KEY_ENC_TOS, /* u8 */ |
| 36 | 36 | TCA_TUNNEL_KEY_ENC_TTL, /* u8 */ |
| 37 | + TCA_TUNNEL_KEY_NO_FRAG, /* flag */ | |
| 37 | 38 | __TCA_TUNNEL_KEY_MAX, |
| 38 | 39 | }; |
| 39 | 40 | |
| @@ -8,6 +8,9 @@ · 7 unmodified lines | ||
| 8 | 8 | |
| 9 | 9 | /* |
| 10 | 10 | * Admin commands, issued by ublk server, and handled by ublk driver. |
| 11 | + * | |
| 12 | + * Legacy command definition, don't use in new application, and don't | |
| 13 | + * add new such definition any more | |
| 11 | 14 | */ |
| 12 | 15 | #define UBLK_CMD_GET_QUEUE_AFFINITY 0x01 |
| 13 | 16 | #define UBLK_CMD_GET_DEV_INFO 0x02 |
| @@ -21,6 +24,30 @@ · 7 unmodified lines | ||
| 21 | 24 | #define UBLK_CMD_END_USER_RECOVERY 0x11 |
| 22 | 25 | #define UBLK_CMD_GET_DEV_INFO2 0x12 |
| 23 | 26 | |
| 27 | +/* Any new ctrl command should encode by __IO*() */ | |
| 28 | +#define UBLK_U_CMD_GET_QUEUE_AFFINITY \ | |
| 29 | + _IOR('u', UBLK_CMD_GET_QUEUE_AFFINITY, struct ublksrv_ctrl_cmd) | |
| 30 | +#define UBLK_U_CMD_GET_DEV_INFO \ | |
| 31 | + _IOR('u', UBLK_CMD_GET_DEV_INFO, struct ublksrv_ctrl_cmd) | |
| 32 | +#define UBLK_U_CMD_ADD_DEV \ | |
| 33 | + _IOWR('u', UBLK_CMD_ADD_DEV, struct ublksrv_ctrl_cmd) | |
| 34 | +#define UBLK_U_CMD_DEL_DEV \ | |
| 35 | + _IOWR('u', UBLK_CMD_DEL_DEV, struct ublksrv_ctrl_cmd) | |
| 36 | +#define UBLK_U_CMD_START_DEV \ | |
| 37 | + _IOWR('u', UBLK_CMD_START_DEV, struct ublksrv_ctrl_cmd) | |
| 38 | +#define UBLK_U_CMD_STOP_DEV \ | |
| 39 | + _IOWR('u', UBLK_CMD_STOP_DEV, struct ublksrv_ctrl_cmd) | |
| 40 | +#define UBLK_U_CMD_SET_PARAMS \ | |
| 41 | + _IOWR('u', UBLK_CMD_SET_PARAMS, struct ublksrv_ctrl_cmd) | |
| 42 | +#define UBLK_U_CMD_GET_PARAMS \ | |
| 43 | + _IOR('u', UBLK_CMD_GET_PARAMS, struct ublksrv_ctrl_cmd) | |
| 44 | +#define UBLK_U_CMD_START_USER_RECOVERY \ | |
| 45 | + _IOWR('u', UBLK_CMD_START_USER_RECOVERY, struct ublksrv_ctrl_cmd) | |
| 46 | +#define UBLK_U_CMD_END_USER_RECOVERY \ | |
| 47 | + _IOWR('u', UBLK_CMD_END_USER_RECOVERY, struct ublksrv_ctrl_cmd) | |
| 48 | +#define UBLK_U_CMD_GET_DEV_INFO2 \ | |
| 49 | + _IOR('u', UBLK_CMD_GET_DEV_INFO2, struct ublksrv_ctrl_cmd) | |
| 50 | + | |
| 24 | 51 | /* |
| 25 | 52 | * IO commands, issued by ublk server, and handled by ublk driver. |
| 26 | 53 | * |
| @@ -41,10 +68,23 @@ · 14 unmodified lines | ||
| 41 | 68 | * It is only used if ublksrv set UBLK_F_NEED_GET_DATA flag |
| 42 | 69 | * while starting a ublk device. |
| 43 | 70 | */ |
| 71 | + | |
| 72 | +/* | |
| 73 | + * Legacy IO command definition, don't use in new application, and don't | |
| 74 | + * add new such definition any more | |
| 75 | + */ | |
| 44 | 76 | #define UBLK_IO_FETCH_REQ 0x20 |
| 45 | 77 | #define UBLK_IO_COMMIT_AND_FETCH_REQ 0x21 |
| 46 | 78 | #define UBLK_IO_NEED_GET_DATA 0x22 |
| 47 | 79 | |
| 80 | +/* Any new IO command should encode by __IOWR() */ | |
| 81 | +#define UBLK_U_IO_FETCH_REQ \ | |
| 82 | + _IOWR('u', UBLK_IO_FETCH_REQ, struct ublksrv_io_cmd) | |
| 83 | +#define UBLK_U_IO_COMMIT_AND_FETCH_REQ \ | |
| 84 | + _IOWR('u', UBLK_IO_COMMIT_AND_FETCH_REQ, struct ublksrv_io_cmd) | |
| 85 | +#define UBLK_U_IO_NEED_GET_DATA \ | |
| 86 | + _IOWR('u', UBLK_IO_NEED_GET_DATA, struct ublksrv_io_cmd) | |
| 87 | + | |
| 48 | 88 | /* only ABORT means that no re-fetch */ |
| 49 | 89 | #define UBLK_IO_RES_OK 0 |
| 50 | 90 | #define UBLK_IO_RES_NEED_GET_DATA 1 |
| @@ -102,6 +142,9 @@ · 51 unmodified lines | ||
| 102 | 142 | */ |
| 103 | 143 | #define UBLK_F_UNPRIVILEGED_DEV (1UL << 5) |
| 104 | 144 | |
| 145 | +/* use ioctl encoding for uring command */ | |
| 146 | +#define UBLK_F_CMD_IOCTL_ENCODE (1UL << 6) | |
| 147 | + | |
| 105 | 148 | /* device state */ |
| 106 | 149 | #define UBLK_S_DEV_DEAD 0 |
| 107 | 150 | #define UBLK_S_DEV_LIVE 1 |
| @@ -0,0 +1,81 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | +/* | |
| 3 | + * Copyright (c) 2021-2022, Microsoft Corporation. | |
| 4 | + * | |
| 5 | + * Authors: | |
| 6 | + * Beau Belgrave <beaub@linux.microsoft.com> | |
| 7 | + */ | |
| 8 | +#ifndef _UAPI_LINUX_USER_EVENTS_H | |
| 9 | +#define _UAPI_LINUX_USER_EVENTS_H | |
| 10 | + | |
| 11 | +#include <linux/types.h> | |
| 12 | +#include <linux/ioctl.h> | |
| 13 | + | |
| 14 | +#define USER_EVENTS_SYSTEM "user_events" | |
| 15 | +#define USER_EVENTS_PREFIX "u:" | |
| 16 | + | |
| 17 | +/* Create dynamic location entry within a 32-bit value */ | |
| 18 | +#define DYN_LOC(offset, size) ((size) << 16 | (offset)) | |
| 19 | + | |
| 20 | +/* | |
| 21 | + * Describes an event registration and stores the results of the registration. | |
| 22 | + * This structure is passed to the DIAG_IOCSREG ioctl, callers at a minimum | |
| 23 | + * must set the size and name_args before invocation. | |
| 24 | + */ | |
| 25 | +struct user_reg { | |
| 26 | + | |
| 27 | + /* Input: Size of the user_reg structure being used */ | |
| 28 | + __u32 size; | |
| 29 | + | |
| 30 | + /* Input: Bit in enable address to use */ | |
| 31 | + __u8 enable_bit; | |
| 32 | + | |
| 33 | + /* Input: Enable size in bytes at address */ | |
| 34 | + __u8 enable_size; | |
| 35 | + | |
| 36 | + /* Input: Flags for future use, set to 0 */ | |
| 37 | + __u16 flags; | |
| 38 | + | |
| 39 | + /* Input: Address to update when enabled */ | |
| 40 | + __u64 enable_addr; | |
| 41 | + | |
| 42 | + /* Input: Pointer to string with event name, description and flags */ | |
| 43 | + __u64 name_args; | |
| 44 | + | |
| 45 | + /* Output: Index of the event to use when writing data */ | |
| 46 | + __u32 write_index; | |
| 47 | +} __attribute__((__packed__)); | |
| 48 | + | |
| 49 | +/* | |
| 50 | + * Describes an event unregister, callers must set the size, address and bit. | |
| 51 | + * This structure is passed to the DIAG_IOCSUNREG ioctl to disable bit updates. | |
| 52 | + */ | |
| 53 | +struct user_unreg { | |
| 54 | + /* Input: Size of the user_unreg structure being used */ | |
| 55 | + __u32 size; | |
| 56 | + | |
| 57 | + /* Input: Bit to unregister */ | |
| 58 | + __u8 disable_bit; | |
| 59 | + | |
| 60 | + /* Input: Reserved, set to 0 */ | |
| 61 | + __u8 __reserved; | |
| 62 | + | |
| 63 | + /* Input: Reserved, set to 0 */ | |
| 64 | + __u16 __reserved2; | |
| 65 | + | |
| 66 | + /* Input: Address to unregister */ | |
| 67 | + __u64 disable_addr; | |
| 68 | +} __attribute__((__packed__)); | |
| 69 | + | |
| 70 | +#define DIAG_IOC_MAGIC '*' | |
| 71 | + | |
| 72 | +/* Request to register a user_event */ | |
| 73 | +#define DIAG_IOCSREG _IOWR(DIAG_IOC_MAGIC, 0, struct user_reg *) | |
| 74 | + | |
| 75 | +/* Request to delete a user_event */ | |
| 76 | +#define DIAG_IOCSDEL _IOW(DIAG_IOC_MAGIC, 1, char *) | |
| 77 | + | |
| 78 | +/* Requests to unregister a user_event */ | |
| 79 | +#define DIAG_IOCSUNREG _IOW(DIAG_IOC_MAGIC, 2, struct user_unreg*) | |
| 80 | + | |
| 81 | +#endif /* _UAPI_LINUX_USER_EVENTS_H */ | |
| @@ -38,7 +38,8 @@ · 37 unmodified lines | ||
| 38 | 38 | UFFD_FEATURE_MINOR_HUGETLBFS | \ |
| 39 | 39 | UFFD_FEATURE_MINOR_SHMEM | \ |
| 40 | 40 | UFFD_FEATURE_EXACT_ADDRESS | \ |
| 41 | − UFFD_FEATURE_WP_HUGETLBFS_SHMEM) | |
| 41 | + UFFD_FEATURE_WP_HUGETLBFS_SHMEM | \ | |
| 42 | + UFFD_FEATURE_WP_UNPOPULATED) | |
| 42 | 43 | #define UFFD_API_IOCTLS \ |
| 43 | 44 | ((__u64)1 << _UFFDIO_REGISTER | \ |
| 44 | 45 | (__u64)1 << _UFFDIO_UNREGISTER | \ |
| @@ -203,6 +204,12 @@ struct uffdio_api { · 158 unmodified lines | ||
| 203 | 204 | * |
| 204 | 205 | * UFFD_FEATURE_WP_HUGETLBFS_SHMEM indicates that userfaultfd |
| 205 | 206 | * write-protection mode is supported on both shmem and hugetlbfs. |
| 207 | + * | |
| 208 | + * UFFD_FEATURE_WP_UNPOPULATED indicates that userfaultfd | |
| 209 | + * write-protection mode will always apply to unpopulated pages | |
| 210 | + * (i.e. empty ptes). This will be the default behavior for shmem | |
| 211 | + * & hugetlbfs, so this flag only affects anonymous memory behavior | |
| 212 | + * when userfault write-protection mode is registered. | |
| 206 | 213 | */ |
| 207 | 214 | #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) |
| 208 | 215 | #define UFFD_FEATURE_EVENT_FORK (1<<1) |
| @@ -217,6 +224,7 @@ struct uffdio_api { · 8 unmodified lines | ||
| 217 | 224 | #define UFFD_FEATURE_MINOR_SHMEM (1<<10) |
| 218 | 225 | #define UFFD_FEATURE_EXACT_ADDRESS (1<<11) |
| 219 | 226 | #define UFFD_FEATURE_WP_HUGETLBFS_SHMEM (1<<12) |
| 227 | +#define UFFD_FEATURE_WP_UNPOPULATED (1<<13) | |
| 220 | 228 | __u64 features; |
| 221 | 229 | |
| 222 | 230 | __u64 ioctls; |
| @@ -297,6 +305,13 @@ struct uffdio_writeprotect { · 74 unmodified lines | ||
| 297 | 305 | struct uffdio_continue { |
| 298 | 306 | struct uffdio_range range; |
| 299 | 307 | #define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64)1<<0) |
| 308 | + /* | |
| 309 | + * UFFDIO_CONTINUE_MODE_WP will map the page write protected on | |
| 310 | + * the fly. UFFDIO_CONTINUE_MODE_WP is available only if the | |
| 311 | + * write protected ioctl is implemented for the range | |
| 312 | + * according to the uffdio_register.ioctls. | |
| 313 | + */ | |
| 314 | +#define UFFDIO_CONTINUE_MODE_WP ((__u64)1<<1) | |
| 300 | 315 | __u64 mode; |
| 301 | 316 | |
| 302 | 317 | /* |
| @@ -1,30 +1 @@ | ||
| 1 | −/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | −/* DO NOT USE in new code! This is solely for MEI due to legacy reasons */ | |
| 3 | −/* | |
| 4 | − * MEI UUID definition | |
| 5 | − * | |
| 6 | − * Copyright (C) 2010, Intel Corp. | |
| 7 | − * Huang Ying <ying.huang@intel.com> | |
| 8 | − */ | |
| 9 | − | |
| 10 | −#ifndef _UAPI_LINUX_UUID_H_ | |
| 11 | −#define _UAPI_LINUX_UUID_H_ | |
| 12 | − | |
| 13 | −#include <linux/types.h> | |
| 14 | − | |
| 15 | −typedef struct { | |
| 16 | − __u8 b[16]; | |
| 17 | −} uuid_le; | |
| 18 | − | |
| 19 | −#define UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ | |
| 20 | −((uuid_le) \ | |
| 21 | −{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ | |
| 22 | − (b) & 0xff, ((b) >> 8) & 0xff, \ | |
| 23 | − (c) & 0xff, ((c) >> 8) & 0xff, \ | |
| 24 | − (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) | |
| 25 | − | |
| 26 | −#define NULL_UUID_LE \ | |
| 27 | − UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \ | |
| 28 | − 0x00, 0x00, 0x00, 0x00) | |
| 29 | − | |
| 30 | −#endif /* _UAPI_LINUX_UUID_H_ */ | |
| 1 | +#include <linux/mei_uuid.h> | |
| @@ -233,6 +233,24 @@ struct v4l2_subdev_routing { · 232 unmodified lines | ||
| 233 | 233 | __u32 reserved[6]; |
| 234 | 234 | }; |
| 235 | 235 | |
| 236 | +/* | |
| 237 | + * The client is aware of streams. Setting this flag enables the use of 'stream' | |
| 238 | + * fields (referring to the stream number) with various ioctls. If this is not | |
| 239 | + * set (which is the default), the 'stream' fields will be forced to 0 by the | |
| 240 | + * kernel. | |
| 241 | + */ | |
| 242 | + #define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1U << 0) | |
| 243 | + | |
| 244 | +/** | |
| 245 | + * struct v4l2_subdev_client_capability - Capabilities of the client accessing | |
| 246 | + * the subdev | |
| 247 | + * | |
| 248 | + * @capabilities: A bitmask of V4L2_SUBDEV_CLIENT_CAP_* flags. | |
| 249 | + */ | |
| 250 | +struct v4l2_subdev_client_capability { | |
| 251 | + __u64 capabilities; | |
| 252 | +}; | |
| 253 | + | |
| 236 | 254 | /* Backwards compatibility define --- to be removed */ |
| 237 | 255 | #define v4l2_subdev_edid v4l2_edid |
| 238 | 256 | |
| @@ -250,6 +268,9 @@ struct v4l2_subdev_routing { · 11 unmodified lines | ||
| 250 | 268 | #define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection) |
| 251 | 269 | #define VIDIOC_SUBDEV_G_ROUTING _IOWR('V', 38, struct v4l2_subdev_routing) |
| 252 | 270 | #define VIDIOC_SUBDEV_S_ROUTING _IOWR('V', 39, struct v4l2_subdev_routing) |
| 271 | +#define VIDIOC_SUBDEV_G_CLIENT_CAP _IOR('V', 101, struct v4l2_subdev_client_capability) | |
| 272 | +#define VIDIOC_SUBDEV_S_CLIENT_CAP _IOWR('V', 102, struct v4l2_subdev_client_capability) | |
| 273 | + | |
| 253 | 274 | /* The following ioctls are identical to the ioctls in videodev2.h */ |
| 254 | 275 | #define VIDIOC_SUBDEV_G_STD _IOR('V', 23, v4l2_std_id) |
| 255 | 276 | #define VIDIOC_SUBDEV_S_STD _IOW('V', 24, v4l2_std_id) |
| @@ -580,12 +580,17 @@ struct v4l2_pix_format { · 579 unmodified lines | ||
| 580 | 580 | #define V4L2_PIX_FMT_RGBA1010102 v4l2_fourcc('R', 'A', '3', '0') /* 32 RGBA-10-10-10-2 */ |
| 581 | 581 | #define V4L2_PIX_FMT_ARGB2101010 v4l2_fourcc('A', 'R', '3', '0') /* 32 ARGB-2-10-10-10 */ |
| 582 | 582 | |
| 583 | +/* RGB formats (6 or 8 bytes per pixel) */ | |
| 584 | +#define V4L2_PIX_FMT_BGR48_12 v4l2_fourcc('B', '3', '1', '2') /* 48 BGR 12-bit per component */ | |
| 585 | +#define V4L2_PIX_FMT_ABGR64_12 v4l2_fourcc('B', '4', '1', '2') /* 64 BGRA 12-bit per component */ | |
| 586 | + | |
| 583 | 587 | /* Grey formats */ |
| 584 | 588 | #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ |
| 585 | 589 | #define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ') /* 4 Greyscale */ |
| 586 | 590 | #define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */ |
| 587 | 591 | #define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ |
| 588 | 592 | #define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */ |
| 593 | +#define V4L2_PIX_FMT_Y012 v4l2_fourcc('Y', '0', '1', '2') /* 12 Greyscale */ | |
| 589 | 594 | #define V4L2_PIX_FMT_Y14 v4l2_fourcc('Y', '1', '4', ' ') /* 14 Greyscale */ |
| 590 | 595 | #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ |
| 591 | 596 | #define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */ |
| @@ -620,6 +625,7 @@ struct v4l2_pix_format { · 28 unmodified lines | ||
| 620 | 625 | #define V4L2_PIX_FMT_YUVA32 v4l2_fourcc('Y', 'U', 'V', 'A') /* 32 YUVA-8-8-8-8 */ |
| 621 | 626 | #define V4L2_PIX_FMT_YUVX32 v4l2_fourcc('Y', 'U', 'V', 'X') /* 32 YUVX-8-8-8-8 */ |
| 622 | 627 | #define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */ |
| 628 | +#define V4L2_PIX_FMT_YUV48_12 v4l2_fourcc('Y', '3', '1', '2') /* 48 YUV 4:4:4 12-bit per component */ | |
| 623 | 629 | |
| 624 | 630 | /* |
| 625 | 631 | * YCbCr packed format. For each Y2xx format, xx bits of valid data occupy the MSBs |
| @@ -637,12 +643,14 @@ struct v4l2_pix_format { · 11 unmodified lines | ||
| 637 | 643 | #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ |
| 638 | 644 | #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ |
| 639 | 645 | #define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0') /* 24 Y/CbCr 4:2:0 10-bit per component */ |
| 646 | +#define V4L2_PIX_FMT_P012 v4l2_fourcc('P', '0', '1', '2') /* 24 Y/CbCr 4:2:0 12-bit per component */ | |
| 640 | 647 | |
| 641 | 648 | /* two non contiguous planes - one Y, one Cr + Cb interleaved */ |
| 642 | 649 | #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */ |
| 643 | 650 | #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/CrCb 4:2:0 */ |
| 644 | 651 | #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6') /* 16 Y/CbCr 4:2:2 */ |
| 645 | 652 | #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1') /* 16 Y/CrCb 4:2:2 */ |
| 653 | +#define V4L2_PIX_FMT_P012M v4l2_fourcc('P', 'M', '1', '2') /* 24 Y/CbCr 4:2:0 12-bit per component */ | |
| 646 | 654 | |
| 647 | 655 | /* three planes - Y Cb, Cr */ |
| 648 | 656 | #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ |
| @@ -750,6 +758,9 @@ struct v4l2_pix_format { · 101 unmodified lines | ||
| 750 | 758 | #define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H') /* Stateless FWHT (vicodec) */ |
| 751 | 759 | #define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4') /* H264 parsed slices */ |
| 752 | 760 | #define V4L2_PIX_FMT_HEVC_SLICE v4l2_fourcc('S', '2', '6', '5') /* HEVC parsed slices */ |
| 761 | +#define V4L2_PIX_FMT_SPK v4l2_fourcc('S', 'P', 'K', '0') /* Sorenson Spark */ | |
| 762 | +#define V4L2_PIX_FMT_RV30 v4l2_fourcc('R', 'V', '3', '0') /* RealVideo 8 */ | |
| 763 | +#define V4L2_PIX_FMT_RV40 v4l2_fourcc('R', 'V', '4', '0') /* RealVideo 9 & 10 */ | |
| 753 | 764 | |
| 754 | 765 | /* Vendor-specific formats */ |
| 755 | 766 | #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ |
| @@ -1224,8 +1235,10 @@ struct v4l2_framebuffer { · 468 unmodified lines | ||
| 1224 | 1235 | /* Flags for the 'capability' field. Read only */ |
| 1225 | 1236 | #define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001 |
| 1226 | 1237 | #define V4L2_FBUF_CAP_CHROMAKEY 0x0002 |
| 1238 | +#ifndef __KERNEL__ | |
| 1227 | 1239 | #define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004 |
| 1228 | 1240 | #define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008 |
| 1241 | +#endif | |
| 1229 | 1242 | #define V4L2_FBUF_CAP_LOCAL_ALPHA 0x0010 |
| 1230 | 1243 | #define V4L2_FBUF_CAP_GLOBAL_ALPHA 0x0020 |
| 1231 | 1244 | #define V4L2_FBUF_CAP_LOCAL_INV_ALPHA 0x0040 |
| @@ -140,11 +140,11 @@ struct virtio_blk_config { · 139 unmodified lines | ||
| 140 | 140 | |
| 141 | 141 | /* Zoned block device characteristics (if VIRTIO_BLK_F_ZONED) */ |
| 142 | 142 | struct virtio_blk_zoned_characteristics { |
| 143 | − __le32 zone_sectors; | |
| 144 | − __le32 max_open_zones; | |
| 145 | − __le32 max_active_zones; | |
| 146 | − __le32 max_append_sectors; | |
| 147 | − __le32 write_granularity; | |
| 143 | + __virtio32 zone_sectors; | |
| 144 | + __virtio32 max_open_zones; | |
| 145 | + __virtio32 max_active_zones; | |
| 146 | + __virtio32 max_append_sectors; | |
| 147 | + __virtio32 write_granularity; | |
| 148 | 148 | __u8 model; |
| 149 | 149 | __u8 unused2[3]; |
| 150 | 150 | } zoned; |
| @@ -241,11 +241,11 @@ struct virtio_blk_outhdr { · 90 unmodified lines | ||
| 241 | 241 | */ |
| 242 | 242 | struct virtio_blk_zone_descriptor { |
| 243 | 243 | /* Zone capacity */ |
| 244 | − __le64 z_cap; | |
| 244 | + __virtio64 z_cap; | |
| 245 | 245 | /* The starting sector of the zone */ |
| 246 | − __le64 z_start; | |
| 246 | + __virtio64 z_start; | |
| 247 | 247 | /* Zone write pointer position in sectors */ |
| 248 | − __le64 z_wp; | |
| 248 | + __virtio64 z_wp; | |
| 249 | 249 | /* Zone type */ |
| 250 | 250 | __u8 z_type; |
| 251 | 251 | /* Zone state */ |
| @@ -254,7 +254,7 @@ struct virtio_blk_zone_descriptor { · 2 unmodified lines | ||
| 254 | 254 | }; |
| 255 | 255 | |
| 256 | 256 | struct virtio_blk_zone_report { |
| 257 | − __le64 nr_zones; | |
| 257 | + __virtio64 nr_zones; | |
| 258 | 258 | __u8 reserved[56]; |
| 259 | 259 | struct virtio_blk_zone_descriptor zones[]; |
| 260 | 260 | }; |
| @@ -99,6 +99,12 @@ · 98 unmodified lines | ||
| 99 | 99 | */ |
| 100 | 100 | #define VIRTIO_F_SR_IOV 37 |
| 101 | 101 | |
| 102 | +/* | |
| 103 | + * This feature indicates that the driver passes extra data (besides | |
| 104 | + * identifying the virtqueue) in its device notifications. | |
| 105 | + */ | |
| 106 | +#define VIRTIO_F_NOTIFICATION_DATA 38 | |
| 107 | + | |
| 102 | 108 | /* |
| 103 | 109 | * This feature indicates that the driver can reset a queue individually. |
| 104 | 110 | */ |
| @@ -61,6 +61,7 @@ · 60 unmodified lines | ||
| 61 | 61 | #define VIRTIO_NET_F_GUEST_USO6 55 /* Guest can handle USOv6 in. */ |
| 62 | 62 | #define VIRTIO_NET_F_HOST_USO 56 /* Host can handle USO in. */ |
| 63 | 63 | #define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */ |
| 64 | +#define VIRTIO_NET_F_GUEST_HDRLEN 59 /* Guest provides the exact hdr_len value. */ | |
| 64 | 65 | #define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */ |
| 65 | 66 | #define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */ |
| 66 | 67 | #define VIRTIO_NET_F_STANDBY 62 /* Act as standby for another device |
| @@ -96,6 +96,10 @@ struct bnxt_re_cq_resp { · 95 unmodified lines | ||
| 96 | 96 | __u32 rsvd; |
| 97 | 97 | }; |
| 98 | 98 | |
| 99 | +struct bnxt_re_resize_cq_req { | |
| 100 | + __aligned_u64 cq_va; | |
| 101 | +}; | |
| 102 | + | |
| 99 | 103 | struct bnxt_re_qp_req { |
| 100 | 104 | __aligned_u64 qpsva; |
| 101 | 105 | __aligned_u64 qprva; |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ |
| 2 | 2 | /* |
| 3 | − * Copyright 2018-2022 Amazon.com, Inc. or its affiliates. All rights reserved. | |
| 3 | + * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All rights reserved. | |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | 6 | #ifndef EFA_ABI_USER_H |
| @@ -120,6 +120,8 @@ enum { · 113 unmodified lines | ||
| 120 | 120 | EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1, |
| 121 | 121 | EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2, |
| 122 | 122 | EFA_QUERY_DEVICE_CAPS_CQ_WITH_SGID = 1 << 3, |
| 123 | + EFA_QUERY_DEVICE_CAPS_DATA_POLLING_128 = 1 << 4, | |
| 124 | + EFA_QUERY_DEVICE_CAPS_RDMA_WRITE = 1 << 5, | |
| 123 | 125 | }; |
| 124 | 126 | |
| 125 | 127 | struct efa_ibv_ex_query_device_resp { |
| @@ -222,9 +222,9 @@ struct snd_soc_tplg_vendor_array { · 221 unmodified lines | ||
| 222 | 222 | __le32 type; /* SND_SOC_TPLG_TUPLE_TYPE_ */ |
| 223 | 223 | __le32 num_elems; /* number of elements in array */ |
| 224 | 224 | union { |
| 225 | − struct snd_soc_tplg_vendor_uuid_elem uuid[0]; | |
| 226 | − struct snd_soc_tplg_vendor_value_elem value[0]; | |
| 227 | − struct snd_soc_tplg_vendor_string_elem string[0]; | |
| 225 | + __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_uuid_elem, uuid); | |
| 226 | + __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_value_elem, value); | |
| 227 | + __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_string_elem, string); | |
| 228 | 228 | }; |
| 229 | 229 | } __attribute__((packed)); |
| 230 | 230 | |
| @@ -429,9 +429,14 @@ struct snd_pcm_sw_params { · 428 unmodified lines | ||
| 429 | 429 | snd_pcm_uframes_t avail_min; /* min avail frames for wakeup */ |
| 430 | 430 | snd_pcm_uframes_t xfer_align; /* obsolete: xfer size need to be a multiple */ |
| 431 | 431 | snd_pcm_uframes_t start_threshold; /* min hw_avail frames for automatic start */ |
| 432 | − snd_pcm_uframes_t stop_threshold; /* min avail frames for automatic stop */ | |
| 433 | − snd_pcm_uframes_t silence_threshold; /* min distance from noise for silence filling */ | |
| 434 | − snd_pcm_uframes_t silence_size; /* silence block size */ | |
| 432 | + /* | |
| 433 | + * The following two thresholds alleviate playback buffer underruns; when | |
| 434 | + * hw_avail drops below the threshold, the respective action is triggered: | |
| 435 | + */ | |
| 436 | + snd_pcm_uframes_t stop_threshold; /* - stop playback */ | |
| 437 | + snd_pcm_uframes_t silence_threshold; /* - pre-fill buffer with silence */ | |
| 438 | + snd_pcm_uframes_t silence_size; /* max size of silence pre-fill; when >= boundary, | |
| 439 | + * fill played area with silence immediately */ | |
| 435 | 440 | snd_pcm_uframes_t boundary; /* pointers wrap point */ |
| 436 | 441 | unsigned int proto; /* protocol version */ |
| 437 | 442 | unsigned int tstamp_type; /* timestamp type (req. proto >= 2.0.12) */ |
| @@ -570,7 +575,8 @@ struct __snd_pcm_mmap_status64 { · 132 unmodified lines | ||
| 570 | 575 | struct __snd_pcm_mmap_control64 { |
| 571 | 576 | __pad_before_uframe __pad1; |
| 572 | 577 | snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */ |
| 573 | − __pad_before_uframe __pad2; | |
| 578 | + __pad_before_uframe __pad2; // This should be __pad_after_uframe, but binary | |
| 579 | + // backwards compatibility constraints prevent a fix. | |
| 574 | 580 | |
| 575 | 581 | __pad_before_uframe __pad3; |
| 576 | 582 | snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */ |
| @@ -15,9 +15,6 @@ · 14 unmodified lines | ||
| 15 | 15 | * ---- FX8010 ---- |
| 16 | 16 | */ |
| 17 | 17 | |
| 18 | −#define EMU10K1_CARD_CREATIVE 0x00000000 | |
| 19 | −#define EMU10K1_CARD_EMUAPS 0x00000001 | |
| 20 | − | |
| 21 | 18 | #define EMU10K1_FX8010_PCM_COUNT 8 |
| 22 | 19 | |
| 23 | 20 | /* |
| @@ -46,6 +43,19 @@ · 22 unmodified lines | ||
| 46 | 43 | #define iINTERP 0x0e /* R = A + (X * (Y - A) >> 31) ; saturation */ |
| 47 | 44 | #define iSKIP 0x0f /* R = A (cc_reg), X (count), Y (cc_test) */ |
| 48 | 45 | |
| 46 | +#define LOWORD_OPX_MASK 0x000ffc00 /* Instruction operand X */ | |
| 47 | +#define LOWORD_OPY_MASK 0x000003ff /* Instruction operand Y */ | |
| 48 | +#define HIWORD_OPCODE_MASK 0x00f00000 /* Instruction opcode */ | |
| 49 | +#define HIWORD_RESULT_MASK 0x000ffc00 /* Instruction result */ | |
| 50 | +#define HIWORD_OPA_MASK 0x000003ff /* Instruction operand A */ | |
| 51 | + | |
| 52 | +/* Audigy Soundcards have a different instruction format */ | |
| 53 | +#define A_LOWORD_OPX_MASK 0x007ff000 | |
| 54 | +#define A_LOWORD_OPY_MASK 0x000007ff | |
| 55 | +#define A_HIWORD_OPCODE_MASK 0x0f000000 | |
| 56 | +#define A_HIWORD_RESULT_MASK 0x007ff000 | |
| 57 | +#define A_HIWORD_OPA_MASK 0x000007ff | |
| 58 | + | |
| 49 | 59 | /* GPRs */ |
| 50 | 60 | #define FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x0f */ |
| 51 | 61 | #define EXTIN(x) (0x10 + (x)) /* x = 0x00 - 0x0f */ |
| @@ -53,6 +63,16 @@ · 1 unmodified line | ||
| 53 | 63 | #define FXBUS2(x) (0x30 + (x)) /* x = 0x00 - 0x0f copies of fx buses for capture -> FXWC high 16 bits */ |
| 54 | 64 | /* NB: 0x31 and 0x32 are shared with Center/LFE on SB live 5.1 */ |
| 55 | 65 | |
| 66 | +#define A_FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x3f FX buses */ | |
| 67 | +#define A_EXTIN(x) (0x40 + (x)) /* x = 0x00 - 0x0f physical ins */ | |
| 68 | +#define A_P16VIN(x) (0x50 + (x)) /* x = 0x00 - 0x0f p16v ins (A2 only) "EMU32 inputs" */ | |
| 69 | +#define A_EXTOUT(x) (0x60 + (x)) /* x = 0x00 - 0x1f physical outs -> A_FXWC1 0x79-7f unknown */ | |
| 70 | +#define A_FXBUS2(x) (0x80 + (x)) /* x = 0x00 - 0x1f extra outs used for EFX capture -> A_FXWC2 */ | |
| 71 | +#define A_EMU32OUTH(x) (0xa0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_10 - _1F" */ | |
| 72 | +#define A_EMU32OUTL(x) (0xb0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_01 - _0F" */ | |
| 73 | +#define A3_EMU32IN(x) (0x160 + (x)) /* x = 0x00 - 0x1f "EMU32_IN_00 - _1F" - Only when .device = 0x0008 */ | |
| 74 | +#define A3_EMU32OUT(x) (0x1E0 + (x)) /* x = 0x00 - 0x1f "EMU32_OUT_00 - _1F" - Only when .device = 0x0008 */ | |
| 75 | + | |
| 56 | 76 | #define C_00000000 0x40 |
| 57 | 77 | #define C_00000001 0x41 |
| 58 | 78 | #define C_00000002 0x42 |
| @@ -81,12 +101,66 @@ · 22 unmodified lines | ||
| 81 | 101 | #define GPR_NOISE1 0x59 /* noise source */ |
| 82 | 102 | #define GPR_IRQ 0x5a /* IRQ register */ |
| 83 | 103 | #define GPR_DBAC 0x5b /* TRAM Delay Base Address Counter */ |
| 104 | + | |
| 105 | +/* Audigy constants */ | |
| 106 | +#define A_C_00000000 0xc0 | |
| 107 | +#define A_C_00000001 0xc1 | |
| 108 | +#define A_C_00000002 0xc2 | |
| 109 | +#define A_C_00000003 0xc3 | |
| 110 | +#define A_C_00000004 0xc4 | |
| 111 | +#define A_C_00000008 0xc5 | |
| 112 | +#define A_C_00000010 0xc6 | |
| 113 | +#define A_C_00000020 0xc7 | |
| 114 | +#define A_C_00000100 0xc8 | |
| 115 | +#define A_C_00010000 0xc9 | |
| 116 | +#define A_C_00000800 0xca | |
| 117 | +#define A_C_10000000 0xcb | |
| 118 | +#define A_C_20000000 0xcc | |
| 119 | +#define A_C_40000000 0xcd | |
| 120 | +#define A_C_80000000 0xce | |
| 121 | +#define A_C_7fffffff 0xcf | |
| 122 | +#define A_C_ffffffff 0xd0 | |
| 123 | +#define A_C_fffffffe 0xd1 | |
| 124 | +#define A_C_c0000000 0xd2 | |
| 125 | +#define A_C_4f1bbcdc 0xd3 | |
| 126 | +#define A_C_5a7ef9db 0xd4 | |
| 127 | +#define A_C_00100000 0xd5 | |
| 128 | +#define A_GPR_ACCU 0xd6 /* ACCUM, accumulator */ | |
| 129 | +#define A_GPR_COND 0xd7 /* CCR, condition register */ | |
| 130 | +#define A_GPR_NOISE0 0xd8 /* noise source */ | |
| 131 | +#define A_GPR_NOISE1 0xd9 /* noise source */ | |
| 132 | +#define A_GPR_IRQ 0xda /* IRQ register */ | |
| 133 | +#define A_GPR_DBAC 0xdb /* TRAM Delay Base Address Counter - internal */ | |
| 134 | +#define A_GPR_DBACE 0xde /* TRAM Delay Base Address Counter - external */ | |
| 135 | + | |
| 136 | +/* Each FX general purpose register is 32 bits in length, all bits are used */ | |
| 137 | +#define FXGPREGBASE 0x100 /* FX general purpose registers base */ | |
| 138 | +#define A_FXGPREGBASE 0x400 /* Audigy GPRs, 0x400 to 0x5ff */ | |
| 139 | + | |
| 140 | +#define A_TANKMEMCTLREGBASE 0x100 /* Tank memory control registers base - only for Audigy */ | |
| 141 | +#define A_TANKMEMCTLREG_MASK 0x1f /* only 5 bits used - only for Audigy */ | |
| 142 | + | |
| 143 | +/* Tank audio data is logarithmically compressed down to 16 bits before writing to TRAM and is */ | |
| 144 | +/* decompressed back to 20 bits on a read. There are a total of 160 locations, the last 32 */ | |
| 145 | +/* locations are for external TRAM. */ | |
| 146 | +#define TANKMEMDATAREGBASE 0x200 /* Tank memory data registers base */ | |
| 147 | +#define TANKMEMDATAREG_MASK 0x000fffff /* 20 bit tank audio data field */ | |
| 148 | + | |
| 149 | +/* Combined address field and memory opcode or flag field. 160 locations, last 32 are external */ | |
| 150 | +#define TANKMEMADDRREGBASE 0x300 /* Tank memory address registers base */ | |
| 151 | +#define TANKMEMADDRREG_ADDR_MASK 0x000fffff /* 20 bit tank address field */ | |
| 152 | +#define TANKMEMADDRREG_CLEAR 0x00800000 /* Clear tank memory */ | |
| 153 | +#define TANKMEMADDRREG_ALIGN 0x00400000 /* Align read or write relative to tank access */ | |
| 154 | +#define TANKMEMADDRREG_WRITE 0x00200000 /* Write to tank memory */ | |
| 155 | +#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */ | |
| 156 | + | |
| 84 | 157 | #define GPR(x) (FXGPREGBASE + (x)) /* free GPRs: x = 0x00 - 0xff */ |
| 85 | 158 | #define ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */ |
| 86 | 159 | #define ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */ |
| 87 | 160 | #define ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */ |
| 88 | 161 | #define ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */ |
| 89 | 162 | |
| 163 | +#define A_GPR(x) (A_FXGPREGBASE + (x)) | |
| 90 | 164 | #define A_ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */ |
| 91 | 165 | #define A_ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */ |
| 92 | 166 | #define A_ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */ |
| @@ -94,17 +168,6 @@ · 1 unmodified line | ||
| 94 | 168 | #define A_ITRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */ |
| 95 | 169 | #define A_ETRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */ |
| 96 | 170 | |
| 97 | −#define A_FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x3f FX buses */ | |
| 98 | −#define A_EXTIN(x) (0x40 + (x)) /* x = 0x00 - 0x0f physical ins */ | |
| 99 | −#define A_P16VIN(x) (0x50 + (x)) /* x = 0x00 - 0x0f p16v ins (A2 only) "EMU32 inputs" */ | |
| 100 | −#define A_EXTOUT(x) (0x60 + (x)) /* x = 0x00 - 0x1f physical outs -> A_FXWC1 0x79-7f unknown */ | |
| 101 | −#define A_FXBUS2(x) (0x80 + (x)) /* x = 0x00 - 0x1f extra outs used for EFX capture -> A_FXWC2 */ | |
| 102 | −#define A_EMU32OUTH(x) (0xa0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_10 - _1F" - ??? */ | |
| 103 | −#define A_EMU32OUTL(x) (0xb0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_1 - _F" - ??? */ | |
| 104 | −#define A3_EMU32IN(x) (0x160 + (x)) /* x = 0x00 - 0x3f "EMU32_IN_00 - _3F" - Only when .device = 0x0008 */ | |
| 105 | −#define A3_EMU32OUT(x) (0x1E0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_00 - _3F" - Only when .device = 0x0008 */ | |
| 106 | −#define A_GPR(x) (A_FXGPREGBASE + (x)) | |
| 107 | − | |
| 108 | 171 | /* cc_reg constants */ |
| 109 | 172 | #define CC_REG_NORMALIZED C_00000001 |
| 110 | 173 | #define CC_REG_BORROW C_00000002 |
| @@ -113,7 +176,17 @@ · 2 unmodified lines | ||
| 113 | 176 | #define CC_REG_SATURATE C_00000010 |
| 114 | 177 | #define CC_REG_NONZERO C_00000100 |
| 115 | 178 | |
| 179 | +#define A_CC_REG_NORMALIZED A_C_00000001 | |
| 180 | +#define A_CC_REG_BORROW A_C_00000002 | |
| 181 | +#define A_CC_REG_MINUS A_C_00000004 | |
| 182 | +#define A_CC_REG_ZERO A_C_00000008 | |
| 183 | +#define A_CC_REG_SATURATE A_C_00000010 | |
| 184 | +#define A_CC_REG_NONZERO A_C_00000100 | |
| 185 | + | |
| 116 | 186 | /* FX buses */ |
| 187 | +// These are arbitrary mappings; our DSP code simply expects | |
| 188 | +// the config files to route the channels this way. | |
| 189 | +// The numbers are documented in {audigy,sb-live}-mixer.rst. | |
| 117 | 190 | #define FXBUS_PCM_LEFT 0x00 |
| 118 | 191 | #define FXBUS_PCM_RIGHT 0x01 |
| 119 | 192 | #define FXBUS_PCM_LEFT_REAR 0x02 |
| @@ -203,38 +276,7 @@ · 83 unmodified lines | ||
| 203 | 276 | #define A_EXTOUT_ADC_CAP_R 0x17 /* right */ |
| 204 | 277 | #define A_EXTOUT_MIC_CAP 0x18 /* Mic capture buffer */ |
| 205 | 278 | |
| 206 | −/* Audigy constants */ | |
| 207 | −#define A_C_00000000 0xc0 | |
| 208 | −#define A_C_00000001 0xc1 | |
| 209 | −#define A_C_00000002 0xc2 | |
| 210 | −#define A_C_00000003 0xc3 | |
| 211 | −#define A_C_00000004 0xc4 | |
| 212 | −#define A_C_00000008 0xc5 | |
| 213 | −#define A_C_00000010 0xc6 | |
| 214 | −#define A_C_00000020 0xc7 | |
| 215 | −#define A_C_00000100 0xc8 | |
| 216 | −#define A_C_00010000 0xc9 | |
| 217 | −#define A_C_00000800 0xca | |
| 218 | −#define A_C_10000000 0xcb | |
| 219 | −#define A_C_20000000 0xcc | |
| 220 | −#define A_C_40000000 0xcd | |
| 221 | −#define A_C_80000000 0xce | |
| 222 | −#define A_C_7fffffff 0xcf | |
| 223 | −#define A_C_ffffffff 0xd0 | |
| 224 | −#define A_C_fffffffe 0xd1 | |
| 225 | −#define A_C_c0000000 0xd2 | |
| 226 | −#define A_C_4f1bbcdc 0xd3 | |
| 227 | −#define A_C_5a7ef9db 0xd4 | |
| 228 | −#define A_C_00100000 0xd5 | |
| 229 | −#define A_GPR_ACCU 0xd6 /* ACCUM, accumulator */ | |
| 230 | −#define A_GPR_COND 0xd7 /* CCR, condition register */ | |
| 231 | −#define A_GPR_NOISE0 0xd8 /* noise source */ | |
| 232 | −#define A_GPR_NOISE1 0xd9 /* noise source */ | |
| 233 | −#define A_GPR_IRQ 0xda /* IRQ register */ | |
| 234 | −#define A_GPR_DBAC 0xdb /* TRAM Delay Base Address Counter - internal */ | |
| 235 | −#define A_GPR_DBACE 0xde /* TRAM Delay Base Address Counter - external */ | |
| 236 | − | |
| 237 | −/* definitions for debug register */ | |
| 279 | +/* Definitions for debug register. Note that these are for emu10k1 ONLY. */ | |
| 238 | 280 | #define EMU10K1_DBG_ZC 0x80000000 /* zero tram counter */ |
| 239 | 281 | #define EMU10K1_DBG_SATURATION_OCCURED 0x02000000 /* saturation control */ |
| 240 | 282 | #define EMU10K1_DBG_SATURATION_ADDR 0x01ff0000 /* saturation address */ |
| @@ -243,14 +285,14 @@ · 2 unmodified lines | ||
| 243 | 285 | #define EMU10K1_DBG_CONDITION_CODE 0x00003e00 /* condition code */ |
| 244 | 286 | #define EMU10K1_DBG_SINGLE_STEP_ADDR 0x000001ff /* single step address */ |
| 245 | 287 | |
| 246 | −/* tank memory address line */ | |
| 247 | −#ifndef __KERNEL__ | |
| 248 | −#define TANKMEMADDRREG_ADDR_MASK 0x000fffff /* 20 bit tank address field */ | |
| 249 | −#define TANKMEMADDRREG_CLEAR 0x00800000 /* Clear tank memory */ | |
| 250 | −#define TANKMEMADDRREG_ALIGN 0x00400000 /* Align read or write relative to tank access */ | |
| 251 | −#define TANKMEMADDRREG_WRITE 0x00200000 /* Write to tank memory */ | |
| 252 | −#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */ | |
| 253 | −#endif | |
| 288 | +/* Definitions for emu10k2 debug register. */ | |
| 289 | +#define A_DBG_ZC 0x40000000 /* zero tram counter */ | |
| 290 | +#define A_DBG_SATURATION_OCCURED 0x20000000 | |
| 291 | +#define A_DBG_SATURATION_ADDR 0x0ffc0000 | |
| 292 | +#define A_DBG_SINGLE_STEP 0x00020000 /* Set to zero to start dsp */ | |
| 293 | +#define A_DBG_STEP 0x00010000 | |
| 294 | +#define A_DBG_CONDITION_CODE 0x0000f800 | |
| 295 | +#define A_DBG_STEP_ADDR 0x000003ff | |
| 254 | 296 | |
| 255 | 297 | struct snd_emu10k1_fx8010_info { |
| 256 | 298 | unsigned int internal_tram_size; /* in samples */ |
| @@ -60,5 +60,7 @@ · 59 unmodified lines | ||
| 60 | 60 | |
| 61 | 61 | /* SOF ABI magic number "SOF\0". */ |
| 62 | 62 | #define SOF_ABI_MAGIC 0x00464F53 |
| 63 | +/* SOF IPC4 ABI magic number "SOF4". */ | |
| 64 | +#define SOF_IPC4_ABI_MAGIC 0x34464F53 | |
| 63 | 65 | |
| 64 | 66 | #endif |
| @@ -11,19 +11,30 @@ · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | #include <linux/types.h> |
| 13 | 13 | |
| 14 | −/* | |
| 15 | − * Header for all non IPC ABI data. | |
| 14 | +/** | |
| 15 | + * struct sof_abi_hdr - Header for all non IPC ABI data. | |
| 16 | + * @magic: Magic number for validation | |
| 17 | + * for IPC3 data: 0x00464F53 ('S', 'O', 'F', '\0') | |
| 18 | + * for IPC4 data: 0x34464F53 ('S', 'O', 'F', '4') | |
| 19 | + * @type: module specific parameter | |
| 20 | + * for IPC3: Component specific type | |
| 21 | + * for IPC4: parameter ID (param_id) of the data | |
| 22 | + * @size: The size in bytes of the data, excluding this struct | |
| 23 | + * @abi: SOF ABI version. The version is valid in scope of the 'magic', IPC3 and | |
| 24 | + * IPC4 ABI version numbers have no relationship. | |
| 25 | + * @reserved: Reserved for future use | |
| 26 | + * @data: Component data - opaque to core | |
| 16 | 27 | * |
| 17 | 28 | * Identifies data type, size and ABI. |
| 18 | 29 | * Used by any bespoke component data structures or binary blobs. |
| 19 | 30 | */ |
| 20 | 31 | struct sof_abi_hdr { |
| 21 | − __u32 magic; /**< 'S', 'O', 'F', '\0' */ | |
| 22 | − __u32 type; /**< component specific type */ | |
| 23 | − __u32 size; /**< size in bytes of data excl. this struct */ | |
| 24 | − __u32 abi; /**< SOF ABI version */ | |
| 25 | − __u32 reserved[4]; /**< reserved for future use */ | |
| 26 | − __u32 data[]; /**< Component data - opaque to core */ | |
| 32 | + __u32 magic; | |
| 33 | + __u32 type; | |
| 34 | + __u32 size; | |
| 35 | + __u32 abi; | |
| 36 | + __u32 reserved[4]; | |
| 37 | + __u32 data[]; | |
| 27 | 38 | } __packed; |
| 28 | 39 | |
| 29 | 40 | #define SOF_MANIFEST_DATA_TYPE_NHLT 1 |
| @@ -54,6 +54,7 @@ · 53 unmodified lines | ||
| 54 | 54 | #define SOF_TKN_SCHED_DYNAMIC_PIPELINE 206 |
| 55 | 55 | #define SOF_TKN_SCHED_LP_MODE 207 |
| 56 | 56 | #define SOF_TKN_SCHED_MEM_USAGE 208 |
| 57 | +#define SOF_TKN_SCHED_USE_CHAIN_DMA 209 | |
| 57 | 58 | |
| 58 | 59 | /* volume */ |
| 59 | 60 | #define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250 |
| @@ -88,14 +89,16 @@ · 28 unmodified lines | ||
| 88 | 89 | #define SOF_TKN_COMP_CPC 406 |
| 89 | 90 | #define SOF_TKN_COMP_IS_PAGES 409 |
| 90 | 91 | #define SOF_TKN_COMP_NUM_AUDIO_FORMATS 410 |
| 91 | −#define SOF_TKN_COMP_NUM_SINK_PINS 411 | |
| 92 | −#define SOF_TKN_COMP_NUM_SOURCE_PINS 412 | |
| 92 | +#define SOF_TKN_COMP_NUM_INPUT_PINS 411 | |
| 93 | +#define SOF_TKN_COMP_NUM_OUTPUT_PINS 412 | |
| 93 | 94 | /* |
| 94 | − * The token for sink/source pin binding, it specifies the widget | |
| 95 | − * name that the sink/source pin is connected from/to. | |
| 95 | + * The token for input/output pin binding, it specifies the widget | |
| 96 | + * name that the input/output pin is connected from/to. | |
| 96 | 97 | */ |
| 97 | −#define SOF_TKN_COMP_SINK_PIN_BINDING_WNAME 413 | |
| 98 | −#define SOF_TKN_COMP_SRC_PIN_BINDING_WNAME 414 | |
| 98 | +#define SOF_TKN_COMP_INPUT_PIN_BINDING_WNAME 413 | |
| 99 | +#define SOF_TKN_COMP_OUTPUT_PIN_BINDING_WNAME 414 | |
| 100 | +#define SOF_TKN_COMP_NUM_INPUT_AUDIO_FORMATS 415 | |
| 101 | +#define SOF_TKN_COMP_NUM_OUTPUT_AUDIO_FORMATS 416 | |
| 99 | 102 | |
| 100 | 103 | |
| 101 | 104 | /* SSP */ |
| @@ -173,17 +176,18 @@ · 71 unmodified lines | ||
| 173 | 176 | /* CAVS AUDIO FORMAT */ |
| 174 | 177 | #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_RATE 1900 |
| 175 | 178 | #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_BIT_DEPTH 1901 |
| 176 | −#define SOF_TKN_CAVS_AUDIO_FORMAT_IN_VALID_BIT 1902 | |
| 179 | +#define SOF_TKN_CAVS_AUDIO_FORMAT_IN_VALID_BIT_DEPTH 1902 | |
| 177 | 180 | #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_CHANNELS 1903 |
| 178 | 181 | #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_CH_MAP 1904 |
| 179 | 182 | #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_CH_CFG 1905 |
| 180 | 183 | #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_INTERLEAVING_STYLE 1906 |
| 181 | 184 | #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_FMT_CFG 1907 |
| 182 | 185 | #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_SAMPLE_TYPE 1908 |
| 186 | +#define SOF_TKN_CAVS_AUDIO_FORMAT_PIN_INDEX 1909 | |
| 183 | 187 | /* intentional token numbering discontinuity, reserved for future use */ |
| 184 | 188 | #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_RATE 1930 |
| 185 | 189 | #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_BIT_DEPTH 1931 |
| 186 | −#define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_VALID_BIT 1932 | |
| 190 | +#define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_VALID_BIT_DEPTH 1932 | |
| 187 | 191 | #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_CHANNELS 1933 |
| 188 | 192 | #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_CH_MAP 1934 |
| 189 | 193 | #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_CH_CFG 1935 |
| @@ -197,6 +201,7 @@ · 7 unmodified lines | ||
| 197 | 201 | |
| 198 | 202 | /* COPIER */ |
| 199 | 203 | #define SOF_TKN_INTEL_COPIER_NODE_TYPE 1980 |
| 204 | +#define SOF_TKN_INTEL_COPIER_DEEP_BUFFER_DMA_MS 1981 | |
| 200 | 205 | |
| 201 | 206 | /* ACP I2S */ |
| 202 | 207 | #define SOF_TKN_AMD_ACPI2S_RATE 1700 |