Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Jul 2003 18:30:58 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 34907 for review
Message-ID:  <200307240130.h6O1UwrN054874@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=34907

Change 34907 by peter@peter_daintree on 2003/07/23 18:30:32

	IFC @34906

Affected files ...

.. //depot/projects/hammer/UPDATING#14 integrate
.. //depot/projects/hammer/contrib/tar/src/tar.c#2 integrate
.. //depot/projects/hammer/etc/defaults/pccard.conf#9 integrate
.. //depot/projects/hammer/lib/libc/amd64/Makefile.inc#2 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/Makefile.inc#12 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/fpgetmask.c#3 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/fpgetprec.c#3 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/fpgetround.c#3 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/fpgetsticky.c#3 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/fpsetmask.c#3 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/fpsetprec.c#3 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/fpsetround.c#3 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/fpsetsticky.c#3 integrate
.. //depot/projects/hammer/lib/libc/sys/connect.2#4 integrate
.. //depot/projects/hammer/lib/libfetch/Makefile#8 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_cancel.c#11 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_cond.c#13 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_detach.c#5 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_kern.c#18 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_mutex.c#8 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_private.h#14 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_resume_np.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_sig.c#16 integrate
.. //depot/projects/hammer/lib/msun/Makefile#4 integrate
.. //depot/projects/hammer/lib/msun/src/e_acos.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/e_asin.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/e_atan2.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/e_exp.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/e_fmod.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/e_log.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/e_log10.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/e_remainder.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/e_scalb.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/e_sqrt.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/get_hw_float.c#2 delete
.. //depot/projects/hammer/lib/msun/src/math_private.h#4 integrate
.. //depot/projects/hammer/lib/msun/src/s_atan.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_ceil.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_copysign.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_copysignf.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_cos.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_finite.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_floor.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_ilogb.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_logb.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_rint.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_scalbn.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_significand.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_sin.c#2 integrate
.. //depot/projects/hammer/lib/msun/src/s_tan.c#2 integrate
.. //depot/projects/hammer/release/Makefile#33 integrate
.. //depot/projects/hammer/release/amd64/dokern.sh#3 delete
.. //depot/projects/hammer/release/amd64/fixit_crunch.conf#3 delete
.. //depot/projects/hammer/release/i386/mkisoimages.sh#2 integrate
.. //depot/projects/hammer/sbin/devd/devd.cc#6 integrate
.. //depot/projects/hammer/sbin/devd/token.l#3 integrate
.. //depot/projects/hammer/sbin/ipfw/ipfw.8#11 integrate
.. //depot/projects/hammer/share/man/man4/ath_hal.4#3 integrate
.. //depot/projects/hammer/share/man/man4/man4.i386/npx.4#2 integrate
.. //depot/projects/hammer/share/man/man7/Makefile#4 integrate
.. //depot/projects/hammer/share/man/man7/release.7#10 integrate
.. //depot/projects/hammer/share/man/man7/rescue.7#1 branch
.. //depot/projects/hammer/sys/amd64/amd64/machdep.c#46 integrate
.. //depot/projects/hammer/sys/amd64/amd64/pmap.c#28 integrate
.. //depot/projects/hammer/sys/amd64/amd64/sys_machdep.c#8 integrate
.. //depot/projects/hammer/sys/amd64/include/ieeefp.h#7 integrate
.. //depot/projects/hammer/sys/amd64/include/npx.h#9 integrate
.. //depot/projects/hammer/sys/conf/files#25 integrate
.. //depot/projects/hammer/sys/conf/files.alpha#9 integrate
.. //depot/projects/hammer/sys/conf/files.i386#15 integrate
.. //depot/projects/hammer/sys/conf/files.pc98#16 integrate
.. //depot/projects/hammer/sys/conf/kern.post.mk#11 integrate
.. //depot/projects/hammer/sys/conf/kern.pre.mk#11 integrate
.. //depot/projects/hammer/sys/conf/kmod.mk#7 integrate
.. //depot/projects/hammer/sys/conf/newvers.sh#6 integrate
.. //depot/projects/hammer/sys/conf/options#21 integrate
.. //depot/projects/hammer/sys/conf/options.i386#12 integrate
.. //depot/projects/hammer/sys/conf/options.pc98#12 integrate
.. //depot/projects/hammer/sys/dev/fxp/if_fxp.c#22 integrate
.. //depot/projects/hammer/sys/dev/ie/if_ie.c#6 integrate
.. //depot/projects/hammer/sys/dev/lnc/if_lnc.c#5 integrate
.. //depot/projects/hammer/sys/dev/patm/if_patm_tx.c#2 integrate
.. //depot/projects/hammer/sys/dev/rp/rp.c#5 integrate
.. //depot/projects/hammer/sys/dev/usb/usb_mem.c#4 integrate
.. //depot/projects/hammer/sys/gnu/i386/fpemul/Changelog#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/README#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/control_w.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/div_small.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/errors.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/exception.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/fpu_arith.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/fpu_asm.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/fpu_aux.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/fpu_emu.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/fpu_entry.c#3 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/fpu_etc.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/fpu_proto.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/fpu_system.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/fpu_trig.c#3 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/get_address.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/load_store.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/math_emu.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/poly_2xm1.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/poly_atan.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/poly_div.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/poly_l2.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/poly_mul64.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/poly_sin.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/poly_tan.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/polynomial.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_add_sub.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_compare.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_constant.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_constant.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_div.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_ld_str.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_mul.c#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_norm.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_round.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_u_add.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_u_div.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_u_mul.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/reg_u_sub.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/status_w.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/version.h#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/wm_shrx.s#2 delete
.. //depot/projects/hammer/sys/gnu/i386/fpemul/wm_sqrt.s#2 delete
.. //depot/projects/hammer/sys/i386/conf/NOTES#18 integrate
.. //depot/projects/hammer/sys/i386/i386/math_emu.h#2 delete
.. //depot/projects/hammer/sys/i386/i386/math_emulate.c#4 delete
.. //depot/projects/hammer/sys/i386/i386/mp_machdep.c#11 integrate
.. //depot/projects/hammer/sys/i386/i386/mpapic.c#5 integrate
.. //depot/projects/hammer/sys/i386/i386/pmap.c#15 integrate
.. //depot/projects/hammer/sys/i386/i386/trap.c#16 integrate
.. //depot/projects/hammer/sys/i386/include/apic.h#5 integrate
.. //depot/projects/hammer/sys/i386/include/asm.h#5 integrate
.. //depot/projects/hammer/sys/i386/include/cpufunc.h#5 integrate
.. //depot/projects/hammer/sys/i386/include/frame.h#2 integrate
.. //depot/projects/hammer/sys/i386/isa/npx.c#11 integrate
.. //depot/projects/hammer/sys/i4b/capi/iavc/iavc.h#2 integrate
.. //depot/projects/hammer/sys/i4b/capi/iavc/iavc_lli.c#4 integrate
.. //depot/projects/hammer/sys/ia64/include/_regset.h#3 integrate
.. //depot/projects/hammer/sys/kern/init_main.c#15 integrate
.. //depot/projects/hammer/sys/kern/kern_malloc.c#11 integrate
.. //depot/projects/hammer/sys/kern/kern_umtx.c#8 integrate
.. //depot/projects/hammer/sys/kern/md5c.c#4 integrate
.. //depot/projects/hammer/sys/kern/subr_autoconf.c#3 integrate
.. //depot/projects/hammer/sys/kern/subr_mbuf.c#15 integrate
.. //depot/projects/hammer/sys/kern/subr_prf.c#12 integrate
.. //depot/projects/hammer/sys/kern/tty_subr.c#4 integrate
.. //depot/projects/hammer/sys/kern/vfs_cluster.c#11 integrate
.. //depot/projects/hammer/sys/kern/vfs_subr.c#21 integrate
.. //depot/projects/hammer/sys/modules/Makefile#24 integrate
.. //depot/projects/hammer/sys/modules/fpu/Makefile#2 delete
.. //depot/projects/hammer/sys/modules/gnufpu/Makefile#2 delete
.. //depot/projects/hammer/sys/netatm/atm_cm.c#6 integrate
.. //depot/projects/hammer/sys/netatm/atm_device.c#5 integrate
.. //depot/projects/hammer/sys/netatm/atm_if.c#6 integrate
.. //depot/projects/hammer/sys/netatm/atm_if.h#4 integrate
.. //depot/projects/hammer/sys/netatm/atm_socket.c#4 integrate
.. //depot/projects/hammer/sys/netatm/atm_subr.c#6 integrate
.. //depot/projects/hammer/sys/netatm/ipatm/ipatm_if.c#5 integrate
.. //depot/projects/hammer/sys/netatm/ipatm/ipatm_load.c#4 integrate
.. //depot/projects/hammer/sys/netatm/ipatm/ipatm_vcm.c#4 integrate
.. //depot/projects/hammer/sys/netatm/sigpvc/sigpvc_if.c#3 integrate
.. //depot/projects/hammer/sys/netatm/spans/spans_arp.c#4 integrate
.. //depot/projects/hammer/sys/netatm/spans/spans_cls.c#4 integrate
.. //depot/projects/hammer/sys/netatm/spans/spans_if.c#3 integrate
.. //depot/projects/hammer/sys/netatm/uni/sscf_uni.c#4 integrate
.. //depot/projects/hammer/sys/netatm/uni/sscop.c#4 integrate
.. //depot/projects/hammer/sys/netatm/uni/uniarp.c#4 integrate
.. //depot/projects/hammer/sys/netatm/uni/uniarp_cache.c#4 integrate
.. //depot/projects/hammer/sys/netatm/uni/uniarp_vcm.c#4 integrate
.. //depot/projects/hammer/sys/netatm/uni/uniip.c#5 integrate
.. //depot/projects/hammer/sys/netatm/uni/unisig_decode.c#5 integrate
.. //depot/projects/hammer/sys/netatm/uni/unisig_if.c#3 integrate
.. //depot/projects/hammer/sys/netatm/uni/unisig_subr.c#4 integrate
.. //depot/projects/hammer/sys/netatm/uni/unisig_vc_state.c#4 integrate
.. //depot/projects/hammer/sys/netinet/ip_input.c#13 integrate
.. //depot/projects/hammer/sys/pc98/conf/GENERIC#10 integrate
.. //depot/projects/hammer/sys/pc98/conf/NOTES#8 integrate
.. //depot/projects/hammer/sys/sys/cdefs.h#9 integrate
.. //depot/projects/hammer/sys/sys/systm.h#9 integrate
.. //depot/projects/hammer/sys/vm/swap_pager.c#14 integrate
.. //depot/projects/hammer/sys/vm/vm_object.c#25 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/Makefile#3 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/ada.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/current.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/default.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/dsa.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/dwp.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/releng_4.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/stanley.rc#1 branch
.. //depot/projects/hammer/tools/tools/tinderbox/tbmaster.1#3 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/tbmaster.pl#10 integrate
.. //depot/projects/hammer/tools/tools/tinderbox/tinderbox.1#3 integrate
.. //depot/projects/hammer/usr.bin/fetch/Makefile#5 integrate
.. //depot/projects/hammer/usr.bin/sed/TEST/sed.test#2 integrate
.. //depot/projects/hammer/usr.bin/sed/sed.1#3 integrate

