diff options
author | Guillaume Cottenceau <gc@mandriva.com> | 2000-12-07 23:16:19 +0000 |
---|---|---|
committer | Guillaume Cottenceau <gc@mandriva.com> | 2000-12-07 23:16:19 +0000 |
commit | 0c0b00ab8086c07600680d41e2f8feefe0f8f150 (patch) | |
tree | 0da2100a6944b5efed0aa02d950d98a071bec0cc /mdk-stage1/disk.c | |
parent | 71d6a65fa155d25fc325d6a9b83a746f5845922e (diff) | |
download | drakx-0c0b00ab8086c07600680d41e2f8feefe0f8f150.tar drakx-0c0b00ab8086c07600680d41e2f8feefe0f8f150.tar.gz drakx-0c0b00ab8086c07600680d41e2f8feefe0f8f150.tar.bz2 drakx-0c0b00ab8086c07600680d41e2f8feefe0f8f150.tar.xz drakx-0c0b00ab8086c07600680d41e2f8feefe0f8f150.zip |
first draft can detect your cdrom drives
soon will launch the stage2
Diffstat (limited to 'mdk-stage1/disk.c')
-rw-r--r-- | mdk-stage1/disk.c | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/mdk-stage1/disk.c b/mdk-stage1/disk.c new file mode 100644 index 000000000..e64782471 --- /dev/null +++ b/mdk-stage1/disk.c @@ -0,0 +1,91 @@ +/* + * Guillaume Cottenceau (gc@mandrakesoft.com) + * + * Copyright 2000 MandrakeSoft + * + * This software may be freely redistributed under the terms of the GNU + * public license. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* + * Portions from Erik Troan (ewt@redhat.com) + * + * Copyright 1996 Red Hat Software + * + */ + +#include <stdlib.h> +#include <unistd.h> +#include "stage1.h" +#include "frontend.h" +#include "modules.h" +#include "probing.h" +#include "log.h" + +#include "disk.h" + +static enum return_type try_with_device(char *dev_name) +{ + + return RETURN_OK; +} + +enum return_type disk_prepare(void) +{ + char ** medias, ** ptr, ** medias_models; + char * choice; + int i, count = 0; + enum return_type results; + + my_insmod("sd_mod"); + my_insmod("vfat"); + my_insmod("reiserfs"); + + medias = get_medias(DISK, QUERY_NAME); + + /* TODO partition check */ + ptr = medias; + while (ptr && *ptr) { + log_message("found DISK %s", *ptr); + count++; + ptr++; + } + + if (count == 0) { + error_message("No DISK drive found."); + i = ask_scsi_insmod(); + if (i == RETURN_BACK) + return RETURN_BACK; + return disk_prepare(); + } + + if (count == 1) { + results = try_with_device(*medias); + if (results == RETURN_OK) + return RETURN_OK; + i = ask_scsi_insmod(); + if (i == RETURN_BACK) + return RETURN_BACK; + return disk_prepare(); + } + + medias_models = get_medias(DISK, QUERY_MODEL); + + results = ask_from_list_comments("Please choose the DISK drive to use for the installation.", medias, medias_models, &choice); + + if (results != RETURN_OK) + return results; + + results = try_with_device(choice); + if (results == RETURN_OK) + return RETURN_OK; + i = ask_scsi_insmod(); + if (i == RETURN_BACK) + return RETURN_BACK; + return disk_prepare(); +} |