From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Horman Subject: [patch 14/16] xend: pass-through: Use common parsing code in parse_pci_configuration() Date: Mon, 15 Jun 2009 11:55:29 +1000 Message-ID: <20090615015913.487850405@vergenet.net> References: <20090615015515.927085604@vergenet.net> Return-path: Content-Disposition: inline; filename=parse_pci_configuration-use-pci_parse_name.patch List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: Masaki Kanno , Dexuan Cui List-Id: xen-devel@lists.xenproject.org This will be re-used in subsequent patches. Cc: Dexuan Cui Cc: Masaki Kanno Signed-off-by: Simon Horman Index: xen-unstable.hg/tools/python/xen/xm/main.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xm/main.py 2009-06-13 22:30:08.000000000 +1000 +++ xen-unstable.hg/tools/python/xen/xm/main.py 2009-06-14 17:12:19.000000000 +1000 @@ -2486,36 +2486,16 @@ def parse_pci_configuration(args, state, dom = args[0] pci_dev_str = args[1] if len(args) == 3: - vslot = args[2] - else: - vslot = AUTO_PHP_SLOT_STR - pci=['pci'] - pci_match = re.match(r"((?P[0-9a-fA-F]{1,4})[:,])?" + \ - r"(?P[0-9a-fA-F]{1,2})[:,]" + \ - r"(?P[0-9a-fA-F]{1,2})[.,]" + \ - r"(?P[0-7])$", pci_dev_str) - if pci_match == None: - raise OptionError("Invalid argument: %s %s" % (pci_dev_str, vslot)) - pci_dev_info = pci_match.groupdict('0') - - try: - pci_bdf =['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']], - ['vslot', '0x%x' % int(vslot, 16)]] - except: - raise OptionError("Invalid argument: %s %s" % (pci_dev_str, vslot)) + pci_dev_str += '@' + args[2] + if len(opts) > 0: + pci_dev_str += ',' + serialise_pci_opts(opts) try: - check_pci_opts(opts) + pci_dev = parse_pci_name_extended(pci_dev_str) except PciDeviceParseError, ex: raise OptionError(str(ex)) - pci.append(sxp.merge(pci_bdf, pci_opts_list_to_sxp(opts))) - pci.append(['state', state]) - - return (dom, pci) + return (dom, pci_convert_dict_to_sxp(pci_dev, state)) def xm_pci_attach(args): config_pci_opts = [] --