|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21571/root/usr/lib64/python2.4/site-packages/ |
Upload File : |
# Copyright 2000-2003 Red Hat, Inc
#
# This software may be freely redistributed under the terms of the GNU
# public license.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
import _kudzu
import sys
consts=('BUS_', 'CLASS_', 'PROBE_')
for n in _kudzu.__dict__.keys():
for c in consts:
if len(n) > len(consts) and n[:len(c)] == c:
sys.modules[__name__].__dict__[n] = _kudzu.__dict__[n]
# The base device class
class device:
def __init__(self,table):
self.deviceclass=table["class"]
self.bus=table["bus"]
self.index=table["index"]
self.detached=table["detached"]
self.desc=table["desc"]
self.driver=table["driver"]
self.device=table["device"]
if self.deviceclass == CLASS_NETWORK:
if table.has_key("hwaddr"):
self.hwaddr = table["hwaddr"]
else:
self.hwaddr = None
if self.deviceclass == CLASS_VIDEO:
if table.has_key("xdriver"):
self.xdriver = table["xdriver"]
else:
self.xdriver = None
# maintain backwards compatibility
def __getitem__(self, which):
if which == 0:
return self.device
if which == 1:
return self.driver
if which == 2:
return self.desc
raise IndexError
def setIndex(self,index):
self.index=index
def setDetached(self,detached):
self.detached=detached
def setDesc(self,desc):
self.desc=desc
def setDriver(self,driver):
self.driver=driver
def __repr__(self):
res=""
res=res+"Desc: %s\n" % (self.desc)
res=res+"Driver: %s\n" % (self.driver)
res=res+"Device: %s\n" % (self.device)
return res
# One class for each structure in the kudzu include files
class scsiDevice(device):
def __init__(self,table):
device.__init__(self,table)
self.host=table["host"]
self.channel=table["channel"]
self.id=table["id"]
self.lun=table["lun"]
def setHost(self,host):
self.host=host
def setChannel(self,channel):
self.channel=channel
def setId(self,id):
self.id=id
def setLun(self,lun):
self.lun=lun
class serialDevice(device):
def __init__(self,table):
device.__init__(self,table)
self.pnpdesc=table["pnpdesc"]
self.pnpmodel=table["pnpmodel"]
self.pnpcompat=table["pnpcompat"]
self.pnpmfr=table["pnpmfr"]
def setPnPMfr(self,mfr):
self.pnpmfr=mfr
def setPnpModel(self,model):
self.pnpmodel=model
def setPnPCompat(self,compat):
self.pnpcompat=compat
def setPnpDesc(self,desc):
self.pnpdesc=desc
class ideDevice(device):
def __init__(self,table):
device.__init__(self,table)
self.physical=table["physical"]
self.logical=table["logical"]
def setPhysical(self,cyls):
self.physical=cyls
def setLogical(self,cyls):
self.logical=cyls
class keyboardDevice(device):
def __init__(self,table):
device.__init__(self,table)
class psauxDevice(device):
def __init__(self,table):
device.__init__(self,table)
class sbusDevice(device):
def __init__(self,table):
device.__init__(self,table)
self.width=table["width"]
self.height=table["height"]
self.freq=table["freq"]
self.monitor=table["monitor"]
def setRes(self,height,width):
self.width=width
self.height=height
def setFreq(self,freq):
self.freq=freq
def setMonitor(self,monitor):
self.monitor=monitor
class parallellDevice(device):
def __init__(self,table):
device.__init__(self,table)
self.pnpdesc=table["pnpdesc"]
self.pnpmodel=table["pnpmodel"]
self.pnpmodes=table["pnpmodes"]
self.pnpmfr=table["pnpmfr"]
if(table.has_key("xres")):
self.printeres=(table["xres"],table["yres"])
self.printercolor=table["color"]
self.printerascii=table["ascii"]
self.printeruniprint=table["uniprint"]
else:
self.printeres=""
self.printercolor=""
self.printerascii=""
self.printeruniprint=""
def setPnPModel(self,model):
self.pnpmodel=model
def setPnPMfr(self,mfr):
self.pnpmfr=mfr
def setPnPModes(self,modes):
self.pnpmodes=modes
def setPnPDesc(self,desc):
self.pnpdesc=desc
def setPrinterRes(self,x,y):
self.printerres=(x,y)
def setPrinterColor(self,color):
self.printercolor=color
def setPrinterASCII(self,ascii):
self.printerascii=ascii
def setPrinterUniPrint(self,uniprint):
self.printeruniprint=uniprint
class pciDevice(device):
def __init__(self,table):
device.__init__(self,table)
self.vendorId=table["vendorId"]
self.deviceId=table["deviceId"]
self.subVendorId=table["subVendorId"]
self.subDeviceId=table["subDeviceId"]
self.pciType=table["pciType"]
self.pcibus=table["pcibus"]
self.pcidev=table["pcidev"]
self.pcifn=table["pcifn"]
def setVendorId(self,id):
self.vendorId=id
def setDeviceId(self,id):
self.deviceId=id
def setPciType(self,type):
self.pciType=type
def setSubVendorId(self,id):
self.subVendorId=id
def setSubDeviceId(self,id):
self.subDeviceId=id
class pcmciaDevice(device):
def __init__(self,table):
device.__init__(self,table)
self.vendorId=table["vendorId"]
self.deviceId=table["deviceId"]
def setVendorId(self,id):
self.vendorId=id
def setDeviceId(self,id):
self.deviceId=id
def setFunction(self,id):
self.function=id
def setSlot(self,id):
self.slot=id
class ddcDevice(device):
def __init__(self,table):
device.__init__(self,table)
if table.has_key("id"):
self.id=table["id"]
else:
self.id = None
self.horizSyncMin=table["horizSyncMin"]
self.horizSyncMax=table["horizSyncMax"]
self.vertRefreshMin=table["vertRefreshMin"]
self.vertRefreshMax=table["vertRefreshMax"]
self.physicalWidth=table["physicalWidth"]
self.physicalHeight=table["physicalHeight"]
self.mem=table["mem"]
def __repr__(self):
res=""
res=res+"Desc: %s\n" % (self.desc)
res=res+"Id: %s\n" % (self.id)
res=res+"Mem on card: %d\n" % (self.mem)
res=res+"HSync: %d-%d\n" % (self.horizSyncMin,
self.horizSyncMax)
res=res+"VSync: %d-%d\n" % (self.vertRefreshMin,
self.vertRefreshMax)
res=res+"Physical width: %d mm\n" % (self.physicalWidth)
res=res+"Physical height: %d mm\n" % (self.physicalHeight)
return res
def setID(self,id):
self.id=id
def setHorizSyncRange(self,min,max):
self.horizSyncMin=min
self.horizSyncMax=max
def setVertRefreshRange(self,min,max):
self.vertRefreshMin=min
self.vertRefreshMax=max
def setMem(self,mem):
self.mem=mem
def setPhysicalWidth(self, width):
self.physicalWidth = width
def setPhysicalHeight(self, height):
self.physicalHeight = height
def setModes(self,intdata):
self.modes=[]
# This is of the format xyxyxy....
for i in range(0,len(intdata),2):
modes.append((intdata[i],intdata[i+1]))
class usbDevice(device):
def __init__(self,deviceclass,bus):
device.__init__(self,deviceclass,bus)
self.usbclass=""
self.usbsubclass=""
self.usbprotocol=""
def __init__(self,table):
device.__init__(self,table)
self.usbclass=table["usbclass"]
self.usbsubclass=table["usbsubclass"]
self.usbprotocol=table["usbprotocol"]
self.usbbus=table["usbbus"]
self.usblevel=table["usblevel"]
self.usbport=table["usbport"]
self.vendorId=table["vendorid"]
self.deviceId=table["deviceid"]
self.usbmfr=table["usbmfr"]
self.usbprod=table["usbprod"]
def setUsbClass(self,usbclass):
self.usbclass=usbclass
def setUsbSubClass(self,usbclass):
self.usbsubclass=usbclass
def setUsbProtocol(self,protocol):
self.usbprotocol=protocol
class vmbusDevice(device):
def __init__(self,table):
device.__init__(self,table)
self.vmbusclass=table["vmbusclass"]
self.devnum=table["devnum"]
self.reserved=table["reserved"]
def setvmbusclass(self,vmbusclass):
self.vmbusclass=vmbusclass
def setdevnum(self,devnum):
self.devnum=devnum
def setreserved(self,reserved):
self.reserved=reserved
# Call the probefunction and return an array of
# objects with device information
def probe(devclass,bus,mode):
res=_kudzu.probe(devclass,bus,mode)
res2=[]
for i in range(0,len(res)):
dev=res[i]
bus=dev["bus"]
if(bus==BUS_PCI):
res2.append(pciDevice(dev))
elif(bus==BUS_SBUS):
res2.append(sbusDevice(dev))
elif(bus==BUS_PSAUX):
res2.append(psauxDevice(dev))
elif(bus==BUS_SERIAL):
res2.append(serialDevice(dev))
elif(bus==BUS_PARALLEL):
res2.append(parallellDevice(dev))
elif(bus==BUS_SCSI):
res2.append(scsiDevice(dev))
elif(bus==BUS_IDE):
res2.append(ideDevice(dev))
elif(bus==BUS_KEYBOARD):
res2.append(keyboardDevice(dev))
elif(bus==BUS_DDC):
res2.append(ddcDevice(dev))
elif(bus==BUS_USB):
res2.append(usbDevice(dev))
elif(bus==BUS_PCMCIA):
res2.append(pcmciaDevice(dev))
elif(bus==BUS_VMBUS):
res2.append(vmbusDevice(dev))
else:
res2.append(device(dev))
return res2