__syscall.S revision 1.5 1 1.5 agc /* $NetBSD: __syscall.S,v 1.5 2003/08/07 16:42:20 agc Exp $ */
2 1.1 itojun
3 1.1 itojun /*-
4 1.1 itojun * Copyright (c) 1990 The Regents of the University of California.
5 1.1 itojun * All rights reserved.
6 1.1 itojun *
7 1.1 itojun * This code is derived from software contributed to Berkeley by
8 1.1 itojun * William Jolitz.
9 1.1 itojun *
10 1.1 itojun * Redistribution and use in source and binary forms, with or without
11 1.1 itojun * modification, are permitted provided that the following conditions
12 1.1 itojun * are met:
13 1.1 itojun * 1. Redistributions of source code must retain the above copyright
14 1.1 itojun * notice, this list of conditions and the following disclaimer.
15 1.1 itojun * 2. Redistributions in binary form must reproduce the above copyright
16 1.1 itojun * notice, this list of conditions and the following disclaimer in the
17 1.1 itojun * documentation and/or other materials provided with the distribution.
18 1.5 agc * 3. Neither the name of the University nor the names of its contributors
19 1.1 itojun * may be used to endorse or promote products derived from this software
20 1.1 itojun * without specific prior written permission.
21 1.1 itojun *
22 1.1 itojun * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23 1.1 itojun * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 1.1 itojun * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 1.1 itojun * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26 1.1 itojun * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 1.1 itojun * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 1.1 itojun * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 1.1 itojun * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 1.1 itojun * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 1.1 itojun * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 1.1 itojun * SUCH DAMAGE.
33 1.1 itojun *
34 1.1 itojun * from: @(#)syscall.s 5.1 (Berkeley) 4/23/90
35 1.1 itojun */
36 1.1 itojun
37 1.1 itojun #include <machine/asm.h>
38 1.1 itojun #if defined(SYSLIBC_SCCS) && !defined(lint)
39 1.5 agc RCSID("$NetBSD: __syscall.S,v 1.5 2003/08/07 16:42:20 agc Exp $")
40 1.1 itojun #endif /* SYSLIBC_SCCS and not lint */
41 1.1 itojun
42 1.1 itojun #include "SYS.h"
43 1.1 itojun
44 1.1 itojun ENTRY(__syscall)
45 1.3 msaitoh sts pr, r2 /* rta */
46 1.3 msaitoh mov.l L__syscall, r0 /* syscall number */
47 1.1 itojun trapa #0x80
48 1.1 itojun bf err
49 1.1 itojun rts
50 1.1 itojun nop
51 1.1 itojun err:
52 1.1 itojun mov.l Lcerror, r1
53 1.4 marcus #ifdef PIC
54 1.4 marcus braf r1
55 1.4 marcus #else
56 1.1 itojun jmp @r1
57 1.4 marcus #endif
58 1.1 itojun nop
59 1.4 marcus 1:
60 1.1 itojun
61 1.3 msaitoh .align 2
62 1.4 marcus #ifdef PIC
63 1.4 marcus Lcerror: .long cerror-1b
64 1.4 marcus #else
65 1.1 itojun Lcerror: .long cerror
66 1.4 marcus #endif
67 1.2 itojun L__syscall: .long SYS___syscall
68