One basic struct, a function to setup a queue with a specific strategy and
three macros to put buf's into the queue, get and remove the next buf or
get the next buf without removal.
The BUFQ_XXX interface will be removed in the future.
The B_ORDERED flag is not longer supported.
Approved by: Jason R. Thorpe <thorpej@wasabisystems.com>
XS_SELTIMEOUT and XS_TIMEOUT errors- but only do so if the device exists
already.
Devices that are being probed won't be found via periph_lookup, so we can
use that to find if a device exists for the purposes of honoring retries.
deal with such xfers, and can wedge the system with some controllers.
It's a bug to request such xfers for ATAPI, but as the request may come
from userland we have to protect against it.
So check for version 3, not 4 when looking for DT support.
This should be safe as these bits are reserved for older devices, they
should be set to 0 when not supported.
Set this to dv_xname for scsibus and atapibus.
Set the name of the kernel thread to chan_name instead of controller's
name:channel number (so that we can use this name for controller-specific
threads).
all function pointers passed in from the adapter driver.
This partly fixes PR 13480, i.e. the FREECOM CD driver works now in pcmcia
adapters.
The remaining issue (timing problems with slow cards and cardbus bridges)
is probably the cause of several other PRs too.
inserted into comments. I really think that more testing was required,
but Christos was eager.
+ Add in tape block/file position reporting support.
+ Change the prevent/allow ejection code so that if the device
is close the tape can be ejected. This allows robots to eject
the tape even if the tape isn't at BOT.
+ Don't do a null filemark write if we're reading block position. This
was such an abysmal performance killer that it had to go. Assume
that the tape will DTRT and tell you what the tape position really is
including any buffered data. You are depending on the tape to do
the right thing to report position at all, so the risk factors don't
increase appreciably here. BTW- we only do this for logical block
position. For 'hardware' block position, we still flush.
+ Some substantial tweaking in st_interpret_sense. This essentially duplicates
the FreeBSD driver's exception handling code. This is to try and correctly
handle EOM cases. I'm not sure that this is now correct with respect to
the ENABLE EARLY WARNING code- I hadn't gotten around to validating that.
Add in full 32 bit residuals- this can then be available to an update
MTIOCGET in the future.
+ Make sure we handle SKEY_VOLUME_OVERFLOW correctly.
normal case, and in the polling or "no thread yet" cases:
don't return an error from scsipi_complete(), as the error should already have
been handled in scsipi_complete() and eventually periph driver callbacks.
Should fix kern/15190.
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map). Try to deal with this:
* Group all information about the backend allocator for a pool in a
separate structure. The pool references this structure, rather than
the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
to become available, but will still fail if it cannot callocate KVA
space for the pages. If this happens, carefully drain all pools using
the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
some pages, and use that information to make draining easier and more
efficient.
* Get rid of PR_URGENT. There was only one use of it, and it could be
dealt with by the caller.
From art@openbsd.org.
terminating zero and uninitialized dada following
-use use the "vendor" field for the name which is used in the default
disklabel, the "product" field is meaningless or not existing for ATAPI
(serial number)
on disks in a generic way. Implement these ioctls for SCSI disks.
This is not fully fleshed-out yet, but it allows people to experiment
with disk caches more easily.
kill ata_atapi_attach. Change atapibus to use a struct scsipi_channel instead
of ata_atapi_attach as attach arch. Create a ata_device, compatible with
scsipi_channel, to attach wd.