Home | History | Annotate | Download | only in scsipi
History log of /src/sys/dev/scsipi/scsipi_all.h
RevisionDateAuthorComments
 1.35  10-Feb-2025  jakllsch Fix misspelling of unused #define
 1.34  09-Nov-2024  mlelstv Add VPD descriptor definitions.
 1.33  25-Dec-2007  perry Convert many of the uses of __attribute__ to equivalent
__packed, __unused and __dead macros from cdefs.h
 1.32  01-Dec-2006  martin branches: 1.32.24; 1.32.30; 1.32.34; 1.32.38;
On Christos' request, reinstantiate the packed->__packed__ part of the
backed out change.
 1.31  01-Dec-2006  martin Back out align(4) for all struct decls - it breaks various things all
over the tree (for example esiop on sparc64 won't boot any more).
 1.30  30-Nov-2006  christos PR/34202: Dave Huang: Accessing cd device on alpha causes kernel trap

From the PR:
Since struct scsipi_read_discinfo_data is an odd number of bytes long
(35 bytes), ti ends up being unaligned. wdc_datain_pio() uses
bus_space_read_multi_4() to read the response from the drive, and
since ti is unaligned, it causes an unaligned access fault.

Add __aligned__(4) to all the structures.
 1.29  11-Dec-2005  christos branches: 1.29.20; 1.29.22;
merge ktrace-lwp.
 1.28  21-Feb-2005  thorpej branches: 1.28.4;
Part 1 of a cleanup pass over the SCSI subsystem. The aim is to name
everything "scsi_*", since we really are talking about the SCSI command
set, ATAPI transport not withstanding. Improve the names of many structures,
and prepend "SCSI_" onto all SCSI command opcodes. Place items described
by the SCSI Primary Commands document into scsi_spc.h.
 1.27  01-Feb-2005  reinoud Backing out changes to clean up scsipi. I was pointed out there were
problems i hadn't seen. To prevent lossage i'd decided to back off all
changes and let them be reviewed on tech-kern.
 1.26  31-Jan-2005  reinoud Part of the cleanup of sys/scsipi's use of types; rename all u_int* to
uint* and change the u_long's to uint32_t's where possible. Note that the
iocl definitions/hooks have to be ulong (or u_long) or they'll bomb out.
 1.25  16-Oct-2003  mycroft branches: 1.25.8; 1.25.10;
Do a 36-byte SCSI 2 inquiry first, and iff that returns an additional length
>32 do a 74-byte inquiry. Fixes problems with devices that barf on longer
inquiries. (Linux uses 36 bytes almost everywhere, as a data point.)
 1.24  08-Sep-2003  mycroft Perform the exorcism on scsipi_mode_select() too.
 1.23  08-Sep-2003  mycroft Exorcise something evil and wrong in scsipi_mode_sense().
 1.22  19-Nov-2001  soren branches: 1.22.16;
Remove duplicate struct scsipi_start_stop.
 1.21  02-Sep-2001  thorpej Comment what the PF bit means in the MODE SELECT command, and
define a scsipi_mode_page_header, which has the common fields
(page code and page length) of all mode pages.
 1.20  02-Sep-2001  thorpej Centralize the definition of the page code mask and page-savable bit
in the pages returned by MODE SENSE.
 1.19  22-May-2001  bouyer branches: 1.19.2;
Remove one extra byte from scsipi_mode_select; pointed out by Juergen
Hannken-Illjes.
 1.18  18-May-2001  is When abusing structs to describe on-wire (or in-hardware) data structures,
they need to be packed. (Without this, breaks on at least m68k.)
 1.17  14-May-2001  bouyer Use SCSI/ATAPI common definition for MODE_{SELECT,SENSE}{,_BIG}. Define
functions to send theses commands in scsipi_base.c and use them instead
of ad-hoc commands setups.
 1.16  25-Apr-2001  bouyer Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
(no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
 1.15  15-May-2000  dante branches: 1.15.6;
Add few peripheral device type
Remove "???" from T_IT8_1/2. They actually are pre-press devices for graphic arts as described by ASC IT8
Zeros and blanks scsipi_inquiry_data from byte 58 to byte 74 if additional_length is less than 58
 1.14  14-May-2000  dante Fix a typo
 1.13  14-May-2000  dante Change scsipi_inquiry_data strucure to be ANSI SPC-2 rev16 compliant
 1.12  30-Dec-1998  dbj branches: 1.12.8;
Added parens around ADD_BYTES_LIM() macro definition to protects its
use of the low precedence ?: conditional operator. This fixes a bug
in scsipi_interpret_sense when printing out debugging info.
 1.11  19-Nov-1998  thorpej Protect against multiple inclusion.
 1.10  11-Jul-1998  mjacob Clarify that Sense Key 1 is a "RECOVERED ERROR"- not just an error.
 1.9  01-Jul-1998  mjacob oh, for goodness sake, define the bloody Sense Keys...
 1.8  24-Jun-1998  mjacob add the SCSI-2/SCSI-3 Group ID definitions
 1.7  13-Feb-1998  enami Backout previous change, and rather, remove all protection but the one
actually currently required. Suggested by Charles M. Hannum.
 1.6  13-Feb-1998  enami Fix or add protection for mutiple inclusion.
 1.5  03-Oct-1997  thorpej Clean up and comment the device types, and add the "enclosure services",
"storage array", and "IT8" types.
 1.4  02-Oct-1997  mjacob kern/3022: make sure that printing sense info in SCSIDEBUG case starts at
the right place and contains the right number of bytes.
 1.3  01-Oct-1997  enami Cosmetic changes to keep coding style consistency in this directory;

- Indent with tab of width 8.
- Use four column to indent continuation line.
- Fold long line if possible.
- Use return (xx) instead of return xx.
- Compare pointer against NULL instead of testing like boolean.
- Delete whitespace at the end of line.
- Delete whitespace in front of function call operator.
- Delete whitespace after cast.
- Dereference a pointer to function explicitly.
- Add an empty line after local variable declaration.
- Use NULL instead of (char *)0.
- Dont use block for single statement.
 1.2  27-Aug-1997  bouyer branches: 1.2.2;
Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
 1.1  01-Jul-1997  bouyer branches: 1.1.2;
file scsipi_all.h was initially added on branch bouyer-scsipi.
 1.1.2.2  01-Jul-1997  thorpej Purely cosmetic formatting changes: some spaces -> tabs, indenting
consistency in prototypes.
 1.1.2.1  01-Jul-1997  bouyer New merged scsi/atapi code. Tested on i386 and sparc. Commiting to a branch
for now, so that it can be tested on other ports too.
The config sheme is as follow:
New merged scsi/atapi code. Tested on i386 and sparc. Commiting to a branch
for now, so that it can be tested on other ports too.
The config sheme is as follow:
scsibus at aha
sd at scsibus
cd at scsibus
atapibus at wdc
cd at atapibus
cd has bus-specific config and function front-end in scsicd.c and atapicd.c
The call to theses functions from cd.c is conditionned to
NSCSICD and NATAPICD (all defined in cd.h by config).
 1.2.2.3  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.2.2.2  27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.2.2.1  27-Aug-1997  thorpej file scsipi_all.h was added on branch marc-pcmcia on 1997-08-27 23:33:22 +0000
 1.12.8.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.

Main changes to the scsipi code itself:
- add a scsipi_channel->type to allow umass to attach to both atapibus and
scsibus. Will die when IDE is converted from ata_atapi_attach to
scsipi_channel/scsipi_adapter
- Add a chan_defquirks to scsipi_channel so that adapters can pass a default
set of quirks to be set for each device attached
- add adapt_getgeom and adapt_accesschk callbacks
 1.12.8.1  19-Oct-1999  thorpej Completely rewritten scsipi_xfer execution engine:
- All xfers are queued in the mid-layer, rather than doing so in an
ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
(no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
the need to use buggy tag ID allocation schemes in many adapter drivers).

There is a lot more work to do, but this correctly functions for the most
part on several file servers I run.
 1.15.6.3  08-Jan-2002  nathanw Catch up to -current.
 1.15.6.2  21-Sep-2001  nathanw Catch up to -current.
 1.15.6.1  21-Jun-2001  nathanw Catch up to -current.
 1.19.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.19.2.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.22.16.4  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.22.16.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.22.16.2  18-Sep-2004  skrll Sync with HEAD.
 1.22.16.1  03-Aug-2004  skrll Sync with HEAD
 1.25.10.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.25.8.1  29-Apr-2005  kent sync with -current
 1.28.4.2  21-Jan-2008  yamt sync with head
 1.28.4.1  30-Dec-2006  yamt sync with head.
 1.29.22.1  10-Dec-2006  yamt sync with head.
 1.29.20.1  12-Jan-2007  ad Sync with head.
 1.32.38.1  02-Jan-2008  bouyer Sync with HEAD
 1.32.34.1  26-Dec-2007  ad Sync with head.
 1.32.30.1  18-Feb-2008  mjf Sync with HEAD.
 1.32.24.1  09-Jan-2008  matt sync with HEAD

RSS XML Feed