summaryrefslogtreecommitdiff
path: root/tests/libc/kernel_stub.asm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/libc/kernel_stub.asm')
-rw-r--r--tests/libc/kernel_stub.asm48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/libc/kernel_stub.asm b/tests/libc/kernel_stub.asm
new file mode 100644
index 0000000..c9335a8
--- /dev/null
+++ b/tests/libc/kernel_stub.asm
@@ -0,0 +1,48 @@
+[bits 32]
+
+global syscall0
+global syscall1
+global syscall2
+global syscall3
+
+; long syscall1( long n );
+syscall0:
+ push ebp
+ mov ebp, esp
+ mov eax, [ebp+8]
+ int 0x80
+ leave
+ ret
+
+; long syscall1( long n, long a1 );
+syscall1:
+ push ebp
+ mov ebp, esp
+ mov eax, [ebp+8]
+ mov ebx, [ebp+12]
+ int 0x80
+ leave
+ ret
+
+; long syscall2( long n, long a1, long a2 );
+syscall2:
+ push ebp
+ mov ebp, esp
+ mov eax, [ebp+8]
+ mov ebx, [ebp+12]
+ mov ecx, [ebp+16]
+ int 0x80
+ leave
+ ret
+
+; long syscall3( long n, long a1, long a2, long a3 );
+syscall3:
+ push ebp
+ mov ebp, esp
+ mov eax, [ebp+8]
+ mov ebx, [ebp+12]
+ mov ecx, [ebp+16]
+ mov edx, [ebp+20]
+ int 0x80
+ leave
+ ret