@zigc/lib 0.16.0-test.1 → 0.17.0-dev.131

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 (352) hide show
  1. package/LICENSE +19 -0
  2. package/c/fcntl.zig +6 -1
  3. package/c/inttypes.zig +0 -10
  4. package/c/math.zig +138 -114
  5. package/c/pthread.zig +57 -0
  6. package/c/search.zig +1 -27
  7. package/c/stdlib/drand48.zig +0 -57
  8. package/c/stdlib.zig +0 -100
  9. package/c/string.zig +20 -7
  10. package/c/strings.zig +0 -38
  11. package/c/stropts.zig +17 -0
  12. package/c/unistd.zig +27 -26
  13. package/c/wchar.zig +10 -0
  14. package/c.zig +3 -2
  15. package/compiler/aro/aro/Attribute/names.zig +604 -589
  16. package/compiler/aro/aro/Attribute.zig +202 -116
  17. package/compiler/aro/aro/Builtins/common.zig +874 -863
  18. package/compiler/aro/aro/Builtins/eval.zig +15 -7
  19. package/compiler/aro/aro/Builtins.zig +0 -1
  20. package/compiler/aro/aro/CodeGen.zig +8 -7
  21. package/compiler/aro/aro/Compilation.zig +137 -111
  22. package/compiler/aro/aro/Diagnostics.zig +21 -17
  23. package/compiler/aro/aro/Driver/GCCDetector.zig +635 -0
  24. package/compiler/aro/aro/Driver.zig +138 -63
  25. package/compiler/aro/aro/LangOpts.zig +12 -2
  26. package/compiler/aro/aro/Parser/Diagnostic.zig +79 -19
  27. package/compiler/aro/aro/Parser.zig +352 -153
  28. package/compiler/aro/aro/Pragma.zig +3 -2
  29. package/compiler/aro/aro/Preprocessor/Diagnostic.zig +21 -0
  30. package/compiler/aro/aro/Preprocessor.zig +136 -62
  31. package/compiler/aro/aro/Target.zig +17 -12
  32. package/compiler/aro/aro/Tokenizer.zig +31 -14
  33. package/compiler/aro/aro/Toolchain.zig +4 -7
  34. package/compiler/aro/aro/Tree.zig +178 -148
  35. package/compiler/aro/aro/TypeStore.zig +82 -24
  36. package/compiler/aro/aro/Value.zig +13 -17
  37. package/compiler/aro/aro/features.zig +1 -0
  38. package/compiler/aro/aro/pragmas/message.zig +3 -2
  39. package/compiler/aro/aro/pragmas/once.zig +0 -1
  40. package/compiler/aro/aro/record_layout.zig +3 -3
  41. package/compiler/aro/aro/text_literal.zig +3 -2
  42. package/compiler/aro/assembly_backend/x86_64.zig +7 -8
  43. package/compiler/aro/backend/Assembly.zig +1 -2
  44. package/compiler/aro/backend/Interner.zig +2 -2
  45. package/compiler/aro/backend/Ir.zig +100 -92
  46. package/compiler/aro/include/ptrcheck.h +49 -0
  47. package/compiler/aro/main.zig +26 -10
  48. package/compiler/build_runner.zig +1 -2
  49. package/compiler/objdump.zig +93 -0
  50. package/compiler/reduce/Walk.zig +7 -7
  51. package/compiler/reduce.zig +5 -1
  52. package/compiler/resinator/compile.zig +2 -2
  53. package/compiler/resinator/main.zig +7 -1
  54. package/compiler/resinator/preprocess.zig +1 -3
  55. package/compiler/std-docs.zig +8 -1
  56. package/compiler/test_runner.zig +194 -62
  57. package/compiler/translate-c/MacroTranslator.zig +80 -11
  58. package/compiler/translate-c/PatternList.zig +1 -9
  59. package/compiler/translate-c/Scope.zig +43 -6
  60. package/compiler/translate-c/Translator.zig +369 -127
  61. package/compiler/translate-c/ast.zig +19 -11
  62. package/compiler/translate-c/main.zig +76 -17
  63. package/compiler_rt/cos.zig +140 -53
  64. package/compiler_rt/divmodei4.zig +40 -17
  65. package/compiler_rt/exp.zig +1 -6
  66. package/compiler_rt/exp2.zig +1 -6
  67. package/compiler_rt/exp_f128.zig +377 -0
  68. package/compiler_rt/fabs.zig +0 -2
  69. package/compiler_rt/fma.zig +0 -2
  70. package/compiler_rt/fmax.zig +0 -2
  71. package/compiler_rt/fmin.zig +0 -2
  72. package/compiler_rt/fmod.zig +0 -2
  73. package/compiler_rt/limb64.zig +1127 -0
  74. package/compiler_rt/log.zig +0 -2
  75. package/compiler_rt/log10.zig +0 -2
  76. package/compiler_rt/log2.zig +0 -2
  77. package/compiler_rt/long_double.zig +37 -0
  78. package/compiler_rt/mulXi3.zig +1 -1
  79. package/compiler_rt/mulo.zig +6 -1
  80. package/compiler_rt/rem_pio2l.zig +173 -0
  81. package/compiler_rt/round.zig +0 -2
  82. package/compiler_rt/sin.zig +139 -56
  83. package/compiler_rt/sincos.zig +277 -72
  84. package/compiler_rt/sqrt.zig +0 -2
  85. package/compiler_rt/ssp.zig +1 -1
  86. package/compiler_rt/tan.zig +117 -48
  87. package/compiler_rt/trig.zig +256 -6
  88. package/compiler_rt/trunc.zig +0 -2
  89. package/compiler_rt/udivmodei4.zig +28 -0
  90. package/compiler_rt.zig +2 -0
  91. package/fuzzer.zig +857 -307
  92. package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
  93. package/libc/musl/src/math/pow.c +343 -0
  94. package/package.json +1 -1
  95. package/std/Build/Cache.zig +6 -6
  96. package/std/Build/Fuzz.zig +6 -19
  97. package/std/Build/Module.zig +1 -1
  98. package/std/Build/Step/CheckObject.zig +3 -3
  99. package/std/Build/Step/Compile.zig +18 -1
  100. package/std/Build/Step/ConfigHeader.zig +49 -33
  101. package/std/Build/Step/InstallArtifact.zig +18 -0
  102. package/std/Build/Step/Run.zig +538 -89
  103. package/std/Build/Step/TranslateC.zig +0 -6
  104. package/std/Build/Step.zig +10 -19
  105. package/std/Build/WebServer.zig +31 -19
  106. package/std/Build/abi.zig +47 -11
  107. package/std/Build.zig +17 -17
  108. package/std/Io/Dir.zig +7 -2
  109. package/std/Io/Dispatch.zig +5 -13
  110. package/std/Io/File/Reader.zig +3 -1
  111. package/std/Io/File/Writer.zig +8 -6
  112. package/std/Io/File.zig +1 -0
  113. package/std/Io/Kqueue.zig +2 -2
  114. package/std/Io/Reader.zig +8 -9
  115. package/std/Io/Semaphore.zig +112 -17
  116. package/std/Io/Terminal.zig +1 -1
  117. package/std/Io/Threaded.zig +352 -180
  118. package/std/Io/Uring.zig +15 -16
  119. package/std/Io/Writer.zig +46 -42
  120. package/std/Io/net.zig +11 -11
  121. package/std/Io.zig +1052 -20
  122. package/std/SemanticVersion.zig +1 -1
  123. package/std/Target/Query.zig +2 -2
  124. package/std/Target.zig +53 -7
  125. package/std/Thread.zig +8 -3
  126. package/std/array_hash_map.zig +105 -573
  127. package/std/array_list.zig +22 -31
  128. package/std/bit_set.zig +22 -6
  129. package/std/builtin/assembly.zig +68 -0
  130. package/std/builtin.zig +4 -0
  131. package/std/c/haiku.zig +3 -0
  132. package/std/c/serenity.zig +1 -6
  133. package/std/c.zig +106 -24
  134. package/std/compress/flate/Compress.zig +3 -3
  135. package/std/compress/flate/Decompress.zig +2 -3
  136. package/std/compress/zstd/Decompress.zig +2 -4
  137. package/std/crypto/Certificate/Bundle.zig +15 -1
  138. package/std/crypto/Certificate.zig +13 -1
  139. package/std/crypto/ascon.zig +75 -33
  140. package/std/crypto/codecs/asn1/Oid.zig +12 -1
  141. package/std/crypto/codecs/asn1.zig +33 -18
  142. package/std/crypto/codecs/base64_hex_ct.zig +16 -8
  143. package/std/crypto/ml_kem.zig +2 -9
  144. package/std/crypto/tls/Client.zig +79 -4
  145. package/std/crypto/tls.zig +1 -1
  146. package/std/crypto.zig +1 -0
  147. package/std/debug/Dwarf.zig +29 -9
  148. package/std/debug/Info.zig +4 -0
  149. package/std/debug/MachOFile.zig +46 -8
  150. package/std/debug/Pdb.zig +540 -37
  151. package/std/debug/SelfInfo/Elf.zig +19 -18
  152. package/std/debug/SelfInfo/MachO.zig +18 -7
  153. package/std/debug/SelfInfo/Windows.zig +138 -36
  154. package/std/debug.zig +181 -66
  155. package/std/enums.zig +25 -19
  156. package/std/fmt.zig +8 -3
  157. package/std/fs/path.zig +6 -4
  158. package/std/heap/ArenaAllocator.zig +145 -154
  159. package/std/heap/BufferFirstAllocator.zig +165 -0
  160. package/std/heap/debug_allocator.zig +7 -7
  161. package/std/heap.zig +2 -126
  162. package/std/http/Client.zig +31 -30
  163. package/std/http.zig +14 -13
  164. package/std/json/Scanner.zig +2 -2
  165. package/std/json/Stringify.zig +3 -3
  166. package/std/json/dynamic.zig +4 -4
  167. package/std/math/big/int.zig +16 -17
  168. package/std/mem/Allocator.zig +4 -5
  169. package/std/mem.zig +48 -0
  170. package/std/os/emscripten.zig +2 -18
  171. package/std/os/linux/IoUring.zig +2 -0
  172. package/std/os/linux/aarch64.zig +41 -12
  173. package/std/os/linux/arc.zig +173 -0
  174. package/std/os/linux/arm.zig +41 -12
  175. package/std/os/linux/hexagon.zig +33 -11
  176. package/std/os/linux/loongarch32.zig +41 -13
  177. package/std/os/linux/loongarch64.zig +41 -12
  178. package/std/os/linux/m68k.zig +41 -13
  179. package/std/os/linux/mips.zig +67 -36
  180. package/std/os/linux/mips64.zig +60 -29
  181. package/std/os/linux/mipsn32.zig +60 -29
  182. package/std/os/linux/or1k.zig +41 -12
  183. package/std/os/linux/powerpc.zig +41 -12
  184. package/std/os/linux/powerpc64.zig +41 -12
  185. package/std/os/linux/riscv32.zig +41 -12
  186. package/std/os/linux/riscv64.zig +41 -12
  187. package/std/os/linux/s390x.zig +44 -7
  188. package/std/os/linux/sparc64.zig +83 -52
  189. package/std/os/linux/thumb.zig +52 -36
  190. package/std/os/linux/x32.zig +41 -12
  191. package/std/os/linux/x86.zig +42 -13
  192. package/std/os/linux/x86_64.zig +41 -12
  193. package/std/os/linux.zig +419 -438
  194. package/std/os/uefi/tables/boot_services.zig +9 -8
  195. package/std/os/windows.zig +2 -2
  196. package/std/os.zig +41 -0
  197. package/std/pdb.zig +143 -4
  198. package/std/posix.zig +6 -12
  199. package/std/priority_dequeue.zig +13 -12
  200. package/std/priority_queue.zig +5 -4
  201. package/std/process/Child.zig +1 -1
  202. package/std/process/Environ.zig +1 -1
  203. package/std/process.zig +1 -1
  204. package/std/sort.zig +3 -3
  205. package/std/start.zig +17 -4
  206. package/std/std.zig +19 -6
  207. package/std/testing/FailingAllocator.zig +4 -4
  208. package/std/testing/Smith.zig +37 -2
  209. package/std/zig/Ast/Render.zig +187 -459
  210. package/std/zig/Ast.zig +0 -4
  211. package/std/zig/AstGen.zig +86 -103
  212. package/std/zig/AstRlAnnotate.zig +0 -11
  213. package/std/zig/AstSmith.zig +2602 -0
  214. package/std/zig/BuiltinFn.zig +0 -32
  215. package/std/zig/Client.zig +8 -3
  216. package/std/zig/LibCInstallation.zig +4 -3
  217. package/std/zig/Parse.zig +90 -81
  218. package/std/zig/Server.zig +26 -0
  219. package/std/zig/WindowsSdk.zig +13 -13
  220. package/std/zig/Zir.zig +66 -62
  221. package/std/zig/ZonGen.zig +6 -5
  222. package/std/zig/c_translation/helpers.zig +14 -9
  223. package/std/zig/llvm/Builder.zig +119 -60
  224. package/std/zig/system.zig +20 -4
  225. package/std/zig/tokenizer.zig +2 -1
  226. package/std/zig.zig +7 -10
  227. package/std/zip.zig +5 -5
  228. package/zig.h +340 -1
  229. package/compiler/aro/aro/Driver/Filesystem.zig +0 -241
  230. package/libc/mingw/complex/cabs.c +0 -48
  231. package/libc/mingw/complex/cabsf.c +0 -48
  232. package/libc/mingw/complex/cacos.c +0 -50
  233. package/libc/mingw/complex/cacosf.c +0 -50
  234. package/libc/mingw/complex/carg.c +0 -48
  235. package/libc/mingw/complex/cargf.c +0 -48
  236. package/libc/mingw/complex/casin.c +0 -50
  237. package/libc/mingw/complex/casinf.c +0 -50
  238. package/libc/mingw/complex/catan.c +0 -50
  239. package/libc/mingw/complex/catanf.c +0 -50
  240. package/libc/mingw/complex/ccos.c +0 -50
  241. package/libc/mingw/complex/ccosf.c +0 -50
  242. package/libc/mingw/complex/cexp.c +0 -48
  243. package/libc/mingw/complex/cexpf.c +0 -48
  244. package/libc/mingw/complex/cimag.c +0 -48
  245. package/libc/mingw/complex/cimagf.c +0 -48
  246. package/libc/mingw/complex/clog.c +0 -48
  247. package/libc/mingw/complex/clog10.c +0 -49
  248. package/libc/mingw/complex/clog10f.c +0 -49
  249. package/libc/mingw/complex/clogf.c +0 -48
  250. package/libc/mingw/complex/conj.c +0 -48
  251. package/libc/mingw/complex/conjf.c +0 -48
  252. package/libc/mingw/complex/cpow.c +0 -48
  253. package/libc/mingw/complex/cpowf.c +0 -48
  254. package/libc/mingw/complex/cproj.c +0 -48
  255. package/libc/mingw/complex/cprojf.c +0 -48
  256. package/libc/mingw/complex/creal.c +0 -48
  257. package/libc/mingw/complex/crealf.c +0 -48
  258. package/libc/mingw/complex/csin.c +0 -50
  259. package/libc/mingw/complex/csinf.c +0 -50
  260. package/libc/mingw/complex/csqrt.c +0 -48
  261. package/libc/mingw/complex/csqrtf.c +0 -48
  262. package/libc/mingw/complex/ctan.c +0 -50
  263. package/libc/mingw/complex/ctanf.c +0 -50
  264. package/libc/mingw/math/arm/s_rint.c +0 -86
  265. package/libc/mingw/math/arm/s_rintf.c +0 -51
  266. package/libc/mingw/math/arm/sincos.S +0 -30
  267. package/libc/mingw/math/arm-common/sincosl.c +0 -13
  268. package/libc/mingw/math/arm64/rint.c +0 -12
  269. package/libc/mingw/math/arm64/rintf.c +0 -12
  270. package/libc/mingw/math/arm64/sincos.S +0 -32
  271. package/libc/mingw/math/bsd_private_base.h +0 -148
  272. package/libc/mingw/math/fdiml.c +0 -24
  273. package/libc/mingw/math/frexpf.c +0 -13
  274. package/libc/mingw/math/frexpl.c +0 -71
  275. package/libc/mingw/math/x86/acosf.c +0 -29
  276. package/libc/mingw/math/x86/atanf.c +0 -23
  277. package/libc/mingw/math/x86/atanl.c +0 -18
  278. package/libc/mingw/math/x86/cos.def.h +0 -65
  279. package/libc/mingw/math/x86/cosl.c +0 -46
  280. package/libc/mingw/math/x86/cosl_internal.S +0 -55
  281. package/libc/mingw/math/x86/ldexp.c +0 -23
  282. package/libc/mingw/math/x86/scalbn.S +0 -41
  283. package/libc/mingw/math/x86/scalbnf.S +0 -40
  284. package/libc/mingw/math/x86/sin.def.h +0 -65
  285. package/libc/mingw/math/x86/sinl.c +0 -46
  286. package/libc/mingw/math/x86/sinl_internal.S +0 -58
  287. package/libc/mingw/math/x86/tanl.S +0 -62
  288. package/libc/mingw/misc/btowc.c +0 -28
  289. package/libc/mingw/misc/wcstof.c +0 -66
  290. package/libc/mingw/misc/wcstoimax.c +0 -132
  291. package/libc/mingw/misc/wcstoumax.c +0 -126
  292. package/libc/mingw/misc/wctob.c +0 -29
  293. package/libc/mingw/misc/winbs_uint64.c +0 -6
  294. package/libc/mingw/misc/winbs_ulong.c +0 -6
  295. package/libc/mingw/misc/winbs_ushort.c +0 -6
  296. package/libc/mingw/stdio/_Exit.c +0 -10
  297. package/libc/mingw/stdio/_findfirst64i32.c +0 -21
  298. package/libc/mingw/stdio/_findnext64i32.c +0 -21
  299. package/libc/mingw/stdio/_fstat64i32.c +0 -37
  300. package/libc/mingw/stdio/_stat64i32.c +0 -37
  301. package/libc/mingw/stdio/_wfindfirst64i32.c +0 -21
  302. package/libc/mingw/stdio/_wfindnext64i32.c +0 -21
  303. package/libc/mingw/stdio/_wstat64i32.c +0 -37
  304. package/libc/mingw/winpthreads/spinlock.c +0 -82
  305. package/libc/musl/src/legacy/isastream.c +0 -7
  306. package/libc/musl/src/legacy/valloc.c +0 -8
  307. package/libc/musl/src/linux/tee.c +0 -8
  308. package/libc/musl/src/math/__cosl.c +0 -96
  309. package/libc/musl/src/math/__sinl.c +0 -78
  310. package/libc/musl/src/math/__tanl.c +0 -143
  311. package/libc/musl/src/math/aarch64/lrint.c +0 -10
  312. package/libc/musl/src/math/aarch64/lrintf.c +0 -10
  313. package/libc/musl/src/math/aarch64/rintf.c +0 -7
  314. package/libc/musl/src/math/cosl.c +0 -39
  315. package/libc/musl/src/math/fdim.c +0 -10
  316. package/libc/musl/src/math/fdimf.c +0 -10
  317. package/libc/musl/src/math/fdiml.c +0 -18
  318. package/libc/musl/src/math/finite.c +0 -7
  319. package/libc/musl/src/math/finitef.c +0 -7
  320. package/libc/musl/src/math/frexp.c +0 -23
  321. package/libc/musl/src/math/frexpf.c +0 -23
  322. package/libc/musl/src/math/frexpl.c +0 -29
  323. package/libc/musl/src/math/i386/lrint.c +0 -8
  324. package/libc/musl/src/math/i386/lrintf.c +0 -8
  325. package/libc/musl/src/math/i386/rintf.c +0 -7
  326. package/libc/musl/src/math/lrint.c +0 -72
  327. package/libc/musl/src/math/lrintf.c +0 -8
  328. package/libc/musl/src/math/powerpc64/lrint.c +0 -16
  329. package/libc/musl/src/math/powerpc64/lrintf.c +0 -16
  330. package/libc/musl/src/math/rintf.c +0 -30
  331. package/libc/musl/src/math/s390x/rintf.c +0 -15
  332. package/libc/musl/src/math/sincosl.c +0 -60
  333. package/libc/musl/src/math/sinl.c +0 -41
  334. package/libc/musl/src/math/tanl.c +0 -29
  335. package/libc/musl/src/math/x32/lrint.s +0 -5
  336. package/libc/musl/src/math/x32/lrintf.s +0 -5
  337. package/libc/musl/src/math/x86_64/lrint.c +0 -8
  338. package/libc/musl/src/math/x86_64/lrintf.c +0 -8
  339. package/libc/musl/src/string/strdup.c +0 -10
  340. package/libc/musl/src/string/strndup.c +0 -12
  341. package/libc/musl/src/string/wcsdup.c +0 -10
  342. package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
  343. package/libc/musl/src/thread/pthread_spin_init.c +0 -6
  344. package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
  345. package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
  346. package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
  347. package/libc/musl/src/unistd/dup2.c +0 -20
  348. package/libc/musl/src/unistd/dup3.c +0 -26
  349. package/libc/wasi/libc-bottom-half/sources/reallocarray.c +0 -14
  350. package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
  351. package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
  352. package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
