$OpenBSD: patch-sysdeps_openbsd_prockernel_c,v 1.6 2013/04/01 11:42:18 jasper Exp $

From b11aa1517e203e36a8901f03ea57c50a25dfbfc7 Mon Sep 17 00:00:00 2001
From: Antoine Jacoutot <ajacoutot@gnome.org>
Date: Sun, 22 Jan 2012 11:47:49 +0000
Subject: OpenBSD: kinfo_proc2 -> kinfo_proc

From dc7eab432973e659a7d7054193da42260e148988 Mon Sep 17 00:00:00 2001
From: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date: Mon, 01 Apr 2013 11:40:11 +0000
Subject: Adjust for the fact that regular users cannot read wchan anymore in OpenBSD 5.4.

--- sysdeps/openbsd/prockernel.c.orig	Sun Jul 24 21:13:56 2011
+++ sysdeps/openbsd/prockernel.c	Wed Mar 27 08:53:04 2013
@@ -57,7 +57,7 @@ glibtop_get_proc_kernel_p (glibtop *server,
 			   glibtop_proc_kernel *buf,
 			   pid_t pid)
 {
-	struct kinfo_proc2 *pinfo;
+	struct kinfo_proc *pinfo;
 	int count;
 
 	glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_KERNEL), 0);
@@ -71,22 +71,20 @@ glibtop_get_proc_kernel_p (glibtop *server,
 	if (pid == 0) return;
 
 	/* Get the process information */
-	pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid,
+	pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid,
 			      sizeof(*pinfo), &count);
 	if ((pinfo == NULL) || (count != 1)) {
 		glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid);
 		return;
 	}
 
-	buf->nwchan = pinfo[0].p_wchan;
-	if (pinfo[0].p_wchan && pinfo[0].p_wmesg)
-		g_strlcpy(buf->wchan, pinfo[0].p_wmesg,
-			  sizeof buf->wchan);
-	
+	if (pinfo->p_wmesg[0])
+		g_strlcpy(buf->wchan, pinfo->p_wmesg[0], sizeof(buf->wchan));
+
 	buf->min_flt = pinfo[0].p_uru_minflt;
 	buf->maj_flt = pinfo[0].p_uru_majflt;
 
 	buf->flags |= (_glibtop_sysdeps_proc_kernel_wchan
-		| _glibtop_sysdeps_proc_kernel_pstats);
+		       | _glibtop_sysdeps_proc_kernel_pstats);
 
 }
