summaryrefslogtreecommitdiff
path: root/devel/libgtop/patches/patch-al
blob: 772a0e524831acb1ee07f88643f40f539b145971 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
$NetBSD: patch-al,v 1.6 2000/02/01 16:43:44 rh Exp $

--- sysdeps/freebsd/prockernel.c.orig	Sat Oct 16 20:31:43 1999
+++ sysdeps/freebsd/prockernel.c	Sun Jan 30 20:00:03 2000
@@ -48,6 +48,11 @@
 #include <osreldate.h>
 #endif
 
+#if defined(__NetBSD__) && defined(__arm32__)
+#include <machine/vmparam.h>
+#define	KERNBASE	KERNEL_BASE
+#endif
+
 static const unsigned long _glibtop_sysdeps_proc_kernel_pstats =
 (1L << GLIBTOP_PROC_KERNEL_MIN_FLT) +
 (1L << GLIBTOP_PROC_KERNEL_MAJ_FLT) +
@@ -167,14 +172,32 @@
 			/*xxx FreeBSD/Alpha? */
 #endif
 #else
+#ifdef __i386__
 			buf->kstk_esp = (u_int64_t) pcb.pcb_tss.tss_esp0;
 #ifdef __bsdi__
 			buf->kstk_eip = (u_int64_t) pcb.pcb_tss.tss_eip;
 #else
 			buf->kstk_eip = (u_int64_t) pcb.pcb_tss.__tss_eip;
 #endif
+#else
+#if defined(__NetBSD__) && defined(__m68k__)
+			buf->kstk_esp = (u_int64_t) pcb.pcb_usp;
+			buf->kstk_eip = (u_int64_t) 0;
+#else
+#if defined(__NetBSD__) && defined(__arm32__)
+			buf->kstk_esp = (u_int64_t) pcb.pcb_sp;
+			buf->kstk_eip = (u_int64_t) 0;
+#else
+#ifdef __NetBSD__
+			/* provide some defaults for other platforms */
+			buf->kstk_esp = (u_int64_t) 0;
+			buf->kstk_eip = (u_int64_t) 0;
+#endif
+#endif
+#endif
 
 			buf->flags |= _glibtop_sysdeps_proc_kernel_pcb;
+#endif
 #endif
 		}