summary refs log tree commit diff homepage
path: root/sys.asm
diff options
context:
space:
mode:
Diffstat (limited to 'sys.asm')
-rw-r--r--sys.asm50
1 files changed, 50 insertions, 0 deletions
diff --git a/sys.asm b/sys.asm
new file mode 100644
index 0000000..a7d5295
--- /dev/null
+++ b/sys.asm
@@ -0,0 +1,50 @@
+%macro syscall 0
+  syscall
+%endmacro
+
+%macro syscall 1
+  mov rax, %1
+  syscall
+%endmacro
+
+%macro syscall 2
+  mov rdi, %2
+  syscall %1
+%endmacro
+
+%macro syscall 3
+  mov rsi, %3
+  syscall %1, %2
+%endmacro
+
+%macro syscall 4
+  mov rdx, %4
+  syscall %1, %2, %3
+%endmacro
+
+%macro syscall 5
+  mov r10, %5
+  syscall %1, %2, %3, %4
+%endmacro
+
+%macro syscall 6
+  mov r8, %6
+  syscall %1, %2, %3, %4, %5
+%endmacro
+
+%macro syscall 7
+  mov r9, %7
+  syscall %1, %2, %3, %4, %5, %6
+%endmacro
+
+SYS_READ   equ 0
+SYS_WRITE  equ 1
+SYS_GETPID equ 39
+SYS_EXIT   equ 60
+SYS_KILL   equ 62
+
+FD_STDIN  equ 0
+FD_STDOUT equ 1
+FD_STDERR equ 2
+
+SIG_ABRT equ 6