PERFORCE change 43744 for review

Peter Wemm peter at FreeBSD.org
Wed Dec 10 11:10:37 PST 2003


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

Change 43744 by peter at peter_daintree on 2003/12/10 11:07:57

	IFC @43736

Affected files ...

.. //depot/projects/hammer/Makefile#15 integrate
.. //depot/projects/hammer/UPDATING#29 integrate
.. //depot/projects/hammer/contrib/openpam/lib/openpam_ttyconv.c#9 integrate
.. //depot/projects/hammer/etc/rc.d/jail#5 integrate
.. //depot/projects/hammer/etc/rc.d/mountcritlocal#5 integrate
.. //depot/projects/hammer/etc/rc.d/root#5 integrate
.. //depot/projects/hammer/etc/rc.d/syscons#3 integrate
.. //depot/projects/hammer/etc/rc.subr#10 integrate
.. //depot/projects/hammer/gnu/usr.bin/cc/include/Makefile#5 integrate
.. //depot/projects/hammer/lib/libc/Makefile#10 integrate
.. //depot/projects/hammer/lib/libc/powerpc/_fpmath.h#3 integrate
.. //depot/projects/hammer/lib/libc/sys/Makefile.inc#10 integrate
.. //depot/projects/hammer/lib/libc/sys/kse.2#5 integrate
.. //depot/projects/hammer/lib/libc/sys/stat.2#7 integrate
.. //depot/projects/hammer/lib/libpthread/pthread.map#6 integrate
.. //depot/projects/hammer/lib/libpthread/thread/Makefile.inc#9 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_accept.c#1 branch
.. //depot/projects/hammer/lib/libpthread/thread/thr_aio_suspend.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_cancel.c#14 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_close.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_cond.c#16 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_connect.c#1 branch
.. //depot/projects/hammer/lib/libpthread/thread/thr_creat.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_fcntl.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_fsync.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_join.c#7 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_kern.c#27 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_msync.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_nanosleep.c#8 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_open.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_pause.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_poll.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_private.h#20 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_pselect.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_read.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_readv.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_select.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_sem.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_sigsuspend.c#10 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_sigwait.c#10 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_sleep.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_spinlock.c#10 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_system.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_tcdrain.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_wait.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_wait4.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_waitpid.c#4 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_write.c#3 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_writev.c#3 integrate
.. //depot/projects/hammer/lib/libstand/Makefile#7 integrate
.. //depot/projects/hammer/lib/libstand/gzipfs.c#2 integrate
.. //depot/projects/hammer/lib/libthr/thread/Makefile.inc#3 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_cond.c#8 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_mutex.c#13 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_private.h#9 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_sig.c#5 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_spinlock.c#6 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_subr.c#1 branch
.. //depot/projects/hammer/lib/libthr/thread/thr_syscalls.c#3 integrate
.. //depot/projects/hammer/share/man/man4/ng_iface.4#2 integrate
.. //depot/projects/hammer/share/man/man9/BUS_SETUP_INTR.9#6 integrate
.. //depot/projects/hammer/share/man/man9/bus_alloc_resource.9#4 integrate
.. //depot/projects/hammer/share/man/man9/kobj.9#3 integrate
.. //depot/projects/hammer/sys/amd64/acpica/madt.c#26 integrate
.. //depot/projects/hammer/sys/amd64/include/pcvt_ioctl.h#1 branch
.. //depot/projects/hammer/sys/boot/Makefile#9 integrate
.. //depot/projects/hammer/sys/boot/ficl/Makefile#7 integrate
.. //depot/projects/hammer/sys/boot/ficl/loader.c#4 integrate
.. //depot/projects/hammer/sys/boot/ficl/powerpc/sysdep.c#1 branch
.. //depot/projects/hammer/sys/boot/ficl/powerpc/sysdep.h#1 branch
.. //depot/projects/hammer/sys/boot/i386/boot0/boot0.s#4 integrate
.. //depot/projects/hammer/sys/boot/i386/boot0/boot0sio.s#2 integrate
.. //depot/projects/hammer/sys/boot/ia64/libski/acpi_stub.c#3 integrate
.. //depot/projects/hammer/sys/boot/powerpc/loader/Makefile#3 integrate
.. //depot/projects/hammer/sys/boot/powerpc/loader/conf.c#3 integrate
.. //depot/projects/hammer/sys/conf/Makefile.powerpc#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acconfig.h#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acdisasm.h#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acenv.h#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acevents.h#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acexcep.h#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acglobal.h#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acmacros.h#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acobject.h#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acpica_prep.sh#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acstruct.h#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/actbl.h#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/actbl1.h#3 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/actbl2.h#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/actypes.h#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/acutils.h#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/common/adisasm.c#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslanalyze.c#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslcompile.c#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslcompiler.y#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslfold.c#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/asltree.c#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/asltypes.h#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslutils.c#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dbcmds.c#9 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dbdisply.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dbexec.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dbfileio.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dbstats.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dbutils.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dmobject.c#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dmresrc.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dmresrcl.c#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dsfield.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dsinit.c#3 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dsmethod.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dsmthdat.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dsopcode.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dsutils.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dswexec.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dswload.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dswscope.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/dswstate.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/evgpe.c#3 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/evgpeblk.c#3 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/evmisc.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/evregion.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/evrgnini.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/evxfregn.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exconfig.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/excreate.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exdump.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exfield.c#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exfldio.c#8 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exmisc.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exmutex.c#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exoparg1.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exoparg3.c#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exprep.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exregion.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exresnte.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exresolv.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exresop.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exstore.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exstoren.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exsystem.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/exutils.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/hwacpi.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/hwregs.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/hwsleep.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/nsaccess.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/nsalloc.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/nsdump.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/nsdumpdv.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/nsinit.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/nsobject.c#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/nssearch.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/nsutils.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/nsxfname.c#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/osunixxf.c#2 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/psargs.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/psparse.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/psxface.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/rsaddr.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/rscalc.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/rscreate.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/rsdump.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/rsirq.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/rslist.c#3 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/tbconvrt.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/tbget.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/tbgetall.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/tbinstal.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/tbrsdt.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/tbxface.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/tbxfroot.c#4 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/utalloc.c#3 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/utdebug.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/utdelete.c#6 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/uteval.c#5 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/utglobal.c#7 integrate
.. //depot/projects/hammer/sys/contrib/dev/acpica/utobject.c#5 integrate
.. //depot/projects/hammer/sys/dev/acpica/acpi.c#17 integrate
.. //depot/projects/hammer/sys/dev/acpica/acpi_cpu.c#9 integrate
.. //depot/projects/hammer/sys/dev/acpica/madt.h#2 delete
.. //depot/projects/hammer/sys/dev/ata/ata-pci.c#14 integrate
.. //depot/projects/hammer/sys/dev/owi/if_owi.c#4 integrate
.. //depot/projects/hammer/sys/dev/puc/pucdata.c#11 integrate
.. //depot/projects/hammer/sys/dev/wi/if_wi.c#23 integrate
.. //depot/projects/hammer/sys/dev/wi/if_wivar.h#9 integrate
.. //depot/projects/hammer/sys/i386/acpica/madt.c#7 integrate
.. //depot/projects/hammer/sys/i386/include/pcvt_ioctl.h#2 integrate
.. //depot/projects/hammer/sys/ia64/acpica/madt.c#4 integrate
.. //depot/projects/hammer/sys/ia64/ia64/trap.c#21 integrate
.. //depot/projects/hammer/sys/kern/kern_thread.c#38 integrate
.. //depot/projects/hammer/sys/kern/subr_turnstile.c#4 integrate
.. //depot/projects/hammer/sys/net/if_gre.c#9 integrate
.. //depot/projects/hammer/sys/netinet6/ip6_mroute.c#8 integrate
.. //depot/projects/hammer/sys/netkey/key.c#13 integrate
.. //depot/projects/hammer/sys/powerpc/include/cpufunc.h#4 integrate
.. //depot/projects/hammer/sys/powerpc/include/powerpc.h#2 integrate
.. //depot/projects/hammer/sys/powerpc/powermac/ata_macio.c#5 integrate
.. //depot/projects/hammer/sys/powerpc/powerpc/db_interface.c#3 integrate
.. //depot/projects/hammer/sys/powerpc/powerpc/machdep.c#21 integrate
.. //depot/projects/hammer/sys/powerpc/powerpc/ofw_machdep.c#5 integrate
.. //depot/projects/hammer/sys/powerpc/powerpc/pmap.c#15 integrate
.. //depot/projects/hammer/sys/security/mac_test/mac_test.c#19 integrate
.. //depot/projects/hammer/usr.bin/m4/m4.1#5 integrate
.. //depot/projects/hammer/usr.sbin/Makefile#35 integrate

