A multi-host host bus adapter (HBA) can be connected to multiple host
devices to allow the multiple host devices to communicate on a SAN
fabric. More specifically, the multi-host HBA provides an interface for
multiple SAN hosts without necessitating an HBA on each host, eliminating
the need for an on-board HBA on each SAN host. The multi-host HBA
interfaces to memory in each SAN host to which it is connected using
PCI-Express (or a similar protocol), and communicates with other devices
on the SAN fabric using Fibre Channel ports. The multi-host HBA
communicates by receiving a command from a connected host, forwarding the
command to a processor in the multi-host HBA, and sending the command to
a device on a SAN. When the multi-host HBA receives a response from the
device on the SAN, the multi-host HBA associates the response with the
process and sends the response to the host.