this is a relatively big commit that implements a basic io path.
this is a relatively big commit that implements a basic io path.

it does this:
- limits the ncmds advertised to atascsi to 1 (cos that lets us write dumb
  but working code)
- the port probe translates device signatures to device types now
- defines a basic ccb structure
- the port probe allocates a ccb if it decides that the port is going to
  be used
- takes an io from atascsi, fills in the prb, does a direct command
  submission and then polls for completion (all without generating
  interrupts, its kinda cool)
- limits the sgl to only two elements, which sucks, but it lets us get the
  inquiry and disk attach done. note, the sgl structures are like a smaller
  version of mpis sgl chains, but with a better layout. sgl chains suck
  btw.
- frees the ccb when the port is freed.

orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars