PERFORCE change 56470 for review
Marcel Moolenaar
marcel at FreeBSD.org
Sun Jul 4 16:51:09 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=56470
Change 56470 by marcel at marcel_nfs on 2004/07/04 23:50:52
Finish the switch from the trapframe to the pcb as the
primary context for kernel threads on alpha.
Affected files ...
.. //depot/projects/gdb/sys/alpha/alpha/gdb_machdep.c#5 edit
.. //depot/projects/gdb/sys/alpha/alpha/interrupt.c#9 edit
.. //depot/projects/gdb/sys/alpha/alpha/trap.c#8 edit
Differences ...
==== //depot/projects/gdb/sys/alpha/alpha/gdb_machdep.c#5 (text+ko) ====
@@ -33,8 +33,8 @@
#include <sys/kernel.h>
#include <sys/signal.h>
-#include <machine/frame.h>
#include <machine/gdb_machdep.h>
+#include <machine/pcb.h>
#include <machine/reg.h>
#include <gdb/gdb.h>
@@ -42,42 +42,18 @@
void *
gdb_cpu_getreg(int regnum, size_t *regsz)
{
- struct trapframe *tf = kdb_frame;
*regsz = gdb_cpu_regsz(regnum);
switch (regnum) {
- case 0: return (&tf->tf_regs[FRAME_V0]);
- case 1: return (&tf->tf_regs[FRAME_T0]);
- case 2: return (&tf->tf_regs[FRAME_T1]);
- case 3: return (&tf->tf_regs[FRAME_T2]);
- case 4: return (&tf->tf_regs[FRAME_T3]);
- case 5: return (&tf->tf_regs[FRAME_T4]);
- case 6: return (&tf->tf_regs[FRAME_T5]);
- case 7: return (&tf->tf_regs[FRAME_T6]);
- case 8: return (&tf->tf_regs[FRAME_T7]);
- case 9: return (&tf->tf_regs[FRAME_S0]);
- case 10: return (&tf->tf_regs[FRAME_S1]);
- case 11: return (&tf->tf_regs[FRAME_S2]);
- case 12: return (&tf->tf_regs[FRAME_S3]);
- case 13: return (&tf->tf_regs[FRAME_S4]);
- case 14: return (&tf->tf_regs[FRAME_S5]);
- case 15: return (&tf->tf_regs[FRAME_S6]);
- case 16: return (&tf->tf_regs[FRAME_A0]);
- case 17: return (&tf->tf_regs[FRAME_A1]);
- case 18: return (&tf->tf_regs[FRAME_A2]);
- case 19: return (&tf->tf_regs[FRAME_A3]);
- case 20: return (&tf->tf_regs[FRAME_A4]);
- case 21: return (&tf->tf_regs[FRAME_A5]);
- case 22: return (&tf->tf_regs[FRAME_T8]);
- case 23: return (&tf->tf_regs[FRAME_T9]);
- case 24: return (&tf->tf_regs[FRAME_T10]);
- case 25: return (&tf->tf_regs[FRAME_T11]);
- case 26: return (&tf->tf_regs[FRAME_RA]);
- case 27: return (&tf->tf_regs[FRAME_T12]);
- case 28: return (&tf->tf_regs[FRAME_AT]);
- case 29: return (&tf->tf_regs[FRAME_GP]);
- case 30: return (&tf->tf_regs[FRAME_SP]);
- case 64: return (&tf->tf_regs[FRAME_PC]);
+ case 9: return (&kdb_thrctx->pcb_context[0]);
+ case 10: return (&kdb_thrctx->pcb_context[1]);
+ case 11: return (&kdb_thrctx->pcb_context[2]);
+ case 12: return (&kdb_thrctx->pcb_context[3]);
+ case 13: return (&kdb_thrctx->pcb_context[4]);
+ case 14: return (&kdb_thrctx->pcb_context[5]);
+ case 15: return (&kdb_thrctx->pcb_context[6]);
+ case 26: return (&kdb_thrctx->pcb_context[7]);
+ case 30: return (&kdb_thrctx->pcb_hw.apcb_ksp);
}
return (NULL);
}
==== //depot/projects/gdb/sys/alpha/alpha/interrupt.c#9 (text+ko) ====
@@ -103,7 +103,6 @@
intr_restore(s);
#endif
atomic_add_int(&td->td_intr_nesting_level, 1);
- td->td_last_frame = framep;
#if KSTACK_GUARD_PAGES == 0
#ifndef SMP
==== //depot/projects/gdb/sys/alpha/alpha/trap.c#8 (text+ko) ====
@@ -290,8 +290,6 @@
}
#endif
- td->td_last_frame = framep;
-
/*
GIANT_REQUIRED;
* Giant hasn't been acquired yet.
@@ -662,7 +660,6 @@
cnt.v_syscall++;
td->td_frame = framep;
- td->td_last_frame = framep;
opc = framep->tf_regs[FRAME_PC] - 4;
sticks = td->td_sticks;
if (td->td_ucred != p->p_ucred)
More information about the p4-projects
mailing list