The PciController class lacks a configuration method to re-generate the

configuration of an existing domain. This is needed for a domain to be
able to reboot and retain its PCI device configuration. This patch adds
such support.

Thanks to Mike Wright for reporting this problem and working with me to
fix it.

Signed-off-by: Ryan Wilson <hap9@epoch.ncsc.mil>
This commit is contained in:
kaf24@firebug.cl.cam.ac.uk committed 2006-05-10 16:07:46 +01:00
1 parent 4886fcc749
commit cf6a9db5e6
1 file changed
+25
+25
View File
@@ -31,6 +31,7 @@ import xen.lowlevel.xc
from xen.util.pci import PciDevice
import resource
import re
xc = xen.lowlevel.xc.xc()
@@ -106,6 +107,30 @@ class PciController(DevController):
return (0, back, {})
def configuration(self, devid):
"""@see DevController.configuration"""
result = DevController.configuration(self, devid)
(num_devs) = self.readBackend(devid, 'num_devs')
for i in range(int(num_devs)):
(dev_config) = self.readBackend(devid, 'dev-%d'%(i))
pci_match = re.match(r"((?P<domain>[0-9a-fA-F]{1,4})[:,])?" + \
r"(?P<bus>[0-9a-fA-F]{1,2})[:,]" + \
r"(?P<slot>[0-9a-fA-F]{1,2})[.,]" + \
r"(?P<func>[0-9a-fA-F]{1,2})", dev_config)
if pci_match!=None:
pci_dev_info = pci_match.groupdict('0')
result.append( ['dev', \
['domain', '0x'+pci_dev_info['domain']], \
['bus', '0x'+pci_dev_info['bus']], \
['slot', '0x'+pci_dev_info['slot']], \
['func', '0x'+pci_dev_info['func']]])
return result
def setupDevice(self, domain, bus, slot, func):
""" Attach I/O resources for device to frontend domain
"""
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.