Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Jul 2004 23:51:07 GMT
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 56470 for review
Message-ID:  <200407042351.i64Np7bH064287@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=56470

Change 56470 by marcel@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)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200407042351.i64Np7bH064287>