freebsd-nq/sys/modules
Ed Schouten bc093719ca Integrate the new MPSAFE TTY layer to the FreeBSD operating system.
The last half year I've been working on a replacement TTY layer for the
FreeBSD kernel. The new TTY layer was designed to improve the following:

- Improved driver model:

  The old TTY layer has a driver model that is not abstract enough to
  make it friendly to use. A good example is the output path, where the
  device drivers directly access the output buffers. This means that an
  in-kernel PPP implementation must always convert network buffers into
  TTY buffers.

  If a PPP implementation would be built on top of the new TTY layer
  (still needs a hooks layer, though), it would allow the PPP
  implementation to directly hand the data to the TTY driver.

- Improved hotplugging:

  With the old TTY layer, it isn't entirely safe to destroy TTY's from
  the system. This implementation has a two-step destructing design,
  where the driver first abandons the TTY. After all threads have left
  the TTY, the TTY layer calls a routine in the driver, which can be
  used to free resources (unit numbers, etc).

  The pts(4) driver also implements this feature, which means
  posix_openpt() will now return PTY's that are created on the fly.

- Improved performance:

  One of the major improvements is the per-TTY mutex, which is expected
  to improve scalability when compared to the old Giant locking.
  Another change is the unbuffered copying to userspace, which is both
  used on TTY device nodes and PTY masters.

Upgrading should be quite straightforward. Unlike previous versions,
existing kernel configuration files do not need to be changed, except
when they reference device drivers that are listed in UPDATING.