Differences ...

==== //depot/projects/hammer/UPDATING#14 (text+ko) ====

@@ -17,6 +17,18 @@
 	developers choose to disable these features on build machines
 	to maximize performance.
 
+20030722:
+	FPU-less support has been removed from FreeBSD.  Chances are you won't
+	notice.  386+387 support should still work after this change, but
+	it is now a minimum requirement for the i386 port that you have real
+	FPU hardware.
+
+20030714:
+	Some people are having problems with changes related to /rescue.
+	If you are building -j N, you will need to define NO_RESCUE.  Others
+	will need to define it if /rescue has issues with their environment.
+	People should report those issues to current@.
+
 20030711:
 	gcc was upgraded to 3.3.  You are advised to not build -DNOCLEAN
 	across this point.  Further, it might be a good idea to remove
@@ -1314,4 +1326,4 @@
 Contact Warner Losh if you have any questions about your use of
 this document.
 
-$FreeBSD: src/UPDATING,v 1.258 2003/07/12 01:16:54 ceri Exp $
+$FreeBSD: src/UPDATING,v 1.259 2003/07/22 11:08:41 imp Exp $

==== //depot/projects/hammer/contrib/tar/src/tar.c#2 (text+ko) ====

@@ -19,7 +19,7 @@
    with this program; if not, write to the Free Software Foundation, Inc.,
    59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
