/* * linux/arch/m68knommu/kernel/entry.S * * Copyright (C) 1999-2002, Greg Ungerer (gerg@snapgear.com) * Copyright (C) 1998 D. Jeff Dionne , * Kenneth Albanowski , * Copyright (C) 2000 Lineo Inc. (www.lineo.com) * * Based on: * * linux/arch/m68k/kernel/entry.S * * Copyright (C) 1991, 1992 Linus Torvalds * * This file is subject to the terms and conditions of the GNU General Public * License. See the file README.legal in the main directory of this archive * for more details. * * Linux/m68k support by Hamish Macdonald * * 68060 fixes by Jesper Skov * ColdFire support by Greg Ungerer (gerg@snapgear.com) * 5307 fixes by David W. Miller * linux 2.4 support David McCullough */ #include #include #include #include #include #include #include #include .text .globl buserr .globl trap .globl ret_from_exception .globl ret_from_signal .globl sys_fork .globl sys_clone .globl sys_vfork ENTRY(buserr) SAVE_ALL moveq #-1,%d0 movel %d0,%sp@(PT_ORIG_D0) movel %sp,%sp@- /* stack frame pointer argument */ jsr buserr_c addql #4,%sp jra ret_from_exception ENTRY(trap) SAVE_ALL moveq #-1,%d0 movel %d0,%sp@(PT_ORIG_D0) movel %sp,%sp@- /* stack frame pointer argument */ jsr trap_c addql #4,%sp jra ret_from_exception #ifdef TRAP_DBG_INTERRUPT .globl dbginterrupt ENTRY(dbginterrupt) SAVE_ALL moveq #-1,%d0 movel %d0,%sp@(PT_ORIG_D0) movel %sp,%sp@- /* stack frame pointer argument */ jsr dbginterrupt_c addql #4,%sp jra ret_from_exception #endif ENTRY(reschedule) /* save top of frame */ pea %sp@ jbsr set_esp0 addql #4,%sp pea ret_from_exception jmp schedule ENTRY(ret_from_fork) movel %d1,%sp@- jsr schedule_tail addql #4,%sp jra ret_from_exception ENTRY(sys_fork) SAVE_SWITCH_STACK pea %sp@(SWITCH_STACK_SIZE) jbsr m68k_fork addql #4,%sp RESTORE_SWITCH_STACK rts ENTRY(sys_vfork) SAVE_SWITCH_STACK pea %sp@(SWITCH_STACK_SIZE) jbsr m68k_vfork addql #4,%sp RESTORE_SWITCH_STACK rts ENTRY(sys_clone) SAVE_SWITCH_STACK pea %sp@(SWITCH_STACK_SIZE) jbsr m68k_clone addql #4,%sp RESTORE_SWITCH_STACK rts ENTRY(sys_sigsuspend) SAVE_SWITCH_STACK pea %sp@(SWITCH_STACK_SIZE) jbsr do_sigsuspend addql #4,%sp RESTORE_SWITCH_STACK rts ENTRY(sys_rt_sigsuspend) SAVE_SWITCH_STACK pea %sp@(SWITCH_STACK_SIZE) jbsr do_rt_sigsuspend addql #4,%sp RESTORE_SWITCH_STACK rts ENTRY(sys_sigreturn) SAVE_SWITCH_STACK jbsr do_sigreturn RESTORE_SWITCH_STACK rts ENTRY(sys_rt_sigreturn) SAVE_SWITCH_STACK jbsr do_rt_sigreturn RESTORE_SWITCH_STACK rts