Differences ...

==== //depot/projects/hammer/Makefile#15 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/Makefile,v 1.291 2003/11/07 08:36:55 kris Exp $
+# $FreeBSD: src/Makefile,v 1.292 2003/12/09 02:08:19 peter Exp $
 #
 # The user-driven targets are:
 #
@@ -58,13 +58,17 @@
 # Define the user-driven targets. These are listed here in alphabetical
 # order, but that's not important.
 #
+# Targets that begin with underscore are internal targets intended for
+# developer convenience only.  They are intentionally not documented and
+# completely subject to change without notice.
+#
 TGTS=	all all-man buildkernel buildworld checkdpadd clean \
 	cleandepend cleandir depend distribute distributeworld everything \
 	hierarchy install installcheck installkernel installkernel.debug\
 	reinstallkernel reinstallkernel.debug installworld \
 	libraries lint maninstall \
 	obj objlink regress rerelease tags update \
-	_legacy _bootstrap-tools _cleanobj _obj \
+	_worldtmp _legacy _bootstrap-tools _cleanobj _obj \
 	_build-tools _cross-tools _includes _libraries _depend
 
 BITGTS=	files includes

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

@@ -50,6 +50,14 @@
 	netgraph to boot need to make sure to have world and kernel in
 	sync before rebooting.
 