-/* $FreeBSD: src/contrib/tar/src/tar.c,v 1.2 2002/06/04 17:31:16 sobomax Exp $ */
+/* $FreeBSD: src/contrib/tar/src/tar.c,v 1.3 2003/07/24 00:04:01 peter Exp $ */
 
 #include "system.h"
 
@@ -549,7 +549,7 @@
       /* Allocate a new argument array, and copy program name in it.  */
 
       new_argc = argc - 1 + strlen (argv[1]);
-      new_argv = xmalloc (new_argc * sizeof (char *));
+      new_argv = xmalloc ((new_argc + 1) * sizeof (char *));
       in = argv;
       out = new_argv;
       *out++ = *in++;
@@ -577,6 +577,9 @@
       while (in < argv + argc)
 	*out++ = *in++;
 
+      /* And NULL terminate the argv[] array */
+      *out++ = NULL;
+
       /* Replace the old option list by the new one.  */
 
       argc = new_argc;

==== //depot/projects/hammer/etc/defaults/pccard.conf#9 (text+ko) ====

@@ -1,7 +1,7 @@
 #
 # Default PCCARD configuration file
 #
-# $FreeBSD: src/etc/defaults/pccard.conf,v 1.261 2003/07/19 05:40:06 imp Exp $
+# $FreeBSD: src/etc/defaults/pccard.conf,v 1.262 2003/07/22 21:23:01 dds Exp $
 #
 # Please send new entries for this file to imp@freebsd.org.  He likes to
 # review them before they are committed to make sure they are correct for
@@ -609,7 +609,7 @@
 #	card version string.  They should be distinguished by 
 #	other info. (such as additional information or OEM-ID/product-ID).
 
-# Note: There are several revisions of the cardon the market.
+# Note: There are several revisions of the card on the market.
 #	Type A needs no "ether" line.
 #	Type B needs "ether 0x110" line.
 #	Type C needs "ether 0xff0" line.
@@ -952,6 +952,13 @@
 	insert	/etc/pccard_ether $device start
 	remove	/etc/pccard_ether $device stop
 
+# Billionton LM5LT-10N
+# Works as an Ethernet card
+card "PCMCIA 10+56Combo" "LM5LT-10N"
+	config	auto "ed" ?
+	insert	/etc/pccard_ether $device start
+	remove	/etc/pccard_ether $device stop
+
 # EXPsys PCMCIA Ethernet Combo, Relia PCMCIA Ethernet
 card "PCMCIA LAN" "Ethernet"
 	config	auto "ed" ?

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

@@ -1,4 +1,4 @@
-# $FreeBSD$
+# $FreeBSD: src/lib/libc/amd64/Makefile.inc,v 1.1 2003/07/22 06:34:57 peter Exp $
 #
 # Machine dependent definitions for the amd64 architecture.
 #

==== //depot/projects/hammer/lib/libc/amd64/gen/Makefile.inc#12 (text+ko) ====

@@ -1,5 +1,5 @@
 #	@(#)Makefile.inc	8.1 (Berkeley) 6/4/93
-# $FreeBSD: src/lib/libc/amd64/gen/Makefile.inc,v 1.22 2003/07/19 04:41:08 deischen Exp $
+# $FreeBSD: src/lib/libc/amd64/gen/Makefile.inc,v 1.23 2003/07/22 06:46:17 peter Exp $
 
 SRCS+=	_setjmp.S setjmp.S sigsetjmp.S \
 	fabs.S modf.S \
