diff options
author | Jeremy Katz <katzj@redhat.com> | 2003-11-22 00:12:14 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2003-11-22 00:12:14 +0000 |
commit | 91e7edf0bfe395d7a39e18a4bac56a98f9f59266 (patch) | |
tree | d4b16e3f496f5f094c3f426e5f58899f70166fe8 /loader2/cdinstall.c | |
parent | 2eb8babb2d31a6ca7716a9108aeed29ed06f2b63 (diff) | |
download | anaconda-91e7edf0bfe395d7a39e18a4bac56a98f9f59266.tar.gz anaconda-91e7edf0bfe395d7a39e18a4bac56a98f9f59266.tar.xz anaconda-91e7edf0bfe395d7a39e18a4bac56a98f9f59266.zip |
switch to using kudzu's probeDevices() instead of the isys knownDevices
list everywhere. stop passing around kd. link with libpci_loader (built
with diet) on diet arches to avoid dirent incompatibilities
Diffstat (limited to 'loader2/cdinstall.c')
-rw-r--r-- | loader2/cdinstall.c | 54 |
1 files changed, 20 insertions, 34 deletions
diff --git a/loader2/cdinstall.c b/loader2/cdinstall.c index 3e2231029..1bbc6cb76 100644 --- a/loader2/cdinstall.c +++ b/loader2/cdinstall.c @@ -39,7 +39,6 @@ #include "cdinstall.h" #include "mediacheck.h" -#include "../isys/probe.h" #include "../isys/imount.h" #include "../isys/isys.h" @@ -286,7 +285,6 @@ static void queryCDMediaCheck(char *dev, int flags) { * as /mnt/runtime. */ char * setupCdrom(char * location, - struct knownDevices * kd, struct loaderData_s * loaderData, moduleInfoSet modInfo, moduleList modLoaded, @@ -299,25 +297,19 @@ char * setupCdrom(char * location, int stage2inram = 0; char * buf; char *stage2img; + struct device ** devices = NULL; -#if 0 - if (FL_TESTING(flags) && interactive) { - for (i = 0; i < kd->numKnown; i++) { - if (kd->known[i].class != CLASS_CDROM) continue; - buf = malloc(200); - sprintf(buf, "cdrom://%s:/mnt/source", kd->known[i].name); - return buf; - } + devices = probeDevices(CLASS_CDROM, BUS_UNSPEC, PROBE_ALL); + if (!devices) { + logMessage("got to setupCdrom without a CD device"); + return NULL; } -#endif - + /* JKFIXME: ASSERT -- we have a cdrom device when we get here */ do { - for (i = 0; i < kd->numKnown; i++) { - if (kd->known[i].class != CLASS_CDROM) continue; - - logMessage("trying to mount CD device %s", kd->known[i].name); - devMakeInode(kd->known[i].name, "/tmp/cdrom"); + for (i = 0; devices[i]; i++) { + logMessage("trying to mount CD device %s", devices[i]->device); + devMakeInode(devices[i]->device, "/tmp/cdrom"); if (!doPwMount("/tmp/cdrom", "/mnt/source", "iso9660", 1, 0, NULL, NULL, 0, 0)) { char path[1024]; @@ -351,7 +343,7 @@ char * setupCdrom(char * location, } /* do the media check */ - queryCDMediaCheck(kd->known[i].name, flags); + queryCDMediaCheck(devices[i]->device, flags); /* if in rescue mode and we copied stage2 to RAM */ /* we can now unmount the CD */ @@ -361,7 +353,7 @@ char * setupCdrom(char * location, } buf = malloc(200); - sprintf(buf, "cdrom://%s:/mnt/source", kd->known[i].name); + sprintf(buf, "cdrom://%s:/mnt/source", devices[i]->device); return buf; } @@ -399,29 +391,26 @@ char * setupCdrom(char * location, /* try to find a Red Hat CD non-interactively */ char * findRedHatCD(char * location, - struct knownDevices * kd, moduleInfoSet modInfo, moduleList modLoaded, moduleDeps modDeps, int flags, int requirepkgs) { - return setupCdrom(location, kd, NULL, modInfo, modLoaded, modDeps, flags, 0, requirepkgs); + return setupCdrom(location, NULL, modInfo, modLoaded, modDeps, flags, 0, requirepkgs); } /* look for a Red Hat CD and mount it. if we have problems, ask */ char * mountCdromImage(struct installMethod * method, - char * location, struct knownDevices * kd, - struct loaderData_s * loaderData, + char * location, struct loaderData_s * loaderData, moduleInfoSet modInfo, moduleList modLoaded, moduleDeps * modDepsPtr, int flags) { - return setupCdrom(location, kd, loaderData, modInfo, modLoaded, *modDepsPtr, flags, 1, 1); + return setupCdrom(location, loaderData, modInfo, modLoaded, *modDepsPtr, flags, 1, 1); } -void setKickstartCD(struct knownDevices * kd, - struct loaderData_s * loaderData, int argc, +void setKickstartCD(struct loaderData_s * loaderData, int argc, char ** argv, int * flagsPtr) { logMessage("kickstartFromCD"); @@ -429,18 +418,15 @@ void setKickstartCD(struct knownDevices * kd, loaderData->method = strdup("cdrom"); } -int kickstartFromCD(char *kssrc, struct knownDevices * kd, int flags) { +int kickstartFromCD(char *kssrc, int flags) { int rc; - int i; char *p, *kspath; + struct device ** devices; logMessage("getting kickstart file from first CDROM"); - for (i = 0; i < kd->numKnown; i++) - if (kd->known[i].class == CLASS_CDROM) - break; - - if (i >= kd->numKnown) { + devices = probeDevices(CLASS_CDROM, BUS_UNSPEC, PROBE_ALL); + if (!devices) { logMessage("No CDROM devices found!"); return 1; } @@ -454,7 +440,7 @@ int kickstartFromCD(char *kssrc, struct knownDevices * kd, int flags) { if (!p || strlen(kspath) < 1) kspath = "/ks.cfg"; - if ((rc=getKickstartFromBlockDevice(kd->known[i].name, kspath))) { + if ((rc=getKickstartFromBlockDevice(devices[0]->device, kspath))) { if (rc == 3) { startNewt(flags); newtWinMessage(_("Error"), _("OK"), |