A memory tag mechanism creates a logical memory tag of a first length that
corresponds to an I/O address of a second length. The memory tag is
"logical" because it does not represent physical memory. When an I/O
adapter device driver that expects an address of the first length is
invoked, the memory tag is passed. When the I/O adapter device driver
makes a call to the partition manager to convert the address of the first
length (i.e., memory tag) to an I/O address of the second length, the
partition manager detects that the passed address is a memory tag instead
of a real address, and returns the corresponding I/O address. In this
manner existing device drivers that expect addresses of the first length
may be used for redirected DMA, which allows performing DMA operations
directly from a shared I/O adapter in a hosting partition to memory in a
hosted partition.