Patent ID: 8606975

Claim:
An input/output device for simultaneously supporting multiple hosts and multiple functions, the input/output device comprising: a communication port through which the input/output device receives communications for the multiple hosts and multiple functions; a plurality of host assemblies, each host assembly supporting a single host and comprising: a plurality of interrupt resources, wherein each interrupt resource is configured to detect an interrupt condition and is dynamically bound to at least one function of the single host; and an interrupt block configured to receive notification of an interrupt condition from an interrupt resource and identify an interrupt vector to which the resource is currently bound, wherein said interrupt block comprises, for each of one or more functions hosted by the single host: a resource bind array configured to identify bindings between the plurality of interrupt resources and the one or more functions; and a context array configured to identify an interrupt resource that detected an interrupt condition; a device interrupt controller configured to receive an interrupt request from the interrupt block and determine whether an interrupt is permitted on the interrupt vector based on a timing mechanism associated with the interrupt vector; and a host interrupt controller configured to issue an interrupt to the single host in a format accepted by the bound function.