Patent ID: 8700816

Claim:
A computer implemented method for installing and operating an I/O device on a virtual machine, comprising: receiving a description of the I/O device; constructing a first representation of configuration space for the I/O device, the first representation indicative of which portions of the configuration space can be placed under control of a non-privileged authority, wherein the first representation is constructed based at least in part on said description; constructing a second representation of memory mapped I/O (MMIO) space and configuration space, the second representation indicative of pages to be included or excluded in the virtual machine, wherein the second representation is constructed based at least in part on said description; determining which operations have effects that impact functionality of other virtual machines; based on said determining, constructing a map comprising information indicative of an association between a memory location and information indicative of a translation from a first operation on the memory location to a second operation on the memory location, wherein the second operation has benign consequences on functionality of other virtual machines; and controlling access to said I/O device based on said map and said first and second representations.