diff options
author | Jeremy Katz <katzj@redhat.com> | 2002-12-11 23:02:49 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2002-12-11 23:02:49 +0000 |
commit | 1c491c9c515c1790e505a4100c46ab46bcc5aefc (patch) | |
tree | 3e90cd384f8a7644e33da1ca0b90ba2cf271a196 | |
parent | 3ff91c42292575c902586e151c793a9401751aa6 (diff) | |
download | anaconda-1c491c9c515c1790e505a4100c46ab46bcc5aefc.tar.gz anaconda-1c491c9c515c1790e505a4100c46ab46bcc5aefc.tar.xz anaconda-1c491c9c515c1790e505a4100c46ab46bcc5aefc.zip |
support loading multiple driver disks (#62888)
-rw-r--r-- | loader2/driverdisk.c | 18 | ||||
-rw-r--r-- | loader2/driverdisk.h | 3 | ||||
-rw-r--r-- | loader2/loader.c | 4 |
3 files changed, 23 insertions, 2 deletions
diff --git a/loader2/driverdisk.c b/loader2/driverdisk.c index c1e7c736e..a4c592087 100644 --- a/loader2/driverdisk.c +++ b/loader2/driverdisk.c @@ -39,6 +39,8 @@ static char * driverDiskFiles[] = { "modinfo", "modules.dep", "pcitable", "modules.cgz", "rhdd-6.1", NULL }; + + static int verifyDriverDisk(char *mntpt, int flags) { char ** fnPtr; char file[200]; @@ -322,4 +324,20 @@ int loadDriverFromMedia(int class, moduleList modLoaded, } +/* looping way to load driver disks */ +int loadDriverDisks(int class, moduleList modLoaded, + moduleDeps * modDepsPtr, moduleInfoSet modInfo, + struct knownDevices * kd, int flags) { + int rc; + loadDriverFromMedia(CLASS_UNSPEC, modLoaded, modDepsPtr, modInfo, + kd, flags, 1); + do { + rc = newtWinChoice(_("More Driver Disks?"), _("Yes"), _("No"), + _("Do you wish to load any more driver disks?")); + if (rc != 1) + break; + loadDriverFromMedia(CLASS_UNSPEC, modLoaded, modDepsPtr, modInfo, + kd, flags, 1); + } while (1); +} diff --git a/loader2/driverdisk.h b/loader2/driverdisk.h index 0d9af2cc7..b0f47a190 100644 --- a/loader2/driverdisk.h +++ b/loader2/driverdisk.h @@ -9,6 +9,9 @@ int loadDriverFromMedia(int class, moduleList modLoaded, moduleDeps * modDepsPtr, moduleInfoSet modInfo, struct knownDevices * kd, int flags, int usecancel); +int loadDriverDisks(int class, moduleList modLoaded, + moduleDeps * modDepsPtr, moduleInfoSet modInfo, + struct knownDevices * kd, int flags); int getRemovableDevices(char *** devNames); diff --git a/loader2/loader.c b/loader2/loader.c index 60cba757e..a48d971e1 100644 --- a/loader2/loader.c +++ b/loader2/loader.c @@ -923,8 +923,8 @@ int main(int argc, char ** argv) { access("/proc/iSeries", R_OK)) || FL_MODDISK(flags)) { startNewt(flags); - loadDriverFromMedia(CLASS_UNSPEC, modLoaded, &modDeps, - modInfo, &kd, flags, 1); + loadDriverDisks(CLASS_UNSPEC, modLoaded, &modDeps, + modInfo, &kd, flags); } busProbe(modInfo, modLoaded, modDeps, 0, &kd, flags); |