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 Take the functionality contained in the former "options TDFX_LINUX" 2006-03-03 21:37:38 +00:00
3dfx_linux Take the functionality contained in the former "options TDFX_LINUX" 2006-03-03 21:37:38 +00:00
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 Rewrite the EC driver event model. The main goal is to avoid 2007-09-24 16:59:06 +00:00
age Hook up age(4) to the build. 2008-05-19 01:53:47 +00:00
agp Move the agp(4) driver from sys/pci to sys/dev/agp. __FreeBSD_version was 2007-11-12 21:51:38 +00:00
aha
ahb
aic
aic7xxx
aio MFP4 (with some minor changes): 2006-10-15 14:22:14 +00:00
amd
amr The AR_SCSI_PASSTHROUGH conditional no longer exists, remove it from the 2007-12-02 18:39:38 +00:00
an
aout
apm
ar
arcmsr
arcnet INET doesn't belong to opt_inet6.h: INET6 belongs to it. 2006-02-07 18:13:56 +00:00
asmc Remove isa_if.h. 2008-04-07 11:26:13 +00:00
asr Remove Alpha remnants. 2006-07-27 19:12:49 +00:00
ata Remove debug flag. 2006-03-11 08:42:08 +00:00
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 o move ath hal os glue code from the hal to the driver: this code was 2006-09-18 16:49:15 +00:00
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 opt_ah.h is not constructed by config, it always comes from 2008-05-29 00:16:58 +00:00
aue
auxio
axe
bce Add a driver for the Broadcom NetXtreme II (BCM5706/BCM5708) 2006-04-10 19:55:23 +00:00
bfe
bge Add ofw_bus_if.h as a dependency on sparc64. Without this sparc64 kernel 2007-06-10 00:58:41 +00:00
bios
bktr Remove option headers that do not exist and are not used 2008-03-27 20:38:03 +00:00
bm Add support for the Apple Big Mac (BMAC) Ethernet controller, 2008-06-07 22:58:32 +00:00
bridgestp Add bridgestp as a seperate module. 2006-07-26 22:07:39 +00:00
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 NO_MAN is not needed here. 2006-03-16 15:18:17 +00:00
ciss
cm
cmx Commit cmx(4), a driver for Omnikey CardMan 4040 PCMCIA smartcard readers. 2008-03-06 08:09:45 +00:00
coda Rather than having the Coda module use its own namecache, use the global 2008-02-13 13:06:22 +00:00
coda5 Remove coda_namecache from coda5 as well. We should probably GC coda5 2008-02-13 16:31:04 +00:00
coff
coretemp Add a driver for the on-die digital thermal sensor found on Intel Core 2007-08-15 19:26:03 +00:00
cp NO_MAN is not needed here. 2006-03-16 15:18:17 +00:00
cpuctl - Add cpuctl(4) pseudo-device driver to provide access to some low-level 2008-08-08 16:26:53 +00:00
cpufreq Dike out WARNS from kernel module makefiles. Kernels and modules 2006-05-30 09:38:54 +00:00
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 Remove cxgb private lro implementation and switch to using system implementation. 2008-08-12 00:27:32 +00:00
cyclic The cyclic code is in sys/cddl/dev/cyclic to be consistent with 2008-05-23 22:23:28 +00:00
dc
dcons Fix a breakage with "MODULES_WITH_WORLD=true make buildworld". 2007-06-01 00:23:34 +00:00
dcons_crom
de Move de from pci to dev/de 2006-02-26 17:51:22 +00:00
digi Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
dpt On i386 compile the back-end with EISA support as well as the EISA 2007-04-10 20:33:31 +00:00
drm
dtrace Add the DTrace test kernel module so that people can run the tests. 2008-05-31 09:37:40 +00:00
dummynet Reimplementation of world/kernel build options. For details, see: 2006-03-17 18:54:44 +00:00
ed
elink
em Change to build module with new directory tree 2008-07-30 22:05:06 +00:00
en
ep
esp Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
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 Dike out WARNS from kernel module makefiles. Kernels and modules 2006-05-30 09:38:54 +00:00
fdescfs
fe
firewire Style: Remove blank lines before EOF. 2006-02-18 23:49:28 +00:00
firmware Unbreak firmware.ko build without kernel. 2008-04-20 16:11:14 +00:00
fxp
gem
geom Add support for PC-9800 partition tables. 2008-03-28 17:58:55 +00:00
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 Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
hme Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
hpfs
hptiop Introduce a driver for the Highpoint RocketRAID 3xxx series of controllers. 2007-05-09 07:07:26 +00:00
hptmv
hptrr Add the 'hptrr' driver for supporting the following Highpoint RocketRAID 2007-12-15 00:56:17 +00:00
hwpmc Remove WARNS from here and compile with default kernel flags. 2008-02-21 11:09:59 +00:00
i2c The viapm module build had what appear to be some debugging CFLAGS left 2007-06-24 20:35:59 +00:00
ibcs2
ichwd
ida
ie
if_bridge bridgestp is now a seperate module. 2006-07-26 22:15:15 +00:00
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 Don't use touch when what is really meant is :> (create an empty file, or 2006-08-14 13:28:53 +00:00
if_faith
if_gif Reimplementation of world/kernel build options. For details, see: 2006-03-17 18:54:44 +00:00
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 Teach an IPv6 to ppp(4). 2006-11-11 15:02:04 +00:00
if_sl
if_stf
if_tap Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
if_tun
if_vlan if_vlan no more depends on INET. 2007-03-19 17:34:31 +00:00
igb Change Makefile to reflect new directory structure 2008-07-30 22:06:38 +00:00
iir
io
ip_mroute_mod Options spring cleanup: 2007-06-13 02:08:04 +00:00
ipdivert
ipfilter Reimplementation of world/kernel build options. For details, see: 2006-03-17 18:54:44 +00:00
ipfw Link pf 4.1 to the build: 2007-07-03 12:46:08 +00:00
ipfw_nat Move ipfw's nat code into its own kld: ipfw_nat. 2008-02-29 22:27:19 +00:00
ipmi Update the ipmi(4) driver: 2006-09-22 22:11:29 +00:00
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
iscsi Introduce Danny Braniss' iSCSI initiator, version 2.0.99. Please read the 2007-07-24 15:35:02 +00:00
isp Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
ispfw Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
iwi remove depedancy with vnode_if.h. 2006-03-12 19:06:06 +00:00
iwifw - Add Intel firmwares for Intel PRO/Wireless LAN 2100/2200/2915 cards in a 2007-03-02 11:42:56 +00:00
iwn clear out crud 2008-05-22 21:53:15 +00:00
iwnfw Intel 4965 wireless driver (derived from openbsd driver of the same name) 2008-04-29 21:36:17 +00:00
ixgb
ixgbe Remove compile of tcp_lro since its now in netinet 2008-06-11 22:18:50 +00:00
jme Hook up jme(4) to the build. 2008-05-27 01:54:45 +00:00
joy
k8temp Connect k8temp(4) to the build. 2008-04-12 14:20:22 +00:00
kbdmux Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
krpc Add nfslockd and krpc modules. 2008-03-27 11:55:03 +00:00
kue
le Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
lge
libalias The old PacketAlias* API is not exported when 2007-04-09 17:08:27 +00:00
libiconv
libmbpool
libmchain
linprocfs - Add the new files to the linux module. 2006-08-15 13:01:36 +00:00
linsysfs - Add the new files to the linux module. 2006-08-15 13:01:36 +00:00
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
malo Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
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 Add the 'mfip' sub-driver for gaining SCSI-passthrough access to devices 2007-05-16 17:19:47 +00:00
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 Loadable modules for mmc (the bus) amd mmcsd (the MMC and SD support 2006-10-20 06:52:59 +00:00
mmcsd Loadable modules for mmc (the bus) amd mmcsd (the MMC and SD support 2006-10-20 06:52:59 +00:00
mpt Add a new personality to mpt(4) devices to allow userland applications to 2008-05-06 20:49:53 +00:00
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 Add optional support to mxge for MSI-X interrupts and multiple receive 2008-01-15 20:34:49 +00:00
my my(4) doesn't need miibus(4). 2007-03-11 15:20:04 +00:00
ncp
ncv
ndis
netgraph Disconnect drivers that haven't been ported to MPSAFE TTY yet. 2008-08-03 10:32:17 +00:00
nfe Remove no longer existing opt_bdg.h and opt_bge.h. 2006-11-03 21:41:19 +00:00
nfs4client Style: Remove blank lines before EOF. 2006-02-18 23:49:28 +00:00
nfsclient Style: Remove blank lines before EOF. 2006-02-18 23:49:28 +00:00
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 Split /dev/nvram driver out of isa/clock.c for i386 and amd64. I have not 2007-10-26 03:23:54 +00:00
nwfs
nxge Merge Neterion if_nxge driver version 2.0.9.11230 with the following 2007-10-29 14:19:32 +00:00
opensolaris Add the DTrace kernel module makefiles. 2008-05-17 02:31:19 +00:00
padlock another missing change for recent crypto mods 2007-03-21 17:37:13 +00:00
patm
pccard
pcfclock
pcn Move pcn driver from sys/pci to sys/dev/pcn. 2008-08-14 20:34:46 +00:00
pf Link pf 4.1 to the build: 2007-07-03 12:46:08 +00:00
pflog Reimplementation of world/kernel build options. For details, see: 2006-03-17 18:54:44 +00:00
plip
pmc
portalfs
powermac_nvram Add missing headers. 2006-10-29 17:23:54 +00:00
ppbus
ppc Make this usable for all platforms. 2006-06-18 05:04:42 +00:00
ppi
pps
procfs Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
pseudofs
pst
puc Rewrite of puc(4). Significant changes are: 2006-04-28 21:21:53 +00:00
ral Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
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 add makefiles for rdma 2008-05-05 20:19:33 +00:00
re
reiserfs
rl
rndtest
rp
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
scc Don't build unused SBus front-ends for sun4v, don't build EBus front-ends 2008-05-04 14:59:25 +00:00
scd
scsi_low
sem Rework the lifetime management of the kernel implementation of POSIX 2008-06-27 05:39:04 +00:00
sf Update file list and Makefile after repocopying sf(4) from 2008-01-21 04:27:32 +00:00
sio Rewrite of puc(4). Significant changes are: 2006-04-28 21:21:53 +00:00
sis Move sis to sys/dev/sis for consistency. 2008-08-10 10:00:14 +00:00
sk The sk(4) driver has moved to /sys/dev/sk 2006-04-27 00:14:02 +00:00
slhci Use .CURDIR when referring source code. This fixes build 2007-06-20 00:29:51 +00:00
smbfs Retire NETSMBCRYPTO as a kernel option and make its functionality 2006-03-05 22:52:17 +00:00
sn
snc Add card_if.h and pccarddevs.h 2008-08-07 20:51:51 +00:00
snp
sound Restore SUBDIR+= accidentally removed in the previous revision. 2008-05-04 16:02:45 +00:00
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 Hook up stge(4) to the build. 2006-07-25 00:45:55 +00:00
streams Housekeeping. Update for maintainers who have handed in their commit bits 2006-07-01 10:51:55 +00:00
svr4 Housekeeping. Update for maintainers who have handed in their commit bits 2006-07-01 10:51:55 +00:00
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 MFp4: 2007-06-29 05:23:15 +00:00
trm
twa Import version 3.60.03.006 of the TWA driver: 2007-05-09 04:16:32 +00:00
twe
tx
txp
uark o Add uark(4), a driver for Arkmicro Technologies ARK3116 based serial 2006-11-15 09:13:25 +00:00
uart In sun4v, use the sparc64 version. We haven't used the serial port on 2006-10-16 22:11:53 +00:00
ubsa
ubsec Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
ubser
uchcom Add Winchiphead (or Nanjin QinHeng Electronics) USB Serial converter driver. 2007-10-18 10:51:06 +00:00
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 Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
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 Remove option headers that do not exist and are not used 2008-03-27 20:38:03 +00:00
utopia
uvisor
uvscom
vesa
vge
vkbd Fix our ioctl(2) implementation when the argument is "int". New 2006-09-27 19:57:02 +00:00
vpo
vr Update file list and Makefile after repocopying vr(4) from 2008-03-11 03:50:57 +00:00
vx
wb Move wb driver from sys/pci to sys/dev/wb. 2008-08-14 21:26:29 +00:00
wi
wlan enable IEEE80211_AMDPU_AGE by default 2008-05-03 17:06:59 +00:00
wlan_acl Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
wlan_amrr Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
wlan_ccmp Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
wlan_rssadapt Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
wlan_tkip Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
wlan_wep Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
wlan_xauth Multi-bss (aka vap) support for 802.11 devices. 2008-04-20 20:35:46 +00:00
wpi Remove option headers that do not exist and are not used 2008-03-27 20:38:03 +00:00
wpifw Initial Import of wpi driver based on p4 changeset 128641. 2007-11-05 11:47:19 +00:00
xe
xfs Makefile changes to accomodate new XFS import. 2006-06-09 06:10:17 +00:00
xl Move the xl driver form sys/pci to sys/dev/xl for consistency. 2008-08-10 09:45:52 +00:00
zfs Add atomic operations for ZFS/sparc64. 2008-04-11 22:59:33 +00:00
zlib
zyd Makefile for building zyd kernel module. 2007-08-29 21:04:26 +00:00
Makefile Connect upgt(4) to the build. 2008-08-11 04:46:14 +00:00
Makefile.inc