~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to arch/m68k/platform/coldfire/vectors.c

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************/
 
2
 
 
3
/*
 
4
 *      linux/arch/m68knommu/platform/coldfire/vectors.c
 
5
 *
 
6
 *      Copyright (C) 1999-2007, Greg Ungerer <gerg@snapgear.com>
 
7
 */
 
8
 
 
9
/***************************************************************************/
 
10
 
 
11
#include <linux/kernel.h>
 
12
#include <linux/init.h>
 
13
#include <linux/irq.h>
 
14
#include <asm/traps.h>
 
15
#include <asm/machdep.h>
 
16
#include <asm/coldfire.h>
 
17
#include <asm/mcfsim.h>
 
18
#include <asm/mcfwdebug.h>
 
19
 
 
20
/***************************************************************************/
 
21
 
 
22
#ifdef TRAP_DBG_INTERRUPT
 
23
 
 
24
asmlinkage void dbginterrupt_c(struct frame *fp)
 
25
{
 
26
        extern void dump(struct pt_regs *fp);
 
27
        printk(KERN_DEBUG "%s(%d): BUS ERROR TRAP\n", __FILE__, __LINE__);
 
28
        dump((struct pt_regs *) fp);
 
29
        asm("halt");
 
30
}
 
31
 
 
32
#endif
 
33
 
 
34
/***************************************************************************/
 
35
 
 
36
extern e_vector *_ramvec;
 
37
 
 
38
/* Assembler routines */
 
39
asmlinkage void buserr(void);
 
40
asmlinkage void trap(void);
 
41
asmlinkage void system_call(void);
 
42
asmlinkage void inthandler(void);
 
43
 
 
44
void __init trap_init(void)
 
45
{
 
46
        int i;
 
47
 
 
48
        /*
 
49
         *      There is a common trap handler and common interrupt
 
50
         *      handler that handle almost every vector. We treat
 
51
         *      the system call and bus error special, they get their
 
52
         *      own first level handlers.
 
53
         */
 
54
        for (i = 3; (i <= 23); i++)
 
55
                _ramvec[i] = trap;
 
56
        for (i = 33; (i <= 63); i++)
 
57
                _ramvec[i] = trap;
 
58
        for (i = 24; (i <= 31); i++)
 
59
                _ramvec[i] = inthandler;
 
60
        for (i = 64; (i < 255); i++)
 
61
                _ramvec[i] = inthandler;
 
62
        _ramvec[255] = 0;
 
63
 
 
64
        _ramvec[2] = buserr;
 
65
        _ramvec[32] = system_call;
 
66
 
 
67
#ifdef TRAP_DBG_INTERRUPT
 
68
        _ramvec[12] = dbginterrupt;
 
69
#endif
 
70
}
 
71
 
 
72
/***************************************************************************/