@@ -7,4 +7,3 @@
 	makecontext.c signalcontext.c \
 	fpgetmask.c fpsetmask.c fpgetprec.c fpsetprec.c \
 	fpgetround.c fpsetround.c fpgetsticky.c fpsetsticky.c
-

==== //depot/projects/hammer/lib/libc/amd64/gen/fpgetmask.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD$ */
+/* $FreeBSD: src/lib/libc/amd64/gen/fpgetmask.c,v 1.1 2003/07/22 06:46:17 peter Exp $ */
 #define __IEEEFP_NOINLINES__ 1
 #include <ieeefp.h>
 

==== //depot/projects/hammer/lib/libc/amd64/gen/fpgetprec.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD$ */
+/* $FreeBSD: src/lib/libc/amd64/gen/fpgetprec.c,v 1.1 2003/07/22 06:46:17 peter Exp $ */
 #define __IEEEFP_NOINLINES__ 1
 #include <ieeefp.h>
 

==== //depot/projects/hammer/lib/libc/amd64/gen/fpgetround.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD$ */
+/* $FreeBSD: src/lib/libc/amd64/gen/fpgetround.c,v 1.1 2003/07/22 06:46:17 peter Exp $ */
 #define __IEEEFP_NOINLINES__ 1
 #include <ieeefp.h>
 

==== //depot/projects/hammer/lib/libc/amd64/gen/fpgetsticky.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD$ */
+/* $FreeBSD: src/lib/libc/amd64/gen/fpgetsticky.c,v 1.1 2003/07/22 06:46:17 peter Exp $ */
 #define __IEEEFP_NOINLINES__ 1
 #include <ieeefp.h>
 

==== //depot/projects/hammer/lib/libc/amd64/gen/fpsetmask.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD$ */
+/* $FreeBSD: src/lib/libc/amd64/gen/fpsetmask.c,v 1.1 2003/07/22 06:46:17 peter Exp $ */
 #define __IEEEFP_NOINLINES__ 1
 #include <ieeefp.h>
 

==== //depot/projects/hammer/lib/libc/amd64/gen/fpsetprec.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD$ */
+/* $FreeBSD: src/lib/libc/amd64/gen/fpsetprec.c,v 1.1 2003/07/22 06:46:17 peter Exp $ */
 #define __IEEEFP_NOINLINES__ 1
 #include <ieeefp.h>
 

==== //depot/projects/hammer/lib/libc/amd64/gen/fpsetround.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD$ */
+/* $FreeBSD: src/lib/libc/amd64/gen/fpsetround.c,v 1.1 2003/07/22 06:46:17 peter Exp $ */
 #define __IEEEFP_NOINLINES__ 1
 #include <ieeefp.h>
 

==== //depot/projects/hammer/lib/libc/amd64/gen/fpsetsticky.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD$ */
+/* $FreeBSD: src/lib/libc/amd64/gen/fpsetsticky.c,v 1.1 2003/07/22 06:46:17 peter Exp $ */
 #define __IEEEFP_NOINLINES__ 1
 #include <ieeefp.h>
 

==== //depot/projects/hammer/lib/libc/sys/connect.2#4 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)connect.2	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/sys/connect.2,v 1.23 2003/04/01 20:25:46 ceri Exp $
+.\" $FreeBSD: src/lib/libc/sys/connect.2,v 1.24 2003/07/23 22:00:08 dds Exp $
 .\"
 .Dd June 4, 1993
 .Dt CONNECT 2
@@ -121,6 +121,12 @@
 The socket is non-blocking
 and a previous connection attempt
 has not yet been completed.
+.It Bq Er EACCES
+An attempt is made to connect to a broadcast address (obtained through the
+.Dv INADDR_BROADCAST 
+constant or the
+.Dv INADDR_NONE
+return value) through a socket that does not provide broadcast functionality.
 .El
 .Pp
 The following errors are specific to connecting names in the UNIX domain.

==== //depot/projects/hammer/lib/libfetch/Makefile#8 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libfetch/Makefile,v 1.41 2003/05/19 15:51:59 des Exp $
+# $FreeBSD: src/lib/libfetch/Makefile,v 1.42 2003/07/22 13:54:31 ru Exp $
 
 LIB=		fetch
 CFLAGS+=	-I.
@@ -10,6 +10,7 @@
 CLEANFILES=	ftperr.h httperr.h
 
 .if !defined(NOCRYPT) && !defined(NO_OPENSSL)
+DISTRIBUTION=	crypto
 CFLAGS+=	-DWITH_SSL
 DPADD=		${LIBSSL} ${LIBCRYPTO}
 LDADD=		-lssl -lcrypto

==== //depot/projects/hammer/lib/libpthread/thread/thr_cancel.c#11 (text+ko) ====

@@ -1,6 +1,6 @@
 /*
  * David Leonard <d@openbsd.org>, 1999. Public domain.
- * $FreeBSD: src/lib/libpthread/thread/thr_cancel.c,v 1.25 2003/07/17 23:02:29 davidxu Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_cancel.c,v 1.26 2003/07/23 02:11:07 deischen Exp $
  */
 #include <sys/errno.h>
 #include <pthread.h>
