1// Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors.
2//
3// Redistribution and use in source and binary forms, with or without
4// modification, are permitted provided that the following conditions
5// are met:
6// 1. Redistributions of source code must retain the above copyright
7//    notice, this list of conditions and the following disclaimer.
8// 2. Redistributions in binary form must reproduce the above copyright
9//    notice, this list of conditions and the following disclaimer in the
10//    documentation and/or other materials provided with the distribution.
11//
12// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15// ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22// SUCH DAMAGE.
23//
24// This file is automatically generated. Do not edit.
25//
26// Source: https://github.com/NuxiNL/cloudabi
27
28#define ENTRY(name)      \
29  .text;                 \
30  .p2align 2, 0x90;      \
31  .global name;          \
32  .type name, @function; \
33name:
34
35#define END(name) .size name, . - name
36
37ENTRY(cloudabi_sys_clock_res_get)
38  mov $0, %eax
39  int $0x80
40  jc 1f
41  mov 8(%esp), %ecx
42  mov %eax, 0(%ecx)
43  mov %edx, 4(%ecx)
44  xor %eax, %eax
451:
46  ret
47END(cloudabi_sys_clock_res_get)
48
49ENTRY(cloudabi_sys_clock_time_get)
50  mov $1, %eax
51  int $0x80
52  jc 1f
53  mov 16(%esp), %ecx
54  mov %eax, 0(%ecx)
55  mov %edx, 4(%ecx)
56  xor %eax, %eax
571:
58  ret
59END(cloudabi_sys_clock_time_get)
60
61ENTRY(cloudabi_sys_condvar_signal)
62  mov $2, %eax
63  int $0x80
64  ret
65END(cloudabi_sys_condvar_signal)
66
67ENTRY(cloudabi_sys_fd_close)
68  mov $3, %eax
69  int $0x80
70  ret
71END(cloudabi_sys_fd_close)
72
73ENTRY(cloudabi_sys_fd_create1)
74  mov $4, %eax
75  int $0x80
76  jc 1f
77  mov 8(%esp), %ecx
78  mov %eax, (%ecx)
79  xor %eax, %eax
801:
81  ret
82END(cloudabi_sys_fd_create1)
83
84ENTRY(cloudabi_sys_fd_create2)
85  mov $5, %eax
86  int $0x80
87  jc 1f
88  mov 8(%esp), %ecx
89  mov %eax, (%ecx)
90  mov 12(%esp), %ecx
91  mov %edx, (%ecx)
92  xor %eax, %eax
931:
94  ret
95END(cloudabi_sys_fd_create2)
96
97ENTRY(cloudabi_sys_fd_datasync)
98  mov $6, %eax
99  int $0x80
100  ret
101END(cloudabi_sys_fd_datasync)
102
103ENTRY(cloudabi_sys_fd_dup)
104  mov $7, %eax
105  int $0x80
106  jc 1f
107  mov 8(%esp), %ecx
108  mov %eax, (%ecx)
109  xor %eax, %eax
1101:
111  ret
112END(cloudabi_sys_fd_dup)
113
114ENTRY(cloudabi_sys_fd_pread)
115  mov $8, %eax
116  int $0x80
117  jc 1f
118  mov 24(%esp), %ecx
119  mov %eax, (%ecx)
120  xor %eax, %eax
1211:
122  ret
123END(cloudabi_sys_fd_pread)
124
125ENTRY(cloudabi_sys_fd_pwrite)
126  mov $9, %eax
127  int $0x80
128  jc 1f
129  mov 24(%esp), %ecx
130  mov %eax, (%ecx)
131  xor %eax, %eax
1321:
133  ret
134END(cloudabi_sys_fd_pwrite)
135
136ENTRY(cloudabi_sys_fd_read)
137  mov $10, %eax
138  int $0x80
139  jc 1f
140  mov 16(%esp), %ecx
141  mov %eax, (%ecx)
142  xor %eax, %eax
1431:
144  ret
145END(cloudabi_sys_fd_read)
146
147ENTRY(cloudabi_sys_fd_replace)
148  mov $11, %eax
149  int $0x80
150  ret
151END(cloudabi_sys_fd_replace)
152
153ENTRY(cloudabi_sys_fd_seek)
154  mov $12, %eax
155  int $0x80
156  jc 1f
157  mov 20(%esp), %ecx
158  mov %eax, 0(%ecx)
159  mov %edx, 4(%ecx)
160  xor %eax, %eax
1611:
162  ret
163END(cloudabi_sys_fd_seek)
164
165ENTRY(cloudabi_sys_fd_stat_get)
166  mov $13, %eax
167  int $0x80
168  ret
169END(cloudabi_sys_fd_stat_get)
170
171ENTRY(cloudabi_sys_fd_stat_put)
172  mov $14, %eax
173  int $0x80
174  ret
175END(cloudabi_sys_fd_stat_put)
176
177ENTRY(cloudabi_sys_fd_sync)
178  mov $15, %eax
179  int $0x80
180  ret
181END(cloudabi_sys_fd_sync)
182
183ENTRY(cloudabi_sys_fd_write)
184  mov $16, %eax
185  int $0x80
186  jc 1f
187  mov 16(%esp), %ecx
188  mov %eax, (%ecx)
189  xor %eax, %eax
1901:
191  ret
192END(cloudabi_sys_fd_write)
193
194ENTRY(cloudabi_sys_file_advise)
195  mov $17, %eax
196  int $0x80
197  ret
198END(cloudabi_sys_file_advise)
199
200ENTRY(cloudabi_sys_file_allocate)
201  mov $18, %eax
202  int $0x80
203  ret
204END(cloudabi_sys_file_allocate)
205
206ENTRY(cloudabi_sys_file_create)
207  mov $19, %eax
208  int $0x80
209  ret
210END(cloudabi_sys_file_create)
211
212ENTRY(cloudabi_sys_file_link)
213  mov $20, %eax
214  int $0x80
215  ret
216END(cloudabi_sys_file_link)
217
218ENTRY(cloudabi_sys_file_open)
219  mov $21, %eax
220  int $0x80
221  jc 1f
222  mov 28(%esp), %ecx
223  mov %eax, (%ecx)
224  xor %eax, %eax
2251:
226  ret
227END(cloudabi_sys_file_open)
228
229ENTRY(cloudabi_sys_file_readdir)
230  mov $22, %eax
231  int $0x80
232  jc 1f
233  mov 24(%esp), %ecx
234  mov %eax, (%ecx)
235  xor %eax, %eax
2361:
237  ret
238END(cloudabi_sys_file_readdir)
239
240ENTRY(cloudabi_sys_file_readlink)
241  mov $23, %eax
242  int $0x80
243  jc 1f
244  mov 24(%esp), %ecx
245  mov %eax, (%ecx)
246  xor %eax, %eax
2471:
248  ret
249END(cloudabi_sys_file_readlink)
250
251ENTRY(cloudabi_sys_file_rename)
252  mov $24, %eax
253  int $0x80
254  ret
255END(cloudabi_sys_file_rename)
256
257ENTRY(cloudabi_sys_file_stat_fget)
258  mov $25, %eax
259  int $0x80
260  ret
261END(cloudabi_sys_file_stat_fget)
262
263ENTRY(cloudabi_sys_file_stat_fput)
264  mov $26, %eax
265  int $0x80
266  ret
267END(cloudabi_sys_file_stat_fput)
268
269ENTRY(cloudabi_sys_file_stat_get)
270  mov $27, %eax
271  int $0x80
272  ret
273END(cloudabi_sys_file_stat_get)
274
275ENTRY(cloudabi_sys_file_stat_put)
276  mov $28, %eax
277  int $0x80
278  ret
279END(cloudabi_sys_file_stat_put)
280
281ENTRY(cloudabi_sys_file_symlink)
282  mov $29, %eax
283  int $0x80
284  ret
285END(cloudabi_sys_file_symlink)
286
287ENTRY(cloudabi_sys_file_unlink)
288  mov $30, %eax
289  int $0x80
290  ret
291END(cloudabi_sys_file_unlink)
292
293ENTRY(cloudabi_sys_lock_unlock)
294  mov $31, %eax
295  int $0x80
296  ret
297END(cloudabi_sys_lock_unlock)
298
299ENTRY(cloudabi_sys_mem_advise)
300  mov $32, %eax
301  int $0x80
302  ret
303END(cloudabi_sys_mem_advise)
304
305ENTRY(cloudabi_sys_mem_map)
306  mov $33, %eax
307  int $0x80
308  jc 1f
309  mov 32(%esp), %ecx
310  mov %eax, (%ecx)
311  xor %eax, %eax
3121:
313  ret
314END(cloudabi_sys_mem_map)
315
316ENTRY(cloudabi_sys_mem_protect)
317  mov $34, %eax
318  int $0x80
319  ret
320END(cloudabi_sys_mem_protect)
321
322ENTRY(cloudabi_sys_mem_sync)
323  mov $35, %eax
324  int $0x80
325  ret
326END(cloudabi_sys_mem_sync)
327
328ENTRY(cloudabi_sys_mem_unmap)
329  mov $36, %eax
330  int $0x80
331  ret
332END(cloudabi_sys_mem_unmap)
333
334ENTRY(cloudabi_sys_poll)
335  mov $37, %eax
336  int $0x80
337  jc 1f
338  mov 16(%esp), %ecx
339  mov %eax, (%ecx)
340  xor %eax, %eax
3411:
342  ret
343END(cloudabi_sys_poll)
344
345ENTRY(cloudabi_sys_proc_exec)
346  mov $38, %eax
347  int $0x80
348  ret
349END(cloudabi_sys_proc_exec)
350
351ENTRY(cloudabi_sys_proc_exit)
352  mov $39, %eax
353  int $0x80
354END(cloudabi_sys_proc_exit)
355
356ENTRY(cloudabi_sys_proc_fork)
357  mov $40, %eax
358  int $0x80
359  jc 1f
360  mov 4(%esp), %ecx
361  mov %eax, (%ecx)
362  mov 8(%esp), %ecx
363  mov %edx, (%ecx)
364  xor %eax, %eax
3651:
366  ret
367END(cloudabi_sys_proc_fork)
368
369ENTRY(cloudabi_sys_proc_raise)
370  mov $41, %eax
371  int $0x80
372  ret
373END(cloudabi_sys_proc_raise)
374
375ENTRY(cloudabi_sys_random_get)
376  mov $42, %eax
377  int $0x80
378  ret
379END(cloudabi_sys_random_get)
380
381ENTRY(cloudabi_sys_sock_recv)
382  mov $43, %eax
383  int $0x80
384  ret
385END(cloudabi_sys_sock_recv)
386
387ENTRY(cloudabi_sys_sock_send)
388  mov $44, %eax
389  int $0x80
390  ret
391END(cloudabi_sys_sock_send)
392
393ENTRY(cloudabi_sys_sock_shutdown)
394  mov $45, %eax
395  int $0x80
396  ret
397END(cloudabi_sys_sock_shutdown)
398
399ENTRY(cloudabi_sys_thread_create)
400  mov $46, %eax
401  int $0x80
402  jc 1f
403  mov 8(%esp), %ecx
404  mov %eax, (%ecx)
405  xor %eax, %eax
4061:
407  ret
408END(cloudabi_sys_thread_create)
409
410ENTRY(cloudabi_sys_thread_exit)
411  mov $47, %eax
412  int $0x80
413END(cloudabi_sys_thread_exit)
414
415ENTRY(cloudabi_sys_thread_yield)
416  mov $48, %eax
417  int $0x80
418  ret
419END(cloudabi_sys_thread_yield)
420