xendppci.py

来自「xen虚拟机源代码安装包」· Python 代码 · 共 159 行

PY
159
字号
#============================================================================# This library is free software; you can redistribute it and/or# modify it under the terms of version 2.1 of the GNU Lesser General Public# License as published by the Free Software Foundation.## This library is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU# Lesser General Public License for more details.## You should have received a copy of the GNU Lesser General Public# License along with this library; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA#============================================================================# Copyright (c) 2008 NEC Corporation#       Yosuke Iwamatsu <y-iwamatsu at ab jp nec com>#============================================================================from xen.xend.XendBase import XendBasefrom xen.xend.XendBase import XendAPIStorefrom xen.xend import uuid as genuuidclass XendPPCI(XendBase):    """Representation of a physical PCI device."""    def getClass(self):        return "PPCI"    def getAttrRO(self):        attrRO = ['host',                  'domain',                  'bus',                  'slot',                  'func',                  'name',                  'vendor_id',                  'vendor_name',                  'device_id',                  'device_name',                  'revision_id',                  'class_code',                  'class_name',                  'subsystem_vendor_id',                  'subsystem_vendor_name',                  'subsystem_id',                  'subsystem_name',                  'driver']        return XendBase.getAttrRO() + attrRO    def getAttrRW(self):        attrRW = []        return XendBase.getAttrRW() + attrRW    def getAttrInst(self):        attrInst = []        return XendBase.getAttrInst() + attrInst    def getMethods(self):        methods = []        return XendBase.getMethods() + methods    def getFuncs(self):        funcs = []        return XendBase.getFuncs() + funcs    getClass    = classmethod(getClass)    getAttrRO   = classmethod(getAttrRO)    getAttrRW   = classmethod(getAttrRW)    getAttrInst = classmethod(getAttrInst)    getMethods  = classmethod(getMethods)    getFuncs    = classmethod(getFuncs)     def get_by_sbdf(self, domain, bus, slot, func):        for ppci in XendAPIStore.get_all("PPCI"):            if ppci.get_domain() == int(domain, 16) and \               ppci.get_bus() == int(bus, 16) and \               ppci.get_slot() == int(slot, 16) and \               ppci.get_func() == int(func, 16):                return ppci.get_uuid()        return None    get_by_sbdf = classmethod(get_by_sbdf)    def __init__(self, uuid, record):        self.domain = record['domain']        self.bus = record['bus']        self.slot = record['slot']        self.func = record['func']        self.vendor_id = record['vendor_id']        self.vendor_name = record['vendor_name']        self.device_id = record['device_id']        self.device_name = record['device_name']        self.revision_id = record['revision_id']        self.class_code = record['class_code']        self.class_name = record['class_name']        self.subsystem_vendor_id = record['subsystem_vendor_id']        self.subsystem_vendor_name = record['subsystem_vendor_name']        self.subsystem_id = record['subsystem_id']        self.subsystem_name = record['subsystem_name']        self.driver = record['driver']        XendBase.__init__(self, uuid, record)    def get_host(self):        from xen.xend import XendNode        return XendNode.instance().get_uuid()    def get_domain(self):        return self.domain    def get_bus(self):        return self.bus    def get_slot(self):        return self.slot    def get_func(self):        return self.func    def get_name(self):        return "%04x:%02x:%02x.%01x" % (self.domain, self.bus, self.slot,                                        self.func)    def get_vendor_id(self):        return self.vendor_id    def get_vendor_name(self):        return self.vendor_name    def get_device_id(self):        return self.device_id    def get_device_name(self):        return self.device_name    def get_class_code(self):        return self.class_code    def get_class_name(self):        return self.class_name    def get_revision_id(self):        return self.revision_id    def get_subsystem_vendor_id(self):        return self.subsystem_vendor_id    def get_subsystem_vendor_name(self):        return self.subsystem_vendor_name    def get_subsystem_id(self):        return self.subsystem_id    def get_subsystem_name(self):        return self.subsystem_name    def get_driver(self):        return self.driver

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?