diff options
author | Michael Neuling <mikey@neuling.org> | 2008-01-17 23:50:30 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2008-01-25 06:52:50 -0500 |
commit | c3b75bd7bbf4a0438dc140033b80657995fd30ed (patch) | |
tree | 4621ebbf620d6262fccf61811824386b9ba50915 /arch/powerpc/xmon/xmon.c | |
parent | caa34c9e9cab6afb243a3da406cce272805c48c5 (diff) |
[POWERPC] Make setjmp/longjmp code usable outside of xmon
This makes the setjmp/longjmp code used by xmon, generically available
to other code. It also removes the requirement for debugger hooks to
be only called on 0x300 (data storage) exception.
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/xmon/xmon.c')
-rw-r--r-- | arch/powerpc/xmon/xmon.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c index 865e36751f21..a34172ddc468 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <asm/spu.h> | 40 | #include <asm/spu.h> |
41 | #include <asm/spu_priv1.h> | 41 | #include <asm/spu_priv1.h> |
42 | #include <asm/firmware.h> | 42 | #include <asm/firmware.h> |
43 | #include <asm/setjmp.h> | ||
43 | 44 | ||
44 | #ifdef CONFIG_PPC64 | 45 | #ifdef CONFIG_PPC64 |
45 | #include <asm/hvcall.h> | 46 | #include <asm/hvcall.h> |
@@ -71,12 +72,9 @@ static unsigned long ncsum = 4096; | |||
71 | static int termch; | 72 | static int termch; |
72 | static char tmpstr[128]; | 73 | static char tmpstr[128]; |
73 | 74 | ||
74 | #define JMP_BUF_LEN 23 | ||
75 | static long bus_error_jmp[JMP_BUF_LEN]; | 75 | static long bus_error_jmp[JMP_BUF_LEN]; |
76 | static int catch_memory_errors; | 76 | static int catch_memory_errors; |
77 | static long *xmon_fault_jmp[NR_CPUS]; | 77 | static long *xmon_fault_jmp[NR_CPUS]; |
78 | #define setjmp xmon_setjmp | ||
79 | #define longjmp xmon_longjmp | ||
80 | 78 | ||
81 | /* Breakpoint stuff */ | 79 | /* Breakpoint stuff */ |
82 | struct bpt { | 80 | struct bpt { |
@@ -162,8 +160,6 @@ int xmon_no_auto_backtrace; | |||
162 | extern void xmon_enter(void); | 160 | extern void xmon_enter(void); |
163 | extern void xmon_leave(void); | 161 | extern void xmon_leave(void); |
164 | 162 | ||
165 | extern long setjmp(long *); | ||
166 | extern void longjmp(long *, long); | ||
167 | extern void xmon_save_regs(struct pt_regs *); | 163 | extern void xmon_save_regs(struct pt_regs *); |
168 | 164 | ||
169 | #ifdef CONFIG_PPC64 | 165 | #ifdef CONFIG_PPC64 |