@@ -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
@@ -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
  // r0 is both an input register and a clobber. musl and glibc achieve this with
7
11
  // a "+" constraint, which isn't supported in Zig, so instead we separately list
8
12
  // r0 as both an input and an output. (Listing it as an input and a clobber would
@@ -19,7 +23,10 @@ pub fn syscall0(number: SYS) u32 {
19
23
  : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
20
24
  }
21
25
 
22
- pub fn syscall1(number: SYS, arg1: u32) u32 {
26
+ pub fn syscall1(
27
+ number: SYS,
28
+ arg1: syscall_arg_t,
29
+ ) u32 {
23
30
  // r0 is both an input and a clobber.
24
31
  var r0_out: u32 = undefined;
25
32
  return asm volatile (
@@ -34,7 +41,11 @@ pub fn syscall1(number: SYS, arg1: u32) u32 {
34
41
  : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
35
42
  }
36
43
 
37
- pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
44
+ pub fn syscall2(
45
+ number: SYS,
46
+ arg1: syscall_arg_t,
47
+ arg2: syscall_arg_t,
48
+ ) u32 {
38
49
  // These registers are both inputs and clobbers.
39
50
  var r0_out: u32 = undefined;
40
51
  var r4_out: u32 = undefined;
@@ -52,7 +63,12 @@ pub fn syscall2(number: SYS, arg1: u32, arg2: u32) u32 {
52
63
  : .{ .memory = true, .cr0 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
53
64
  }
54
65
 
55
- pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
66
+ pub fn syscall3(
67
+ number: SYS,
68
+ arg1: syscall_arg_t,
69
+ arg2: syscall_arg_t,
70
+ arg3: syscall_arg_t,
71
+ ) u32 {
56
72
  // These registers are both inputs and clobbers.
57
73
  var r0_out: u32 = undefined;
58
74
  var r4_out: u32 = undefined;
@@ -73,7 +89,13 @@ pub fn syscall3(number: SYS, arg1: u32, arg2: u32, arg3: u32) u32 {
73
89
  : .{ .memory = true, .cr0 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
74
90
  }
75
91
 
76
- pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
92
+ pub fn syscall4(
93
+ number: SYS,
94
+ arg1: syscall_arg_t,
95
+ arg2: syscall_arg_t,
96
+ arg3: syscall_arg_t,
97
+ arg4: syscall_arg_t,
98
+ ) u32 {
77
99
  // These registers are both inputs and clobbers.
78
100
  var r0_out: u32 = undefined;
79
101
  var r4_out: u32 = undefined;
@@ -97,7 +119,14 @@ pub fn syscall4(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32) u32 {
97
119
  : .{ .memory = true, .cr0 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
98
120
  }
99
121
 
100
- pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u32) u32 {
122
+ pub fn syscall5(
123
+ number: SYS,
124
+ arg1: syscall_arg_t,
125
+ arg2: syscall_arg_t,
126
+ arg3: syscall_arg_t,
127
+ arg4: syscall_arg_t,
128
+ arg5: syscall_arg_t,
129
+ ) u32 {
101
130
  // These registers are both inputs and clobbers.
102
131
  var r0_out: u32 = undefined;
103
132
  var r4_out: u32 = undefined;
@@ -126,12 +155,12 @@ pub fn syscall5(number: SYS, arg1: u32, arg2: u32, arg3: u32, arg4: u32, arg5: u
126
155
 
127
156
  pub fn syscall6(
128
157
  number: SYS,
129
- arg1: u32,
130
- arg2: u32,
131
- arg3: u32,
132
- arg4: u32,
133
- arg5: u32,
134
- arg6: u32,
158
+ arg1: syscall_arg_t,
159
+ arg2: syscall_arg_t,
160
+ arg3: syscall_arg_t,
161
+ arg4: syscall_arg_t,
162
+ arg5: syscall_arg_t,
163
+ arg6: syscall_arg_t,
135
164
  ) u32 {
136
165
  // These registers are both inputs and clobbers.
137
166
  var r0_out: u32 = undefined;
@@ -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
  // r0 is both an input register and a clobber. musl and glibc achieve this with
7
11
  // a "+" constraint, which isn't supported in Zig, so instead we separately list
8
12
  // r0 as both an input and an output. (Listing it as an input and a clobber would
@@ -19,7 +23,10 @@ pub fn syscall0(number: SYS) u64 {
19
23
  : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
20
24
  }
21
25
 
22
- pub fn syscall1(number: SYS, arg1: u64) u64 {
26
+ pub fn syscall1(
27
+ number: SYS,
28
+ arg1: syscall_arg_t,
29
+ ) u64 {
23
30
  // r0 is both an input and a clobber.
24
31
  var r0_out: u64 = undefined;
25
32
  return asm volatile (
@@ -34,7 +41,11 @@ pub fn syscall1(number: SYS, arg1: u64) u64 {
34
41
  : .{ .memory = true, .cr0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
35
42
  }
36
43
 
37
- pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
44
+ pub fn syscall2(
45
+ number: SYS,
46
+ arg1: syscall_arg_t,
47
+ arg2: syscall_arg_t,
48
+ ) u64 {
38
49
  // These registers are both inputs and clobbers.
39
50
  var r0_out: u64 = undefined;
40
51
  var r4_out: u64 = undefined;
@@ -52,7 +63,12 @@ pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
52
63
  : .{ .memory = true, .cr0 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
53
64
  }
54
65
 
55
- pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
66
+ pub fn syscall3(
67
+ number: SYS,
68
+ arg1: syscall_arg_t,
69
+ arg2: syscall_arg_t,
70
+ arg3: syscall_arg_t,
71
+ ) u64 {
56
72
  // These registers are both inputs and clobbers.
57
73
  var r0_out: u64 = undefined;
58
74
  var r4_out: u64 = undefined;
@@ -73,7 +89,13 @@ pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
73
89
  : .{ .memory = true, .cr0 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
74
90
  }
75
91
 
76
- pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
92
+ pub fn syscall4(
93
+ number: SYS,
94
+ arg1: syscall_arg_t,
95
+ arg2: syscall_arg_t,
96
+ arg3: syscall_arg_t,
97
+ arg4: syscall_arg_t,
98
+ ) u64 {
77
99
  // These registers are both inputs and clobbers.
78
100
  var r0_out: u64 = undefined;
79
101
  var r4_out: u64 = undefined;
@@ -97,7 +119,14 @@ pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
97
119
  : .{ .memory = true, .cr0 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
98
120
  }
99
121
 
100
- pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
122
+ pub fn syscall5(
123
+ number: SYS,
124
+ arg1: syscall_arg_t,
125
+ arg2: syscall_arg_t,
126
+ arg3: syscall_arg_t,
127
+ arg4: syscall_arg_t,
128
+ arg5: syscall_arg_t,
129
+ ) u64 {
101
130
  // These registers are both inputs and clobbers.
102
131
  var r0_out: u64 = undefined;
103
132
  var r4_out: u64 = undefined;
@@ -126,12 +155,12 @@ pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u
126
155
 
127
156
  pub fn syscall6(
128
157
  number: SYS,
129
- arg1: u64,
130
- arg2: u64,
131
- arg3: u64,
132
- arg4: u64,
133
- arg5: u64,
134
- arg6: u64,
158
+ arg1: syscall_arg_t,
159
+ arg2: syscall_arg_t,
160
+ arg3: syscall_arg_t,
161
+ arg4: syscall_arg_t,
162
+ arg5: syscall_arg_t,
163
+ arg6: syscall_arg_t,
135
164
  ) u64 {
136
165
  // These registers are both inputs and clobbers.
137
166
  var r0_out: u64 = undefined;
@@ -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 ("ecall"
7
11
  : [ret] "={x10}" (-> u32),
8
12
  : [number] "{x17}" (@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 ("ecall"
14
21
  : [ret] "={x10}" (-> u32),
15
22
  : [number] "{x17}" (@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 ("ecall"
22
33
  : [ret] "={x10}" (-> u32),
23
34
  : [number] "{x17}" (@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 ("ecall"
31
47
  : [ret] "={x10}" (-> u32),
32
48
  : [number] "{x17}" (@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 ("ecall"
41
63
  : [ret] "={x10}" (-> u32),
42
64
  : [number] "{x17}" (@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 ("ecall"
52
81
  : [ret] "={x10}" (-> u32),
53
82
  : [number] "{x17}" (@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 ("ecall"
72
101
  : [ret] "={x10}" (-> u32),
@@ -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) u64 {
5
+ pub const syscall_arg_t = u64;
6
+
7
+ pub fn syscall0(
8
+ number: SYS,
9
+ ) u64 {
6
10
  return asm volatile ("ecall"
7
11
  : [ret] "={x10}" (-> u64),
8
12
  : [number] "{x17}" (@intFromEnum(number)),
9
13
  : .{ .memory = true });
10
14
  }
11
15
 
12
- pub fn syscall1(number: SYS, arg1: u64) u64 {
16
+ pub fn syscall1(
17
+ number: SYS,
18
+ arg1: syscall_arg_t,
19
+ ) u64 {
13
20
  return asm volatile ("ecall"
14
21
  : [ret] "={x10}" (-> u64),
15
22
  : [number] "{x17}" (@intFromEnum(number)),
@@ -17,7 +24,11 @@ pub fn syscall1(number: SYS, arg1: u64) u64 {
17
24
  : .{ .memory = true });
18
25
  }
19
26
 
20
- pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
27
+ pub fn syscall2(
28
+ number: SYS,
29
+ arg1: syscall_arg_t,
30
+ arg2: syscall_arg_t,
31
+ ) u64 {
21
32
  return asm volatile ("ecall"
22
33
  : [ret] "={x10}" (-> u64),
23
34
  : [number] "{x17}" (@intFromEnum(number)),
@@ -26,7 +37,12 @@ pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
26
37
  : .{ .memory = true });
27
38
  }
28
39
 
29
- pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
40
+ pub fn syscall3(
41
+ number: SYS,
42
+ arg1: syscall_arg_t,
43
+ arg2: syscall_arg_t,
44
+ arg3: syscall_arg_t,
45
+ ) u64 {
30
46
  return asm volatile ("ecall"
31
47
  : [ret] "={x10}" (-> u64),
32
48
  : [number] "{x17}" (@intFromEnum(number)),
@@ -36,7 +52,13 @@ pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
36
52
  : .{ .memory = true });
37
53
  }
38
54
 
39
- pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
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
+ ) u64 {
40
62
  return asm volatile ("ecall"
41
63
  : [ret] "={x10}" (-> u64),
42
64
  : [number] "{x17}" (@intFromEnum(number)),
@@ -47,7 +69,14 @@ pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
47
69
  : .{ .memory = true });
48
70
  }
49
71
 
50
- pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
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
+ ) u64 {
51
80
  return asm volatile ("ecall"
52
81
  : [ret] "={x10}" (-> u64),
53
82
  : [number] "{x17}" (@intFromEnum(number)),
@@ -61,12 +90,12 @@ pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u
61
90
 
62
91
  pub fn syscall6(
63
92
  number: SYS,
64
- arg1: u64,
65
- arg2: u64,
66
- arg3: u64,
67
- arg4: u64,
68
- arg5: u64,
69
- arg6: u64,
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
  ) u64 {
71
100
  return asm volatile ("ecall"
72
101
  : [ret] "={x10}" (-> u64),
@@ -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) u64 {
5
+ pub const syscall_arg_t = u64;
6
+
7
+ pub fn syscall0(
8
+ number: SYS,
9
+ ) u64 {
6
10
  return asm volatile ("svc 0"
7
11
  : [ret] "={r2}" (-> u64),
8
12
  : [number] "{r1}" (@intFromEnum(number)),
9
13
  : .{ .memory = true });
10
14
  }
11
15
 
12
- pub fn syscall1(number: SYS, arg1: u64) u64 {
16
+ pub fn syscall1(
17
+ number: SYS,
18
+ arg1: syscall_arg_t,
19
+ ) u64 {
13
20
  return asm volatile ("svc 0"
14
21
  : [ret] "={r2}" (-> u64),
15
22
  : [number] "{r1}" (@intFromEnum(number)),
@@ -17,7 +24,11 @@ pub fn syscall1(number: SYS, arg1: u64) u64 {
17
24
  : .{ .memory = true });
18
25
  }
19
26
 
20
- pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
27
+ pub fn syscall2(
28
+ number: SYS,
29
+ arg1: syscall_arg_t,
30
+ arg2: syscall_arg_t,
31
+ ) u64 {
21
32
  return asm volatile ("svc 0"
22
33
  : [ret] "={r2}" (-> u64),
23
34
  : [number] "{r1}" (@intFromEnum(number)),
@@ -26,7 +37,12 @@ pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {
26
37
  : .{ .memory = true });
27
38
  }
28
39
 
29
- pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
40
+ pub fn syscall3(
41
+ number: SYS,
42
+ arg1: syscall_arg_t,
43
+ arg2: syscall_arg_t,
44
+ arg3: syscall_arg_t,
45
+ ) u64 {
30
46
  return asm volatile ("svc 0"
31
47
  : [ret] "={r2}" (-> u64),
32
48
  : [number] "{r1}" (@intFromEnum(number)),
@@ -36,7 +52,13 @@ pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {
36
52
  : .{ .memory = true });
37
53
  }
38
54
 
39
- pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
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
+ ) u64 {
40
62
  return asm volatile ("svc 0"
41
63
  : [ret] "={r2}" (-> u64),
42
64
  : [number] "{r1}" (@intFromEnum(number)),
@@ -47,7 +69,14 @@ pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {
47
69
  : .{ .memory = true });
48
70
  }
49
71
 
50
- pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {
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
+ ) u64 {
51
80
  return asm volatile ("svc 0"
52
81
  : [ret] "={r2}" (-> u64),
53
82
  : [number] "{r1}" (@intFromEnum(number)),
@@ -59,7 +88,15 @@ pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u
59
88
  : .{ .memory = true });
60
89
  }
61
90
 
62
- pub fn syscall6(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64, arg6: u64) u64 {
91
+ pub fn syscall6(
92
+ number: SYS,
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,
99
+ ) u64 {
63
100
  return asm volatile ("svc 0"
64
101
  : [ret] "={r2}" (-> u64),
65
102
  : [number] "{r1}" (@intFromEnum(number)),