Date: Tue, 2 Aug 2011 08:31:23 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r224599 - in user/adrian/if_ath_tx: cddl/contrib/opensolaris/cmd/ztest cddl/contrib/opensolaris/lib/libzfs/common contrib/bsnmp/snmp_usm contrib/gcc/cp etc/rc.d lib/libmemstat lib/libus... Message-ID: <201108020831.p728VNlH036542@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: adrian Date: Tue Aug 2 08:31:23 2011 New Revision: 224599 URL: http://svn.freebsd.org/changeset/base/224599 Log: MFC Added: user/adrian/if_ath_tx/tools/tools/ath/athradar/ - copied from r224594, head/tools/tools/ath/athradar/ Modified: user/adrian/if_ath_tx/cddl/contrib/opensolaris/cmd/ztest/ztest.c user/adrian/if_ath_tx/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c user/adrian/if_ath_tx/contrib/bsnmp/snmp_usm/snmp_usm.3 user/adrian/if_ath_tx/contrib/gcc/cp/ChangeLog user/adrian/if_ath_tx/contrib/gcc/cp/decl.c user/adrian/if_ath_tx/etc/rc.d/kld user/adrian/if_ath_tx/lib/libmemstat/libmemstat.3 user/adrian/if_ath_tx/lib/libmemstat/memstat.c user/adrian/if_ath_tx/lib/libmemstat/memstat.h user/adrian/if_ath_tx/lib/libmemstat/memstat_internal.h user/adrian/if_ath_tx/lib/libmemstat/memstat_malloc.c user/adrian/if_ath_tx/lib/libmemstat/memstat_uma.c user/adrian/if_ath_tx/lib/libusbhid/parse.c user/adrian/if_ath_tx/libexec/tftpd/tftp-transfer.c user/adrian/if_ath_tx/libexec/tftpd/tftpd.8 user/adrian/if_ath_tx/release/amd64/make-memstick.sh user/adrian/if_ath_tx/release/doc/en_US.ISO8859-1/hardware/article.sgml user/adrian/if_ath_tx/release/i386/make-memstick.sh user/adrian/if_ath_tx/release/powerpc/make-memstick.sh user/adrian/if_ath_tx/sbin/mount/mount.c user/adrian/if_ath_tx/share/man/man4/dc.4 user/adrian/if_ath_tx/share/man/man4/gif.4 user/adrian/if_ath_tx/share/man/man4/hptiop.4 user/adrian/if_ath_tx/share/man/man4/lmc.4 user/adrian/if_ath_tx/share/man/man4/mpt.4 user/adrian/if_ath_tx/share/man/man4/pcm.4 user/adrian/if_ath_tx/share/man/man4/rue.4 user/adrian/if_ath_tx/share/man/man4/smp.4 user/adrian/if_ath_tx/share/man/man4/stf.4 user/adrian/if_ath_tx/share/man/man4/wi.4 user/adrian/if_ath_tx/share/man/man5/reiserfs.5 user/adrian/if_ath_tx/share/man/man8/crash.8 user/adrian/if_ath_tx/share/man/man9/taskqueue.9 user/adrian/if_ath_tx/share/man/man9/vfs_getopt.9 user/adrian/if_ath_tx/sys/amd64/amd64/machdep.c user/adrian/if_ath_tx/sys/boot/forth/loader.conf user/adrian/if_ath_tx/sys/cam/ata/ata_da.c user/adrian/if_ath_tx/sys/cam/cam_periph.c user/adrian/if_ath_tx/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c user/adrian/if_ath_tx/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c user/adrian/if_ath_tx/sys/compat/linprocfs/linprocfs.c user/adrian/if_ath_tx/sys/conf/NOTES user/adrian/if_ath_tx/sys/conf/newvers.sh user/adrian/if_ath_tx/sys/conf/options user/adrian/if_ath_tx/sys/dev/ahci/ahci.c user/adrian/if_ath_tx/sys/dev/ahci/ahci.h user/adrian/if_ath_tx/sys/dev/ata/ata-pci.c user/adrian/if_ath_tx/sys/dev/ata/ata-pci.h user/adrian/if_ath_tx/sys/dev/ata/chipsets/ata-acard.c user/adrian/if_ath_tx/sys/dev/ata/chipsets/ata-acerlabs.c user/adrian/if_ath_tx/sys/dev/ata/chipsets/ata-intel.c user/adrian/if_ath_tx/sys/dev/ata/chipsets/ata-promise.c user/adrian/if_ath_tx/sys/dev/ath/ath_dfs/null/dfs_null.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah.h user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah_desc.h user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah_eeprom.h user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah_eeprom_9287.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah_eeprom_v14.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah_eeprom_v14.h user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ah_eeprom_v4k.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416.h user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar5416/ar5416_recv.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar9002/ar9280.c user/adrian/if_ath_tx/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c user/adrian/if_ath_tx/sys/dev/ath/if_ath.c user/adrian/if_ath_tx/sys/dev/ath/if_ath_sysctl.c user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h user/adrian/if_ath_tx/sys/dev/hptiop/hptiop.c user/adrian/if_ath_tx/sys/dev/mpt/mpt.c user/adrian/if_ath_tx/sys/dev/mpt/mpt.h user/adrian/if_ath_tx/sys/dev/mpt/mpt_cam.c user/adrian/if_ath_tx/sys/dev/mpt/mpt_debug.c user/adrian/if_ath_tx/sys/dev/mpt/mpt_pci.c user/adrian/if_ath_tx/sys/dev/mpt/mpt_raid.c user/adrian/if_ath_tx/sys/dev/mpt/mpt_raid.h user/adrian/if_ath_tx/sys/dev/mpt/mpt_user.c user/adrian/if_ath_tx/sys/dev/pci/pci.c user/adrian/if_ath_tx/sys/dev/re/if_re.c user/adrian/if_ath_tx/sys/dev/usb/input/ums.c user/adrian/if_ath_tx/sys/fs/cd9660/iso.h user/adrian/if_ath_tx/sys/fs/msdosfs/msdosfsmount.h user/adrian/if_ath_tx/sys/fs/nfsclient/nfs_clvnops.c user/adrian/if_ath_tx/sys/fs/nfsserver/nfs_nfsdserv.c user/adrian/if_ath_tx/sys/fs/ntfs/ntfs.h user/adrian/if_ath_tx/sys/fs/smbfs/smbfs.h user/adrian/if_ath_tx/sys/i386/i386/machdep.c user/adrian/if_ath_tx/sys/kern/kern_conf.c user/adrian/if_ath_tx/sys/kern/kern_jail.c user/adrian/if_ath_tx/sys/kern/kern_linker.c user/adrian/if_ath_tx/sys/kern/kern_lock.c user/adrian/if_ath_tx/sys/kern/kern_shutdown.c user/adrian/if_ath_tx/sys/kern/subr_smp.c user/adrian/if_ath_tx/sys/kern/sys_capability.c user/adrian/if_ath_tx/sys/kern/vfs_mount.c user/adrian/if_ath_tx/sys/kern/vfs_subr.c user/adrian/if_ath_tx/sys/net/if_lagg.c user/adrian/if_ath_tx/sys/netgraph/ng_ether.c user/adrian/if_ath_tx/sys/netgraph/ng_mppc.c user/adrian/if_ath_tx/sys/netgraph/ng_parse.c user/adrian/if_ath_tx/sys/netinet/ip_divert.c user/adrian/if_ath_tx/sys/pc98/pc98/machdep.c user/adrian/if_ath_tx/sys/pci/if_rlreg.h user/adrian/if_ath_tx/sys/powerpc/aim/locore32.S user/adrian/if_ath_tx/sys/powerpc/booke/locore.S user/adrian/if_ath_tx/sys/powerpc/conf/MPC85XX user/adrian/if_ath_tx/sys/powerpc/mpc85xx/atpic.c user/adrian/if_ath_tx/sys/powerpc/powermac/fcu.c user/adrian/if_ath_tx/sys/sys/mount.h user/adrian/if_ath_tx/sys/sys/systm.h user/adrian/if_ath_tx/sys/ufs/ffs/ffs_alloc.c user/adrian/if_ath_tx/sys/ufs/ffs/ffs_softdep.c user/adrian/if_ath_tx/sys/ufs/ffs/ffs_vfsops.c user/adrian/if_ath_tx/sys/ufs/ffs/ffs_vnops.c user/adrian/if_ath_tx/sys/ufs/ufs/inode.h user/adrian/if_ath_tx/sys/vm/device_pager.c user/adrian/if_ath_tx/sys/vm/swap_pager.c user/adrian/if_ath_tx/sys/vm/swap_pager.h user/adrian/if_ath_tx/tools/tools/ath/Makefile user/adrian/if_ath_tx/tools/tools/sysdoc/tunables.mdoc user/adrian/if_ath_tx/usr.bin/cpio/Makefile user/adrian/if_ath_tx/usr.bin/netstat/sctp.c user/adrian/if_ath_tx/usr.bin/tar/Makefile user/adrian/if_ath_tx/usr.bin/unzip/unzip.1 user/adrian/if_ath_tx/usr.bin/usbhidaction/usbhidaction.c user/adrian/if_ath_tx/usr.bin/usbhidctl/usbhid.c user/adrian/if_ath_tx/usr.sbin/bsdinstall/scripts/netconfig_ipv4 user/adrian/if_ath_tx/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.1 user/adrian/if_ath_tx/usr.sbin/faithd/faithd.8 user/adrian/if_ath_tx/usr.sbin/jail/jail.8 user/adrian/if_ath_tx/usr.sbin/mfiutil/mfi_show.c user/adrian/if_ath_tx/usr.sbin/pw/pw_user.c Directory Properties: user/adrian/if_ath_tx/ (props changed) user/adrian/if_ath_tx/cddl/contrib/opensolaris/ (props changed) user/adrian/if_ath_tx/contrib/compiler-rt/ (props changed) user/adrian/if_ath_tx/contrib/ee/ (props changed) user/adrian/if_ath_tx/contrib/expat/ (props changed) user/adrian/if_ath_tx/contrib/file/ (props changed) user/adrian/if_ath_tx/contrib/gdb/ (props changed) user/adrian/if_ath_tx/contrib/gnu-sort/ (props changed) user/adrian/if_ath_tx/contrib/groff/ (props changed) user/adrian/if_ath_tx/contrib/less/ (props changed) user/adrian/if_ath_tx/contrib/libpcap/ (props changed) user/adrian/if_ath_tx/contrib/ncurses/ (props changed) user/adrian/if_ath_tx/contrib/one-true-awk/ (props changed) user/adrian/if_ath_tx/contrib/openbsm/ (props changed) user/adrian/if_ath_tx/contrib/openpam/ (props changed) user/adrian/if_ath_tx/contrib/pf/ (props changed) user/adrian/if_ath_tx/contrib/tcpdump/ (props changed) user/adrian/if_ath_tx/contrib/tcsh/ (props changed) user/adrian/if_ath_tx/contrib/tnftp/ (props changed) user/adrian/if_ath_tx/contrib/tzcode/stdtime/ (props changed) user/adrian/if_ath_tx/contrib/tzcode/zic/ (props changed) user/adrian/if_ath_tx/contrib/tzdata/ (props changed) user/adrian/if_ath_tx/contrib/wpa/ (props changed) user/adrian/if_ath_tx/lib/libutil/ (props changed) user/adrian/if_ath_tx/lib/libz/ (props changed) user/adrian/if_ath_tx/sbin/ (props changed) user/adrian/if_ath_tx/sbin/ipfw/ (props changed) user/adrian/if_ath_tx/share/mk/bsd.arch.inc.mk (props changed) user/adrian/if_ath_tx/sys/contrib/dev/acpica/ (props changed) user/adrian/if_ath_tx/usr.bin/csup/ (props changed) user/adrian/if_ath_tx/usr.bin/procstat/ (props changed) user/adrian/if_ath_tx/usr.sbin/rtadvctl/ (props changed) user/adrian/if_ath_tx/usr.sbin/rtadvd/ (props changed) Modified: user/adrian/if_ath_tx/cddl/contrib/opensolaris/cmd/ztest/ztest.c ============================================================================== --- user/adrian/if_ath_tx/cddl/contrib/opensolaris/cmd/ztest/ztest.c Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/cddl/contrib/opensolaris/cmd/ztest/ztest.c Tue Aug 2 08:31:23 2011 (r224599) @@ -205,6 +205,7 @@ typedef struct ztest_od { */ typedef struct ztest_ds { objset_t *zd_os; + rwlock_t zd_zilog_lock; zilog_t *zd_zilog; uint64_t zd_seq; ztest_od_t *zd_od; /* debugging aid */ @@ -238,6 +239,7 @@ ztest_func_t ztest_dmu_commit_callbacks; ztest_func_t ztest_zap; ztest_func_t ztest_zap_parallel; ztest_func_t ztest_zil_commit; +ztest_func_t ztest_zil_remount; ztest_func_t ztest_dmu_read_write_zcopy; ztest_func_t ztest_dmu_objset_create_destroy; ztest_func_t ztest_dmu_prealloc; @@ -273,6 +275,7 @@ ztest_info_t ztest_info[] = { { ztest_zap_parallel, 100, &zopt_always }, { ztest_split_pool, 1, &zopt_always }, { ztest_zil_commit, 1, &zopt_incessant }, + { ztest_zil_remount, 1, &zopt_sometimes }, { ztest_dmu_read_write_zcopy, 1, &zopt_often }, { ztest_dmu_objset_create_destroy, 1, &zopt_often }, { ztest_dsl_prop_get_set, 1, &zopt_often }, @@ -986,6 +989,7 @@ ztest_zd_init(ztest_ds_t *zd, objset_t * zd->zd_seq = 0; dmu_objset_name(os, zd->zd_name); + VERIFY(rwlock_init(&zd->zd_zilog_lock, USYNC_THREAD, NULL) == 0); VERIFY(_mutex_init(&zd->zd_dirobj_lock, USYNC_THREAD, NULL) == 0); for (int l = 0; l < ZTEST_OBJECT_LOCKS; l++) @@ -1965,6 +1969,8 @@ ztest_io(ztest_ds_t *zd, uint64_t object if (ztest_random(2) == 0) io_type = ZTEST_IO_WRITE_TAG; + (void) rw_rdlock(&zd->zd_zilog_lock); + switch (io_type) { case ZTEST_IO_WRITE_TAG: @@ -2000,6 +2006,8 @@ ztest_io(ztest_ds_t *zd, uint64_t object break; } + (void) rw_unlock(&zd->zd_zilog_lock); + umem_free(data, blocksize); } @@ -2054,6 +2062,8 @@ ztest_zil_commit(ztest_ds_t *zd, uint64_ { zilog_t *zilog = zd->zd_zilog; + (void) rw_rdlock(&zd->zd_zilog_lock); + zil_commit(zilog, ztest_random(ZTEST_OBJECTS)); /* @@ -2065,6 +2075,31 @@ ztest_zil_commit(ztest_ds_t *zd, uint64_ ASSERT(zd->zd_seq <= zilog->zl_commit_lr_seq); zd->zd_seq = zilog->zl_commit_lr_seq; mutex_exit(&zilog->zl_lock); + + (void) rw_unlock(&zd->zd_zilog_lock); +} + +/* + * This function is designed to simulate the operations that occur during a + * mount/unmount operation. We hold the dataset across these operations in an + * attempt to expose any implicit assumptions about ZIL management. + */ +/* ARGSUSED */ +void +ztest_zil_remount(ztest_ds_t *zd, uint64_t id) +{ + objset_t *os = zd->zd_os; + + (void) rw_wrlock(&zd->zd_zilog_lock); + + /* zfsvfs_teardown() */ + zil_close(zd->zd_zilog); + + /* zfsvfs_setup() */ + VERIFY(zil_open(os, ztest_get_data) == zd->zd_zilog); + zil_replay(os, zd, ztest_replay_vector); + + (void) rw_unlock(&zd->zd_zilog_lock); } /* Modified: user/adrian/if_ath_tx/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c ============================================================================== --- user/adrian/if_ath_tx/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c Tue Aug 2 08:31:23 2011 (r224599) @@ -4289,7 +4289,8 @@ zfs_jail(zfs_handle_t *zhp, int jailid, libzfs_handle_t *hdl = zhp->zfs_hdl; zfs_cmd_t zc = { 0 }; char errbuf[1024]; - int cmd, ret; + unsigned long cmd; + int ret; if (attach) { (void) snprintf(errbuf, sizeof (errbuf), Modified: user/adrian/if_ath_tx/contrib/bsnmp/snmp_usm/snmp_usm.3 ============================================================================== --- user/adrian/if_ath_tx/contrib/bsnmp/snmp_usm/snmp_usm.3 Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/contrib/bsnmp/snmp_usm/snmp_usm.3 Tue Aug 2 08:31:23 2011 (r224599) @@ -115,7 +115,7 @@ allowed. This column is used to create new USM user entries or delete existing ones from the table. .El -.EL +.El .Sh FILES .Bl -tag -width "XXXXXXXXX" .It Pa /usr/share/snmp/defs/usm_tree.def Modified: user/adrian/if_ath_tx/contrib/gcc/cp/ChangeLog ============================================================================== --- user/adrian/if_ath_tx/contrib/gcc/cp/ChangeLog Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/contrib/gcc/cp/ChangeLog Tue Aug 2 08:31:23 2011 (r224599) @@ -1,3 +1,9 @@ +2007-09-29 Jason Merrill <jason@redhat.com> + + PR c++/33094 + * decl.c (make_rtl_for_nonlocal_decl): It's ok for a member + constant to not have DECL_EXTERNAL if it's file-local. + 2007-08-24 Jakub Jelinek <jakub@redhat.com> PR c++/31941 Modified: user/adrian/if_ath_tx/contrib/gcc/cp/decl.c ============================================================================== --- user/adrian/if_ath_tx/contrib/gcc/cp/decl.c Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/contrib/gcc/cp/decl.c Tue Aug 2 08:31:23 2011 (r224599) @@ -4968,7 +4968,7 @@ make_rtl_for_nonlocal_decl (tree decl, t /* An in-class declaration of a static data member should be external; it is only a declaration, and not a definition. */ if (init == NULL_TREE) - gcc_assert (DECL_EXTERNAL (decl)); + gcc_assert (DECL_EXTERNAL (decl) || !TREE_PUBLIC (decl)); } /* We don't create any RTL for local variables. */ Modified: user/adrian/if_ath_tx/etc/rc.d/kld ============================================================================== --- user/adrian/if_ath_tx/etc/rc.d/kld Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/etc/rc.d/kld Tue Aug 2 08:31:23 2011 (r224599) @@ -41,24 +41,11 @@ kld_start() { [ -n "$kld_list" ] || return - local _kernel_path _module_path _kld _path - - _kernel_path=`$SYSCTL_N kern.bootfile` - _kernel_path="${_kernel_path%/*}" - - _module_path=`$SYSCTL_N kern.module_path` - _module_path="${_module_path#*\;}" - _module_path="$_kernel_path `ltr $_module_path \; ' '`" + local _kld echo 'Loading kernel modules:' for _kld in $kld_list ; do - for _path in $_module_path ; do - if [ -x "${_path}/${_kld}.ko" ]; then - load_kld -e ${_kld}.ko ${_path}/${_kld}.ko - continue 2 - fi - done - warn "${_kld}.ko not found in $_module_path" + load_kld -e ${_kld}.ko $_kld done } Modified: user/adrian/if_ath_tx/lib/libmemstat/libmemstat.3 ============================================================================== --- user/adrian/if_ath_tx/lib/libmemstat/libmemstat.3 Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/lib/libmemstat/libmemstat.3 Tue Aug 2 08:31:23 2011 (r224599) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 27, 2005 +.Dd July 21, 2011 .Dt LIBMEMSTAT 3 .Os .Sh NAME @@ -412,10 +412,6 @@ values of .Er EACCES or .Er EPERM . -.It Dv MEMSTAT_ERROR_TOOMANYCPUS -Returned if the compile-time limit on the number of CPUs in -.Nm -is lower than the number of CPUs returned by a statistics data source. .It Dv MEMSTAT_ERROR_DATAERROR Returned if .Nm Modified: user/adrian/if_ath_tx/lib/libmemstat/memstat.c ============================================================================== --- user/adrian/if_ath_tx/lib/libmemstat/memstat.c Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/lib/libmemstat/memstat.c Tue Aug 2 08:31:23 2011 (r224599) @@ -49,8 +49,6 @@ memstat_strerror(int error) return ("Version mismatch"); case MEMSTAT_ERROR_PERMISSION: return ("Permission denied"); - case MEMSTAT_ERROR_TOOMANYCPUS: - return ("Too many CPUs"); case MEMSTAT_ERROR_DATAERROR: return ("Data format error"); case MEMSTAT_ERROR_KVM: @@ -99,6 +97,8 @@ _memstat_mtl_empty(struct memory_type_li struct memory_type *mtp; while ((mtp = LIST_FIRST(&list->mtl_list))) { + free(mtp->mt_percpu_alloc); + free(mtp->mt_percpu_cache); LIST_REMOVE(mtp, mt_list); free(mtp); } @@ -147,7 +147,7 @@ memstat_mtl_find(struct memory_type_list */ struct memory_type * _memstat_mt_allocate(struct memory_type_list *list, int allocator, - const char *name) + const char *name, int maxcpus) { struct memory_type *mtp; @@ -158,6 +158,10 @@ _memstat_mt_allocate(struct memory_type_ bzero(mtp, sizeof(*mtp)); mtp->mt_allocator = allocator; + mtp->mt_percpu_alloc = malloc(sizeof(struct mt_percpu_alloc_s) * + maxcpus); + mtp->mt_percpu_cache = malloc(sizeof(struct mt_percpu_cache_s) * + maxcpus); strlcpy(mtp->mt_name, name, MEMTYPE_MAXNAME); LIST_INSERT_HEAD(&list->mtl_list, mtp, mt_list); return (mtp); @@ -171,7 +175,7 @@ _memstat_mt_allocate(struct memory_type_ * libmemstat(3) internal function. */ void -_memstat_mt_reset_stats(struct memory_type *mtp) +_memstat_mt_reset_stats(struct memory_type *mtp, int maxcpus) { int i; @@ -193,7 +197,7 @@ _memstat_mt_reset_stats(struct memory_ty mtp->mt_zonefree = 0; mtp->mt_kegfree = 0; - for (i = 0; i < MEMSTAT_MAXCPU; i++) { + for (i = 0; i < maxcpus; i++) { mtp->mt_percpu_alloc[i].mtp_memalloced = 0; mtp->mt_percpu_alloc[i].mtp_memfreed = 0; mtp->mt_percpu_alloc[i].mtp_numallocs = 0; Modified: user/adrian/if_ath_tx/lib/libmemstat/memstat.h ============================================================================== --- user/adrian/if_ath_tx/lib/libmemstat/memstat.h Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/lib/libmemstat/memstat.h Tue Aug 2 08:31:23 2011 (r224599) @@ -30,12 +30,6 @@ #define _MEMSTAT_H_ /* - * Number of CPU slots in library-internal data structures. This should be - * at least the value of MAXCPU from param.h. - */ -#define MEMSTAT_MAXCPU 32 - -/* * Amount of caller data to maintain for each caller data slot. Applications * must not request more than this number of caller save data, or risk * corrupting internal libmemstat(3) data structures. A compile time check @@ -70,7 +64,6 @@ #define MEMSTAT_ERROR_NOMEMORY 1 /* Out of memory. */ #define MEMSTAT_ERROR_VERSION 2 /* Unsupported version. */ #define MEMSTAT_ERROR_PERMISSION 3 /* Permission denied. */ -#define MEMSTAT_ERROR_TOOMANYCPUS 4 /* Too many CPUs. */ #define MEMSTAT_ERROR_DATAERROR 5 /* Error in stat data. */ #define MEMSTAT_ERROR_KVM 6 /* See kvm_geterr() for err. */ #define MEMSTAT_ERROR_KVM_NOSYMBOL 7 /* Symbol not available. */ Modified: user/adrian/if_ath_tx/lib/libmemstat/memstat_internal.h ============================================================================== --- user/adrian/if_ath_tx/lib/libmemstat/memstat_internal.h Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/lib/libmemstat/memstat_internal.h Tue Aug 2 08:31:23 2011 (r224599) @@ -92,7 +92,7 @@ struct memory_type { * Per-CPU measurements fall into two categories: per-CPU allocation, * and per-CPU cache state. */ - struct { + struct mt_percpu_alloc_s { uint64_t mtp_memalloced;/* Per-CPU mt_memalloced. */ uint64_t mtp_memfreed; /* Per-CPU mt_memfreed. */ uint64_t mtp_numallocs; /* Per-CPU mt_numallocs. */ @@ -100,11 +100,11 @@ struct memory_type { uint64_t mtp_sizemask; /* Per-CPU mt_sizemask. */ void *mtp_caller_pointer[MEMSTAT_MAXCALLER]; uint64_t mtp_caller_uint64[MEMSTAT_MAXCALLER]; - } mt_percpu_alloc[MEMSTAT_MAXCPU]; + } *mt_percpu_alloc; - struct { + struct mt_percpu_cache_s { uint64_t mtp_free; /* Per-CPU cache free items. */ - } mt_percpu_cache[MEMSTAT_MAXCPU]; + } *mt_percpu_cache; LIST_ENTRY(memory_type) mt_list; /* List of types. */ }; @@ -119,7 +119,8 @@ struct memory_type_list { void _memstat_mtl_empty(struct memory_type_list *list); struct memory_type *_memstat_mt_allocate(struct memory_type_list *list, - int allocator, const char *name); -void _memstat_mt_reset_stats(struct memory_type *mtp); + int allocator, const char *name, int maxcpus); +void _memstat_mt_reset_stats(struct memory_type *mtp, + int maxcpus); #endif /* !_MEMSTAT_INTERNAL_H_ */ Modified: user/adrian/if_ath_tx/lib/libmemstat/memstat_malloc.c ============================================================================== --- user/adrian/if_ath_tx/lib/libmemstat/memstat_malloc.c Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/lib/libmemstat/memstat_malloc.c Tue Aug 2 08:31:23 2011 (r224599) @@ -96,11 +96,6 @@ retry: return (-1); } - if (maxcpus > MEMSTAT_MAXCPU) { - list->mtl_error = MEMSTAT_ERROR_TOOMANYCPUS; - return (-1); - } - size = sizeof(count); if (sysctlbyname("kern.malloc_count", &count, &size, NULL, 0) < 0) { if (errno == EACCES || errno == EPERM) @@ -160,12 +155,6 @@ retry: return (-1); } - if (mtshp->mtsh_maxcpus > MEMSTAT_MAXCPU) { - list->mtl_error = MEMSTAT_ERROR_TOOMANYCPUS; - free(buffer); - return (-1); - } - /* * For the remainder of this function, we are quite trusting about * the layout of structures and sizes, since we've determined we have @@ -184,7 +173,7 @@ retry: mtp = NULL; if (mtp == NULL) mtp = _memstat_mt_allocate(list, ALLOCATOR_MALLOC, - mthp->mth_name); + mthp->mth_name, maxcpus); if (mtp == NULL) { _memstat_mtl_empty(list); free(buffer); @@ -195,7 +184,7 @@ retry: /* * Reset the statistics on a current node. */ - _memstat_mt_reset_stats(mtp); + _memstat_mt_reset_stats(mtp, maxcpus); for (j = 0; j < maxcpus; j++) { mtsp = (struct malloc_type_stats *)p; @@ -295,7 +284,7 @@ memstat_kvm_malloc(struct memory_type_li void *kmemstatistics; int hint_dontsearch, j, mp_maxcpus, ret; char name[MEMTYPE_MAXNAME]; - struct malloc_type_stats mts[MEMSTAT_MAXCPU], *mtsp; + struct malloc_type_stats *mts, *mtsp; struct malloc_type_internal *mtip; struct malloc_type type, *typep; kvm_t *kvm; @@ -322,11 +311,6 @@ memstat_kvm_malloc(struct memory_type_li return (-1); } - if (mp_maxcpus > MEMSTAT_MAXCPU) { - list->mtl_error = MEMSTAT_ERROR_TOOMANYCPUS; - return (-1); - } - ret = kread_symbol(kvm, X_KMEMSTATISTICS, &kmemstatistics, sizeof(kmemstatistics), 0); if (ret != 0) { @@ -334,10 +318,17 @@ memstat_kvm_malloc(struct memory_type_li return (-1); } + mts = malloc(sizeof(struct malloc_type_stats) * mp_maxcpus); + if (mts == NULL) { + list->mtl_error = MEMSTAT_ERROR_NOMEMORY; + return (-1); + } + for (typep = kmemstatistics; typep != NULL; typep = type.ks_next) { ret = kread(kvm, typep, &type, sizeof(type), 0); if (ret != 0) { _memstat_mtl_empty(list); + free(mts); list->mtl_error = ret; return (-1); } @@ -345,6 +336,7 @@ memstat_kvm_malloc(struct memory_type_li MEMTYPE_MAXNAME); if (ret != 0) { _memstat_mtl_empty(list); + free(mts); list->mtl_error = ret; return (-1); } @@ -358,6 +350,7 @@ memstat_kvm_malloc(struct memory_type_li sizeof(struct malloc_type_stats), 0); if (ret != 0) { _memstat_mtl_empty(list); + free(mts); list->mtl_error = ret; return (-1); } @@ -368,9 +361,10 @@ memstat_kvm_malloc(struct memory_type_li mtp = NULL; if (mtp == NULL) mtp = _memstat_mt_allocate(list, ALLOCATOR_MALLOC, - name); + name, mp_maxcpus); if (mtp == NULL) { _memstat_mtl_empty(list); + free(mts); list->mtl_error = MEMSTAT_ERROR_NOMEMORY; return (-1); } @@ -379,7 +373,7 @@ memstat_kvm_malloc(struct memory_type_li * This logic is replicated from kern_malloc.c, and should * be kept in sync. */ - _memstat_mt_reset_stats(mtp); + _memstat_mt_reset_stats(mtp, mp_maxcpus); for (j = 0; j < mp_maxcpus; j++) { mtsp = &mts[j]; mtp->mt_memalloced += mtsp->mts_memalloced; Modified: user/adrian/if_ath_tx/lib/libmemstat/memstat_uma.c ============================================================================== --- user/adrian/if_ath_tx/lib/libmemstat/memstat_uma.c Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/lib/libmemstat/memstat_uma.c Tue Aug 2 08:31:23 2011 (r224599) @@ -79,7 +79,7 @@ memstat_sysctl_uma(struct memory_type_li struct uma_type_header *uthp; struct uma_percpu_stat *upsp; struct memory_type *mtp; - int count, hint_dontsearch, i, j, maxcpus; + int count, hint_dontsearch, i, j, maxcpus, maxid; char *buffer, *p; size_t size; @@ -93,24 +93,19 @@ memstat_sysctl_uma(struct memory_type_li * from the header. */ retry: - size = sizeof(maxcpus); - if (sysctlbyname("kern.smp.maxcpus", &maxcpus, &size, NULL, 0) < 0) { + size = sizeof(maxid); + if (sysctlbyname("kern.smp.maxid", &maxid, &size, NULL, 0) < 0) { if (errno == EACCES || errno == EPERM) list->mtl_error = MEMSTAT_ERROR_PERMISSION; else list->mtl_error = MEMSTAT_ERROR_DATAERROR; return (-1); } - if (size != sizeof(maxcpus)) { + if (size != sizeof(maxid)) { list->mtl_error = MEMSTAT_ERROR_DATAERROR; return (-1); } - if (maxcpus > MEMSTAT_MAXCPU) { - list->mtl_error = MEMSTAT_ERROR_TOOMANYCPUS; - return (-1); - } - size = sizeof(count); if (sysctlbyname("vm.zone_count", &count, &size, NULL, 0) < 0) { if (errno == EACCES || errno == EPERM) @@ -125,7 +120,7 @@ retry: } size = sizeof(*uthp) + count * (sizeof(*uthp) + sizeof(*upsp) * - maxcpus); + (maxid + 1)); buffer = malloc(size); if (buffer == NULL) { @@ -170,12 +165,6 @@ retry: return (-1); } - if (ushp->ush_maxcpus > MEMSTAT_MAXCPU) { - list->mtl_error = MEMSTAT_ERROR_TOOMANYCPUS; - free(buffer); - return (-1); - } - /* * For the remainder of this function, we are quite trusting about * the layout of structures and sizes, since we've determined we have @@ -194,7 +183,7 @@ retry: mtp = NULL; if (mtp == NULL) mtp = _memstat_mt_allocate(list, ALLOCATOR_UMA, - uthp->uth_name); + uthp->uth_name, maxid + 1); if (mtp == NULL) { _memstat_mtl_empty(list); free(buffer); @@ -205,7 +194,7 @@ retry: /* * Reset the statistics on a current node. */ - _memstat_mt_reset_stats(mtp); + _memstat_mt_reset_stats(mtp, maxid + 1); mtp->mt_numallocs = uthp->uth_allocs; mtp->mt_numfrees = uthp->uth_frees; @@ -398,7 +387,7 @@ memstat_kvm_uma(struct memory_type_list mtp = NULL; if (mtp == NULL) mtp = _memstat_mt_allocate(list, ALLOCATOR_UMA, - name); + name, mp_maxid + 1); if (mtp == NULL) { free(ucp_array); _memstat_mtl_empty(list); @@ -408,7 +397,7 @@ memstat_kvm_uma(struct memory_type_list /* * Reset the statistics on a current node. */ - _memstat_mt_reset_stats(mtp); + _memstat_mt_reset_stats(mtp, mp_maxid + 1); mtp->mt_numallocs = uz.uz_allocs; mtp->mt_numfrees = uz.uz_frees; mtp->mt_failures = uz.uz_fails; Modified: user/adrian/if_ath_tx/lib/libusbhid/parse.c ============================================================================== --- user/adrian/if_ath_tx/lib/libusbhid/parse.c Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/lib/libusbhid/parse.c Tue Aug 2 08:31:23 2011 (r224599) @@ -322,6 +322,8 @@ hid_get_item(hid_data_t s, hid_item_t *h * one and one item: */ c->report_count = 1; + c->usage_minimum = 0; + c->usage_maximum = 0; } else { s->ncount = 1; } @@ -512,13 +514,14 @@ hid_report_size(report_desc_t r, enum hi uint32_t temp; uint32_t hpos; uint32_t lpos; + int report_id = 0; hpos = 0; lpos = 0xFFFFFFFF; memset(&h, 0, sizeof h); for (d = hid_start_parse(r, 1 << k, id); hid_get_item(d, &h); ) { - if (h.report_ID == id && h.kind == k) { + if ((h.report_ID == id || id < 0) && h.kind == k) { /* compute minimum */ if (lpos > h.pos) lpos = h.pos; @@ -527,6 +530,8 @@ hid_report_size(report_desc_t r, enum hi /* compute maximum */ if (hpos < temp) hpos = temp; + if (h.report_ID != 0) + report_id = 1; } } hid_end_parse(d); @@ -537,11 +542,8 @@ hid_report_size(report_desc_t r, enum hi else temp = hpos - lpos; - if (id) - temp += 8; - /* return length in bytes rounded up */ - return ((temp + 7) / 8); + return ((temp + 7) / 8 + report_id); } int Modified: user/adrian/if_ath_tx/libexec/tftpd/tftp-transfer.c ============================================================================== --- user/adrian/if_ath_tx/libexec/tftpd/tftp-transfer.c Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/libexec/tftpd/tftp-transfer.c Tue Aug 2 08:31:23 2011 (r224599) @@ -129,14 +129,16 @@ tftp_send(int peer, uint16_t *block, str (*block)++; if (oldblock > *block) { if (options[OPT_ROLLOVER].o_request == NULL) { - tftp_log(LOG_ERR, - "Block rollover but not allowed."); - send_error(peer, EBADOP); - gettimeofday(&(ts->tstop), NULL); - return; + /* + * "rollover" option not specified in + * tftp client. Default to rolling block + * counter to 0. + */ + *block = 0; + } else { + *block = atoi(options[OPT_ROLLOVER].o_request); } - *block = atoi(options[OPT_ROLLOVER].o_request); ts->rollovers++; } gettimeofday(&(ts->tstop), NULL); @@ -196,14 +198,16 @@ tftp_receive(int peer, uint16_t *block, (*block)++; if (oldblock > *block) { if (options[OPT_ROLLOVER].o_request == NULL) { - tftp_log(LOG_ERR, - "Block rollover but not allowed."); - send_error(peer, EBADOP); - gettimeofday(&(ts->tstop), NULL); - return; + /* + * "rollover" option not specified in + * tftp client. Default to rolling block + * counter to 0. + */ + *block = 0; + } else { + *block = atoi(options[OPT_ROLLOVER].o_request); } - *block = atoi(options[OPT_ROLLOVER].o_request); ts->rollovers++; } Modified: user/adrian/if_ath_tx/libexec/tftpd/tftpd.8 ============================================================================== --- user/adrian/if_ath_tx/libexec/tftpd/tftpd.8 Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/libexec/tftpd/tftpd.8 Tue Aug 2 08:31:23 2011 (r224599) @@ -300,8 +300,15 @@ and .Xr tftp 1 code to support RFC2348. .Sh NOTES -Files larger than 33488896 octets (65535 blocks) cannot be transferred -without client and server supporting the TFTP blocksize option (RFC2348), +Files larger than 33,553,919 octets (65535 blocks, last one <512 +octets) cannot be correctly transferred without client and server +supporting blocksize negotiation (RFCs 2347 and 2348), or the non-standard TFTP rollover option. +As a kludge, +.Nm +accepts a sequence of block number which wrap to zero after 65535, +even if the rollover option is not specified. .Pp -Many tftp clients will not transfer files over 16744448 octets (32767 blocks). +Many tftp clients will not transfer files over 16,776,703 octets +(32767 blocks), as they incorrectly count the block number using +a signed rather than unsigned 16-bit integer. Modified: user/adrian/if_ath_tx/release/amd64/make-memstick.sh ============================================================================== --- user/adrian/if_ath_tx/release/amd64/make-memstick.sh Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/release/amd64/make-memstick.sh Tue Aug 2 08:31:23 2011 (r224599) @@ -32,7 +32,7 @@ if [ -e ${2} ]; then exit 1 fi -echo '/dev/gpt/FreeBSD_Install / ufs rw,noatime 1 1' > ${1}/etc/fstab +echo '/dev/gpt/FreeBSD_Install / ufs ro,noatime 1 1' > ${1}/etc/fstab rm -f ${tempfile} makefs -B little ${tempfile} ${1} if [ $? -ne 0 ]; then Modified: user/adrian/if_ath_tx/release/doc/en_US.ISO8859-1/hardware/article.sgml ============================================================================== --- user/adrian/if_ath_tx/release/doc/en_US.ISO8859-1/hardware/article.sgml Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/release/doc/en_US.ISO8859-1/hardware/article.sgml Tue Aug 2 08:31:23 2011 (r224599) @@ -195,11 +195,9 @@ resources between logical processors within the same CPU. Because this naive scheduling can result in suboptimal performance, under certain circumstances it may be useful to - disable the logical processors with the the - <varname>machdep.hlt_logical_cpus</varname> sysctl variable. - It is also possible to halt any CPU in the idle loop with the - <varname>machdep.hlt_cpus</varname> sysctl variable. The - &man.smp.4; manual page has more details.</para> + disable the logical processors with the + <varname>machdep.hyperthreading_allowed</varname> tunable. + The &man.smp.4; manual page has more details.</para> <para>&os; will take advantage of Physical Address Extensions (PAE) support on CPUs that support this feature. A kernel Modified: user/adrian/if_ath_tx/release/i386/make-memstick.sh ============================================================================== --- user/adrian/if_ath_tx/release/i386/make-memstick.sh Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/release/i386/make-memstick.sh Tue Aug 2 08:31:23 2011 (r224599) @@ -32,7 +32,7 @@ if [ -e ${2} ]; then exit 1 fi -echo '/dev/gpt/FreeBSD_Install / ufs rw,noatime 1 1' > ${1}/etc/fstab +echo '/dev/gpt/FreeBSD_Install / ufs ro,noatime 1 1' > ${1}/etc/fstab rm -f ${tempfile} makefs -B little ${tempfile} ${1} if [ $? -ne 0 ]; then Modified: user/adrian/if_ath_tx/release/powerpc/make-memstick.sh ============================================================================== --- user/adrian/if_ath_tx/release/powerpc/make-memstick.sh Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/release/powerpc/make-memstick.sh Tue Aug 2 08:31:23 2011 (r224599) @@ -32,7 +32,7 @@ if [ -e ${2} ]; then exit 1 fi -echo '/dev/da0s3 / ufs rw,noatime 1 1' > ${1}/etc/fstab +echo '/dev/da0s3 / ufs ro,noatime 1 1' > ${1}/etc/fstab rm -f ${tempfile} makefs -B big ${tempfile} ${1} if [ $? -ne 0 ]; then Modified: user/adrian/if_ath_tx/sbin/mount/mount.c ============================================================================== --- user/adrian/if_ath_tx/sbin/mount/mount.c Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/sbin/mount/mount.c Tue Aug 2 08:31:23 2011 (r224599) @@ -109,6 +109,7 @@ static struct opt { { MNT_NOCLUSTERW, "noclusterw" }, { MNT_SUIDDIR, "suiddir" }, { MNT_SOFTDEP, "soft-updates" }, + { MNT_SUJ, "journaled soft-updates" }, { MNT_MULTILABEL, "multilabel" }, { MNT_ACLS, "acls" }, { MNT_NFS4ACLS, "nfsv4acls" }, Modified: user/adrian/if_ath_tx/share/man/man4/dc.4 ============================================================================== --- user/adrian/if_ath_tx/share/man/man4/dc.4 Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/share/man/man4/dc.4 Tue Aug 2 08:31:23 2011 (r224599) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 16, 2005 +.Dd July 23, 2011 .Dt DC 4 .Os .Sh NAME @@ -357,7 +357,7 @@ the card should be configured correctly. .Re .Rs .%T Davicom DM9102 data sheet -.%U http://www.davicom8.com +.%U http://www.davicom.com.tw/userfile/24247/DM9102H-DS-F01-021508.pdf .Re .Rs .%T Intel 21143 Hardware Reference Manual Modified: user/adrian/if_ath_tx/share/man/man4/gif.4 ============================================================================== --- user/adrian/if_ath_tx/share/man/man4/gif.4 Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/share/man/man4/gif.4 Tue Aug 2 08:31:23 2011 (r224599) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 8, 2009 +.Dd August 1, 2011 .Dt GIF 4 .Os .Sh NAME @@ -198,7 +198,7 @@ to 1. .%B RFC2893 .%T Transition Mechanisms for IPv6 Hosts and Routers .%D August 2000 -.%U ftp://ftp.isi.edu/in-notes/rfc2893.txt +.%U http://tools.ietf.org/html/rfc2893 .Re .Rs .%A Sally Floyd Modified: user/adrian/if_ath_tx/share/man/man4/hptiop.4 ============================================================================== --- user/adrian/if_ath_tx/share/man/man4/hptiop.4 Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/share/man/man4/hptiop.4 Tue Aug 2 08:31:23 2011 (r224599) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 12, 2007 +.Dd August 1, 2011 .Dt HPTIOP 4 .Os .Sh NAME @@ -60,6 +60,10 @@ driver supports the following SAS and SA .It HighPoint RocketRAID 4320 .It +HighPoint RocketRAID 4321 +.It +HighPoint RocketRAID 4322 +.It HighPoint RocketRAID 3220 .It HighPoint RocketRAID 3320 Modified: user/adrian/if_ath_tx/share/man/man4/lmc.4 ============================================================================== --- user/adrian/if_ath_tx/share/man/man4/lmc.4 Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/share/man/man4/lmc.4 Tue Aug 2 08:31:23 2011 (r224599) @@ -43,7 +43,7 @@ .\" this program; if not, write to the Free Software Foundation, Inc., 59 .\" Temple Place - Suite 330, Boston, MA 02111-1307, USA. .\" -.Dd May 20, 2006 +.Dd July 23, 2011 .Dt LMC 4 .Os .\" @@ -723,8 +723,6 @@ Thus, cable length does not affect data/ .Xr ngctl 8 , .Xr ping 8 , .Xr ifnet 9 -.Pp -.Pa http://www.sbei.com/ .\" .Sh HISTORY .\" Modified: user/adrian/if_ath_tx/share/man/man4/mpt.4 ============================================================================== --- user/adrian/if_ath_tx/share/man/man4/mpt.4 Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/share/man/man4/mpt.4 Tue Aug 2 08:31:23 2011 (r224599) @@ -35,7 +35,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 13, 2010 +.Dd July 23, 2011 .Dt MPT 4 .Os .Sh NAME @@ -161,7 +161,7 @@ can take on - no separate compilation is .Xr gmultipath 8 .Rs .%T "LSI Logic Website" -.%U http://www.lsilogic.com/ +.%U http://www.lsi.com/ .Re .Sh HISTORY The Modified: user/adrian/if_ath_tx/share/man/man4/pcm.4 ============================================================================== --- user/adrian/if_ath_tx/share/man/man4/pcm.4 Tue Aug 2 08:09:12 2011 (r224598) +++ user/adrian/if_ath_tx/share/man/man4/pcm.4 Tue Aug 2 08:31:23 2011 (r224599) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1998, Luigi Rizzo +.\" Copyright (c) 2009-2011 Joel Dahl <joel@FreeBSD.org> .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 13, 2009 +.Dd July 31, 2011 .Dt SOUND 4 .Os .Sh NAME @@ -41,7 +41,122 @@ kernel configuration file: .Bd -ragged -offset indent .Cd "device sound" .Ed +.Sh DESCRIPTION +The +.Nm +driver is the main component of the +.Fx +sound system. +It works in conjunction with a bridge device driver on supported devices +and provides PCM audio record and playback once it attaches. +Each bridge device driver supports a specific set of audio chipsets and +needs to be enabled together with the +.Nm +driver. +PCI and ISA PnP audio devices identify themselves so users are usually not +required to add anything to +.Pa /boot/device.hints . +.Pp +Some of the main features of the +.Nm +driver are: multichannel audio, per-application +volume control, dynamic mixing through virtual sound channels, true full +duplex operation, bit perfect audio, rate conversion and low latency +modes. +.Pp +The +.Nm +driver is enabled by default, along with several bridge device drivers. +Those not enabled by default can be loaded during runtime with +.Xr kldload 8 +or during boot via +.Xr loader.conf 5 . +The following bridge device drivers are available: +.Pp +.Bl -bullet -compact +.It +.Xr snd_ad1816 4 +.It +.Xr snd_ai2s 4 (enabled by default on powerpc) +.It +.Xr snd_als4000 4 +.It +.Xr snd_atiixp 4 +.It +.Xr snd_audiocs 4 (enabled by default on sparc64) +.It +.Xr snd_cmi 4 +.It +.Xr snd_cs4281 4 +.It +.Xr snd_csa 4 +.It +.Xr snd_davbus 4 (enabled by default on powerpc) +.It +.Xr snd_ds1 4 +.It +.Xr snd_emu10k1 4 +.It +.Xr snd_emu10kx 4 +.It +.Xr snd_envy24 4 +.It +.Xr snd_envy24ht 4 +.It +.Xr snd_es137x 4 (enabled by default on amd64, i386, sparc64) +.It +.Xr snd_ess 4 +.It +.Xr snd_fm801 4 +.It +.Xr snd_gusc 4 +.It +.Xr snd_hda 4 (enabled by default on amd64, i386) +.It +.Xr snd_ich 4 (enabled by default on amd64, i386) +.It +.Xr snd_maestro 4 +.It +.Xr snd_maestro3 4 +.It +.Xr snd_mss 4 +.It +.Xr snd_neomagic 4 +.It +snd_sb16 +.It +snd_sb8 +.It +.Xr snd_sbc 4 +.It +.Xr snd_solo 4 +.It +.Xr snd_spicds 4 +.It +.Xr snd_t4dwave 4 (enabled by default on sparc64) +.It +.Xr snd_uaudio 4 (enabled by default on amd64, i386, powerpc, sparc64) +.It +.Xr snd_via8233 4 (enabled by default on amd64, i386) +.It +.Xr snd_via82c686 4 +.It +.Xr snd_vibes 4 +.El .Pp +Refer to the manual page for each bridge device driver for driver specific +settings and information. +.Ss Legacy Hardware +For old legacy +.Tn ISA +cards, the driver looks for +.Tn MSS +cards at addresses +.Dv 0x530 +and +.Dv 0x604 . +These values can be overridden in +.Pa /boot/device.hints . Non-PnP sound cards require the following lines in .Xr device.hints 5 : .Bd -literal -offset indent @@ -50,33 +165,6 @@ hint.pcm.0.irq="5" hint.pcm.0.drq="1" hint.pcm.0.flags="0x0" .Ed -.Sh DESCRIPTION -The -.Nm -driver provides support for -.Tn PCM -audio play and capture. -This driver also supports various -.Tn PCI , -.Tn ISA , -.Tn WSS/MSS -compatible -sound cards, AC97 mixer and High Definition Audio. -Once the -.Nm -driver attaches, supported devices provide audio record and -playback channels. -The -.Fx -sound system provides dynamic mixing -.Dq VCHAN -and rate conversion -.Dq soft formats . -True full duplex operation is available on most sound cards. -.Pp -If the sound card is supported by a bridge driver, the -.Nm -driver works in conjunction with the bridge driver. .Pp Apart from the usual parameters, the flags field is used to specify the secondary @@ -85,24 +173,6 @@ channel (generally used for capture in f Flags are set to 0 for cards not using a secondary .Tn DMA channel, or to 0x10 + C to specify channel C. -.Pp -The driver does its best to recognize the installed hardware and drive -it correctly so the user is not required to add several lines in -.Pa /boot/device.hints . -For -.Tn PCI -and -.Tn ISA -.Tn PnP -cards this is actually easy -since they identify themselves. -For legacy -.Tn ISA -cards, the driver looks for -.Tn MSS *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201108020831.p728VNlH036542>