diff options
author | Jeremy Katz <katzj@redhat.com> | 2005-12-12 22:04:48 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2005-12-12 22:04:48 +0000 |
commit | b46edcf8531cbd2519351bcafa37ceb6975339bd (patch) | |
tree | 7a32b3a2948e154eb70c58e554768e38202a46c8 /loader2 | |
parent | 647dd257440c9a4e9503457f5d5855f1484480fb (diff) | |
download | anaconda-b46edcf8531cbd2519351bcafa37ceb6975339bd.tar.gz anaconda-b46edcf8531cbd2519351bcafa37ceb6975339bd.tar.xz anaconda-b46edcf8531cbd2519351bcafa37ceb6975339bd.zip |
2005-12-12 Jeremy Katz <katzj@redhat.com>
* loader2/loader.c: Temporary handling of 'ub' command line flag
to say to try ub instead of usb-storage.
* loader2/loader.h: Add ub flag definition.
* loader2/usb.c (usbInitialize): Load usb-storage/ub if there is
something which looks relevant
Diffstat (limited to 'loader2')
-rw-r--r-- | loader2/loader.c | 2 | ||||
-rw-r--r-- | loader2/loader.h | 2 | ||||
-rw-r--r-- | loader2/usb.c | 21 |
3 files changed, 13 insertions, 12 deletions
diff --git a/loader2/loader.c b/loader2/loader.c index a1797d7d8..439f35ce0 100644 --- a/loader2/loader.c +++ b/loader2/loader.c @@ -541,6 +541,8 @@ static int parseCmdLineFlags(int flags, struct loaderData_s * loaderData, flags |= LOADER_FLAGS_NOUSBSTORAGE; else if (!strcasecmp(argv[i], "nousb")) flags |= LOADER_FLAGS_NOUSB; + else if (!strcasecmp(argv[i], "ub")) + flags |= LOADER_FLAGS_UB; else if (!strcasecmp(argv[i], "telnet")) flags |= LOADER_FLAGS_TELNETD; else if (!strcasecmp(argv[i], "nofirewire")) diff --git a/loader2/loader.h b/loader2/loader.h index 7f1312680..3e846ff6f 100644 --- a/loader2/loader.h +++ b/loader2/loader.h @@ -36,6 +36,7 @@ #define LOADER_FLAGS_HALT (1 << 13) #define LOADER_FLAGS_SELINUX (1 << 14) #define LOADER_FLAGS_VIRTPCONSOLE (1 << 15) +#define LOADER_FLAGS_UB (1 << 16) #define LOADER_FLAGS_NOSTORAGE (1 << 30) #define FL_TESTING(a) ((a) & LOADER_FLAGS_TESTING) @@ -71,6 +72,7 @@ #define FL_VIRTPCONSOLE(a) ((a) & LOADER_FLAGS_VIRTPCONSOLE) #define FL_NOSTORAGE(a) ((a) & LOADER_FLAGS_NOSTORAGE) #define FL_NOPROBE(a) (FL_NOSTORAGE(a) | FL_NONET(a)) +#define FL_UB(a) ((a) && LOADER_FLAGS_UB) void startNewt(int flags); void stopNewt(); diff --git a/loader2/usb.c b/loader2/usb.c index 5b2d95c32..32de8b1ae 100644 --- a/loader2/usb.c +++ b/loader2/usb.c @@ -65,7 +65,7 @@ int usbInitialize(moduleList modLoaded, moduleDeps modDeps, struct device ** devices; char * buf; int i; - int loadUsbStorage = 0; + char * loadUsbStorage = NULL; if (FL_NOUSB(flags)) return 0; @@ -105,23 +105,20 @@ int usbInitialize(moduleList modLoaded, moduleDeps modDeps, the device is ready for use */ sleepUntilUsbIsStable(); - if (FL_NOUSBSTORAGE(flags)) - loadUsbStorage = 0; - else { - devices = probeDevices(CLASS_UNSPEC, BUS_USB, PROBE_ALL); + if (!FL_NOUSBSTORAGE(flags)) { + devices = probeDevices(CLASS_HD | CLASS_FLOPPY | CLASS_CDROM, + BUS_USB, PROBE_ALL); if (devices) { - for (i = 0; devices[i]; i++) { - if (devices[i]->driver && !strcmp(devices[i]->driver, "usb-storage")) { - loadUsbStorage = 1; - break; - } - } + if (FL_UB(flags)) + loadUsbStorage = ":ub"; + else + loadUsbStorage = ":usb-storage"; free(devices); } } buf = alloca(40); - sprintf(buf, "hid:keybdev:%s", (loadUsbStorage ? ":usb-storage" : "")); + sprintf(buf, "hid:keybdev%s", (loadUsbStorage ? loadUsbStorage : "")); mlLoadModuleSet(buf, modLoaded, modDeps, modInfo, flags); sleep(1); |