freebsd kernel with SKQ
Go to file
mjacob 1c323f5567 Roll revision levels. Add support for the Qlogic 2200 (warn about
not having SCSI_ISP_SCCLUN config defined if we don't have f/w for
the 2200- it's resident firmware uses SCCLUN (65535 luns)). Change
the way the default LoopID is gathered (it's now a platform specific
define so that some attempt at a synthetic WWN can be made in case
NVRAM isn't readable).

Change initialization of options a bit- don't use ADISC. Set
FullDuplex mode if config options tells us to do so. Do not use
FULL_LOGIN after LIP- it's the right thing to do but it causes too
much loop disruption (Loop Resets). Sanity check some default
values. Redo construction of port and node WWNs based upon what we
have- if we have 2 in the top nibble, we can have distinct port
and node WWNs. Clean up some SCCLUN related code that we obviously
had never compiled (:-(). Audit commands coming int ispscsicmd and
don't throw commands at Fibre devices that do not have Class 3
service parameters TARGET ROLE defined.

Clean up f/w initialization a bit. Add Fabric support (or at least
the first blush of it). Whew - way too much to describe here.
Basically, after a LIP, hang out until we see a Loop Up or a Port
DataBase Change async event, then see if we're on a Fabric
(GET_PORT_NAME of FL_PORT_ID). If we are, try and scan the fabric
controller for fabric devices using the GetAllNext SNS subcommand.
As we find devices, announce them to the outer layer. Try and do
some guard code for broken (Brocade) SNS servers (that get stuck
in loops- gotta maybe do this a different way using the GP_ID3 cmd
instead).  Then do a scan of the lower (local loop) ids using a
GET_PORT_NAME to see if the f/w has logged into anything at that
loop id. If so, then do a GET_PORT_DATABASE command.  Do this scan
into a local database. At this point we can say the loop is 'Ready'.
After this, we merge our local loop port database with our stored
port database- in a as yet to be really fully exercised fashion we
try and follow the logic of something having moved around. The
first time we see something at a Loop ID, we fix it, for the purpose
of this system instance, at that Loop ID. If things shift around
so it ends up somewhere else, we still keep it at this Loop ID (our
'Target') but use the new (moved) Loop ID when we actually throw
commands at it. Check for insane cases of different Loop IDs both
claiming to have the same WWN- if that happens, invalidate both.
Notify the outer layer of devices that have arrived and devices
that have gone away. *Finally*, when this is done, search the
softc's database of Fabric devices and perform logout/login actions.
The Qlogic f/w maintains logout/login for all local loop devices.
We have to maintain logout/login for fabric devices- total PITA.
Expect to see this area undergo more change over time.
1999-07-02 23:06:38 +00:00
bin Correct reference to the obsolete vadvise() to madvise() (with appropriate 1999-06-30 11:50:09 +00:00
contrib * The OBSTACK_CHUNK_SIZE #define was in the "Code generation parameters" 1999-07-02 19:26:45 +00:00
crypto Merge from non-crypto version: 1999-06-17 09:24:37 +00:00
etc Add SSL versions of imap, pop3 and telnet (imaps, pop3s and telnets) 1999-07-02 16:55:04 +00:00
games add support to buildworld as a normal user: 1999-06-24 22:50:24 +00:00
gnu Live & postmortem kernel debugging support for the alpha platform. 1999-06-21 15:00:15 +00:00
include Allow fpsetmask(3) and friends to be used from a C++ program on the Alpha. 1999-06-22 17:08:25 +00:00
kerberos5 Link everything against libcrypt. ELF builds complain without it. 1999-01-25 06:49:43 +00:00
kerberosIV Link everything against libcrypt. ELF builds complain without it. 1999-01-25 06:49:43 +00:00
lib Nuke the BUGS sections of these man pages because they are not appropriate. 1999-07-01 21:13:06 +00:00
libexec Update the SYNOPSIS to reflect that the -l option can be specified 1999-06-28 10:50:47 +00:00
release Mention the Rise MP6, list merged items. There are probably a pile more 1999-07-02 23:04:28 +00:00
sbin Remove the volume, plex, sd and drive commands which allowed the user 1999-07-02 08:01:12 +00:00
secure Typo in comment. 1999-04-25 13:14:36 +00:00
share Flesh out VOP_ADVLOCK.9 with a description of the available flags 1999-06-30 12:02:52 +00:00
sys Roll revision levels. Add support for the Qlogic 2200 (warn about 1999-07-02 23:06:38 +00:00
tools Move the proper set of libraries. 1999-04-05 21:41:56 +00:00
usr.bin Remove unused variable. 1999-07-02 20:46:03 +00:00
usr.sbin Eliminate some varargs abuse. 1999-07-02 22:36:14 +00:00
COPYRIGHT Add Id keyword 1998-09-13 23:11:13 +00:00
Makefile Change !defined(NOAOUT) knob to defined(WANT_AOUT). 1999-03-29 10:59:53 +00:00
Makefile.inc0 fix (non destructive) braino to do with quoting in makefiles. 1999-06-06 20:21:27 +00:00
Makefile.inc1 ${.CURDIR} doesn't have to be /usr/src, especially in a cvs checkout. Make 1999-06-04 17:34:28 +00:00
Makefile.upgrade Set X11BASE to something deliberately bogus in elf_buildworld so that 1999-03-23 08:09:25 +00:00
README No more src/lkm dir... 1999-01-06 14:02:35 +00:00
UPDATING Compaq smart raid 1999-06-24 04:20:37 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on: $Id: README,v 1.13 1998/09/13 09:38:34 markm 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.

lib		System libraries.

libexec		System daemons.

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