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

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