Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
[pandora-kernel.git] / arch / m68k / kernel / entry_no.S
1 /*
2  *  linux/arch/m68knommu/kernel/entry.S
3  *
4  *  Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com)
5  *  Copyright (C) 1998  D. Jeff Dionne <jeff@lineo.ca>,
6  *                      Kenneth Albanowski <kjahds@kjahds.com>,
7  *  Copyright (C) 2000  Lineo Inc. (www.lineo.com) 
8  *
9  * Based on:
10  *
11  *  linux/arch/m68k/kernel/entry.S
12  *
13  *  Copyright (C) 1991, 1992  Linus Torvalds
14  *
15  * This file is subject to the terms and conditions of the GNU General Public
16  * License.  See the file README.legal in the main directory of this archive
17  * for more details.
18  *
19  * Linux/m68k support by Hamish Macdonald
20  *
21  * 68060 fixes by Jesper Skov
22  * ColdFire support by Greg Ungerer (gerg@snapgear.com)
23  * 5307 fixes by David W. Miller
24  * linux 2.4 support David McCullough <davidm@snapgear.com>
25  */
26
27 #include <linux/linkage.h>
28 #include <asm/errno.h>
29 #include <asm/setup.h>
30 #include <asm/segment.h>
31 #include <asm/asm-offsets.h>
32 #include <asm/entry.h>
33 #include <asm/unistd.h>
34
35 .text
36
37 .globl buserr
38 .globl trap
39 .globl ret_from_exception
40 .globl ret_from_signal
41 .globl sys_fork
42 .globl sys_clone
43 .globl sys_vfork
44
45 ENTRY(buserr)
46         SAVE_ALL
47         moveq   #-1,%d0
48         movel   %d0,%sp@(PT_OFF_ORIG_D0)
49         movel   %sp,%sp@-               /* stack frame pointer argument */
50         jsr     buserr_c
51         addql   #4,%sp
52         jra     ret_from_exception
53
54 ENTRY(trap)
55         SAVE_ALL
56         moveq   #-1,%d0
57         movel   %d0,%sp@(PT_OFF_ORIG_D0)
58         movel   %sp,%sp@-               /* stack frame pointer argument */
59         jsr     trap_c
60         addql   #4,%sp
61         jra     ret_from_exception
62
63 #ifdef TRAP_DBG_INTERRUPT
64
65 .globl dbginterrupt
66 ENTRY(dbginterrupt)
67         SAVE_ALL
68         moveq   #-1,%d0
69         movel   %d0,%sp@(PT_OFF_ORIG_D0)
70         movel   %sp,%sp@-               /* stack frame pointer argument */
71         jsr     dbginterrupt_c
72         addql   #4,%sp
73         jra     ret_from_exception
74 #endif
75
76 ENTRY(reschedule)
77         /* save top of frame */
78         pea     %sp@
79         jbsr    set_esp0
80         addql   #4,%sp
81         pea     ret_from_exception
82         jmp     schedule
83
84 ENTRY(ret_from_fork)
85         movel   %d1,%sp@-
86         jsr     schedule_tail
87         addql   #4,%sp
88         jra     ret_from_exception
89
90 ENTRY(sys_fork)
91         SAVE_SWITCH_STACK
92         pea     %sp@(SWITCH_STACK_SIZE)
93         jbsr    m68k_fork
94         addql   #4,%sp
95         RESTORE_SWITCH_STACK
96         rts
97
98 ENTRY(sys_vfork)
99         SAVE_SWITCH_STACK
100         pea     %sp@(SWITCH_STACK_SIZE)
101         jbsr    m68k_vfork
102         addql   #4,%sp
103         RESTORE_SWITCH_STACK
104         rts
105
106 ENTRY(sys_clone)
107         SAVE_SWITCH_STACK
108         pea     %sp@(SWITCH_STACK_SIZE)
109         jbsr    m68k_clone
110         addql   #4,%sp
111         RESTORE_SWITCH_STACK
112         rts
113
114 ENTRY(sys_sigreturn)
115         SAVE_SWITCH_STACK
116         jbsr    do_sigreturn
117         RESTORE_SWITCH_STACK
118         rts
119
120 ENTRY(sys_rt_sigreturn)
121         SAVE_SWITCH_STACK
122         jbsr    do_rt_sigreturn
123         RESTORE_SWITCH_STACK
124         rts
125
126 ENTRY(ret_from_user_signal)
127         moveq #__NR_sigreturn,%d0
128         trap #0
129
130 ENTRY(ret_from_user_rt_signal)
131         movel #__NR_rt_sigreturn,%d0
132         trap #0
133