• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/m68knommu/kernel/
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/sys.h>
28#include <linux/linkage.h>
29#include <asm/errno.h>
30#include <asm/setup.h>
31#include <asm/segment.h>
32#include <asm/asm-offsets.h>
33#include <asm/entry.h>
34#include <asm/unistd.h>
35
36.text
37
38.globl buserr
39.globl trap
40.globl ret_from_exception
41.globl ret_from_signal
42.globl sys_fork
43.globl sys_clone
44.globl sys_vfork
45
46ENTRY(buserr)
47	SAVE_ALL
48	moveq	#-1,%d0
49	movel	%d0,%sp@(PT_OFF_ORIG_D0)
50	movel	%sp,%sp@- 		/* stack frame pointer argument */
51	jsr	buserr_c
52	addql	#4,%sp
53	jra	ret_from_exception
54
55ENTRY(trap)
56	SAVE_ALL
57	moveq	#-1,%d0
58	movel	%d0,%sp@(PT_OFF_ORIG_D0)
59	movel	%sp,%sp@- 		/* stack frame pointer argument */
60	jsr	trap_c
61	addql	#4,%sp
62	jra	ret_from_exception
63
64#ifdef TRAP_DBG_INTERRUPT
65
66.globl dbginterrupt
67ENTRY(dbginterrupt)
68	SAVE_ALL
69	moveq	#-1,%d0
70	movel	%d0,%sp@(PT_OFF_ORIG_D0)
71	movel	%sp,%sp@- 		/* stack frame pointer argument */
72	jsr	dbginterrupt_c
73	addql	#4,%sp
74	jra	ret_from_exception
75#endif
76
77ENTRY(reschedule)
78	/* save top of frame */
79	pea	%sp@
80	jbsr	set_esp0
81	addql	#4,%sp
82	pea	ret_from_exception
83	jmp	schedule
84
85ENTRY(ret_from_fork)
86	movel	%d1,%sp@-
87	jsr	schedule_tail
88	addql	#4,%sp
89	jra	ret_from_exception
90
91ENTRY(sys_fork)
92	SAVE_SWITCH_STACK
93	pea	%sp@(SWITCH_STACK_SIZE)
94	jbsr	m68k_fork
95	addql	#4,%sp
96	RESTORE_SWITCH_STACK
97	rts
98
99ENTRY(sys_vfork)
100	SAVE_SWITCH_STACK
101	pea	%sp@(SWITCH_STACK_SIZE)
102	jbsr	m68k_vfork
103	addql	#4,%sp
104	RESTORE_SWITCH_STACK
105	rts
106
107ENTRY(sys_clone)
108	SAVE_SWITCH_STACK
109	pea	%sp@(SWITCH_STACK_SIZE)
110	jbsr	m68k_clone
111	addql	#4,%sp
112	RESTORE_SWITCH_STACK
113	rts
114
115ENTRY(sys_sigsuspend)
116	SAVE_SWITCH_STACK
117	pea	%sp@(SWITCH_STACK_SIZE)
118	jbsr	do_sigsuspend
119	addql	#4,%sp
120	RESTORE_SWITCH_STACK
121	rts
122
123ENTRY(sys_rt_sigsuspend)
124	SAVE_SWITCH_STACK
125	pea	%sp@(SWITCH_STACK_SIZE)
126	jbsr	do_rt_sigsuspend
127	addql	#4,%sp
128	RESTORE_SWITCH_STACK
129	rts
130
131ENTRY(sys_sigreturn)
132	SAVE_SWITCH_STACK
133	jbsr	do_sigreturn
134	RESTORE_SWITCH_STACK
135	rts
136
137ENTRY(sys_rt_sigreturn)
138	SAVE_SWITCH_STACK
139	jbsr	do_rt_sigreturn
140	RESTORE_SWITCH_STACK
141	rts
142
143ENTRY(ret_from_user_signal)
144	moveq #__NR_sigreturn,%d0
145	trap #0
146
147ENTRY(ret_from_user_rt_signal)
148	movel #__NR_rt_sigreturn,%d0
149	trap #0
150