Patent ID: 8239938

Claim:
A method for providing an operating system access to hardware devices included in a computer system, comprising: enumerating one or more hardware devices and one or more virtualized devices included in the computer system, including: determining that resources associated with a first hardware device are divided into guest physical resources thereby creating a software (SW) virtualized device, and determining that multiple instances of resources associated with a second hardware device are advertised by the second hardware device thereby creating a hardware (HW) virtualized device; generating a first permission list that specifies which operating systems in a plurality of operating systems are permitted to access the SW virtualized device; generating a second permission list that specifies which operating systems in the plurality of operating systems are permitted to access the HW virtualized device; generating a first set of virtual address maps that each map a first address space associated with the SW virtualized device into an address space associated with each operating system included in the first permission list; generating a second set of virtual address maps that each map a second address space associated with the HW virtualized device into an address space associated with each operating system included in the second permission list; and arbitrating access requests from each of the plurality of operating systems, including: allowing the operating systems included in the first permission list to perform access operations using the SW virtualized device based on the first set of virtual address maps, and allowing the operating systems included in the second permission list to perform access operations using the HW virtualized device based on the second set of virtual address maps.