aboutsummaryrefslogtreecommitdiff
path: root/std/os
diff options
context:
space:
mode:
authorAndrea Orru <andrea@orru.io>2018-03-09 22:24:52 -0800
committerAndrea Orru <andrea@orru.io>2018-03-09 22:24:52 -0800
commit70c3008a003345fe32d5f9cf6e2701c035e22ed3 (patch)
tree852b3e8344c317194e1144e1eee77c6c4b88bd67 /std/os
parent7a893691c0aedf4d7ae68a9eb06800e4094381cc (diff)
downloadzig-70c3008a003345fe32d5f9cf6e2701c035e22ed3.tar.gz
zig-70c3008a003345fe32d5f9cf6e2701c035e22ed3.zip
Added 6 parameters syscalls for zen
Diffstat (limited to 'std/os')
-rw-r--r--std/os/zen.zig14
1 files changed, 14 insertions, 0 deletions
diff --git a/std/os/zen.zig b/std/os/zen.zig
index 867bc6578f..b10b870d17 100644
--- a/std/os/zen.zig
+++ b/std/os/zen.zig
@@ -103,3 +103,17 @@ pub inline fn syscall5(number: usize, arg1: usize, arg2: usize, arg3: usize,
[arg4] "{esi}" (arg4),
[arg5] "{edi}" (arg5));
}
+
+pub inline fn syscall6(number: usize, arg1: usize, arg2: usize, arg3: usize,
+ arg4: usize, arg5: usize, arg6: usize) usize
+{
+ return asm volatile ("int $0x80"
+ : [ret] "={eax}" (-> usize)
+ : [number] "{eax}" (number),
+ [arg1] "{ecx}" (arg1),
+ [arg2] "{edx}" (arg2),
+ [arg3] "{ebx}" (arg3),
+ [arg4] "{esi}" (arg4),
+ [arg5] "{edi}" (arg5),
+ [arg6] "{ebp}" (arg6));
+}