# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1246092894 -3600
# Node ID d14fac3900a79288b41e559de361b496bc0e3e04
# Parent e58e4d2e5cedf84a268720cf2cc00cd51d0874e6
xend: pass-through: Add pci_dict_bin_to_str()
Break out the device list gathering code from xm_pci_list()
so that it can be re-used by subsequent changes.
Cc: Dexuan Cui <dexuan.cui@xxxxxxxxx>
Cc: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
---
tools/python/xen/xm/main.py | 47 +++++++++++++++++++++++++++++---------------
1 files changed, 31 insertions(+), 16 deletions(-)
diff -r e58e4d2e5ced -r d14fac3900a7 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py Sat Jun 27 09:54:29 2009 +0100
+++ b/tools/python/xen/xm/main.py Sat Jun 27 09:54:54 2009 +0100
@@ -2175,37 +2175,52 @@ def xm_vtpm_list(args):
"%(be-path)-30s "
% ni)
-
-def xm_pci_list(args):
- (use_long, params) = arg_check_for_resource_list(args, "pci-list")
-
- dom = params[0]
-
+def attached_pci_dict_bin(dom):
devs = []
if serverType == SERVER_XEN_API:
for dpci_ref in server.xenapi.VM.get_DPCIs(get_single_vm(dom)):
ppci_ref = server.xenapi.DPCI.get_PPCI(dpci_ref)
ppci_record = server.xenapi.PPCI.get_record(ppci_ref)
dev = {
- "domain": int(ppci_record["domain"]),
- "bus": int(ppci_record["bus"]),
- "slot": int(ppci_record["slot"]),
- "func": int(ppci_record["func"]),
- "vslot": int(server.xenapi.DPCI.get_hotplug_slot(dpci_ref))
+ 'domain': int(ppci_record['domain']),
+ 'bus': int(ppci_record['bus']),
+ 'slot': int(ppci_record['slot']),
+ 'func': int(ppci_record['func']),
+ 'vslot': int(server.xenapi.DPCI.get_hotplug_slot(dpci_ref))
}
devs.append(dev)
else:
for x in server.xend.domain.getDeviceSxprs(dom, 'pci'):
dev = {
- "domain": int(x["domain"], 16),
- "bus": int(x["bus"], 16),
- "slot": int(x["slot"], 16),
- "func": int(x["func"], 16),
- "vslot": int(x["vslot"], 16)
+ 'domain': int(x['domain'], 16),
+ 'bus': int(x['bus'], 16),
+ 'slot': int(x['slot'], 16),
+ 'func': int(x['func'], 16),
+ 'vslot': int(x['vslot'], 16)
}
devs.append(dev)
+ return devs
+
+def pci_dict_bin_to_str(pci_dev):
+ new_dev = pci_dev.copy()
+
+ new_dev['domain'] = '0x%04x' % pci_dev['domain']
+ new_dev['bus'] = '0x%02x' % pci_dev['bus']
+ new_dev['slot'] = '0x%02x' % pci_dev['slot']
+ new_dev['func'] = '0x%x' % pci_dev['func']
+ new_dev['vslot'] = '0x%02x' % pci_dev['vslot']
+
+ return new_dev
+
+def attached_pci_dict(dom):
+ return map(pci_dict_bin_to_str, attached_pci_dict_bin(dom))
+
+def xm_pci_list(args):
+ (use_long, params) = arg_check_for_resource_list(args, "pci-list")
+
+ devs = attached_pci_dict_bin(params[0])
if len(devs) == 0:
return
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|