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