If the read or write request can fit into a 6-byte cdb, then
use a 6-byte cdb, otherwise use the 10-byte as before.
In sd.c:
In sdattach(), make a note if the device is "ancient" (i.e.
inqbuf.version & SID_ANSII == 0).
Implement sdminphys(): if the device is "ancient", shorten the
transfer so it will fit into a 6-byte cdb.
These changes have eliminated the rejected read/write requests on my
Sun 3/60 with 2 ESDI disks behind an Emulex MD21.
Remove dvma_malloc/dvma_free; drivers should allocate kernel memory and
use dvma_mapin/dvma_mapout to double map it in DVMA space.
Make the resource map `dvmamap' responsible for all DVMA allocation.
The VM map `physmap' only serves the role of placeholder in the VM system.
Make vm_object_prefer() call MD aligner for "pageless" objects too,
so we can have more control over the virtual address to be used.
Implementation could be simpler if we by-pass the object to mapped, but
we'd loose the ability to adapt alignment to objects that were previously
mmap'ed with MAP_FIXED on.
allocated, as noticed by Chuck Cranor. In addition to re-arranging
the assignment as suggested by Niklas Hallqvist, check to see if maxproc
is higher than the number of available user PTs. If it is, lower maxproc
to that value, the rationale being that it's much more desirable to have
fork() return EAGAIN than to have your system wedge.
XXX note that root can still raise maxproc with sysctl(2) later. It's
probably worth having further discussion about this issue, but until
everyone has time to think about it, this seems like an acceptable solution
for the time being.
again, and it turned NetBSD in ostype[] to N^CtBSD... Thanks Charles (again)
Also call epstop() in the attach routine to make sure that the pci card
gets reset properly.
This is a step towards getting the drivers ready for new config.
Clean up namespace, remove several instances of global arrays. Instead,
use a softc to carry state around. Where possible, pass a pointer to
the softc rather than a unit number.
Pointers to hardware and software constructs are now stored per port
in each instance of the softc (one softc per board) rather than indexed
by minor number.
This is a step towards getting the drivers ready for new config.
Clean up namespace, remove several instances of global arrays. Instead,
use a softc to carry state around. Where possible, pass a pointer to the
softc rather than a unit number.