FreeBSD src
Go to file
Gleb Smirnoff 547d34736b Major overhaul.
List of functional changes:
   - Make a single device per single node with a single hook.
     This gives us parrallelizm, which can't be achieved on a single
     node with many devices/hooks. This also gives us flexibility - we
     can play with a particular device node, not affecting others.
   - Remove read queue as it is. Use struct ifqueue instead. This change
     removes a lot of extra memcpy()ing, m_devget()ting and m_copymem()ming.
     In ng_device_receivedata() we enqueue an mbuf and wake readers.
     In ngdread() we take one mbuf from qeueue and uiomove() it to
     userspace. If no mbuf is present we optionally block. [1]
   - In ngdwrite() we create an mbuf from uio using m_uiotombuf().
     This is faster then uiomove() into buffer, and then m_copydata(),
     and this is much better than huge m_pullup().
   - Perform locking of device
   - Perform locking of connection list.
   - Clear out _rcvmsg method, since it does nothing good yet.
   - Implement NGM_DEVICE_GET_DEVNAME message.
   - #if 0 ioctl method, while nothing is done here yet.
   - Return immediately from ngdwrite() if uio_resid == 0.

 List of tidyness changes:
   - Introduce device2priv(), to remove cut'n'paste.
   - Use MALLOC/FREE, instead of malloc/free.
   - Use unit2minor().
   - Use UID_ROOT/GID_WHEEL instead of 0/0.
   - Define NGD_DEVICE_DEVNAME, use it.
   - Use more nice macros for debugging. [2]
   - Return Exxx, not -1.

 style(9) changes:
   - No "#endif" after short block.
   - Break long lines.
   - Remove extra spaces, add needed spaces.

[1] Obtained from:      if_tun.c
[2] Obtained from:      ng_pppoe.c
Reviewed by:		marks
Approved by:		julian (mentor)
MFC after:		1 month
2004-10-18 20:13:57 +00:00
bin The previous commit added code to rm(1) to warn about and remove any 2004-10-04 19:24:28 +00:00
contrib Merge local changes 2004-10-18 07:25:32 +00:00
crypto Add support for C3 Nehemiah ACE ("Padlock") AES crypto. This comes 2004-08-14 13:38:35 +00:00
etc New directory added for Argentinian timezones. 2004-10-18 17:03:53 +00:00
games Properly initialise 'filename' so that random -l doesn't try to open NULL. 2004-10-03 15:34:15 +00:00
gnu Replaced afterinstall: with FILES. 2004-10-18 16:39:53 +00:00
include Remove the obsolete <rune.h> interface. 2004-10-17 06:51:50 +00:00
kerberos5 Join the 21st century: Cryptography is no longer an optional component 2004-08-06 07:27:08 +00:00
lib Sync with sys/i386/include/endian.h: use the single instruction 'bswap'. 2004-10-18 17:19:36 +00:00
libexec Remove definition of struct dom_binding, it's non-standard C code and 2004-10-17 19:33:33 +00:00
release Fix typo in rev. 1.58 (missing $) that invalidated the conditional and 2004-10-17 21:05:40 +00:00
rescue As with the non-rescue version don't build fore_dnld when NOATM is defined. 2004-08-16 03:16:48 +00:00
sbin Print a usage message if a non-option is specified. 2004-10-13 20:33:18 +00:00
secure Add support for C3 Nehemiah ACE ("Padlock") AES crypto. This comes 2004-08-14 13:38:35 +00:00
share Utilize FILES and SYMLINKS. 2004-10-18 08:54:17 +00:00
sys Major overhaul. 2004-10-18 20:13:57 +00:00
tools Typo fix. 2004-10-18 00:45:28 +00:00
usr.bin Replaced afterinstall: with equivalent FILES and SYMLINKS. 2004-10-18 17:16:01 +00:00
usr.sbin Replaced afterinstall: with FILES. 2004-10-18 17:20:29 +00:00
COPYRIGHT Update the COPYRIGHT file to include FreeBSD's compilation copyright 2003-12-31 22:35:22 +00:00
installworld_newk Commit the first set of files for changing time_t on freebsd/sparc64 2004-03-03 19:36:20 +00:00
installworld_oldk Commit the first set of files for changing time_t on freebsd/sparc64 2004-03-03 19:36:20 +00:00
MAINTAINERS Remove vinum from the list. I no longer have the time and energy to 2004-09-08 02:08:33 +00:00
Makefile Fixed MAKEOBJDIRPREFIX variable type check in case the env(1) 2004-10-18 17:47:31 +00:00
Makefile.inc1 Catch another gcc-3.3 c++ include path reference and update it to 3.4. 2004-10-11 23:51:13 +00:00
README KerberosIV de-orbit burn continues. Disconnect from "make world". 2003-03-08 10:01:26 +00:00
UPDATING Remove the suggestion to use libmap.conf to deal with the version bump. 2004-10-17 14:59:18 +00:00
UPDATING.64BTT Add a tip for people who are using database-related ports on a sparc64 2004-03-17 01:59:47 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The
``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html