X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibacess.so_src%2Fsyscalls.inc.asm;h=8e4e26a3d6fff95fbe289e7dee47d02c44640c0e;hb=e7fb36caedf6cd739359e98a163041b6e058ce7a;hp=fc0b9c0576174d81a1bc8f454f8a9d4a85fe866f;hpb=17e16b3110b4c5124b0707435e0427993d696545;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libacess.so_src/syscalls.inc.asm b/Usermode/Libraries/libacess.so_src/syscalls.inc.asm index fc0b9c05..8e4e26a3 100644 --- a/Usermode/Libraries/libacess.so_src/syscalls.inc.asm +++ b/Usermode/Libraries/libacess.so_src/syscalls.inc.asm @@ -4,13 +4,15 @@ %include "../../../Kernel/include/syscalls.inc.asm" +SYSCALL_JUMP equ 0xCFFF0000 + ; System Call - No Arguments %macro SYSCALL0 2 [global %1:func] %1: push ebx mov eax, %2 - int 0xAC + jmp SYSCALL_JUMP mov [_errno], ebx pop ebx ret @@ -25,7 +27,7 @@ push ebx mov eax, %2 mov ebx, [ebp+8] - int 0xAC + jmp SYSCALL_JUMP mov [_errno], ebx pop ebx pop ebp @@ -42,7 +44,7 @@ mov eax, %2 mov ebx, [ebp+8] mov ecx, [ebp+12] - int 0xAC + jmp SYSCALL_JUMP mov [_errno], ebx pop ebx pop ebp @@ -60,7 +62,7 @@ mov ebx, [ebp+8] mov ecx, [ebp+12] mov edx, [ebp+16] - int 0xAC + jmp SYSCALL_JUMP mov [_errno], ebx pop ebx pop ebp @@ -80,8 +82,57 @@ mov ecx, [ebp+12] mov edx, [ebp+16] mov edi, [ebp+20] - int 0xAC + jmp SYSCALL_JUMP + mov [_errno], ebx + pop edi + pop ebx + pop ebp + ret +%endmacro + +; System Call - 5 Arguments +%macro SYSCALL5 2 +[global %1:func] +%1: + push ebp + mov ebp, esp + push ebx + push edi + push esi + mov eax, %2 + mov ebx, [ebp+8] + mov ecx, [ebp+12] + mov edx, [ebp+16] + mov edi, [ebp+20] + mov esi, [ebp+24] + jmp SYSCALL_JUMP + mov [_errno], ebx + pop esi + pop edi + pop ebx + pop ebp + ret +%endmacro + +; System Call - 6 Arguments +%macro SYSCALL6 2 +[global %1:func] +%1: + push ebp + mov ebp, esp + push ebx + push edi + push esi + mov eax, %2 + mov ebx, [ebp+8] + mov ecx, [ebp+12] + mov edx, [ebp+16] + mov edi, [ebp+20] + mov esi, [ebp+24] + mov ebp, [ebp+28] + jmp SYSCALL_JUMP mov [_errno], ebx + pop esi pop edi pop ebx pop ebp