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

--- sysdeps/freebsd/procsignal.c.orig	Sat Sep  6 00:25:33 2003
+++ sysdeps/freebsd/procsignal.c	Sat Sep  6 00:30:38 2003
@@ -67,11 +67,30 @@
 		return;
 	}
 
+#if defined(__FreeBSD__) && (__FreeBSD_version >= 500013)
+
+#define	XXX_P_SIGLIST	ki_siglist
+#define	XXX_P_SIGMASK	ki_sigmask
+#define	XXX_P_SIGIGNORE	ki_sigignore
+#define	XXX_P_SIGCATCH	ki_sigcatch
+
+#else
+
+#define	XXX_P_SIGLIST	kp_proc.p_siglist
+#define	XXX_P_SIGMASK	kp_proc.p_sigmask
+#define	XXX_P_SIGIGNORE	kp_proc.p_sigignore
+#define	XXX_P_SIGCATCH	kp_proc.p_sigcatch
+
+#endif
+
+
 	/* signal: mask of pending signals.
 	 *         pinfo [0].kp_proc.p_siglist
 	 */
-#if (defined(__NetBSD__) && (NSIG > 32)) || (__FreeBSD_version >= 400011)
-	buf->signal [0] = pinfo [0].kp_proc.p_siglist.__bits[0];
+#if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
+	buf->signal [0] = pinfo [0].kp_proc.p_sigctx.ps_siglist.__bits[0];
+#elif (defined(__NetBSD__) && (NSIG > 32)) || defined(__FreeBSD__) && (__FreeBSD_version >= 400011)
+	buf->signal [0] = pinfo [0].XXX_P_SIGLIST.__bits[0];
 #else
 	buf->signal [0] = pinfo [0].kp_proc.p_siglist;
 #endif
@@ -79,8 +98,10 @@
 	/* blocked: mask of blocked signals.
 	 *          pinfo [0].kp_proc.p_sigmask
 	 */
-#if (defined(__NetBSD__) && (NSIG > 32)) || (__FreeBSD_version >= 400011)
-	buf->blocked [0] = pinfo [0].kp_proc.p_sigmask.__bits[0];
+#if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
+	buf->blocked [0] = pinfo [0].kp_proc.p_sigctx.ps_sigmask.__bits[0];
+#elif (defined(__NetBSD__) && (NSIG > 32)) || defined(__FreeBSD__) && (__FreeBSD_version >= 400011)
+	buf->blocked [0] = pinfo [0].XXX_P_SIGMASK.__bits[0];
 #else
 	buf->blocked [0] = pinfo [0].kp_proc.p_sigmask;
 #endif
@@ -88,8 +109,10 @@
 	/* sigignore: mask of ignored signals.
 	 *            pinfo [0].kp_proc.p_sigignore
 	*/
-#if (defined(__NetBSD__) && (NSIG > 32)) || (__FreeBSD_version >= 400011)
-	buf->sigignore [0] = pinfo [0].kp_proc.p_sigignore.__bits[0];
+#if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
+	buf->sigignore [0] = pinfo [0].kp_proc.p_sigctx.ps_sigignore.__bits[0];
+#elif (defined(__NetBSD__) && (NSIG > 32)) || defined(__FreeBSD__) && (__FreeBSD_version >= 400011)
+	buf->sigignore [0] = pinfo [0].XXX_P_SIGIGNORE.__bits[0];
 #else
 	buf->sigignore [0] = pinfo [0].kp_proc.p_sigignore;
 #endif
@@ -97,8 +120,10 @@
 	/* sigcatch: mask of caught signals.
 	 *           pinfo [0].kp_proc.p_sigcatch
 	*/
-#if (defined(__NetBSD__) && (NSIG > 32)) || (__FreeBSD_version >= 400011)
-	buf->sigcatch [0] = pinfo [0].kp_proc.p_sigcatch.__bits[0];
+#if defined(__NetBSD__) && (__NetBSD_Version__ >= 105150000)
+	buf->sigcatch [0] = pinfo [0].kp_proc.p_sigctx.ps_sigcatch.__bits[0];
+#elif (defined(__NetBSD__) && (NSIG > 32)) || defined(__FreeBSD__) && (__FreeBSD_version >= 400011)
+	buf->sigcatch [0] = pinfo [0].XXX_P_SIGCATCH.__bits[0];
 #else
 	buf->sigcatch [0] = pinfo [0].kp_proc.p_sigcatch;
 #endif
