Changing syscall interface to jump to KUSER_CODE, allowing use
[tpg/acess2.git] / Usermode / Libraries / libacess.so_src / syscalls.inc.asm
1 ; ========================
2 ; AcssMicro - System Calls
3 ; ========================
4
5 %include "../../../Kernel/include/syscalls.inc.asm"
6
7 SYSCALL_JUMP equ        0xCFFF0000
8
9 ; System Call - No Arguments
10 %macro SYSCALL0 2
11 [global %1:func]
12 %1:
13         push ebx
14         mov eax, %2
15         jmp SYSCALL_JUMP
16         mov [_errno], ebx
17         pop ebx
18         ret
19 %endmacro
20
21 ; System Call - 1 Argument
22 %macro SYSCALL1 2
23 [global %1:func]
24 %1:
25         push ebp
26         mov ebp, esp
27         push ebx
28         mov eax, %2
29         mov ebx, [ebp+8]
30         jmp SYSCALL_JUMP
31         mov [_errno], ebx
32         pop ebx
33         pop ebp
34         ret
35 %endmacro
36
37 ; System Call - 2 Arguments
38 %macro SYSCALL2 2
39 [global %1:func]
40 %1:
41         push ebp
42         mov ebp, esp
43         push ebx
44         mov eax, %2
45         mov ebx, [ebp+8]
46         mov ecx, [ebp+12]
47         jmp SYSCALL_JUMP
48         mov [_errno], ebx
49         pop ebx
50         pop ebp
51         ret
52 %endmacro
53
54 ; System Call - 3 Arguments
55 %macro SYSCALL3 2
56 [global %1:func]
57 %1:
58         push ebp
59         mov ebp, esp
60         push ebx
61         mov eax, %2
62         mov ebx, [ebp+8]
63         mov ecx, [ebp+12]
64         mov edx, [ebp+16]
65         jmp SYSCALL_JUMP
66         mov [_errno], ebx
67         pop ebx
68         pop ebp
69         ret
70 %endmacro
71
72 ; System Call - 4 Arguments
73 %macro SYSCALL4 2
74 [global %1:func]
75 %1:
76         push ebp
77         mov ebp, esp
78         push ebx
79         push edi
80         mov eax, %2
81         mov ebx, [ebp+8]
82         mov ecx, [ebp+12]
83         mov edx, [ebp+16]
84         mov edi, [ebp+20]
85         jmp SYSCALL_JUMP
86         mov [_errno], ebx
87         pop edi
88         pop ebx
89         pop ebp
90         ret
91 %endmacro
92
93 ; System Call - 5 Arguments
94 %macro SYSCALL5 2
95 [global %1:func]
96 %1:
97         push ebp
98         mov ebp, esp
99         push ebx
100         push edi
101         push esi
102         mov eax, %2
103         mov ebx, [ebp+8]
104         mov ecx, [ebp+12]
105         mov edx, [ebp+16]
106         mov edi, [ebp+20]
107         mov esi, [ebp+24]
108         jmp SYSCALL_JUMP
109         mov [_errno], ebx
110         pop esi
111         pop edi
112         pop ebx
113         pop ebp
114         ret
115 %endmacro
116
117 ; System Call - 6 Arguments
118 %macro SYSCALL6 2
119 [global %1:func]
120 %1:
121         push ebp
122         mov ebp, esp
123         push ebx
124         push edi
125         push esi
126         mov eax, %2
127         mov ebx, [ebp+8]
128         mov ecx, [ebp+12]
129         mov edx, [ebp+16]
130         mov edi, [ebp+20]
131         mov esi, [ebp+24]
132         mov ebp, [ebp+28]
133         jmp SYSCALL_JUMP
134         mov [_errno], ebx
135         pop esi
136         pop edi
137         pop ebx
138         pop ebp
139         ret
140 %endmacro

UCC git Repository :: git.ucc.asn.au