Obtained from:		//depot/projects/mpsafetty/...
Approved by:		philip (ex-mentor)
Discussed:		on the lists, at BSDCan, at the DevSummit
Sponsored by:		Snow B.V., the Netherlands
dcons(4) fixed by:	kan
2008-08-20 08:31:58 +00:00
..
3dfx
3dfx_linux
aac
accf_data
accf_dns Add an accept filter for TCP based DNS requests. It waits until the 2008-07-18 14:44:51 +00:00
accf_http
acpi
age
agp
aha
ahb
aic
aic7xxx
aio
amd
amr
an
aout
apm
ar
arcmsr
arcnet
asmc
asr
ata
ath
ath_hal
ath_rate_amrr Always create opt_ah.h regardless of KERNBUILDDIR. 2008-06-23 00:51:34 +00:00
ath_rate_onoe don't let KERNBUILDDIR control whether we copy opt_ah.h 2008-05-30 03:36:52 +00:00
ath_rate_sample
aue
auxio
axe
bce
bfe
bge
bios
bktr
bm Add support for the Apple Big Mac (BMAC) Ethernet controller, 2008-06-07 22:58:32 +00:00
bridgestp
cam
canbepm
canbus
cardbus
cbb
cd9660
cd9660_iconv
cdce
ce
ciss
cm
cmx
coda
coda5
coff
coretemp
cp
cpuctl - Add cpuctl(4) pseudo-device driver to provide access to some low-level 2008-08-08 16:26:53 +00:00
cpufreq
crypto
cryptodev
cs
ctau
cue
cx
cxgb Remove cxgb private lro implementation and switch to using system implementation. 2008-08-12 00:27:32 +00:00
cyclic
dc
dcons
dcons_crom
de
digi
dpt
drm
dtrace Add the DTrace test kernel module so that people can run the tests. 2008-05-31 09:37:40 +00:00
dummynet
ed
elink
em Change to build module with new directory tree 2008-07-30 22:05:06 +00:00
en
ep
esp
et Remove a file that is not used and does not exist. 2008-07-28 17:56:37 +00:00
ex
exca
ext2fs
fatm
fdc
fdescfs
fe
firewire
firmware
fxp
gem
geom
glxsb Add glxsb(4) driver for the Security Block in AMD Geode LX processors (as 2008-08-09 14:52:31 +00:00
hatm
hifn
hme
hpfs
hptiop
hptmv
hptrr
hwpmc
i2c
ibcs2
ichwd
ida
ie
if_bridge
if_disc
if_edsc
if_ef
if_faith
if_gif
if_gre
if_lagg
if_ndis
if_ppp
if_sl
if_stf
if_tap
if_tun
if_vlan
igb Change Makefile to reflect new directory structure 2008-07-30 22:06:38 +00:00
iir
io
ip_mroute_mod
ipdivert
ipfilter
ipfw
ipfw_nat
ipmi
ips
ipw
ipwfw
iscsi
isp
ispfw
iwi
iwifw
iwn
iwnfw
ixgb
ixgbe Remove compile of tcp_lro since its now in netinet 2008-06-11 22:18:50 +00:00
jme
joy
k8temp
kbdmux
krpc
kue
le
lge
libalias
libiconv
libmbpool
libmchain
linprocfs
linsysfs
linux
lmc
lpt
mac_biba
mac_bsdextended
mac_ifoff
mac_lomac
mac_mls
mac_none
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
malo
mcd
md
mem Prefer the opt_global.h from KERNBUILDDIR if existent so we obtain all 2008-07-24 14:07:52 +00:00
mfi
mii Add et(4), a port of DragonFly's Agere ET1310 10/100/Gigabit 2008-06-20 19:28:33 +00:00
mlx
mly
mmc
mmcsd
mpt
mqueue
msdosfs
msdosfs_iconv
mse
msk
mxge
my
ncp
ncv
ndis
netgraph Disconnect drivers that haven't been ported to MPSAFE TTY yet. 2008-08-03 10:32:17 +00:00
nfe
nfs4client
nfsclient
nfslockd Unbreak the build by creating opt_nfs.h 2008-07-31 02:13:36 +00:00
nfsserver
nge
nmdm Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
nsp
ntfs
ntfs_iconv
nullfs
nve
nvram
nwfs
nxge
opensolaris
padlock
patm
pccard
pcfclock
pcn Move pcn driver from sys/pci to sys/dev/pcn. 2008-08-14 20:34:46 +00:00
pf
pflog
plip
pmc
portalfs
powermac_nvram
ppbus
ppc
ppi
pps
procfs
pseudofs
pst
puc
ral
ralfw Remove the non-existent rt2860 subdir. Note, the ralfw module is not used in 2008-06-26 18:58:01 +00:00
random
ray
rc Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
rc4
rdma
re
reiserfs
rl
rndtest
rp
rue
rum
s3
safe
scc
scd
scsi_low
sem Rework the lifetime management of the kernel implementation of POSIX 2008-06-27 05:39:04 +00:00
sf
sio
sis Move sis to sys/dev/sis for consistency. 2008-08-10 10:00:14 +00:00
sk
slhci
smbfs
sn
snc Add card_if.h and pccarddevs.h 2008-08-07 20:51:51 +00:00
snp
sound
speaker
splash
sppp
sr
ste Move the ste driver from sys/pci to sys/dev/ste. 2008-08-14 20:09:58 +00:00
stg
stge
streams
svr4
sym
syscons
sysvipc
ti
tl Move the tl driver form sys/pci to sys/dev/tl. 2008-08-14 20:02:34 +00:00
tmpfs
trm
twa
twe
tx
txp
uark
uart
ubsa
ubsec
ubser
uchcom
ucom
ucycom
udav
udbp
udf
udf_iconv
ufm
ufoma
ufs
uftdi
ugen
uhid
uipaq
ukbd
ulpt
umass
umct
umodem
ums
unionfs
upgt Add Conexant/Intersil PrismGT SoftMAC wireless USB driver - upgt(4). 2008-08-11 03:57:31 +00:00
uplcom
ural
urio
usb
uscanner
uslcom
utopia
uvisor
uvscom
vesa
vge
vkbd
vpo
vr
vx
wb Move wb driver from sys/pci to sys/dev/wb. 2008-08-14 21:26:29 +00:00
wi
wlan
wlan_acl
wlan_amrr
wlan_ccmp
wlan_rssadapt
wlan_tkip
wlan_wep
wlan_xauth
wpi
wpifw
xe
xfs
xl Move the xl driver form sys/pci to sys/dev/xl for consistency. 2008-08-10 09:45:52 +00:00
zfs
zlib
zyd
Makefile Connect upgt(4) to the build. 2008-08-11 04:46:14 +00:00
Makefile.inc