Expand PMF_FN_* macros.
[netbsd-mini2440.git] / sys / arch / zaurus / stand / zboot / unixsys.S
blob5e3e830df04fc34cf0e378d49730a6bc14c267b9
1 /*      $NetBSD$        */
2 /*      $OpenBSD: unixsys.S,v 1.6 2005/05/24 20:38:20 uwe Exp $ */
4 /*
5  * Copyright (c) 2005 Uwe Stuehler <uwe@bsdx.de>
6  *
7  * Permission to use, copy, modify, and distribute this software for any
8  * purpose with or without fee is hereby granted, provided that the above
9  * copyright notice and this permission notice appear in all copies.
10  *
11  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18  */
20 #include <machine/asm.h>
22 #include "compat_linux.h"
24         .text
26 #define RSYSCALL(x) \
27         ENTRY(__CONCAT(u,x)) \
28                 swi     __CONCAT(__NR_,x); \
29                 b       1f
31 RSYSCALL(exit)
32 RSYSCALL(read)
33 RSYSCALL(write)
34 RSYSCALL(open)
35 RSYSCALL(close)
36 RSYSCALL(lseek32)
37 RSYSCALL(ioctl)
38 RSYSCALL(stat)
41         cmn     r0, #4096
42         movcc   pc, lr
43         rsb     r0, r0, #0
44         ldr     r1, .Lerrno     /* XXX clobbers arg1 */
45         str     r0, [r1]
46         mvn     r0, #0
47         mov     pc, lr
49 .Lerrno:
50         .word   errno
52 /* XXX only works for up to four arguments. */
53 ENTRY(syscall)
54         swi     __NR_syscall
55         b       1b
57 ENTRY(uselect)
58         str     r4, [sp, #-4]!
59         ldr     r4, [sp, #4]
60         swi     __NR_select
61         ldr     r4, [sp], #4
62         cmn     r0, #4096
63         movcc   pc, lr
64         rsb     r0, r0, #0
65         str     r1, [sp, #-4]!
66         ldr     r1, .Lerrno
67         str     r0, [r1]
68         ldr     r1, [sp], #4
69         mvn     r0, #0
70         mov     pc, lr
72 .data
74         .global errno
75 errno:
76         .word   0