freebsd-skq/lib
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
..
bind One more glue update for BIND 9.4.2 2007-12-02 22:21:30 +00:00
csu Enable GCC stack protection (aka Propolice) for userland: 2008-06-25 21:33:28 +00:00
libalias -Don't pass down the entire pkt to ProtoAliasIn, ProtoAliasOut, FragmentIn 2008-03-12 11:58:29 +00:00
libarchive Fix up test suite so it works again with the libarchive 1.x API. 2008-08-11 01:19:36 +00:00
libautofs Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libbegemot Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libbluetooth Import handy shorthand Bluetooth address (BD_ADDR) utility functions 2008-08-13 19:35:31 +00:00
libbsm Install getaudit_addr(2) and setaudit_addr(2) links to getaudit(2) and 2007-10-19 10:37:34 +00:00
libbsnmp - Bump share library version which were missed in last bump 2007-06-18 18:47:54 +00:00
libbz2 Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libc Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
libc_r Call the fcntl compatiblity wrapper from the thread library fcntl wrappers 2008-05-30 14:47:42 +00:00
libcalendar
libcam
libcom_err
libcompat Turn sgtty into a binary-only compatibility interface. 2008-06-14 10:42:18 +00:00
libcrypt Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libdevinfo
libdevstat The devstat(3) manpage claims that only <devstat.h> is needed as a 2008-01-31 16:55:12 +00:00
libdisk Add MIPS support to libdisk 2008-05-04 22:24:40 +00:00
libdwarf Add a BSD licensed DWARF library for use by the DTrace clients. 2008-05-22 02:14:23 +00:00
libedit Merge NetBSD changes, among them: 2007-06-10 19:06:09 +00:00
libelf Relax the strict type check because gcc as distributed doesn't create 2008-05-23 07:35:36 +00:00
libexpat Update the lib/expat tree for the new v2.0.1 expat import. The bsdxml.h 2008-05-08 14:01:42 +00:00
libfetch Fix one-byte buffer overflow: NUL gets written to the buffer, but isn't 2008-04-15 23:29:51 +00:00
libftpio Don't set the _file member of the FILE when opening a FTP connection. 2008-05-08 20:05:30 +00:00
libgeom Add sbuf_new_auto as a shortcut for the very common case of creating a 2008-08-09 11:14:05 +00:00
libgpib Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libgssapi Add an implementation of the RPCSEC_GSS authentication protocol for RPC. This 2008-08-06 14:02:05 +00:00
libipsec Commit IPv6 support for FAST_IPSEC to the tree. 2007-07-01 12:08:08 +00:00
libipx Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libkiconv Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libkse Call the fcntl compatiblity wrapper from the thread library fcntl wrappers 2008-05-30 14:47:42 +00:00
libkvm Add a new routine kvm_getcptime(3) for fetching the equivalent of 2008-08-19 21:30:36 +00:00
libmagic Update for the 'file' 4.23 import. 2008-01-13 20:37:19 +00:00
libmd Use unsigned comparisons. Prior to this commit, SHA1_Update and 2007-05-14 05:00:37 +00:00
libmemstat Make pointer argument to kread_string() const since the kernel structure 2007-05-21 18:16:04 +00:00
libmilter Switch libmilter from select(2) to poll(2) so milters are not limited 2008-02-17 05:14:47 +00:00
libmp Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libncp Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libnetgraph Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libngatm Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libopie Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libpam Add new heimdal-1.1 library. 2008-05-15 15:28:18 +00:00
libpcap Change bpf(4) to use the cdevpriv API. 2008-08-13 15:41:21 +00:00
libpmc - Document Pentium and Pentium MMX events. 2008-03-14 06:22:03 +00:00
libproc Add the Makefile for the process library which was missed in the previous 2008-05-22 02:10:14 +00:00
libradius Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
librpcsec_gss Fix ia64 build. 2008-08-06 17:11:12 +00:00
librpcsvc set WARNS to 1: with WARNS=2 an aliasing error in a file generated by 2008-02-05 20:03:45 +00:00
librt atomic_fetchadd_int works on unsigned quantities - change 2008-08-15 21:08:48 +00:00
libsbuf
libsdp Add mandatory "security description" SDP parameter to the PANU profile 2008-03-19 00:06:30 +00:00
libsm New files in sendmail 8.14.1 2007-04-09 01:45:30 +00:00
libsmb Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libsmdb
libsmutil
libstand Enable GCC stack protection (aka Propolice) for userland: 2008-06-25 21:33:28 +00:00
libtacplus Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libtelnet
libthr In function pthread_condattr_getpshared, store result correctly. 2008-08-01 01:21:49 +00:00
libthread_db Change the type of ti_traceme from a char to an int as its 2008-08-13 00:03:35 +00:00
libufs Add a berase() function which uses ioctl(DIOCGDELETE) to erase a slab 2007-12-16 18:02:37 +00:00
libugidfw Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libusbhid Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libutil Integrate the new MPSAFE TTY layer to the FreeBSD operating system. 2008-08-20 08:31:58 +00:00
libvgl Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libwrap Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
liby Remove California Regent's clause 3, per letter 2007-01-09 01:02:06 +00:00
libypclnt Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libz
msun Remove some unused variables. 2008-08-08 00:21:27 +00:00
ncurses - Update for ncurses 5.6-20080509 2008-05-09 02:28:52 +00:00
Makefile Add an implementation of the RPCSEC_GSS authentication protocol for RPC. This 2008-08-06 14:02:05 +00:00
Makefile.inc Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00