summaryrefslogtreecommitdiffstats
path: root/loader2/driverdisk.c
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2004-06-09 03:23:27 +0000
committerJeremy Katz <katzj@redhat.com>2004-06-09 03:23:27 +0000
commitd8df82ed08c8d3be79e56302ebed7ad1ce3f2f06 (patch)
tree46e03ef8b57f43009103feb2ccbda7df28333eb0 /loader2/driverdisk.c
parent46209540ab061ba113a0902775d263ba529ed7e4 (diff)
include disks so that we get usb keys. also only show the disk we want
and a few other little cosmetic things
Diffstat (limited to 'loader2/driverdisk.c')
-rw-r--r--loader2/driverdisk.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/loader2/driverdisk.c b/loader2/driverdisk.c
index fdcef21df..43e0f56dd 100644
--- a/loader2/driverdisk.c
+++ b/loader2/driverdisk.c
@@ -155,7 +155,7 @@ static int loadDriverDisk(moduleInfoSet modInfo, moduleList modLoaded,
* of device names
*/
int getRemovableDevices(char *** devNames) {
- struct device **devices, **floppies, **cdroms;
+ struct device **devices, **floppies, **cdroms, **disks;
int numDevices = 0;
int i = 0, j = 0;
@@ -163,6 +163,8 @@ int getRemovableDevices(char *** devNames) {
BUS_IDE | BUS_SCSI | BUS_MISC, PROBE_LOADED);
cdroms = probeDevices(CLASS_CDROM,
BUS_IDE | BUS_SCSI | BUS_MISC, PROBE_LOADED);
+ disks = probeDevices(CLASS_HD,
+ BUS_IDE | BUS_SCSI | BUS_MISC, PROBE_LOADED);
/* we should probably take detached into account here, but it just
* means we use a little bit more memory than we really need to */
@@ -170,6 +172,8 @@ int getRemovableDevices(char *** devNames) {
for (i = 0; floppies[i]; i++) numDevices++;
if (cdroms)
for (i = 0; cdroms[i]; i++) numDevices++;
+ if (disks)
+ for (i = 0; disks[i]; i++) numDevices++;
/* JKFIXME: better error handling */
if (!numDevices) {
@@ -188,6 +192,10 @@ int getRemovableDevices(char *** devNames) {
for (j = 0; cdroms[j]; j++)
if ((cdroms[j]->detached == 0) && (cdroms[j]->device != NULL))
devices[i++] = cdroms[j];
+ if (disks)
+ for (j = 0; disks[j]; j++)
+ if ((disks[j]->detached == 0) && (disks[j]->device != NULL))
+ devices[i++] = disks[j];
devices[i] = NULL;
numDevices = i;
@@ -262,10 +270,12 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
stage = DEV_PART;
case DEV_PART: {
- char ** part_list = getPartitionsList(NULL);
+ char ** part_list = getPartitionsList(device);
+ int nump = 0, num = 0;
+
if (part != NULL) free(part);
- if ((num = lenPartitionsList(part_list)) == 0) {
+ if ((nump = lenPartitionsList(part_list)) == 0) {
if (dir == -1)
stage = DEV_DEVICE;
else
@@ -279,8 +289,8 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
_("There are multiple partitions on this device "
"which could contain the driver disk image. "
"Which would you like to use?"), 40, 10, 10,
- num < 6 ? num : 6, part_list, &num, _("OK"),
- (usecancel) ? _("Cancel") : _("Back"), NULL);
+ nump < 6 ? nump : 6, part_list, &num, _("OK"),
+ _("Back"), NULL);
if (rc == 2) {
freePartitionsList(part_list);