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
}
|