PERFORCE change 49980 for review

Peter Wemm peter at FreeBSD.org
Tue Mar 30 10:34:41 PST 2004


http://perforce.freebsd.org/chv.cgi?CH=49980

Change 49980 by peter at peter_overcee on 2004/03/30 10:34:21

	IFC @49979

Affected files ...

.. //depot/projects/hammer/bin/ps/ps.c#9 integrate
.. //depot/projects/hammer/etc/mtree/BSD.local.dist#19 integrate
.. //depot/projects/hammer/etc/mtree/BSD.usr.dist#23 integrate
.. //depot/projects/hammer/lib/libc/include/nss_tls.h#2 integrate
.. //depot/projects/hammer/lib/libc/locale/Makefile.inc#19 integrate
.. //depot/projects/hammer/lib/libc/locale/ctype.3#4 integrate
.. //depot/projects/hammer/lib/libc/locale/digittoint.3#2 integrate
.. //depot/projects/hammer/lib/libc/locale/isdigit.3#3 integrate
.. //depot/projects/hammer/lib/libc/locale/isideogram.3#1 branch
.. //depot/projects/hammer/lib/libc/locale/isphonogram.3#1 branch
.. //depot/projects/hammer/lib/libc/locale/isrune.3#1 branch
.. //depot/projects/hammer/lib/libc/locale/isspecial.3#1 branch
.. //depot/projects/hammer/lib/libc/locale/isxdigit.3#3 integrate
.. //depot/projects/hammer/lib/libc/net/nsdispatch.c#6 integrate
.. //depot/projects/hammer/lib/libc/net/nss_compat.c#3 integrate
.. //depot/projects/hammer/lib/libdisk/Makefile#7 integrate
.. //depot/projects/hammer/lib/libdisk/disk.c#16 integrate
.. //depot/projects/hammer/lib/libdisk/libdisk.h#13 integrate
.. //depot/projects/hammer/lib/libdisk/open_disk.c#3 integrate
.. //depot/projects/hammer/lib/libdisk/rules.c#13 integrate
.. //depot/projects/hammer/lib/libdisk/write_i386_disk.c#6 integrate
.. //depot/projects/hammer/lib/libdisk/write_pc98_disk.c#6 integrate
.. //depot/projects/hammer/secure/lib/libcrypto/Makefile.inc#6 integrate
.. //depot/projects/hammer/share/man/man4/ng_sppp.4#1 branch
.. //depot/projects/hammer/share/man/man5/rc.conf.5#23 integrate
.. //depot/projects/hammer/sys/conf/NOTES#39 integrate
.. //depot/projects/hammer/sys/conf/files.i386#26 integrate
.. //depot/projects/hammer/sys/contrib/pf/net/pf.c#4 integrate
.. //depot/projects/hammer/sys/dev/acpica/acpi.c#29 integrate
.. //depot/projects/hammer/sys/dev/nge/if_nge.c#15 integrate
.. //depot/projects/hammer/sys/dev/twa/twa.c#1 branch
.. //depot/projects/hammer/sys/dev/twa/twa.h#1 branch
.. //depot/projects/hammer/sys/dev/twa/twa_cam.c#1 branch
.. //depot/projects/hammer/sys/dev/twa/twa_externs.h#1 branch
.. //depot/projects/hammer/sys/dev/twa/twa_freebsd.c#1 branch
.. //depot/projects/hammer/sys/dev/twa/twa_fwimg.c#1 branch
.. //depot/projects/hammer/sys/dev/twa/twa_globals.c#1 branch
.. //depot/projects/hammer/sys/dev/twa/twa_includes.h#1 branch
.. //depot/projects/hammer/sys/dev/twa/twa_ioctl.h#1 branch
.. //depot/projects/hammer/sys/dev/twa/twa_reg.h#1 branch
.. //depot/projects/hammer/sys/fs/udf/udf_vfsops.c#9 integrate
.. //depot/projects/hammer/sys/fs/udf/udf_vnops.c#15 integrate
.. //depot/projects/hammer/sys/i386/conf/GENERIC#21 integrate
.. //depot/projects/hammer/sys/kern/subr_param.c#9 integrate
.. //depot/projects/hammer/sys/kern/uipc_usrreq.c#10 integrate
.. //depot/projects/hammer/sys/modules/twa/Makefile#1 branch
.. //depot/projects/hammer/sys/powerpc/powerpc/vm_machdep.c#15 integrate
.. //depot/projects/hammer/usr.bin/pkill/pkill.c#2 integrate
.. //depot/projects/hammer/usr.sbin/diskinfo/diskinfo.8#4 integrate
.. //depot/projects/hammer/usr.sbin/diskinfo/diskinfo.c#2 integrate

Differences ...

==== //depot/projects/hammer/bin/ps/ps.c#9 (text+ko) ====

