According to some embodiments, a method is directed to determining via a
plurality of flags stored at a PCI device that the PCI device is to
perform a first function. The PCI device is shared with a first software
component associated with the first function and a second software
component associated with a second function, and the plurality of flags
comprise a first component flag to indicate free or busy, a second
component flag to indicate free or busy, and a turn flag to indicate the
first component or the second component. The method further discloses
setting the first component flag to busy, setting the turn flag to first
component, and performing the first function when the second software
component is not using the PCI device. The first function may access the
PCI device if either the second component flag is set to free or if the
turn flag is set to first component.