@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
@@ -2,14 +2,21 @@ const builtin = @import("builtin");
2
2
  const std = @import("../../std.zig");
3
3
  const SYS = std.os.linux.SYS;
4
4
 
5
- pub fn syscall0(number: SYS) u32 {
5
+ pub const syscall_arg_t = u32;
6
+
7
+ pub fn syscall0(
8
+ number: SYS,
9
+ ) u32 {
6
10
  return asm volatile ("trap #0"
7
11
  : [ret] "={d0}" (-> u32),
8
12
  : [number] "{d0}" (@intFromEnum(number)),
9
13
  : .{ .memory = true });
10
14
  }
11
15
 
12
- pub fn syscall1(number: SYS, arg1: u32) u32 {
16
+ pub fn syscall1(
17
+ number: SYS,
18
+ arg1: syscall_arg_t,
19
+ ) u32 {
13
20
  return asm volatile ("trap #0"
14
21
  : [ret] "={d0}" (-> u32),
15
22
  : [number] "{d0}" (@intFromEnum(number)),
@@ -17,7 +24,11 @@ pub fn syscall1(number: SYS, arg1: u32) u32 {
17
24
  : .{ .memory = true });
18
25
  }
19
26
 
20
- pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
27
+ pub fn syscall2(
28
+ number: SYS,
29
+ arg1: syscall_arg_t,
30
+ arg2: syscall_arg_t,
31
+ ) u32 {
21
32
  return asm volatile ("trap #0"
22
33
  : [ret] "={d0}" (-> u32),
23
34
  : [number] "{d0}" (@intFromEnum(number)),
@@ -26,7 +37,12 @@ pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
26
37
  : .{ .memory = true });
27
38
  }
28
39
 
29
- pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
40
+ pub fn syscall3(
41
+ number: SYS,
42
+ arg1: syscall_arg_t,
43
+ arg2: syscall_arg_t,
44
+ arg3: syscall_arg_t,
45
+ ) u32 {
30
46
  return asm volatile ("trap #0"
31
47
  : [ret] "={d0}" (-> u32),
32
48
  : [number] "{d0}" (@intFromEnum(number)),
@@ -36,7 +52,13 @@ pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
36
52
  : .{ .memory = true });
37
53
  }
38
54
 
39
- pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
55
+ pub fn syscall4(
56
+ number: SYS,
57
+ arg1: syscall_arg_t,
58
+ arg2: syscall_arg_t,
59
+ arg3: syscall_arg_t,
60
+ arg4: syscall_arg_t,
61
+ ) u32 {
40
62
  return asm volatile ("trap #0"
41
63
  : [ret] "={d0}" (-> u32),
42
64
  : [number] "{d0}" (@intFromEnum(number)),
@@ -47,7 +69,14 @@ pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
47
69
  : .{ .memory = true });
48
70
  }
49
71
 
50
- pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
72
+ pub fn syscall5(
73
+ number: SYS,
74
+ arg1: syscall_arg_t,
75
+ arg2: syscall_arg_t,
76
+ arg3: syscall_arg_t,
77
+ arg4: syscall_arg_t,
78
+ arg5: syscall_arg_t,
79
+ ) u32 {
51
80
  return asm volatile ("trap #0"
52
81
  : [ret] "={d0}" (-> u32),
53
82
  : [number] "{d0}" (@intFromEnum(number)),
@@ -61,12 +90,12 @@ pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u
61
90
 
62
91
  pub fn syscall6(
63
92
  number: SYS,
64
- arg1: u32,
65
- arg2: u32,
66
- arg3: u32,
67
- arg4: u32,
68
- arg5: u32,
69
- arg6: u32,
93
+ arg1: syscall_arg_t,
94
+ arg2: syscall_arg_t,
95
+ arg3: syscall_arg_t,
96
+ arg4: syscall_arg_t,
97
+ arg5: syscall_arg_t,
98
+ arg6: syscall_arg_t,
70
99
  ) u32 {
71
100
  return asm volatile ("trap #0"
72
101
  : [ret] "={d0}" (-> u32),
@@ -144,5 +173,4 @@ pub fn restore_rt() callconv(.naked) noreturn {
144
173
 
145
174
  pub const time_t = i32;
146
175
 
147
- // No VDSO used as of glibc 112a0ae18b831bf31f44d81b82666980312511d6.
148
176
  pub const VDSO = void;
@@ -2,7 +2,11 @@ const builtin = @import("builtin");
2
2
  const std = @import("../../std.zig");
3
3
  const SYS = std.os.linux.SYS;
4
4
 
5
- pub fn syscall0(number: SYS) u32 {
5
+ pub const syscall_arg_t = u32;
6
+
7
+ pub fn syscall0(
8
+ number: SYS,
9
+ ) u32 {
6
10
  return asm volatile (
7
11
  \\ syscall
8
12
  \\ beq $a3, $zero, 1f
@@ -14,24 +18,10 @@ pub fn syscall0(number: SYS) u32 {
14
18
  : .{ .r1 = true, .r3 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
15
19
  }
16
20
 
17
- pub fn syscall_pipe(fd: *[2]i32) u32 {
18
- return asm volatile (
19
- \\ syscall
20
- \\ beq $a3, $zero, 1f
21
- \\ blez $v0, 2f
22
- \\ subu $v0, $zero, $v0
23
- \\ b 2f
24
- \\1:
25
- \\ sw $v0, 0($a0)
26
- \\ sw $v1, 4($a0)
27
- \\2:
28
- : [ret] "={$2}" (-> u32),
29
- : [number] "{$2}" (@intFromEnum(SYS.pipe)),
30
- [fd] "{$4}" (fd),
31
- : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
32
- }
33
-
34
- pub fn syscall1(number: SYS, arg1: u32) u32 {
21
+ pub fn syscall1(
22
+ number: SYS,
23
+ arg1: syscall_arg_t,
24
+ ) u32 {
35
25
  return asm volatile (
36
26
  \\ syscall
37
27
  \\ beq $a3, $zero, 1f
@@ -44,7 +34,11 @@ pub fn syscall1(number: SYS, arg1: u32) u32 {
44
34
  : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
45
35
  }
46
36
 
47
- pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
37
+ pub fn syscall2(
38
+ number: SYS,
39
+ arg1: syscall_arg_t,
40
+ arg2: syscall_arg_t,
41
+ ) u32 {
48
42
  return asm volatile (
49
43
  \\ syscall
50
44
  \\ beq $a3, $zero, 1f
@@ -58,7 +52,12 @@ pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
58
52
  : .{ .r1 = true, .r3 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
59
53
  }
60
54
 
61
- pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
55
+ pub fn syscall3(
56
+ number: SYS,
57
+ arg1: syscall_arg_t,
58
+ arg2: syscall_arg_t,
59
+ arg3: syscall_arg_t,
60
+ ) u32 {
62
61
  return asm volatile (
63
62
  \\ syscall
64
63
  \\ beq $a3, $zero, 1f
@@ -73,7 +72,13 @@ pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
73
72
  : .{ .r1 = true, .r3 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
74
73
  }
75
74
 
76
- pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
75
+ pub fn syscall4(
76
+ number: SYS,
77
+ arg1: syscall_arg_t,
78
+ arg2: syscall_arg_t,
79
+ arg3: syscall_arg_t,
80
+ arg4: syscall_arg_t,
81
+ ) u32 {
77
82
  return asm volatile (
78
83
  \\ syscall
79
84
  \\ beq $a3, $zero, 1f
@@ -92,7 +97,14 @@ pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
92
97
  // NOTE: The o32 calling convention requires the callee to reserve 16 bytes for
93
98
  // the first four arguments even though they're passed in $a0-$a3.
94
99
 
95
- pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
100
+ pub fn syscall5(
101
+ number: SYS,
102
+ arg1: syscall_arg_t,
103
+ arg2: syscall_arg_t,
104
+ arg3: syscall_arg_t,
105
+ arg4: syscall_arg_t,
106
+ arg5: syscall_arg_t,
107
+ ) u32 {
96
108
  return asm volatile (
97
109
  \\ subu $sp, $sp, 24
98
110
  \\ sw %[arg5], 16($sp)
@@ -114,12 +126,12 @@ pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u
114
126
 
115
127
  pub fn syscall6(
116
128
  number: SYS,
117
- arg1: u32,
118
- arg2: u32,
119
- arg3: u32,
120
- arg4: u32,
121
- arg5: u32,
122
- arg6: u32,
129
+ arg1: syscall_arg_t,
130
+ arg2: syscall_arg_t,
131
+ arg3: syscall_arg_t,
132
+ arg4: syscall_arg_t,
133
+ arg5: syscall_arg_t,
134
+ arg6: syscall_arg_t,
123
135
  ) u32 {
124
136
  return asm volatile (
125
137
  \\ subu $sp, $sp, 24
@@ -144,13 +156,13 @@ pub fn syscall6(
144
156
 
145
157
  pub fn syscall7(
146
158
  number: SYS,
147
- arg1: u32,
148
- arg2: u32,
149
- arg3: u32,
150
- arg4: u32,
151
- arg5: u32,
152
- arg6: u32,
153
- arg7: u32,
159
+ arg1: syscall_arg_t,
160
+ arg2: syscall_arg_t,
161
+ arg3: syscall_arg_t,
162
+ arg4: syscall_arg_t,
163
+ arg5: syscall_arg_t,
164
+ arg6: syscall_arg_t,
165
+ arg7: syscall_arg_t,
154
166
  ) u32 {
155
167
  return asm volatile (
156
168
  \\ subu $sp, $sp, 32
@@ -175,6 +187,25 @@ pub fn syscall7(
175
187
  : .{ .r1 = true, .r3 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
176
188
  }
177
189
 
190
+ pub fn syscall_pipe(
191
+ fd: *[2]std.os.linux.fd_t,
192
+ ) u32 {
193
+ return asm volatile (
194
+ \\ syscall
195
+ \\ beq $a3, $zero, 1f
196
+ \\ blez $v0, 2f
197
+ \\ subu $v0, $zero, $v0
198
+ \\ b 2f
199
+ \\1:
200
+ \\ sw $v0, 0($a0)
201
+ \\ sw $v1, 4($a0)
202
+ \\2:
203
+ : [ret] "={$2}" (-> u32),
204
+ : [number] "{$2}" (@intFromEnum(SYS.pipe)),
205
+ [fd] "{$4}" (fd),
206
+ : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
207
+ }
208
+
178
209
  pub fn clone() callconv(.naked) u32 {
179
210
  // __clone(func, stack, flags, arg, ptid, tls, ctid)
180
211
  // a0, a1, a2, a3, +0, +4, +8
@@ -2,7 +2,11 @@ const builtin = @import("builtin");
2
2
  const std = @import("../../std.zig");
3
3
  const SYS = std.os.linux.SYS;
4
4
 
5
- pub fn syscall0(number: SYS) u64 {
5
+ pub const syscall_arg_t = u64;
6
+
7
+ pub fn syscall0(
8
+ number: SYS,
9
+ ) u64 {
6
10
  return asm volatile (
7
11
  \\ syscall
8
12
  \\ beq $a3, $zero, 1f
@@ -14,24 +18,10 @@ pub fn syscall0(number: SYS) u64 {
14
18
  : .{ .r1 = true, .r3 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
15
19
  }
16
20
 
17
- pub fn syscall_pipe(fd: *[2]i32) u64 {
18
- return asm volatile (
19
- \\ syscall
20
- \\ beq $a3, $zero, 1f
21
- \\ blez $v0, 2f
22
- \\ dsubu $v0, $zero, $v0
23
- \\ b 2f
24
- \\1:
25
- \\ sw $v0, 0($a0)
26
- \\ sw $v1, 4($a0)
27
- \\2:
28
- : [ret] "={$2}" (-> u64),
29
- : [number] "{$2}" (@intFromEnum(SYS.pipe)),
30
- [fd] "{$4}" (fd),
31
- : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
32
- }
33
-
34
- pub fn syscall1(number: SYS, arg1: u64) u64 {
21
+ pub fn syscall1(
22
+ number: SYS,
23
+ arg1: syscall_arg_t,
24
+ ) u64 {
35
25
  return asm volatile (
36
26
  \\ syscall
37
27
  \\ beq $a3, $zero, 1f
@@ -44,7 +34,11 @@ pub fn syscall1(number: SYS, arg1: u64) u64 {
44
34
  : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
45
35
  }
46
36
 
47
- pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
37
+ pub fn syscall2(
38
+ number: SYS,
39
+ arg1: syscall_arg_t,
40
+ arg2: syscall_arg_t,
41
+ ) u64 {
48
42
  return asm volatile (
49
43
  \\ syscall
50
44
  \\ beq $a3, $zero, 1f
@@ -58,7 +52,12 @@ pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
58
52
  : .{ .r1 = true, .r3 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
59
53
  }
60
54
 
61
- pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
55
+ pub fn syscall3(
56
+ number: SYS,
57
+ arg1: syscall_arg_t,
58
+ arg2: syscall_arg_t,
59
+ arg3: syscall_arg_t,
60
+ ) u64 {
62
61
  return asm volatile (
63
62
  \\ syscall
64
63
  \\ beq $a3, $zero, 1f
@@ -73,7 +72,13 @@ pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
73
72
  : .{ .r1 = true, .r3 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
74
73
  }
75
74
 
76
- pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
75
+ pub fn syscall4(
76
+ number: SYS,
77
+ arg1: syscall_arg_t,
78
+ arg2: syscall_arg_t,
79
+ arg3: syscall_arg_t,
80
+ arg4: syscall_arg_t,
81
+ ) u64 {
77
82
  return asm volatile (
78
83
  \\ syscall
79
84
  \\ beq $a3, $zero, 1f
@@ -89,7 +94,14 @@ pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
89
94
  : .{ .r1 = true, .r3 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
90
95
  }
91
96
 
92
- pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
97
+ pub fn syscall5(
98
+ number: SYS,
99
+ arg1: syscall_arg_t,
100
+ arg2: syscall_arg_t,
101
+ arg3: syscall_arg_t,
102
+ arg4: syscall_arg_t,
103
+ arg5: syscall_arg_t,
104
+ ) u64 {
93
105
  return asm volatile (
94
106
  \\ syscall
95
107
  \\ beq $a3, $zero, 1f
@@ -108,12 +120,12 @@ pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u
108
120
 
109
121
  pub fn syscall6(
110
122
  number: SYS,
111
- arg1: u64,
112
- arg2: u64,
113
- arg3: u64,
114
- arg4: u64,
115
- arg5: u64,
116
- arg6: u64,
123
+ arg1: syscall_arg_t,
124
+ arg2: syscall_arg_t,
125
+ arg3: syscall_arg_t,
126
+ arg4: syscall_arg_t,
127
+ arg5: syscall_arg_t,
128
+ arg6: syscall_arg_t,
117
129
  ) u64 {
118
130
  return asm volatile (
119
131
  \\ syscall
@@ -132,6 +144,25 @@ pub fn syscall6(
132
144
  : .{ .r1 = true, .r3 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
133
145
  }
134
146
 
147
+ pub fn syscall_pipe(
148
+ fd: *[2]std.os.linux.fd_t,
149
+ ) u64 {
150
+ return asm volatile (
151
+ \\ syscall
152
+ \\ beq $a3, $zero, 1f
153
+ \\ blez $v0, 2f
154
+ \\ dsubu $v0, $zero, $v0
155
+ \\ b 2f
156
+ \\1:
157
+ \\ sw $v0, 0($a0)
158
+ \\ sw $v1, 4($a0)
159
+ \\2:
160
+ : [ret] "={$2}" (-> u64),
161
+ : [number] "{$2}" (@intFromEnum(SYS.pipe)),
162
+ [fd] "{$4}" (fd),
163
+ : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
164
+ }
165
+
135
166
  pub fn clone() callconv(.naked) u64 {
136
167
  // __clone(func, stack, flags, arg, ptid, tls, ctid)
137
168
  // a0, a1, a2, a3, a4, a5, a6
@@ -2,7 +2,11 @@ const builtin = @import("builtin");
2
2
  const std = @import("../../std.zig");
3
3
  const SYS = std.os.linux.SYS;
4
4
 
5
- pub fn syscall0(number: SYS) u32 {
5
+ pub const syscall_arg_t = u64;
6
+
7
+ pub fn syscall0(
8
+ number: SYS,
9
+ ) u32 {
6
10
  return asm volatile (
7
11
  \\ syscall
8
12
  \\ beq $a3, $zero, 1f
@@ -14,24 +18,10 @@ pub fn syscall0(number: SYS) u32 {
14
18
  : .{ .r1 = true, .r3 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
15
19
  }
16
20
 
17
- pub fn syscall_pipe(fd: *[2]i32) u32 {
18
- return asm volatile (
19
- \\ syscall
20
- \\ beq $a3, $zero, 1f
21
- \\ blez $v0, 2f
22
- \\ subu $v0, $zero, $v0
23
- \\ b 2f
24
- \\1:
25
- \\ sw $v0, 0($a0)
26
- \\ sw $v1, 4($a0)
27
- \\2:
28
- : [ret] "={$2}" (-> u32),
29
- : [number] "{$2}" (@intFromEnum(SYS.pipe)),
30
- [fd] "{$4}" (fd),
31
- : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
32
- }
33
-
34
- pub fn syscall1(number: SYS, arg1: u32) u32 {
21
+ pub fn syscall1(
22
+ number: SYS,
23
+ arg1: syscall_arg_t,
24
+ ) u32 {
35
25
  return asm volatile (
36
26
  \\ syscall
37
27
  \\ beq $a3, $zero, 1f
@@ -44,7 +34,11 @@ pub fn syscall1(number: SYS, arg1: u32) u32 {
44
34
  : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
45
35
  }
46
36
 
47
- pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
37
+ pub fn syscall2(
38
+ number: SYS,
39
+ arg1: syscall_arg_t,
40
+ arg2: syscall_arg_t,
41
+ ) u32 {
48
42
  return asm volatile (
49
43
  \\ syscall
50
44
  \\ beq $a3, $zero, 1f
@@ -58,7 +52,12 @@ pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
58
52
  : .{ .r1 = true, .r3 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
59
53
  }
60
54
 
61
- pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
55
+ pub fn syscall3(
56
+ number: SYS,
57
+ arg1: syscall_arg_t,
58
+ arg2: syscall_arg_t,
59
+ arg3: syscall_arg_t,
60
+ ) u32 {
62
61
  return asm volatile (
63
62
  \\ syscall
64
63
  \\ beq $a3, $zero, 1f
@@ -73,7 +72,13 @@ pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
73
72
  : .{ .r1 = true, .r3 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
74
73
  }
75
74
 
76
- pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
75
+ pub fn syscall4(
76
+ number: SYS,
77
+ arg1: syscall_arg_t,
78
+ arg2: syscall_arg_t,
79
+ arg3: syscall_arg_t,
80
+ arg4: syscall_arg_t,
81
+ ) u32 {
77
82
  return asm volatile (
78
83
  \\ syscall
79
84
  \\ beq $a3, $zero, 1f
@@ -89,7 +94,14 @@ pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
89
94
  : .{ .r1 = true, .r3 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
90
95
  }
91
96
 
92
- pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
97
+ pub fn syscall5(
98
+ number: SYS,
99
+ arg1: syscall_arg_t,
100
+ arg2: syscall_arg_t,
101
+ arg3: syscall_arg_t,
102
+ arg4: syscall_arg_t,
103
+ arg5: syscall_arg_t,
104
+ ) u32 {
93
105
  return asm volatile (
94
106
  \\ syscall
95
107
  \\ beq $a3, $zero, 1f
@@ -108,12 +120,12 @@ pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u
108
120
 
109
121
  pub fn syscall6(
110
122
  number: SYS,
111
- arg1: u32,
112
- arg2: u32,
113
- arg3: u32,
114
- arg4: u32,
115
- arg5: u32,
116
- arg6: u32,
123
+ arg1: syscall_arg_t,
124
+ arg2: syscall_arg_t,
125
+ arg3: syscall_arg_t,
126
+ arg4: syscall_arg_t,
127
+ arg5: syscall_arg_t,
128
+ arg6: syscall_arg_t,
117
129
  ) u32 {
118
130
  return asm volatile (
119
131
  \\ syscall
@@ -132,6 +144,25 @@ pub fn syscall6(
132
144
  : .{ .r1 = true, .r3 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
133
145
  }
134
146
 
147
+ pub fn syscall_pipe(
148
+ fd: *[2]std.os.linux.fd_t,
149
+ ) u32 {
150
+ return asm volatile (
151
+ \\ syscall
152
+ \\ beq $a3, $zero, 1f
153
+ \\ blez $v0, 2f
154
+ \\ subu $v0, $zero, $v0
155
+ \\ b 2f
156
+ \\1:
157
+ \\ sw $v0, 0($a0)
158
+ \\ sw $v1, 4($a0)
159
+ \\2:
160
+ : [ret] "={$2}" (-> u32),
161
+ : [number] "{$2}" (@intFromEnum(SYS.pipe)),
162
+ [fd] "{$4}" (fd),
163
+ : .{ .r1 = true, .r3 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .r13 = true, .r14 = true, .r15 = true, .r24 = true, .r25 = true, .hi = true, .lo = true, .memory = true });
164
+ }
165
+
135
166
  pub fn clone() callconv(.naked) u32 {
136
167
  // __clone(func, stack, flags, arg, ptid, tls, ctid)
137
168
  // a0, a1, a2, a3, a4, a5, a6
@@ -2,7 +2,11 @@ const builtin = @import("builtin");
2
2
  const std = @import("../../std.zig");
3
3
  const SYS = std.os.linux.SYS;
4
4
 
5
- pub fn syscall0(number: SYS) u32 {
5
+ pub const syscall_arg_t = u32;
6
+
7
+ pub fn syscall0(
8
+ number: SYS,
9
+ ) u32 {
6
10
  return asm volatile (
7
11
  \\ l.sys 1
8
12
  : [ret] "={r11}" (-> u32),
@@ -10,7 +14,10 @@ pub fn syscall0(number: SYS) u32 {
10
14
  : .{ .r3 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r12 = true, .r13 = true, .r15 = true, .r17 = true, .r19 = true, .r21 = true, .r23 = true, .r25 = true, .r27 = true, .r29 = true, .r31 = true, .memory = true });
11
15
  }
12
16
 
13
- pub fn syscall1(number: SYS, arg1: u32) u32 {
17
+ pub fn syscall1(
18
+ number: SYS,
19
+ arg1: syscall_arg_t,
20
+ ) u32 {
14
21
  return asm volatile (
15
22
  \\ l.sys 1
16
23
  : [ret] "={r11}" (-> u32),
@@ -19,7 +26,11 @@ pub fn syscall1(number: SYS, arg1: u32) u32 {
19
26
  : .{ .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r12 = true, .r13 = true, .r15 = true, .r17 = true, .r19 = true, .r21 = true, .r23 = true, .r25 = true, .r27 = true, .r29 = true, .r31 = true, .memory = true });
20
27
  }
21
28
 
22
- pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
29
+ pub fn syscall2(
30
+ number: SYS,
31
+ arg1: syscall_arg_t,
32
+ arg2: syscall_arg_t,
33
+ ) u32 {
23
34
  return asm volatile (
24
35
  \\ l.sys 1
25
36
  : [ret] "={r11}" (-> u32),
@@ -29,7 +40,12 @@ pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
29
40
  : .{ .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r12 = true, .r13 = true, .r15 = true, .r17 = true, .r19 = true, .r21 = true, .r23 = true, .r25 = true, .r27 = true, .r29 = true, .r31 = true, .memory = true });
30
41
  }
31
42
 
32
- pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
43
+ pub fn syscall3(
44
+ number: SYS,
45
+ arg1: syscall_arg_t,
46
+ arg2: syscall_arg_t,
47
+ arg3: syscall_arg_t,
48
+ ) u32 {
33
49
  return asm volatile (
34
50
  \\ l.sys 1
35
51
  : [ret] "={r11}" (-> u32),
@@ -40,7 +56,13 @@ pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
40
56
  : .{ .r6 = true, .r7 = true, .r8 = true, .r12 = true, .r13 = true, .r15 = true, .r17 = true, .r19 = true, .r21 = true, .r23 = true, .r25 = true, .r27 = true, .r29 = true, .r31 = true, .memory = true });
41
57
  }
42
58
 
43
- pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
59
+ pub fn syscall4(
60
+ number: SYS,
61
+ arg1: syscall_arg_t,
62
+ arg2: syscall_arg_t,
63
+ arg3: syscall_arg_t,
64
+ arg4: syscall_arg_t,
65
+ ) u32 {
44
66
  return asm volatile (
45
67
  \\ l.sys 1
46
68
  : [ret] "={r11}" (-> u32),
@@ -52,7 +74,14 @@ pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
52
74
  : .{ .r7 = true, .r8 = true, .r12 = true, .r13 = true, .r15 = true, .r17 = true, .r19 = true, .r21 = true, .r23 = true, .r25 = true, .r27 = true, .r29 = true, .r31 = true, .memory = true });
53
75
  }
54
76
 
55
- pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
77
+ pub fn syscall5(
78
+ number: SYS,
79
+ arg1: syscall_arg_t,
80
+ arg2: syscall_arg_t,
81
+ arg3: syscall_arg_t,
82
+ arg4: syscall_arg_t,
83
+ arg5: syscall_arg_t,
84
+ ) u32 {
56
85
  return asm volatile (
57
86
  \\ l.sys 1
58
87
  : [ret] "={r11}" (-> u32),
@@ -67,12 +96,12 @@ pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u
67
96
 
68
97
  pub fn syscall6(
69
98
  number: SYS,
70
- arg1: u32,
71
- arg2: u32,
72
- arg3: u32,
73
- arg4: u32,
74
- arg5: u32,
75
- arg6: u32,
99
+ arg1: syscall_arg_t,
100
+ arg2: syscall_arg_t,
101
+ arg3: syscall_arg_t,
102
+ arg4: syscall_arg_t,
103
+ arg5: syscall_arg_t,
104
+ arg6: syscall_arg_t,
76
105
  ) u32 {
77
106
  return asm volatile (
78
107
  \\ l.sys 1