string.h: implement memchr()
[neatlibc.git] / syscall.s
blob120c68c8e85f26f30a503fa7c5c3c731550cc5d8
1 format ELF
3 __syscall:
4 push ebp
5 mov ebp, esp
7 push ebx
8 push edi
9 push esi
11 mov ebx, [ebp+8]
12 mov ecx, [ebp+12]
13 mov edx, [ebp+16]
14 mov esi, [ebp+20]
15 mov edi, [ebp+24]
16 mov ebp, [ebp+28]
18 int 0x80
20 cmp eax, -125
21 jb done
22 neg eax
23 mov [errno], eax
24 mov eax, -1
25 done:
26 pop esi
27 pop edi
28 pop ebx
29 pop ebp
30 ret
32 errno dd 0
33 public errno
35 public _exit
36 _exit:
37 mov eax, 1
38 jmp __syscall
40 public fork
41 fork:
42 mov eax, 2
43 jmp __syscall
45 public read
46 read:
47 mov eax, 3
48 jmp __syscall
50 public write
51 write:
52 mov eax, 4
53 jmp __syscall
55 public open
56 open:
57 mov eax, 5
58 jmp __syscall
60 public close
61 close:
62 mov eax, 6
63 jmp __syscall
65 public waitpid
66 waitpid:
67 mov eax, 7
68 jmp __syscall
70 public creat
71 creat:
72 mov eax, 8
73 jmp __syscall
75 public link
76 link:
77 mov eax, 9
78 jmp __syscall
80 public unlink
81 unlink:
82 mov eax, 10
83 jmp __syscall
85 public execve
86 execve:
87 mov eax, 11
88 jmp __syscall
90 public chdir
91 chdir:
92 mov eax, 12
93 jmp __syscall
95 public time
96 time:
97 mov eax, 13
98 jmp __syscall
100 public mknod
101 mknod:
102 mov eax, 14
103 jmp __syscall
105 public chmod
106 chmod:
107 mov eax, 15
108 jmp __syscall
110 public lseek
111 lseek:
112 mov eax, 19
113 jmp __syscall
115 public getpid
116 getpid:
117 mov eax, 20
118 jmp __syscall
120 public mount
121 mount:
122 mov eax, 21
123 jmp __syscall
125 public umount
126 umount:
127 mov eax, 22
128 jmp __syscall
130 public setuid
131 setuid:
132 mov eax, 23
133 jmp __syscall
135 public getuid
136 getuid:
137 mov eax, 24
138 jmp __syscall
140 public sync
141 sync:
142 mov eax, 36
143 jmp __syscall
145 public kill
146 kill:
147 mov eax, 37
148 jmp __syscall
150 public mkdir
151 mkdir:
152 mov eax, 39
153 jmp __syscall
155 public rmdir
156 rmdir:
157 mov eax, 40
158 jmp __syscall
160 public __dup as 'dup'
161 __dup:
162 mov eax, 41
163 jmp __syscall
165 public pipe
166 pipe:
167 mov eax, 42
168 jmp __syscall
170 public brk
171 brk:
172 mov eax, 45
173 jmp __syscall
175 public setgid
176 setgid:
177 mov eax, 46
178 jmp __syscall
180 public getgid
181 getgid:
182 mov eax, 47
183 jmp __syscall
185 public signal
186 signal:
187 mov eax, 48
188 jmp __syscall
190 public geteuid
191 geteuid:
192 mov eax, 49
193 jmp __syscall
195 public getegid
196 getegid:
197 mov eax, 50
198 jmp __syscall
200 public ioctl
201 ioctl:
202 mov eax, 54
203 jmp __syscall
205 public fcntl
206 fcntl:
207 mov eax, 55
208 jmp __syscall
210 public dup2
211 dup2:
212 mov eax, 62
213 jmp __syscall
215 public getppid
216 getppid:
217 mov eax, 64
218 jmp __syscall
220 public setsid
221 setsid:
222 mov eax, 66
223 jmp __syscall
225 public gettimeofday
226 gettimeofday:
227 mov eax, 78
228 jmp __syscall
230 public settimeofday
231 settimeofday:
232 mov eax, 79
233 jmp __syscall
235 public mmap
236 mmap:
237 mov eax, 192
238 jmp __syscall
240 public munmap
241 munmap:
242 mov eax, 91
243 jmp __syscall
245 public stat
246 stat:
247 mov eax, 106
248 jmp __syscall
250 public lstat
251 lstat:
252 mov eax, 107
253 jmp __syscall
255 public fstat
256 fstat:
257 mov eax, 108
258 jmp __syscall
260 public clone
261 clone:
262 mov eax, 120
263 jmp __syscall
265 public uname
266 uname:
267 mov eax, 122
268 jmp __syscall
270 public fchdir
271 fchdir:
272 mov eax, 133
273 jmp __syscall
275 public poll
276 poll:
277 mov eax, 168
278 jmp __syscall
280 public chown
281 chown:
282 mov eax, 182
283 jmp __syscall
285 public getcwd
286 getcwd:
287 mov eax, 183
288 jmp __syscall