+20031111:
+	Hyperthreading logical CPU's are no longer probed by default
+	when using the MP Table.  If ACPI is being used, then logical
+	CPUs will be probed if hyperthreading is enabled in the BIOS.
+	If ACPI is not being used and hyperthreading is enabled in the
+	BIOS, logical CPUs can be enabled by building a custom kernel
+	with the option MPTABLE_FORCE_HTT enabled.
+ 
 20031103:
 	The i386 APIC_IO kernel option has been replaced by
 	'device apic'.  The ACPI module has also been temporarily
@@ -1431,4 +1439,4 @@
 Contact Warner Losh if you have any questions about your use of
 this document.
 
-$FreeBSD: src/UPDATING,v 1.282 2003/11/17 23:25:16 rwatson Exp $
+$FreeBSD: src/UPDATING,v 1.283 2003/12/10 15:59:20 jhb Exp $

==== //depot/projects/hammer/contrib/openpam/lib/openpam_ttyconv.c#9 (text) ====

@@ -31,7 +31,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/openpam/lib/openpam_ttyconv.c#23 $
+ * $P4: //depot/projects/openpam/lib/openpam_ttyconv.c#24 $
  */
 
 #include <sys/types.h>
@@ -119,7 +119,7 @@
 	}
 	/* trim trailing whitespace */
 	for (len = strlen(buf); len > 0; --len)
-		if (!isspace(buf[len - 1]))
+		if (buf[len - 1] != '\r' && buf[len - 1] != '\n')
 			break;
 	buf[len] = '\0';
 	retval = strdup(buf);
