freebsd-skq/sys/modules
Ariff Abdullah bba4862c64 Last major commit and updates for RELENG_7:
- Rework the entire pcm_channel structure:
  * Remove rarely used link placeholder, instead, make each pcm_channel
    as head/link of each own/each other. Unlock - Lock sequence due to
    sleep malloc has been reduced.
  * Implement "busy" queue which will contain list of busy/active
    channels. This greatly reduce locking contention for example while
    servicing interrupt for hardware with many channels or when virtual
    channels reach its 256 peak channels.

- So I heard you like v chan ... O RLY?
  Welcome to Virtual **Record** Channels (vrec, rec vchans, vchans for
  recording, Rec-Chan, you decide), the ultimate solutions for your
  nagging O_RDWR full-duplex wannabe (note: flash plugins) monopolizing
  single record channel causing EBUSY.  Vrec works exactly like Vchans
  (or, should I rename it to "Vplay" :) , except that it operates on the
  opposite direction (recording). Up to 256 vrecs (like vchans) are
  possible.

  Notes:
   * Relocate dev.pcm.%d.{vchans,vchanformat,vchanrate} to each of its
     respective node/direction:
       dev.pcm.%d.play.* for "play"   (cdev = dsp%d.vp%d)
       dev.pcm.%d.rec.*  for "record" (cdev = dsp%d.vr%d)
   * Don't expect that it will magically give you ability to split
     "recording source" (eg: 1 channel for cdrom, 1 channel for mic,
     etc). Just admit that you only have a *single* recording source /
     channel. Please bug your hardware vendor instead :)

- Bump maxautovchans from 4 to 16. For a full-fledged multimedia
  desktop/workstation with too many soundservers installed (esound,
  artsd, jackd, pulse/polypaudio, ding-dong pling plong mudkip fuh fuh,
  etc), 4 seems inadequate. There will be no memory penalty here, since
  virtual channels are allocate only by demand.

- Nuke/Rework the entire statically created cdev entries. Everything is
  clonable through snd own clone manager which designed to withstand many
  kind of abusive devfs droids such as:
      * while : ; do /bin/test -e /dev/dsp ; done
      * jot 16777216 0 | while read x ; do ls /dev/dsp0.$x ; done
      * hundreds (could be thousands) concurrent threads/process opening
	"/dev/dsp" (previously, this might result EBUSY even with just
	3 contesting threads/procs).
  o Reusable clone objects (instead of creating new one like there's no
    tomorrow) after certain expiration deadline. The clone allocator will
    decide whether to reuse, share, or creating new clone.
  o Automatic garbage collector.

- Dynamic unit magic allocator. Maximum attached soundcards can be tuned
  using tunable "hw.snd.maxunit" (Default to 512). Minimum is 16, and
  maximum is 2048.

- ..other fixes, mostly related to concurrency issues.

joel@ will do the manpage updates on sound(4).

