@zigc/lib 0.16.0 → 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.
Files changed (268) hide show
  1. package/c/fcntl.zig +6 -1
  2. package/c/inttypes.zig +0 -10
  3. package/c/math.zig +46 -122
  4. package/c/pthread.zig +57 -0
  5. package/c/search.zig +1 -27
  6. package/c/stdlib/drand48.zig +0 -57
  7. package/c/stdlib.zig +0 -100
  8. package/c/string.zig +20 -7
  9. package/c/strings.zig +0 -38
  10. package/c/unistd.zig +27 -26
  11. package/c/wchar.zig +10 -0
  12. package/c.zig +2 -2
  13. package/compiler/aro/aro/CodeGen.zig +5 -6
  14. package/compiler/aro/aro/Compilation.zig +17 -14
  15. package/compiler/aro/aro/Driver.zig +14 -13
  16. package/compiler/aro/aro/Parser.zig +20 -15
  17. package/compiler/aro/aro/Pragma.zig +3 -2
  18. package/compiler/aro/aro/Preprocessor.zig +9 -6
  19. package/compiler/aro/aro/pragmas/message.zig +3 -2
  20. package/compiler/aro/aro/text_literal.zig +3 -2
  21. package/compiler/aro/assembly_backend/x86_64.zig +4 -4
  22. package/compiler/build_runner.zig +0 -2
  23. package/compiler/reduce/Walk.zig +7 -7
  24. package/compiler/test_runner.zig +2 -2
  25. package/compiler/translate-c/Translator.zig +6 -2
  26. package/compiler/translate-c/main.zig +1 -1
  27. package/compiler_rt/cos.zig +0 -2
  28. package/compiler_rt/divmodei4.zig +40 -17
  29. package/compiler_rt/exp.zig +1 -6
  30. package/compiler_rt/exp2.zig +1 -6
  31. package/compiler_rt/exp_f128.zig +377 -0
  32. package/compiler_rt/fabs.zig +0 -2
  33. package/compiler_rt/fma.zig +0 -2
  34. package/compiler_rt/fmax.zig +0 -2
  35. package/compiler_rt/fmin.zig +0 -2
  36. package/compiler_rt/fmod.zig +0 -2
  37. package/compiler_rt/limb64.zig +876 -15
  38. package/compiler_rt/log.zig +0 -2
  39. package/compiler_rt/log10.zig +0 -2
  40. package/compiler_rt/log2.zig +0 -2
  41. package/compiler_rt/mulXi3.zig +1 -1
  42. package/compiler_rt/round.zig +0 -2
  43. package/compiler_rt/sin.zig +0 -2
  44. package/compiler_rt/sincos.zig +0 -2
  45. package/compiler_rt/sqrt.zig +0 -2
  46. package/compiler_rt/ssp.zig +1 -1
  47. package/compiler_rt/tan.zig +0 -2
  48. package/compiler_rt/trunc.zig +0 -2
  49. package/compiler_rt/udivmodei4.zig +28 -0
  50. package/fuzzer.zig +2 -0
  51. package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
  52. package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
  53. package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
  54. package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
  55. package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
  56. package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
  57. package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
  58. package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
  59. package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
  60. package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
  61. package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
  62. package/libc/include/any-linux-any/linux/android/binder.h +1 -1
  63. package/libc/include/any-linux-any/linux/bpf.h +28 -0
  64. package/libc/include/any-linux-any/linux/btrfs.h +1 -0
  65. package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
  66. package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
  67. package/libc/include/any-linux-any/linux/dpll.h +1 -0
  68. package/libc/include/any-linux-any/linux/elf.h +2 -0
  69. package/libc/include/any-linux-any/linux/ethtool.h +21 -5
  70. package/libc/include/any-linux-any/linux/fs.h +1 -0
  71. package/libc/include/any-linux-any/linux/hyperv.h +1 -1
  72. package/libc/include/any-linux-any/linux/idxd.h +134 -134
  73. package/libc/include/any-linux-any/linux/if_alg.h +1 -1
  74. package/libc/include/any-linux-any/linux/if_link.h +1 -0
  75. package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
  76. package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
  77. package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
  78. package/libc/include/any-linux-any/linux/io_uring.h +33 -2
  79. package/libc/include/any-linux-any/linux/iommufd.h +39 -0
  80. package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
  81. package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
  82. package/libc/include/any-linux-any/linux/kvm.h +30 -6
  83. package/libc/include/any-linux-any/linux/landlock.h +22 -8
  84. package/libc/include/any-linux-any/linux/magic.h +1 -0
  85. package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
  86. package/libc/include/any-linux-any/linux/mount.h +11 -2
  87. package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
  88. package/libc/include/any-linux-any/linux/mshv.h +2 -0
  89. package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
  90. package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
  91. package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
  92. package/libc/include/any-linux-any/linux/nfs.h +1 -1
  93. package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
  94. package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
  95. package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
  96. package/libc/include/any-linux-any/linux/nl80211.h +104 -3
  97. package/libc/include/any-linux-any/linux/pci.h +7 -0
  98. package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
  99. package/libc/include/any-linux-any/linux/pcitest.h +1 -0
  100. package/libc/include/any-linux-any/linux/perf_event.h +24 -3
  101. package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
  102. package/libc/include/any-linux-any/linux/prctl.h +30 -0
  103. package/libc/include/any-linux-any/linux/rseq.h +62 -5
  104. package/libc/include/any-linux-any/linux/shm.h +0 -1
  105. package/libc/include/any-linux-any/linux/stddef.h +4 -0
  106. package/libc/include/any-linux-any/linux/sysctl.h +1 -2
  107. package/libc/include/any-linux-any/linux/taskstats.h +12 -1
  108. package/libc/include/any-linux-any/linux/tcp.h +23 -3
  109. package/libc/include/any-linux-any/linux/typelimits.h +8 -0
  110. package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
  111. package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
  112. package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
  113. package/libc/include/any-linux-any/linux/vduse.h +80 -5
  114. package/libc/include/any-linux-any/linux/version.h +3 -3
  115. package/libc/include/any-linux-any/linux/vfio.h +4 -0
  116. package/libc/include/any-linux-any/linux/videodev2.h +3 -0
  117. package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
  118. package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
  119. package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
  120. package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
  121. package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
  122. package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
  123. package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
  124. package/libc/include/arc-linux-any/asm/swab.h +0 -63
  125. package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
  126. package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
  127. package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
  128. package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
  129. package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
  130. package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
  131. package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
  132. package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
  133. package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
  134. package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
  135. package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
  136. package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
  137. package/libc/include/mips-linux-any/asm/errno.h +2 -0
  138. package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
  139. package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
  140. package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
  141. package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
  142. package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
  143. package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
  144. package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
  145. package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
  146. package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
  147. package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
  148. package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
  149. package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
  150. package/libc/include/sparc-linux-any/asm/errno.h +2 -0
  151. package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
  152. package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
  153. package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
  154. package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
  155. package/libc/include/x86-linux-any/asm/kvm.h +13 -8
  156. package/libc/include/x86-linux-any/asm/svm.h +16 -16
  157. package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
  158. package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
  159. package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
  160. package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
  161. package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
  162. package/package.json +1 -1
  163. package/std/Build/Cache.zig +6 -6
  164. package/std/Build/Step/Compile.zig +0 -1
  165. package/std/Build/Step/Run.zig +2 -2
  166. package/std/Build/Step.zig +2 -4
  167. package/std/Build/WebServer.zig +2 -2
  168. package/std/Build.zig +0 -3
  169. package/std/Io/Dir.zig +7 -2
  170. package/std/Io/Dispatch.zig +3 -13
  171. package/std/Io/File/Writer.zig +8 -6
  172. package/std/Io/Reader.zig +8 -9
  173. package/std/Io/Semaphore.zig +112 -17
  174. package/std/Io/Terminal.zig +1 -1
  175. package/std/Io/Threaded.zig +171 -37
  176. package/std/Io/Uring.zig +13 -15
  177. package/std/Io/Writer.zig +46 -42
  178. package/std/Io/net.zig +11 -11
  179. package/std/Io.zig +90 -26
  180. package/std/SemanticVersion.zig +1 -1
  181. package/std/Target/Query.zig +2 -2
  182. package/std/Target.zig +50 -5
  183. package/std/array_hash_map.zig +9 -18
  184. package/std/builtin.zig +4 -0
  185. package/std/c/haiku.zig +3 -0
  186. package/std/c/serenity.zig +1 -6
  187. package/std/c.zig +89 -7
  188. package/std/compress/flate/Decompress.zig +2 -3
  189. package/std/compress/zstd/Decompress.zig +2 -4
  190. package/std/crypto/Certificate.zig +13 -1
  191. package/std/crypto/ascon.zig +75 -33
  192. package/std/crypto/codecs/asn1/Oid.zig +12 -1
  193. package/std/crypto/codecs/base64_hex_ct.zig +2 -4
  194. package/std/crypto/ml_kem.zig +2 -9
  195. package/std/crypto/tls/Client.zig +79 -4
  196. package/std/crypto/tls.zig +1 -1
  197. package/std/crypto.zig +1 -0
  198. package/std/debug/Pdb.zig +1 -1
  199. package/std/debug.zig +4 -3
  200. package/std/fmt.zig +8 -3
  201. package/std/fs/path.zig +6 -4
  202. package/std/heap/BufferFirstAllocator.zig +165 -0
  203. package/std/heap.zig +2 -126
  204. package/std/http/Client.zig +21 -24
  205. package/std/http.zig +3 -4
  206. package/std/json/Scanner.zig +2 -2
  207. package/std/os/emscripten.zig +1 -1
  208. package/std/os/linux/IoUring.zig +2 -0
  209. package/std/os/linux/aarch64.zig +41 -12
  210. package/std/os/linux/arc.zig +173 -0
  211. package/std/os/linux/arm.zig +41 -12
  212. package/std/os/linux/hexagon.zig +33 -11
  213. package/std/os/linux/loongarch32.zig +41 -13
  214. package/std/os/linux/loongarch64.zig +41 -12
  215. package/std/os/linux/m68k.zig +41 -13
  216. package/std/os/linux/mips.zig +67 -36
  217. package/std/os/linux/mips64.zig +60 -29
  218. package/std/os/linux/mipsn32.zig +60 -29
  219. package/std/os/linux/or1k.zig +41 -12
  220. package/std/os/linux/powerpc.zig +41 -12
  221. package/std/os/linux/powerpc64.zig +41 -12
  222. package/std/os/linux/riscv32.zig +41 -12
  223. package/std/os/linux/riscv64.zig +41 -12
  224. package/std/os/linux/s390x.zig +44 -7
  225. package/std/os/linux/sparc64.zig +83 -52
  226. package/std/os/linux/syscalls.zig +26 -1
  227. package/std/os/linux/thumb.zig +52 -36
  228. package/std/os/linux/x32.zig +41 -12
  229. package/std/os/linux/x86.zig +42 -13
  230. package/std/os/linux/x86_64.zig +41 -12
  231. package/std/os/linux.zig +412 -436
  232. package/std/os/uefi/tables/boot_services.zig +9 -8
  233. package/std/os.zig +41 -0
  234. package/std/process.zig +1 -1
  235. package/std/sort.zig +3 -3
  236. package/std/zig/Ast/Render.zig +3 -3
  237. package/std/zig/AstGen.zig +44 -98
  238. package/std/zig/AstRlAnnotate.zig +0 -11
  239. package/std/zig/BuiltinFn.zig +0 -32
  240. package/std/zig/LibCInstallation.zig +4 -3
  241. package/std/zig/Parse.zig +7 -7
  242. package/std/zig/WindowsSdk.zig +13 -13
  243. package/std/zig/Zir.zig +50 -63
  244. package/std/zig/ZonGen.zig +6 -5
  245. package/std/zig/llvm/Builder.zig +12 -12
  246. package/std/zig.zig +1 -10
  247. package/std/zip.zig +5 -5
  248. package/zig.h +340 -1
  249. package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
  250. package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
  251. package/libc/mingw/math/fdiml.c +0 -24
  252. package/libc/mingw/winpthreads/spinlock.c +0 -82
  253. package/libc/musl/src/linux/tee.c +0 -8
  254. package/libc/musl/src/math/fdimf.c +0 -10
  255. package/libc/musl/src/math/fdiml.c +0 -18
  256. package/libc/musl/src/string/strdup.c +0 -10
  257. package/libc/musl/src/string/strndup.c +0 -12
  258. package/libc/musl/src/string/wcsdup.c +0 -10
  259. package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
  260. package/libc/musl/src/thread/pthread_spin_init.c +0 -6
  261. package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
  262. package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
  263. package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
  264. package/libc/musl/src/unistd/dup2.c +0 -20
  265. package/libc/musl/src/unistd/dup3.c +0 -26
  266. package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
  267. package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
  268. package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