@@ -166,26 +166,27 @@
 	 struct pam_response **resp,
 	 void *data)
 {
+	struct pam_response *aresp;
 	int i;
 
 	ENTER();
 	(void)data;
 	if (n <= 0 || n > PAM_MAX_NUM_MSG)
 		RETURNC(PAM_CONV_ERR);
-	if ((*resp = calloc(n, sizeof **resp)) == NULL)
+	if ((aresp = calloc(n, sizeof *aresp)) == NULL)
 		RETURNC(PAM_BUF_ERR);
 	for (i = 0; i < n; ++i) {
-		resp[i]->resp_retcode = 0;
-		resp[i]->resp = NULL;
+		aresp[i].resp_retcode = 0;
+		aresp[i].resp = NULL;
 		switch (msg[i]->msg_style) {
 		case PAM_PROMPT_ECHO_OFF:
-			(*resp[i]).resp = prompt_echo_off(msg[i]->msg);
-			if ((*resp[i]).resp == NULL)
+			aresp[i].resp = prompt_echo_off(msg[i]->msg);
+			if (aresp[i].resp == NULL)
 				goto fail;
 			break;
 		case PAM_PROMPT_ECHO_ON:
-			(*resp[i]).resp = prompt(msg[i]->msg);
-			if ((*resp[i]).resp == NULL)
+			aresp[i].resp = prompt(msg[i]->msg);
+			if (aresp[i].resp == NULL)
 				goto fail;
 			break;
 		case PAM_ERROR_MSG:
@@ -204,16 +205,18 @@
 			goto fail;
 		}
 	}
+	*resp = aresp;
 	RETURNC(PAM_SUCCESS);
  fail:
 	for (i = 0; i < n; ++i) {
-		if ((*resp[i]).resp != NULL) {
-			memset((*resp[i]).resp, 0, strlen((*resp[i]).resp));
-			FREE((*resp[i]).resp);
+		if (aresp[i].resp != NULL) {
+			memset(aresp[i].resp, 0, strlen(aresp[i].resp));
+			FREE(aresp[i].resp);
 		}
 	}
-	memset(*resp, 0, n * sizeof **resp);
-	FREE(*resp);
+	memset(aresp, 0, n * sizeof *aresp);
+	FREE(aresp);
+	*resp = NULL;
 	RETURNC(PAM_CONV_ERR);
 }
 

==== //depot/projects/hammer/etc/rc.d/jail#5 (text+ko) ====

@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $FreeBSD: src/etc/rc.d/jail,v 1.7 2003/10/13 08:20:55 dougb Exp $
+# $FreeBSD: src/etc/rc.d/jail,v 1.10 2003/12/09 08:51:11 mtm Exp $
 #
 
 # PROVIDE: jail
@@ -100,11 +100,19 @@
 
 			# Transitional symlink for old binaries
 			if [ ! -L ${jail_devdir}/log ]; then
-				devfs_link ${jail_devdir} ../var/run/log log
+				__pwd="`pwd`"
+				cd "${jail_devdir}"
+				ln -sf ../var/run/log log
+				cd "$__pwd"
 			fi
 
+			# XXX - It seems symlinks don't work when there
+			#	is a devfs(5) device of the same name.
 			# Jail console output
-			devfs_link ${jail_devdir} ../var/log/console console
+			#	__pwd="`pwd`"
+			#	cd "${jail_devdir}"
+			#	ln -sf ../var/log/console console
+			#	cd "$__pwd"
 		fi
 		if checkyesno jail_fdescfs; then
 			info "Mounting fdescfs on ${jail_fdescdir}"
@@ -116,7 +124,7 @@
 				mount -t procfs proc "${jail_procdir}"
 			fi
 		fi
-		jail 1>/dev/null 2>&1 \
+		jail 1>${jail_rootdir}/var/log/console.log 2>&1 \
 		    ${jail_rootdir} ${jail_hostname} ${jail_ip} ${jail_exec}
 		[ "$?" -eq 0 ] && echo -n " $jail_hostname"
 	done
@@ -138,14 +146,16 @@
 	for _jail in ${jail_list}
 	do
 		init_variables $_jail
+		if checkyesno jail_fdescfs; then
+			if [ -d ${jail_fdescdir} ] ; then
+				umount -f ${jail_fdescdir} >/dev/null 2>&1
+			fi
+		fi
 		if checkyesno jail_devfs; then
 			if [ -d ${jail_devdir} ] ; then
 				umount -f ${jail_devdir} >/dev/null 2>&1
 			fi
 		fi
-		if checkyesno jail_fdescfs; then
-			umount -f ${jail_fdescdir} >/dev/null 2>&1
-		fi
 		if checkyesno jail_procfs; then
 			if [ -d ${jail_procdir} ] ; then
 				umount -f ${jail_procdir} >/dev/null 2>&1

==== //depot/projects/hammer/etc/rc.d/mountcritlocal#5 (text+ko) ====

@@ -1,7 +1,7 @@
 #!/bin/sh
 #
 # $NetBSD: mountcritlocal,v 1.7 2002/04/29 12:29:53 lukem Exp $
-# $FreeBSD: src/etc/rc.d/mountcritlocal,v 1.5 2003/06/01 01:43:37 gordon Exp $
+# $FreeBSD: src/etc/rc.d/mountcritlocal,v 1.6 2003/12/09 08:17:32 mtm Exp $
 #
 
 # PROVIDE: mountcritlocal
@@ -43,7 +43,7 @@
 		*)
 			echo 'Mounting /etc/fstab filesystems failed,' \
 			    ' startup aborted'
-			exit 1
+			kill -QUIT $$
 			;;
 		esac
 		;;

==== //depot/projects/hammer/etc/rc.d/root#5 (text+ko) ====

@@ -1,7 +1,7 @@
 #!/bin/sh
 #
 # $NetBSD: root,v 1.2 2000/05/13 08:45:09 lukem Exp $
-# $FreeBSD: src/etc/rc.d/root,v 1.5 2002/10/31 02:06:05 gordon Exp $
+# $FreeBSD: src/etc/rc.d/root,v 1.6 2003/12/09 08:17:33 mtm Exp $
 #
 
 # PROVIDE: root
@@ -27,13 +27,12 @@
 		*)
 			if ! mount -u -o rw /; then
 				echo 'Mounting root filesystem rw failed, startup aborted'
-				exit 1
+				/bin/kill -QUIT $$
 			fi
 			;;
 		esac
 
 		umount -a >/dev/null 2>&1
-		mount /
 
 		# If we booted a special kernel remove the record
 		# so we will boot the default kernel next time.

==== //depot/projects/hammer/etc/rc.d/syscons#3 (text+ko) ====

