summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2002-12-11 23:02:49 +0000
committerJeremy Katz <katzj@redhat.com>2002-12-11 23:02:49 +0000
commit1c491c9c515c1790e505a4100c46ab46bcc5aefc (patch)
tree3e90cd384f8a7644e33da1ca0b90ba2cf271a196
parent3ff91c42292575c902586e151c793a9401751aa6 (diff)
downloadanaconda-1c491c9c515c1790e505a4100c46ab46bcc5aefc.tar.gz
anaconda-1c491c9c515c1790e505a4100c46ab46bcc5aefc.tar.xz
anaconda-1c491c9c515c1790e505a4100c46ab46bcc5aefc.zip
support loading multiple driver disks (#62888)
-rw-r--r--loader2/driverdisk.c18
-rw-r--r--loader2/driverdisk.h3
-rw-r--r--loader2/loader.c4
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);