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