@@ -20,6 +20,7 @@
 {
 	struct pthread *curthread = _get_curthread();
 	struct pthread *joinee = NULL;
+	struct kse_mailbox *kmbx = NULL;
 	int ret;
 
 	if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0)) == 0) {
@@ -65,7 +66,7 @@
 				/* Interrupt and resume: */
 				pthread->interrupted = 1;
 				pthread->cancelflags |= THR_CANCELLING;
-				_thr_setrunnable_unlocked(pthread);
+				kmbx = _thr_setrunnable_unlocked(pthread);
 				break;
 
 			case PS_JOIN:
@@ -73,7 +74,7 @@
 				joinee = pthread->join_status.thread;
 				pthread->join_status.thread = NULL;
 				pthread->cancelflags |= THR_CANCELLING;
-				_thr_setrunnable_unlocked(pthread);
+				kmbx = _thr_setrunnable_unlocked(pthread);
 				if ((joinee != NULL) &&
 				    (pthread->kseg == joinee->kseg)) {
 					/* Remove the joiner from the joinee. */
@@ -97,7 +98,7 @@
 				 */
 				pthread->interrupted = 1;
 				pthread->cancelflags |= THR_CANCEL_NEEDED;
-				_thr_setrunnable_unlocked(pthread);
+				kmbx = _thr_setrunnable_unlocked(pthread);
 				pthread->continuation = finish_cancellation;
 				break;
 
@@ -120,6 +121,8 @@
 		 */
 		THR_SCHED_UNLOCK(curthread, pthread);
 		_thr_ref_delete(curthread, pthread);
+		if (kmbx != NULL)
+			kse_wakeup(kmbx);
 
 		if ((joinee != NULL) &&
 		    (_thr_ref_add(curthread, joinee, /* include dead */1) == 0)) {

==== //depot/projects/hammer/lib/libpthread/thread/thr_cond.c#13 (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/libpthread/thread/thr_cond.c,v 1.47 2003/07/18 02:46:30 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_cond.c,v 1.48 2003/07/23 02:11:07 deischen Exp $
  */
 #include <stdlib.h>
 #include <errno.h>
@@ -584,6 +584,7 @@
 {
 	struct pthread	*curthread = _get_curthread();
 	struct pthread	*pthread;
+	struct kse_mailbox *kmbx;
 	int		rval = 0;
 
 	THR_ASSERT(curthread->locklevel == 0,
@@ -619,8 +620,10 @@
 				    (pthread->active_priority >
 				    curthread->active_priority))
 					curthread->critical_yield = 1;
-				_thr_setrunnable_unlocked(pthread);
+				kmbx = _thr_setrunnable_unlocked(pthread);
 				THR_SCHED_UNLOCK(curthread, pthread);
+				if (kmbx != NULL)
+					kse_wakeup(kmbx);
 			}
 			/* Check for no more waiters: */
 			if (TAILQ_FIRST(&(*cond)->c_queue) == NULL)
@@ -649,6 +652,7 @@
 {
 	struct pthread	*curthread = _get_curthread();
 	struct pthread	*pthread;
+	struct kse_mailbox *kmbx;
 	int		rval = 0;
 
 	THR_ASSERT(curthread->locklevel == 0,
@@ -682,8 +686,10 @@
 				    (pthread->active_priority >
 				    curthread->active_priority))
 					curthread->critical_yield = 1;
-				_thr_setrunnable_unlocked(pthread);
+				kmbx = _thr_setrunnable_unlocked(pthread);
 				THR_SCHED_UNLOCK(curthread, pthread);
+				if (kmbx != NULL)
+					kse_wakeup(kmbx);
 			}
 
 			/* There are no more waiting threads: */

==== //depot/projects/hammer/lib/libpthread/thread/thr_detach.c#5 (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/libpthread/thread/thr_detach.c,v 1.22 2003/05/24 02:29:25 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_detach.c,v 1.23 2003/07/23 02:11:07 deischen Exp $
  */
 #include <sys/types.h>
 #include <machine/atomic.h>
@@ -43,6 +43,7 @@
 _pthread_detach(pthread_t pthread)
 {
 	struct pthread *curthread = _get_curthread();
+	struct kse_mailbox *kmbx = NULL;
 	struct pthread *joiner;
 	int rval = 0;
 
@@ -83,12 +84,11 @@
 				joiner->join_status.ret = NULL;
 				joiner->join_status.thread = NULL;
 
-				_thr_setrunnable_unlocked(joiner);
+				kmbx = _thr_setrunnable_unlocked(joiner);
 			}
 			joiner = NULL;
 		}
 		THR_SCHED_UNLOCK(curthread, pthread);
-
 		/* See if there is a thread waiting in pthread_join(): */
 		if ((joiner != NULL) &&
 		    (_thr_ref_add(curthread, joiner, 0) == 0)) {
@@ -102,12 +102,14 @@
 				joiner->join_status.ret = NULL;
 				joiner->join_status.thread = NULL;
 
-				_thr_setrunnable_unlocked(joiner);
+				kmbx = _thr_setrunnable_unlocked(joiner);
 			}
 			THR_SCHED_UNLOCK(curthread, joiner);
 			_thr_ref_delete(curthread, joiner);
 		}
 		_thr_ref_delete(curthread, pthread);
+		if (kmbx != NULL)
+			kse_wakeup(kmbx);
 	}
 
 	/* Return the completion status: */

==== //depot/projects/hammer/lib/libpthread/thread/thr_kern.c#18 (text+ko) ====

