summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--isys/isys.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/isys/isys.py b/isys/isys.py
index 505590b64..9cdd587d2 100644
--- a/isys/isys.py
+++ b/isys/isys.py
@@ -242,15 +242,27 @@ classMap = { "disk": kudzu.CLASS_HD,
"cdrom": kudzu.CLASS_CDROM,
"floppy": kudzu.CLASS_FLOPPY }
+cachedDrives = None
+
+def flushDriveDict():
+ global cachedDrives
+ cachedDrives = None
+
def driveDict(klassArg):
- ret = {}
+ global cachedDrives
+ if cachedDrives is not None:
+ return cachedDrives
+ ret = {}
+
# FIXME: need to add dasd probing to kudzu
- devs = kudzu.probe(kudzu.CLASS_UNSPEC, kudzu.BUS_UNSPEC, 0)
+ devs = kudzu.probe(kudzu.CLASS_HD | kudzu.CLASS_CDROM | kudzu.CLASS_FLOPPY,
+ kudzu.BUS_UNSPEC, kudzu.PROBE_SAFE)
for dev in devs:
if dev.deviceclass == classMap[klassArg]:
ret[dev.device] = dev.desc
+ cachedDrives = ret
return ret
def hardDriveDict():