summaryrefslogtreecommitdiffstats
path: root/loader2
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2005-12-12 22:04:48 +0000
committerJeremy Katz <katzj@redhat.com>2005-12-12 22:04:48 +0000
commitb46edcf8531cbd2519351bcafa37ceb6975339bd (patch)
tree7a32b3a2948e154eb70c58e554768e38202a46c8 /loader2
parent647dd257440c9a4e9503457f5d5855f1484480fb (diff)
downloadanaconda-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.c2
-rw-r--r--loader2/loader.h2
-rw-r--r--loader2/usb.c21
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);