@@ -51,7 +51,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/ps/ps.c,v 1.80 2004/03/29 03:03:28 gad Exp $");
+__FBSDID("$FreeBSD: src/bin/ps/ps.c,v 1.84 2004/03/30 04:20:33 gad Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -134,7 +134,8 @@
 static void	 add_list(struct listinfo *, const char *);
 static void	 dynsizevars(KINFO *);
 static void	*expand_list(struct listinfo *);
-static const char *fmt(char **(*)(kvm_t *, const struct kinfo_proc *, int),
+static const char *
+		 fmt(char **(*)(kvm_t *, const struct kinfo_proc *, int),
 		    KINFO *, char *, int);
 static void	 free_list(struct listinfo *);
 static void	 init_list(struct listinfo *, addelem_rtn, int, const char *);
@@ -254,7 +255,7 @@
 			break;
 		case 'g':
 #if 0
-			/*
+			/*-
 			 * XXX - This SUSv3 behavior is still under debate
 			 *	since it conflicts with the (undocumented)
 			 *	`-g' option.  So we skip it for now.
@@ -320,7 +321,7 @@
 			break;
 #if 0
 		case 'R':
-			/*
+			/*-
 			 * XXX - This un-standard option is still under
 			 *	debate.  This is what SUSv3 defines as
 			 *	the `-U' option, and while it would be
@@ -340,7 +341,7 @@
 			break;
 #if 0
 		case 's':
-			/*
+			/*-
 			 * XXX - This non-standard option is still under
 			 *	debate.  This *is* supported on Solaris,
 			 *	Linux, and IRIX, but conflicts with `-s'
@@ -480,7 +481,7 @@
 			flag = *ruidlist.uids;
 			nselectors = 0;
 #if 0
-		/*
+		/*-
 		 * XXX - KERN_PROC_SESSION causes error in kvm_getprocs?
 		 *	For now, always do sid-matching in this routine.
 		 */
@@ -628,7 +629,7 @@
 	struct group *grp;
 	const char *nameorID;
 	char *endp;
-	intmax_t ltemp;
+	u_long bigtemp;
 
 	if (*elem == '\0' || strlen(elem) >= MAXLOGNAME) {
 		if (*elem == '\0')
@@ -651,10 +652,10 @@
 	grp = NULL;
 	nameorID = "named";
 	errno = 0;
-	ltemp = strtol(elem, &endp, 10);
-	if (errno == 0 && *endp == '\0' && ltemp >= 0 && ltemp <= GID_MAX) {
+	bigtemp = strtoul(elem, &endp, 10);
+	if (errno == 0 && *endp == '\0' && bigtemp <= GID_MAX) {
 		nameorID = "name or ID matches";
-		grp = getgrgid((gid_t)ltemp);
+		grp = getgrgid((gid_t)bigtemp);
 	}
 	if (grp == NULL)
 		grp = getgrnam(elem);
@@ -670,7 +671,7 @@
 	return (1);
 }
 
-#define	BSD_PID_MAX	99999	/* Copy of PID_MAX from sys/proc.h. */
+#define	BSD_PID_MAX	99999		/* Copy of PID_MAX from sys/proc.h. */
 static int
 addelem_pid(struct listinfo *inf, const char *elem)
 {
@@ -741,7 +742,7 @@
 {
 	struct passwd *pwd;
 	char *endp;
-	intmax_t ltemp;
+	u_long bigtemp;
 
 	if (*elem == '\0' || strlen(elem) >= MAXLOGNAME) {
 		if (*elem == '\0')
@@ -755,13 +756,12 @@
 	pwd = getpwnam(elem);
 	if (pwd == NULL) {
 		errno = 0;
-		ltemp = strtol(elem, &endp, 10);
-		if (errno != 0 || *endp != '\0' || ltemp < 0 ||
-		    ltemp > UID_MAX)
+		bigtemp = strtoul(elem, &endp, 10);
+		if (errno != 0 || *endp != '\0' || bigtemp > UID_MAX)
 			warnx("No %s named '%s'", inf->lname, elem);
 		else {
 			/* The string is all digits, so it might be a userID. */
-			pwd = getpwuid((uid_t)ltemp);
+			pwd = getpwuid((uid_t)bigtemp);
 			if (pwd == NULL)
 				warnx("No %s name or ID matches '%s'",
 				    inf->lname, elem);
@@ -814,7 +814,7 @@
 			 */
 			inf->addelem(inf, elemcopy);
 #else
-			/*
+			/*-
 			 * This would add a simple non-standard-but-convienent
 			 * feature.
 			 *
@@ -1024,20 +1024,49 @@
 static int
 pscomp(const void *a, const void *b)
 {
-	int i;
-#define VSIZE(k) ((k)->ki_p->ki_dsize + (k)->ki_p->ki_ssize + \
-		  (k)->ki_p->ki_tsize)
+	const KINFO *ka, *kb;
+	double cpua, cpub;
+	segsz_t sizea, sizeb;
 
-	if (sortby == SORTCPU)
-		return (getpcpu((const KINFO *)b) - getpcpu((const KINFO *)a));
-	if (sortby == SORTMEM)
-		return (VSIZE((const KINFO *)b) - VSIZE((const KINFO *)a));
-	i =  (int)((const KINFO *)a)->ki_p->ki_tdev -
-	    (int)((const KINFO *)b)->ki_p->ki_tdev;
-	if (i == 0)
-		i = ((const KINFO *)a)->ki_p->ki_pid -
-		    ((const KINFO *)b)->ki_p->ki_pid;
-	return (i);
+	ka = a;
+	kb = b;
+	/* SORTCPU and SORTMEM are sorted in descending order. */
+	if (sortby == SORTCPU) {
+		cpua = getpcpu(ka);
+		cpub = getpcpu(kb);
+		if (cpua < cpub)
+			return (1);
+		if (cpua > cpub)
+			return (-1);
+	}
+	if (sortby == SORTMEM) {
+		sizea = ka->ki_p->ki_tsize + ka->ki_p->ki_dsize +
+		    ka->ki_p->ki_ssize;
+		sizeb = kb->ki_p->ki_tsize + kb->ki_p->ki_dsize +
+		    kb->ki_p->ki_ssize;
+		if (sizea < sizeb)
+			return (1);
+		if (sizea > sizeb)
+			return (-1);
+	}
+	/*
+	 * TTY's are sorted in ascending order, except that all NODEV
+	 * processes come before all processes with a device.
+	 */
+	if (ka->ki_p->ki_tdev == NODEV && kb->ki_p->ki_tdev != NODEV)
+		return (-1);
+	if (ka->ki_p->ki_tdev != NODEV && kb->ki_p->ki_tdev == NODEV)
+		return (1);
+	if (ka->ki_p->ki_tdev < kb->ki_p->ki_tdev)
+		return (-1);
+	if (ka->ki_p->ki_tdev > kb->ki_p->ki_tdev)
+		return (1);
+	/* PID's are sorted in ascending order. */
+	if (ka->ki_p->ki_pid < kb->ki_p->ki_pid)
+		return (-1);
+	if (ka->ki_p->ki_pid > kb->ki_p->ki_pid)
+		return (1);
+	return (0);
 }
 
 /*

==== //depot/projects/hammer/etc/mtree/BSD.local.dist#19 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.109 2004/03/29 11:07:35 tjr Exp $
+# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.110 2004/03/30 14:20:45 des Exp $
 #
 # Please see the file src/etc/mtree/README before making changes to this file.
 #
@@ -273,7 +273,6 @@
         nls
             C
             ..
-            POSIX type=link link=C
             af_ZA.ISO8859-1
             ..
             af_ZA.ISO8859-15
@@ -368,7 +367,6 @@
             ..
             en_US.ISO8859-1
             ..
-            en_US.US-ASCII type=link link=C
             en_US.ISO8859-15
             ..
             en_US.UTF-8

==== //depot/projects/hammer/etc/mtree/BSD.usr.dist#23 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.300 2004/03/29 11:07:35 tjr Exp $
+# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.301 2004/03/30 14:20:45 des Exp $
 #
 # Please see the file src/etc/mtree/README before making changes to this file.
 #
@@ -801,7 +801,6 @@
         nls
             C
             ..
-            POSIX type=link link=C
             af_ZA.ISO8859-1
             ..
             af_ZA.ISO8859-15
@@ -896,7 +895,6 @@
             ..
             en_US.ISO8859-1
             ..
-            en_US.US-ASCII type=link link=C
             en_US.ISO8859-15
             ..
             en_US.UTF-8

==== //depot/projects/hammer/lib/libc/include/nss_tls.h#2 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libc/include/nss_tls.h,v 1.2 2003/04/21 15:44:25 nectar Exp $
+ * $FreeBSD: src/lib/libc/include/nss_tls.h,v 1.3 2004/03/30 15:56:15 nectar Exp $
  *
  * Macros which generate thread local storage handling code in NSS modules.
  */
@@ -75,6 +75,6 @@
 	return (rv);						\
 }								\
 /* allow the macro invocation to end with a semicolon */	\
-typedef int _##name##_bmVjdGFy
+struct _clashproof_bmVjdGFy
 
 #endif /* _NSS_TLS_H_ */

==== //depot/projects/hammer/lib/libc/locale/Makefile.inc#19 (text+ko) ====

@@ -1,5 +1,5 @@
 #	from @(#)Makefile.inc	8.1 (Berkeley) 6/4/93
-# $FreeBSD: src/lib/libc/locale/Makefile.inc,v 1.54 2004/03/29 21:46:52 tjr Exp $
+# $FreeBSD: src/lib/libc/locale/Makefile.inc,v 1.55 2004/03/30 07:23:54 tjr Exp $
 
 # locale sources
 .PATH: ${.CURDIR}/${MACHINE_ARCH}/locale ${.CURDIR}/locale
@@ -21,7 +21,8 @@
 
 MAN+=	btowc.3 \
 	ctype.3 digittoint.3 isalnum.3 isalpha.3 isascii.3 isblank.3 iscntrl.3 \
-	isdigit.3 isgraph.3 islower.3 isprint.3 ispunct.3 isspace.3 \
+	isdigit.3 isgraph.3 isideogram.3 islower.3 isphonogram.3 isprint.3 \
+	ispunct.3 isrune.3 isspace.3 isspecial.3 \
 	isupper.3 iswalnum.3 isxdigit.3 localeconv.3 mblen.3 mbrlen.3 \
 	mbrtowc.3 \
 	mbrune.3 mbsinit.3 \

==== //depot/projects/hammer/lib/libc/locale/ctype.3#4 (text+ko) ====

@@ -30,9 +30,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)ctype.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/ctype.3,v 1.13 2003/09/08 19:57:14 ru Exp $
+.\" $FreeBSD: src/lib/libc/locale/ctype.3,v 1.14 2004/03/30 08:11:57 tjr Exp $
 .\"
-.Dd June 4, 1993
+.Dd March 30, 2004
 .Dt CTYPE 3
 .Os
 .Sh NAME
@@ -124,15 +124,20 @@
 .Xr iscntrl 3 ,
 .Xr isdigit 3 ,
 .Xr isgraph 3 ,
+.Xr isideogram 3 ,
 .Xr islower 3 ,
+.Xr isrune 3 ,
+.Xr isphonogram 3 ,
 .Xr isprint 3 ,
 .Xr ispunct 3 ,
 .Xr isspace 3 ,
+.Xr isspecial 3 ,
 .Xr isupper 3 ,
 .Xr isxdigit 3 ,
 .Xr toascii 3 ,
 .Xr tolower 3 ,
 .Xr toupper 3 ,
+.Xr wctype 3 ,
 .Xr ascii 7
 .Sh STANDARDS
 These functions, except for

==== //depot/projects/hammer/lib/libc/locale/digittoint.3#2 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"	@(#)digittoint.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/digittoint.3,v 1.2 2002/03/18 15:44:27 ru Exp $
+.\" $FreeBSD: src/lib/libc/locale/digittoint.3,v 1.3 2004/03/30 07:19:35 tjr Exp $
 .\"
 .Dd April 6, 2001
 .Dt DIGITTOINT 3
@@ -58,19 +58,6 @@
 .Xr isxdigit 3 ,
 the function will return 0.
 .Sh SEE ALSO
-.Xr isalnum 3 ,
-.Xr isalpha 3 ,
-.Xr isascii 3 ,
-.Xr iscntrl 3 ,
+.Xr ctype 3 ,
 .Xr isdigit 3 ,
-.Xr isgraph 3 ,
-.Xr islower 3 ,
-.Xr isprint 3 ,
-.Xr ispunct 3 ,
-.Xr isspace 3 ,
-.Xr isupper 3 ,
-.Xr isxdigit 3 ,
-.Xr stdio 3 ,
-.Xr tolower 3 ,
-.Xr toupper 3 ,
-.Xr ascii 7
+.Xr isxdigit 3

==== //depot/projects/hammer/lib/libc/locale/isdigit.3#3 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isdigit.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.16 2002/10/06 10:15:38 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.17 2004/03/30 07:02:04 tjr Exp $
 .\"
-.Dd October 6, 2002
+.Dd March 30, 2004
 .Dt ISDIGIT 3
 .Os
 .Sh NAME
@@ -53,15 +53,21 @@
 .Sh DESCRIPTION
 The
 .Fn isdigit
-function tests for any decimal-digit character.
-For any locale,
-this includes the following characters only:
+function tests for a decimal digit character.
+Regardless of locale, this includes the following characters only:
 .Pp
 .Bl -column \&``0''______ \&``0''______ \&``0''______ \&``0''______ \&``0''______
 .It "\&``0''\t``1''\t``2''\t``3''\t``4''"
 .It "\&``5''\t``6''\t``7''\t``8''\t``9''"
 .El
 .Pp
+The
+.Fn isnumber
+function behaves similarly to
+.Fn isdigit ,
+but may recognize additional characters, depending on the current locale
+setting.
+.Pp
 For single C
 .Va char Ns s
 locales (see
@@ -74,7 +80,9 @@
 .Sh RETURN VALUES
 The
 .Fn isdigit
-function returns zero if the character tests false and
+and
+.Fn isnumber
+functions return zero if the character tests false and
 returns non-zero if the character tests true.
 .Sh COMPATIBILITY
 Although
@@ -97,3 +105,8 @@
 .Fn isdigit
 function conforms to
 .St -isoC .
+.Sh HISTORY
+The
+.Fn isnumber
+function appeared in
+.Bx 4.4 .

==== //depot/projects/hammer/lib/libc/locale/isxdigit.3#3 (text+ko) ====

@@ -34,9 +34,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)isxdigit.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.16 2002/10/06 10:15:38 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.17 2004/03/30 07:02:04 tjr Exp $
 .\"
-.Dd October 6, 2002
+.Dd March 30, 2004
 .Dt ISXDIGIT 3
 .Os
 .Sh NAME
@@ -54,7 +54,7 @@
 The
 .Fn isxdigit
 function tests for any hexadecimal-digit character.
-For any locale, this includes the following characters only:
+Regardless of locale, this includes the following characters only:
 .Pp
 .Bl -column \&``0''______ \&``0''______ \&``0''______ \&``0''______ \&``0''______
 .It "\&``0''\t``1''\t``2''\t``3''\t``4''"
@@ -64,6 +64,13 @@
 .It "\&``e''\t``f''"
 .El
 .Pp
+The
+.Fn ishexnumber
+function behaves similarly to
+.Fn isxdigit ,
+but may recognize additional characters,
+depennding on the current locale setting.
+.Pp
 For single C
 .Va char Ns s
 locales (see
@@ -81,18 +88,14 @@
 .Sh COMPATIBILITY
 Although
 .Fn isxdigit
-and
-.Fn ishexnumber
-accept arguments outside of the range of the
+accepts arguments outside of the range of the
 .Vt "unsigned char"
 type in locales with large character sets,
 this is a
 .Bx 4.4
 extension and the
 .Fn isxwdigit
-and
-.Fn iswhexnumber
-functions should be used instead for maximum portability.
+function should be used instead for maximum portability.
 .Sh SEE ALSO
 .Xr ctype 3 ,
 .Xr iswxdigit 3 ,
@@ -103,3 +106,8 @@
 .Fn isxdigit
 function conforms to
 .St -isoC .
+.Sh HISTORY
+The
+.Fn ishexnumber
+function appeared in
+.Bx 4.4 .

==== //depot/projects/hammer/lib/libc/net/nsdispatch.c#6 (text+ko) ====

@@ -68,7 +68,7 @@
  *
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/nsdispatch.c,v 1.10 2004/03/15 08:14:35 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/nsdispatch.c,v 1.11 2004/03/30 15:56:15 nectar Exp $");
 
 #include "namespace.h"
 #include <sys/param.h>
@@ -316,9 +316,11 @@
 	static pthread_mutex_t conf_lock = PTHREAD_MUTEX_INITIALIZER;
 	static time_t	 confmod;
 	struct stat	 statbuf;
-	int		 result;
+	int		 result, isthreaded;
 	const char	*path;
 
+	result = 0;
+	isthreaded = __isthreaded;
 #if defined(_NSS_DEBUG) && defined(_NSS_SHOOT_FOOT)
 	/* NOTE WELL:  THIS IS A SECURITY HOLE. This must only be built
 	 * for debugging purposes and MUST NEVER be used in production.
@@ -331,16 +333,20 @@
 		return (0);
 	if (statbuf.st_mtime <= confmod)
 		return (0);
-	result = _pthread_mutex_trylock(&conf_lock);
-	if (result != 0)
-		return (0);
-	(void)_pthread_rwlock_unlock(&nss_lock);
-	result = _pthread_rwlock_wrlock(&nss_lock);
-	if (result != 0)
-		goto fin2;
+	if (isthreaded) {
+	    result = _pthread_mutex_trylock(&conf_lock);
+	    if (result != 0)
+		    return (0);
+	    (void)_pthread_rwlock_unlock(&nss_lock);
+	    result = _pthread_rwlock_wrlock(&nss_lock);
+	    if (result != 0)
+		    goto fin2;
+	}
 	_nsyyin = fopen(path, "r");
-	if (_nsyyin == NULL)
+	if (_nsyyin == NULL) {
+		result = errno;
 		goto fin;
+	}
 	VECTOR_FREE(_nsmap, &_nsmapsize, sizeof(*_nsmap),
 	    (vector_free_elem)ns_dbt_free);
 	VECTOR_FREE(_nsmod, &_nsmodsize, sizeof(*_nsmod),
@@ -353,10 +359,14 @@
 		(void)atexit(nss_atexit);
 	confmod = statbuf.st_mtime;
 fin:
-	(void)_pthread_rwlock_unlock(&nss_lock);
-	result = _pthread_rwlock_rdlock(&nss_lock);
+	if (isthreaded) {
+	    (void)_pthread_rwlock_unlock(&nss_lock);
+	    if (result == 0)
+		    result = _pthread_rwlock_rdlock(&nss_lock);
+	}
 fin2:
-	(void)_pthread_mutex_unlock(&conf_lock);
+	if (isthreaded)
+		(void)_pthread_mutex_unlock(&conf_lock);
 	return (result);
 }
 
@@ -510,12 +520,17 @@
 static void
 nss_atexit(void)
 {
-	(void)_pthread_rwlock_wrlock(&nss_lock);
+	int isthreaded;
+
+	isthreaded = __isthreaded;
+	if (isthreaded)
+		(void)_pthread_rwlock_wrlock(&nss_lock);
 	VECTOR_FREE(_nsmap, &_nsmapsize, sizeof(*_nsmap),
 	    (vector_free_elem)ns_dbt_free);
 	VECTOR_FREE(_nsmod, &_nsmodsize, sizeof(*_nsmod),
 	    (vector_free_elem)ns_mod_free);
-	(void)_pthread_rwlock_unlock(&nss_lock);
+	if (isthreaded)
+		(void)_pthread_rwlock_unlock(&nss_lock);
 }
 
 
@@ -568,13 +583,16 @@
 	const ns_src	*srclist;
 	nss_method	 method;
 	void		*mdata;
-	int		 serrno, i, result, srclistsize;
+	int		 isthreaded, serrno, i, result, srclistsize;
 
+	isthreaded = __isthreaded;
 	serrno = errno;
-	result = _pthread_rwlock_rdlock(&nss_lock);
-	if (result != 0) {
-		result = NS_UNAVAIL;
-		goto fin;
+	if (isthreaded) {
+		result = _pthread_rwlock_rdlock(&nss_lock);
+		if (result != 0) {
+			result = NS_UNAVAIL;
+			goto fin;
+		}
 	}
 	result = nss_configure();
 	if (result != 0) {
@@ -604,7 +622,8 @@
 				break;
 		}
 	}
-	(void)_pthread_rwlock_unlock(&nss_lock);
+	if (isthreaded)
+		(void)_pthread_rwlock_unlock(&nss_lock);
 fin:
 	errno = serrno;
 	return (result);

==== //depot/projects/hammer/lib/libc/net/nss_compat.c#3 (text+ko) ====

@@ -32,7 +32,7 @@
  * Compatibility shims for the GNU C Library-style nsswitch interface.
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/nss_compat.c,v 1.2 2004/01/09 13:43:49 nectar Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/nss_compat.c,v 1.3 2004/03/30 15:56:15 nectar Exp $");
 
 #include "namespace.h"
 #include <sys/param.h>
@@ -41,6 +41,7 @@
 #include <pthread.h>
 #include <pthread_np.h>
 #include "un-namespace.h"
+#include "libc_private.h"
 
 
 struct group;
@@ -60,7 +61,7 @@
 
 #define SET_TERMINATOR(x, y)						\
 do {									\
-	if (_pthread_main_np())						\
+	if (!__isthreaded || _pthread_main_np())			\
 		_term_main_##x = (y);					\
 	else {								\
 		(void)_pthread_once(&_term_once_##x, _term_create_##x);	\
@@ -69,7 +70,7 @@
 } while (0)
 
 #define CHECK_TERMINATOR(x)					\
-(_pthread_main_np() ?						\
+(!__isthreaded || _pthread_main_np() ?				\
     (_term_main_##x) :						\
     ((void)_pthread_once(&_term_once_##x, _term_create_##x),	\
     _pthread_getspecific(_term_key_##x)))

==== //depot/projects/hammer/lib/libdisk/Makefile#7 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libdisk/Makefile,v 1.40 2004/02/23 20:07:47 johan Exp $
+# $FreeBSD: src/lib/libdisk/Makefile,v 1.42 2004/03/30 06:16:41 kuriyama Exp $
 
 .if ${MACHINE_ARCH} == "ia64"
 _open_disk=	open_ia64_disk.c

==== //depot/projects/hammer/lib/libdisk/disk.c#16 (text+ko) ====

@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libdisk/disk.c,v 1.119 2003/11/02 08:39:08 marcel Exp $");
+__FBSDID("$FreeBSD: src/lib/libdisk/disk.c,v 1.120 2004/03/30 01:38:59 kuriyama Exp $");
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -173,8 +173,8 @@
 static int
 qstrcmp(const void* a, const void* b)
 {
-	char *str1 = *(char**)a;
-	char *str2 = *(char**)b;
+	const char *str1 = *(char* const*)a;
+	const char *str2 = *(char* const*)b;
 
 	return strcmp(str1, str2);
 }

==== //depot/projects/hammer/lib/libdisk/libdisk.h#13 (text+ko) ====

@@ -6,7 +6,7 @@
 * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
 * ----------------------------------------------------------------------------
 *
-* $FreeBSD: src/lib/libdisk/libdisk.h,v 1.60 2004/03/16 17:07:06 jhb Exp $
+* $FreeBSD: src/lib/libdisk/libdisk.h,v 1.61 2004/03/30 01:39:00 kuriyama Exp $
 *
 */
 
@@ -273,6 +273,7 @@
 void Fill_Disklabel(struct disklabel *, const struct disk *,
 	const struct chunk *);
 void Debug_Chunk(struct chunk *);
+struct chunk *New_Chunk(void);
 void Free_Chunk(struct chunk *);
 struct chunk *Clone_Chunk(const struct chunk *);
 int Add_Chunk(struct disk *, daddr_t, daddr_t, const char *, chunk_e, int,

==== //depot/projects/hammer/lib/libdisk/open_disk.c#3 (text+ko) ====

@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libdisk/open_disk.c,v 1.2 2004/03/16 17:07:06 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libdisk/open_disk.c,v 1.3 2004/03/30 01:39:00 kuriyama Exp $");
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -95,8 +95,9 @@
 	d->sector_size = s;
 	len /= s;	/* media size in number of sectors. */
 
-	if (Add_Chunk(d, 0, len, name, whole, 0, 0, "-"))
+	if (Add_Chunk(d, 0, len, name, whole, 0, 0, "-")) {
 		DPRINT(("Failed to add 'whole' chunk"));
+	}
 
 	for (;;) {
 		a = strsep(&p, " ");
@@ -191,14 +192,16 @@
 			o = d->chunks->size / (hd * sc);
 			o *= (hd * sc);
 			o -= alt * hd * sc;
-			if (Add_Chunk(d, 0, o, name, freebsd, 0, 0, "-"))
+			if (Add_Chunk(d, 0, o, name, freebsd, 0, 0, "-")) {
 				DPRINT(("Failed to add 'freebsd' chunk"));
+			}
 		}
 		if (platform == p_alpha && !strcmp(t, "BSD") &&
 		    d->chunks->part->part == NULL) {
 			if (Add_Chunk(d, 0, d->chunks->size, name, freebsd,
-				      0, 0, "-"))
+				      0, 0, "-")) {
 				DPRINT(("Failed to add 'freebsd' chunk"));
+			}
 		}
 		if (!strcmp(t, "BSD") && i == RAW_PART)
 			continue;
@@ -268,8 +271,9 @@
 		o = d->chunks->size / (hd * sc);
 		o *= (hd * sc);
 		o -= 2 * hd * sc;
-		if (Add_Chunk(d, 0, o, name, freebsd, 0, 0, "-"))
+		if (Add_Chunk(d, 0, o, name, freebsd, 0, 0, "-")) {
 			DPRINT(("Failed to add 'freebsd' chunk"));
+		}
 	}
 	/* PLATFORM POLICY END --------------------------------------- */
 

==== //depot/projects/hammer/lib/libdisk/rules.c#13 (text+ko) ====

@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libdisk/rules.c,v 1.33 2004/03/16 17:07:06 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libdisk/rules.c,v 1.34 2004/03/30 01:39:00 kuriyama Exp $");
 
 #include <sys/types.h>
 #include <sys/stdint.h>
@@ -103,7 +103,7 @@
  *	Only one of them can have the "active" flag
  */
 static void
-Rule_000(const struct disk *d, const struct chunk *c, char *msg)
+Rule_000(__unused const struct disk *d, const struct chunk *c, char *msg)
 {
 #ifdef PC98
 	int i = 0;
@@ -180,7 +180,7 @@
  *	Max one 'fat' as child of 'whole'
  */
 static void
-Rule_002(const struct disk *d, const struct chunk *c, char *msg)
+Rule_002(__unused const struct disk *d, const struct chunk *c, char *msg)
 {
 	int i;
 	struct chunk *c1;
@@ -203,7 +203,7 @@
  *	Max one extended as child of 'whole'
  */
 static void
-Rule_003(const struct disk *d, const struct chunk *c, char *msg)
+Rule_003(__unused const struct disk *d, const struct chunk *c, char *msg)
 {
 	int i;
 	struct chunk *c1;
@@ -227,7 +227,7 @@
  *	Max one CHUNK_IS_ROOT child per 'freebsd'
  */
 static void
-Rule_004(const struct disk *d, const struct chunk *c, char *msg)
+Rule_004(__unused const struct disk *d, const struct chunk *c, char *msg)
 {
 	int i = 0, k = 0;
 	struct chunk *c1;

==== //depot/projects/hammer/lib/libdisk/write_i386_disk.c#6 (text+ko) ====

@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libdisk/write_i386_disk.c,v 1.7 2003/04/04 16:35:13 phk Exp $");
+__FBSDID("$FreeBSD: src/lib/libdisk/write_i386_disk.c,v 1.8 2004/03/30 01:39:00 kuriyama Exp $");
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -69,14 +69,14 @@
  * Special install-time configuration for the i386 boot0 boot manager.
  */
 static void
-Cfg_Boot_Mgr(u_char *mbr, int edd)
+Cfg_Boot_Mgr(u_char *mbrblk, int edd)
 {
 
-	if (mbr[0x1b0] == 0x66 && mbr[0x1b1] == 0xbb) {
+	if (mbrblk[0x1b0] == 0x66 && mbrblk[0x1b1] == 0xbb) {
 		if (edd)
-			mbr[0x1bb] |= 0x80;	/* Packet mode on */
+			mbrblk[0x1bb] |= 0x80;	/* Packet mode on */
 		else
-			mbr[0x1bb] &= 0x7f;	/* Packet mode off */
+			mbrblk[0x1bb] &= 0x7f;	/* Packet mode off */
 	}
 }
 
@@ -88,7 +88,7 @@
 	struct chunk *c1;
 	int ret = 0;
 	char device[64];
-	u_char *mbr;
+	u_char *mbrblk;
 	struct dos_partition *dp,work[NDOSPART];
 	int s[4];
 	int need_edd = 0;	/* Need EDD (packet interface) */
@@ -101,11 +101,11 @@
                 return 1;
 
 	memset(s, 0, sizeof s);
-	mbr = read_block(fd, 0, d1->sector_size);
-	dp = (struct dos_partition *)(mbr + DOSPARTOFF);
+	mbrblk = read_block(fd, 0, d1->sector_size);
+	dp = (struct dos_partition *)(mbrblk + DOSPARTOFF);
 	memcpy(work, dp, sizeof work);
 	dp = work;
-	free(mbr);
+	free(mbrblk);
 	for (c1 = d1->chunks->part; c1; c1 = c1->next) {
 		if (c1->type == unused)
 			continue;
@@ -178,15 +178,15 @@
 			if (dp[i].dp_typ == 0xa5)
 				dp[i].dp_flag = 0x80;
 
-	mbr = read_block(fd, 0, d1->sector_size);
+	mbrblk = read_block(fd, 0, d1->sector_size);
 	if (d1->bootmgr) {
-		memcpy(mbr, d1->bootmgr, DOSPARTOFF);
-		Cfg_Boot_Mgr(mbr, need_edd);
+		memcpy(mbrblk, d1->bootmgr, DOSPARTOFF);
+		Cfg_Boot_Mgr(mbrblk, need_edd);
         }
-	memcpy(mbr + DOSPARTOFF, dp, sizeof *dp * NDOSPART);
-	mbr[512-2] = 0x55;
-	mbr[512-1] = 0xaa;
-	write_block(fd, 0, mbr, d1->sector_size);
+	memcpy(mbrblk + DOSPARTOFF, dp, sizeof *dp * NDOSPART);
+	mbrblk[512-2] = 0x55;
+	mbrblk[512-1] = 0xaa;
+	write_block(fd, 0, mbrblk, d1->sector_size);
 	if (d1->bootmgr && d1->bootmgr_size > d1->sector_size)
 		for (i = 1; i * d1->sector_size <= d1->bootmgr_size; i++)
 			write_block(fd, i, &d1->bootmgr[i * d1->sector_size],

==== //depot/projects/hammer/lib/libdisk/write_pc98_disk.c#6 (text+ko) ====

@@ -8,7 +8,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libdisk/write_pc98_disk.c,v 1.9 2003/04/04 16:35:13 phk Exp $");
+__FBSDID("$FreeBSD: src/lib/libdisk/write_pc98_disk.c,v 1.10 2004/03/30 12:22:31 nyan Exp $");
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -64,7 +64,7 @@
 	struct chunk *c1;
 	int ret = 0;
 	char device[64];
-	u_char *mbr;
+	u_char *mbrblk;
 	struct pc98_partition *dp, work[NDOSPART];
 	int s[7];
 	int PC98_EntireDisk = 0;
@@ -87,11 +87,11 @@
 	}
 
 	memset(s, 0, sizeof s);
-	mbr = read_block(fd, 1, d1->sector_size);
-	dp = (struct pc98_partition *)(mbr + DOSPARTOFF);
+	mbrblk = read_block(fd, 1, d1->sector_size);
+	dp = (struct pc98_partition *)(mbrblk + DOSPARTOFF);
 	memcpy(work, dp, sizeof work);
 	dp = work;
-	free(mbr);
+	free(mbrblk);
 	for (c1 = d1->chunks->part; c1; c1 = c1->next) {
 		if (c1->type == unused)
 			continue;
@@ -151,15 +151,15 @@
 	if (d1->bootipl)
 		write_block(fd, 0, d1->bootipl, d1->sector_size);
 
-	mbr = read_block(fd, 1, d1->sector_size);
-	memcpy(mbr + DOSPARTOFF, dp, sizeof *dp * NDOSPART);
+	mbrblk = read_block(fd, 1, d1->sector_size);
+	memcpy(mbrblk + DOSPARTOFF, dp, sizeof *dp * NDOSPART);
 	/* XXX - for entire FreeBSD(98) */
 	for (c1 = d1->chunks->part; c1; c1 = c1->next)
 		if (((c1->type == freebsd) || (c1->type == fat))
 			 && (c1->offset == 0))
 			PC98_EntireDisk = 1;
 	if (PC98_EntireDisk == 0)
-		write_block(fd, 1, mbr, d1->sector_size);
+		write_block(fd, 1, mbrblk, d1->sector_size);
 
 	if (d1->bootmenu)
 		for (i = 0; i * d1->sector_size < d1->bootmenu_size; i++)

==== //depot/projects/hammer/secure/lib/libcrypto/Makefile.inc#6 (text+ko) ====

@@ -1,10 +1,11 @@
-# $FreeBSD: src/secure/lib/libcrypto/Makefile.inc,v 1.36 2004/03/17 16:15:45 nectar Exp $
+# $FreeBSD: src/secure/lib/libcrypto/Makefile.inc,v 1.37 2004/03/30 11:30:02 dwmalone Exp $
 
 LCRYPTO_SRC=	${.CURDIR}/../../../crypto/openssl
 LCRYPTO_DOC=	${.CURDIR}/../../../crypto/openssl/doc
 
 CFLAGS+=	-DTERMIOS -DANSI_SOURCE
 CFLAGS+=	-I${LCRYPTO_SRC} -I${LCRYPTO_SRC}/crypto -I${.OBJDIR}
+CFLAGS+=	-DOPENSSL_THREADS -pthread
 
 .if !defined(MAKE_IDEA) || ${MAKE_IDEA} != YES
 CFLAGS+=	-DOPENSSL_NO_IDEA
@@ -41,7 +42,7 @@
 

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list