$OpenBSD: patch-sysdeps_openbsd_procargs_c,v 1.6 2012/01/22 11:55:10 ajacoutot Exp $ From b11aa1517e203e36a8901f03ea57c50a25dfbfc7 Mon Sep 17 00:00:00 2001 From: Antoine Jacoutot Date: Sun, 22 Jan 2012 11:47:49 +0000 Subject: OpenBSD: kinfo_proc2 -> kinfo_proc commit dd46d6a00e4af444d423383abbc538436a170e2b Author: Jasper Lievisse Adriaanse Date: Sun Sep 18 13:42:13 2011 +0200 Don't bother with PIDs below 20 as they are highly likely to be kernel threads anyway. --- sysdeps/openbsd/procargs.c.orig Sun Jul 24 21:13:56 2011 +++ sysdeps/openbsd/procargs.c Mon Jan 9 18:37:24 2012 @@ -49,7 +49,7 @@ char * glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf, pid_t pid, unsigned max_len) { - struct kinfo_proc2 *pinfo; + struct kinfo_proc *pinfo; char *retval, **args, **ptr; size_t size = 0, pos = 0; int count; @@ -58,13 +58,16 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc memset (buf, 0, sizeof (glibtop_proc_args)); - /* swapper, init, pagedaemon, vmdaemon, update - this doen't work. */ - if (pid < 5) return NULL; + /* + * Don't bother with PIDs below 20, because everything below this + * number is highly likely to be a kernel thread. + */ + if (pid < 19) return NULL; glibtop_suid_enter (server); /* Get the process data */ - 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_suid_leave (server); @@ -72,7 +75,7 @@ glibtop_get_proc_args_p (glibtop *server, glibtop_proc return NULL; } - args = kvm_getargv2 (server->machine.kd, pinfo, max_len); + args = kvm_getargv (server->machine.kd, pinfo, max_len); if (args == NULL) { glibtop_suid_leave (server); glibtop_warn_io_r (server, "kvm_getargv (%d)", pid);