Home | History | Annotate | only in /src/sys/dev/vme
History log of /src/sys/dev/vme
RevisionDateAuthorComments
 1.3 11-Apr-2001  jdolecek Put back all header files defining ioctls
 1.2 11-Apr-2001  jdolecek Only install headers which are actually used by our userland. This
saves about 2.2MB under /usr/include/dev/. Discussed on tech-kern@
recently.

I HOPE to get the list right. The headers I left in are ones
used for MI tools and those whose usage I discovered by grep over tree sources.
Feel free to put needed includes back in if you encounter anything which
should not be removed from lists.
 1.1 12-Jun-1998  cgd branches: 1.1.14; 1.1.26;
Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install. (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.) The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change. Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
 1.1.26.1 21-Jun-2001  nathanw Catch up to -current.
 1.1.14.1 21-Apr-2001  bouyer Sync with HEAD
 1.10 09-Jan-2007  cube vmegeneric never saw the light of the source tree. After 7 years, I guess
nobody missed it.
 1.9 11-Jun-2001  fredette branches: 1.9.38; 1.9.68;
Added support for the VME `sc' SCSI board. Compiles,
but needs testers as the author doesn't actually have
the hardware.
 1.8 24-Feb-2001  lukem branches: 1.8.2;
whitespace police
 1.7 22-Jul-2000  pk Add short device descriptions in comment lines.
 1.6 03-Jul-2000  pk The `si' driver has been transformed into an MI VME frontend.
 1.5 30-Jun-1999  drochner branches: 1.5.2; 1.5.12;
new, more mi, VME framework
 1.4 16-Feb-1998  thorpej branches: 1.4.10;
Remove "class" declarations, and add "devclass" declarations where
appropriate. Fix several inconsistencies between device class and
attributes. Mostly from Chris Demetriou.
 1.3 12-Jan-1998  thorpej Adjust for changes to config.
 1.2 02-Nov-1997  pk Enable the `xy' entries.
 1.1 01-Nov-1997  pk Start an MI VMEbus framework.

Includes two sample drivers: IE ethernet driver (VME front-end to
dev/ic/i82586.c) and the XD disk driver, both converted from the
sparc versions.
 1.4.10.1 01-Jul-1999  thorpej Sync w/ -current.
 1.5.12.1 22-Jul-2000  pk Pull up rev. 1.6.

The `si' driver has been transformed into an MI VME frontend.
 1.5.2.2 12-Mar-2001  bouyer Sync with HEAD.
 1.5.2.1 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.
 1.8.2.1 21-Jun-2001  nathanw Catch up to -current.
 1.9.68.1 12-Jan-2007  ad Sync with head.
 1.9.38.1 26-Feb-2007  yamt sync with head.
 1.36 04-Oct-2025  thorpej Add a shared function to query the common properties used for configuring
an Ethernet address.
 1.35 12-Jul-2022  thorpej Remove unneeded bus_space_barrier() calls.
 1.34 24-Oct-2021  andvar fix various typos in comments, mainly copypasta.
 1.33 14-Aug-2020  martin Adapt to new proplib api
 1.32 25-Apr-2019  msaitoh No functional change:
- Use __arraycount().
- u_int_{8,16,32}_t -> uint_{8,16,32}_t
- KNF.
- Tabify.
- Remove extra space.
 1.31 18-Aug-2014  riastradh branches: 1.31.20;
Sizeof struct ievme, not sizeof size_t.

Noted by maxv@, compile-tested for sparc.
 1.30 03-Jun-2011  tsutsui branches: 1.30.8; 1.30.12; 1.30.14; 1.30.22; 1.30.28;
Split device_t/softc of i82586. No crash on TME emulating sun2.
 1.29 01-Feb-2011  chuck branches: 1.29.2;
udpate license clauses on my code to match the new-style BSD licenses.
remove no-longer-valid wustl email address for me.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.28 22-Jan-2010  martin branches: 1.28.4; 1.28.6; 1.28.8;
Remove sparc specific code, use device properties instead.
 1.27 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.26 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.25 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.24 05-Apr-2008  cegger branches: 1.24.4; 1.24.12; 1.24.18;
use aprint_*_dev and device_xname
 1.23 19-Oct-2007  ad branches: 1.23.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.22 11-Dec-2005  christos branches: 1.22.30; 1.22.44; 1.22.46; 1.22.50;
merge ktrace-lwp.
 1.21 03-Jun-2005  tsutsui branches: 1.21.2;
Add const.
 1.20 27-Feb-2005  perry nuke trailing whitespace
 1.19 04-Feb-2005  perry de-__P
 1.18 15-Mar-2004  pk branches: 1.18.8; 1.18.10;
Replace myetheraddr() by prom_getether().
 1.17 02-Oct-2002  thorpej branches: 1.17.6;
Add trailing ; to CFATTACH_DECL.
 1.16 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.15 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.14 13-Nov-2001  lukem add RCSIDs
 1.13 13-Mar-2001  tsutsui branches: 1.13.2;
Update for recent changes to the MI i82586 driver.
(added 'why' argument to the channel attention hook function)
 1.12 22-Jan-2001  bjh21 branches: 1.12.2;
Patch from PR kern/8001, submitted by Rafal Boni.

This adds support for EtherExpress/16 cards with 16k of RAM, and in the
process adds general support for PIO mode on these cards. This entails
changing the way the i82586 driver handles bus barriers, since it doesn't
allow for strange cases like this.

This has been tested on the i386 port with the 'ix' driver in both
16KB (which was the source of the problem) and 32KB modes, as well
as with the 'ef' driver. I've tested it (briefly) with 'ei' on arm26
as well. In theory, drivers other than 'ix' should follow precisely the
same code paths as before.
 1.11 10-Jul-2000  mrg these don't need <uvm/uvm_extern.h> at all, actually.
 1.10 29-Jun-2000  fvdl Fix some missed vm/vm.h -> uvm/uvm_extern.h conversions.
 1.9 10-Apr-2000  chs sparc -> __sparc__
sun3 -> __sun3__
 1.8 13-Mar-2000  soren Fix doubled 'the's in comments.
 1.7 30-Jun-1999  drochner branches: 1.7.2;
update for new VME framework
 1.6 23-Mar-1999  pk branches: 1.6.4;
To clear a chunk of bus memory use bus_space_set_regionN().
 1.5 28-Feb-1998  pk Remove `_NEW_I82586'.
 1.4 06-Feb-1998  pk vme_bus_probe() takes an `offset' argument.
 1.3 04-Feb-1998  pk Account for changed vme_bus_probe() args.
Fix vme_ie_write24() to use bus_space_write_2() in stead of poking
directly into the bus handle.
 1.2 25-Jan-1998  pk Adapt to recent i82586 driver changes.
 1.1 01-Nov-1997  pk Start an MI VMEbus framework.