@@ -24,7 +24,7 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $FreeBSD: src/etc/rc.d/syscons,v 1.9 2002/09/09 22:40:34 gordon Exp $
+# $FreeBSD: src/etc/rc.d/syscons,v 1.10 2003/12/10 15:48:49 peter Exp $
 #
 
 # PROVIDE: syscons
@@ -44,13 +44,15 @@
 
 syscons_precmd()
 {
-	if [ -c $kbddev ] && \
-	   [ -x /usr/sbin/ispcvt ] && \
-	   ! /usr/sbin/ispcvt
+	if [ ! -c $kbddev ]
+	then
+		return 1
+	fi
+	if [ -x /usr/sbin/ispcvt ] && /usr/sbin/ispcvt
 	then
-		return 0
+		return 1
 	fi
-	return 1
+	return 0
 }
 
 syscons_start()

==== //depot/projects/hammer/etc/rc.subr#10 (text+ko) ====

@@ -1,5 +1,5 @@
 # $NetBSD: rc.subr,v 1.49 2002/05/21 12:31:01 lukem Exp $
-# $FreeBSD: src/etc/rc.subr,v 1.16 2003/08/20 06:50:34 mtm Exp $
+# $FreeBSD: src/etc/rc.subr,v 1.17 2003/12/09 08:51:11 mtm Exp $
 #
 # Copyright (c) 1997-2002 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -1038,29 +1038,30 @@
 	fi
 }
 
-# devfs_link dir src link
-#	Make a symbolic link 'link' to src in chroot/dev.
-#	Returns 0 on sucess.
+# make_symlink src link
+#	Make a symbolic link 'link' to src from basedir. If the
+#	directory in which link is to be created does not exist
+#	a warning will be displayed and an error will be returned.
+#	Returns 0 on sucess, 1 otherwise.
 #