@@ -33,7 +33,7 @@
  *
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.79 2003/07/18 02:46:55 deischen Exp $");
+__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.80 2003/07/23 02:11:07 deischen Exp $");
 
 #include <sys/types.h>
 #include <sys/kse.h>
@@ -142,7 +142,7 @@
 static void	kseg_reinit(struct kse_group *kseg);
 static void	kse_waitq_insert(struct pthread *thread);
 static void	kse_wakeup_multi(struct kse *curkse);
-static void	kse_wakeup_one(struct pthread *thread);
+static struct kse_mailbox *kse_wakeup_one(struct pthread *thread);
 static void	thr_cleanup(struct kse *kse, struct pthread *curthread);
 static void	thr_link(struct pthread *thread);
 static void	thr_resume_wrapper(int sig, siginfo_t *, ucontext_t *);
@@ -341,7 +341,7 @@
 #else
 	if (__isthreaded)
 		_thr_signal_deinit();
-	_ksd_readandclear_tmbx();
+	_ksd_set_tmbx(NULL);
 	__isthreaded   = 0;
 	active_threads = 0;
 #endif
@@ -505,10 +505,9 @@
 	struct pthread *curthread = (struct pthread *)lu->lu_private;
 
 	do {
-		THR_SCHED_LOCK(curthread, curthread);
+		THR_LOCK_SWITCH(curthread);
 		THR_SET_STATE(curthread, PS_LOCKWAIT);
-		THR_SCHED_UNLOCK(curthread, curthread);
-		_thr_sched_switch(curthread);
+		_thr_sched_switch_unlocked(curthread);
 	} while (!_LCK_GRANTED(lu));
 }
 
@@ -517,14 +516,17 @@
 {
 	struct pthread *thread;
 	struct pthread *curthread;
+	struct kse_mailbox *kmbx;
 
 	curthread = _get_curthread();
 	thread = (struct pthread *)_LCK_GET_PRIVATE(lu);
 
 	THR_SCHED_LOCK(curthread, thread);
 	_lock_grant(lock, lu);
-	_thr_setrunnable_unlocked(thread);
+	kmbx = _thr_setrunnable_unlocked(thread);
 	THR_SCHED_UNLOCK(curthread, thread);
+	if (kmbx != NULL)
+		kse_wakeup(kmbx);
 }
 
 kse_critical_t
@@ -532,7 +534,8 @@
 {
 	kse_critical_t crit;
 
-	crit = _ksd_readandclear_tmbx();
+	crit = _ksd_get_tmbx();
+	_ksd_set_tmbx(NULL);
 	return (crit);
 }
 
@@ -841,8 +844,8 @@
 				if (SIGISMEMBER(curthread->sigmask, i))
 					continue;
 				if (SIGISMEMBER(curthread->sigpend, i))
-					_thr_sig_add(curthread, i, 
-						&curthread->siginfo[i-1]);
+					(void)_thr_sig_add(curthread, i, 
+					    &curthread->siginfo[i-1]);
 			}
 			__sys_sigprocmask(SIG_SETMASK, &curthread->sigmask,
 				NULL);
@@ -1142,6 +1145,7 @@
 thr_cleanup(struct kse *curkse, struct pthread *thread)
 {
 	struct pthread *joiner;
+	struct kse_mailbox *kmbx = NULL;
 	int sys_scope;
 
 	if ((joiner = thread->joiner) != NULL) {
@@ -1150,7 +1154,7 @@
 			if (joiner->join_status.thread == thread) {
 				joiner->join_status.thread = NULL;
 				joiner->join_status.ret = thread->ret;
-				_thr_setrunnable_unlocked(joiner);
+				(void)_thr_setrunnable_unlocked(joiner);
 			}
 		} else {
 			KSE_SCHED_UNLOCK(curkse, curkse->k_kseg);
@@ -1160,10 +1164,12 @@
 				if (joiner->join_status.thread == thread) {
 					joiner->join_status.thread = NULL;
 					joiner->join_status.ret = thread->ret;
-					_thr_setrunnable_unlocked(joiner);
+					kmbx = _thr_setrunnable_unlocked(joiner);
 				}
 				KSE_SCHED_UNLOCK(curkse, joiner->kseg);
 				_thr_ref_delete(thread, joiner);
+				if (kmbx != NULL)
+					kse_wakeup(kmbx);
 			}
 			KSE_SCHED_LOCK(curkse, curkse->k_kseg);
 		}
@@ -1436,7 +1442,8 @@
 				if (SIGISMEMBER(thread->sigmask, sig))
 					SIGADDSET(thread->sigpend, sig);
 				else
-					_thr_sig_add(thread, sig, &thread->tmbx.tm_syncsig);
+					(void)_thr_sig_add(thread, sig,
+					    &thread->tmbx.tm_syncsig);
 				thread->tmbx.tm_syncsig.si_signo = 0;
 			}
 			completed = completed->tm_next;
@@ -1653,10 +1660,11 @@
 			if (SIGISMEMBER(thread->sigmask, i))
 				continue;
 			if (SIGISMEMBER(thread->sigpend, i))
-				_thr_sig_add(thread, i, &thread->siginfo[i-1]);
+				(void)_thr_sig_add(thread, i,
+				    &thread->siginfo[i-1]);
 			else if (SIGISMEMBER(_thr_proc_sigpending, i) &&
 				_thr_getprocsig_unlocked(i, &siginfo)) {
-				_thr_sig_add(thread, i, &siginfo);
+				(void)_thr_sig_add(thread, i, &siginfo);
 			}
 		}
 		KSE_LOCK_RELEASE(kse, &_thread_signal_lock);
