summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysinstall
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2003-01-15 21:47:36 +0000
committerjhb <jhb@FreeBSD.org>2003-01-15 21:47:36 +0000
commit8234b5cd64bc8b2cec7f828910659662657049ea (patch)
tree648bdeaf5b1cd1a358b29fb8ecb8752b65a08e56 /usr.sbin/sysinstall
parent1917b354f1dc22d30cbf48ab2a33683be6d7c56f (diff)
downloadFreeBSD-src-8234b5cd64bc8b2cec7f828910659662657049ea.zip
FreeBSD-src-8234b5cd64bc8b2cec7f828910659662657049ea.tar.gz
Add a function driverFloppyCheck() that asks the user if they would like to
load drivers from the driver floppy if the "driver_floppy" variable is set in the kernel environment and call this function after probing devices but before displaying the main menu. X-MFC after: as soon as I finish committing to current Approved by: re@ (blanket)
Diffstat (limited to 'usr.sbin/sysinstall')
-rw-r--r--usr.sbin/sysinstall/main.c6
-rw-r--r--usr.sbin/sysinstall/modules.c10
-rw-r--r--usr.sbin/sysinstall/sysinstall.h1
3 files changed, 17 insertions, 0 deletions
diff --git a/usr.sbin/sysinstall/main.c b/usr.sbin/sysinstall/main.c
index b9ac365..3b1df90 100644
--- a/usr.sbin/sysinstall/main.c
+++ b/usr.sbin/sysinstall/main.c
@@ -127,6 +127,12 @@ main(int argc, char **argv)
/* Probe for all relevant devices on the system */
deviceGetAll();
+ /* Prompt for the driver floppy if appropriate. */
+ if (!pvariable_get("driverFloppyCheck")) {
+ driverFloppyCheck();
+ pvariable_set("driverFloppyCheck=1");
+ }
+
/* First, see if we have any arguments to process (and argv[0] counts if it's not "sysinstall") */
if (!RunningAsInit) {
int i, start_arg;
diff --git a/usr.sbin/sysinstall/modules.c b/usr.sbin/sysinstall/modules.c
index 67a8c89..252ad30 100644
--- a/usr.sbin/sysinstall/modules.c
+++ b/usr.sbin/sysinstall/modules.c
@@ -36,6 +36,7 @@
#include <dirent.h>
#include <fcntl.h>
#include <fnmatch.h>
+#include <kenv.h>
/* Prototypes */
static int kldModuleFire(dialogMenuItem *self);
@@ -96,6 +97,15 @@ moduleInitialize(void)
}
}
+void
+driverFloppyCheck(void)
+{
+ /* Prompt for the driver floppy if requested. */
+ if (kenv(KENV_GET, "driver_floppy", NULL, 0) >= 0 &&
+ !msgYesNo("Would you like to load kernel modules from the driver floppy?"))
+ (void)kldBrowser(NULL);
+}
+
int
kldBrowser(dialogMenuItem *self)
{
diff --git a/usr.sbin/sysinstall/sysinstall.h b/usr.sbin/sysinstall/sysinstall.h
index 0cf0110..5f19c13 100644
--- a/usr.sbin/sysinstall/sysinstall.h
+++ b/usr.sbin/sysinstall/sysinstall.h
@@ -757,6 +757,7 @@ extern void restorescr(WINDOW *w);
extern char *sstrncpy(char *dst, const char *src, int size);
/* modules.c */
+extern void driverFloppyCheck(void);
extern void moduleInitialize(void);
extern int kldBrowser(dialogMenuItem *self);
OpenPOWER on IntegriCloud