-devfs_link()
+make_symlink()
 {
-	local dir src link _me
-	dir="$1"
-	src="$2"
-	link="$3"
-	_me="devfs_link"
+	local src link linkdir _me
+	src="$1"
+	link="$2"
+	linkdir="`dirname $link`"
+	_me="make_symlink()"
 
-	if [ -z "$dir" -o -z "$src" -o -z "$link" ]; then
-		warn "devfs_link(): requires three arguments."
+	if [ -z "$src" -o -z "$link" ]; then
+		warn "$_me: requires two arguments."
 		return 1
 	fi
-	if [ -z "$dir" ]; then
-		warn "$_me: the directory ($dir) does not exist"
+	if [ ! -d "$linkdir" ]; then
+		warn "$_me: the directory $linkdir does not exist"
 		return 1
 	fi
-	cd ${chroot}/dev
 	if ! ln -sf $src $link ; then
-		warn "$_me: unable to link $link --> $src in $dir"
+		warn "$_me: unable to make a symbolic link from $link to $src"
 		return 1
 	fi
 	return 0

==== //depot/projects/hammer/gnu/usr.bin/cc/include/Makefile#5 (text+ko) ====

@@ -1,11 +1,11 @@
-# $FreeBSD: src/gnu/usr.bin/cc/include/Makefile,v 1.5 2003/04/26 20:04:38 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/cc/include/Makefile,v 1.6 2003/12/09 16:31:30 kan Exp $
 
 .include "../Makefile.inc"
 
 .PATH: ${GCCDIR}/config/${GCC_CPU}
 
 .if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64"
-INCS=	mmintrin.h xmmintrin.h
+INCS=	emmintrin.h mmintrin.h pmmintrin.h xmmintrin.h
 .elif ${TARGET_ARCH} == "ia64"
 INCS=	ia64intrin.h
 .endif

==== //depot/projects/hammer/lib/libc/Makefile#10 (text+ko) ====

@@ -1,5 +1,5 @@
 #	@(#)Makefile	8.2 (Berkeley) 2/3/94
-# $FreeBSD: src/lib/libc/Makefile,v 1.45 2003/11/17 04:20:02 nectar Exp $
+# $FreeBSD: src/lib/libc/Makefile,v 1.46 2003/12/10 16:33:17 mikeh Exp $
 #
 # All library objects contain FreeBSD revision strings by default; they may be
 # excluded as a space-saving measure.  To produce a library that does
@@ -10,6 +10,7 @@
 # system call stubs.
 LIB=c
 # If you bump SHLIB_MAJOR, remove kluge from gen/gethostname.c.
+# If you bump SHLIB_MAJOR, see standards/55112
 SHLIB_MAJOR= 5
 SHLIBDIR?= /lib
 WARNS?=	1

==== //depot/projects/hammer/lib/libc/powerpc/_fpmath.h#3 (text+ko) ====

@@ -23,20 +23,19 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libc/powerpc/_fpmath.h,v 1.2 2003/04/05 22:10:13 das Exp $
+ * $FreeBSD: src/lib/libc/powerpc/_fpmath.h,v 1.3 2003/12/10 13:04:42 grehan Exp $
  */
 
 union IEEEl2bits {
 	long double	e;
 	struct {
-		unsigned int	sign	:1;
-		unsigned int	exp	:15;
-		unsigned long	manh	:48;
-		unsigned long	manl	:64;
+		unsigned int		sign	:1;
+		unsigned int		exp	:15;
+		unsigned long long	manh	:48;
+		unsigned long long	manl	:64;
 	} bits;
 };
 
-/* XXX does powerpc have a normalization bit? */
 #define	mask_nbit_l(u)	((void)0)
 #define	LDBL_IMPLICIT_NBIT
 

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

@@ -1,5 +1,5 @@
 #	@(#)Makefile.inc	8.3 (Berkeley) 10/24/94
-# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.106 2003/11/01 05:36:14 tjr Exp $
+# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.107 2003/12/10 02:38:51 marcel Exp $
 
 # sys sources
 .PATH: ${.CURDIR}/${MACHINE_ARCH}/sys ${.CURDIR}/sys
@@ -118,7 +118,7 @@
 MLINKS+=jail.2 jail_attach.2
 MLINKS+=kqueue.2 kevent.2
 MLINKS+=kse.2 kse_create.2 kse.2 kse_exit.2 kse.2 kse_release.2 \
-	kse.2 kse_wakeup.2 kse.2 kse_thr_interrupt.2
+	kse.2 kse_switchin.2 kse.2 kse_thr_interrupt.2 kse.2 kse_wakeup.2
 MLINKS+=madvise.2 posix_madvise.2
 MLINKS+=mlock.2 munlock.2
 MLINKS+=mlockall.2 munlockall.2

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

@@ -33,7 +33,7 @@
 .\" THE USE OF THIS SOFTWARE, EVEN IF PACKET DESIGN IS ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libc/sys/kse.2,v 1.12 2003/06/17 09:36:47 sobomax Exp $
+.\" $FreeBSD: src/lib/libc/sys/kse.2,v 1.13 2003/12/10 02:38:51 marcel Exp $
 .\"
 .Dd September 10, 2002
 .Dt KSE 2
@@ -53,9 +53,11 @@
 .Ft int
 .Fn kse_release "struct timespec *timeout"
 .Ft int
-.Fn kse_wakeup "struct kse_mailbox *mbx"
+.Fn kse_switchin "mcontext_t *mcp" "long val" "long *loc"
 .Ft int
 .Fn kse_thr_interrupt "struct kse_thr_mailbox *tmbx"
+.Ft int
+.Fn kse_wakeup "struct kse_mailbox *mbx"
 .Sh DESCRIPTION
 These system calls implement kernel support for multi-threaded processes.
 .\"
@@ -286,6 +288,16 @@
 does not return to the caller.
 .Pp
 The
+.Fn kse_switchin
+system call can be used by the UTS, when it has selected a new thread,
+to switch to the context of that thread.
+The use of
+.Fn kse_switchin
+is machine dependent.
+Some platforms do not need a system call to switch to a new context,
+while others require its use in particular cases.
+.Pp
+The
 .Fn kse_wakeup
 system call
 is the opposite of

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

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)stat.2	8.4 (Berkeley) 5/1/95
-.\" $FreeBSD: src/lib/libc/sys/stat.2,v 1.35 2003/10/20 13:52:22 dds Exp $
+.\" $FreeBSD: src/lib/libc/sys/stat.2,v 1.36 2003/12/10 15:08:41 dds Exp $
 .\"
 .Dd February 15, 2002
 .Dt STAT 2
@@ -257,7 +257,8 @@
 .Xr chmod 2 ,
 .Xr chown 2 ,
 .Xr utimes 2 ,
-.Xr symlink 7
+.Xr symlink 7 ,
+.Xr sticky 8
 .Sh BUGS
 Applying
 .Fn fstat

==== //depot/projects/hammer/lib/libpthread/pthread.map#6 (text+ko) ====