@@ -1823,23 +1831,31 @@
 _thr_setrunnable(struct pthread *curthread, struct pthread *thread)
 {
 	kse_critical_t crit;
+	struct kse_mailbox *kmbx;
 
 	crit = _kse_critical_enter();
 	KSE_SCHED_LOCK(curthread->kse, thread->kseg);
-	_thr_setrunnable_unlocked(thread);
+	kmbx = _thr_setrunnable_unlocked(thread);
 	KSE_SCHED_UNLOCK(curthread->kse, thread->kseg);
 	_kse_critical_leave(crit);
+	if (kmbx != NULL)
+		kse_wakeup(kmbx);
 }
 
-void
+struct kse_mailbox *
 _thr_setrunnable_unlocked(struct pthread *thread)
 {
+	struct kse_mailbox *kmbx = NULL;
+
 	if ((thread->kseg->kg_flags & KGF_SINGLE_THREAD) != 0) {
 		/* No silly queues for these threads. */
 		if ((thread->flags & THR_FLAGS_SUSPENDED) != 0)
 			THR_SET_STATE(thread, PS_SUSPENDED);
-		else
+		else {
 			THR_SET_STATE(thread, PS_RUNNING);
+			kmbx = kse_wakeup_one(thread);
+		}
+
 	} else if (thread->state != PS_RUNNING) {
 		if ((thread->flags & THR_FLAGS_IN_WAITQ) != 0)
 			KSE_WAITQ_REMOVE(thread->kse, thread);
@@ -1850,25 +1866,31 @@
 			if ((thread->blocked == 0) && (thread->active == 0) &&
 			    (thread->flags & THR_FLAGS_IN_RUNQ) == 0)
 				THR_RUNQ_INSERT_TAIL(thread);
+			/*
+			 * XXX - Threads are not yet assigned to specific
+			 *       KSEs; they are assigned to the KSEG.  So
+			 *       the fact that a thread's KSE is waiting
+			 *       doesn't necessarily mean that it will be
+			 *       the KSE that runs the thread after the
+			 *       lock is granted.  But we don't know if the
+			 *       other KSEs within the same KSEG are also
+			 *       in a waiting state or not so we err on the
+			 *       side of caution and wakeup the thread's
+			 *       last known KSE.  We ensure that the
+			 *       threads KSE doesn't change while it's
+			 *       scheduling lock is held so it is safe to
+			 *       reference it (the KSE).  If the KSE wakes
+			 *       up and doesn't find any more work it will
+			 *       again go back to waiting so no harm is
+			 *       done.
+			 */
+			kmbx = kse_wakeup_one(thread);
 		}
 	}
-        /*
-         * XXX - Threads are not yet assigned to specific KSEs; they are
-         *       assigned to the KSEG.  So the fact that a thread's KSE is
-         *       waiting doesn't necessarily mean that it will be the KSE
-         *       that runs the thread after the lock is granted.  But we
-         *       don't know if the other KSEs within the same KSEG are
-         *       also in a waiting state or not so we err on the side of
-         *       caution and wakeup the thread's last known KSE.  We
-         *       ensure that the threads KSE doesn't change while it's
-         *       scheduling lock is held so it is safe to reference it
-         *       (the KSE).  If the KSE wakes up and doesn't find any more
-         *       work it will again go back to waiting so no harm is done.
-         */
-	kse_wakeup_one(thread);
+	return (kmbx);
 }
 
-static void
+static struct kse_mailbox *
 kse_wakeup_one(struct pthread *thread)
 {
 	struct kse *ke;
@@ -1876,17 +1898,17 @@
 	if (KSE_IS_IDLE(thread->kse)) {
 		KSE_CLEAR_IDLE(thread->kse);
 		thread->kseg->kg_idle_kses--;
-		KSE_WAKEUP(thread->kse);
+		return (&thread->kse->k_mbx);
 	} else {
 		TAILQ_FOREACH(ke, &thread->kseg->kg_kseq, k_kgqe) {
 			if (KSE_IS_IDLE(ke)) {
 				KSE_CLEAR_IDLE(ke);
 				ke->k_kseg->kg_idle_kses--;
-				KSE_WAKEUP(ke);
-				return;
+				return (&ke->k_mbx);
 			}
 		}
 	}
+	return (NULL);
 }
 
 static void

==== //depot/projects/hammer/lib/libpthread/thread/thr_mutex.c#8 (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/libpthread/thread/thr_mutex.c,v 1.38 2003/07/18 02:46:29 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_mutex.c,v 1.39 2003/07/23 02:11:07 deischen Exp $
  */
 #include <stdlib.h>
 #include <errno.h>
@@ -67,7 +67,8 @@
 /*
  * Prototypes
  */
-static void		mutex_handoff(struct pthread *, struct pthread_mutex *);
+static struct kse_mailbox *mutex_handoff(struct pthread *,
+			    struct pthread_mutex *);
 static inline int	mutex_self_trylock(struct pthread *, pthread_mutex_t);
 static inline int	mutex_self_lock(struct pthread *, pthread_mutex_t);
 static int		mutex_unlock_common(pthread_mutex_t *, int);
