@zigc/lib 0.17.0-dev.131 → 0.17.0-dev.135
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
- package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
- package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
- package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
- package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
- package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
- package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
- package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
- package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
- package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
- package/libc/include/any-linux-any/linux/android/binder.h +1 -1
- package/libc/include/any-linux-any/linux/bpf.h +28 -0
- package/libc/include/any-linux-any/linux/btrfs.h +1 -0
- package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
- package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
- package/libc/include/any-linux-any/linux/dpll.h +1 -0
- package/libc/include/any-linux-any/linux/elf.h +2 -0
- package/libc/include/any-linux-any/linux/ethtool.h +21 -5
- package/libc/include/any-linux-any/linux/fs.h +1 -0
- package/libc/include/any-linux-any/linux/hyperv.h +1 -1
- package/libc/include/any-linux-any/linux/idxd.h +134 -134
- package/libc/include/any-linux-any/linux/if_alg.h +1 -1
- package/libc/include/any-linux-any/linux/if_link.h +1 -0
- package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
- package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
- package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
- package/libc/include/any-linux-any/linux/io_uring.h +33 -2
- package/libc/include/any-linux-any/linux/iommufd.h +39 -0
- package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
- package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
- package/libc/include/any-linux-any/linux/kvm.h +30 -6
- package/libc/include/any-linux-any/linux/landlock.h +22 -8
- package/libc/include/any-linux-any/linux/magic.h +1 -0
- package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
- package/libc/include/any-linux-any/linux/mount.h +11 -2
- package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
- package/libc/include/any-linux-any/linux/mshv.h +2 -0
- package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
- package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
- package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
- package/libc/include/any-linux-any/linux/nfs.h +1 -1
- package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
- package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
- package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
- package/libc/include/any-linux-any/linux/nl80211.h +104 -3
- package/libc/include/any-linux-any/linux/pci.h +7 -0
- package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
- package/libc/include/any-linux-any/linux/pcitest.h +1 -0
- package/libc/include/any-linux-any/linux/perf_event.h +24 -3
- package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
- package/libc/include/any-linux-any/linux/prctl.h +30 -0
- package/libc/include/any-linux-any/linux/rseq.h +62 -5
- package/libc/include/any-linux-any/linux/shm.h +0 -1
- package/libc/include/any-linux-any/linux/stddef.h +4 -0
- package/libc/include/any-linux-any/linux/sysctl.h +1 -2
- package/libc/include/any-linux-any/linux/taskstats.h +12 -1
- package/libc/include/any-linux-any/linux/tcp.h +23 -3
- package/libc/include/any-linux-any/linux/typelimits.h +8 -0
- package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
- package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
- package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
- package/libc/include/any-linux-any/linux/vduse.h +80 -5
- package/libc/include/any-linux-any/linux/version.h +3 -3
- package/libc/include/any-linux-any/linux/vfio.h +4 -0
- package/libc/include/any-linux-any/linux/videodev2.h +3 -0
- package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
- package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
- package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
- package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
- package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
- package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
- package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
- package/libc/include/arc-linux-any/asm/swab.h +0 -63
- package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
- package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
- package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
- package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
- package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/mips-linux-any/asm/errno.h +2 -0
- package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
- package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
- package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
- package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/sparc-linux-any/asm/errno.h +2 -0
- package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
- package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
- package/libc/include/x86-linux-any/asm/kvm.h +13 -8
- package/libc/include/x86-linux-any/asm/svm.h +16 -16
- package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
- package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
- package/package.json +1 -1
- package/std/os/linux/syscalls.zig +26 -1
- package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
- package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#ifndef _USR_IDXD_H_
|
|
4
4
|
#define _USR_IDXD_H_
|
|
5
5
|
|
|
6
|
-
#include <
|
|
6
|
+
#include <linux/types.h>
|
|
7
7
|
|
|
8
8
|
/* Driver command error status */
|
|
9
9
|
enum idxd_scmd_stat {
|
|
@@ -172,132 +172,132 @@ enum iax_completion_status {
|
|
|
172
172
|
#define DSA_COMP_STATUS(status) ((status) & DSA_COMP_STATUS_MASK)
|
|
173
173
|
|
|
174
174
|
struct dsa_hw_desc {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
175
|
+
__u32 pasid:20;
|
|
176
|
+
__u32 rsvd:11;
|
|
177
|
+
__u32 priv:1;
|
|
178
|
+
__u32 flags:24;
|
|
179
|
+
__u32 opcode:8;
|
|
180
|
+
__u64 completion_addr;
|
|
181
181
|
union {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
182
|
+
__u64 src_addr;
|
|
183
|
+
__u64 rdback_addr;
|
|
184
|
+
__u64 pattern;
|
|
185
|
+
__u64 desc_list_addr;
|
|
186
|
+
__u64 pattern_lower;
|
|
187
|
+
__u64 transl_fetch_addr;
|
|
188
188
|
};
|
|
189
189
|
union {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
__u64 dst_addr;
|
|
191
|
+
__u64 rdback_addr2;
|
|
192
|
+
__u64 src2_addr;
|
|
193
|
+
__u64 comp_pattern;
|
|
194
194
|
};
|
|
195
195
|
union {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
196
|
+
__u32 xfer_size;
|
|
197
|
+
__u32 desc_count;
|
|
198
|
+
__u32 region_size;
|
|
199
199
|
};
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
__u16 int_handle;
|
|
201
|
+
__u16 rsvd1;
|
|
202
202
|
union {
|
|
203
|
-
|
|
203
|
+
__u8 expected_res;
|
|
204
204
|
/* create delta record */
|
|
205
205
|
struct {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
206
|
+
__u64 delta_addr;
|
|
207
|
+
__u32 max_delta_size;
|
|
208
|
+
__u32 delt_rsvd;
|
|
209
|
+
__u8 expected_res_mask;
|
|
210
210
|
};
|
|
211
|
-
|
|
212
|
-
|
|
211
|
+
__u32 delta_rec_size;
|
|
212
|
+
__u64 dest2;
|
|
213
213
|
/* CRC */
|
|
214
214
|
struct {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
__u32 crc_seed;
|
|
216
|
+
__u32 crc_rsvd;
|
|
217
|
+
__u64 seed_addr;
|
|
218
218
|
};
|
|
219
219
|
/* DIF check or strip */
|
|
220
220
|
struct {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
221
|
+
__u8 src_dif_flags;
|
|
222
|
+
__u8 dif_chk_res;
|
|
223
|
+
__u8 dif_chk_flags;
|
|
224
|
+
__u8 dif_chk_res2[5];
|
|
225
|
+
__u32 chk_ref_tag_seed;
|
|
226
|
+
__u16 chk_app_tag_mask;
|
|
227
|
+
__u16 chk_app_tag_seed;
|
|
228
228
|
};
|
|
229
229
|
/* DIF insert */
|
|
230
230
|
struct {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
231
|
+
__u8 dif_ins_res;
|
|
232
|
+
__u8 dest_dif_flag;
|
|
233
|
+
__u8 dif_ins_flags;
|
|
234
|
+
__u8 dif_ins_res2[13];
|
|
235
|
+
__u32 ins_ref_tag_seed;
|
|
236
|
+
__u16 ins_app_tag_mask;
|
|
237
|
+
__u16 ins_app_tag_seed;
|
|
238
238
|
};
|
|
239
239
|
/* DIF update */
|
|
240
240
|
struct {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
241
|
+
__u8 src_upd_flags;
|
|
242
|
+
__u8 upd_dest_flags;
|
|
243
|
+
__u8 dif_upd_flags;
|
|
244
|
+
__u8 dif_upd_res[5];
|
|
245
|
+
__u32 src_ref_tag_seed;
|
|
246
|
+
__u16 src_app_tag_mask;
|
|
247
|
+
__u16 src_app_tag_seed;
|
|
248
|
+
__u32 dest_ref_tag_seed;
|
|
249
|
+
__u16 dest_app_tag_mask;
|
|
250
|
+
__u16 dest_app_tag_seed;
|
|
251
251
|
};
|
|
252
252
|
|
|
253
253
|
/* Fill */
|
|
254
|
-
|
|
254
|
+
__u64 pattern_upper;
|
|
255
255
|
|
|
256
256
|
/* Translation fetch */
|
|
257
257
|
struct {
|
|
258
|
-
|
|
259
|
-
|
|
258
|
+
__u64 transl_fetch_res;
|
|
259
|
+
__u32 region_stride;
|
|
260
260
|
};
|
|
261
261
|
|
|
262
262
|
/* DIX generate */
|
|
263
263
|
struct {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
264
|
+
__u8 dix_gen_res;
|
|
265
|
+
__u8 dest_dif_flags;
|
|
266
|
+
__u8 dif_flags;
|
|
267
|
+
__u8 dix_gen_res2[13];
|
|
268
|
+
__u32 ref_tag_seed;
|
|
269
|
+
__u16 app_tag_mask;
|
|
270
|
+
__u16 app_tag_seed;
|
|
271
271
|
};
|
|
272
272
|
|
|
273
|
-
|
|
273
|
+
__u8 op_specific[24];
|
|
274
274
|
};
|
|
275
275
|
} __attribute__((packed));
|
|
276
276
|
|
|
277
277
|
struct iax_hw_desc {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
278
|
+
__u32 pasid:20;
|
|
279
|
+
__u32 rsvd:11;
|
|
280
|
+
__u32 priv:1;
|
|
281
|
+
__u32 flags:24;
|
|
282
|
+
__u32 opcode:8;
|
|
283
|
+
__u64 completion_addr;
|
|
284
|
+
__u64 src1_addr;
|
|
285
|
+
__u64 dst_addr;
|
|
286
|
+
__u32 src1_size;
|
|
287
|
+
__u16 int_handle;
|
|
288
288
|
union {
|
|
289
|
-
|
|
290
|
-
|
|
289
|
+
__u16 compr_flags;
|
|
290
|
+
__u16 decompr_flags;
|
|
291
291
|
};
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
292
|
+
__u64 src2_addr;
|
|
293
|
+
__u32 max_dst_size;
|
|
294
|
+
__u32 src2_size;
|
|
295
|
+
__u32 filter_flags;
|
|
296
|
+
__u32 num_inputs;
|
|
297
297
|
} __attribute__((packed));
|
|
298
298
|
|
|
299
299
|
struct dsa_raw_desc {
|
|
300
|
-
|
|
300
|
+
__u64 field[8];
|
|
301
301
|
} __attribute__((packed));
|
|
302
302
|
|
|
303
303
|
/*
|
|
@@ -305,91 +305,91 @@ struct dsa_raw_desc {
|
|
|
305
305
|
* __volatile__ and prevent the compiler from optimize the read.
|
|
306
306
|
*/
|
|
307
307
|
struct dsa_completion_record {
|
|
308
|
-
__volatile__
|
|
308
|
+
__volatile__ __u8 status;
|
|
309
309
|
union {
|
|
310
|
-
|
|
311
|
-
|
|
310
|
+
__u8 result;
|
|
311
|
+
__u8 dif_status;
|
|
312
312
|
};
|
|
313
|
-
|
|
314
|
-
|
|
313
|
+
__u8 fault_info;
|
|
314
|
+
__u8 rsvd;
|
|
315
315
|
union {
|
|
316
|
-
|
|
317
|
-
|
|
316
|
+
__u32 bytes_completed;
|
|
317
|
+
__u32 descs_completed;
|
|
318
318
|
};
|
|
319
|
-
|
|
319
|
+
__u64 fault_addr;
|
|
320
320
|
union {
|
|
321
321
|
/* common record */
|
|
322
322
|
struct {
|
|
323
|
-
|
|
324
|
-
|
|
323
|
+
__u32 invalid_flags:24;
|
|
324
|
+
__u32 rsvd2:8;
|
|
325
325
|
};
|
|
326
326
|
|
|
327
|
-
|
|
328
|
-
|
|
327
|
+
__u32 delta_rec_size;
|
|
328
|
+
__u64 crc_val;
|
|
329
329
|
|
|
330
330
|
/* DIF check & strip */
|
|
331
331
|
struct {
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
332
|
+
__u32 dif_chk_ref_tag;
|
|
333
|
+
__u16 dif_chk_app_tag_mask;
|
|
334
|
+
__u16 dif_chk_app_tag;
|
|
335
335
|
};
|
|
336
336
|
|
|
337
337
|
/* DIF insert */
|
|
338
338
|
struct {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
339
|
+
__u64 dif_ins_res;
|
|
340
|
+
__u32 dif_ins_ref_tag;
|
|
341
|
+
__u16 dif_ins_app_tag_mask;
|
|
342
|
+
__u16 dif_ins_app_tag;
|
|
343
343
|
};
|
|
344
344
|
|
|
345
345
|
/* DIF update */
|
|
346
346
|
struct {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
347
|
+
__u32 dif_upd_src_ref_tag;
|
|
348
|
+
__u16 dif_upd_src_app_tag_mask;
|
|
349
|
+
__u16 dif_upd_src_app_tag;
|
|
350
|
+
__u32 dif_upd_dest_ref_tag;
|
|
351
|
+
__u16 dif_upd_dest_app_tag_mask;
|
|
352
|
+
__u16 dif_upd_dest_app_tag;
|
|
353
353
|
};
|
|
354
354
|
|
|
355
355
|
/* DIX generate */
|
|
356
356
|
struct {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
357
|
+
__u64 dix_gen_res;
|
|
358
|
+
__u32 dix_ref_tag;
|
|
359
|
+
__u16 dix_app_tag_mask;
|
|
360
|
+
__u16 dix_app_tag;
|
|
361
361
|
};
|
|
362
362
|
|
|
363
|
-
|
|
363
|
+
__u8 op_specific[16];
|
|
364
364
|
};
|
|
365
365
|
} __attribute__((packed));
|
|
366
366
|
|
|
367
367
|
struct dsa_raw_completion_record {
|
|
368
|
-
|
|
368
|
+
__u64 field[4];
|
|
369
369
|
} __attribute__((packed));
|
|
370
370
|
|
|
371
371
|
struct iax_completion_record {
|
|
372
|
-
__volatile__
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
372
|
+
__volatile__ __u8 status;
|
|
373
|
+
__u8 error_code;
|
|
374
|
+
__u8 fault_info;
|
|
375
|
+
__u8 rsvd;
|
|
376
|
+
__u32 bytes_completed;
|
|
377
|
+
__u64 fault_addr;
|
|
378
|
+
__u32 invalid_flags;
|
|
379
|
+
__u32 rsvd2;
|
|
380
|
+
__u32 output_size;
|
|
381
|
+
__u8 output_bits;
|
|
382
|
+
__u8 rsvd3;
|
|
383
|
+
__u16 xor_csum;
|
|
384
|
+
__u32 crc;
|
|
385
|
+
__u32 min;
|
|
386
|
+
__u32 max;
|
|
387
|
+
__u32 sum;
|
|
388
|
+
__u64 rsvd4[2];
|
|
389
389
|
} __attribute__((packed));
|
|
390
390
|
|
|
391
391
|
struct iax_raw_completion_record {
|
|
392
|
-
|
|
392
|
+
__u64 field[8];
|
|
393
393
|
} __attribute__((packed));
|
|
394
394
|
|
|
395
395
|
#endif
|
|
@@ -643,6 +643,10 @@
|
|
|
643
643
|
#define KEY_EPRIVACY_SCREEN_ON 0x252
|
|
644
644
|
#define KEY_EPRIVACY_SCREEN_OFF 0x253
|
|
645
645
|
|
|
646
|
+
#define KEY_ACTION_ON_SELECTION 0x254 /* AL Action on Selection (HUTRR119) */
|
|
647
|
+
#define KEY_CONTEXTUAL_INSERT 0x255 /* AL Contextual Insertion (HUTRR119) */
|
|
648
|
+
#define KEY_CONTEXTUAL_QUERY 0x256 /* AL Contextual Query (HUTRR119) */
|
|
649
|
+
|
|
646
650
|
#define KEY_KBDINPUTASSIST_PREV 0x260
|
|
647
651
|
#define KEY_KBDINPUTASSIST_NEXT 0x261
|
|
648
652
|
#define KEY_KBDINPUTASSIST_PREVGROUP 0x262
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */
|
|
2
|
+
/*
|
|
3
|
+
* Header file for the io_uring BPF filters.
|
|
4
|
+
*/
|
|
5
|
+
#ifndef LINUX_IO_URING_BPF_FILTER_H
|
|
6
|
+
#define LINUX_IO_URING_BPF_FILTER_H
|
|
7
|
+
|
|
8
|
+
#include <linux/types.h>
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* Struct passed to filters.
|
|
12
|
+
*/
|
|
13
|
+
struct io_uring_bpf_ctx {
|
|
14
|
+
__u64 user_data;
|
|
15
|
+
__u8 opcode;
|
|
16
|
+
__u8 sqe_flags;
|
|
17
|
+
__u8 pdu_size; /* size of aux data for filter */
|
|
18
|
+
__u8 pad[5];
|
|
19
|
+
union {
|
|
20
|
+
struct {
|
|
21
|
+
__u32 family;
|
|
22
|
+
__u32 type;
|
|
23
|
+
__u32 protocol;
|
|
24
|
+
} socket;
|
|
25
|
+
struct {
|
|
26
|
+
__u64 flags;
|
|
27
|
+
__u64 mode;
|
|
28
|
+
__u64 resolve;
|
|
29
|
+
} open;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
enum {
|
|
34
|
+
/*
|
|
35
|
+
* If set, any currently unset opcode will have a deny filter attached
|
|
36
|
+
*/
|
|
37
|
+
IO_URING_BPF_FILTER_DENY_REST = 1,
|
|
38
|
+
/*
|
|
39
|
+
* If set, if kernel and application don't agree on pdu_size for
|
|
40
|
+
* the given opcode, fail the registration of the filter.
|
|
41
|
+
*/
|
|
42
|
+
IO_URING_BPF_FILTER_SZ_STRICT = 2,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
struct io_uring_bpf_filter {
|
|
46
|
+
__u32 opcode; /* io_uring opcode to filter */
|
|
47
|
+
__u32 flags;
|
|
48
|
+
__u32 filter_len; /* number of BPF instructions */
|
|
49
|
+
__u8 pdu_size; /* expected pdu size for opcode */
|
|
50
|
+
__u8 resv[3];
|
|
51
|
+
__u64 filter_ptr; /* pointer to BPF filter */
|
|
52
|
+
__u64 resv2[5];
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
enum {
|
|
56
|
+
IO_URING_BPF_CMD_FILTER = 1,
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
struct io_uring_bpf {
|
|
60
|
+
__u16 cmd_type; /* IO_URING_BPF_* values */
|
|
61
|
+
__u16 cmd_flags; /* none so far */
|
|
62
|
+
__u32 resv;
|
|
63
|
+
union {
|
|
64
|
+
struct io_uring_bpf_filter filter;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
#endif
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */
|
|
2
2
|
/*
|
|
3
3
|
* Header file for the io_uring query interface.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2026 Pavel Begunkov <asml.silence@gmail.com>
|
|
6
|
+
* Copyright (C) Meta Platforms, Inc.
|
|
4
7
|
*/
|
|
5
8
|
#ifndef LINUX_IO_URING_QUERY_H
|
|
6
9
|
#define LINUX_IO_URING_QUERY_H
|
|
@@ -50,7 +53,8 @@ struct io_uring_query_zcrx {
|
|
|
50
53
|
__u64 area_flags;
|
|
51
54
|
/* The number of supported ZCRX_CTRL_* opcodes */
|
|
52
55
|
__u32 nr_ctrl_opcodes;
|
|
53
|
-
|
|
56
|
+
/* Bitmask of ZCRX_FEATURE_* indicating which features are available */
|
|
57
|
+
__u32 features;
|
|
54
58
|
/* The refill ring header size */
|
|
55
59
|
__u32 rq_hdr_size;
|
|
56
60
|
/* The alignment for the header */
|
|
@@ -188,7 +188,8 @@ enum io_uring_sqe_flags_bit {
|
|
|
188
188
|
/*
|
|
189
189
|
* If COOP_TASKRUN is set, get notified if task work is available for
|
|
190
190
|
* running and a kernel transition would be needed to run it. This sets
|
|
191
|
-
* IORING_SQ_TASKRUN in the sq ring flags. Not valid
|
|
191
|
+
* IORING_SQ_TASKRUN in the sq ring flags. Not valid without COOP_TASKRUN
|
|
192
|
+
* or DEFER_TASKRUN.
|
|
192
193
|
*/
|
|
193
194
|
#define IORING_SETUP_TASKRUN_FLAG (1U << 9)
|
|
194
195
|
#define IORING_SETUP_SQE128 (1U << 10) /* SQEs are 128 byte */
|
|
@@ -237,6 +238,18 @@ enum io_uring_sqe_flags_bit {
|
|
|
237
238
|
*/
|
|
238
239
|
#define IORING_SETUP_SQE_MIXED (1U << 19)
|
|
239
240
|
|
|
241
|
+
/*
|
|
242
|
+
* When set, io_uring ignores SQ head and tail and fetches SQEs to submit
|
|
243
|
+
* starting from index 0 instead from the index stored in the head pointer.
|
|
244
|
+
* IOW, the user should place all SQE at the beginning of the SQ memory
|
|
245
|
+
* before issuing a submission syscall.
|
|
246
|
+
*
|
|
247
|
+
* It requires IORING_SETUP_NO_SQARRAY and is incompatible with
|
|
248
|
+
* IORING_SETUP_SQPOLL. The user must also never change the SQ head and tail
|
|
249
|
+
* values and keep it set to 0. Any other value is undefined behaviour.
|
|
250
|
+
*/
|
|
251
|
+
#define IORING_SETUP_SQ_REWIND (1U << 20)
|
|
252
|
+
|
|
240
253
|
enum io_uring_op {
|
|
241
254
|
IORING_OP_NOP,
|
|
242
255
|
IORING_OP_READV,
|
|
@@ -700,6 +713,9 @@ enum io_uring_register_op {
|
|
|
700
713
|
/* auxiliary zcrx configuration, see enum zcrx_ctrl_op */
|
|
701
714
|
IORING_REGISTER_ZCRX_CTRL = 36,
|
|
702
715
|
|
|
716
|
+
/* register bpf filtering programs */
|
|
717
|
+
IORING_REGISTER_BPF_FILTER = 37,
|
|
718
|
+
|
|
703
719
|
/* this goes last */
|
|
704
720
|
IORING_REGISTER_LAST,
|
|
705
721
|
|
|
@@ -805,6 +821,13 @@ struct io_uring_restriction {
|
|
|
805
821
|
__u32 resv2[3];
|
|
806
822
|
};
|
|
807
823
|
|
|
824
|
+
struct io_uring_task_restriction {
|
|
825
|
+
__u16 flags;
|
|
826
|
+
__u16 nr_res;
|
|
827
|
+
__u32 resv[3];
|
|
828
|
+
__DECLARE_FLEX_ARRAY(struct io_uring_restriction, restrictions);
|
|
829
|
+
};
|
|
830
|
+
|
|
808
831
|
struct io_uring_clock_register {
|
|
809
832
|
__u32 clockid;
|
|
810
833
|
__u32 __resv[3];
|
|
@@ -1068,6 +1091,14 @@ enum zcrx_reg_flags {
|
|
|
1068
1091
|
ZCRX_REG_IMPORT = 1,
|
|
1069
1092
|
};
|
|
1070
1093
|
|
|
1094
|
+
enum zcrx_features {
|
|
1095
|
+
/*
|
|
1096
|
+
* The user can ask for the desired rx page size by passing the
|
|
1097
|
+
* value in struct io_uring_zcrx_ifq_reg::rx_buf_len.
|
|
1098
|
+
*/
|
|
1099
|
+
ZCRX_FEATURE_RX_PAGE_SIZE = 1 << 0,
|
|
1100
|
+
};
|
|
1101
|
+
|
|
1071
1102
|
/*
|
|
1072
1103
|
* Argument for IORING_REGISTER_ZCRX_IFQ
|
|
1073
1104
|
*/
|
|
@@ -1082,7 +1113,7 @@ struct io_uring_zcrx_ifq_reg {
|
|
|
1082
1113
|
|
|
1083
1114
|
struct io_uring_zcrx_offsets offsets;
|
|
1084
1115
|
__u32 zcrx_id;
|
|
1085
|
-
__u32
|
|
1116
|
+
__u32 rx_buf_len;
|
|
1086
1117
|
__u64 __resv[3];
|
|
1087
1118
|
};
|
|
1088
1119
|
|
|
@@ -465,16 +465,27 @@ struct iommu_hwpt_arm_smmuv3 {
|
|
|
465
465
|
__aligned_le64 ste[2];
|
|
466
466
|
};
|
|
467
467
|
|
|
468
|
+
/**
|
|
469
|
+
* struct iommu_hwpt_amd_guest - AMD IOMMU guest I/O page table data
|
|
470
|
+
* (IOMMU_HWPT_DATA_AMD_GUEST)
|
|
471
|
+
* @dte: Guest Device Table Entry (DTE)
|
|
472
|
+
*/
|
|
473
|
+
struct iommu_hwpt_amd_guest {
|
|
474
|
+
__aligned_u64 dte[4];
|
|
475
|
+
};
|
|
476
|
+
|
|
468
477
|
/**
|
|
469
478
|
* enum iommu_hwpt_data_type - IOMMU HWPT Data Type
|
|
470
479
|
* @IOMMU_HWPT_DATA_NONE: no data
|
|
471
480
|
* @IOMMU_HWPT_DATA_VTD_S1: Intel VT-d stage-1 page table
|
|
472
481
|
* @IOMMU_HWPT_DATA_ARM_SMMUV3: ARM SMMUv3 Context Descriptor Table
|
|
482
|
+
* @IOMMU_HWPT_DATA_AMD_GUEST: AMD IOMMU guest page table
|
|
473
483
|
*/
|
|
474
484
|
enum iommu_hwpt_data_type {
|
|
475
485
|
IOMMU_HWPT_DATA_NONE = 0,
|
|
476
486
|
IOMMU_HWPT_DATA_VTD_S1 = 1,
|
|
477
487
|
IOMMU_HWPT_DATA_ARM_SMMUV3 = 2,
|
|
488
|
+
IOMMU_HWPT_DATA_AMD_GUEST = 3,
|
|
478
489
|
};
|
|
479
490
|
|
|
480
491
|
/**
|
|
@@ -623,6 +634,32 @@ struct iommu_hw_info_tegra241_cmdqv {
|
|
|
623
634
|
__u8 __reserved;
|
|
624
635
|
};
|
|
625
636
|
|
|
637
|
+
/**
|
|
638
|
+
* struct iommu_hw_info_amd - AMD IOMMU device info
|
|
639
|
+
*
|
|
640
|
+
* @efr : Value of AMD IOMMU Extended Feature Register (EFR)
|
|
641
|
+
* @efr2: Value of AMD IOMMU Extended Feature 2 Register (EFR2)
|
|
642
|
+
*
|
|
643
|
+
* Please See description of these registers in the following sections of
|
|
644
|
+
* the AMD I/O Virtualization Technology (IOMMU) Specification.
|
|
645
|
+
* (https://docs.amd.com/v/u/en-US/48882_3.10_PUB)
|
|
646
|
+
*
|
|
647
|
+
* - MMIO Offset 0030h IOMMU Extended Feature Register
|
|
648
|
+
* - MMIO Offset 01A0h IOMMU Extended Feature 2 Register
|
|
649
|
+
*
|
|
650
|
+
* Note: The EFR and EFR2 are raw values reported by hardware.
|
|
651
|
+
* VMM is responsible to determine the appropriate flags to be exposed to
|
|
652
|
+
* the VM since cetertain features are not currently supported by the kernel
|
|
653
|
+
* for HW-vIOMMU.
|
|
654
|
+
*
|
|
655
|
+
* Current VMM-allowed list of feature flags are:
|
|
656
|
+
* - EFR[GTSup, GASup, GioSup, PPRSup, EPHSup, GATS, GLX, PASmax]
|
|
657
|
+
*/
|
|
658
|
+
struct iommu_hw_info_amd {
|
|
659
|
+
__aligned_u64 efr;
|
|
660
|
+
__aligned_u64 efr2;
|
|
661
|
+
};
|
|
662
|
+
|
|
626
663
|
/**
|
|
627
664
|
* enum iommu_hw_info_type - IOMMU Hardware Info Types
|
|
628
665
|
* @IOMMU_HW_INFO_TYPE_NONE: Output by the drivers that do not report hardware
|
|
@@ -632,6 +669,7 @@ struct iommu_hw_info_tegra241_cmdqv {
|
|
|
632
669
|
* @IOMMU_HW_INFO_TYPE_ARM_SMMUV3: ARM SMMUv3 iommu info type
|
|
633
670
|
* @IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV: NVIDIA Tegra241 CMDQV (extension for ARM
|
|
634
671
|
* SMMUv3) info type
|
|
672
|
+
* @IOMMU_HW_INFO_TYPE_AMD: AMD IOMMU info type
|
|
635
673
|
*/
|
|
636
674
|
enum iommu_hw_info_type {
|
|
637
675
|
IOMMU_HW_INFO_TYPE_NONE = 0,
|
|
@@ -639,6 +677,7 @@ enum iommu_hw_info_type {
|
|
|
639
677
|
IOMMU_HW_INFO_TYPE_INTEL_VTD = 1,
|
|
640
678
|
IOMMU_HW_INFO_TYPE_ARM_SMMUV3 = 2,
|
|
641
679
|
IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV = 3,
|
|
680
|
+
IOMMU_HW_INFO_TYPE_AMD = 4,
|
|
642
681
|
};
|
|
643
682
|
|
|
644
683
|
/**
|
|
@@ -44,9 +44,13 @@
|
|
|
44
44
|
* - 1.16 - Add contiguous VRAM allocation flag
|
|
45
45
|
* - 1.17 - Add SDMA queue creation with target SDMA engine ID
|
|
46
46
|
* - 1.18 - Rename pad in set_memory_policy_args to misc_process_flag
|
|
47
|
+
* - 1.19 - Add a new ioctl to craete secondary kfd processes
|
|
48
|
+
* - 1.20 - Trap handler support for expert scheduling mode available
|
|
49
|
+
* - 1.21 - Debugger support to subscribe to LDS out-of-address exceptions
|
|
50
|
+
* - 1.22 - Add queue creation with metadata ring base address
|
|
47
51
|
*/
|
|
48
52
|
#define KFD_IOCTL_MAJOR_VERSION 1
|
|
49
|
-
#define KFD_IOCTL_MINOR_VERSION
|
|
53
|
+
#define KFD_IOCTL_MINOR_VERSION 22
|
|
50
54
|
|
|
51
55
|
struct kfd_ioctl_get_version_args {
|
|
52
56
|
__u32 major_version; /* from KFD */
|
|
@@ -84,7 +88,7 @@ struct kfd_ioctl_create_queue_args {
|
|
|
84
88
|
__u32 ctx_save_restore_size; /* to KFD */
|
|
85
89
|
__u32 ctl_stack_size; /* to KFD */
|
|
86
90
|
__u32 sdma_engine_id; /* to KFD */
|
|
87
|
-
__u32
|
|
91
|
+
__u32 metadata_ring_size; /* to KFD */
|
|
88
92
|
};
|
|
89
93
|
|
|
90
94
|
struct kfd_ioctl_destroy_queue_args {
|
|
@@ -145,6 +149,8 @@ struct kfd_dbg_device_info_entry {
|
|
|
145
149
|
__u32 num_xcc;
|
|
146
150
|
__u32 capability;
|
|
147
151
|
__u32 debug_prop;
|
|
152
|
+
__u32 capability2;
|
|
153
|
+
__u32 pad;
|
|
148
154
|
};
|
|
149
155
|
|
|
150
156
|
/* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */
|
|
@@ -945,6 +951,7 @@ enum kfd_dbg_trap_address_watch_mode {
|
|
|
945
951
|
enum kfd_dbg_trap_flags {
|
|
946
952
|
KFD_DBG_TRAP_FLAG_SINGLE_MEM_OP = 1,
|
|
947
953
|
KFD_DBG_TRAP_FLAG_SINGLE_ALU_OP = 2,
|
|
954
|
+
KFD_DBG_TRAP_FLAG_LDS_OUT_OF_ADDR_RANGE = 4
|
|
948
955
|
};
|
|
949
956
|
|
|
950
957
|
/* Trap exceptions */
|
|
@@ -1671,7 +1678,10 @@ struct kfd_ioctl_dbg_trap_args {
|
|
|
1671
1678
|
#define AMDKFD_IOC_DBG_TRAP \
|
|
1672
1679
|
AMDKFD_IOWR(0x26, struct kfd_ioctl_dbg_trap_args)
|
|
1673
1680
|
|
|
1681
|
+
#define AMDKFD_IOC_CREATE_PROCESS \
|
|
1682
|
+
AMDKFD_IO(0x27)
|
|
1683
|
+
|
|
1674
1684
|
#define AMDKFD_COMMAND_START 0x01
|
|
1675
|
-
#define AMDKFD_COMMAND_END
|
|
1685
|
+
#define AMDKFD_COMMAND_END 0x28
|
|
1676
1686
|
|
|
1677
1687
|
#endif
|