$OpenBSD: patch-mono_utils_mono-proclib_c,v 1.17 2015/12/15 15:32:04 robert Exp $
--- mono/utils/mono-proclib.c.orig	Sun Dec 13 18:16:49 2015
+++ mono/utils/mono-proclib.c	Sun Dec 13 20:29:38 2015
@@ -23,6 +23,7 @@
 #if defined(_POSIX_VERSION)
 #include <sys/errno.h>
 #include <sys/param.h>
+#include <errno.h>
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
@@ -68,30 +69,30 @@ mono_process_list (int *size)
 {
 #if USE_SYSCTL
 	int res, i;
-#ifdef KERN_PROC2
+#ifdef KERN_PROC
 	int mib [6];
-	size_t data_len = sizeof (struct kinfo_proc2) * 400;
-	struct kinfo_proc2 *processes = malloc (data_len);
+	size_t data_len = sizeof (struct kinfo_proc) * 400;
+	struct kinfo_proc *processes = malloc (data_len);
 #else
 	int mib [4];
 	size_t data_len = sizeof (struct kinfo_proc) * 16;
 	struct kinfo_proc *processes;
 	int limit = 8;
-#endif /* KERN_PROC2 */
+#endif /* KERN_PROC */
 	void **buf = NULL;
 
 	if (size)
 		*size = 0;
 
-#ifdef KERN_PROC2
+#ifdef KERN_PROC
 	if (!processes)
 		return NULL;
 
 	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] = 400; /* XXX */
 
 	res = sysctl (mib, 6, processes, &data_len, NULL, 0);
@@ -121,13 +122,13 @@ mono_process_list (int *size)
 			break;
 		}
 	}
-#endif /* KERN_PROC2 */
+#endif /* KERN_PROC */
 
-#ifdef KERN_PROC2
-	res = data_len/sizeof (struct kinfo_proc2);
+#ifdef KERN_PROC
+	res = data_len/sizeof (struct kinfo_proc);
 #else
 	res = data_len/sizeof (struct kinfo_proc);
-#endif /* KERN_PROC2 */
+#endif /* KERN_PROC */
 	buf = (void **) g_realloc (buf, res * sizeof (void*));
 	for (i = 0; i < res; ++i)
 		buf [i] = GINT_TO_POINTER (processes [i].kinfo_pid_member);
@@ -213,8 +214,8 @@ get_pid_status_item_buf (int pid, const char *item, ch
 
 #if USE_SYSCTL
 
-#ifdef KERN_PROC2
-#define KINFO_PROC struct kinfo_proc2
+#ifdef KERN_PROC
+#define KINFO_PROC struct kinfo_proc
 #else
 #define KINFO_PROC struct kinfo_proc
 #endif
@@ -225,10 +226,10 @@ sysctl_kinfo_proc (gpointer pid, KINFO_PROC* processi)
 	int res;
 	size_t data_len = sizeof (KINFO_PROC);
 
-#ifdef KERN_PROC2
+#ifdef KERN_PROC
 	int mib [6];
 	mib [0] = CTL_KERN;
-	mib [1] = KERN_PROC2;
+	mib [1] = KERN_PROC;
 	mib [2] = KERN_PROC_PID;
 	mib [3] = GPOINTER_TO_UINT (pid);
 	mib [4] = sizeof(KINFO_PROC);
@@ -243,7 +244,7 @@ sysctl_kinfo_proc (gpointer pid, KINFO_PROC* processi)
 	mib [3] = GPOINTER_TO_UINT (pid);
 
 	res = sysctl (mib, 4, processi, &data_len, NULL, 0);
-#endif /* KERN_PROC2 */
+#endif /* KERN_PROC */
 
 	if (res < 0 || data_len != sizeof (KINFO_PROC))
 		return FALSE;
