kernel: Remove some unused externs.
kernel: Move some header files to the drivers that only need them.
usb4bsd: Add detection for Etron EJ168 controller
usb4bsd: sync with FreeBSD svn r242385
usb4bsd: Fix scsi sense handling in umass
usb4bsd: Fix EHCI

This is a part of the sync with FreeBSD svn r242385
usb4bsd, pci: pull in bios takeover code from FreeBSD

Submitted-By: swildner
usb4bsd: Bring in fix for endpoint setup on Etron XHCI

This makes usb2 devices work on Etron xhci controllers. The Etron controller expects the maximum valid endpoint to be set in the slot context when an endpoint is configured.

This patch has gone into FreeBSD as well.

Conflicts:

	sys/bus/u4b/controller/xhci.c
usb4bsd: xhci cleanup

Conflicts:

	sys/bus/u4b/controller/xhci.c
	sys/bus/u4b/controller/xhci_pci.c
	sys/bus/u4b/controller/xhcireg.h
usb4bsd: fix breakage caused by earlier commit
usb4bsd: more cleanup of superflous debug messages

Conflicts:

	sys/bus/u4b/usb_hub.c
usb4bsd: Next attempt at fixing BIOS handoff for XHCI

If the BIOS does not give up the XHCI, then force the takeover.
Linux does it that way. It might not be clean or correct, but
it works for the time being.
Conflicts:

	sys/bus/pci/pci.c
	sys/bus/u4b/controller/xhci_pci.c
	sys/bus/u4b/controller/xhcireg.h
hammer2 - Change freemap segment delineation, other stuff

* Change the freemap delineation to encode the BREF type as
  well as the radix, in order to avoid mixing data and meta-data
  types together in the same device buffer.

* Reorganize the freemap to remove one indirection level.  Reserve
  two bits per block instead of one.  Change bitmap granularity to 16KB
  but leave allocation granularity at 1KB.

* Fix hammer2_devblksize() to match hammer2_devblkradix().

* Add hammer2_chain_iterate(), a chain iteration with a
  callback.

* Fix issue when hammer2_chain_get() is called with HAMMER2_LOOKUP_ALWAYS.

* Start working on proper statistics rollups during flush (not complete).
hammer2 - Adjustments for freemap changes

* Adjustments to hammer2 debug/show stuff for freemap changes.
hammer2 - temorarily track free space

* Temorarily track free space in the volume header.  This code will
  eventually inherit from the flush so it is properly synchronized to
  the transaction id.
hammer2 - temorarily track free space (2)

* Move the tracking to a better spot
hammer2 - temorarily track free space (3)

* Correct type-o, add missing assignment.
hammer2 - fix crash in temporary code

* Fix a crash in the not-yet-working inode stats rollup code.
hammer2 - Fix freemap bugs

* The linear iterator must not be used if aligned on an allocation
  chunk (16K) boundary.  Reserved areas just set the bitmap to all 1's
  but were leaving the iterator set to 0.  Fix both the boundary check
  and initialized bmap->linear for reserved areas to HAMMER2_SEGSIZE.

  This fixes a corruption issue where allocates were being made out of
  reserved areas and then overwritten by e.g. the freemap, and where
  the linear iterator would reallocate areas already allocated via the
  bitmap.

* Fix the code which marks device bufferse B_CACHE when freshly allocated.
  It wasn't handling the 32KB case properly.

* Our pre-caching gets and releases a block.  B_CACHE must be used in addition
  to calling vfs_bio_clrbuf() because we aren't holding onto the locked buffer.
kernel - Adjust impossible conditions in kdmsg_state_*()

* kdmsg_state_reply() and kdmsg_state_result() require a non-NULL state.
  Assert the condition and remove the else clause that was broken in the
  first place.

Reported-by: Joris giovannang