summaryrefslogtreecommitdiff
path: root/lang/m3gdb/files/patch-af
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lang/m3gdb/files/patch-af67
1 files changed, 64 insertions, 3 deletions
diff --git a/lang/m3gdb/files/patch-af b/lang/m3gdb/files/patch-af
index a30c3972b895..5ab1e1b742e6 100644
--- a/lang/m3gdb/files/patch-af
+++ b/lang/m3gdb/files/patch-af
@@ -1,6 +1,58 @@
---- kvm-fbsd.c.orig Sun Feb 7 04:36:10 1999
-+++ kvm-fbsd.c Wed Sep 8 10:38:14 1999
-@@ -835,9 +835,8 @@
+--- kvm-fbsd.c.orig Sun Feb 7 20:36:10 1999
++++ kvm-fbsd.c Sat Sep 18 11:23:31 2004
+@@ -22,6 +22,7 @@
+ #include <errno.h>
+ #include <signal.h>
+ #include <fcntl.h>
++#include <sys/types.h>
+ #include <sys/sysctl.h>
+ #include <sys/param.h>
+ #include <sys/time.h>
+@@ -361,10 +362,19 @@
+ struct user *uaddr;
+
+ /* find the pcb for the current process */
++#if defined(__FreeBSD__) && __FreeBSD__ >= 5
++ if (cur_proc == NULL || kvread (&cur_proc->p_uarea, &uaddr))
++#else
+ if (cur_proc == NULL || kvread (&cur_proc->p_addr, &uaddr))
++#endif
+ error ("cannot read u area ptr for proc at %#x", cur_proc);
++#if defined(__FreeBSD__) && __FreeBSD__ >= 5
++ if (read_pcb (core_kd, (CORE_ADDR)&uaddr->u_kproc.ki_pcb) < 0)
++ error ("cannot read pcb at %#x", &uaddr->u_kproc.ki_pcb);
++#else
+ if (read_pcb (core_kd, (CORE_ADDR)&uaddr->u_pcb) < 0)
+ error ("cannot read pcb at %#x", &uaddr->u_pcb);
++#endif
+ }
+
+ static void
+@@ -450,7 +451,11 @@
+ kp = kvm_getprocs(core_kd, KERN_PROC_PID, paddr, &cnt);
+ if (!cnt)
+ error("invalid pid");
++#if defined(__FreeBSD__) && __FreeBSD__ >= 5
++ if (set_proc_context((CORE_ADDR)kp->ki_paddr))
++#else
+ if (set_proc_context((CORE_ADDR)kp->kp_eproc.e_paddr))
++#endif
+ error("invalid proc address");
+ }
+ }
+@@ -643,7 +644,11 @@
+ return (0);
+ if (lp.p_pid != pid)
+ continue;
++#if defined(__FreeBSD__) && __FreeBSD__ >= 5
++ kp.ki_paddr = p;
++#else
+ kp.kp_eproc.e_paddr = p;
++#endif
+ *cnt = 1;
+ return (1);
+ }
+@@ -835,9 +836,8 @@
supply_register (6, (char *)&pcb.pcb_esi);
supply_register (7, (char *)&pcb.pcb_edi);
supply_register (PC_REGNUM, (char *)&pcb.pcb_eip);
@@ -11,3 +63,12 @@
supply_register (15, (char *)&pcb.pcb_gs);
/* XXX 80387 registers? */
+@@ -919,7 +919,7 @@
+ #if 0
+ kcore_stratum, /* to_stratum */
+ #else
+- NULL, /* haven't yet found this one... */
++ 0, /* haven't yet found this one... */
+ #endif
+ NULL, /* to_next */
+ 0, /* to_has_all_memory */