FreeBSD src
Go to file
bde 9949885d48 Fixed error handling:
- Call isa_dmadone() whenever necessary to stop DMA and/or free bounce
  buffers.  Undead DMA corrupted the malloc freelist fairly consistently
  in the following configuration: SLICE kernel, 2 floppy drives, no disk
  in fd0, disk in fd1.
- Don't call fdc_reset() from fd_timeout().  Doing so gave an "extra"
  interrupt which was usually misinterpreted as being for completion
  of the next FDC command; the interrupt for completion of the next
  FDC command was then usually misinterpreted...  There were further
  complications for interrupts latched by the soft-spl mechanism so
  that they were delivered after all the h/w interrupts went away.
  This caused at least wrong head settle delays and may be why the
  FreeBSD floppy driver seems to munch floppies more than most floppy
  drivers.  The reset was unnecessary anyway in cases that didn't have
  the bug described next, since is was repeated a little later for
  the IOTIMEDOUT state.  The state machine has complications to handle
  resets correctly, so just use it.
- Don't call retrier() from fd_timeout().  The IOTIMEDOUT state needs
  to be processed next, and it isn't valid to set to that state if
  retrier() has aborted the current transfer.  Doing so caused null
  pointer panics after the previous bug was fixed.

Improved error handling:
- If an i/o is aborted, arrange to reset in the state machine before
  doing the next i/o.  New fdc flag for this.  This fixes spurious
  warnings and lengthy busy-waiting for the next i/o.
- Split STARTRECAL into RESETCOMPLETE and STARTRECAL and only check
  for the results from reset if we actually reset.  This fixes spurious
  warnings for other paths to STARTRECAL.  [Oops, it may break reset
  handling for motor-off resets.]

Cleanups in fd_timeout():
- Renamed to fd_iotimeout() to make it clearer that it is only used
  for i/o.
- Don't handle the bp == 0 case.  This case can't happen for i/o.
- Don't check for controller-busy.  We know it must be.
- Don't print anything.  retrier() already prints too much for normal
  errors.
- Fudge the state differently so that the state machine advances
  fdc->retry and the status is invalid (perhaps this should fudge a
  valid state like the one for WP).
- Style fixes.
1998-07-29 13:00:42 +00:00
bin Allow env. variable LS_COLWIDTHS to specify minimum column widths, 1998-07-29 00:46:13 +00:00
contrib Add support for a new archetype "printf0" for the "format" function 1998-07-15 04:22:45 +00:00
crypto Fix nasty typo that randomly caused kinit to not properly deduce the 1998-03-29 07:27:43 +00:00
etc make a bounds file for msgs(1) if there isn't one already 1998-07-28 01:15:12 +00:00
games Remove comment relevant to 16bit integers only. 1998-07-26 16:49:20 +00:00
gnu fixed: tar will extract file even if -C command fails 1998-07-27 18:40:09 +00:00
include MF22: prototype fix. 1998-07-16 00:10:14 +00:00
kerberos5 Fix a break in the includes where the build blows chunks if it is 1997-10-02 15:03:23 +00:00
kerberosIV Debogotify. ln -f should be ln -s to allow the obj/ dir to be 1998-03-28 07:47:05 +00:00
lib Add missing period. We don't allow maternity leaves. 1998-07-29 05:13:39 +00:00
libexec Getty is missing the speed table entry for 230400 baud. 1998-07-22 05:57:22 +00:00
lkm A better solution to the rm_at_exit problem: Register the exit function 1998-07-27 01:07:01 +00:00
release MF22: various fixes for new XFree86 dist and cdrom warnings. 1998-07-21 06:44:42 +00:00
sbin Document the kern.logsigexit sysctl variable (sort of). 1998-07-29 08:30:37 +00:00
secure Staticise a variable. 1997-10-08 07:02:48 +00:00
share add en ATM driver manual. 1998-07-29 05:42:20 +00:00
sys Fixed error handling: 1998-07-29 13:00:42 +00:00
tools Add mid scripts. Mid is a tool which create a Message-ID database 1998-05-20 09:20:02 +00:00
usr.bin Brucifixion. 1998-07-28 10:08:16 +00:00
usr.sbin Document the kern.logsigexit sysctl variable (sort of). 1998-07-29 08:30:37 +00:00
COPYRIGHT This is the official 4.4 Lite copyright. 1994-09-11 07:53:28 +00:00
Makefile Oops, don't build tools for building games, etc. when we're not building 1998-07-07 09:59:48 +00:00
Makefile.alpha Add perl to the list of build tools because it is needed to build the 1998-05-12 23:11:58 +00:00
README Re-alphabetize and update the subdir descriptions. 1998-06-30 08:08:05 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on: $Id: README,v 1.11 1997/08/09 14:36:20 jkh Exp $

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 and the contents of /etc.  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 with config(8) is a somewhat more involved process,
documentation for which can be found at:
   http://www.freebsd.org/handbook/kernelconfig.html
And in the config(8) man page.

The sample kernel configuration files reside in the sys/i386/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 LINT contains entries for all possible devices, not
just those commonly used, and is meant more as a general reference
than an actual kernel configuration file (a kernel built from it
wouldn't even run).


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

contrib		Packages contributed by 3rd parties.

crypto		Export controlled 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.

kerberosIV	Kerberos package - also export controlled.

lib		System libraries.

libexec		System daemons.

lkm		Loadable Kernel Modules.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		DES and DES-related utilities - NOT FOR EXPORT!

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/handbook/synching.html