Have fun.
2007-05-31 18:43:33 +00:00
..
3dfx
3dfx_linux
aac
accf_data
accf_http
acpi Catch up with ACPI-CA 20070320 import. 2007-03-22 18:16:43 +00:00
agp
aha
ahb
aic
aic7xxx
aio
amd
amr
an
aout
apm
ar
arcmsr
arcnet
arl
asr
ata
ath for newer hal's we need opt_ah.h as it specifies how the hal has been 2007-01-28 04:38:35 +00:00
ath_hal
ath_rate_amrr
ath_rate_onoe
ath_rate_sample for newer hal's we need opt_ah.h as it specifies how the hal has been 2007-01-28 04:36:05 +00:00
aue
auxio
awi
axe
bce
bfe
bge
bios
bktr
bridgestp
cam Add the CAM 'SG' peripheral device. This device implements a subset of the 2007-04-07 19:40:58 +00:00
canbepm
canbus
cardbus
cbb
cd9660 Makefile changes to reflect moving sys/isofs/cd9660 to sys/fs/cd9660. 2007-02-11 14:01:32 +00:00
cd9660_iconv Makefile changes to reflect moving sys/isofs/cd9660 to sys/fs/cd9660. 2007-02-11 14:01:32 +00:00
cdce
ce
ciss
cm
coda
coda5
coff
cp
cpufreq
crypto Integrate the Camellia Block Cipher. For more information see RFC 4132 2007-05-09 19:37:02 +00:00
cryptodev oops, another missed file from crypto api change 2007-03-31 23:15:11 +00:00
cs
ctau
cue
cx
cxgb When building cxgb as a module make include paths relative to the driver's root. 2007-05-28 22:57:27 +00:00
dc
dcons
dcons_crom
de
digi
dpt On i386 compile the back-end with EISA support as well as the EISA 2007-04-10 20:33:31 +00:00
drm
dummynet
ed
elink
em Fix kldloading if_em by compiling missing source file. 2007-05-07 09:55:25 +00:00
en
ep
esp
ex
exca
ext2fs
fatm
fdc
fdescfs
fe
firewire
firmware
fxp
gem
geom First cut at GEOM based multipath. This is an active/passive{/passive...} 2007-02-27 04:01:58 +00:00
harp
hatm
hfa
hifn Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
hme
hpfs
hptiop Introduce a driver for the Highpoint RocketRAID 3xxx series of controllers. 2007-05-09 07:07:26 +00:00
hptmv
hwpmc
i2c
ibcs2
ichwd
ida
idt
ie
if_bridge
if_disc
if_edsc Introduce a new toy interface, edsc(4). It's a discard interface 2007-03-26 04:39:18 +00:00
if_ef
if_faith
if_gif
if_gre
if_lagg Rename the trunk(4) driver to lagg(4) as it is too similar to vlan trunking. 2007-04-17 00:35:11 +00:00
if_ndis
if_ppp
if_sl
if_stf
if_tap
if_tun
if_vlan if_vlan no more depends on INET. 2007-03-19 17:34:31 +00:00
iir
io
ip_mroute_mod Make IPv6 multicast forwarding dynamically loadable from a GENERIC kernel. 2007-02-24 11:38:47 +00:00
ipdivert
ipfilter
ipfw
ipmi
ips
ipw
ipwfw - Add Intel firmwares for Intel PRO/Wireless LAN 2100/2200/2915 cards in a 2007-03-02 11:42:56 +00:00
isp Remember to include isp_library.o when building an isp module. 2006-12-10 05:51:27 +00:00
ispfw
iwi
iwifw - Add Intel firmwares for Intel PRO/Wireless LAN 2100/2200/2915 cards in a 2007-03-02 11:42:56 +00:00
ixgb
joy
kbdmux
kue
le Add front-ends for the 'lebuffer' variants found on some SBus cards. 2007-01-20 12:53:30 +00:00
lge
libalias The old PacketAlias* API is not exported when 2007-04-09 17:08:27 +00:00
libiconv
libmbpool
libmchain
linprocfs
linsysfs
linux Fix the dependency for the linux_support.s, explicitely add linux_assym.h. 2007-05-23 15:45:52 +00:00
lmc
lpt
mac_biba
mac_bsdextended
mac_ifoff
mac_lomac
mac_mls
mac_none
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
mcd
md
mem
mfi Add the 'mfip' sub-driver for gaining SCSI-passthrough access to devices 2007-05-16 17:19:47 +00:00
mii
mlx
mly
mmc
mmcsd
mpt
mqueue
msdosfs Reflecting the removal of MSDOSFS_LARGE found in sys/conf/files:1.1173. 2007-02-01 04:21:03 +00:00
msdosfs_iconv
mse
msk Hook up msk(4) to the build. 2006-12-13 02:37:48 +00:00
mxge Hook mxge_lro.c to the build so that the if_mxge.ko module 2007-05-22 14:38:17 +00:00
my my(4) doesn't need miibus(4). 2007-03-11 15:20:04 +00:00
ncp
ncv
ndis
netgraph A node that implements various traffic shaping and rate limiting algorithms. 2007-05-15 16:24:50 +00:00
nfe
nfs4client
nfsclient
nfsserver
nge
nmdm
nsp
ntfs
ntfs_iconv
nullfs
nve
nwfs
oltr
padlock another missing change for recent crypto mods 2007-03-21 17:37:13 +00:00
patm
pccard
pcfclock
pcn
pecoff
pf
pflog
plip
pmc
portalfs
powermac_nvram
ppbus
ppc
ppi
pps
procfs
pseudofs
pst
puc
ral
random
ray
rc
rc4
re
reiserfs
rl
rndtest
rp
rr232x
rue
rum Add support for Ralink Technology RT2501USB/RT2601USB devices. 2007-05-06 10:07:21 +00:00
s3
safe Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
sbni
sbsh
scc
scd
scsi_low
sem
sf
sio
sis
sk
slhci
smbfs
sn
snc
snp
sound Last major commit and updates for RELENG_7: 2007-05-31 18:43:33 +00:00
speaker
splash
sppp
sr
ste
stg
stge
streams
svr4
sym
syscons
sysvipc
ti
tl
trm
twa Import version 3.60.03.006 of the TWA driver: 2007-05-09 04:16:32 +00:00
twe
tx
txp
uark
uart
ubsa
ubsec Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
ubser
ucom
ucycom
udav
udbp
udf
udf_iconv
ufm
ufoma
ufs Allow this module to get its options from the kernel build directory 2006-12-21 21:35:49 +00:00
uftdi
ugen
uhid
uipaq Add support for serial communication with Windows CE based Handheld Computer. 2007-01-28 11:56:14 +00:00
ukbd
ulpt
umapfs
umass
umct
umodem
ums
unionfs
uplcom
ural
urio
usb
uscanner
utopia
uvisor
uvscom
vesa
vge
vkbd
vpo
vr
vx
wb
wi
wlan
wlan_acl
wlan_amrr
wlan_ccmp
wlan_tkip
wlan_wep
wlan_xauth
xe
xfs
xl
zfs FreeBSD's namecache works quite well with ZFS, so remove DNLC. 2007-05-23 21:33:02 +00:00
zlib
Makefile It turns out that the hptiop driver isn't portable after all. Confine it to 2007-05-09 15:55:45 +00:00
Makefile.inc