Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Apr 2004 19:11:03 -0800 (PST)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 50299 for review
Message-ID:  <200404040311.i343B3JB055856@repoman.freebsd.org>

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

Change 50299 by marcel@marcel_nfs on 2004/04/03 19:10:48

	Implement gdb_cpu_getreg().

Affected files ...

.. //depot/projects/gdb/sys/alpha/alpha/gdb_machdep.c#4 edit

Differences ...

==== //depot/projects/gdb/sys/alpha/alpha/gdb_machdep.c#4 (text+ko) ====

@@ -29,6 +29,7 @@
 
 #include <sys/param.h>
 #include <sys/systm.h>
+#include <sys/kdb.h>
 #include <sys/kernel.h>
 #include <sys/signal.h>
 
@@ -41,9 +42,42 @@
 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]);
 	}
 	return (NULL);
 }



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