13 #include <linux/kernel.h>
15 #include <linux/stddef.h>
16 #include <linux/ptrace.h>
19 #include <asm/processor.h>
21 #include <asm/uaccess.h>
27 #include <linux/module.h>
48 " .section .eit_vector4,\"ax\" \n"
50 " .global startup_AP \n"
53 "_AP_EI: bra startup_AP \n"
59 #define BRA_INSN(func, entry) \
60 ((unsigned long)func - (unsigned long)eit_vector - entry*4)/4 \
63 static void set_eit_vector_entries(
void)
65 extern void default_eit_handler(
void);
67 extern void pie_handler(
void);
68 extern void ace_handler(
void);
69 extern void tme_handler(
void);
115 set_eit_vector_entries();
123 static int kstack_depth_to_print = 24;
130 stack = (
unsigned long*)&stack;
133 while (!kstack_end(stack)) {
136 printk(
"[<%08lx>] ", addr);
137 print_symbol(
"%s\n", addr);
145 unsigned long *
stack;
155 sp = (
unsigned long *)task->
thread.sp;
157 sp=(
unsigned long*)&
sp;
161 for(i=0; i < kstack_depth_to_print; i++) {
162 if (kstack_end(stack))
164 if (i && ((i % 4) == 0))
166 printk(
"%08lx ", *stack++);
190 sp = (
unsigned long) (1+regs);
194 printk(
"SPU: %08lx\n", sp);
196 printk(
"SPI: %08lx\n", sp);
198 printk(
"Process %s (pid: %d, process nr: %d, stackpage=%08lx)",
233 printk(
"%s: %04lx\n", str, err & 0xffff);
247 static __inline__ void do_trap(
int trapnr,
int signr,
const char * str,
254 tsk->
thread.trap_no = trapnr;
263 die(str, regs, error_code);
268 #define DO_ERROR(trapnr, signr, str, name) \
269 asmlinkage void do_##name(struct pt_regs * regs, long error_code) \
271 do_trap(trapnr, signr, NULL, regs, error_code, NULL); \
274 #define DO_ERROR_INFO(trapnr, signr, str, name, sicode, siaddr) \
275 asmlinkage void do_##name(struct pt_regs * regs, long error_code) \
278 info.si_signo = signr; \
280 info.si_code = sicode; \
281 info.si_addr = (void __user *)siaddr; \
282 do_trap(trapnr, signr, str, regs, error_code, &info); \
304 current->thread.trap_no = 0x17;
325 die(
"insn faulting in do_address_error", regs, 0);