@@ -1,8 +1,10 @@
-# $FreeBSD: src/lib/libpthread/pthread.map,v 1.7 2003/11/04 20:04:44 deischen Exp $
+# $FreeBSD: src/lib/libpthread/pthread.map,v 1.8 2003/12/09 15:16:27 deischen Exp $
 LIBTHREAD_1_0 {
 global:
 	___creat;
+	__accept;
 	__close;
+	__connect;
 	__error;
 	__fcntl;
 	__fsync;
@@ -167,8 +169,10 @@
 	_vfork;
 	_wait;
 	_waitpid;
+	accept;
 	aio_suspend;
 	close;
+	connect;
 	creat;
 	fcntl;
 	fork;

==== //depot/projects/hammer/lib/libpthread/thread/Makefile.inc#9 (text+ko) ====

@@ -1,9 +1,10 @@
-# $FreeBSD: src/lib/libpthread/thread/Makefile.inc,v 1.45 2003/11/04 20:04:44 deischen Exp $
+# $FreeBSD: src/lib/libpthread/thread/Makefile.inc,v 1.46 2003/12/09 15:16:27 deischen Exp $
 
 # thr sources
 .PATH: ${.CURDIR}/thread
 
 SRCS+= \
+	thr_accept.c \
 	thr_aio_suspend.c \
 	thr_atfork.c \
 	thr_attr_destroy.c \
@@ -38,6 +39,7 @@
 	thr_cond.c \
 	thr_condattr_destroy.c \
 	thr_condattr_init.c \
+	thr_connect.c \
 	thr_creat.c \
 	thr_create.c \
 	thr_detach.c \

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

@@ -26,7 +26,7 @@
  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libpthread/thread/thr_aio_suspend.c,v 1.7 2003/04/18 05:04:15 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_aio_suspend.c,v 1.8 2003/12/09 02:20:56 davidxu Exp $
  */
 
 #include <aio.h>
@@ -42,9 +42,9 @@
 	struct pthread *curthread = _get_curthread();
 	int ret;
 
-	_thr_enter_cancellation_point(curthread);
+	_thr_cancel_enter(curthread);
 	ret = __sys_aio_suspend(iocbs, niocb, timeout);
-	_thr_leave_cancellation_point(curthread);
+	_thr_cancel_leave(curthread, 1);
 
 	return (ret);
 }

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

@@ -1,6 +1,6 @@
 /*
  * David Leonard <d at openbsd.org>, 1999. Public domain.
- * $FreeBSD: src/lib/libpthread/thread/thr_cancel.c,v 1.30 2003/10/08 00:30:38 davidxu Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_cancel.c,v 1.31 2003/12/09 02:20:56 davidxu Exp $
  */
 #include <sys/errno.h>
 #include <pthread.h>
@@ -11,8 +11,35 @@
 __weak_reference(_pthread_setcanceltype, pthread_setcanceltype);
 __weak_reference(_pthread_testcancel, pthread_testcancel);
 
-static int	checkcancel(struct pthread *curthread);
-static void	testcancel(struct pthread *curthread);
+static inline int
+checkcancel(struct pthread *curthread)
+{
+	if (((curthread->cancelflags & PTHREAD_CANCEL_DISABLE) == 0) &&
+	    ((curthread->cancelflags & THR_CANCELLING) != 0)) {
+		/*
+		 * It is possible for this thread to be swapped out
+		 * while performing cancellation; do not allow it
+		 * to be cancelled again.
+		 */
+		curthread->cancelflags &= ~THR_CANCELLING;
+		return (1);
+	}
+	else
+		return (0);
+}
+
+static inline void
+testcancel(struct pthread *curthread)
+{
+	if (checkcancel(curthread) != 0) {
+		/* Unlock before exiting: */
+		THR_THREAD_UNLOCK(curthread, curthread);
+
+		_thr_exit_cleanup();
+		pthread_exit(PTHREAD_CANCELED);
+		PANIC("cancel");
+	}
+}
 
 int
 _pthread_cancel(pthread_t pthread)
@@ -217,37 +244,6 @@
 	return (ret);
 }
 
-static int
-checkcancel(struct pthread *curthread)
-{
-	if (((curthread->cancelflags & PTHREAD_CANCEL_DISABLE) == 0) &&
-	    ((curthread->cancelflags & THR_CANCELLING) != 0)) {
-		/*
-		 * It is possible for this thread to be swapped out
-		 * while performing cancellation; do not allow it
-		 * to be cancelled again.
-		 */
-		curthread->cancelflags &= ~THR_CANCELLING;
-		return (1);
-	}
-	else
-		return (0);
-}
-
-static void
-testcancel(struct pthread *curthread)
-{
-
-	if (checkcancel(curthread) != 0) {
-		/* Unlock before exiting: */
-		THR_THREAD_UNLOCK(curthread, curthread);
-
-		_thr_exit_cleanup();
-		pthread_exit(PTHREAD_CANCELED);
-		PANIC("cancel");
-	}
-}
-
 void
 _pthread_testcancel(void)
 {
@@ -259,10 +255,8 @@
 }
 
 void