@@ -860,6 +861,7 @@
 mutex_unlock_common(pthread_mutex_t *m, int add_reference)
 {
 	struct pthread *curthread = _get_curthread();
+	struct kse_mailbox *kmbx = NULL;
 	int ret = 0;
 
 	if (m == NULL || *m == NULL)
@@ -904,7 +906,7 @@
 				 * Hand off the mutex to the next waiting
 				 * thread:
 				 */
-				mutex_handoff(curthread, *m);
+				kmbx = mutex_handoff(curthread, *m);
 			}
 			break;
 
@@ -961,7 +963,7 @@
 				 * Hand off the mutex to the next waiting
 				 * thread:
 				 */
-				mutex_handoff(curthread, *m);
+				kmbx = mutex_handoff(curthread, *m);
 			}
 			break;
 
@@ -1017,7 +1019,7 @@
 				 * Hand off the mutex to the next waiting
 				 * thread:
 				 */
-				mutex_handoff(curthread, *m);
+				kmbx = mutex_handoff(curthread, *m);
 			}
 			break;
 
@@ -1034,6 +1036,8 @@
 
 		/* Unlock the mutex structure: */
 		THR_LOCK_RELEASE(curthread, &(*m)->m_lock);
+		if (kmbx != NULL)
+			kse_wakeup(kmbx);
 	}
 
 	/* Return the completion status: */
@@ -1460,9 +1464,10 @@
  * is necessary to lock the thread's scheduling queue while also
  * holding the mutex lock.
  */
-static void
+static struct kse_mailbox *
 mutex_handoff(struct pthread *curthread, struct pthread_mutex *mutex)
 {
+	struct kse_mailbox *kmbx = NULL;
 	struct pthread *pthread;
 
 	/* Keep dequeueing until we find a valid thread: */
@@ -1564,7 +1569,7 @@
 		}
 
 		/* Make the thread runnable and unlock the scheduling queue: */
-		_thr_setrunnable_unlocked(pthread);
+		kmbx = _thr_setrunnable_unlocked(pthread);
 
 		/* Add a preemption point. */
 		if ((curthread->kseg == pthread->kseg) &&
@@ -1583,6 +1588,7 @@
 	if ((pthread == NULL) && (mutex->m_protocol == PTHREAD_PRIO_INHERIT))
 		/* This mutex has no priority: */
 		mutex->m_prio = 0;
+	return (kmbx);
 }
 
 /*

==== //depot/projects/hammer/lib/libpthread/thread/thr_private.h#14 (text+ko) ====

@@ -31,7 +31,7 @@
  *
  * Private thread definitions for the uthread kernel.
  *
- * $FreeBSD: src/lib/libpthread/thread/thr_private.h,v 1.93 2003/07/18 02:46:55 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_private.h,v 1.94 2003/07/23 02:11:07 deischen Exp $
  */
 
 #ifndef _THR_PRIVATE_H
@@ -1106,8 +1106,8 @@
 int	_thr_schedule_add(struct pthread *, struct pthread *);
 void	_thr_schedule_remove(struct pthread *, struct pthread *);
 void	_thr_setrunnable(struct pthread *curthread, struct pthread *thread);
-void	_thr_setrunnable_unlocked(struct pthread *thread);
-void	_thr_sig_add(struct pthread *, int, siginfo_t *);
+struct kse_mailbox *_thr_setrunnable_unlocked(struct pthread *thread);
+struct kse_mailbox *_thr_sig_add(struct pthread *, int, siginfo_t *);
 void	_thr_sig_dispatch(struct kse *, int, siginfo_t *);
 int	_thr_stack_alloc(struct pthread_attr *);
 void	_thr_stack_free(struct pthread_attr *);

==== //depot/projects/hammer/lib/libpthread/thread/thr_resume_np.c#4 (text+ko) ====

@@ -29,13 +29,13 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libpthread/thread/thr_resume_np.c,v 1.17 2003/05/04 16:17:01 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_resume_np.c,v 1.18 2003/07/23 02:11:07 deischen Exp $
  */
 #include <errno.h>
 #include <pthread.h>
 #include "thr_private.h"
 
-static void resume_common(struct pthread *);
+static struct kse_mailbox *resume_common(struct pthread *);
 
 __weak_reference(_pthread_resume_np, pthread_resume_np);
 __weak_reference(_pthread_resume_all_np, pthread_resume_all_np);
@@ -46,15 +46,18 @@
 _pthread_resume_np(pthread_t thread)
 {
 	struct pthread *curthread = _get_curthread();
+	struct kse_mailbox *kmbx;
 	int ret;
 
 	/* Add a reference to the thread: */
 	if ((ret = _thr_ref_add(curthread, thread, /*include dead*/0)) == 0) {
 		/* Lock the threads scheduling queue: */
 		THR_SCHED_LOCK(curthread, thread);
-		resume_common(thread);
+		kmbx = resume_common(thread);
 		THR_SCHED_UNLOCK(curthread, thread);
 		_thr_ref_delete(curthread, thread);
+		if (kmbx != NULL)
+			kse_wakeup(kmbx);
 	}
 	return (ret);
 }
@@ -64,6 +67,7 @@
 {
 	struct pthread *curthread = _get_curthread();
 	struct pthread *thread;
+	struct kse_mailbox *kmbx;
 	kse_critical_t crit;

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200307240130.h6O1UwrN054874>