Date: Wed, 28 Jan 2009 18:51:12 +0000 (UTC) From: Andrew Thompson <thompsa@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r187837 - in user/thompsa/usb: . bin/chmod bin/dd cddl/contrib/opensolaris/lib/libdtrace/common contrib/gdtoa contrib/gdtoa/test contrib/gdtoa/test/obad contrib/smbfs/mount_smbfs contri... Message-ID: <200901281851.n0SIpCLO029158@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: thompsa Date: Wed Jan 28 18:51:11 2009 New Revision: 187837 URL: http://svn.freebsd.org/changeset/base/187837 Log: MFH r187303-187835 Added: user/thompsa/usb/contrib/gdtoa/gdtoa_fltrnds.h - copied unchanged from r187835, head/contrib/gdtoa/gdtoa_fltrnds.h user/thompsa/usb/contrib/gdtoa/test/obad/ - copied from r187835, head/contrib/gdtoa/test/obad/ user/thompsa/usb/lib/libarchive/test/test_write_disk_failures.c - copied unchanged from r187835, head/lib/libarchive/test/test_write_disk_failures.c user/thompsa/usb/lib/libarchive/test/test_write_disk_sparse.c - copied unchanged from r187835, head/lib/libarchive/test/test_write_disk_sparse.c user/thompsa/usb/sbin/ipfw/dummynet.c - copied unchanged from r187835, head/sbin/ipfw/dummynet.c user/thompsa/usb/sbin/ipfw/ipfw2.h - copied unchanged from r187835, head/sbin/ipfw/ipfw2.h user/thompsa/usb/sbin/ipfw/ipv6.c - copied unchanged from r187835, head/sbin/ipfw/ipv6.c user/thompsa/usb/sbin/ipfw/main.c - copied unchanged from r187835, head/sbin/ipfw/main.c user/thompsa/usb/sbin/ipfw/nat.c - copied unchanged from r187835, head/sbin/ipfw/nat.c user/thompsa/usb/share/man/man4/man4.powerpc/snd_ai2s.4 - copied unchanged from r187835, head/share/man/man4/man4.powerpc/snd_ai2s.4 user/thompsa/usb/share/man/man4/man4.powerpc/snd_davbus.4 - copied unchanged from r187835, head/share/man/man4/man4.powerpc/snd_davbus.4 user/thompsa/usb/share/man/man4/urtw.4 - copied unchanged from r187835, head/share/man/man4/urtw.4 user/thompsa/usb/share/man/man5/portindex.5 - copied unchanged from r187835, head/share/man/man5/portindex.5 user/thompsa/usb/sys/dev/sound/macio/ - copied from r187835, head/sys/dev/sound/macio/ user/thompsa/usb/sys/dev/syscons/teken/teken_scs.h - copied unchanged from r187835, head/sys/dev/syscons/teken/teken_scs.h user/thompsa/usb/sys/dev/usb/if_urtw.c - copied unchanged from r187835, head/sys/dev/usb/if_urtw.c user/thompsa/usb/sys/dev/usb/if_urtwreg.h - copied unchanged from r187835, head/sys/dev/usb/if_urtwreg.h user/thompsa/usb/sys/dev/usb/if_urtwvar.h - copied unchanged from r187835, head/sys/dev/usb/if_urtwvar.h user/thompsa/usb/sys/modules/sound/driver/ai2s/ - copied from r187835, head/sys/modules/sound/driver/ai2s/ user/thompsa/usb/sys/modules/sound/driver/davbus/ - copied from r187835, head/sys/modules/sound/driver/davbus/ user/thompsa/usb/sys/modules/urtw/ - copied from r187835, head/sys/modules/urtw/ user/thompsa/usb/tools/regression/usr.bin/jot/regress.wX1.out - copied unchanged from r187835, head/tools/regression/usr.bin/jot/regress.wX1.out user/thompsa/usb/tools/tools/ath/athrd/ - copied from r187835, head/tools/tools/ath/athrd/ user/thompsa/usb/tools/tools/sysbuild/ - copied from r187835, head/tools/tools/sysbuild/ user/thompsa/usb/usr.bin/mail/util.c - copied unchanged from r187835, head/usr.bin/mail/util.c user/thompsa/usb/usr.sbin/i2c/ - copied from r187835, head/usr.sbin/i2c/ Deleted: user/thompsa/usb/sys/dev/digi/con.CX-IBM.h user/thompsa/usb/sys/dev/digi/con.CX.h user/thompsa/usb/sys/dev/digi/con.EPCX.h user/thompsa/usb/sys/dev/digi/con.MBank.h user/thompsa/usb/tools/regression/usr.bin/jot/regress.wX.out user/thompsa/usb/usr.bin/mail/aux.c Modified: user/thompsa/usb/ (props changed) user/thompsa/usb/Makefile.inc1 user/thompsa/usb/ObsoleteFiles.inc user/thompsa/usb/UPDATING user/thompsa/usb/bin/chmod/chmod.1 user/thompsa/usb/bin/dd/dd.1 user/thompsa/usb/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c user/thompsa/usb/contrib/gdtoa/ (props changed) user/thompsa/usb/contrib/gdtoa/README user/thompsa/usb/contrib/gdtoa/g_Qfmt.c user/thompsa/usb/contrib/gdtoa/g__fmt.c user/thompsa/usb/contrib/gdtoa/g_ddfmt.c user/thompsa/usb/contrib/gdtoa/g_dfmt.c user/thompsa/usb/contrib/gdtoa/g_ffmt.c user/thompsa/usb/contrib/gdtoa/g_xLfmt.c user/thompsa/usb/contrib/gdtoa/g_xfmt.c user/thompsa/usb/contrib/gdtoa/gdtoa.c user/thompsa/usb/contrib/gdtoa/gdtoa.h user/thompsa/usb/contrib/gdtoa/gdtoaimp.h user/thompsa/usb/contrib/gdtoa/gethex.c user/thompsa/usb/contrib/gdtoa/makefile user/thompsa/usb/contrib/gdtoa/smisc.c user/thompsa/usb/contrib/gdtoa/strtod.c user/thompsa/usb/contrib/gdtoa/strtodg.c user/thompsa/usb/contrib/gdtoa/strtof.c user/thompsa/usb/contrib/gdtoa/strtopQ.c user/thompsa/usb/contrib/gdtoa/strtopd.c user/thompsa/usb/contrib/gdtoa/strtopdd.c user/thompsa/usb/contrib/gdtoa/strtopf.c user/thompsa/usb/contrib/gdtoa/strtopx.c user/thompsa/usb/contrib/gdtoa/strtopxL.c user/thompsa/usb/contrib/gdtoa/test/README user/thompsa/usb/contrib/gdtoa/test/getround.c user/thompsa/usb/contrib/gdtoa/test/makefile user/thompsa/usb/contrib/gdtoa/test/xsum0.out user/thompsa/usb/contrib/gdtoa/xsum0.out user/thompsa/usb/contrib/smbfs/mount_smbfs/mount_smbfs.8 user/thompsa/usb/contrib/smbfs/mount_smbfs/mount_smbfs.c user/thompsa/usb/contrib/wpa_supplicant/ (props changed) user/thompsa/usb/contrib/wpa_supplicant/ChangeLog user/thompsa/usb/contrib/wpa_supplicant/Makefile user/thompsa/usb/contrib/wpa_supplicant/base64.c user/thompsa/usb/contrib/wpa_supplicant/ctrl_iface.c user/thompsa/usb/contrib/wpa_supplicant/ctrl_iface_dbus.c user/thompsa/usb/contrib/wpa_supplicant/ctrl_iface_unix.c user/thompsa/usb/contrib/wpa_supplicant/dbus_dict_helpers.c user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_background.8 user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_cli.8 user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_cli.sgml user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_passphrase.8 user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.8 user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.5 user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml user/thompsa/usb/contrib/wpa_supplicant/doc/docbook/wpa_supplicant.sgml user/thompsa/usb/contrib/wpa_supplicant/driver_ndis.c user/thompsa/usb/contrib/wpa_supplicant/eap.c user/thompsa/usb/contrib/wpa_supplicant/eap_aka.c user/thompsa/usb/contrib/wpa_supplicant/eap_gpsk.c user/thompsa/usb/contrib/wpa_supplicant/eap_gpsk_common.c user/thompsa/usb/contrib/wpa_supplicant/eap_ttls.c user/thompsa/usb/contrib/wpa_supplicant/eloop.c user/thompsa/usb/contrib/wpa_supplicant/eloop.h user/thompsa/usb/contrib/wpa_supplicant/eloop_none.c user/thompsa/usb/contrib/wpa_supplicant/mlme.c user/thompsa/usb/contrib/wpa_supplicant/os_unix.c user/thompsa/usb/contrib/wpa_supplicant/preauth_test.c user/thompsa/usb/contrib/wpa_supplicant/radius.c user/thompsa/usb/contrib/wpa_supplicant/sha1.c user/thompsa/usb/contrib/wpa_supplicant/tls_openssl.c user/thompsa/usb/contrib/wpa_supplicant/version.h user/thompsa/usb/contrib/wpa_supplicant/wpa.c user/thompsa/usb/contrib/wpa_supplicant/wpa.h user/thompsa/usb/contrib/wpa_supplicant/wpa_cli.c user/thompsa/usb/contrib/wpa_supplicant/wpa_gui-qt4/networkconfig.cpp user/thompsa/usb/contrib/wpa_supplicant/wpa_gui-qt4/scanresults.cpp user/thompsa/usb/contrib/wpa_supplicant/wpa_gui-qt4/wpagui.cpp user/thompsa/usb/contrib/wpa_supplicant/wpa_gui/networkconfig.ui.h user/thompsa/usb/contrib/wpa_supplicant/wpa_gui/userdatarequest.ui.h user/thompsa/usb/contrib/wpa_supplicant/wpa_gui/wpagui.ui.h user/thompsa/usb/contrib/wpa_supplicant/wpa_i.h user/thompsa/usb/contrib/wpa_supplicant/wpa_supplicant.c user/thompsa/usb/etc/defaults/rc.conf user/thompsa/usb/etc/devd.conf user/thompsa/usb/etc/rc.d/jail user/thompsa/usb/etc/rc.d/ntpd user/thompsa/usb/etc/rc.shutdown user/thompsa/usb/etc/regdomain.xml user/thompsa/usb/include/paths.h user/thompsa/usb/lib/libarchive/archive_write_disk.c user/thompsa/usb/lib/libarchive/test/Makefile user/thompsa/usb/lib/libarchive/test/test_write_disk_secure.c user/thompsa/usb/lib/libc/gen/sysctl.3 user/thompsa/usb/lib/libc/locale/wcsftime.c user/thompsa/usb/lib/libc/stdio/ferror.3 user/thompsa/usb/lib/libc/stdio/printf.3 user/thompsa/usb/lib/libc/stdio/vfprintf.c user/thompsa/usb/lib/libc/stdio/vfscanf.c user/thompsa/usb/lib/libc/stdio/vfwprintf.c user/thompsa/usb/lib/libc/stdio/vfwscanf.c user/thompsa/usb/lib/libc/string/strlen.c user/thompsa/usb/lib/libpmc/libpmc.c user/thompsa/usb/libexec/comsat/comsat.c user/thompsa/usb/sbin/dumpfs/dumpfs.8 user/thompsa/usb/sbin/dumpfs/dumpfs.c user/thompsa/usb/sbin/fsck_ffs/fsck.h user/thompsa/usb/sbin/fsck_ffs/fsck_ffs.8 user/thompsa/usb/sbin/fsck_ffs/fsutil.c user/thompsa/usb/sbin/fsck_ffs/main.c user/thompsa/usb/sbin/ifconfig/ifieee80211.c user/thompsa/usb/sbin/ipfw/Makefile user/thompsa/usb/sbin/ipfw/ipfw2.c user/thompsa/usb/sbin/mount_nfs/mount_nfs.c user/thompsa/usb/sbin/mount_ntfs/mount_ntfs.8 user/thompsa/usb/sbin/recoverdisk/recoverdisk.c user/thompsa/usb/sbin/restore/interactive.c user/thompsa/usb/sbin/route/route.c user/thompsa/usb/share/man/man4/Makefile user/thompsa/usb/share/man/man4/bce.4 user/thompsa/usb/share/man/man4/bge.4 user/thompsa/usb/share/man/man4/gem.4 user/thompsa/usb/share/man/man4/hme.4 user/thompsa/usb/share/man/man4/iic.4 user/thompsa/usb/share/man/man4/man4.powerpc/Makefile user/thompsa/usb/share/man/man4/nge.4 user/thompsa/usb/share/man/man4/sdhci.4 user/thompsa/usb/share/man/man4/sk.4 user/thompsa/usb/share/man/man5/Makefile user/thompsa/usb/share/man/man5/rc.conf.5 user/thompsa/usb/share/man/man7/build.7 user/thompsa/usb/share/man/man7/ports.7 user/thompsa/usb/share/man/man7/tuning.7 user/thompsa/usb/share/man/man9/kthread.9 user/thompsa/usb/share/zoneinfo/ (props changed) user/thompsa/usb/share/zoneinfo/asia user/thompsa/usb/share/zoneinfo/backward user/thompsa/usb/share/zoneinfo/europe user/thompsa/usb/share/zoneinfo/leapseconds user/thompsa/usb/share/zoneinfo/northamerica user/thompsa/usb/share/zoneinfo/zone.tab user/thompsa/usb/sys/ (props changed) user/thompsa/usb/sys/amd64/amd64/cpu_switch.S user/thompsa/usb/sys/amd64/amd64/identcpu.c user/thompsa/usb/sys/amd64/conf/GENERIC user/thompsa/usb/sys/arm/arm/cpufunc_asm_sheeva.S (props changed) user/thompsa/usb/sys/arm/at91/at91.c user/thompsa/usb/sys/arm/at91/at91_mci.c user/thompsa/usb/sys/arm/at91/at91_twi.c user/thompsa/usb/sys/arm/at91/at91_twireg.h user/thompsa/usb/sys/arm/at91/at91var.h user/thompsa/usb/sys/arm/at91/uart_bus_at91usart.c user/thompsa/usb/sys/arm/at91/uart_cpu_at91rm9200usart.c user/thompsa/usb/sys/arm/at91/uart_dev_at91usart.c user/thompsa/usb/sys/arm/include/vmparam.h user/thompsa/usb/sys/arm/xscale/i8134x/i81342_mcu.c user/thompsa/usb/sys/boot/forth/loader.conf user/thompsa/usb/sys/cam/cam_periph.c user/thompsa/usb/sys/cam/cam_xpt.c user/thompsa/usb/sys/cam/scsi/scsi_low.c user/thompsa/usb/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c user/thompsa/usb/sys/compat/linprocfs/linprocfs.c user/thompsa/usb/sys/compat/linux/linux_stats.c user/thompsa/usb/sys/compat/svr4/svr4_types.h user/thompsa/usb/sys/conf/NOTES user/thompsa/usb/sys/conf/files.amd64 user/thompsa/usb/sys/conf/files.i386 user/thompsa/usb/sys/conf/files.pc98 user/thompsa/usb/sys/conf/files.powerpc user/thompsa/usb/sys/conf/kmod.mk user/thompsa/usb/sys/conf/newvers.sh user/thompsa/usb/sys/conf/options user/thompsa/usb/sys/contrib/altq/altq/altq_subr.c user/thompsa/usb/sys/contrib/pf/ (props changed) user/thompsa/usb/sys/dev/acpica/acpi_battery.c user/thompsa/usb/sys/dev/agp/agp_via.c user/thompsa/usb/sys/dev/ath/ath_hal/ah.c user/thompsa/usb/sys/dev/ath/ath_hal/ah.h user/thompsa/usb/sys/dev/ath/ath_hal/ah_internal.h user/thompsa/usb/sys/dev/ath/ath_hal/ah_regdomain.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210.h user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211.h user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar2316.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar2317.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar2413.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar2425.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5111.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5112.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212.h user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5413.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5312/ar5312.h user/thompsa/usb/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar2133.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416.h user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_cal.h user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c user/thompsa/usb/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c user/thompsa/usb/sys/dev/ath/if_ath.c user/thompsa/usb/sys/dev/ath/if_athvar.h user/thompsa/usb/sys/dev/bce/if_bce.c user/thompsa/usb/sys/dev/hwpmc/hwpmc_core.c user/thompsa/usb/sys/dev/hwpmc/hwpmc_intel.c user/thompsa/usb/sys/dev/hwpmc/pmc_events.h user/thompsa/usb/sys/dev/iicbus/iic.c user/thompsa/usb/sys/dev/iicbus/iic.h user/thompsa/usb/sys/dev/iicbus/iicbus.c user/thompsa/usb/sys/dev/mmc/mmc.c user/thompsa/usb/sys/dev/msk/if_msk.c user/thompsa/usb/sys/dev/msk/if_mskreg.h user/thompsa/usb/sys/dev/pci/pci.c user/thompsa/usb/sys/dev/ppbus/if_plip.c user/thompsa/usb/sys/dev/ppbus/immio.c user/thompsa/usb/sys/dev/ppbus/lpbb.c user/thompsa/usb/sys/dev/ppbus/lpt.c user/thompsa/usb/sys/dev/ppbus/pcfclock.c user/thompsa/usb/sys/dev/ppbus/ppb_1284.c user/thompsa/usb/sys/dev/ppbus/ppb_base.c user/thompsa/usb/sys/dev/ppbus/ppb_msq.c user/thompsa/usb/sys/dev/ppbus/ppbconf.c user/thompsa/usb/sys/dev/ppbus/ppbconf.h user/thompsa/usb/sys/dev/ppbus/ppi.c user/thompsa/usb/sys/dev/ppbus/pps.c user/thompsa/usb/sys/dev/ppbus/vpo.c user/thompsa/usb/sys/dev/ppbus/vpoio.c user/thompsa/usb/sys/dev/ppc/ppc.c user/thompsa/usb/sys/dev/ppc/ppc_acpi.c user/thompsa/usb/sys/dev/ppc/ppc_isa.c user/thompsa/usb/sys/dev/ppc/ppc_pci.c user/thompsa/usb/sys/dev/ppc/ppc_puc.c user/thompsa/usb/sys/dev/ppc/ppcreg.h user/thompsa/usb/sys/dev/ppc/ppcvar.h user/thompsa/usb/sys/dev/puc/pucdata.c user/thompsa/usb/sys/dev/re/if_re.c user/thompsa/usb/sys/dev/sound/pci/cmi.c user/thompsa/usb/sys/dev/sound/pci/hda/hdac.c user/thompsa/usb/sys/dev/speaker/spkr.c user/thompsa/usb/sys/dev/syscons/teken/sequences user/thompsa/usb/sys/dev/syscons/teken/teken.c user/thompsa/usb/sys/dev/syscons/teken/teken.h user/thompsa/usb/sys/dev/syscons/teken/teken_demo.c user/thompsa/usb/sys/dev/syscons/teken/teken_subr.h user/thompsa/usb/sys/dev/syscons/teken/teken_subr_compat.h user/thompsa/usb/sys/dev/usb/ehci_ixp4xx.c (props changed) user/thompsa/usb/sys/dev/usb/u3g.c user/thompsa/usb/sys/dev/usb/uftdi.c user/thompsa/usb/sys/dev/usb/usbdevs user/thompsa/usb/sys/dev/usb/usbdi.c user/thompsa/usb/sys/dev/usb2/bluetooth/ng_ubt2.c user/thompsa/usb/sys/dev/usb2/bluetooth/ng_ubt2_var.h user/thompsa/usb/sys/dev/usb2/controller/uhci2.c user/thompsa/usb/sys/dev/usb2/controller/usb2_controller.h user/thompsa/usb/sys/dev/usb2/core/usb2_hub.c user/thompsa/usb/sys/dev/usb2/include/usb2_devid.h user/thompsa/usb/sys/dev/usb2/include/usb2_devtable.h user/thompsa/usb/sys/dev/usb2/include/usb2_ioctl.h user/thompsa/usb/sys/dev/usb2/quirk/usb2_quirk.c user/thompsa/usb/sys/dev/usb2/serial/u3g2.c user/thompsa/usb/sys/dev/usb2/serial/ufoma2.c user/thompsa/usb/sys/dev/usb2/storage/umass2.c user/thompsa/usb/sys/dev/xen/blkback/blkback.c user/thompsa/usb/sys/fs/cd9660/cd9660_rrip.c user/thompsa/usb/sys/fs/fifofs/fifo_vnops.c user/thompsa/usb/sys/geom/geom_dev.c user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_fs.h user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_fs_sb.h user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_inode.c user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c user/thompsa/usb/sys/gnu/fs/ext2fs/ext2_vfsops.c user/thompsa/usb/sys/i386/conf/GENERIC user/thompsa/usb/sys/i386/cpufreq/smist.c user/thompsa/usb/sys/i386/i386/identcpu.c user/thompsa/usb/sys/ia64/ia64/pmap.c user/thompsa/usb/sys/kern/imgact_elf.c user/thompsa/usb/sys/kern/kern_clock.c user/thompsa/usb/sys/kern/kern_jail.c user/thompsa/usb/sys/kern/kern_malloc.c user/thompsa/usb/sys/kern/kern_proc.c user/thompsa/usb/sys/kern/kern_synch.c user/thompsa/usb/sys/kern/kern_sysctl.c user/thompsa/usb/sys/kern/kern_timeout.c user/thompsa/usb/sys/kern/sched_4bsd.c user/thompsa/usb/sys/kern/sched_ule.c user/thompsa/usb/sys/kern/subr_pcpu.c user/thompsa/usb/sys/kern/subr_smp.c user/thompsa/usb/sys/kern/subr_witness.c user/thompsa/usb/sys/kern/sys_generic.c user/thompsa/usb/sys/kern/tty.c user/thompsa/usb/sys/kern/tty_pty.c user/thompsa/usb/sys/kern/uipc_mbuf.c user/thompsa/usb/sys/kern/vfs_aio.c user/thompsa/usb/sys/kern/vfs_cache.c user/thompsa/usb/sys/kern/vfs_subr.c user/thompsa/usb/sys/kern/vfs_syscalls.c user/thompsa/usb/sys/kern/vfs_vnops.c user/thompsa/usb/sys/kern/vnode_if.src user/thompsa/usb/sys/mips/include/pmap.h user/thompsa/usb/sys/mips/mips/elf64_machdep.c (props changed) user/thompsa/usb/sys/mips/mips/machdep.c user/thompsa/usb/sys/mips/mips/pmap.c user/thompsa/usb/sys/modules/Makefile user/thompsa/usb/sys/modules/agp/Makefile user/thompsa/usb/sys/modules/sound/driver/Makefile user/thompsa/usb/sys/modules/usb2/Makefile user/thompsa/usb/sys/modules/usb2/controller_atmegadci/ (props changed) user/thompsa/usb/sys/net/if.c user/thompsa/usb/sys/net/rtsock.c user/thompsa/usb/sys/net80211/_ieee80211.h user/thompsa/usb/sys/net80211/ieee80211.c user/thompsa/usb/sys/net80211/ieee80211.h user/thompsa/usb/sys/net80211/ieee80211_crypto.h user/thompsa/usb/sys/net80211/ieee80211_ddb.c user/thompsa/usb/sys/net80211/ieee80211_ht.h user/thompsa/usb/sys/net80211/ieee80211_ioctl.c user/thompsa/usb/sys/net80211/ieee80211_ioctl.h user/thompsa/usb/sys/net80211/ieee80211_node.h user/thompsa/usb/sys/net80211/ieee80211_regdomain.c user/thompsa/usb/sys/net80211/ieee80211_regdomain.h user/thompsa/usb/sys/net80211/ieee80211_var.h user/thompsa/usb/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c user/thompsa/usb/sys/netgraph/ng_deflate.c user/thompsa/usb/sys/netgraph/ng_iface.c user/thompsa/usb/sys/netgraph/ng_iface.h user/thompsa/usb/sys/netgraph/ng_mppc.c user/thompsa/usb/sys/netgraph/ng_ppp.c user/thompsa/usb/sys/netgraph/ng_pred1.c user/thompsa/usb/sys/netinet/in.c user/thompsa/usb/sys/netinet/in_pcb.c user/thompsa/usb/sys/netinet/ip_fw2.c user/thompsa/usb/sys/netinet/libalias/alias_ftp.c user/thompsa/usb/sys/netinet/libalias/alias_irc.c user/thompsa/usb/sys/netinet/libalias/alias_nbt.c user/thompsa/usb/sys/netinet/raw_ip.c user/thompsa/usb/sys/netinet/tcp_var.h user/thompsa/usb/sys/netinet6/in6_ifattach.c user/thompsa/usb/sys/netinet6/raw_ip6.c user/thompsa/usb/sys/netipsec/ipsec_mbuf.c user/thompsa/usb/sys/nfs4client/nfs4_subs.c user/thompsa/usb/sys/nfsclient/nfs_vfsops.c user/thompsa/usb/sys/nfsclient/nfs_vnops.c user/thompsa/usb/sys/nfsserver/nfs_srvsubs.c user/thompsa/usb/sys/opencrypto/cryptosoft.c user/thompsa/usb/sys/pci/if_rlreg.h user/thompsa/usb/sys/powerpc/conf/GENERIC user/thompsa/usb/sys/powerpc/conf/NOTES user/thompsa/usb/sys/powerpc/powermac/ata_macio.c user/thompsa/usb/sys/powerpc/powerpc/intr_machdep.c user/thompsa/usb/sys/security/mac/mac_audit.c user/thompsa/usb/sys/security/mac/mac_framework.c user/thompsa/usb/sys/security/mac/mac_priv.c user/thompsa/usb/sys/sun4v/include/pcpu.h user/thompsa/usb/sys/sys/conf.h user/thompsa/usb/sys/sys/jail.h user/thompsa/usb/sys/sys/ktr.h user/thompsa/usb/sys/sys/lock.h user/thompsa/usb/sys/sys/param.h user/thompsa/usb/sys/sys/pcpu.h user/thompsa/usb/sys/sys/pmc.h user/thompsa/usb/sys/sys/sched.h user/thompsa/usb/sys/sys/sysctl.h user/thompsa/usb/sys/sys/types.h user/thompsa/usb/sys/sys/vnode.h user/thompsa/usb/sys/ufs/ffs/ffs_alloc.c user/thompsa/usb/sys/ufs/ffs/ffs_balloc.c user/thompsa/usb/sys/ufs/ffs/ffs_extern.h user/thompsa/usb/sys/ufs/ffs/ffs_inode.c user/thompsa/usb/sys/ufs/ffs/ffs_vnops.c user/thompsa/usb/sys/ufs/ufs/ufs_dirhash.c user/thompsa/usb/sys/ufs/ufs/ufs_lookup.c user/thompsa/usb/sys/ufs/ufs/ufs_vnops.c user/thompsa/usb/sys/vm/uma.h user/thompsa/usb/sys/vm/uma_core.c user/thompsa/usb/sys/vm/uma_dbg.c user/thompsa/usb/sys/vm/uma_int.h user/thompsa/usb/sys/vm/vm_meter.c user/thompsa/usb/sys/vm/vm_mmap.c user/thompsa/usb/tools/regression/fstest/tests/conf user/thompsa/usb/tools/regression/fstest/tests/misc.sh user/thompsa/usb/tools/regression/usr.bin/jot/regress.sh user/thompsa/usb/tools/sched/schedgraph.py user/thompsa/usb/tools/tools/ath/Makefile user/thompsa/usb/tools/tools/ath/Makefile.inc user/thompsa/usb/usr.bin/fetch/fetch.c user/thompsa/usb/usr.bin/mail/Makefile user/thompsa/usb/usr.bin/make/Makefile user/thompsa/usb/usr.bin/make/buf.c user/thompsa/usb/usr.bin/make/suff.c user/thompsa/usb/usr.bin/split/split.1 user/thompsa/usb/usr.bin/truss/truss.1 user/thompsa/usb/usr.sbin/Makefile user/thompsa/usb/usr.sbin/config/config.8 user/thompsa/usb/usr.sbin/jail/jail.8 user/thompsa/usb/usr.sbin/makefs/ffs/ffs_bswap.c (props changed) user/thompsa/usb/usr.sbin/makefs/ffs/ffs_subr.c (props changed) user/thompsa/usb/usr.sbin/makefs/ffs/ufs_bswap.h (props changed) user/thompsa/usb/usr.sbin/makefs/getid.c (props changed) user/thompsa/usb/usr.sbin/sysinstall/devices.c Modified: user/thompsa/usb/Makefile.inc1 ============================================================================== --- user/thompsa/usb/Makefile.inc1 Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/Makefile.inc1 Wed Jan 28 18:51:11 2009 (r187837) @@ -702,6 +702,10 @@ distrib-dirs distribution: NO_KERNELCLEAN= t NO_KERNELCONFIG= t NO_KERNELDEPEND= t +# Shortcut for KERNCONF=Blah -DKERNFAST is now KERNFAST=Blah +.if !defined(KERNCONF) && ${KERNFAST} != "1" +KERNCONF=${KERNFAST} +.endif .endif .if !defined(KERNCONF) && defined(KERNEL) KERNCONF= ${KERNEL} Modified: user/thompsa/usb/ObsoleteFiles.inc ============================================================================== --- user/thompsa/usb/ObsoleteFiles.inc Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/ObsoleteFiles.inc Wed Jan 28 18:51:11 2009 (r187837) @@ -14,6 +14,11 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20090122: tzdata2009a import +OLD_FILES+=usr/share/zoneinfo/Asia/Katmandu +# 20090102: file 4.26 import +OLD_FILES+=usr/share/misc/magic.mime +OLD_FILES+=usr/share/misc/magic.mime.mgc # 20081223: bind 9.4.3 import, nsupdate.8 moved to nsupdate.1 OLD_FILES+=usr/share/man/man8/nsupdate.8.gz # 20081223: ipprotosw.h removed Modified: user/thompsa/usb/UPDATING ============================================================================== --- user/thompsa/usb/UPDATING Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/UPDATING Wed Jan 28 18:51:11 2009 (r187837) @@ -22,6 +22,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8. to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090119: + NTFS has been removed from GENERIC kernel on amd64 to match + GENERIC on i386. Should not cause any issues since mount_ntfs(8) + will load ntfs.ko module automatically when NTFS support is + actually needed, unless ntfs.ko is not installed or security + level prohibits loading kernel modules. If either is the case, + "options NTFS" has to be added into kernel config. + 20090115: TCP Appropriate Byte Counting (RFC 3465) support added to kernel. New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to Modified: user/thompsa/usb/bin/chmod/chmod.1 ============================================================================== --- user/thompsa/usb/bin/chmod/chmod.1 Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/bin/chmod/chmod.1 Wed Jan 28 18:51:11 2009 (r187837) @@ -32,7 +32,7 @@ .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 .\" $FreeBSD$ .\" -.Dd December 22, 2006 +.Dd January 26, 2009 .Dt CHMOD 1 .Os .Sh NAME @@ -281,6 +281,10 @@ Operations upon the other permissions on ``o'' by itself), in combination with the .Ar perm symbols ``s'' or ``t'', are ignored. +.Pp +The ``w'' permission on directories will permit file creation, relocation, +and copy into that directory. +Files created within the directory itself will inherit its group ID. .Sh EXAMPLES .Bl -tag -width "u=rwx,go=u-w" -compact .It Li 644 @@ -343,4 +347,4 @@ command appeared in .Sh BUGS There is no .Ar perm -option for the naughty bits. +option for the naughty bits of a horse. Modified: user/thompsa/usb/bin/dd/dd.1 ============================================================================== --- user/thompsa/usb/bin/dd/dd.1 Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/bin/dd/dd.1 Wed Jan 28 18:51:11 2009 (r187837) @@ -392,6 +392,11 @@ Remove parity bit from a file: Check for (even) parity errors on a file: .Pp .Dl "dd if=file conv=pareven | cmp -x - file" +.Pp +To create an image of a Mode-1 CD-ROM, which is a commonly used format +for data CD-ROM disks, use a block size of 2048 bytes: +.Pp +.Dl "dd if=/dev/acd0 of=filename.iso bs=2048" .Sh SEE ALSO .Xr cp 1 , .Xr mt 1 , Modified: user/thompsa/usb/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c ============================================================================== --- user/thompsa/usb/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Wed Jan 28 18:51:11 2009 (r187837) @@ -1739,15 +1739,11 @@ dtrace_program_link(dtrace_hdl_t *dtp, d * Arches which are 32-bit only just use the normal * library path. */ -#if defined(__i386__) - int use_32 = 1; /* use /usr/lib/... -sson */ -#else int use_32 = 0; #endif -#endif (void) snprintf(drti, sizeof (drti), "/usr/lib%s/dtrace/drti.o", - use_32 ? "":"32"); + use_32 ? "32":""); len = snprintf(&tmp, 1, fmt, dtp->dt_ld_path, file, tfile, drti) + 1; Modified: user/thompsa/usb/contrib/gdtoa/README ============================================================================== --- user/thompsa/usb/contrib/gdtoa/README Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/README Wed Jan 28 18:51:11 2009 (r187837) @@ -56,7 +56,9 @@ two letters: whose sum is the desired value For decimal -> binary conversions, there are three families of -helper routines: one for round-nearest: +helper routines: one for round-nearest (or the current rounding +mode on IEEE-arithmetic systems that provide the C99 fegetround() +function, if compiled with -DHonor_FLT_ROUNDS): strtof strtod @@ -191,6 +193,9 @@ in the buffer, if the buffer was long en conversion are easily done with the help of gdtoa(), such as %e or %f style and conversions with direction of rounding specified (so that, if desired, the decimal value is either >= or <= the binary value). +On IEEE-arithmetic systems that provide the C99 fegetround() function, +if compiled with -DHonor_FLT_ROUNDS, these routines honor the current +rounding mode. For an example of more general conversions based on dtoa(), see netlib's "printf.c from ampl/solvers". @@ -342,5 +347,11 @@ standard says it should -- when Honor_FL current rounding mode is obtained from fegetround() rather than from FLT_ROUNDS, unless Trust_FLT_ROUNDS is also #defined. +Compile with -DUSE_LOCALE to use the current locale; otherwise +decimal points are assumed to be '.'. With -DUSE_LOCALE, unless +you also compile with -DNO_LOCALE_CACHE, the details about the +current "decimal point" character string are cached and assumed not +to change during the program's execution. + Please send comments to David M. Gay (dmg at acm dot org, with " at " changed at "@" and " dot " changed to "."). Modified: user/thompsa/usb/contrib/gdtoa/g_Qfmt.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/g_Qfmt.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/g_Qfmt.c Wed Jan 28 18:51:11 2009 (r187837) @@ -51,15 +51,20 @@ THIS SOFTWARE. char* #ifdef KR_headers -g_Qfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; unsigned bufsize; +g_Qfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; size_t bufsize; #else -g_Qfmt(char *buf, void *V, int ndig, unsigned bufsize) +g_Qfmt(char *buf, void *V, int ndig, size_t bufsize) #endif { - static FPI fpi = { 113, 1-16383-113+1, 32766 - 16383 - 113 + 1, 1, 0 }; + static FPI fpi0 = { 113, 1-16383-113+1, 32766 - 16383 - 113 + 1, 1, 0 }; char *b, *s, *se; ULong bits[4], *L, sign; int decpt, ex, i, mode; +#ifdef Honor_FLT_ROUNDS +#include "gdtoa_fltrnds.h" +#else +#define fpi &fpi0 +#endif if (ndig < 0) ndig = 0; @@ -109,6 +114,6 @@ g_Qfmt(char *buf, void *V, int ndig, uns return 0; mode = 0; } - s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se); - return g__fmt(buf, s, se, decpt, sign); + s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se); + return g__fmt(buf, s, se, decpt, sign, bufsize); } Modified: user/thompsa/usb/contrib/gdtoa/g__fmt.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/g__fmt.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/g__fmt.c Wed Jan 28 18:51:11 2009 (r187837) @@ -37,24 +37,51 @@ THIS SOFTWARE. char * #ifdef KR_headers -g__fmt(b, s, se, decpt, sign) char *b; char *s; char *se; int decpt; ULong sign; +g__fmt(b, s, se, decpt, sign, blen) char *b; char *s; char *se; int decpt; ULong sign; size_t blen; #else -g__fmt(char *b, char *s, char *se, int decpt, ULong sign) +g__fmt(char *b, char *s, char *se, int decpt, ULong sign, size_t blen) #endif { int i, j, k; - char *s0 = s; + char *be, *s0; + size_t len; #ifdef USE_LOCALE - char decimalpoint = *localeconv()->decimal_point; +#ifdef NO_LOCALE_CACHE + char *decimalpoint = localeconv()->decimal_point; + size_t dlen = strlen(decimalpoint); #else -#define decimalpoint '.' + char *decimalpoint; + static char *decimalpoint_cache; + static size_t dlen; + if (!(s0 = decimalpoint_cache)) { + s0 = localeconv()->decimal_point; + dlen = strlen(s0); + if ((decimalpoint_cache = (char*)malloc(strlen(s0) + 1))) { + strcpy(decimalpoint_cache, s0); + s0 = decimalpoint_cache; + } + } + decimalpoint = s0; +#endif +#else +#define dlen 0 #endif + s0 = s; + len = (se-s) + dlen + 6; /* 6 = sign + e+dd + trailing null */ + if (blen < len) + goto ret0; + be = b + blen - 1; if (sign) *b++ = '-'; if (decpt <= -4 || decpt > se - s + 5) { *b++ = *s++; if (*s) { - *b++ = decimalpoint; +#ifdef USE_LOCALE + while((*b = *decimalpoint++)) + ++b; +#else + *b++ = '.'; +#endif while((*b = *s++) !=0) b++; } @@ -69,6 +96,8 @@ g__fmt(char *b, char *s, char *se, int d for(j = 2, k = 10; 10*k <= decpt; j++, k *= 10){} for(;;) { i = decpt / k; + if (b >= be) + goto ret0; *b++ = i + '0'; if (--j <= 0) break; @@ -78,22 +107,41 @@ g__fmt(char *b, char *s, char *se, int d *b = 0; } else if (decpt <= 0) { - *b++ = decimalpoint; +#ifdef USE_LOCALE + while((*b = *decimalpoint++)) + ++b; +#else + *b++ = '.'; +#endif + if (be < b - decpt + (se - s)) + goto ret0; for(; decpt < 0; decpt++) *b++ = '0'; - while((*b = *s++) !=0) + while((*b = *s++) != 0) b++; } else { - while((*b = *s++) !=0) { + while((*b = *s++) != 0) { b++; - if (--decpt == 0 && *s) - *b++ = decimalpoint; + if (--decpt == 0 && *s) { +#ifdef USE_LOCALE + while(*b = *decimalpoint++) + ++b; +#else + *b++ = '.'; +#endif + } + } + if (b + decpt > be) { + ret0: + b = 0; + goto ret; } for(; decpt > 0; decpt--) *b++ = '0'; *b = 0; } + ret: freedtoa(s0); return b; } Modified: user/thompsa/usb/contrib/gdtoa/g_ddfmt.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/g_ddfmt.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/g_ddfmt.c Wed Jan 28 18:51:11 2009 (r187837) @@ -33,9 +33,9 @@ THIS SOFTWARE. char * #ifdef KR_headers -g_ddfmt(buf, dd, ndig, bufsize) char *buf; double *dd; int ndig; unsigned bufsize; +g_ddfmt(buf, dd, ndig, bufsize) char *buf; double *dd; int ndig; size_t bufsize; #else -g_ddfmt(char *buf, double *dd, int ndig, unsigned bufsize) +g_ddfmt(char *buf, double *dd, int ndig, size_t bufsize) #endif { FPI fpi; @@ -44,6 +44,21 @@ g_ddfmt(char *buf, double *dd, int ndig, int bx, by, decpt, ex, ey, i, j, mode; Bigint *x, *y, *z; double ddx[2]; +#ifdef Honor_FLT_ROUNDS /*{{*/ + int Rounding; +#ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */ + Rounding = Flt_Rounds; +#else /*}{*/ + Rounding = 1; + switch(fegetround()) { + case FE_TOWARDZERO: Rounding = 0; break; + case FE_UPWARD: Rounding = 2; break; + case FE_DOWNWARD: Rounding = 3; + } +#endif /*}}*/ +#else /*}{*/ +#define Rounding FPI_Round_near +#endif /*}}*/ if (bufsize < 10 || bufsize < ndig + 8) return 0; @@ -144,11 +159,11 @@ g_ddfmt(char *buf, double *dd, int ndig, } fpi.emin = 1-1023-53+1; fpi.emax = 2046-1023-106+1; - fpi.rounding = FPI_Round_near; + fpi.rounding = Rounding; fpi.sudden_underflow = 0; i = STRTOG_Normal; s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se); - b = g__fmt(buf, s, se, decpt, z->sign); + b = g__fmt(buf, s, se, decpt, z->sign, bufsize); Bfree(z); return b; } Modified: user/thompsa/usb/contrib/gdtoa/g_dfmt.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/g_dfmt.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/g_dfmt.c Wed Jan 28 18:51:11 2009 (r187837) @@ -33,15 +33,20 @@ THIS SOFTWARE. char* #ifdef KR_headers -g_dfmt(buf, d, ndig, bufsize) char *buf; double *d; int ndig; unsigned bufsize; +g_dfmt(buf, d, ndig, bufsize) char *buf; double *d; int ndig; size_t bufsize; #else -g_dfmt(char *buf, double *d, int ndig, unsigned bufsize) +g_dfmt(char *buf, double *d, int ndig, size_t bufsize) #endif { - static FPI fpi = { 53, 1-1023-53+1, 2046-1023-53+1, 1, 0 }; + static FPI fpi0 = { 53, 1-1023-53+1, 2046-1023-53+1, 1, 0 }; char *b, *s, *se; ULong bits[2], *L, sign; int decpt, ex, i, mode; +#ifdef Honor_FLT_ROUNDS +#include "gdtoa_fltrnds.h" +#else +#define fpi &fpi0 +#endif if (ndig < 0) ndig = 0; @@ -52,6 +57,8 @@ g_dfmt(char *buf, double *d, int ndig, u sign = L[_0] & 0x80000000L; if ((L[_0] & 0x7ff00000) == 0x7ff00000) { /* Infinity or NaN */ + if (bufsize < 10) + return 0; if (L[_0] & 0xfffff || L[_1]) { return strcp(buf, "NaN"); } @@ -78,12 +85,9 @@ g_dfmt(char *buf, double *d, int ndig, u ex = 1; ex -= 0x3ff + 52; mode = 2; - if (ndig <= 0) { - if (bufsize < 25) - return 0; + if (ndig <= 0) mode = 0; - } i = STRTOG_Normal; - s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se); - return g__fmt(buf, s, se, decpt, sign); + s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se); + return g__fmt(buf, s, se, decpt, sign, bufsize); } Modified: user/thompsa/usb/contrib/gdtoa/g_ffmt.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/g_ffmt.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/g_ffmt.c Wed Jan 28 18:51:11 2009 (r187837) @@ -33,15 +33,20 @@ THIS SOFTWARE. char* #ifdef KR_headers -g_ffmt(buf, f, ndig, bufsize) char *buf; float *f; int ndig; unsigned bufsize; +g_ffmt(buf, f, ndig, bufsize) char *buf; float *f; int ndig; size_t bufsize; #else -g_ffmt(char *buf, float *f, int ndig, unsigned bufsize) +g_ffmt(char *buf, float *f, int ndig, size_t bufsize) #endif { - static FPI fpi = { 24, 1-127-24+1, 254-127-24+1, 1, 0 }; + static FPI fpi0 = { 24, 1-127-24+1, 254-127-24+1, 1, 0 }; char *b, *s, *se; ULong bits[1], *L, sign; int decpt, ex, i, mode; +#ifdef Honor_FLT_ROUNDS +#include "gdtoa_fltrnds.h" +#else +#define fpi &fpi0 +#endif if (ndig < 0) ndig = 0; @@ -83,6 +88,6 @@ g_ffmt(char *buf, float *f, int ndig, un mode = 0; } i = STRTOG_Normal; - s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se); - return g__fmt(buf, s, se, decpt, sign); + s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se); + return g__fmt(buf, s, se, decpt, sign, bufsize); } Modified: user/thompsa/usb/contrib/gdtoa/g_xLfmt.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/g_xLfmt.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/g_xLfmt.c Wed Jan 28 18:51:11 2009 (r187837) @@ -49,15 +49,20 @@ THIS SOFTWARE. char* #ifdef KR_headers -g_xLfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; unsigned bufsize; +g_xLfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; size_t bufsize; #else -g_xLfmt(char *buf, void *V, int ndig, unsigned bufsize) +g_xLfmt(char *buf, void *V, int ndig, size_t bufsize) #endif { - static FPI fpi = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, 0 }; + static FPI fpi0 = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, 0 }; char *b, *s, *se; ULong bits[2], *L, sign; int decpt, ex, i, mode; +#ifdef Honor_FLT_ROUNDS +#include "gdtoa_fltrnds.h" +#else +#define fpi &fpi0 +#endif if (ndig < 0) ndig = 0; @@ -103,6 +108,6 @@ g_xLfmt(char *buf, void *V, int ndig, un return 0; mode = 0; } - s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se); - return g__fmt(buf, s, se, decpt, sign); + s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se); + return g__fmt(buf, s, se, decpt, sign, bufsize); } Modified: user/thompsa/usb/contrib/gdtoa/g_xfmt.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/g_xfmt.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/g_xfmt.c Wed Jan 28 18:51:11 2009 (r187837) @@ -53,16 +53,21 @@ THIS SOFTWARE. char* #ifdef KR_headers -g_xfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; unsigned bufsize; +g_xfmt(buf, V, ndig, bufsize) char *buf; char *V; int ndig; size_t bufsize; #else -g_xfmt(char *buf, void *V, int ndig, unsigned bufsize) +g_xfmt(char *buf, void *V, int ndig, size_t bufsize) #endif { - static FPI fpi = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, 0 }; + static FPI fpi0 = { 64, 1-16383-64+1, 32766 - 16383 - 64 + 1, 1, 0 }; char *b, *s, *se; ULong bits[2], sign; UShort *L; int decpt, ex, i, mode; +#ifdef Honor_FLT_ROUNDS +#include "gdtoa_fltrnds.h" +#else +#define fpi &fpi0 +#endif if (ndig < 0) ndig = 0; @@ -109,6 +114,6 @@ g_xfmt(char *buf, void *V, int ndig, uns return 0; mode = 0; } - s = gdtoa(&fpi, ex, bits, &i, mode, ndig, &decpt, &se); - return g__fmt(buf, s, se, decpt, sign); + s = gdtoa(fpi, ex, bits, &i, mode, ndig, &decpt, &se); + return g__fmt(buf, s, se, decpt, sign, bufsize); } Modified: user/thompsa/usb/contrib/gdtoa/gdtoa.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/gdtoa.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/gdtoa.c Wed Jan 28 18:51:11 2009 (r187837) @@ -417,11 +417,9 @@ gdtoa if (dval(d) > ds + dval(eps)) goto bump_up; else if (dval(d) < ds - dval(eps)) { - while(*--s == '0'){} - s++; if (dval(d)) inex = STRTOG_Inexlo; - goto ret1; + goto clear_trailing0; } break; } @@ -479,8 +477,12 @@ gdtoa } ++*s++; } - else + else { inex = STRTOG_Inexlo; + clear_trailing0: + while(*--s == '0'){} + ++s; + } break; } } @@ -738,7 +740,7 @@ gdtoa if (b->wds > 1 || b->x[0]) inex = STRTOG_Inexlo; while(*--s == '0'){} - s++; + ++s; } ret: Bfree(S); Modified: user/thompsa/usb/contrib/gdtoa/gdtoa.h ============================================================================== --- user/thompsa/usb/contrib/gdtoa/gdtoa.h Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/gdtoa.h Wed Jan 28 18:51:11 2009 (r187837) @@ -33,6 +33,7 @@ THIS SOFTWARE. #define GDTOA_H_INCLUDED #include "arith.h" +#include <stddef.h> /* for size_t */ #ifndef Long #define Long long @@ -111,12 +112,12 @@ extern float strtof ANSI((CONST char *, extern double strtod ANSI((CONST char *, char **)); extern int strtodg ANSI((CONST char*, char**, FPI*, Long*, ULong*)); -extern char* g_ddfmt ANSI((char*, double*, int, unsigned)); -extern char* g_dfmt ANSI((char*, double*, int, unsigned)); -extern char* g_ffmt ANSI((char*, float*, int, unsigned)); -extern char* g_Qfmt ANSI((char*, void*, int, unsigned)); -extern char* g_xfmt ANSI((char*, void*, int, unsigned)); -extern char* g_xLfmt ANSI((char*, void*, int, unsigned)); +extern char* g_ddfmt ANSI((char*, double*, int, size_t)); +extern char* g_dfmt ANSI((char*, double*, int, size_t)); +extern char* g_ffmt ANSI((char*, float*, int, size_t)); +extern char* g_Qfmt ANSI((char*, void*, int, size_t)); +extern char* g_xfmt ANSI((char*, void*, int, size_t)); +extern char* g_xLfmt ANSI((char*, void*, int, size_t)); extern int strtoId ANSI((CONST char*, char**, double*, double*)); extern int strtoIdd ANSI((CONST char*, char**, double*, double*)); Copied: user/thompsa/usb/contrib/gdtoa/gdtoa_fltrnds.h (from r187835, head/contrib/gdtoa/gdtoa_fltrnds.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/thompsa/usb/contrib/gdtoa/gdtoa_fltrnds.h Wed Jan 28 18:51:11 2009 (r187837, copy of r187835, head/contrib/gdtoa/gdtoa_fltrnds.h) @@ -0,0 +1,18 @@ + FPI *fpi, fpi1; + int Rounding; +#ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */ + Rounding = Flt_Rounds; +#else /*}{*/ + Rounding = 1; + switch(fegetround()) { + case FE_TOWARDZERO: Rounding = 0; break; + case FE_UPWARD: Rounding = 2; break; + case FE_DOWNWARD: Rounding = 3; + } +#endif /*}}*/ + fpi = &fpi0; + if (Rounding != 1) { + fpi1 = fpi0; + fpi = &fpi1; + fpi1.rounding = Rounding; + } Modified: user/thompsa/usb/contrib/gdtoa/gdtoaimp.h ============================================================================== --- user/thompsa/usb/contrib/gdtoa/gdtoaimp.h Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/gdtoaimp.h Wed Jan 28 18:51:11 2009 (r187837) @@ -128,8 +128,10 @@ THIS SOFTWARE. * conversions of IEEE doubles in single-threaded executions with * 8-byte pointers, PRIVATE_MEM >= 7400 appears to suffice; with * 4-byte pointers, PRIVATE_MEM >= 7112 appears adequate. - * #define INFNAN_CHECK on IEEE systems to cause strtod to check for - * Infinity and NaN (case insensitively). + * #define NO_INFNAN_CHECK if you do not wish to have INFNAN_CHECK + * #defined automatically on IEEE systems. On such systems, + * when INFNAN_CHECK is #defined, strtod checks + * for Infinity and NaN (case insensitively). * When INFNAN_CHECK is #defined and No_Hex_NaN is not #defined, * strtodg also accepts (case insensitively) strings of the form * NaN(x), where x is a string of hexadecimal digits (optionally @@ -177,6 +179,9 @@ THIS SOFTWARE. #include "gdtoa.h" #include "gd_qnan.h" +#ifdef Honor_FLT_ROUNDS +#include <fenv.h> +#endif #ifdef DEBUG #include "stdio.h" @@ -206,6 +211,7 @@ extern Char *MALLOC ANSI((size_t)); #define INFNAN_CHECK #define USE_LOCALE +#define NO_LOCALE_CACHE #define Honor_FLT_ROUNDS #define Trust_FLT_ROUNDS @@ -608,7 +614,7 @@ extern void memcpy_D2A ANSI((void*, cons extern void freedtoa ANSI((char*)); extern char *gdtoa ANSI((FPI *fpi, int be, ULong *bits, int *kindp, int mode, int ndigits, int *decpt, char **rve)); - extern char *g__fmt ANSI((char*, char*, char*, int, ULong)); + extern char *g__fmt ANSI((char*, char*, char*, int, ULong, size_t)); extern int gethex ANSI((CONST char**, FPI*, Long*, Bigint**, int)); extern void hexdig_init_D2A(Void); extern int hexnan ANSI((CONST char**, FPI*, ULong*)); @@ -626,7 +632,7 @@ extern void memcpy_D2A ANSI((void*, cons extern double ratio ANSI((Bigint*, Bigint*)); extern void rshift ANSI((Bigint*, int)); extern char *rv_alloc ANSI((int)); - extern Bigint *s2b ANSI((CONST char*, int, int, ULong)); + extern Bigint *s2b ANSI((CONST char*, int, int, ULong, int)); extern Bigint *set_ones ANSI((Bigint*, int)); extern char *strcp ANSI((char*, const char*)); extern int strtodg ANSI((CONST char*, char**, FPI*, Long*, ULong*)); @@ -668,6 +674,10 @@ extern void memcpy_D2A ANSI((void*, cons * (On HP Series 700/800 machines, -DNAN_WORD0=0x7ff40000 works.) */ #ifdef IEEE_Arith +#ifndef NO_INFNAN_CHECK +#undef INFNAN_CHECK +#define INFNAN_CHECK +#endif #ifdef IEEE_MC68k #define _0 0 #define _1 1 Modified: user/thompsa/usb/contrib/gdtoa/gethex.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/gethex.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/gethex.c Wed Jan 28 18:51:11 2009 (r187837) @@ -49,9 +49,21 @@ gethex( CONST char **sp, FPI *fpi, Long ULong L, lostbits, *x; Long e, e1; #ifdef USE_LOCALE - unsigned char decimalpoint = *localeconv()->decimal_point; + int i; +#ifdef NO_LOCALE_CACHE + const unsigned char *decimalpoint = (unsigned char*)localeconv()->decimal_point; #else -#define decimalpoint '.' + const unsigned char *decimalpoint; + static unsigned char *decimalpoint_cache; + if (!(s0 = decimalpoint_cache)) { + s0 = (unsigned char*)localeconv()->decimal_point; + if ((decimalpoint_cache = (char*)malloc(strlen(s0) + 1))) { + strcpy(decimalpoint_cache, s0); + s0 = decimalpoint_cache; + } + } + decimalpoint = s0; +#endif #endif if (!hexdig['0']) @@ -66,11 +78,21 @@ gethex( CONST char **sp, FPI *fpi, Long decpt = 0; zret = 0; e = 0; - if (!hexdig[*s]) { + if (hexdig[*s]) + havedig++; + else { zret = 1; - if (*s != decimalpoint) +#ifdef USE_LOCALE + for(i = 0; decimalpoint[i]; ++i) { + if (s[i] != decimalpoint[i]) + goto pcheck; + } + decpt = s += i; +#else + if (*s != '.') goto pcheck; decpt = ++s; +#endif if (!hexdig[*s]) goto pcheck; while(*s == '0') @@ -82,11 +104,20 @@ gethex( CONST char **sp, FPI *fpi, Long } while(hexdig[*s]) s++; - if (*s == decimalpoint && !decpt) { +#ifdef USE_LOCALE + if (*s == *decimalpoint && !decpt) { + for(i = 1; decimalpoint[i]; ++i) { + if (s[i] != decimalpoint[i]) + goto pcheck; + } + decpt = s += i; +#else + if (*s == '.' && !decpt) { decpt = ++s; +#endif while(hexdig[*s]) s++; - } + }/*}*/ if (decpt) e = -(((Long)(s-decpt)) << 2); pcheck: @@ -118,7 +149,7 @@ gethex( CONST char **sp, FPI *fpi, Long } *sp = (char*)s; if (!havedig) - *sp = s0 - 1; + *sp = (char*)s0 - 1; if (zret) return STRTOG_Zero; if (big) { @@ -168,16 +199,26 @@ gethex( CONST char **sp, FPI *fpi, Long return STRTOG_Normal | STRTOG_Inexlo; } n = s1 - s0 - 1; - for(k = 0; n > 7; n >>= 1) + for(k = 0; n > (1 << kshift-2) - 1; n >>= 1) k++; b = Balloc(k); x = b->x; n = 0; L = 0; +#ifdef USE_LOCALE + for(i = 0; decimalpoint[i+1]; ++i); +#endif while(s1 > s0) { - if (*--s1 == decimalpoint) +#ifdef USE_LOCALE + if (*--s1 == decimalpoint[i]) { + s1 -= i; continue; - if (n == 32) { + } +#else + if (*--s1 == '.') + continue; +#endif + if (n == ULbits) { *x++ = L; L = 0; n = 0; @@ -187,7 +228,7 @@ gethex( CONST char **sp, FPI *fpi, Long } *x++ = L; b->wds = n = x - b->x; - n = 32*n - hi0bits(L); + n = ULbits*n - hi0bits(L); nbits = fpi->nbits; lostbits = 0; x = b->x; Modified: user/thompsa/usb/contrib/gdtoa/makefile ============================================================================== --- user/thompsa/usb/contrib/gdtoa/makefile Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/makefile Wed Jan 28 18:51:11 2009 (r187837) @@ -25,7 +25,7 @@ .SUFFIXES: .c .o CC = cc -CFLAGS = -g -DINFNAN_CHECK +CFLAGS = -g .c.o: $(CC) -c $(CFLAGS) $*.c @@ -55,9 +55,9 @@ gdtoa.a: dmisc.c dtoa.c g_Qfmt.c g__fmt. # If your system lacks ranlib, you do not need it. xs0 = README arithchk.c dmisc.c dtoa.c g_Qfmt.c g__fmt.c g_ddfmt.c g_dfmt.c\ - g_ffmt.c g_xLfmt.c g_xfmt.c gdtoa.c gdtoa.h gdtoaimp.h gethex.c\ - gmisc.c hd_init.c hexnan.c makefile misc.c qnan.c smisc.c strtoIQ.c\ - strtoId.c strtoIdd.c strtoIf.c strtoIg.c strtoIx.c strtoIxL.c\ + g_ffmt.c g_xLfmt.c g_xfmt.c gdtoa.c gdtoa.h gdtoa_fltrnds.h gdtoaimp.h\ + gethex.c gmisc.c hd_init.c hexnan.c makefile misc.c qnan.c smisc.c\ + strtoIQ.c strtoId.c strtoIdd.c strtoIf.c strtoIg.c strtoIx.c strtoIxL.c\ strtod.c strtodI.c strtodg.c strtodnrp.c strtof.c strtopQ.c strtopd.c\ strtopdd.c strtopf.c strtopx.c strtopxL.c strtorQ.c strtord.c strtordd.c\ strtorf.c strtorx.c strtorxL.c sum.c ulp.c Modified: user/thompsa/usb/contrib/gdtoa/smisc.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/smisc.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/smisc.c Wed Jan 28 18:51:11 2009 (r187837) @@ -34,9 +34,9 @@ THIS SOFTWARE. Bigint * s2b #ifdef KR_headers - (s, nd0, nd, y9) CONST char *s; int nd0, nd; ULong y9; + (s, nd0, nd, y9, dplen) CONST char *s; int dplen, nd0, nd; ULong y9; #else - (CONST char *s, int nd0, int nd, ULong y9) + (CONST char *s, int nd0, int nd, ULong y9, int dplen) #endif { Bigint *b; @@ -60,10 +60,10 @@ s2b s += 9; do b = multadd(b, 10, *s++ - '0'); while(++i < nd0); - s++; + s += dplen; } else - s += 10; + s += dplen + 9; for(; i < nd; i++) b = multadd(b, 10, *s++ - '0'); return b; Modified: user/thompsa/usb/contrib/gdtoa/strtod.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/strtod.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/strtod.c Wed Jan 28 18:51:11 2009 (r187837) @@ -80,6 +80,28 @@ strtod #ifdef SET_INEXACT int inexact, oldinexact; #endif +#ifdef USE_LOCALE /*{{*/ +#ifdef NO_LOCALE_CACHE + char *decimalpoint = localeconv()->decimal_point; + int dplen = strlen(decimalpoint); +#else + char *decimalpoint; + static char *decimalpoint_cache; + static int dplen; + if (!(s0 = decimalpoint_cache)) { + s0 = localeconv()->decimal_point; + if ((decimalpoint_cache = (char*)malloc(strlen(s0) + 1))) { + strcpy(decimalpoint_cache, s0); + s0 = decimalpoint_cache; + } + dplen = strlen(s0); + } + decimalpoint = (char*)s0; +#endif /*NO_LOCALE_CACHE*/ +#else /*USE_LOCALE}{*/ +#define dplen 1 +#endif /*USE_LOCALE}}*/ + #ifdef Honor_FLT_ROUNDS /*{*/ int Rounding; #ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */ @@ -118,7 +140,7 @@ strtod } break2: if (*s == '0') { -#ifndef NO_HEX_FP /*{{*/ +#ifndef NO_HEX_FP /*{*/ { static FPI fpi = { 53, 1-1023-53+1, 2046-1023-53+1, 1, SI }; Long exp; @@ -157,7 +179,7 @@ strtod goto ret; } } -#endif +#endif /*}*/ nz0 = 1; while(*++s == '0') ; if (!*s) @@ -172,13 +194,17 @@ strtod z = 10*z + c - '0'; nd0 = nd; #ifdef USE_LOCALE - if (c == *localeconv()->decimal_point) + if (c == *decimalpoint) { + for(i = 1; decimalpoint[i]; ++i) + if (s[i] != decimalpoint[i]) + goto dig_done; + s += i; + c = *s; #else - if (c == '.') + if (c == '.') { + c = *++s; #endif - { decpt = 1; - c = *++s; if (!nd) { for(; c == '0'; c = *++s) nz++; @@ -207,7 +233,7 @@ strtod nz = 0; } } - } + }/*}*/ dig_done: e = 0; if (c == 'e' || c == 'E') { @@ -527,7 +553,7 @@ strtod /* Put digits into bd: true value = bd * 10^e */ - bd0 = s2b(s0, nd0, nd, y); + bd0 = s2b(s0, nd0, nd, y, dplen); for(;;) { bd = Balloc(bd0->k); @@ -974,7 +1000,11 @@ strtod dval(rv) *= dval(rv0); #ifndef NO_ERRNO /* try to avoid the bug of testing an 8087 register value */ +#ifdef IEEE_Arith + if (!(word0(rv) & Exp_mask)) +#else if (word0(rv) == 0 && word1(rv) == 0) +#endif errno = ERANGE; #endif } Modified: user/thompsa/usb/contrib/gdtoa/strtodg.c ============================================================================== --- user/thompsa/usb/contrib/gdtoa/strtodg.c Wed Jan 28 18:46:29 2009 (r187836) +++ user/thompsa/usb/contrib/gdtoa/strtodg.c Wed Jan 28 18:51:11 2009 (r187837) @@ -331,6 +331,27 @@ strtodg Long L; ULong *b, *be, y, z; Bigint *ab, *bb, *bb1, *bd, *bd0, *bs, *delta, *rvb, *rvb0; +#ifdef USE_LOCALE /*{{*/ +#ifdef NO_LOCALE_CACHE + char *decimalpoint = localeconv()->decimal_point; + int dplen = strlen(decimalpoint); +#else + char *decimalpoint; + static char *decimalpoint_cache; + static int dplen; + if (!(s0 = decimalpoint_cache)) { + s0 = localeconv()->decimal_point; + if ((decimalpoint_cache = (char*)malloc(strlen(s0) + 1))) { + strcpy(decimalpoint_cache, s0); + s0 = decimalpoint_cache; + } + dplen = strlen(s0); + } + decimalpoint = (char*)s0; +#endif /*NO_LOCALE_CACHE*/ +#else /*USE_LOCALE}{*/ +#define dplen 1 +#endif /*USE_LOCALE}}*/ irv = STRTOG_Zero; denorm = sign = nz0 = nz = 0; @@ -389,13 +410,17 @@ strtodg z = 10*z + c - '0'; nd0 = nd; #ifdef USE_LOCALE - if (c == *localeconv()->decimal_point) + if (c == *decimalpoint) { + for(i = 1; decimalpoint[i]; ++i) + if (s[i] != decimalpoint[i]) + goto dig_done; + s += i; + c = *s; #else - if (c == '.') + if (c == '.') { + c = *++s; #endif - { decpt = 1; - c = *++s; if (!nd) { for(; c == '0'; c = *++s) nz++; @@ -424,7 +449,7 @@ strtodg nz = 0; } } - } + }/*}*/ dig_done: e = 0; if (c == 'e' || c == 'E') { @@ -683,7 +708,7 @@ strtodg /* Put digits into bd: true value = bd * 10^e */ - bd0 = s2b(s0, nd0, nd, y); + bd0 = s2b(s0, nd0, nd, y, dplen); for(;;) { bd = Balloc(bd0->k); @@ -992,7 +1017,7 @@ strtodg irv = STRTOG_Normal | STRTOG_Inexlo; *exp = fpi->emax; b = bits; - be = b + (fpi->nbits >> 5) + 1; + be = b + ((fpi->nbits + 31) >> 5); while(b < be) *b++ = -1; if ((j = fpi->nbits & 0x1f)) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901281851.n0SIpCLO029158>