$OpenBSD: patch-src_task-manager-bsd_c,v 1.2 2012/12/18 21:38:12 sthen Exp $ --- src/task-manager-bsd.c.orig Fri May 21 05:37:20 2010 +++ src/task-manager-bsd.c Fri Dec 7 06:22:48 2012 @@ -25,6 +25,7 @@ #include #include #include +#include /* for swapctl() */ #include /* for strlcpy() */ @@ -41,7 +42,7 @@ gboolean get_task_list (GArray *task_list) { int mib[6]; size_t size; - struct kinfo_proc2 *kp; + struct kinfo_proc *kp; Task t; struct passwd *passwdp; char **args, **ptr; @@ -49,23 +50,23 @@ gboolean get_task_list (GArray *task_list) int nproc, i; mib[0] = CTL_KERN; - mib[1] = KERN_PROC2; + mib[1] = KERN_PROC; mib[2] = KERN_PROC_ALL; mib[3] = 0; - mib[4] = sizeof(struct kinfo_proc2); + mib[4] = sizeof(struct kinfo_proc); mib[5] = 0; if (sysctl(mib, 6, NULL, &size, NULL, 0) < 0) - errx(1, "could not get kern.proc2 size"); + errx(1, "could not get kern.proc size"); size = 5 * size / 4; /* extra slop */ if ((kp = malloc(size)) == NULL) errx(1,"failed to allocate memory for proc structures"); - mib[5] = (int)(size / sizeof(struct kinfo_proc2)); + mib[5] = (int)(size / sizeof(struct kinfo_proc)); if (sysctl(mib, 6, kp, &size, NULL, 0) < 0) - errx(1, "could not read kern.proc2"); - nproc = (int)(size / sizeof(struct kinfo_proc2)); + errx(1, "could not read kern.proc"); + nproc = (int)(size / sizeof(struct kinfo_proc)); for (i=0 ; i < nproc ; i++) { - struct kinfo_proc2 p = kp[i]; + struct kinfo_proc p = kp[i]; t.pid = p.p_pid; t.ppid = p.p_ppid; t.uid = p.p_uid; @@ -117,17 +118,17 @@ gboolean pid_is_sleeping (guint pid) { int mib[6]; - struct kinfo_proc2 kp; - size_t size = sizeof(struct kinfo_proc2); + struct kinfo_proc kp; + size_t size = sizeof(struct kinfo_proc); mib[0] = CTL_KERN; - mib[1] = KERN_PROC2; + mib[1] = KERN_PROC; mib[2] = KERN_PROC_PID; mib[3] = pid; - mib[4] = sizeof(struct kinfo_proc2); + mib[4] = sizeof(struct kinfo_proc); mib[5] = 1; if (sysctl(mib, 6, &kp, &size, NULL, 0) < 0) - errx(1, "could not read kern.proc2 for pid %d", pid); + errx(1, "could not read kern.proc for pid %d", pid); return (kp.p_stat == SSLEEP ? TRUE : FALSE); }