Page MenuHomeFreeBSD

D14416.id39439.diff
No OneTemporary

D14416.id39439.diff

Index: sys/powerpc/powerpc/trap.c
===================================================================
--- sys/powerpc/powerpc/trap.c
+++ sys/powerpc/powerpc/trap.c
@@ -444,52 +444,65 @@
}
static void
-printtrap(u_int vector, struct trapframe *frame, int isfatal, int user)
+cpu_printtrap(u_int vector, struct trapframe *frame, int isfatal, int user)
{
+#ifdef AIM
uint16_t ver;
-#ifdef BOOKE
- vm_paddr_t pa;
-#endif
- printf("\n");
- printf("%s %s trap:\n", isfatal ? "fatal" : "handled",
- user ? "user" : "kernel");
- printf("\n");
- printf(" exception = 0x%x (%s)\n", vector, trapname(vector));
switch (vector) {
case EXC_DSE:
case EXC_DSI:
case EXC_DTMISS:
- printf(" virtual address = 0x%" PRIxPTR "\n", frame->dar);
-#ifdef AIM
printf(" dsisr = 0x%lx\n",
(u_long)frame->cpu.aim.dsisr);
-#endif
break;
- case EXC_ISE:
- case EXC_ISI:
- case EXC_ITMISS:
- printf(" virtual address = 0x%" PRIxPTR "\n", frame->srr0);
- break;
case EXC_MCHK:
ver = mfpvr() >> 16;
-#if defined(AIM)
if (MPC745X_P(ver))
printf(" msssr0 = 0x%b\n",
(int)mfspr(SPR_MSSSR0), MSSSR_BITMASK);
+ break;
+ }
#elif defined(BOOKE)
+ vm_paddr_t pa;
+
+ switch (vector) {
+ case EXC_MCHK:
pa = mfspr(SPR_MCARU);
pa = (pa << 32) | (u_register_t)mfspr(SPR_MCAR);
printf(" mcsr = 0x%b\n",
(int)mfspr(SPR_MCSR), MCSR_BITMASK);
printf(" mcar = 0x%jx\n", (uintmax_t)pa);
-#endif
- break;
}
-#ifdef BOOKE
printf(" esr = 0x%b\n",
(int)frame->cpu.booke.esr, ESR_BITMASK);
#endif
+}
+
+static void
+printtrap(u_int vector, struct trapframe *frame, int isfatal, int user)
+{
+
+ printf("\n");
+ printf("%s %s trap:\n", isfatal ? "fatal" : "handled",
+ user ? "user" : "kernel");
+ printf("\n");
+ printf(" exception = 0x%x (%s)\n", vector, trapname(vector));
+ switch (vector) {
+ case EXC_DSE:
+ case EXC_DSI:
+ case EXC_DTMISS:
+ printf(" virtual address = 0x%" PRIxPTR "\n", frame->dar);
+ break;
+ case EXC_ISE:
+ case EXC_ISI:
+ case EXC_ITMISS:
+ printf(" virtual address = 0x%" PRIxPTR "\n", frame->srr0);
+ break;
+ case EXC_MCHK:
+ break;
+ }
+ cpu_printtrap(vector, frame, isfatal, user);
printf(" srr0 = 0x%" PRIxPTR " (0x%" PRIxPTR ")\n",
frame->srr0, frame->srr0 - (register_t)(__startkernel - KERNBASE));
printf(" srr1 = 0x%lx\n", (u_long)frame->srr1);

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 7, 3:24 AM (11 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31008477
Default Alt Text
D14416.id39439.diff (2 KB)

Event Timeline