import _isys import string def mount(device, location, fstype = "ext2"): return _isys.mount(fstype, device, location) def umount(what): return _isys.umount(what) def smpAvailable(): return _isys.smpavailable() def chroot (path): return _isys.chroot (path) def checkBoot (path): return _isys.checkBoot (path) def swapon (path): return _isys.swapon (path) def probePciDevices(): # probes all probeable buses and returns a list of # ( driver, major, minor, description, args ) tuples, where args is a # list of (argName, argDescrip) tuples devices = _isys.pciprobe() if (not devices): return None result = [] for dev in devices: info = _isys.findmoduleinfo(dev) if not info: raise KeyError, "module " + dev + " is not in the module list" result.append(info) return result def hardDriveList (): p = _isys.ProbedList() p.updateIde() p.updateScsi() dict = {} for (klass, dev, descr) in p: if (klass == "disk"): dict[dev] = descr return dict def cdromList (): p = _isys.ProbedList() p.updateIde() p.updateScsi() list = [] for (klass, dev, descr) in p: if (klass == "cdrom"): list.append((dev, descr)) return list def moduleListByType(type): return _isys.modulelist(type) def makeDevInode(name, fn): return _isys.mkdevinode(name, fn) def inet_ntoa (addr): return "%d.%d.%d.%d" % ((addr >> 24) & 0x000000ff, (addr >> 16) & 0x000000ff, (addr >> 8) & 0x000000ff, addr & 0x000000ff) def inet_aton (addr): quad = string.splitfields (addr, ".") try: rc = ((string.atoi (quad[0]) << 24) + (string.atoi (quad[1]) << 16) + (string.atoi (quad[2]) << 8) + string.atoi (quad[3])) except IndexError: raise ValueError return rc def inet_calcNetmask (ip): if isinstance (ip, type (0)): addr = inet_ntoa (ip) else: addr = ip quad = string.splitfields (addr, ".") if len (quad) > 0: klass = string.atoi (quad[0]) if klass <= 127: mask = "255.0.0.0"; if klass <= 191: mask = "255.255.0.0"; else: mask = "255.255.255.0"; return mask def inet_calcNetBroad (ip, nm): if isinstance (ip, type ("")): ipaddr = inet_aton (ip) else: ipaddr = ip if isinstance (nm, type ("")): nmaddr = inet_aton (nm) else: nmaddr = nm netaddr = ipaddr & nmaddr bcaddr = netaddr | (~nmaddr); return (inet_ntoa (netaddr), inet_ntoa (bcaddr)) def inet_calcGateway (bc): if isinstance (bc, type ("")): bcaddr = inet_aton (bc) else: bcaddr = ip return inet_ntoa (bcaddr - 1) def inet_calcNS (net): if isinstance (net, type ("")): netaddr = inet_aton (net) else: netaddr = net return inet_ntoa (netaddr + 1) def parseArgv(str): return _isys.poptParseArgv(str) def getopt(*args): return apply(_isys.getopt, args) def compareDrives(first, second): type1 = first[0:3] type2 = second[0:3] if type1 == "hda": type1 = 0 elif type1 == "sda": type1 = 1 else: type1 = 2 if type2 == "hda": type2 = 0 elif type2 == "sda": type2 = 1 else: type2 = 2 if (type1 < type2): return -1 elif (type1 > type2): return 1 elif first < second: return -1 elif first > second: return 1 return 0