@@ -3,7 +3,7 @@
3
3
  #ifndef _USR_IDXD_H_
4
4
  #define _USR_IDXD_H_
5
5
 
6
- #include <stdint.h>
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
- uint32_t pasid:20;
176
- uint32_t rsvd:11;
177
- uint32_t priv:1;
178
- uint32_t flags:24;
179
- uint32_t opcode:8;
180
- uint64_t completion_addr;
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
- uint64_t src_addr;
183
- uint64_t rdback_addr;
184
- uint64_t pattern;
185
- uint64_t desc_list_addr;
186
- uint64_t pattern_lower;
187
- uint64_t transl_fetch_addr;
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
- uint64_t dst_addr;
191
- uint64_t rdback_addr2;
192
- uint64_t src2_addr;
193
- uint64_t comp_pattern;
190
+ __u64 dst_addr;
191
+ __u64 rdback_addr2;
192
+ __u64 src2_addr;
193
+ __u64 comp_pattern;
194
194
  };
195
195
  union {
196
- uint32_t xfer_size;
197
- uint32_t desc_count;
198
- uint32_t region_size;
196
+ __u32 xfer_size;
197
+ __u32 desc_count;
198
+ __u32 region_size;
199
199
  };
200
- uint16_t int_handle;
201
- uint16_t rsvd1;
200
+ __u16 int_handle;
201
+ __u16 rsvd1;
202
202
  union {
203
- uint8_t expected_res;
203
+ __u8 expected_res;
204
204
  /* create delta record */
205
205
  struct {
206
- uint64_t delta_addr;
207
- uint32_t max_delta_size;
208
- uint32_t delt_rsvd;
209
- uint8_t expected_res_mask;
206
+ __u64 delta_addr;
207
+ __u32 max_delta_size;
208
+ __u32 delt_rsvd;
209
+ __u8 expected_res_mask;
210
210
  };
211
- uint32_t delta_rec_size;
212
- uint64_t dest2;
211
+ __u32 delta_rec_size;
212
+ __u64 dest2;
213
213
  /* CRC */
214
214
  struct {
215
- uint32_t crc_seed;
216
- uint32_t crc_rsvd;
217
- uint64_t seed_addr;
215
+ __u32 crc_seed;
216
+ __u32 crc_rsvd;
217
+ __u64 seed_addr;
218
218
  };
219
219
  /* DIF check or strip */
220
220
  struct {
221
- uint8_t src_dif_flags;
222
- uint8_t dif_chk_res;
223
- uint8_t dif_chk_flags;
224
- uint8_t dif_chk_res2[5];
225
- uint32_t chk_ref_tag_seed;
226
- uint16_t chk_app_tag_mask;
227
- uint16_t chk_app_tag_seed;
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
- uint8_t dif_ins_res;
232
- uint8_t dest_dif_flag;
233
- uint8_t dif_ins_flags;
234
- uint8_t dif_ins_res2[13];
235
- uint32_t ins_ref_tag_seed;
236
- uint16_t ins_app_tag_mask;
237
- uint16_t ins_app_tag_seed;
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
- uint8_t src_upd_flags;
242
- uint8_t upd_dest_flags;
243
- uint8_t dif_upd_flags;
244
- uint8_t dif_upd_res[5];
245
- uint32_t src_ref_tag_seed;
246
- uint16_t src_app_tag_mask;
247
- uint16_t src_app_tag_seed;
248
- uint32_t dest_ref_tag_seed;
249
- uint16_t dest_app_tag_mask;
250
- uint16_t dest_app_tag_seed;
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
- uint64_t pattern_upper;
254
+ __u64 pattern_upper;
255
255
 
256
256
  /* Translation fetch */
257
257
  struct {
258
- uint64_t transl_fetch_res;
259
- uint32_t region_stride;
258
+ __u64 transl_fetch_res;
259
+ __u32 region_stride;
260
260
  };
261
261
 
262
262
  /* DIX generate */
263
263
  struct {
264
- uint8_t dix_gen_res;
265
- uint8_t dest_dif_flags;
266
- uint8_t dif_flags;
267
- uint8_t dix_gen_res2[13];
268
- uint32_t ref_tag_seed;
269
- uint16_t app_tag_mask;
270
- uint16_t app_tag_seed;
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
- uint8_t op_specific[24];
273
+ __u8 op_specific[24];
274
274
  };
275
275
  } __attribute__((packed));
276
276
 
277
277
  struct iax_hw_desc {
278
- uint32_t pasid:20;
279
- uint32_t rsvd:11;
280
- uint32_t priv:1;
281
- uint32_t flags:24;
282
- uint32_t opcode:8;
283
- uint64_t completion_addr;
284
- uint64_t src1_addr;
285
- uint64_t dst_addr;
286
- uint32_t src1_size;
287
- uint16_t int_handle;
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
- uint16_t compr_flags;
290
- uint16_t decompr_flags;
289
+ __u16 compr_flags;
290
+ __u16 decompr_flags;
291
291
  };
292
- uint64_t src2_addr;
293
- uint32_t max_dst_size;
294
- uint32_t src2_size;
295
- uint32_t filter_flags;
296
- uint32_t num_inputs;
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
- uint64_t field[8];
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__ uint8_t status;
308
+ __volatile__ __u8 status;
309
309
  union {
310
- uint8_t result;
311
- uint8_t dif_status;
310
+ __u8 result;
311
+ __u8 dif_status;
312
312
  };
313
- uint8_t fault_info;
314
- uint8_t rsvd;
313
+ __u8 fault_info;
314
+ __u8 rsvd;
315
315
  union {
316
- uint32_t bytes_completed;
317
- uint32_t descs_completed;
316
+ __u32 bytes_completed;
317
+ __u32 descs_completed;
318
318
  };
319
- uint64_t fault_addr;
319
+ __u64 fault_addr;
320
320
  union {
321
321
  /* common record */
322
322
  struct {
323
- uint32_t invalid_flags:24;
324
- uint32_t rsvd2:8;
323
+ __u32 invalid_flags:24;
324
+ __u32 rsvd2:8;
325
325
  };
326
326
 
327
- uint32_t delta_rec_size;
328
- uint64_t crc_val;
327
+ __u32 delta_rec_size;
328
+ __u64 crc_val;
329
329
 
330
330
  /* DIF check & strip */
331
331
  struct {
332
- uint32_t dif_chk_ref_tag;
333
- uint16_t dif_chk_app_tag_mask;
334
- uint16_t dif_chk_app_tag;
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
- uint64_t dif_ins_res;
340
- uint32_t dif_ins_ref_tag;
341
- uint16_t dif_ins_app_tag_mask;
342
- uint16_t dif_ins_app_tag;
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
- uint32_t dif_upd_src_ref_tag;
348
- uint16_t dif_upd_src_app_tag_mask;
349
- uint16_t dif_upd_src_app_tag;
350
- uint32_t dif_upd_dest_ref_tag;
351
- uint16_t dif_upd_dest_app_tag_mask;
352
- uint16_t dif_upd_dest_app_tag;
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
- uint64_t dix_gen_res;
358
- uint32_t dix_ref_tag;
359
- uint16_t dix_app_tag_mask;
360
- uint16_t dix_app_tag;
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
- uint8_t op_specific[16];
363
+ __u8 op_specific[16];
364
364
  };
365
365
  } __attribute__((packed));
366
366
 
367
367
  struct dsa_raw_completion_record {
368
- uint64_t field[4];
368
+ __u64 field[4];
369
369
  } __attribute__((packed));
370
370
 
371
371
  struct iax_completion_record {
372
- __volatile__ uint8_t status;
373
- uint8_t error_code;
374
- uint8_t fault_info;
375
- uint8_t rsvd;
376
- uint32_t bytes_completed;
377
- uint64_t fault_addr;
378
- uint32_t invalid_flags;
379
- uint32_t rsvd2;
380
- uint32_t output_size;
381
- uint8_t output_bits;
382
- uint8_t rsvd3;
383
- uint16_t xor_csum;
384
- uint32_t crc;
385
- uint32_t min;
386
- uint32_t max;
387
- uint32_t sum;
388
- uint64_t rsvd4[2];
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
- uint64_t field[8];
392
+ __u64 field[8];
393
393
  } __attribute__((packed));
394
394
 
395
395
  #endif
@@ -42,7 +42,7 @@ struct sockaddr_alg_new {
42
42
 
43
43
  struct af_alg_iv {
44
44
  __u32 ivlen;
45
- __u8 iv[];
45
+ __u8 iv[] __counted_by(ivlen);
46
46
  };
47
47
 
48
48
  /* Socket options */
@@ -1441,6 +1441,7 @@ enum {
1441
1441
  IFLA_GENEVE_DF,
1442
1442
  IFLA_GENEVE_INNER_PROTO_INHERIT,
1443
1443
  IFLA_GENEVE_PORT_RANGE,
1444
+ IFLA_GENEVE_GRO_HINT,
1444
1445
  __IFLA_GENEVE_MAX
1445
1446
  };
1446
1447
  #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
@@ -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
- __u32 __resv1;
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 with COOP_TASKRUN.
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 __resv2;
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 18
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 pad;
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 0x27
1685
+ #define AMDKFD_COMMAND_END 0x28
1676
1686
 
1677
1687
  #endif