add unistd.h
[neatlibc.git] / syscall.s
blobbceb9d015237b952de9b50ac78f4e5ae4031ef95
1 format ELF
3 __syscall:
4 push ebp
5 mov ebp, esp
7 push ebp
8 push ebx
9 push edi
10 push esi
12 mov ebx, [ebp+8]
13 mov ecx, [ebp+12]
14 mov edx, [ebp+16]
15 mov esi, [ebp+20]
16 mov edi, [ebp+24]
17 mov ebp, [ebp+28]
19 int 0x80
21 cmp eax, -125
22 jb done
23 neg eax
24 mov [errno], eax
25 mov eax, -1
26 done:
27 mov ebp, esp
28 pop esi
29 pop edi
30 pop ebx
31 pop ebp
32 leave
33 ret
35 errno dd 0
36 public errno
38 public _exit
39 _exit:
40 mov eax, 1
41 jmp __syscall
43 public fork
44 fork:
45 mov eax, 2
46 jmp __syscall
48 public read
49 read:
50 mov eax, 3
51 jmp __syscall
53 public write
54 write:
55 mov eax, 4
56 jmp __syscall
58 public open
59 open:
60 mov eax, 5
61 jmp __syscall
63 public close
64 close:
65 mov eax, 6
66 jmp __syscall
68 public waitpid
69 waitpid:
70 mov eax, 7
71 jmp __syscall
73 public creat
74 creat:
75 mov eax, 8
76 jmp __syscall
78 public link
79 link:
80 mov eax, 9
81 jmp __syscall
83 public unlink
84 unlink:
85 mov eax, 10
86 jmp __syscall
88 public execve
89 execve:
90 mov eax, 11
91 jmp __syscall
93 public chdir
94 chdir:
95 mov eax, 12
96 jmp __syscall
98 public time
99 time:
100 mov eax, 13
101 jmp __syscall
103 public mknod
104 mknod:
105 mov eax, 14
106 jmp __syscall
108 public chmod
109 chmod:
110 mov eax, 15
111 jmp __syscall
113 public lseek
114 lseek:
115 mov eax, 19
116 jmp __syscall
118 public getpid
119 getpid:
120 mov eax, 20
121 jmp __syscall
123 public mount
124 mount:
125 mov eax, 21
126 jmp __syscall
128 public umount
129 umount:
130 mov eax, 22
131 jmp __syscall
133 public setuid
134 setuid:
135 mov eax, 23
136 jmp __syscall
138 public getuid
139 getuid:
140 mov eax, 24
141 jmp __syscall
143 public sync
144 sync:
145 mov eax, 36
146 jmp __syscall
148 public kill
149 kill:
150 mov eax, 37
151 jmp __syscall
153 public mkdir
154 mkdir:
155 mov eax, 39
156 jmp __syscall
158 public rmdir
159 rmdir:
160 mov eax, 40
161 jmp __syscall
163 public __dup as 'dup'
164 __dup:
165 mov eax, 41
166 jmp __syscall
168 public pipe
169 pipe:
170 mov eax, 42
171 jmp __syscall
173 public brk
174 brk:
175 mov eax, 45
176 jmp __syscall
178 public setgid
179 setgid:
180 mov eax, 46
181 jmp __syscall
183 public getgid
184 getgid:
185 mov eax, 47
186 jmp __syscall
188 public signal
189 signal:
190 mov eax, 48
191 jmp __syscall
193 public geteuid
194 geteuid:
195 mov eax, 49
196 jmp __syscall
198 public getegid
199 getegid:
200 mov eax, 50
201 jmp __syscall
203 public ioctl
204 ioctl:
205 mov eax, 54
206 jmp __syscall
208 public fcntl
209 fcntl:
210 mov eax, 55
211 jmp __syscall
213 public dup2
214 dup2:
215 mov eax, 62
216 jmp __syscall
218 public getppid
219 getppid:
220 mov eax, 64
221 jmp __syscall
223 public setsid
224 setsid:
225 mov eax, 66
226 jmp __syscall
228 public gettimeofday
229 gettimeofday:
230 mov eax, 78
231 jmp __syscall
233 public settimeofday
234 settimeofday:
235 mov eax, 79
236 jmp __syscall
238 public mmap
239 mmap:
240 mov eax, 192
241 jmp __syscall
243 public munmap
244 munmap:
245 mov eax, 91
246 jmp __syscall
248 public stat
249 stat:
250 mov eax, 106
251 jmp __syscall
253 public lstat
254 lstat:
255 mov eax, 107
256 jmp __syscall
258 public fstat
259 fstat:
260 mov eax, 108
261 jmp __syscall
263 public clone
264 clone:
265 mov eax, 120
266 jmp __syscall
268 public uname
269 uname:
270 mov eax, 122
271 jmp __syscall
273 public fchdir
274 fchdir:
275 mov eax, 133
276 jmp __syscall
278 public poll
279 poll:
280 mov eax, 168
281 jmp __syscall
283 public chown
284 chown:
285 mov eax, 182
286 jmp __syscall
288 public getcwd
289 getcwd:
290 mov eax, 183
291 jmp __syscall