Commit Graph

17 Commits

Author SHA1 Message Date
bouyer 937a7a3ed9 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
2001-04-25 17:53:04 +00:00
matt c77ccc45d8 Make this stuff compile with -wstrict-prototpes -wmissing-prototypes.
More use of prototypes inside includes should be done.
2000-12-03 01:42:29 +00:00
thorpej 7b918b4088 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:40:33 +00:00
tsubai 3488febf81 Move dma_intr() to here. 1999-12-18 05:00:56 +00:00
tsubai be68900e77 Add interrupt level locator and use it instead of hard-coding. 1999-12-17 06:05:37 +00:00
tsubai 9df2e626d6 Use hb_intr_establish(). 1999-12-17 03:21:10 +00:00
thorpej e6c88a7686 Update for SCSIPI changes. 1999-09-30 22:59:52 +00:00
thorpej 11cae42531 Centralize the declaration and clearing of `cold'. 1999-09-17 19:59:35 +00:00
mjacob 74bc9f26d5 Update HBAs to incorporate the new max_lun property. 1998-12-05 19:43:33 +00:00
thorpej 5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43:00 +00:00
thorpej 29d472f53d Garbage-collect the open_target_lu and close_target_lu entry points from
struct scsipi_adapter; they were not used.

Add a scsipi_ioctl entry point to struct scsipi_adapter.  This will be
used to issue ioctl commands to the host adapters.

Inspired by PR #6090, from Matt Jacob.
1998-10-10 00:28:28 +00:00
tsubai f6dcf3f9c6 Change vm_offset_t to [pv]addr_t. 1998-08-21 14:52:29 +00:00
tsubai 5617a263e0 Correctly initialize scb struct. 1998-08-21 13:19:43 +00:00
tsubai 5c89a4e36b Move static variables to struct softc.
Remove unused struct members.
1998-06-10 16:27:30 +00:00
tsubai b64a62fc73 Change "extern var;" --> "extern int var;" and so on. (for egcs -Wall) 1998-06-01 19:31:04 +00:00
thorpej 157b712178 Rename NetBSD/news to NetBSD/newsmips. 1998-03-04 22:14:13 +00:00
tsubai 117df8f77a Initial import of NetBSD/news. 1998-02-18 13:48:03 +00:00