Includes two sample drivers: IE ethernet driver (VME front-end to
dev/ic/i82586.c) and the XD disk driver, both converted from the
sparc versions.
 1.6.4.1 01-Jul-1999  thorpej Sync w/ -current.
 1.7.2.3 27-Mar-2001  bouyer Sync with HEAD.
 1.7.2.2 11-Feb-2001  bouyer Sync with HEAD.
 1.7.2.1 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.
 1.12.2.3 18-Oct-2002  nathanw Catch up to -current.
 1.12.2.2 14-Nov-2001  nathanw Catch up to -current.
 1.12.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.13.2.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.13.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.17.6.6 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.17.6.5 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.17.6.4 04-Feb-2005  skrll Sync with HEAD.
 1.17.6.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.17.6.2 18-Sep-2004  skrll Sync with HEAD.
 1.17.6.1 03-Aug-2004  skrll Sync with HEAD
 1.18.10.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.18.10.1 12-Feb-2005  yamt sync with head.
 1.18.8.1 29-Apr-2005  kent sync with -current
 1.21.2.1 27-Oct-2007  yamt sync with head.
 1.22.50.1 25-Oct-2007  bouyer Sync with HEAD.
 1.22.46.1 06-Nov-2007  matt sync with HEAD
 1.22.44.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.22.30.1 23-Oct-2007  ad Sync with head.
 1.23.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.24.18.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.24.12.1 28-Apr-2009  skrll Sync with HEAD.
 1.24.4.3 11-Mar-2010  yamt sync with head
 1.24.4.2 16-May-2009  yamt sync with head
 1.24.4.1 04-May-2009  yamt sync with head.
 1.28.8.1 08-Feb-2011  bouyer Sync with HEAD
 1.28.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.28.4.2 12-Jun-2011  rmind sync with head
 1.28.4.1 05-Mar-2011  rmind sync with head
 1.29.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.30.28.1 22-Aug-2014  martin Pull up following revision(s) (requested by riastradh in ticket #44):
sys/altq/altq_jobs.c 1.7
Fix error branches to avoid leaks, noted by maxv@.
sys/dev/ic/oosiop.c 1.14
Fix leaks in oosiop_alloc_cb error branches, noted by maxv@.
While here, avoid a sketchy pointer cast that probably falls afoul
of strict aliasing rules.
sys/dev/qbus/if_qe.c 1.73
Avoid leak in error branch, noted by maxv@, compile-tested for vax.
sys/dev/rasops/rasops.c 1.72
Don't leak f on failure. Noted by maxv@.
sys/dev/vme/if_ie_vme.c 1.31
Sizeof struct ievme, not sizeof size_t.
Noted by maxv@, compile-tested for sparc.
sys/net/if_gre.c 1.160
Don't leak in gre_clone_create error branch.
Noted by maxv@, compile-tested for amd64.
 1.30.22.1 03-Nov-2014  msaitoh Pull up following revision(s) (requested by riastradh in ticket #1117):
sys/dev/rasops/rasops.c: revision 1.72
sys/dev/vme/if_ie_vme.c: revision 1.31
sys/dev/qbus/if_qe.c: revision 1.73
sys/altq/altq_jobs.c: revision 1.7
sys/net/if_gre.c: revision 1.160
sys/dev/ic/oosiop.c: revision 1.14
- Fix error branches in altq_jobs.c to avoid leaks, noted by maxv@.
- Fix leaks in oosiop_alloc_cb error branches, noted by maxv@.
While here, avoid a sketchy pointer cast that probably falls afoul of
strict aliasing rules. Compile-tested only, with hppa.
- Don't leak f on failurein rasops.c. Noted by maxv@.
Compile-tested only, with zaurus.
- Avoid leak in error branch in if_qe.c, noted by maxv@, compile-tested for
vax.
- Sizeof struct ievme, not sizeof size_t in if_ie_vme.c.
Noted by maxv@, compile-tested for sparc.
- Don't leak in gre_clone_create error branch.
Noted by maxv@, compile-tested for amd64.
 1.30.14.1 03-Nov-2014  msaitoh Pull up following revision(s) (requested by riastradh in ticket #1117):
sys/dev/rasops/rasops.c: revision 1.72
sys/dev/vme/if_ie_vme.c: revision 1.31
sys/dev/qbus/if_qe.c: revision 1.73
sys/altq/altq_jobs.c: revision 1.7
sys/net/if_gre.c: revision 1.160
sys/dev/ic/oosiop.c: revision 1.14
- Fix error branches in altq_jobs.c to avoid leaks, noted by maxv@.
- Fix leaks in oosiop_alloc_cb error branches, noted by maxv@.
While here, avoid a sketchy pointer cast that probably falls afoul of
strict aliasing rules. Compile-tested only, with hppa.
- Don't leak f on failurein rasops.c. Noted by maxv@.
Compile-tested only, with zaurus.
- Avoid leak in error branch in if_qe.c, noted by maxv@, compile-tested for
vax.
- Sizeof struct ievme, not sizeof size_t in if_ie_vme.c.
Noted by maxv@, compile-tested for sparc.
- Don't leak in gre_clone_create error branch.
Noted by maxv@, compile-tested for amd64.
 1.30.12.1 03-Dec-2017  jdolecek update from HEAD
 1.30.8.1 03-Nov-2014  msaitoh Pull up following revision(s) (requested by riastradh in ticket #1117):
sys/dev/rasops/rasops.c: revision 1.72
sys/dev/vme/if_ie_vme.c: revision 1.31
sys/dev/qbus/if_qe.c: revision 1.73
sys/altq/altq_jobs.c: revision 1.7
sys/net/if_gre.c: revision 1.160
sys/dev/ic/oosiop.c: revision 1.14
- Fix error branches in altq_jobs.c to avoid leaks, noted by maxv@.
- Fix leaks in oosiop_alloc_cb error branches, noted by maxv@.
While here, avoid a sketchy pointer cast that probably falls afoul of
strict aliasing rules. Compile-tested only, with hppa.
- Don't leak f on failurein rasops.c. Noted by maxv@.
Compile-tested only, with zaurus.
- Avoid leak in error branch in if_qe.c, noted by maxv@, compile-tested for
vax.
- Sizeof struct ievme, not sizeof size_t in if_ie_vme.c.
Noted by maxv@, compile-tested for sparc.
- Don't leak in gre_clone_create error branch.
Noted by maxv@, compile-tested for amd64.
 1.31.20.1 10-Jun-2019  christos Sync with HEAD
 1.19 04-Aug-2023  rin sc(4) at vme(4): Fix panic due to false ENOMEM for DMA buffer

Similar fix to "sc(4) at mbmem(4)" one; make sure flags are correctly
initialized.

sun3 is not affected.
 1.18 10-Nov-2019  chs in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.17 06-Jul-2008  tsutsui branches: 1.17.84;
Split device_t/softc with misc cosmetic changes.
 1.16 28-Apr-2008  martin branches: 1.16.2; 1.16.4;
Remove clause 3 and 4 from TNF licenses
 1.15 05-Apr-2008  cegger branches: 1.15.2; 1.15.4;
use aprint_*_dev and device_xname
 1.14 19-Oct-2007  ad branches: 1.14.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.13 29-Mar-2006  thorpej branches: 1.13.18; 1.13.32; 1.13.34; 1.13.38;
Use device_cfdata().
 1.12 11-Dec-2005  christos branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12;
merge ktrace-lwp.
 1.11 27-Feb-2005  perry branches: 1.11.4;
nuke trailing whitespace
 1.10 04-Feb-2005  perry de-__P
 1.9 03-May-2003  wiz branches: 1.9.2; 1.9.10; 1.9.12;
DMA, not dma nor Dma.
 1.8 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.7 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.6 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.5 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.4 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.3 13-Nov-2001  lukem add RCSIDs
 1.2 27-Jun-2001  fredette branches: 1.2.2;
Don't define Debugger() if it's already defined.
It is always defined on the sun[23].
 1.1 11-Jun-2001  fredette branches: 1.1.2;
Added support for the VME `sc' SCSI board. Compiles,
but needs testers as the author doesn't actually have
the hardware.
 1.1.2.6 18-Oct-2002  nathanw Catch up to -current.
 1.1.2.5 08-Jan-2002  nathanw Catch up to -current.
 1.1.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.1.2.3 24-Aug-2001  nathanw Catch up with -current.
 1.1.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.1 11-Jun-2001  nathanw file sc_vme.c was added on branch nathanw_sa on 2001-06-21 20:06:33 +0000
 1.2.2.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.9.12.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.9.12.1 12-Feb-2005  yamt sync with head.
 1.9.10.1 29-Apr-2005  kent sync with -current
 1.9.2.2 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.9.2.1 04-Feb-2005  skrll Sync with HEAD.
 1.11.4.2 27-Oct-2007  yamt sync with head.
 1.11.4.1 21-Jun-2006  yamt sync with head.
 1.12.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.12.10.1 19-Apr-2006  elad sync with head.
 1.12.8.1 01-Apr-2006  yamt sync with head.
 1.12.6.1 22-Apr-2006  simonb Sync with head.
 1.12.4.1 09-Sep-2006  rpaulo sync with head
 1.13.38.1 25-Oct-2007  bouyer Sync with HEAD.
 1.13.34.1 06-Nov-2007  matt sync with HEAD
 1.13.32.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.13.18.1 23-Oct-2007  ad Sync with head.
 1.14.16.2 28-Sep-2008  mjf Sync with HEAD.
 1.14.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.15.4.2 04-May-2009  yamt sync with head.
 1.15.4.1 16-May-2008  yamt sync with head.
 1.15.2.1 18-May-2008  yamt sync with head.
 1.16.4.1 18-Jul-2008  simonb Sync with head.
 1.16.2.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.17.84.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.2 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.1 11-Jun-2001  fredette branches: 1.1.2; 1.1.122; 1.1.124; 1.1.126;
Added support for the VME `sc' SCSI board. Compiles,
but needs testers as the author doesn't actually have
the hardware.
 1.1.126.1 16-May-2008  yamt sync with head.
 1.1.124.1 18-May-2008  yamt sync with head.
 1.1.122.1 02-Jun-2008  mjf Sync with HEAD.
 1.1.2.2 21-Jun-2001  nathanw Catch up to -current.
 1.1.2.1 11-Jun-2001  nathanw file screg.h was added on branch nathanw_sa on 2001-06-21 20:06:34 +0000
 1.25 13-Feb-2024  thorpej Move sireg.h from vme/ to sun/ -- the same (or nearly so) register defns
are used by multiple bus attachments.
 1.24 10-Nov-2019  chs in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.23 17-Dec-2008  cegger branches: 1.23.66;
make this compile
 1.22 16-Dec-2008  christos replace bitmask_snprintf(9) with snprintb(3)
 1.21 28-Apr-2008  martin branches: 1.21.8;
Remove clause 3 and 4 from TNF licenses
 1.20 04-Apr-2008  tsutsui branches: 1.20.2; 1.20.4;
Split devict_t/softc for ncr5380sbc SCSI, and misc cosmetic changes.
 1.19 19-Oct-2007  ad branches: 1.19.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.18 04-Mar-2007  christos branches: 1.18.2; 1.18.14; 1.18.16; 1.18.20;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.17 29-Mar-2006  thorpej branches: 1.17.14;
Use device_cfdata().
 1.16 11-Dec-2005  christos branches: 1.16.4; 1.16.6; 1.16.8; 1.16.10; 1.16.12;
merge ktrace-lwp.
 1.15 27-Feb-2005  perry branches: 1.15.4;
nuke trailing whitespace
 1.14 04-Feb-2005  perry de-__P
 1.13 03-May-2003  wiz branches: 1.13.2; 1.13.10; 1.13.12;
DMA, not dma nor Dma.
 1.12 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.11 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.10 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.9 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.8 26-Mar-2002  fredette No longer assume that !DDB implies that Debugger() isn't defined.
Now only define Debugger() if it isn't defined already.
 1.7 15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.6 13-Nov-2001  lukem add RCSIDs
 1.5 11-Sep-2001  pk Move some logic from dma_start() to dma_setup(); inspired by the sun3 si version.
 1.4 20-Aug-2001  wiz branches: 1.4.2;
precede, not preceed.
 1.3 25-Apr-2001  bouyer branches: 1.3.2;
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.2 04-Jul-2000  thorpej branches: 1.2.2; 1.2.4; 1.2.6;
sparc/dev/sireg.h -> dev/vme/sireg.h
 1.1 03-Jul-2000  pk The `si' driver has been transformed into an MI VME frontend.
 1.2.6.7 18-Oct-2002  nathanw Catch up to -current.
 1.2.6.6 01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.6.5 08-Jan-2002  nathanw Catch up to -current.
 1.2.6.4 14-Nov-2001  nathanw Catch up to -current.
 1.2.6.3 21-Sep-2001  nathanw Catch up to -current.
 1.2.6.2 24-Aug-2001  nathanw Catch up with -current.
 1.2.6.1 21-Jun-2001  nathanw Catch up to -current.
 1.2.4.3 22-Jan-2001  bouyer make it compile
 1.2.4.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.
 1.2.4.1 04-Jul-2000  bouyer file si.c was added on branch thorpej_scsipi on 2000-11-20 11:43:34 +0000
 1.2.2.2 22-Jul-2000  pk New in netbsd-1-5: si.c revision 1.2; sireg.h revision 1.1

The `si' driver has been transformed into an MI VME frontend.
 1.2.2.1 04-Jul-2000  pk file si.c was added on branch netbsd-1-5 on 2000-07-22 21:08:23 +0000
 1.3.2.5 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.3.2.4 23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.2.3 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.2 13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.3.2.1 25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.4.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.13.12.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.13.12.1 12-Feb-2005  yamt sync with head.
 1.13.10.1 29-Apr-2005  kent sync with -current
 1.13.2.2 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.13.2.1 04-Feb-2005  skrll Sync with HEAD.
 1.15.4.3 27-Oct-2007  yamt sync with head.
 1.15.4.2 03-Sep-2007  yamt sync with head.
 1.15.4.1 21-Jun-2006  yamt sync with head.
 1.16.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.16.10.1 19-Apr-2006  elad sync with head.
 1.16.8.1 01-Apr-2006  yamt sync with head.
 1.16.6.1 22-Apr-2006  simonb Sync with head.
 1.16.4.1 09-Sep-2006  rpaulo sync with head
 1.17.14.1 12-Mar-2007  rmind Sync with HEAD.
 1.18.20.1 25-Oct-2007  bouyer Sync with HEAD.
 1.18.16.1 06-Nov-2007  matt sync with HEAD
 1.18.14.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.18.2.1 23-Oct-2007  ad Sync with head.
 1.19.16.2 17-Jan-2009  mjf Sync with HEAD.
 1.19.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.20.4.2 04-May-2009  yamt sync with head.
 1.20.4.1 16-May-2008  yamt sync with head.
 1.20.2.1 18-May-2008  yamt sync with head.
 1.21.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.23.66.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.5 13-Feb-2024  thorpej Move sireg.h from vme/ to sun/ -- the same (or nearly so) register defns
are used by multiple bus attachments.
 1.4 10-Feb-2024  andvar fix various typos in comments and log messages.
 1.3 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.2 03-May-2003  wiz branches: 1.2.100; 1.2.102; 1.2.104;
DMA, not dma nor Dma.
 1.1 03-Jul-2000  pk branches: 1.1.2; 1.1.4;
The `si' driver has been transformed into an MI VME frontend.
 1.1.4.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.
 1.1.4.1 03-Jul-2000  bouyer file sireg.h was added on branch thorpej_scsipi on 2000-11-20 11:43:34 +0000
 1.1.2.2 22-Jul-2000  pk New in netbsd-1-5: si.c revision 1.2; sireg.h revision 1.1

The `si' driver has been transformed into an MI VME frontend.
 1.1.2.1 03-Jul-2000  pk file sireg.h was added on branch netbsd-1-5 on 2000-07-22 21:08:23 +0000
 1.2.104.1 16-May-2008  yamt sync with head.
 1.2.102.1 18-May-2008  yamt sync with head.
 1.2.100.1 02-Jun-2008  mjf Sync with HEAD.
 1.31 24-Apr-2024  thorpej _vme_space_get(): Use VM_BESTFIT.
 1.30 04-Dec-2023  thorpej Manage VME address space using vmem(9) rather than extent(9).

XXX PR kern/57748 applies here; we lose the last byte of A32 space.
 1.29 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.28 24-Apr-2021  thorpej branches: 1.28.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.27 24-Aug-2020  msaitoh branches: 1.27.4;
s/ressource/resource/. No functional change.
 1.26 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.25 27-Jan-2012  para branches: 1.25.6;
converting extent(9) from malloc(9) to kmem(9)
preceding kmem-vmem-pool-uvm patch

releng@ acknowledged
 1.24 11-Dec-2010  matt branches: 1.24.8; 1.24.12;
Use device_private
 1.23 12-May-2009  cegger branches: 1.23.4;
struct device * -> device_t, no functional changes intended.
 1.22 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.21 14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.20 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.19 19-Oct-2007  ad branches: 1.19.20; 1.19.28; 1.19.34;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.18 25-Mar-2006  thorpej branches: 1.18.18; 1.18.32; 1.18.34; 1.18.38;
Use device_parent().
 1.17 11-Dec-2005  christos branches: 1.17.4; 1.17.6; 1.17.8; 1.17.10; 1.17.12;
merge ktrace-lwp.
 1.16 26-Aug-2005  drochner s/locdesc_t/int/g
 1.15 04-Feb-2005  perry branches: 1.15.6;
de-__P
 1.14 15-Sep-2004  drochner branches: 1.14.4; 1.14.6;
fix a botched function header,
should fix build problem reported by Tom Javen
 1.13 13-Sep-2004  drochner a round of autoconf cleanup:
-convert submatch() style functions (passed to config_search() or
config_found_sm()) to the locator passing variants
-pass interface attributes in some cases
-make submatch() functions look uniformly as far as possible
-avoid macros which just hide cfdata members, and reduce dependencies
on "locators.h"
 1.12 02-Aug-2004  drochner avoid a questionable pointer type cast
 1.11 29-Jul-2004  drochner remove some typecasts to "cfmatch_t" which are obviously relicts from
__BROKEN_INDIRECT_CONFIG times
 1.10 01-Jan-2003  thorpej branches: 1.10.2;
Use aprint_normal() in cfprint routines.
 1.9 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.8 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.7 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.6 27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.5 27-Sep-2002  thorpej Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.4 13-Nov-2001  lukem add RCSIDs
 1.3 30-Jun-1999  drochner branches: 1.3.14; 1.3.16;
new, more mi, VME framework
 1.2 04-Feb-1998  pk branches: 1.2.10;
Erase a spurious structure definition.
 1.1 01-Nov-1997  pk Start an MI VMEbus framework.

Includes two sample drivers: IE ethernet driver (VME front-end to
dev/ic/i82586.c) and the XD disk driver, both converted from the
sparc versions.
 1.2.10.1 01-Jul-1999  thorpej Sync w/ -current.
 1.3.16.2 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.3.16.1 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.14.3 03-Jan-2003  thorpej Sync with HEAD.
 1.3.14.2 18-Oct-2002  nathanw Catch up to -current.
 1.3.14.1 14-Nov-2001  nathanw Catch up to -current.
 1.10.2.5 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.10.2.4 04-Feb-2005  skrll Sync with HEAD.
 1.10.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.10.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.10.2.1 03-Aug-2004  skrll Sync with HEAD
 1.14.6.1 12-Feb-2005  yamt sync with head.
 1.14.4.1 29-Apr-2005  kent sync with -current
 1.15.6.2 27-Oct-2007  yamt sync with head.
 1.15.6.1 21-Jun-2006  yamt sync with head.
 1.17.12.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.17.10.1 19-Apr-2006  elad sync with head.
 1.17.8.1 01-Apr-2006  yamt sync with head.
 1.17.6.1 22-Apr-2006  simonb Sync with head.
 1.17.4.1 09-Sep-2006  rpaulo sync with head
 1.18.38.1 25-Oct-2007  bouyer Sync with HEAD.
 1.18.34.1 06-Nov-2007  matt sync with HEAD
 1.18.32.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.18.18.1 23-Oct-2007  ad Sync with head.
 1.19.34.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.19.28.1 28-Apr-2009  skrll Sync with HEAD.
 1.19.20.2 16-May-2009  yamt sync with head
 1.19.20.1 04-May-2009  yamt sync with head.
 1.23.4.1 05-Mar-2011  rmind sync with head
 1.24.12.1 18-Feb-2012  mrg merge to -current.
 1.24.8.2 30-Oct-2012  yamt sync with head
 1.24.8.1 17-Apr-2012  yamt sync with head
 1.25.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.27.4.5 05-Apr-2021  thorpej config_match() -> config_probe() for the straight-forward indirect config
cases. There are still a few odd balls using config_match() which should
be sorted out later.
 1.27.4.4 04-Apr-2021  thorpej CFARG_SUBMATCH -> CFARG_SEARCH for the indirect configuration uses.
 1.27.4.3 03-Apr-2021  thorpej Give config_attach() the tagged variadic argument treatment and
mechanically convert all call sites.
 1.27.4.2 21-Mar-2021  thorpej CFARG_IATTR usage audit:

If a device carries only one interface attribute, there is no need
to specify it when calling config_search(); that specification is
meant only to disambiguate which interface attribute (which is a
proxy for "what kind of attach args are being used") is having
children attached. cfparent_match() will take care of ensuring that
any potential children can attach to one of the parent's iterface
attributes, and if the parent only carries one, no disambiguation is
necessary.
 1.27.4.1 20-Mar-2021  thorpej The proliferation if config_search_*() and config_found_*() combinations
is a little absurd, so begin to tidy this up:

- Introduce a new cfarg_t enumerated type, that defines the types of
tag-value variadic arguments that can be passed to the various
config_*() functions (CFARG_SUBMATCH, CFARG_IATTR, and CFARG_LOCATORS,
for now, plus a CFARG_EOL sentinel).
- Collapse config_search_*() into config_search() that takes these
variadic arguments.
- Convert all call sites of config_search_*() to the new signature.
Noticed several incorrect usages along the way, which will be
audited in a future commit.
 1.28.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.3 11-Dec-2005  christos merge ktrace-lwp.
 1.2 28-Oct-2003  matt Elminate GCC uninitialized variable warning.
 1.1 30-Jun-1999  drochner branches: 1.1.2; 1.1.38;
new, more mi, VME framework
 1.1.38.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.38.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.38.1 03-Aug-2004  skrll Sync with HEAD
 1.1.2.2 01-Jul-1999  thorpej Sync w/ -current.
 1.1.2.1 30-Jun-1999  thorpej file vmereg.h was added on branch chs-ubc2 on 1999-07-01 23:40:50 +0000
 1.15 04-Dec-2023  thorpej Manage VME address space using vmem(9) rather than extent(9).

XXX PR kern/57748 applies here; we lose the last byte of A32 space.
 1.14 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.13 12-May-2009  cegger branches: 1.13.12; 1.13.22;
struct device * -> device_t, no functional changes intended.
 1.12 11-Dec-2005  christos branches: 1.12.74; 1.12.90;
merge ktrace-lwp.
 1.11 27-Feb-2005  perry nuke trailing whitespace
 1.10 04-Feb-2005  perry de-__P
 1.9 25-Jun-2000  pk branches: 1.9.24; 1.9.32; 1.9.34;
Fix spelling and formatting.
 1.8 04-Jun-2000  cgd branches: 1.8.2;
Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
 1.7 25-Feb-2000  drochner branches: 1.7.2;
add forward declaration of "struct extent", so the extent header doesn't
need to be included
 1.6 30-Jun-1999  drochner branches: 1.6.2;
new, more mi, VME framework
 1.5 07-Apr-1998  pk branches: 1.5.10;
Change last arg of `vct_mmap_cookie' from `int *' to `bus_space_handle_t *'.
 1.4 06-Feb-1998  pk Add `offset' argument to probe routine.
 1.3 04-Feb-1998  pk Add a callback function to vme_bus_probe(), for device-specific probes
using mapped device space.
 1.2 25-Jan-1998  pk Add vme_bus_mmap_cookie() and vme_bus_establish().
 1.1 01-Nov-1997  pk Start an MI VMEbus framework.

Includes two sample drivers: IE ethernet driver (VME front-end to
dev/ic/i82586.c) and the XD disk driver, both converted from the
sparc versions.
 1.5.10.1 01-Jul-1999  thorpej Sync w/ -current.
 1.6.2.1 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.
 1.7.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.8.2.1 29-Jun-2000  thorpej Pull up reg. 1.9:
Fix spelling and formatting.
 1.9.34.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.9.34.1 12-Feb-2005  yamt sync with head.
 1.9.32.1 29-Apr-2005  kent sync with -current
 1.9.24.2 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.9.24.1 04-Feb-2005  skrll Sync with HEAD.
 1.12.90.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.12.74.1 16-May-2009  yamt sync with head
 1.13.22.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.13.12.1 30-Oct-2012  yamt sync with head
 1.100 06-Sep-2025  andvar s/Illgal/Illegal/ in error string.
 1.99 23-Jan-2023  andvar s/cyliner/cylinder/ and s/specturm/spectrum/ in messages.
 1.98 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.97 24-Apr-2021  thorpej branches: 1.97.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.96 10-Nov-2019  chs branches: 1.96.10;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.95 26-Apr-2015  mlelstv branches: 1.95.18;
Use C99-style initializers for struct dkdriver.
 1.94 31-Dec-2014  christos make more drivers use disk_ioctl, and add a dev parameter to it so that
we can merge the "easy" disklabel ioctls to it. Ultimately all this will
go do dk_ioctl once all the drivers have been converted.
 1.93 25-Jul-2014  dholland branches: 1.93.4;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.92 25-Jul-2014  dholland Add d_discard to all struct bdevsw instances I could find.

I've set them all to nodiscard. Some of them (wd, dk, vnd, ld,
raidframe, maybe cgd) should be implemented for real.
 1.91 16-Mar-2014  dholland branches: 1.91.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.90 19-Oct-2013  mrg - remove set but unused variable.
- put variables only inside #ifdef inside that same #ifdef.
use __USE() where appropriate.
 1.89 27-Oct-2012  chs branches: 1.89.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.88 12-Feb-2012  matt branches: 1.88.6;
Change old-style function defintions to C89 prototypes.

Approved by releng.
 1.87 01-Feb-2011  chuck branches: 1.87.4; 1.87.8;
udpate license clauses on my code to match the new-style BSD licenses.
remove no-longer-valid wustl email address for me.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.86 12-May-2009  cegger branches: 1.86.4; 1.86.6; 1.86.8;
struct device * -> device_t, no functional changes intended.
 1.85 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.84 18-Apr-2009  tsutsui Remove extra whitespace added by a stupid tool.
XXX: more in src/sys/arch
 1.83 18-Mar-2009  cegger bcopy -> memcpy
 1.82 18-Mar-2009  cegger bzero -> memset
 1.81 18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.80 14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.79 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.78 13-Jan-2009  yamt branches: 1.78.2;
g/c BUFQ_FOO() macros and use bufq_foo() directly.
 1.77 12-Jan-2009  cegger cast to char to printf DISKPART
 1.76 11-Jun-2008  drochner branches: 1.76.4;
mechanical changes to use device_private() or device_lookup_private()
to get softcs, makes the code compile under the stricter type checking
introduced earlier today
 1.75 05-Apr-2008  cegger branches: 1.75.2; 1.75.4; 1.75.6; 1.75.8;
use aprint_*_dev and device_xname
 1.74 06-Feb-2008  elad branches: 1.74.6;
It's KAUTH_REQ_DEVICE_RAWIO_PASSTHRU_*.

Noted by dogcow@, thanks!
 1.73 04-Feb-2008  elad Properly classify kauth PASSTHRU requests.

Done with much help from chuck@, thanks!
 1.72 02-Jan-2008  ad Merge vmlocking2 to head.
 1.71 19-Oct-2007  ad branches: 1.71.2; 1.71.4; 1.71.8;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.70 08-Oct-2007  ad branches: 1.70.2;
Merge disk init changes from the vmlocking branch. These seperate init /
destroy of 'struct disk' from attach / detach.
 1.69 29-Jul-2007  ad branches: 1.69.4; 1.69.6; 1.69.8; 1.69.10;
It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.68 09-Jul-2007  ad branches: 1.68.2;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.67 04-Mar-2007  mrg branches: 1.67.2; 1.67.4;
fix fall out from caddr_t changes.
 1.66 04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.65 04-Jan-2007  elad branches: 1.65.2;
Consistent usage of KAUTH_GENERIC_ISSUSER.
 1.64 27-Aug-2006  christos branches: 1.64.2;
don't call variables errno! including from userland breaks things!
 1.63 21-Jul-2006  ad - Use the LWP cached credentials where sane.
- Minor cosmetic changes.
 1.62 15-May-2006  yamt - include kauth.h for kauth_authorize_generic.
- wrap a long line.
 1.61 14-May-2006  elad integrate kauth.
 1.60 28-Mar-2006  thorpej Use device_unit().
 1.59 11-Dec-2005  christos branches: 1.59.4; 1.59.6; 1.59.8; 1.59.10; 1.59.12;
merge ktrace-lwp.
 1.58 15-Oct-2005  yamt - change the way to specify a bufq strategy. (by string rather than by number)
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
 1.57 03-Jun-2005  tsutsui branches: 1.57.2;
Add const and fix for -Wshadow.
 1.56 04-Feb-2005  perry de-__P
 1.55 28-Oct-2004  yamt branches: 1.55.4; 1.55.6;
move buffer queue related stuffs from buf.h to their own header, bufq.h.
 1.54 29-Sep-2003  wiz available, not avaliable. From miod@openbsd.
 1.53 28-Aug-2003  mrg fix error in previous
 1.52 27-Aug-2003  mrg x[yd]_dmamem_alloc() takes a bus_addr_t *. don't pass the address of a
long! found by GCC3.
 1.51 29-Jun-2003  fvdl branches: 1.51.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.50 29-Jun-2003  darrenr More changes for providing lwpid for ktrace (sparc GENERIC built)
 1.49 10-May-2003  thorpej Change bounds_check_with_label() to take a pointer to the disk structure,
rather than the label itself. This paves the way for some future changes.
 1.48 02-May-2003  dsl Change return type of readdisklabel() to const char *
I hope I've found all the correct places!
 1.47 01-Nov-2002  mrg implement separate read/write disk statistics:
- disk_unbusy() gets a new parameter to tell the IO direction.
- struct disk_sysctl gets 4 new members for read/write bytes/transfers.
when processing hw.diskstats, add the read&write bytes/transfers for
the old combined stats to attempt to keep backwards compatibility.

unfortunately, due to multiple bugs, this will cause new kernels and old
vmstat/iostat/systat programs to fail. however, the next time this is
change it will not fail again.

this is just the kernel portion.
 1.46 23-Oct-2002  jdolecek merge kqueue branch into -current

kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.45 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.44 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.43 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.42 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.41 23-Jul-2002  hannken Convert to new device buffer queue interface.

Approved by: Nathan J. Williams <nathanw@netbsd.org>
 1.40 14-Jan-2002  tsutsui branches: 1.40.8;
Call malloc(9) with M_ZERO flag instead of bzero() after malloc().
 1.39 13-Nov-2001  lukem add RCSIDs
 1.38 24-Sep-2001  eeh Change bus_space_mmap() signature to the official one.
 1.37 22-Jul-2001  wiz branches: 1.37.2;
seperate -> separate
 1.36 06-Mar-2001  thorpej branches: 1.36.2;
Don't misuse bus_dmamap_load_raw().
 1.35 15-Jan-2001  fvdl branches: 1.35.2;
Move declaration out of __HAVE_OLD_DISKLABEL ifdef.
 1.34 08-Jan-2001  fvdl Return error in the case of using ODIOCGDINFO or ODIOCGDEFLABEL when
the number of partitions is > OLDMAXPARTITIONS. This is better
than silently truncating the label (don't want to silently throw
away partitions when using an old disklabel binary on a label with
> 8 partitions). From Enami Tsugutomo.
 1.33 07-Jan-2001  fvdl Adapt all disk devices in MI directories to handle ODIOC* calls
for ports that have bumped MAXPARTITIONS (and thus define
__HAVE_OLD_DISKLABEL).
 1.32 24-Jul-2000  scw Pass the level and vector to vme_intr_map() in the correct order.
 1.31 10-Jul-2000  mrg these don't need <uvm/uvm_extern.h> at all, actually.
 1.30 07-Jul-2000  pk Use vme_dmamap_create().
 1.29 29-Jun-2000  fvdl Fix some missed vm/vm.h -> uvm/uvm_extern.h conversions.
 1.28 26-Jun-2000  mrg remove/move more mach vm header files:

<vm/pglist.h> -> <uvm/uvm_pglist.h>
<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
<vm/vm_object.h> -> nothing
<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
 1.27 05-Jun-2000  chs branches: 1.27.2;
change ifdef __sun3__ to sun3, since the former isn't defined on sun3.
(not that it matters, since the sun3 currently has its own copy of
these files anyway, but it's nice to be consistent.)
 1.26 04-Jun-2000  cgd Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
 1.25 27-May-2000  thorpej branches: 1.25.2;
sleep() -> tsleep()
 1.24 19-May-2000  thorpej A foolish consistency; most parts of the kernel use bp->b_data, so
change these from bp->b_un.b_addr to bp->b_data, as well. This also
allows us more flexibility to experiment with other data buffer types
hung off of struct buf.
 1.23 16-May-2000  thorpej Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc. Those
platforms should be changed to use device_register(). In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
 1.22 10-May-2000  pk No need to specify page alignment; this is automatic.
 1.21 09-May-2000  pk Conform bus_dmamem_{alloc,map} usage to bus_dma(9) specs.
 1.20 10-Apr-2000  chs sparc -> __sparc__
sun3 -> __sun3__
 1.19 23-Mar-2000  thorpej 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.
 1.18 21-Jan-2000  thorpej Update for sys/buf.h/disksort_*() changes, plus make it compilable on
more systems.
 1.17 28-Jul-1999  drochner branches: 1.17.2;
fix the previous fix
 1.16 28-Jul-1999  christos make these compile again s/#endif/#else/
again, it is impossible for me to make sure that they work.
 1.15 30-Jun-1999  drochner update for new VME framework
 1.14 05-Mar-1999  pk branches: 1.14.4;
* sparc => __sparc__
* wrap Sun disklabel code in `#if __sparc__ || __sun3__' for now.
 1.13 20-Jun-1998  mrg moved <machine/sun_disklabel.h> to <dev/sun/disklabel.h>
 1.12 18-Jun-1998  pk Send the DMA, not KVA, addresses of I/O descriptors to the controller.
 1.11 24-Apr-1998  pk Fix function argument type.
 1.10 06-Feb-1998  pk vme_bus_probe() takes an `offset' argument.
 1.9 04-Feb-1998  thorpej Add offset and length parameters to bus_dmamap_sync(), used for specifiying
partial syncs of a DMA mapping.
 1.8 04-Feb-1998  pk Use `offsetof()'.
 1.7 04-Feb-1998  pk Use vme_bus_probe() callback for device detection.
Use correct VME modifier (A16+D32 instead of A32).
 1.6 04-Feb-1998  thorpej Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC to
BUS_DMA_COHERENT.
 1.5 25-Jan-1998  pk Remove vestiges of sparc-related bootpaths.
 1.4 12-Jan-1998  thorpej Adjust for changes to config.
 1.3 01-Dec-1997  pk Use `busdma' macros.
 1.2 02-Nov-1997  pk Fix pasto
 1.1 01-Nov-1997  pk Start an MI VMEbus framework.

Includes two sample drivers: IE ethernet driver (VME front-end to
dev/ic/i82586.c) and the XD disk driver, both converted from the
sparc versions.
 1.14.4.2 02-Aug-1999  thorpej Update from trunk.
 1.14.4.1 01-Jul-1999  thorpej Sync w/ -current.
 1.17.2.3 12-Mar-2001  bouyer Sync with HEAD.
 1.17.2.2 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.17.2.1 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.
 1.25.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.27.2.4 06-May-2001  he Pull up revision 1.35 (requested by fvdl):
Add forgotten/missed revision to last round so that the sparc
kernels once again compile. Part of:
Increase the number of BSD disklabel partitions on i386 to 16.
 1.27.2.3 01-May-2001  he Pull up revisions 1.33-1.34 (requested by fvdl):
Increase the number of BSD disklabel partitions on i386 to 16.
 1.27.2.2 25-Jul-2000  pk Pull up revision 1.32 from trunk:

Pass the level and vector to vme_intr_map() in the correct order.
 1.27.2.1 22-Jul-2000  pk Pullup rev. 1.30.

Use vme_dmamap_create().
 1.35.2.9 11-Nov-2002  nathanw Catch up to -current
 1.35.2.8 18-Oct-2002  nathanw Catch up to -current.
 1.35.2.7 17-Sep-2002  nathanw Catch up to -current.
 1.35.2.6 01-Aug-2002  nathanw Catch up to -current.
 1.35.2.5 28-Feb-2002  nathanw Catch up to -current.
 1.35.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.35.2.3 26-Sep-2001  nathanw Catch up to -current.
Again.
 1.35.2.2 24-Aug-2001  nathanw Catch up with -current.
 1.35.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.36.2.5 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.36.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.36.2.3 11-Feb-2002  jdolecek Sync w/ -current.
 1.36.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.36.2.1 03-Aug-2001  lukem update to -current
 1.37.2.2 10-Oct-2001  fvdl Convert all remaining devices.
 1.37.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.40.8.2 29-Aug-2002  gehenna catch up with -current.
 1.40.8.1 16-May-2002  gehenna Add the block/character device switches.
 1.51.2.7 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.51.2.6 04-Feb-2005  skrll Sync with HEAD.
 1.51.2.5 04-Feb-2005  skrll Adapt to branch.
 1.51.2.4 02-Nov-2004  skrll Sync with HEAD.
 1.51.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.51.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.51.2.1 03-Aug-2004  skrll Sync with HEAD
 1.55.6.1 12-Feb-2005  yamt sync with head.
 1.55.4.1 29-Apr-2005  kent sync with -current
 1.57.2.7 11-Feb-2008  yamt sync with head.
 1.57.2.6 21-Jan-2008  yamt sync with head
 1.57.2.5 27-Oct-2007  yamt sync with head.
 1.57.2.4 03-Sep-2007  yamt sync with head.
 1.57.2.3 26-Feb-2007  yamt sync with head.
 1.57.2.2 30-Dec-2006  yamt sync with head.
 1.57.2.1 21-Jun-2006  yamt sync with head.
 1.59.12.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.59.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.59.10.3 19-Apr-2006  elad sync with head.
 1.59.10.2 10-Mar-2006  elad generic_authorize() -> kauth_authorize_generic().
 1.59.10.1 08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.59.8.4 03-Sep-2006  yamt sync with head.
 1.59.8.3 11-Aug-2006  yamt sync with head
 1.59.8.2 24-May-2006  yamt sync with head.
 1.59.8.1 01-Apr-2006  yamt sync with head.
 1.59.6.2 01-Jun-2006  kardel Sync with head.
 1.59.6.1 22-Apr-2006  simonb Sync with head.
 1.59.4.1 09-Sep-2006  rpaulo sync with head
 1.64.2.1 12-Jan-2007  ad Sync with head.
 1.65.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.67.4.1 11-Jul-2007  mjf Sync with head.
 1.67.2.4 23-Oct-2007  ad Sync with head.
 1.67.2.3 20-Aug-2007  ad - Alter disk attach/detach to fix a panic when closing a vnd device.
- Sync with HEAD.
 1.67.2.2 19-Aug-2007  ad - Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).
 1.67.2.1 01-Jul-2007  ad Adapt to callout API change.
 1.68.2.1 15-Aug-2007  skrll Sync with HEAD.
 1.69.10.2 29-Jul-2007  ad It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.69.10.1 29-Jul-2007  ad file xd.c was added on branch matt-mips64 on 2007-07-29 12:15:45 +0000
 1.69.8.1 14-Oct-2007  yamt sync with head.
 1.69.6.3 23-Mar-2008  matt sync with HEAD
 1.69.6.2 09-Jan-2008  matt sync with HEAD
 1.69.6.1 06-Nov-2007  matt sync with HEAD
 1.69.4.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.70.2.1 25-Oct-2007  bouyer Sync with HEAD.
 1.71.8.1 02-Jan-2008  bouyer Sync with HEAD
 1.71.4.1 02-Jan-2008  ad Buffer cache locking changes.
 1.71.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.74.6.3 17-Jan-2009  mjf Sync with HEAD.
 1.74.6.2 29-Jun-2008  mjf Sync with HEAD.
 1.74.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.75.8.1 18-Jun-2008  simonb Sync with head.
 1.75.6.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.75.4.2 16-May-2009  yamt sync with head
 1.75.4.1 04-May-2009  yamt sync with head.
 1.75.2.1 17-Jun-2008  yamt sync with head.
 1.76.4.2 28-Apr-2009  skrll Sync with HEAD.
 1.76.4.1 19-Jan-2009  skrll Sync with HEAD.
 1.78.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.86.8.1 08-Feb-2011  bouyer Sync with HEAD
 1.86.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.86.4.1 05-Mar-2011  rmind sync with head
 1.87.8.1 18-Feb-2012  mrg merge to -current.
 1.87.4.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.87.4.2 30-Oct-2012  yamt sync with head
 1.87.4.1 17-Apr-2012  yamt sync with head
 1.88.6.3 03-Dec-2017  jdolecek update from HEAD
 1.88.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.88.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.89.2.1 18-May-2014  rmind sync with head
 1.91.2.1 10-Aug-2014  tls Rebase.
 1.93.4.2 06-Jun-2015  skrll Sync with HEAD
 1.93.4.1 06-Apr-2015  skrll Sync with HEAD
 1.95.18.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.96.10.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.97.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.8 24-Oct-2021  andvar fix various typos in comments, mainly copypasta.
 1.7 01-Feb-2011  chuck udpate license clauses on my code to match the new-style BSD licenses.
remove no-longer-valid wustl email address for me.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.6 27-Aug-2006  christos branches: 1.6.80; 1.6.86; 1.6.88;
don't call variables errno! including from userland breaks things!
 1.5 11-Dec-2005  christos branches: 1.5.4; 1.5.8;
merge ktrace-lwp.
 1.4 19-Apr-2004  wiz branches: 1.4.12;
Spell removable with only two es. Inspired by jmc@openbsd.
 1.3 03-May-2003  wiz branches: 1.3.2;
DMA, not dma nor Dma.
 1.2 06-Jan-2003  wiz interrupt with two rs.
 1.1 01-Nov-1997  pk branches: 1.1.26;
Start an MI VMEbus framework.

Includes two sample drivers: IE ethernet driver (VME front-end to
dev/ic/i82586.c) and the XD disk driver, both converted from the
sparc versions.
 1.1.26.1 07-Jan-2003  thorpej Sync with HEAD.
 1.3.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.2.1 03-Aug-2004  skrll Sync with HEAD
 1.4.12.1 30-Dec-2006  yamt sync with head.
 1.5.8.1 03-Sep-2006  yamt sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.6.88.1 08-Feb-2011  bouyer Sync with HEAD
 1.6.86.1 06-Jun-2011  jruoho Sync with HEAD.
 1.6.80.1 05-Mar-2011  rmind sync with head
 1.13 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.12 01-Feb-2011  chuck branches: 1.12.4; 1.12.14;
udpate license clauses on my code to match the new-style BSD licenses.
remove no-longer-valid wustl email address for me.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.11 27-Aug-2006  christos branches: 1.11.80; 1.11.86; 1.11.88;
don't call variables errno! including from userland breaks things!
 1.10 11-Dec-2005  christos branches: 1.10.4; 1.10.8;
merge ktrace-lwp.
 1.9 15-Oct-2005  yamt - change the way to specify a bufq strategy. (by string rather than by number)
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
 1.8 04-Feb-2005  perry branches: 1.8.6;
de-__P
 1.7 23-Jul-2002  hannken branches: 1.7.6; 1.7.14;
Convert to new device buffer queue interface.

Approved by: Nathan J. Williams <nathanw@netbsd.org>
 1.6 09-May-2000  pk branches: 1.6.6; 1.6.8; 1.6.20;
Conform bus_dmamem_{alloc,map} usage to bus_dma(9) specs.
 1.5 23-Mar-2000  thorpej 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.
 1.4 21-Jan-2000  thorpej Update for sys/buf.h/disksort_*() changes, plus make it compilable on
more systems.
 1.3 18-Jun-1998  pk branches: 1.3.14;
Send the DMA, not KVA, addresses of I/O descriptors to the controller.
 1.2 01-Dec-1997  pk Use `busdma' macros.
 1.1 01-Nov-1997  pk Start an MI VMEbus framework.

Includes two sample drivers: IE ethernet driver (VME front-end to
dev/ic/i82586.c) and the XD disk driver, both converted from the
sparc versions.
 1.3.14.1 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.
 1.6.20.1 29-Aug-2002  gehenna catch up with -current.
 1.6.8.1 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.6.6.1 01-Aug-2002  nathanw Catch up to -current.
 1.7.14.1 29-Apr-2005  kent sync with -current
 1.7.6.2 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.7.6.1 04-Feb-2005  skrll Sync with HEAD.
 1.8.6.2 30-Dec-2006  yamt sync with head.
 1.8.6.1 21-Jun-2006  yamt sync with head.
 1.10.8.1 03-Sep-2006  yamt sync with head.
 1.10.4.1 09-Sep-2006  rpaulo sync with head
 1.11.88.1 08-Feb-2011  bouyer Sync with HEAD
 1.11.86.1 06-Jun-2011  jruoho Sync with HEAD.
 1.11.80.1 05-Mar-2011  rmind sync with head
 1.12.14.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.12.4.1 30-Oct-2012  yamt sync with head
 1.6 06-Sep-2015  dholland More on PR 41200: headers that declare ioctls should include sys/ioccom.h.
This covers (I think) all the MI headers outside of external/ (and dist/).
 1.5 01-Feb-2011  chuck branches: 1.5.14; 1.5.32;
udpate license clauses on my code to match the new-style BSD licenses.
remove no-longer-valid wustl email address for me.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.4 04-Mar-2007  christos branches: 1.4.64; 1.4.70; 1.4.72;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.3 27-Aug-2006  christos branches: 1.3.8;
don't call variables errno! including from userland breaks things!
 1.2 22-Aug-1998  mrg branches: 1.2.62; 1.2.76; 1.2.80;
make struct xd_iocmd's block member an u_int not a u_long
 1.1 01-Nov-1997  pk Start an MI VMEbus framework.

Includes two sample drivers: IE ethernet driver (VME front-end to
dev/ic/i82586.c) and the XD disk driver, both converted from the
sparc versions.
 1.2.80.1 03-Sep-2006  yamt sync with head.
 1.2.76.1 09-Sep-2006  rpaulo sync with head
 1.2.62.2 03-Sep-2007  yamt sync with head.
 1.2.62.1 30-Dec-2006  yamt sync with head.
 1.3.8.1 12-Mar-2007  rmind Sync with HEAD.
 1.4.72.1 08-Feb-2011  bouyer Sync with HEAD
 1.4.70.1 06-Jun-2011  jruoho Sync with HEAD.
 1.4.64.1 05-Mar-2011  rmind sync with head
 1.5.32.1 22-Sep-2015  skrll Sync with HEAD
 1.5.14.1 03-Dec-2017  jdolecek update from HEAD
 1.102 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.101 24-Apr-2021  thorpej branches: 1.101.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.100 10-Nov-2019  chs branches: 1.100.10;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.99 26-Apr-2015  mlelstv branches: 1.99.18;
Use C99-style initializers for struct dkdriver.
 1.98 31-Dec-2014  christos make more drivers use disk_ioctl, and add a dev parameter to it so that
we can merge the "easy" disklabel ioctls to it. Ultimately all this will
go do dk_ioctl once all the drivers have been converted.
 1.97 25-Jul-2014  dholland branches: 1.97.4;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.96 25-Jul-2014  dholland Add d_discard to all struct bdevsw instances I could find.

I've set them all to nodiscard. Some of them (wd, dk, vnd, ld,
raidframe, maybe cgd) should be implemented for real.
 1.95 16-Mar-2014  dholland branches: 1.95.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.94 19-Oct-2013  mrg - remove set but unused variable.
- put variables only inside #ifdef inside that same #ifdef.
use __USE() where appropriate.
 1.93 27-Oct-2012  chs branches: 1.93.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.92 12-Feb-2012  matt branches: 1.92.6;
Change old-style function defintions to C89 prototypes.

Approved by releng.
 1.91 01-Feb-2011  chuck branches: 1.91.4; 1.91.8;
udpate license clauses on my code to match the new-style BSD licenses.
remove no-longer-valid wustl email address for me.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.90 12-May-2009  cegger branches: 1.90.4; 1.90.6; 1.90.8;
struct device * -> device_t, no functional changes intended.
 1.89 12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.88 18-Apr-2009  tsutsui Remove extra whitespace added by a stupid tool.
XXX: more in src/sys/arch
 1.87 18-Mar-2009  cegger bcopy -> memcpy
 1.86 18-Mar-2009  cegger bzero -> memset
 1.85 14-Mar-2009  dsl ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.84 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.83 13-Jan-2009  yamt branches: 1.83.2;
g/c BUFQ_FOO() macros and use bufq_foo() directly.
 1.82 12-Jan-2009  cegger cast to char to printf DISKPART
 1.81 11-Jun-2008  drochner branches: 1.81.4;
mechanical changes to use device_private() or device_lookup_private()
to get softcs, makes the code compile under the stricter type checking
introduced earlier today
 1.80 05-Apr-2008  cegger branches: 1.80.2; 1.80.4; 1.80.6; 1.80.8;
make this compile
 1.79 05-Apr-2008  cegger use aprint_*_dev and device_xname
 1.78 06-Feb-2008  elad branches: 1.78.6;
It's KAUTH_REQ_DEVICE_RAWIO_PASSTHRU_*.

Noted by dogcow@, thanks!
 1.77 06-Feb-2008  elad - There is no XYCMD_WRP -- forgot to remove it along with the XYCMD_RDP :)
- Add missing '}'

Noted by dogcow@, thanks!
 1.76 04-Feb-2008  elad Properly classify kauth PASSTHRU requests.

Done with much help from chuck@, thanks!
 1.75 02-Jan-2008  ad Merge vmlocking2 to head.
 1.74 19-Oct-2007  ad branches: 1.74.2; 1.74.4; 1.74.8;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.73 08-Oct-2007  ad branches: 1.73.2;
Merge disk init changes from the vmlocking branch. These seperate init /
destroy of 'struct disk' from attach / detach.
 1.72 29-Jul-2007  ad branches: 1.72.4; 1.72.6; 1.72.8; 1.72.10;
It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.71 09-Jul-2007  ad branches: 1.71.2;
Merge some of the less invasive changes from the vmlocking branch:

- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
 1.70 04-Mar-2007  mrg branches: 1.70.2; 1.70.4;
fix fall out from caddr_t changes.
 1.69 04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.68 04-Jan-2007  elad branches: 1.68.2;
Consistent usage of KAUTH_GENERIC_ISSUSER.
 1.67 27-Aug-2006  christos branches: 1.67.2;
don't call variables errno! including from userland breaks things!
 1.66 21-Jul-2006  ad - Use the LWP cached credentials where sane.
- Minor cosmetic changes.
 1.65 15-May-2006  yamt - include kauth.h for kauth_authorize_generic.
- wrap a long line.
 1.64 14-May-2006  elad integrate kauth.
 1.63 10-May-2006  skrll Fix a bunch of cast lvalues.
 1.62 28-Mar-2006  thorpej Use device_unit().
 1.61 11-Dec-2005  christos branches: 1.61.4; 1.61.6; 1.61.8; 1.61.10; 1.61.12;
merge ktrace-lwp.
 1.60 15-Oct-2005  yamt - change the way to specify a bufq strategy. (by string rather than by number)
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
 1.59 03-Jun-2005  tsutsui branches: 1.59.2;
Add const.
 1.58 27-Feb-2005  perry nuke trailing whitespace
 1.57 04-Feb-2005  perry de-__P
 1.56 28-Oct-2004  yamt branches: 1.56.4; 1.56.6;
move buffer queue related stuffs from buf.h to their own header, bufq.h.
 1.55 23-Dec-2003  pk xycattach: use correct map in vme_dmamap_create().
 1.54 29-Sep-2003  wiz available, not avaliable. From miod@openbsd.
 1.53 28-Aug-2003  mrg fix error in previous
 1.52 27-Aug-2003  mrg x[yd]_dmamem_alloc() takes a bus_addr_t *. don't pass the address of a
long! found by GCC3.
 1.51 29-Jun-2003  fvdl branches: 1.51.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.50 29-Jun-2003  darrenr More changes for providing lwpid for ktrace (sparc GENERIC built)
 1.49 10-May-2003  thorpej Change bounds_check_with_label() to take a pointer to the disk structure,
rather than the label itself. This paves the way for some future changes.
 1.48 02-May-2003  dsl Change return type of readdisklabel() to const char *
I hope I've found all the correct places!
 1.47 01-Nov-2002  mrg implement separate read/write disk statistics:
- disk_unbusy() gets a new parameter to tell the IO direction.
- struct disk_sysctl gets 4 new members for read/write bytes/transfers.
when processing hw.diskstats, add the read&write bytes/transfers for
the old combined stats to attempt to keep backwards compatibility.

unfortunately, due to multiple bugs, this will cause new kernels and old
vmstat/iostat/systat programs to fail. however, the next time this is
change it will not fail again.

this is just the kernel portion.
 1.46 23-Oct-2002  jdolecek merge kqueue branch into -current

kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
 1.45 02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.44 01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.43 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.42 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.41 06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.40 23-Jul-2002  hannken Convert to new device buffer queue interface.

Approved by: Nathan J. Williams <nathanw@netbsd.org>
 1.39 14-Jan-2002  tsutsui branches: 1.39.8;
Call malloc(9) with M_ZERO flag instead of bzero() after malloc().
 1.38 13-Nov-2001  lukem add RCSIDs
 1.37 24-Sep-2001  eeh Change bus_space_mmap() signature to the official one.
 1.36 22-Jul-2001  wiz branches: 1.36.2;
seperate -> separate
 1.35 13-Mar-2001  chs branches: 1.35.2;
make this compile again.
 1.34 06-Mar-2001  thorpej Don't misuse bus_dmamap_load_raw().
 1.33 15-Jan-2001  fvdl branches: 1.33.2;
Move decl out of __HAVE_OLD_DISKLABEL
 1.32 08-Jan-2001  fvdl Return error in the case of using ODIOCGDINFO or ODIOCGDEFLABEL when
the number of partitions is > OLDMAXPARTITIONS. This is better
than silently truncating the label (don't want to silently throw
away partitions when using an old disklabel binary on a label with
> 8 partitions). From Enami Tsugutomo.
 1.31 07-Jan-2001  fvdl Adapt all disk devices in MI directories to handle ODIOC* calls
for ports that have bumped MAXPARTITIONS (and thus define
__HAVE_OLD_DISKLABEL).
 1.30 24-Jul-2000  scw Pass the level and vector to vme_intr_map() in the correct order.
 1.29 10-Jul-2000  mrg these don't need <uvm/uvm_extern.h> at all, actually.
 1.28 07-Jul-2000  pk Use vme_dmamap_create().
Also, this device lives in VME_D16 data space.
 1.27 29-Jun-2000  fvdl Fix some missed vm/vm.h -> uvm/uvm_extern.h conversions.
 1.26 26-Jun-2000  mrg remove/move more mach vm header files:

<vm/pglist.h> -> <uvm/uvm_pglist.h>
<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
<vm/vm_object.h> -> nothing
<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
 1.25 05-Jun-2000  chs branches: 1.25.2;
change ifdef __sun3__ to sun3, since the former isn't defined on sun3.
(not that it matters, since the sun3 currently has its own copy of
these files anyway, but it's nice to be consistent.)
 1.24 04-Jun-2000  cgd Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
 1.23 27-May-2000  thorpej branches: 1.23.2;
sleep() -> tsleep()
 1.22 19-May-2000  thorpej A foolish consistency; most parts of the kernel use bp->b_data, so
change these from bp->b_un.b_addr to bp->b_data, as well. This also
allows us more flexibility to experiment with other data buffer types
hung off of struct buf.
 1.21 16-May-2000  thorpej Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc. Those
platforms should be changed to use device_register(). In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
 1.20 10-May-2000  pk No need to specify page alignment; this is automatic.
 1.19 09-May-2000  pk Conform bus_dmamem_{alloc,map} usage to bus_dma(9) specs.
 1.18 10-Apr-2000  chs sparc -> __sparc__
sun3 -> __sun3__
 1.17 23-Mar-2000  thorpej 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.
 1.16 07-Feb-2000  thorpej Fix a bug in disksort_*() which caused non-optimal ordering when multiple
active partitions were on a single spindle. Add a b_rawblkno member to
struct buf which contains the non-partition-relative block number to sort
by.
 1.15 21-Jan-2000  thorpej Update for sys/buf.h/disksort_*() changes.
 1.14 28-Jul-1999  drochner branches: 1.14.2;
fix the previous fix
 1.13 28-Jul-1999  christos make these compile again s/#endif/#else/
again, it is impossible for me to make sure that they work.
 1.12 30-Jun-1999  drochner update for new VME framework
 1.11 05-Mar-1999  pk branches: 1.11.4;
* sparc => __sparc__
* wrap Sun disklabel code in `#if __sparc__ || __sun3__' for now.
 1.10 22-Aug-1998  pk Fix DVMA address handling.
 1.9 20-Jun-1998  mrg moved <machine/sun_disklabel.h> to <dev/sun/disklabel.h>
 1.8 06-Feb-1998  pk vme_bus_probe() takes an `offset' argument.
 1.7 04-Feb-1998  thorpej Add offset and length parameters to bus_dmamap_sync(), used for specifiying
partial syncs of a DMA mapping.
 1.6 04-Feb-1998  pk Use vme_bus_probe() callback for device detection.
 1.5 04-Feb-1998  thorpej Add dm_mapsize to bus_dmamap_t and rename BUS_DMAMEM_NOSYNC to
BUS_DMA_COHERENT.
 1.4 25-Jan-1998  pk Remove vestiges of sparc-related bootpaths.
 1.3 12-Jan-1998  thorpej Adjust for changes to config.
 1.2 01-Dec-1997  pk Use `busdma' macros.
 1.1 02-Nov-1997  pk Converted Xylogics 450 (XY) VME driver.
 1.11.4.2 02-Aug-1999  thorpej Update from trunk.
 1.11.4.1 01-Jul-1999  thorpej Sync w/ -current.
 1.14.2.4 27-Mar-2001  bouyer Sync with HEAD.
 1.14.2.3 12-Mar-2001  bouyer Sync with HEAD.
 1.14.2.2 18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.14.2.1 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.
 1.23.2.1 22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.25.2.4 15-May-2001  he Pull up revision 1.33 (requested by windsor):
Fix build problem related to __HAVE_OLD_DISKLABEL.
 1.25.2.3 01-May-2001  he Pull up revisions 1.31-1.32 (requested by fvdl):
Increase the number of BSD disklabel partitions on i386 to 16.
 1.25.2.2 25-Jul-2000  pk Pull up revision 1.30 from trunk:

Pass the level and vector to vme_intr_map() in the correct order.
 1.25.2.1 22-Jul-2000  pk Pullup rev. 1.28.

Use vme_dmamap_create().
Also, this device lives in VME_D16 data space.
 1.33.2.9 11-Nov-2002  nathanw Catch up to -current
 1.33.2.8 18-Oct-2002  nathanw Catch up to -current.
 1.33.2.7 17-Sep-2002  nathanw Catch up to -current.
 1.33.2.6 01-Aug-2002  nathanw Catch up to -current.
 1.33.2.5 28-Feb-2002  nathanw Catch up to -current.
 1.33.2.4 14-Nov-2001  nathanw Catch up to -current.
 1.33.2.3 26-Sep-2001  nathanw Catch up to -current.
Again.
 1.33.2.2 24-Aug-2001  nathanw Catch up with -current.
 1.33.2.1 09-Apr-2001  nathanw Catch up with -current.
 1.35.2.5 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.35.2.4 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.35.2.3 11-Feb-2002  jdolecek Sync w/ -current.
 1.35.2.2 10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.35.2.1 03-Aug-2001  lukem update to -current
 1.36.2.2 10-Oct-2001  fvdl Convert all remaining devices.
 1.36.2.1 01-Oct-2001  fvdl Catch up with -current.
 1.39.8.2 29-Aug-2002  gehenna catch up with -current.
 1.39.8.1 16-May-2002  gehenna Add the block/character device switches.
 1.51.2.8 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.51.2.7 04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.51.2.6 04-Feb-2005  skrll Sync with HEAD.
 1.51.2.5 04-Feb-2005  skrll Adapt to branch.
 1.51.2.4 02-Nov-2004  skrll Sync with HEAD.
 1.51.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.51.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.51.2.1 03-Aug-2004  skrll Sync with HEAD
 1.56.6.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.56.6.1 12-Feb-2005  yamt sync with head.
 1.56.4.1 29-Apr-2005  kent sync with -current
 1.59.2.7 11-Feb-2008  yamt sync with head.
 1.59.2.6 21-Jan-2008  yamt sync with head
 1.59.2.5 27-Oct-2007  yamt sync with head.
 1.59.2.4 03-Sep-2007  yamt sync with head.
 1.59.2.3 26-Feb-2007  yamt sync with head.
 1.59.2.2 30-Dec-2006  yamt sync with head.
 1.59.2.1 21-Jun-2006  yamt sync with head.
 1.61.12.2 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.61.12.1 31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.61.10.4 11-May-2006  elad sync with head
 1.61.10.3 19-Apr-2006  elad sync with head.
 1.61.10.2 10-Mar-2006  elad generic_authorize() -> kauth_authorize_generic().
 1.61.10.1 08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.61.8.4 03-Sep-2006  yamt sync with head.
 1.61.8.3 11-Aug-2006  yamt sync with head
 1.61.8.2 24-May-2006  yamt sync with head.
 1.61.8.1 01-Apr-2006  yamt sync with head.
 1.61.6.2 01-Jun-2006  kardel Sync with head.
 1.61.6.1 22-Apr-2006  simonb Sync with head.
 1.61.4.1 09-Sep-2006  rpaulo sync with head
 1.67.2.1 12-Jan-2007  ad Sync with head.
 1.68.2.1 12-Mar-2007  rmind Sync with HEAD.
 1.70.4.1 11-Jul-2007  mjf Sync with head.
 1.70.2.4 23-Oct-2007  ad Sync with head.
 1.70.2.3 20-Aug-2007  ad - Alter disk attach/detach to fix a panic when closing a vnd device.
- Sync with HEAD.
 1.70.2.2 19-Aug-2007  ad - Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).
 1.70.2.1 01-Jul-2007  ad Adapt to callout API change.
 1.71.2.1 15-Aug-2007  skrll Sync with HEAD.
 1.72.10.2 29-Jul-2007  ad It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.72.10.1 29-Jul-2007  ad file xy.c was added on branch matt-mips64 on 2007-07-29 12:15:45 +0000
 1.72.8.1 14-Oct-2007  yamt sync with head.
 1.72.6.3 23-Mar-2008  matt sync with HEAD
 1.72.6.2 09-Jan-2008  matt sync with HEAD
 1.72.6.1 06-Nov-2007  matt sync with HEAD
 1.72.4.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.73.2.1 25-Oct-2007  bouyer Sync with HEAD.
 1.74.8.1 02-Jan-2008  bouyer Sync with HEAD
 1.74.4.1 02-Jan-2008  ad Buffer cache locking changes.
 1.74.2.1 18-Feb-2008  mjf Sync with HEAD.
 1.78.6.3 17-Jan-2009  mjf Sync with HEAD.
 1.78.6.2 29-Jun-2008  mjf Sync with HEAD.
 1.78.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.80.8.1 18-Jun-2008  simonb Sync with head.
 1.80.6.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.80.4.2 16-May-2009  yamt sync with head
 1.80.4.1 04-May-2009  yamt sync with head.
 1.80.2.1 17-Jun-2008  yamt sync with head.
 1.81.4.2 28-Apr-2009  skrll Sync with HEAD.
 1.81.4.1 19-Jan-2009  skrll Sync with HEAD.
 1.83.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.90.8.1 08-Feb-2011  bouyer Sync with HEAD
 1.90.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.90.4.1 05-Mar-2011  rmind sync with head
 1.91.8.1 18-Feb-2012  mrg merge to -current.
 1.91.4.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.91.4.2 30-Oct-2012  yamt sync with head
 1.91.4.1 17-Apr-2012  yamt sync with head
 1.92.6.3 03-Dec-2017  jdolecek update from HEAD
 1.92.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.92.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.93.2.1 18-May-2014  rmind sync with head
 1.95.2.1 10-Aug-2014  tls Rebase.
 1.97.4.2 06-Jun-2015  skrll Sync with HEAD
 1.97.4.1 06-Apr-2015  skrll Sync with HEAD
 1.99.18.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.100.10.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.101.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.7 01-Feb-2011  chuck udpate license clauses on my code to match the new-style BSD licenses.
remove no-longer-valid wustl email address for me.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.6 27-Aug-2006  christos branches: 1.6.80; 1.6.86; 1.6.88;
don't call variables errno! including from userland breaks things!
 1.5 11-Dec-2005  christos branches: 1.5.4; 1.5.8;
merge ktrace-lwp.
 1.4 19-Apr-2004  wiz branches: 1.4.12;
Spell removable with only two es. Inspired by jmc@openbsd.
 1.3 03-May-2003  wiz branches: 1.3.2;
DMA, not dma nor Dma.
 1.2 22-Aug-1998  pk Fix DVMA address handling.
 1.1 02-Nov-1997  pk Converted Xylogics 450 (XY) VME driver.
 1.3.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.3.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.3.2.1 03-Aug-2004  skrll Sync with HEAD
 1.4.12.1 30-Dec-2006  yamt sync with head.
 1.5.8.1 03-Sep-2006  yamt sync with head.
 1.5.4.1 09-Sep-2006  rpaulo sync with head
 1.6.88.1 08-Feb-2011  bouyer Sync with HEAD
 1.6.86.1 06-Jun-2011  jruoho Sync with HEAD.
 1.6.80.1 05-Mar-2011  rmind sync with head
 1.14 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.13 01-Feb-2011  chuck branches: 1.13.4; 1.13.14;
udpate license clauses on my code to match the new-style BSD licenses.
remove no-longer-valid wustl email address for me.
based on diff that rmind@ sent me.

no functional change with this commit.
 1.12 27-Aug-2006  christos branches: 1.12.80; 1.12.86; 1.12.88;
don't call variables errno! including from userland breaks things!
 1.11 11-Dec-2005  christos branches: 1.11.4; 1.11.8;
merge ktrace-lwp.
 1.10 15-Oct-2005  yamt - change the way to specify a bufq strategy. (by string rather than by number)
- rather than embedding bufq_state in driver softc,
have a pointer to the former.
- move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c.
- rename method to strategy for consistency.
- move some definitions which don't need to be exposed to the rest of kernel
from sys/bufq.h to sys/bufq_impl.h.
(is it better to move it to kern/ or somewhere?)
- fix some obvious breakage in dev/qbus/ts.c. (not tested)
 1.9 04-Feb-2005  perry branches: 1.9.6;
de-__P
 1.8 23-Jul-2002  hannken branches: 1.8.6; 1.8.14;
Convert to new device buffer queue interface.

Approved by: Nathan J. Williams <nathanw@netbsd.org>
 1.7 09-May-2000  pk branches: 1.7.6; 1.7.8; 1.7.20;
Conform bus_dmamem_{alloc,map} usage to bus_dma(9) specs.
 1.6 23-Mar-2000  thorpej 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.
 1.5 21-Jan-2000  thorpej Update for sys/buf.h/disksort_*() changes.
 1.4 30-Jun-1999  drochner branches: 1.4.2;
update for new VME framework
 1.3 22-Aug-1998  pk branches: 1.3.8;
Fix DVMA address handling.
 1.2 01-Dec-1997  pk Use `busdma' macros.
 1.1 02-Nov-1997  pk Converted Xylogics 450 (XY) VME driver.
 1.3.8.1 01-Jul-1999  thorpej Sync w/ -current.
 1.4.2.1 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.
 1.7.20.1 29-Aug-2002  gehenna catch up with -current.
 1.7.8.1 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.7.6.1 01-Aug-2002  nathanw Catch up to -current.
 1.8.14.1 29-Apr-2005  kent sync with -current
 1.8.6.2 10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.8.6.1 04-Feb-2005  skrll Sync with HEAD.
 1.9.6.2 30-Dec-2006  yamt sync with head.
 1.9.6.1 21-Jun-2006  yamt sync with head.
 1.11.8.1 03-Sep-2006  yamt sync with head.
 1.11.4.1 09-Sep-2006  rpaulo sync with head
 1.12.88.1 08-Feb-2011  bouyer Sync with HEAD
 1.12.86.1 06-Jun-2011  jruoho Sync with HEAD.
 1.12.80.1 05-Mar-2011  rmind sync with head
 1.13.14.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.13.4.1 30-Oct-2012  yamt sync with head

RSS XML Feed