$NetBSD: patch-an,v 1.3 2003/12/13 20:27:42 xtraeme Exp $

--- sysdeps/freebsd/procuid.c.orig	Fri Sep  5 23:46:58 2003
+++ sysdeps/freebsd/procuid.c	Fri Sep  5 23:51:37 2003
@@ -35,15 +35,7 @@
 (1L << GLIBTOP_PROC_UID_NICE);
 
 static const unsigned long _glibtop_sysdeps_proc_uid_groups =
-#if LIBGTOP_VERSION_CODE >= 1001000
-#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)
-(1L << GLIBTOP_PROC_UID_NGROUPS) + (1L << GLIBTOP_PROC_UID_GROUPS);
-#else
-0L;
-#endif
-#else /* LIBGTOP_VERSION_CODE < 1001000 */
 0L;
-#endif
 
 /* Init function. */
 
@@ -84,24 +76,57 @@
 		return;
 	}
 
-	buf->uid  = pinfo [0].kp_eproc.e_pcred.p_ruid;
-	buf->euid = pinfo [0].kp_eproc.e_pcred.p_svuid;
-	buf->gid  = pinfo [0].kp_eproc.e_pcred.p_rgid;
-	buf->egid = pinfo [0].kp_eproc.e_pcred.p_svgid;
-
-	buf->ppid  = pinfo [0].kp_eproc.e_ppid;
-	buf->pgrp  = pinfo [0].kp_eproc.e_pgid;
-	buf->tpgid = pinfo [0].kp_eproc.e_tpgid;
+#if defined(__FreeBSD__) && (__FreeBSD_version >= 500013)
+
+#define	XXX_P_RUID	ki_ruid
+#define	XXX_P_SVUID	ki_svuid
+#define	XXX_P_RGID	ki_rgid
+#define	XXX_P_SVGID	ki_svgid
+#define	XXX_E_PPID	ki_ppid
+#define	XXX_E_PGID	ki_pgid
+#define	XXX_E_TPGID	ki_tpgid
+#define	XXX_P_NICE	ki_nice
+#if __FreeBSD_version >= 500013
+#define	XXX_P_PRIORITY	ki_pri.pri_user
+#else
+#define	XXX_P_PRIORITY	ki_priority
+#endif
+#else
+
+#define	XXX_P_RUID	kp_eproc.e_pcred.p_ruid
+#define	XXX_P_SVUID	kp_eproc.e_pcred.p_svuid
+#define	XXX_P_RGID	kp_eproc.e_pcred.p_rgid
+#define	XXX_P_SVGID	kp_eproc.e_pcred.p_svgid
+#define	XXX_E_PPID	kp_eproc.e_ppid
+#define	XXX_E_PGID	kp_eproc.e_pgid
+#define	XXX_E_TPGID	kp_eproc.e_tpgid
+#define	XXX_P_NICE	kp_proc.p_nice
+#define	XXX_P_PRIORITY	kp_proc.p_priority
+
+#endif
 
-	buf->nice     = pinfo [0].kp_proc.p_nice;
-	buf->priority = pinfo [0].kp_proc.p_priority;
+	buf->uid  = pinfo [0].XXX_P_RUID;
+	buf->euid = pinfo [0].XXX_P_SVUID;
+	buf->gid  = pinfo [0].XXX_P_RGID;
+	buf->egid = pinfo [0].XXX_P_SVGID;
+
+	buf->ppid  = pinfo [0].XXX_E_PPID;
+	buf->pgrp  = pinfo [0].XXX_E_PGID;
+	buf->tpgid = pinfo [0].XXX_E_TPGID;
+
+	buf->nice     = pinfo [0].XXX_P_NICE;
+#if defined(__NetBSD__) && defined(SACTIVE)
+	buf->priority = 0;
+#else
+	buf->priority = pinfo [0].XXX_P_PRIORITY;
+#endif
 
 	/* Set the flags for the data we're about to return*/
 	buf->flags = _glibtop_sysdeps_proc_uid;
 
 	/* Use LibGTop conditionals here so we can more easily merge this
 	 * code into the LIBGTOP_STABLE_1_0 branch. */
-#if LIBGTOP_VERSION_CODE >= 1001000
+#if 0
 	/* This probably also works with other versions, but not yet
 	 * tested. Please remove the conditional if this is true. */
 #if defined(__NetBSD__) && (__NetBSD_Version__ >= 104000000)
