$OpenBSD: patch-sysdeps_freebsd_prockernel_c,v 1.4 2007/01/18 19:31:34 jasper Exp $
--- sysdeps/freebsd/prockernel.c.orig	Wed Jan 17 08:57:14 2007
+++ sysdeps/freebsd/prockernel.c	Wed Jan 17 09:00:34 2007
@@ -35,8 +35,9 @@
 #if (!defined __OpenBSD__) && (!defined __bsdi__)
 #include <sys/user.h>
 #endif
-#if !defined(__bsdi__) && !(defined(__FreeBSD__) && defined(__alpha__)) && \
-    !defined(__NetBSD__) 
+#if !(defined(__NetBSD__) || defined(__bsdi__) || defined(__FreeBSD__) || \
+      defined(__OpenBSD__)) && \
+     defined(__alpha__)
 #include <machine/pcb.h>
 #endif
 
@@ -84,7 +85,9 @@ void
 glibtop_init_proc_kernel_p (glibtop *server)
 {
 	server->sysdeps.proc_kernel = _glibtop_sysdeps_proc_kernel_pstats |
+#if (!defined __OpenBSD__) || (defined __i386__)
 		_glibtop_sysdeps_proc_kernel_pcb |
+#endif
 		_glibtop_sysdeps_proc_kernel_wchan;
 }
 
@@ -216,13 +219,15 @@ glibtop_get_proc_kernel_p (glibtop *serv
 			/*xxx FreeBSD/Alpha? */
 #endif
 #else
-#ifdef __i386__
+#if (!defined __OpenBSD__) || (defined __i386__)
 			buf->kstk_esp = (guint64) pcb.pcb_tss.tss_esp0;
 #ifdef __bsdi__
 			buf->kstk_eip = (guint64) pcb.pcb_tss.tss_eip;
 #else
+#if (!defined __OpenBSD__) || (defined __i386__)
 			buf->kstk_eip = (guint64) pcb.pcb_tss.__tss_eip;
 #endif
+#endif
 #else
 #if defined(__NetBSD__)
 #if defined(__m68k__)
@@ -249,7 +254,10 @@ glibtop_get_proc_kernel_p (glibtop *serv
 			buf->kstk_eip = (guint64) 0;
 #endif /* ${MACHINE_ARCH} */
 #endif /* __NetBSD__ */
+
+#if (!defined __OpenBSD__) || (defined __i386__)
 			buf->flags |= _glibtop_sysdeps_proc_kernel_pcb;
+#endif
 #endif
 #endif
 		}
