Now that we have a struct containing the NVMe device file descriptor, we
can abstract this to support different transport types.
This change adds support for NVMe-MI transports, by adding a `mi` member
to struct nvme_dev's union, and allowing devices to be specified by an
MCTP address:
mctp:<network>,<endpoint-id>:<controller-id>
- where the `controller-id` is optional, and defaults to 0 if not
specified.
For this, we need to add suitable linkage to the libnvme-mi component of
the libnvme codebase.
None of the actual commands can use the MI transport at present, as they
currently assume access to dev->direct.fd. We will add facilities for
that in upcoming changes.
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>