romcalls.S revision 1.4 1 /* $NetBSD: romcalls.S,v 1.4 2008/05/14 13:29:28 tsutsui Exp $ */
2
3 /*-
4 * Copyright (c) 1999 Izumi Tsutsui. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27 #include <m68k/asm.h>
28 #include <machine/romcall.h>
29
30 .text
31 .align 4
32
33 ENTRY_NOPROFILE(rom_halt)
34 moveq #8, %d7 | RB_HALT
35 trap #15
36
37 ENTRY_NOPROFILE(rom_open)
38 linkw %a6, #0
39 moveml %d2-%d7/%a2-%a5,%sp@- | save %d2-%d7, %a2-%a5
40 moveq #SYS_open, %d0
41 trap #0
42 moveml %a6@(-40),%d2-%d7/%a2-%a5
43 unlk %a6
44 rts
45
46 ENTRY_NOPROFILE(rom_close)
47 linkw %a6, #0
48 moveml %d2-%d7/%a2-%a5,%sp@- | save %d2-%d7, %a2-%a5
49 moveq #SYS_close, %d0
50 trap #0
51 moveml %a6@(-40),%d2-%d7/%a2-%a5
52 unlk %a6
53 rts
54
55 ENTRY_NOPROFILE(rom_read)
56 linkw %a6, #0
57 moveml %d2-%d7/%a2-%a5,%sp@- | save %d2-%d7, %a2-%a5
58 moveq #SYS_read, %d0
59 trap #0
60 moveml %a6@(-40),%d2-%d7/%a2-%a5
61 unlk %a6
62 rts
63
64 ENTRY_NOPROFILE(rom_write)
65 linkw %a6, #0
66 moveml %d2-%d7/%a2-%a5,%sp@- | save %d2-%d7, %a2-%a5
67 moveq #SYS_write, %d0
68 trap #0
69 moveml %a6@(-40),%d2-%d7/%a2-%a5
70 unlk %a6
71 rts
72
73 ENTRY_NOPROFILE(rom_lseek)
74 linkw %a6, #0
75 moveml %d2-%d7/%a2-%a5,%sp@- | save %d2-%d7, %a2-%a5
76 moveq #SYS_lseek, %d0
77 trap #0
78 moveml %a6@(-40),%d2-%d7/%a2-%a5
79 unlk %a6
80 rts
81