NetBSD/sys/dev/ata
bouyer c31b572a47 Allow polled commands to be queued, if ata_exec_xfer() is called in thread
context. For this introduce 3 new xfer tags:
- C_WAIT, equivalent of AT_WAIT
- C_WAITACT, when there is a thread waiting on this xfer to become the active
  one (that is, to be at the head of the queue)
- C_FREE, set by ata_free_xfer() when it can't free the xfer because it's
  still in use. The holder should then free the xfer ASAP.

If ata_exec_xfer() is called with (C_POLL | C_WAIT), and there is already
xfers to be processed, assert C_WAITACT and sleep.
atastart() checks for C_WAITACT, and wakeup the thread waiting for this xfer
to become active if set. atastart() won't process this xfer, it's the
responsability of the thread waked up to handle it.

Fix (the right way) kern/27421 by Martin Husemann.
2004-10-30 23:10:37 +00:00
..
ata_raid_promise.c move buffer queue related stuffs from buf.h to their own header, bufq.h. 2004-10-28 07:07:35 +00:00
ata_raid.c move buffer queue related stuffs from buf.h to their own header, bufq.h. 2004-10-28 07:07:35 +00:00
ata_raidreg.h Experimental support for RAID volumes configured by ATA "RAID" controllers. 2003-01-27 18:21:23 +00:00
ata_raidvar.h Experimental support for RAID volumes configured by ATA "RAID" controllers. 2003-01-27 18:21:23 +00:00
ata_wdc.c move buffer queue related stuffs from buf.h to their own header, bufq.h. 2004-10-28 07:07:35 +00:00
ata.c Allow polled commands to be queued, if ata_exec_xfer() is called in thread 2004-10-30 23:10:37 +00:00
atareg.h Put an #ifdef _KERNEL around inline functions using panic(). 2004-08-23 10:08:48 +00:00
atavar.h Allow polled commands to be queued, if ata_exec_xfer() is called in thread 2004-10-30 23:10:37 +00:00
files.ata make the software managed bad-sector list optional 2004-08-30 09:34:41 +00:00
ld_ataraid.c move buffer queue related stuffs from buf.h to their own header, bufq.h. 2004-10-28 07:07:35 +00:00
Makefile Serial ATA register definitions. 2003-12-14 17:14:47 +00:00
sata_subr.c Add common routines for SATA controllers. Right now, we have sata_speed(), 2004-05-28 23:26:27 +00:00
satapmpreg.h Register description for SATA port multipliers. 2004-08-21 02:25:26 +00:00
satareg.h Fix typo reported by Alexander Yurchenko grange at rt mipt ru in private 2004-05-23 23:07:59 +00:00
satavar.h Add common routines for SATA controllers. Right now, we have sata_speed(), 2004-05-28 23:26:27 +00:00
wd.c move buffer queue related stuffs from buf.h to their own header, bufq.h. 2004-10-28 07:07:35 +00:00
wdvar.h Add support for wedges to the ATA disk driver. 2004-09-25 03:34:02 +00:00