stdio: conversion specifiers should immediately follow length modifiers
[neatlibc.git] / x64 / syscall.s
blob84faf3329c8cbe2499091f128a63f05c68526842
1 format ELF64
3 __syscall:
4 mov r10, rcx
5 syscall
7 cmp rax, 0
8 jge done
9 cmp rax, -4095
10 jb done
11 neg rax
12 mov [errno], rax
13 mov rax, -1
14 done:
15 ret
17 errno dq 0
18 public errno
20 public _exit
21 _exit:
22 mov rax, 60
23 jmp __syscall
25 public fork
26 fork:
27 mov eax, 57
28 jmp __syscall
30 public read
31 read:
32 mov eax, 0
33 jmp __syscall
35 public write
36 write:
37 mov eax, 1
38 jmp __syscall
40 public open
41 open:
42 mov eax, 2
43 jmp __syscall
45 public close
46 close:
47 mov eax, 3
48 jmp __syscall
50 public waitpid
51 waitpid:
52 xor rcx, rcx
53 mov eax, 61
54 jmp __syscall
56 public creat
57 creat:
58 mov eax, 85
59 jmp __syscall
61 public link
62 link:
63 mov eax, 86
64 jmp __syscall
66 public unlink
67 unlink:
68 mov eax, 87
69 jmp __syscall
71 public execve
72 execve:
73 mov eax, 59
74 jmp __syscall
76 public chdir
77 chdir:
78 mov eax, 80
79 jmp __syscall
81 public time
82 time:
83 mov eax, 201
84 jmp __syscall
86 public mknod
87 mknod:
88 mov eax, 133
89 jmp __syscall
91 public chmod
92 chmod:
93 mov eax, 90
94 jmp __syscall
96 public lseek
97 lseek:
98 mov eax, 8
99 jmp __syscall
101 public getpid
102 getpid:
103 mov eax, 39
104 jmp __syscall
106 public mount
107 mount:
108 mov eax, 165
109 jmp __syscall
111 public umount
112 umount:
113 xor rsi, rsi
114 mov eax, 166
115 jmp __syscall
117 public setuid
118 setuid:
119 mov eax, 105
120 jmp __syscall
122 public getuid
123 getuid:
124 mov eax, 104
125 jmp __syscall
127 public utime
128 utime:
129 mov eax, 132
130 jmp __syscall
132 public access
133 access:
134 mov eax, 21
135 jmp __syscall
137 public sync
138 sync:
139 mov eax, 162
140 jmp __syscall
142 public kill
143 kill:
144 mov eax, 62
145 jmp __syscall
147 public mkdir
148 mkdir:
149 mov eax, 83
150 jmp __syscall
152 public rmdir
153 rmdir:
154 mov eax, 83
155 jmp __syscall
157 public __dup as 'dup'
158 __dup:
159 mov eax, 32
160 jmp __syscall
162 public pipe
163 pipe:
164 mov eax, 22
165 jmp __syscall
167 public brk
168 brk:
169 mov eax, 12
170 jmp __syscall
172 public setgid
173 setgid:
174 mov eax, 106
175 jmp __syscall
177 public getgid
178 getgid:
179 mov eax, 104
180 jmp __syscall
182 public geteuid
183 geteuid:
184 mov eax, 107
185 jmp __syscall
187 public getegid
188 getegid:
189 mov eax, 108
190 jmp __syscall
192 public ioctl
193 ioctl:
194 mov eax, 16
195 jmp __syscall
197 public fcntl
198 fcntl:
199 mov eax, 72
200 jmp __syscall
202 public dup2
203 dup2:
204 mov eax, 33
205 jmp __syscall
207 public getppid
208 getppid:
209 mov eax, 110
210 jmp __syscall
212 public setsid
213 setsid:
214 mov eax, 112
215 jmp __syscall
217 public gettimeofday
218 gettimeofday:
219 mov eax, 96
220 jmp __syscall
222 public settimeofday
223 settimeofday:
224 mov eax, 164
225 jmp __syscall
227 public mmap
228 mmap:
229 mov eax, 9
230 jmp __syscall
232 public munmap
233 munmap:
234 mov eax, 11
235 jmp __syscall
237 public stat
238 stat:
239 mov eax, 4
240 jmp __syscall
242 public lstat
243 lstat:
244 mov eax, 6
245 jmp __syscall
247 public fstat
248 fstat:
249 mov eax, 5
250 jmp __syscall
252 public clone
253 clone:
254 mov eax, 56
255 jmp __syscall
257 public uname
258 uname:
259 mov eax, 63
260 jmp __syscall
262 public fchdir
263 fchdir:
264 mov eax, 81
265 jmp __syscall
267 public getdents
268 getdents:
269 mov eax, 78
270 jmp __syscall
272 public nanosleep
273 nanosleep:
274 mov eax, 35
275 jmp __syscall
277 public poll
278 poll:
279 mov eax, 7
280 jmp __syscall
282 public chown
283 chown:
284 mov eax, 92
285 jmp __syscall
287 public getcwd
288 getcwd:
289 mov eax, 79
290 jmp __syscall
292 public sigaction
293 sigaction:
294 mov eax, 13
295 jmp __syscall
297 public sigreturn
298 sigreturn:
299 mov eax, 15
300 jmp __syscall