-_thr_enter_cancellation_point(struct pthread *thread)
+_thr_cancel_enter(struct pthread *thread)
 {
-	if (!_kse_isthreaded())
-		return;
 	/* Look for a cancellation before we block: */
 	THR_THREAD_LOCK(thread, thread);
 	testcancel(thread);
@@ -271,14 +265,13 @@
 }
 
 void
-_thr_leave_cancellation_point(struct pthread *thread)
+_thr_cancel_leave(struct pthread *thread, int check)
 {
-	if (!_kse_isthreaded())
-		return;
 	THR_THREAD_LOCK(thread, thread);
 	thread->cancelflags &= ~THR_AT_CANCEL_POINT;
 	/* Look for a cancellation after we unblock: */
-	testcancel(thread);
+	if (check)
+		testcancel(thread);
 	THR_THREAD_UNLOCK(thread, thread);
 }
 

==== //depot/projects/hammer/lib/libpthread/thread/thr_close.c#3 (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_close.c,v 1.16 2003/04/18 05:04:15 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_close.c,v 1.17 2003/12/09 02:20:56 davidxu Exp $
  */
 #include <errno.h>
 #include <stdlib.h>
@@ -47,9 +47,9 @@
 	struct pthread	*curthread = _get_curthread();
 	int	ret;
 
-	_thr_enter_cancellation_point(curthread);
+	_thr_cancel_enter(curthread);
 	ret = __sys_close(fd);
-	_thr_leave_cancellation_point(curthread);
+	_thr_cancel_leave(curthread, 1);
 	
 	return (ret);
 }

==== //depot/projects/hammer/lib/libpthread/thread/thr_cond.c#16 (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.50 2003/09/14 22:33:32 davidxu Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_cond.c,v 1.51 2003/12/09 02:20:56 davidxu Exp $
  */
 #include <stdlib.h>
 #include <errno.h>
@@ -365,9 +365,9 @@
 	struct pthread *curthread = _get_curthread();
 	int ret;
 
-	_thr_enter_cancellation_point(curthread);
+	_thr_cancel_enter(curthread);
 	ret = _pthread_cond_wait(cond, mutex);
-	_thr_leave_cancellation_point(curthread);
+	_thr_cancel_leave(curthread, 1);
 	return (ret);
 }
 
@@ -571,9 +571,9 @@
 	struct pthread *curthread = _get_curthread();
 	int ret;
 
-	_thr_enter_cancellation_point(curthread);
+	_thr_cancel_enter(curthread);
 	ret = _pthread_cond_timedwait(cond, mutex, abstime);
-	_thr_leave_cancellation_point(curthread);
+	_thr_cancel_leave(curthread, 1);
 	return (ret);
 }
 

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

@@ -26,7 +26,7 @@
  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libpthread/thread/thr_creat.c,v 1.7 2003/09/03 17:56:26 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_creat.c,v 1.8 2003/12/09 02:20:56 davidxu Exp $
  */
 
 #include <fcntl.h>
@@ -43,9 +43,13 @@
 	struct pthread *curthread = _get_curthread();
 	int ret;
 
-	_thr_enter_cancellation_point(curthread);
+	_thr_cancel_enter(curthread);
 	ret = __creat(path, mode);
-	_thr_leave_cancellation_point(curthread);
+	/*
+	 * To avoid possible file handle leak, 
+	 * only check cancellation point if it is failure
+	 */
+	_thr_cancel_leave(curthread, (ret == -1));
 	
 	return ret;
 }

==== //depot/projects/hammer/lib/libpthread/thread/thr_fcntl.c#3 (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_fcntl.c,v 1.18 2003/04/18 05:04:15 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_fcntl.c,v 1.19 2003/12/09 02:20:56 davidxu Exp $
  */
 #include <stdarg.h>
 #include "namespace.h"
@@ -44,14 +44,21 @@
 __fcntl(int fd, int cmd,...)
 {
 	struct pthread *curthread = _get_curthread();
-	int	ret;
+	int	ret, check = 1;
 	va_list	ap;
 	
-	_thr_enter_cancellation_point(curthread);
+	_thr_cancel_enter(curthread);
 
 	va_start(ap, cmd);
 	switch (cmd) {
 	case F_DUPFD:
+		ret = __sys_fcntl(fd, cmd, va_arg(ap, int));
+		/*
+		 * To avoid possible file handle leak, 
+		 * only check cancellation point if it is failure
+		 */

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


More information about the p4-projects mailing list