summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Cantrell <dcantrell@redhat.com>2006-06-12 17:43:59 +0000
committerDavid Cantrell <dcantrell@redhat.com>2006-06-12 17:43:59 +0000
commite79e0942edb54246fecfe242647df8170c308f13 (patch)
treedae9b8d3b556c179f09e71f64ffd864ae137a988
parentffe866cc310ab410418a7a0ed0723a22fd29085c (diff)
downloadanaconda-e79e0942edb54246fecfe242647df8170c308f13.tar.gz
anaconda-e79e0942edb54246fecfe242647df8170c308f13.tar.xz
anaconda-e79e0942edb54246fecfe242647df8170c308f13.zip
Make the boot flags variable global. We don't need to pass it (or a pointer to it) all over the place.
-rw-r--r--ChangeLog45
-rw-r--r--loader2/cdinstall.c27
-rw-r--r--loader2/cdinstall.h15
-rw-r--r--loader2/driverdisk.c65
-rw-r--r--loader2/driverdisk.h12
-rw-r--r--loader2/driverselect.c14
-rw-r--r--loader2/firewire.c13
-rw-r--r--loader2/firewire.h2
-rw-r--r--loader2/hardware.c54
-rw-r--r--loader2/hardware.h14
-rw-r--r--loader2/hdinstall.c38
-rw-r--r--loader2/hdinstall.h8
-rw-r--r--loader2/kbd.c9
-rw-r--r--loader2/kbd.h4
-rw-r--r--loader2/kickstart.c93
-rw-r--r--loader2/kickstart.h6
-rw-r--r--loader2/lang.c37
-rw-r--r--loader2/lang.h8
-rw-r--r--loader2/loader.c142
-rw-r--r--loader2/loader.h4
-rw-r--r--loader2/method.c7
-rw-r--r--loader2/method.h7
-rw-r--r--loader2/modules.c67
-rw-r--r--loader2/modules.h7
-rw-r--r--loader2/net.c45
-rw-r--r--loader2/net.h15
-rw-r--r--loader2/nfsinstall.c21
-rw-r--r--loader2/nfsinstall.h9
-rw-r--r--loader2/pcmcia.c7
-rw-r--r--loader2/pcmcia.h4
-rw-r--r--loader2/telnetd.c15
-rw-r--r--loader2/telnetd.h2
-rw-r--r--loader2/urlinstall.c46
-rw-r--r--loader2/urlinstall.h9
-rw-r--r--loader2/urls.c9
-rw-r--r--loader2/urls.h4
-rw-r--r--loader2/usb.c17
-rw-r--r--loader2/usb.h4
38 files changed, 475 insertions, 430 deletions
diff --git a/ChangeLog b/ChangeLog
index 8149d618e..e77ed4af4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,48 @@
+2006-06-12 David Cantrell <dcantrell@redhat.com>
+
+ * loader2/loader.c: Define boot loader flags as the global 'flags' so we
+ can use it from anywhere within the loader. Remove all passing of flags
+ to different functions.
+
+ * loader2/cdinstall.c: Reference global flags variable, remove passing of
+ flags to different functions.
+ * loader2/driverdisk.c: Likewise.
+ * loader2/driverselect.c: Likewise.
+ * loader2/firewire.c: Likewise.
+ * loader2/hardware.c: Likewise.
+ * loader2/hdinstall.c: Likewise.
+ * loader2/kbd.c: Likewise.
+ * loader2/kickstart.c: Likewise.
+ * loader2/lang.c: Likewise.
+ * loader2/method.c: Likewise.
+ * loader2/modules.c: Likewise.
+ * loader2/net.c: Likewise.
+ * loader2/nfsinstall.c: Likewise.
+ * loader2/pcmcia.c: Likewise.
+ * loader2/telnetd.c: Likewise.
+ * loader2/urlinstall.c: Likewise.
+ * loader2/urls.c: Likewise.
+ * loader2/usb.c: Likewise.
+
+ * loader2/cdinstall.h: Clean up prototypes to match flags being global.
+ * loader2/driverdisk.h: Likewise.
+ * loader2/firewire.h: Likewise.
+ * loader2/hardware.h: Likewise.
+ * loader2/hdinstall.h: Likewise.
+ * loader2/kbd.h: Likewise.
+ * loader2/kickstart.h: Likewise.
+ * loader2/lang.h: Likewise.
+ * loader2/loader.h: Likewise.
+ * loader2/method.h: Likewise.
+ * loader2/modules.h: Likewise.
+ * loader2/net.h: Likewise.
+ * loader2/nfsinstall.h: Likewise.
+ * loader2/pcmcia.h: Likewise.
+ * loader2/telnetd.h: Likewise.
+ * loader2/urlinstall.h: Likewise.
+ * loader2/urls.h: Likewise.
+ * loader2/usb.h: Likewise.
+
2006-06-10 Jeremy Katz <katzj@redhat.com>
* anaconda.spec: Bump version.
diff --git a/loader2/cdinstall.c b/loader2/cdinstall.c
index a022d74c3..597b4d3a7 100644
--- a/loader2/cdinstall.c
+++ b/loader2/cdinstall.c
@@ -42,6 +42,9 @@
#include "../isys/imount.h"
#include "../isys/isys.h"
+/* boot flags */
+extern int flags;
+
static int getISOStatusFromFD(int isofd, char *mediasum);
/* ejects the CD device the device node /tmp/cdrom points at */
@@ -235,7 +238,7 @@ static void writeISOStatus(int status, char *mediasum) {
/* ask about doing media check */
/* JKFIXME: Assumes CD is mounted as /mnt/source */
-static void queryCDMediaCheck(char *dev, int flags) {
+static void queryCDMediaCheck(char *dev) {
int rc;
char mediasum[33];
int isostatus;
@@ -252,7 +255,7 @@ static void queryCDMediaCheck(char *dev, int flags) {
/* in rescue mode only test if they explicitly asked to */
if ((!isostatus && !FL_RESCUE(flags)) || FL_MEDIACHECK(flags)) {
- startNewt(flags);
+ startNewt();
rc = newtWinChoice(_("CD Found"), _("OK"),
_("Skip"),
_("To begin testing the CD media before installation press %s.\n\n"
@@ -277,7 +280,6 @@ static void queryCDMediaCheck(char *dev, int flags) {
/* set up a cdrom, nominally for installation
*
* location: where to mount the cdrom at JKFIXME: ignored
- * flags: usual loader flags
* interactive: whether or not to prompt about questions/errors (1 is yes)
*
* loaderData is the kickstart info, can be NULL meaning no info
@@ -292,7 +294,6 @@ char * setupCdrom(char * location,
moduleInfoSet modInfo,
moduleList modLoaded,
moduleDeps modDeps,
- int flags,
int interactive,
int requirepkgs) {
int i, rc;
@@ -347,7 +348,7 @@ char * setupCdrom(char * location,
}
/* do the media check */
- queryCDMediaCheck(devices[i]->device, flags);
+ queryCDMediaCheck(devices[i]->device);
/* if in rescue mode and we copied stage2 to RAM */
/* we can now unmount the CD */
@@ -399,9 +400,8 @@ char * findAnacondaCD(char * location,
moduleInfoSet modInfo,
moduleList modLoaded,
moduleDeps modDeps,
- int flags,
- int requirepkgs) {
- return setupCdrom(location, NULL, modInfo, modLoaded, modDeps, flags, 0, requirepkgs);
+ int requirepkgs) {
+ return setupCdrom(location, NULL, modInfo, modLoaded, modDeps, 0, requirepkgs);
}
@@ -410,19 +410,18 @@ char * findAnacondaCD(char * location,
char * mountCdromImage(struct installMethod * method,
char * location, struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, int flags) {
+ moduleDeps * modDepsPtr) {
- return setupCdrom(location, loaderData, modInfo, modLoaded, *modDepsPtr, flags, 1, 1);
+ return setupCdrom(location, loaderData, modInfo, modLoaded, *modDepsPtr, 1, 1);
}
-void setKickstartCD(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
+void setKickstartCD(struct loaderData_s * loaderData, int argc, char ** argv) {
logMessage(INFO, "kickstartFromCD");
loaderData->method = strdup("cdrom");
}
-int kickstartFromCD(char *kssrc, int flags) {
+int kickstartFromCD(char *kssrc) {
int rc;
char *p, *kspath;
struct device ** devices;
@@ -446,7 +445,7 @@ int kickstartFromCD(char *kssrc, int flags) {
if ((rc=getKickstartFromBlockDevice(devices[0]->device, kspath))) {
if (rc == 3) {
- startNewt(flags);
+ startNewt();
newtWinMessage(_("Error"), _("OK"),
_("Cannot find kickstart file on CDROM."));
}
diff --git a/loader2/cdinstall.h b/loader2/cdinstall.h
index 69bc407e6..cf3a64e11 100644
--- a/loader2/cdinstall.h
+++ b/loader2/cdinstall.h
@@ -6,18 +6,15 @@
char * mountCdromImage(struct installMethod * method,
char * location, struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, int flags);
+ moduleDeps * modDepsPtr);
-char * findAnacondaCD(char * location,
- moduleInfoSet modInfo,
- moduleList modLoaded,
- moduleDeps modDeps,
- int flags,
- int requirepkgs);
+char * findAnacondaCD(char * location, moduleInfoSet modInfo,
+ moduleList modLoaded, moduleDeps modDeps,
+ int requirepkgs);
void setKickstartCD(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
-int kickstartFromCD(char *kssrc, int flags);
+int kickstartFromCD(char *kssrc);
#endif
diff --git a/loader2/driverdisk.c b/loader2/driverdisk.c
index 99c681350..75a882d7a 100644
--- a/loader2/driverdisk.c
+++ b/loader2/driverdisk.c
@@ -45,13 +45,16 @@
#include "../isys/imount.h"
#include "../isys/eddsupport.h"
+/* boot flags */
+extern int flags;
+
static char * driverDiskFiles[] = { "modinfo", "modules.dep", "pcitable",
"modules.cgz", NULL };
static char * optionalFiles[] = { "modules.pcimap", "pci.ids", NULL };
-static int verifyDriverDisk(char *mntpt, int flags) {
+static int verifyDriverDisk(char *mntpt) {
char ** fnPtr;
char file[200];
struct stat sb;
@@ -86,7 +89,7 @@ static int verifyDriverDisk(char *mntpt, int flags) {
/* this copies the contents of the driver disk to a ramdisk and loads
* the moduleinfo, etc. assumes a "valid" driver disk mounted at mntpt */
static int loadDriverDisk(moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, char *mntpt, int flags) {
+ moduleDeps * modDepsPtr, char *mntpt) {
char file[200], dest[200];
char * title;
char ** fnPtr;
@@ -120,7 +123,7 @@ static int loadDriverDisk(moduleInfoSet modInfo, moduleList modLoaded,
mkdirChain(file);
if (!FL_CMDLINE(flags)) {
- startNewt(flags);
+ startNewt();
winStatus(40, 3, _("Loading"), _("Reading driver disk..."));
}
@@ -230,7 +233,7 @@ int getRemovableDevices(char *** devNames) {
*/
int loadDriverFromMedia(int class, moduleList modLoaded,
moduleDeps * modDepsPtr, moduleInfoSet modInfo,
- int flags, int usecancel, int noprobe) {
+ int usecancel, int noprobe) {
char * device = NULL, * part = NULL, * ddfile = NULL;
char ** devNames = NULL;
@@ -260,7 +263,7 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
}
dir = 1;
- startNewt(flags);
+ startNewt();
rc = newtWinMenu(_("Driver Disk Source"),
_("You have multiple devices which could serve "
"as sources for a driver disk. Which would "
@@ -292,7 +295,7 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
}
dir = 1;
- startNewt(flags);
+ startNewt();
rc = newtWinMenu(_("Driver Disk Source"),
_("There are multiple partitions on this device "
"which could contain the driver disk image. "
@@ -405,7 +408,7 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
}
}
- rc = verifyDriverDisk("/tmp/drivers", flags);
+ rc = verifyDriverDisk("/tmp/drivers");
if (rc == LOADER_BACK) {
umount("/tmp/drivers");
stage = DEV_INSERT;
@@ -426,7 +429,7 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
for(; devices[before]; before++);
rc = loadDriverDisk(modInfo, modLoaded, modDepsPtr,
- "/tmp/drivers", flags);
+ "/tmp/drivers");
umount("/tmp/drivers");
if (rc == LOADER_BACK) {
dir = -1;
@@ -456,7 +459,7 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
break;
}
- busProbe(modInfo, modLoaded, *modDepsPtr, 0, flags);
+ busProbe(modInfo, modLoaded, *modDepsPtr, 0);
devices = probeDevices(class, BUS_UNSPEC, PROBE_LOADED);
if (devices)
@@ -485,8 +488,7 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
* beginning with them */
stage = DEV_DEVICE;
} else {
- rc = chooseManualDriver(class, modLoaded, modDepsPtr, modInfo,
- flags);
+ rc = chooseManualDriver(class, modLoaded, modDepsPtr, modInfo);
/* if they go back from a manual driver, we'll ask again.
* if they load something, assume it's what we need */
if (rc == LOADER_OK) {
@@ -508,8 +510,7 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
/* looping way to load driver disks */
int loadDriverDisks(int class, moduleList modLoaded,
- moduleDeps * modDepsPtr, moduleInfoSet modInfo,
- int flags) {
+ moduleDeps * modDepsPtr, moduleInfoSet modInfo) {
int rc;
rc = newtWinChoice(_("Driver disk"), _("Yes"), _("No"),
@@ -518,7 +519,7 @@ int loadDriverDisks(int class, moduleList modLoaded,
return LOADER_OK;
rc = loadDriverFromMedia(CLASS_UNSPEC, modLoaded, modDepsPtr, modInfo,
- flags, 1, 0);
+ 1, 0);
if (rc == LOADER_BACK)
return LOADER_OK;
@@ -528,40 +529,37 @@ int loadDriverDisks(int class, moduleList modLoaded,
if (rc != 1)
break;
loadDriverFromMedia(CLASS_UNSPEC, modLoaded, modDepsPtr, modInfo,
- flags, 0, 0);
+ 0, 0);
} while (1);
return LOADER_OK;
}
-static void loadFromLocation(struct loaderData_s * loaderData,
- char * dir, int flags) {
- if (verifyDriverDisk(dir, flags) == LOADER_BACK) {
+static void loadFromLocation(struct loaderData_s * loaderData, char * dir) {
+ if (verifyDriverDisk(dir) == LOADER_BACK) {
logMessage(ERROR, "not a valid driver disk");
return;
}
loadDriverDisk(loaderData->modInfo, loaderData->modLoaded,
- loaderData->modDepsPtr, dir, flags);
+ loaderData->modDepsPtr, dir);
busProbe(loaderData->modInfo, loaderData->modLoaded, *
- loaderData->modDepsPtr, 0, flags);
+ loaderData->modDepsPtr, 0);
}
-void getDDFromSource(struct loaderData_s * loaderData,
- char * src, int flags) {
+void getDDFromSource(struct loaderData_s * loaderData, char * src) {
char *path = "/tmp/dd.img";
int unlinkf = 0;
if (!strncmp(src, "nfs:", 4)) {
unlinkf = 1;
- if (getFileFromNfs(src + 4, "/tmp/dd.img", loaderData,
- flags)) {
+ if (getFileFromNfs(src + 4, "/tmp/dd.img", loaderData)) {
logMessage(ERROR, "unable to retrieve driver disk: %s", src);
return;
}
} else if (!strncmp(src, "ftp://", 6) || !strncmp(src, "http://", 7)) {
unlinkf = 1;
- if (getFileFromUrl(src, "/tmp/dd.img", loaderData, flags)) {
+ if (getFileFromUrl(src, "/tmp/dd.img", loaderData)) {
logMessage(ERROR, "unable to retrieve driver disk: %s", src);
return;
}
@@ -570,7 +568,7 @@ void getDDFromSource(struct loaderData_s * loaderData,
#if !defined(__s390__) && !defined(__s390x__)
} else if (!strncmp(src, "cdrom", 5)) {
loadDriverDisks(CLASS_UNSPEC, loaderData->modLoaded,
- loaderData->modDepsPtr, loaderData->modInfo, flags);
+ loaderData->modDepsPtr, loaderData->modInfo);
return;
#endif
} else if (!strncmp(src, "path:", 5)) {
@@ -582,7 +580,7 @@ void getDDFromSource(struct loaderData_s * loaderData,
}
if (!mountLoopback(path, "/tmp/drivers", "loop6")) {
- loadFromLocation(loaderData, "/tmp/drivers", flags);
+ loadFromLocation(loaderData, "/tmp/drivers");
umountLoopback("/tmp/drivers", "loop6");
unlink("/tmp/drivers");
if (unlinkf) unlink(path);
@@ -591,10 +589,10 @@ void getDDFromSource(struct loaderData_s * loaderData,
}
static void getDDFromDev(struct loaderData_s * loaderData, char * dev,
- char * fstype, int flags);
+ char * fstype);
void useKickstartDD(struct loaderData_s * loaderData,
- int argc, char ** argv, int * flagsPtr) {
+ int argc, char ** argv) {
char * fstype = NULL;
char * dev = NULL;
char * src = NULL;
@@ -604,7 +602,6 @@ void useKickstartDD(struct loaderData_s * loaderData,
poptContext optCon;
int rc;
- int flags = *flagsPtr;
struct poptOption ksDDOptions[] = {
{ "type", '\0', POPT_ARG_STRING, &fstype, 0, NULL, NULL },
{ "source", '\0', POPT_ARG_STRING, &src, 0, NULL, NULL },
@@ -647,14 +644,14 @@ void useKickstartDD(struct loaderData_s * loaderData,
}
if (dev) {
- return getDDFromDev(loaderData, dev, fstype, flags);
+ return getDDFromDev(loaderData, dev, fstype);
} else {
- return getDDFromSource(loaderData, src, flags);
+ return getDDFromSource(loaderData, src);
}
}
static void getDDFromDev(struct loaderData_s * loaderData, char * dev,
- char * fstype, int flags) {
+ char * fstype) {
devMakeInode(dev, "/tmp/dddev");
if (fstype) {
if (doPwMount("/tmp/dddev", "/tmp/drivers", fstype,
@@ -671,7 +668,7 @@ static void getDDFromDev(struct loaderData_s * loaderData, char * dev,
}
}
- loadFromLocation(loaderData, "/tmp/drivers", flags);
+ loadFromLocation(loaderData, "/tmp/drivers");
umount("/tmp/drivers");
unlink("/tmp/drivers");
unlink("/tmp/dddev");
diff --git a/loader2/driverdisk.h b/loader2/driverdisk.h
index 63173817c..dfa7e4679 100644
--- a/loader2/driverdisk.h
+++ b/loader2/driverdisk.h
@@ -8,20 +8,18 @@
int loadDriverFromMedia(int class, moduleList modLoaded,
moduleDeps * modDepsPtr, moduleInfoSet modInfo,
- int flags, int usecancel, int noprobe);
+ int usecancel, int noprobe);
int loadDriverDisks(int class, moduleList modLoaded,
- moduleDeps * modDepsPtr, moduleInfoSet modInfo, int flags);
+ moduleDeps * modDepsPtr, moduleInfoSet modInfo);
int getRemovableDevices(char *** devNames);
int chooseManualDriver(int class, moduleList modLoaded,
- moduleDeps * modDepsPtr, moduleInfoSet modInfo,
- int flags);
+ moduleDeps * modDepsPtr, moduleInfoSet modInfo);
void useKickstartDD(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
-void getDDFromSource(struct loaderData_s * loaderData,
- char * src, int flags);
+void getDDFromSource(struct loaderData_s * loaderData, char * src);
#endif
diff --git a/loader2/driverselect.c b/loader2/driverselect.c
index 66614f377..5337e7ba7 100644
--- a/loader2/driverselect.c
+++ b/loader2/driverselect.c
@@ -135,8 +135,7 @@ static int getManualModuleArgs(struct moduleInfo * mod, char *** moduleArgs) {
}
int chooseManualDriver(int class, moduleList modLoaded,
- moduleDeps * modDepsPtr, moduleInfoSet modInfo,
- int flags) {
+ moduleDeps * modDepsPtr, moduleInfoSet modInfo) {
int i, numSorted, num = 0, done = 0;
enum driverMajor type;
struct sortModuleList * sortedOrder;
@@ -185,8 +184,7 @@ int chooseManualDriver(int class, moduleList modLoaded,
if (i != 1)
return LOADER_BACK;
- loadDriverFromMedia(class, modLoaded, modDepsPtr, modInfo,
- flags, 1, 1);
+ loadDriverFromMedia(class, modLoaded, modDepsPtr, modInfo, 1, 1);
continue;
} else {
break;
@@ -260,14 +258,12 @@ int chooseManualDriver(int class, moduleList modLoaded,
if (done == -1)
return LOADER_BACK;
if (done == -2) {
- loadDriverFromMedia(class, modLoaded, modDepsPtr, modInfo,
- flags, 1, 1);
- return chooseManualDriver(class, modLoaded, modDepsPtr, modInfo,
- flags);
+ loadDriverFromMedia(class, modLoaded, modDepsPtr, modInfo, 1, 1);
+ return chooseManualDriver(class, modLoaded, modDepsPtr, modInfo);
}
mlLoadModule(modInfo->moduleList[num].moduleName, modLoaded, modDeps,
- modInfo, moduleArgs, flags);
+ modInfo, moduleArgs);
free(sortedOrder);
return LOADER_OK;
diff --git a/loader2/firewire.c b/loader2/firewire.c
index 0b30fb41c..d26d0a2df 100644
--- a/loader2/firewire.c
+++ b/loader2/firewire.c
@@ -25,8 +25,11 @@
#include "modules.h"
#include "windows.h"
+/* boot flags */
+extern int flags;
+
int firewireInitialize(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
struct device ** devices;
int i = 0;
int found = 0;
@@ -40,7 +43,7 @@ int firewireInitialize(moduleList modLoaded, moduleDeps modDeps,
return 0;
}
- startNewt(flags);
+ startNewt();
/* JKFIXME: if we looked for all of them, we could batch this up and it
* would be faster */
@@ -52,8 +55,7 @@ int firewireInitialize(moduleList modLoaded, moduleDeps modDeps,
winStatus(40, 3, _("Loading"), _("Loading %s driver..."),
devices[0]->driver);
- if (mlLoadModuleSet(devices[i]->driver, modLoaded, modDeps,
- modInfo, flags)) {
+ if (mlLoadModuleSet(devices[i]->driver, modLoaded, modDeps, modInfo)) {
logMessage(ERROR, "failed to insert firewire module");
} else {
found++;
@@ -80,8 +82,7 @@ int firewireInitialize(moduleList modLoaded, moduleDeps modDeps,
if ((devices[i]->detached == 0) && (devices[i]->driver != NULL)) {
logMessage(INFO, "found firewire device using %s",
devices[i]->device);
- mlLoadModuleSet(devices[i]->driver, modLoaded, modDeps,
- modInfo, flags);
+ mlLoadModuleSet(devices[i]->driver, modLoaded, modDeps, modInfo);
}
}
diff --git a/loader2/firewire.h b/loader2/firewire.h
index 311532104..9fcdf8c1c 100644
--- a/loader2/firewire.h
+++ b/loader2/firewire.h
@@ -2,6 +2,6 @@
#define H_FIREWIRE
int firewireInitialize(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
+ moduleInfoSet modInfo);
#endif
diff --git a/loader2/hardware.c b/loader2/hardware.c
index 2b26cc468..956c04026 100644
--- a/loader2/hardware.c
+++ b/loader2/hardware.c
@@ -36,6 +36,8 @@
#include <linux/hdreg.h>
#include "../isys/isys.h"
+/* boot flags */
+extern int flags;
/* returns whether or not we can probe devices automatically or have to
* ask for them manually. */
@@ -56,8 +58,7 @@ int canProbeDevices(void) {
return 1;
}
-static int detectHardware(moduleInfoSet modInfo,
- char *** modules, int flags) {
+static int detectHardware(moduleInfoSet modInfo, char *** modules) {
struct device ** devices, ** device;
char ** modList;
int numMods;
@@ -128,7 +129,7 @@ static int detectHardware(moduleInfoSet modInfo,
}
int scsiTapeInitialize(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
struct device ** devices;
if (FL_TESTING(flags)) return 0;
@@ -144,7 +145,7 @@ int scsiTapeInitialize(moduleList modLoaded, moduleDeps modDeps,
logMessage(INFO, "scsi tape device(s) found, loading st.ko");
- if (mlLoadModuleSet("st", modLoaded, modDeps, modInfo, flags)) {
+ if (mlLoadModuleSet("st", modLoaded, modDeps, modInfo)) {
logMessage(ERROR, "failed to insert st module");
return 1;
}
@@ -154,11 +155,11 @@ int scsiTapeInitialize(moduleList modLoaded, moduleDeps modDeps,
int probeiSeries(moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps modDeps, int flags) {
+ moduleDeps modDeps) {
/* this is a hack since we can't really probe on iSeries */
#ifdef __powerpc__
if (!access("/proc/iSeries", X_OK)) {
- mlLoadModuleSet("iseries_veth:veth:viodasd:viocd", modLoaded, modDeps, modInfo, flags);
+ mlLoadModuleSet("iseries_veth:veth:viodasd:viocd", modLoaded, modDeps, modInfo);
}
#endif
return 0;
@@ -171,7 +172,7 @@ int probeiSeries(moduleInfoSet modInfo, moduleList modLoaded,
* but is done as a quick hack for the present.
*/
int earlyModuleLoad(moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps modDeps, int justProbe, int flags) {
+ moduleDeps modDeps, int justProbe) {
int fd, len, i;
char buf[1024], *cmdLine;
int argc;
@@ -195,28 +196,28 @@ int earlyModuleLoad(moduleInfoSet modInfo, moduleList modLoaded,
for (i=0; i < argc; i++) {
if (!strncasecmp(argv[i], "driverload=", 11)) {
logMessage(INFO, "loading %s early", argv[i] + 11);
- mlLoadModuleSet(argv[i] + 11, modLoaded, modDeps, modInfo, flags);
+ mlLoadModuleSet(argv[i] + 11, modLoaded, modDeps, modInfo);
}
}
return 0;
}
int busProbe(moduleInfoSet modInfo, moduleList modLoaded, moduleDeps modDeps,
- int justProbe, int flags) {
+ int justProbe) {
int i;
char ** modList;
char modules[1024];
/* we always want to try to find out about pcmcia controllers even
* if using noprobe */
- initializePcmciaController(modLoaded, modDeps, modInfo, flags);
+ initializePcmciaController(modLoaded, modDeps, modInfo);
/* we can't really *probe* on iSeries, but we can pretend */
- probeiSeries(modInfo, modLoaded, modDeps, flags);
+ probeiSeries(modInfo, modLoaded, modDeps);
if (canProbeDevices()) {
/* autodetect whatever we can */
- if (detectHardware(modInfo, &modList, flags)) {
+ if (detectHardware(modInfo, &modList)) {
logMessage(ERROR, "failed to scan pci bus!");
return 0;
} else if (modList && justProbe) {
@@ -230,7 +231,7 @@ int busProbe(moduleInfoSet modInfo, moduleList modLoaded, moduleDeps modDeps,
strcat(modules, modList[i]);
}
- mlLoadModuleSet(modules, modLoaded, modDeps, modInfo, flags);
+ mlLoadModuleSet(modules, modLoaded, modDeps, modInfo);
} else
logMessage(INFO, "found nothing");
}
@@ -240,31 +241,31 @@ int busProbe(moduleInfoSet modInfo, moduleList modLoaded, moduleDeps modDeps,
void ipv6Setup(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
if (!FL_NOIPV6(flags))
- mlLoadModule("ipv6", modLoaded, modDeps, modInfo, NULL, flags);
+ mlLoadModule("ipv6", modLoaded, modDeps, modInfo, NULL);
}
void scsiSetup(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
- mlLoadModuleSet("scsi_mod:sd_mod:sr_mod", modLoaded, modDeps, modInfo, flags);
+ moduleInfoSet modInfo) {
+ mlLoadModuleSet("scsi_mod:sd_mod:sr_mod", modLoaded, modDeps, modInfo);
#if defined(__s390__) || defined(__s390x__)
- mlLoadModule("zfcp", modLoaded, modDeps, modInfo, NULL, flags);
+ mlLoadModule("zfcp", modLoaded, modDeps, modInfo, NULL);
#endif
if (FL_ISCSI(flags))
- mlLoadModule("iscsi_tcp", modLoaded, modDeps, modInfo, NULL, flags);
+ mlLoadModule("iscsi_tcp", modLoaded, modDeps, modInfo, NULL);
}
void ideSetup(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
#if 0
struct device ** devices;
int fd, i;
#endif
- mlLoadModuleSet("cdrom:ide-cd", modLoaded, modDeps, modInfo, flags);
+ mlLoadModuleSet("cdrom:ide-cd", modLoaded, modDeps, modInfo);
/* nuke this for now */
#if 0
@@ -309,7 +310,7 @@ void ideSetup(moduleList modLoaded, moduleDeps modDeps,
/* then parse proc to find active DASDs */
/* Reload dasd_mod with correct range of DASD ports */
void dasdSetup(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
#if !defined(__s390__) && !defined(__s390x__)
return;
#else
@@ -341,18 +342,17 @@ void dasdSetup(moduleList modLoaded, moduleDeps modDeps,
free(line);
}
if(dasd_parms[0]) {
- mlLoadModule("dasd_mod", modLoaded, modDeps, modInfo,
- dasd_parms, flags);
+ mlLoadModule("dasd_mod", modLoaded, modDeps, modInfo, dasd_parms);
mlLoadModuleSet("dasd_diag_mod:dasd_fba_mod:dasd_eckd_mod",
- modLoaded, modDeps, modInfo, flags);
+ modLoaded, modDeps, modInfo);
free(dasd_parms);
return;
} else {
dasd_parms[0] = "dasd=autodetect";
- mlLoadModule("dasd_mod", modLoaded, modDeps, modInfo, dasd_parms, flags);
+ mlLoadModule("dasd_mod", modLoaded, modDeps, modInfo, dasd_parms);
mlLoadModuleSet("dasd_diag_mod:dasd_fba_mod:dasd_eckd_mod",
- modLoaded, modDeps, modInfo, flags);
+ modLoaded, modDeps, modInfo);
free(dasd_parms);
}
#endif
diff --git a/loader2/hardware.h b/loader2/hardware.h
index 9c8e13c91..5da7bf6b5 100644
--- a/loader2/hardware.h
+++ b/loader2/hardware.h
@@ -6,21 +6,21 @@
int canProbeDevices(void);
int scsiTapeInitialize(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
+ moduleInfoSet modInfo);
int earlyModuleLoad(moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps modDeps, int justProbe, int flags);
+ moduleDeps modDeps, int justProbe);
int busProbe(moduleInfoSet modInfo, moduleList modLoaded, moduleDeps modDeps,
- int justProbe, int flags);
+ int justProbe);
void scsiSetup(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
+ moduleInfoSet modInfo);
void ideSetup(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
+ moduleInfoSet modInfo);
void dasdSetup(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
+ moduleInfoSet modInfo);
void ipv6Setup(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
+ moduleInfoSet modInfo);
#endif
diff --git a/loader2/hdinstall.c b/loader2/hdinstall.c
index 1f3118778..b8df57dbe 100644
--- a/loader2/hdinstall.c
+++ b/loader2/hdinstall.c
@@ -42,9 +42,11 @@
#include "../isys/isys.h"
#include "../isys/eddsupport.h"
+/* boot flags */
+extern int flags;
/* pull in second stage image for hard drive install */
-static int loadHDImages(char * prefix, char * dir, int flags,
+static int loadHDImages(char * prefix, char * dir,
char * device, char * mntpoint) {
int fd, rc, idx;
char *path, *target, *dest;
@@ -92,7 +94,7 @@ static int loadHDImages(char * prefix, char * dir, int flags,
dest = alloca(strlen(target) + 50);
sprintf(dest,"/tmp/ramfs/%s", target);
- rc = copyFileAndLoopbackMount(fd, dest, flags, device, mntpoint);
+ rc = copyFileAndLoopbackMount(fd, dest, device, mntpoint);
close(fd);
if (!verifyStamp(mntpoint)) {
@@ -111,7 +113,7 @@ static int loadHDImages(char * prefix, char * dir, int flags,
#if 0 /* Unused now */
/* mount loopback second stage image for hard drive install */
-static int mountHDImages(char * prefix, char * dir, int flags,
+static int mountHDImages(char * prefix, char * dir,
char * device, char * mntpoint,
int checkstamp) {
int idx, rc;
@@ -169,7 +171,7 @@ static int mountHDImages(char * prefix, char * dir, int flags,
#endif
/* given a partition device and directory, tries to mount hd install image */
-static char * setupIsoImages(char * device, char * dirName, int flags) {
+static char * setupIsoImages(char * device, char * dirName) {
int rc;
char * url;
char filespec[1024];
@@ -208,7 +210,7 @@ static char * setupIsoImages(char * device, char * dirName, int flags) {
if (!rc) {
/* This code is for copying small stage2 into ram */
/* and mounting */
- rc = loadHDImages("/tmp/loopimage", "/", flags, "loop1",
+ rc = loadHDImages("/tmp/loopimage", "/", "loop1",
"/mnt/runtime");
if (rc) {
newtWinMessage(_("Error"), _("OK"),
@@ -216,7 +218,7 @@ static char * setupIsoImages(char * device, char * dirName, int flags) {
"from the ISO images. Please check your ISO "
"images and try again."));
} else {
- queryIsoMediaCheck(path, flags);
+ queryIsoMediaCheck(path);
}
}
@@ -249,7 +251,7 @@ static char * setupIsoImages(char * device, char * dirName, int flags) {
char * mountHardDrive(struct installMethod * method,
char * location, struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, int flags) {
+ moduleDeps * modDepsPtr) {
int rc;
int i;
@@ -293,7 +295,7 @@ char * mountHardDrive(struct installMethod * method,
if (!strncmp(kspart, "/dev/", 5))
kspart = kspart + 5;
- url = setupIsoImages(kspart, ksdirectory, flags);
+ url = setupIsoImages(kspart, ksdirectory);
if (!url) {
logMessage(ERROR, "unable to find %s installation images on hd",getProductName());
free(loaderData->method);
@@ -332,7 +334,7 @@ char * mountHardDrive(struct installMethod * method,
return NULL;
rc = loadDriverFromMedia(CLASS_HD, modLoaded, modDepsPtr,
- modInfo, flags, 0, 0);
+ modInfo, 0, 0);
if (rc == LOADER_BACK)
return NULL;
@@ -418,7 +420,7 @@ char * mountHardDrive(struct installMethod * method,
return NULL;
} else if (es.reason == NEWT_EXIT_HOTKEY && es.u.key == NEWT_KEY_F2) {
rc = loadDriverFromMedia(CLASS_HD, modLoaded, modDepsPtr,
- modInfo, flags, 0, 0);
+ modInfo, 0, 0);
if (rc == LOADER_BACK)
return NULL;
@@ -427,7 +429,7 @@ char * mountHardDrive(struct installMethod * method,
logMessage(INFO, "partition %s selected", selpart);
- url = setupIsoImages(selpart + 5, dir, flags);
+ url = setupIsoImages(selpart + 5, dir);
if (!url) {
newtWinMessage(_("Error"), _("OK"),
_("Device %s does not appear to contain "
@@ -447,7 +449,7 @@ char * mountHardDrive(struct installMethod * method,
}
void setKickstartHD(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
+ char ** argv) {
char *biospart = NULL, *partition = NULL, *dir = NULL, *p;
poptContext optCon;
int rc;
@@ -463,7 +465,7 @@ void setKickstartHD(struct loaderData_s * loaderData, int argc,
logMessage(INFO, "kickstartFromHD");
optCon = poptGetContext(NULL, argc, (const char **) argv, ksHDOptions, 0);
if ((rc = poptGetNextOpt(optCon)) < -1) {
- startNewt(*flagsPtr);
+ startNewt();
newtWinMessage(_("Kickstart Error"), _("OK"),
_("Bad argument to HD kickstart method "
"command %s: %s"),
@@ -501,7 +503,7 @@ void setKickstartHD(struct loaderData_s * loaderData, int argc,
dir);
}
-int kickstartFromHD(char *kssrc, int flags) {
+int kickstartFromHD(char *kssrc) {
int rc;
char *p, *q = NULL, *tmpstr, *ksdev, *kspath;
@@ -532,7 +534,7 @@ int kickstartFromHD(char *kssrc, int flags) {
logMessage(INFO, "Loading ks from device %s on path %s", ksdev, kspath);
if ((rc=getKickstartFromBlockDevice(ksdev, kspath))) {
if (rc == 3) {
- startNewt(flags);
+ startNewt();
newtWinMessage(_("Error"), _("OK"),
_("Cannot find kickstart file on hard drive."));
}
@@ -543,7 +545,7 @@ int kickstartFromHD(char *kssrc, int flags) {
}
-int kickstartFromBD(char *kssrc, int flags) {
+int kickstartFromBD(char *kssrc) {
int rc;
char *p, *q = NULL, *r = NULL, *tmpstr, *ksdev, *kspath, *biosksdev;
@@ -575,7 +577,7 @@ int kickstartFromBD(char *kssrc, int flags) {
*r = '\0';
biosksdev = getBiosDisk((p + 1));
if(!biosksdev){
- startNewt(flags);
+ startNewt();
newtWinMessage(_("Error"), _("OK"),
_("Cannot find hard drive for BIOS disk %s"),
p + 1);
@@ -588,7 +590,7 @@ int kickstartFromBD(char *kssrc, int flags) {
logMessage(INFO, "Loading ks from device %s on path %s", ksdev, kspath);
if ((rc=getKickstartFromBlockDevice(ksdev, kspath))) {
if (rc == 3) {
- startNewt(flags);
+ startNewt();
newtWinMessage(_("Error"), _("OK"),
_("Cannot find kickstart file on hard drive."));
}
diff --git a/loader2/hdinstall.h b/loader2/hdinstall.h
index 5f4293e3f..dcb59b34e 100644
--- a/loader2/hdinstall.h
+++ b/loader2/hdinstall.h
@@ -10,12 +10,12 @@ struct hdInstallData {
void setKickstartHD(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
char * mountHardDrive(struct installMethod * method,
char * location, struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, int flags);
-int kickstartFromHD(char *kssrc, int flags);
-int kickstartFromBD(char *kssrc, int flags);
+ moduleDeps * modDepsPtr);
+int kickstartFromHD(char *kssrc);
+int kickstartFromBD(char *kssrc);
#endif
diff --git a/loader2/kbd.c b/loader2/kbd.c
index f8de6c98b..dc87abe67 100644
--- a/loader2/kbd.c
+++ b/loader2/kbd.c
@@ -31,7 +31,10 @@
#include "../isys/stubs.h"
#include "../isys/lang.h"
-int chooseKeyboard(struct loaderData_s * loaderData, char ** kbdtypep, int flags) {
+/* boot flags */
+extern int flags;
+
+int chooseKeyboard(struct loaderData_s * loaderData, char ** kbdtypep) {
int num = -1;
int rc;
gzFile f;
@@ -65,7 +68,7 @@ int chooseKeyboard(struct loaderData_s * loaderData, char ** kbdtypep, int flags
}
#endif /* sparc */
- numLanguages = getLangInfo(&languages, flags);
+ numLanguages = getLangInfo(&languages);
lang = getenv("LANG");
if (!lang)
@@ -166,7 +169,7 @@ int chooseKeyboard(struct loaderData_s * loaderData, char ** kbdtypep, int flags
}
void setKickstartKeyboard(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
+ char ** argv) {
if (argc < 2) {
logMessage(ERROR, "no argument passed to keyboard kickstart command");
return;
diff --git a/loader2/kbd.h b/loader2/kbd.h
index d4cb70c44..06dcfde24 100644
--- a/loader2/kbd.h
+++ b/loader2/kbd.h
@@ -1,8 +1,8 @@
#ifndef H_KBD
#define H_KBD
-int chooseKeyboard(struct loaderData_s * loaderData, char ** kbdtypep, int flags);
+int chooseKeyboard(struct loaderData_s * loaderData, char ** kbdtypep);
void setKickstartKeyboard(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
#endif
diff --git a/loader2/kickstart.c b/loader2/kickstart.c
index 7aa9f520f..ecddee87e 100644
--- a/loader2/kickstart.c
+++ b/loader2/kickstart.c
@@ -48,11 +48,14 @@
#include "../isys/imount.h"
#include "../isys/isys.h"
+/* boot flags */
+extern int flags;
+
struct ksCommandNames {
int code;
char * name;
void (*setupData) (struct loaderData_s *loaderData,
- int argc, char ** argv, int * flagsPtr);
+ int argc, char ** argv);
} ;
struct ksCommand {
@@ -61,23 +64,23 @@ struct ksCommand {
};
static void setTextMode(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
static void setGraphicalMode(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
static void setCmdlineMode(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
static void setSELinux(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
static void setPowerOff(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
static void setHalt(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
static void setShutdown(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
static void setMediaCheck(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
void loadKickstartModule(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
struct ksCommandNames ksTable[] = {
{ KS_CMD_NFS, "nfs", setKickstartNfs },
@@ -103,7 +106,7 @@ struct ksCommandNames ksTable[] = {
struct ksCommand * commands = NULL;
int numCommands = 0;
-int ksReadCommands(char * cmdFile, int flags) {
+int ksReadCommands(char * cmdFile) {
int fd;
char * buf;
struct stat sb;
@@ -117,7 +120,7 @@ int ksReadCommands(char * cmdFile, int flags) {
int commandsAlloced = 5;
if ((fd = open(cmdFile, O_RDONLY)) < 0) {
- startNewt(flags);
+ startNewt();
newtWinMessage(_("Kickstart Error"), _("OK"),
_("Error opening kickstart file %s: %s"),
cmdFile, strerror(errno));
@@ -127,7 +130,7 @@ int ksReadCommands(char * cmdFile, int flags) {
fstat(fd, &sb);
buf = alloca(sb.st_size + 1);
if (read(fd, buf, sb.st_size) != sb.st_size) {
- startNewt(flags);
+ startNewt();
newtWinMessage(_("Kickstart Error"), _("OK"),
_("Error reading contents of kickstart file %s: %s"),
cmdFile, strerror(errno));
@@ -234,7 +237,7 @@ int ksGetCommand(int cmd, char ** last, int * argc, char *** argv) {
return 1;
}
-int kickstartFromFloppy(char *kssrc, int flags) {
+int kickstartFromFloppy(char *kssrc) {
struct device ** devices;
char *p, *kspath;
int i, rc;
@@ -269,7 +272,7 @@ int kickstartFromFloppy(char *kssrc, int flags) {
if ((rc=getKickstartFromBlockDevice(devices[i]->device, kspath))) {
if (rc == 3) {
- startNewt(flags);
+ startNewt();
newtWinMessage(_("Error"), _("OK"),
_("Cannot find ks.cfg on boot floppy."));
}
@@ -311,86 +314,85 @@ void getHostandPath(char * ksSource, char **host, char ** file, char * ip) {
}
}
-void getKickstartFile(struct loaderData_s * loaderData, int * flagsPtr) {
+void getKickstartFile(struct loaderData_s * loaderData) {
char * c = loaderData->ksFile;
- int flags = *flagsPtr;
loaderData->ksFile = NULL;
if (!strncmp(c, "ks=http://", 10) || !strncmp(c, "ks=ftp://", 9)) {
- if (kickstartFromUrl(c + 3, loaderData, flags))
+ if (kickstartFromUrl(c + 3, loaderData))
return;
loaderData->ksFile = strdup("/tmp/ks.cfg");
} else if (!strncmp(c, "ks=nfs:", 7)) {
- if (kickstartFromNfs(c + 7, loaderData, flags))
+ if (kickstartFromNfs(c + 7, loaderData))
return;
loaderData->ksFile = strdup("/tmp/ks.cfg");
} else if (!strncmp(c, "ks=floppy", 9)) {
- if (kickstartFromFloppy(c, *flagsPtr))
+ if (kickstartFromFloppy(c))
return;
loaderData->ksFile = strdup("/tmp/ks.cfg");
} else if (!strncmp(c, "ks=hd:", 6)) {
- if (kickstartFromHD(c, *flagsPtr))
+ if (kickstartFromHD(c))
return;
loaderData->ksFile = strdup("/tmp/ks.cfg");
} else if (!strncmp(c, "ks=bd:", 6)) {
- if (kickstartFromBD(c, *flagsPtr))
+ if (kickstartFromBD(c))
return;
loaderData->ksFile = strdup("/tmp/ks.cfg");
} else if (!strncmp(c, "ks=cdrom", 8)) {
- if (kickstartFromCD(c, *flagsPtr))
+ if (kickstartFromCD(c))
return;
loaderData->ksFile = strdup("/tmp/ks.cfg");
} else if (!strncmp(c, "ks=file:", 8)) {
loaderData->ksFile = c + 8;
} else if (!strcmp(c, "ks")) {
- if (kickstartFromNfs(NULL, loaderData, flags))
+ if (kickstartFromNfs(NULL, loaderData))
return;
loaderData->ksFile = strdup("/tmp/ks.cfg");
}
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_KICKSTART;
+ flags |= LOADER_FLAGS_KICKSTART;
return;
}
static void setTextMode(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_TEXT;
+ char ** argv) {
+ flags |= LOADER_FLAGS_TEXT;
return;
}
static void setGraphicalMode(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_GRAPHICAL;
+ char ** argv) {
+ flags |= LOADER_FLAGS_GRAPHICAL;
return;
}
static void setCmdlineMode(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_CMDLINE;
+ char ** argv) {
+ flags |= LOADER_FLAGS_CMDLINE;
return;
}
static void setSELinux(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_SELINUX;
+ char ** argv) {
+ flags |= LOADER_FLAGS_SELINUX;
return;
}
static void setPowerOff(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_POWEROFF;
+ char ** argv) {
+ flags |= LOADER_FLAGS_POWEROFF;
return;
}
static void setHalt(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_HALT;
+ char ** argv) {
+ flags |= LOADER_FLAGS_HALT;
return;
}
static void setShutdown(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
+ char ** argv) {
poptContext optCon;
int reboot = 0, halt = 0, poweroff = 0;
int rc;
@@ -405,7 +407,7 @@ static void setShutdown(struct loaderData_s * loaderData, int argc,
optCon = poptGetContext(NULL, argc, (const char **) argv, ksOptions, 0);
if ((rc = poptGetNextOpt(optCon)) < -1) {
- startNewt(*flagsPtr);
+ startNewt();
newtWinMessage(_("Kickstart Error"), _("OK"),
_("Bad argument to shutdown kickstart method "
"command %s: %s"),
@@ -416,21 +418,20 @@ static void setShutdown(struct loaderData_s * loaderData, int argc,
if (poweroff)
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_POWEROFF;
+ flags |= LOADER_FLAGS_POWEROFF;
if ((!poweroff && !reboot) || (halt))
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_HALT;
+ flags |= LOADER_FLAGS_HALT;
return;
}
static void setMediaCheck(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
- (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_MEDIACHECK;
+ char ** argv) {
+ flags |= LOADER_FLAGS_MEDIACHECK;
return;
}
-void runKickstart(struct loaderData_s * loaderData,
- int * flagsPtr) {
+void runKickstart(struct loaderData_s * loaderData) {
struct ksCommandNames * cmd;
int argc;
char ** argv;
@@ -438,7 +439,7 @@ void runKickstart(struct loaderData_s * loaderData,
logMessage(INFO, "setting up kickstart");
for (cmd = ksTable; cmd->name; cmd++) {
if ((!ksGetCommand(cmd->code, NULL, &argc, &argv)) && cmd->setupData) {
- cmd->setupData(loaderData, argc, argv, flagsPtr);
+ cmd->setupData(loaderData, argc, argv);
}
}
}
diff --git a/loader2/kickstart.h b/loader2/kickstart.h
index 3594f706b..69ba3beba 100644
--- a/loader2/kickstart.h
+++ b/loader2/kickstart.h
@@ -21,12 +21,12 @@
#define KS_CMD_SHUTDOWN 16
#define KS_CMD_MEDIACHECK 17
-int ksReadCommands(char * cmdFile, int flags);
+int ksReadCommands(char * cmdFile);
int ksGetCommand(int cmd, char ** last, int * argc, char *** argv);
int ksHasCommand(int cmd);
-void getKickstartFile(struct loaderData_s * loaderData, int * flagsPtr);
-void runKickstart(struct loaderData_s * loaderData, int * flagsPtr);
+void getKickstartFile(struct loaderData_s * loaderData);
+void runKickstart(struct loaderData_s * loaderData);
int getKickstartFromBlockDevice(char *device, char *path);
void getHostandPath(char * ksSource, char **host, char ** file, char * ip);
diff --git a/loader2/lang.c b/loader2/lang.c
index 2e6fdb1bc..e019828ef 100644
--- a/loader2/lang.c
+++ b/loader2/lang.c
@@ -38,6 +38,9 @@
#include "../isys/lang.h"
#include "../isys/isys.h"
+/* boot flags */
+extern int flags;
+
struct aString {
unsigned int hash;
short length;
@@ -87,7 +90,7 @@ char * translateString(char * str) {
static struct langInfo * languages = NULL;
static int numLanguages = 0;
-static void loadLanguageList(int flags) {
+static void loadLanguageList(void) {
char * file = FL_TESTING(flags) ? "../lang-table" :
"/etc/lang-table";
FILE * f;
@@ -121,15 +124,15 @@ static void loadLanguageList(int flags) {
fclose(f);
}
-int getLangInfo(struct langInfo ** langs, int flags) {
+int getLangInfo(struct langInfo ** langs) {
if (!languages)
- loadLanguageList(flags);
+ loadLanguageList();
*langs = languages;
return numLanguages;
}
-void loadLanguage (char * file, int flags) {
+void loadLanguage (char * file) {
char filename[200];
gzFile stream;
int fd, hash, rc;
@@ -205,7 +208,7 @@ void loadLanguage (char * file, int flags) {
*
* ASSUMPTION: languages exists
*/
-static void setLangEnv (int i, int flags) {
+static void setLangEnv (int i) {
if (i > numLanguages)
return;
@@ -216,11 +219,11 @@ static void setLangEnv (int i, int flags) {
setenv("LANG", languages[i].lc_all, 1);
setenv("LANGKEY", languages[i].key, 1);
setenv("LINGUAS", languages[i].lang, 1);
- loadLanguage (NULL, flags);
+ loadLanguage (NULL);
}
/* choice is the index of the chosen language in languages */
-static int setupLanguage(int choice, int flags) {
+static int setupLanguage(int choice) {
char * buf;
int i;
@@ -239,7 +242,7 @@ static int setupLanguage(int choice, int flags) {
return 0;
}
- setLangEnv (choice, flags);
+ setLangEnv (choice);
/* clear out top line */
buf = alloca(80);
@@ -298,14 +301,14 @@ static char * getLangNick(char * oldLang) {
return lang;
}
-int setLanguage (char * key, int flags) {
+int setLanguage (char * key) {
int i;
- if (!languages) loadLanguageList(flags);
+ if (!languages) loadLanguageList();
for (i = 0; i < numLanguages; i++) {
if (!strcmp(languages[i].lc_all, key)) {
- return setupLanguage(i, flags);
+ return setupLanguage(i);
}
}
@@ -313,13 +316,13 @@ int setLanguage (char * key, int flags) {
* against short forms and nicks */
for (i = 0; i < numLanguages; i++) {
if (!strcmp(getLangShortForm(languages[i].lc_all), key)) {
- return setupLanguage(i, flags);
+ return setupLanguage(i);
}
}
for (i = 0; i < numLanguages; i++) {
if (!strcmp(getLangNick(languages[i].lc_all), key)) {
- return setupLanguage(i, flags);
+ return setupLanguage(i);
}
}
@@ -327,7 +330,7 @@ int setLanguage (char * key, int flags) {
return -1;
}
-int chooseLanguage(char ** lang, int flags) {
+int chooseLanguage(char ** lang) {
int choice = 0;
char ** langs;
int i;
@@ -337,7 +340,7 @@ int chooseLanguage(char ** lang, int flags) {
int numLangs = 0;
char * langPicked;
- if (!languages) loadLanguageList(flags);
+ if (!languages) loadLanguageList();
langs = alloca(sizeof(*langs) * (numLanguages + 1));
@@ -375,11 +378,11 @@ int chooseLanguage(char ** lang, int flags) {
/* this can't happen */
if (i == numLanguages) abort();
- return setupLanguage(choice, flags);
+ return setupLanguage(choice);
}
void setKickstartLanguage(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
+ char ** argv) {
if (argc < 2) {
logMessage(ERROR, "no argument passed to lang kickstart command");
return;
diff --git a/loader2/lang.h b/loader2/lang.h
index 0134b65ea..79aff8c90 100644
--- a/loader2/lang.h
+++ b/loader2/lang.h
@@ -11,12 +11,12 @@ struct langInfo {
} ;
-int chooseLanguage(char ** lang, int flags);
+int chooseLanguage(char ** lang);
char * translateString(char * str);
-int setLanguage (char * key, int flags);
-int getLangInfo(struct langInfo **langs, int flags);
+int setLanguage (char * key);
+int getLangInfo(struct langInfo **langs);
void setKickstartLanguage(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
#endif /* _LANG_H_ */
diff --git a/loader2/loader.c b/loader2/loader.c
index f4092035c..b274106e8 100644
--- a/loader2/loader.c
+++ b/loader2/loader.c
@@ -92,6 +92,8 @@ static int hasGraphicalOverride();
static int newtRunning = 0;
+/* boot flags -- we need these in a lot of places */
+int flags = LOADER_FLAGS_SELINUX | LOADER_FLAGS_NOFB;
#ifdef INCLUDE_LOCAL
#include "cdinstall.h"
@@ -139,7 +141,7 @@ void doShell(void) {
newtResume();
}
-void startNewt(int flags) {
+void startNewt(void) {
if (!newtRunning) {
char *buf = sdupprintf(_("Welcome to %s"), getProductName());
newtInit();
@@ -209,9 +211,10 @@ char * getProductPath(void) {
}
void initializeConsole(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
if (!FL_NOFB(flags))
- mlLoadModuleSet("vgastate:vga16fb", modLoaded, modDeps, modInfo, flags);
+ mlLoadModuleSet("vgastate:vga16fb", modLoaded, modDeps, modInfo);
+
/* enable UTF-8 console */
printf("\033%%G");
fflush(stdout);
@@ -242,7 +245,7 @@ static void initializeTtys(void) {
}
}
-static void spawnShell(int flags) {
+static void spawnShell(void) {
pid_t pid;
if (FL_SERIAL(flags) || FL_NOSHELL(flags)) {
@@ -298,7 +301,7 @@ static void spawnShell(int flags) {
return;
}
-void loadUpdates(int flags) {
+void loadUpdates(void) {
int done = 0;
int rc;
char * device = NULL, ** devNames = NULL;
@@ -315,7 +318,7 @@ void loadUpdates(int flags) {
device = strdup(devNames[0]);
free(devNames);
} else {
- startNewt(flags);
+ startNewt();
rc = newtWinMenu(_("Update Disk Source"),
_("You have multiple devices which could serve "
"as sources for an update disk. Which would "
@@ -359,9 +362,8 @@ void loadUpdates(int flags) {
return;
}
-static int loadUpdatesFromRemote(char * url, struct loaderData_s * loaderData,
- int flags) {
- int rc = getFileFromUrl(url, "/tmp/updates.img", loaderData, flags);
+static int loadUpdatesFromRemote(char * url, struct loaderData_s * loaderData) {
+ int rc = getFileFromUrl(url, "/tmp/updates.img", loaderData);
if (rc != 0)
return rc;
@@ -371,8 +373,7 @@ static int loadUpdatesFromRemote(char * url, struct loaderData_s * loaderData,
return 0;
}
-static void checkForHardDrives(int * flagsPtr) {
- int flags = (*flagsPtr);
+static void checkForHardDrives(void) {
int i;
struct device ** devices;
@@ -387,13 +388,14 @@ static void checkForHardDrives(int * flagsPtr) {
return;
}
- startNewt(flags);
+ startNewt();
i = newtWinChoice(_("Warning"), _("Yes"), _("No"),
_("No hard drives have been found. You probably need "
"to manually choose device drivers for the "
"installation to succeed. Would you like to "
"select drivers now?"));
- if (i != 2) (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_ISA;
+ if (i != 2)
+ flags |= LOADER_FLAGS_ISA;
return;
}
@@ -407,7 +409,7 @@ static void writeVNCPasswordFile(char *pfile, char *password) {
}
/* read information from /tmp/netinfo (written by linuxrc) */
-static void readNetInfo(int flags, struct loaderData_s ** ld) {
+static void readNetInfo(struct loaderData_s ** ld) {
struct loaderData_s * loaderData = *ld;
FILE *f;
char *end;
@@ -515,7 +517,7 @@ static void parseCmdLineIp(struct loaderData_s * loaderData, char *argv)
/* parses /proc/cmdline for any arguments which are important to us.
* NOTE: in test mode, can specify a cmdline with --cmdline
*/
-static int parseCmdLineFlags(int flags, struct loaderData_s * loaderData,
+static int parseCmdLineFlags(struct loaderData_s * loaderData,
char * cmdLine) {
int fd;
char buf[1024];
@@ -728,7 +730,7 @@ static int parseCmdLineFlags(int flags, struct loaderData_s * loaderData,
}
}
- readNetInfo(flags, &loaderData);
+ readNetInfo(&loaderData);
/* NULL terminates the array of extra args */
extraArgs[numExtraArgs] = NULL;
@@ -758,12 +760,12 @@ static int checkFrameBuffer() {
/* make sure they have enough ram */
-static void checkForRam(int flags) {
+static void checkForRam(void) {
if (totalMemory() < MIN_RAM) {
char *buf;
buf = sdupprintf(_("You do not have enough RAM to install %s "
"on this machine."), getProductName());
- startNewt(flags);
+ startNewt();
newtWinMessage(_("Error"), _("OK"), buf);
free(buf);
stopNewt();
@@ -786,8 +788,7 @@ static char *doLoaderMain(char * location,
struct loaderData_s * loaderData,
moduleInfoSet modInfo,
moduleList modLoaded,
- moduleDeps * modDepsPtr,
- int flags) {
+ moduleDeps * modDepsPtr) {
enum { STEP_LANG, STEP_KBD, STEP_METHOD, STEP_DRIVER,
STEP_DRIVERDISK, STEP_NETWORK, STEP_IFACE,
STEP_IP, STEP_URL, STEP_DONE } step;
@@ -829,7 +830,7 @@ static char *doLoaderMain(char * location,
* we can fast-path the CD and not make people answer questions in
* text mode. */
if (!FL_ASKMETHOD(flags) && !FL_KICKSTART(flags)) {
- url = findAnacondaCD(location, modInfo, modLoaded, * modDepsPtr, flags, !FL_RESCUE(flags));
+ url = findAnacondaCD(location, modInfo, modLoaded, * modDepsPtr, !FL_RESCUE(flags));
/* if we found a CD and we're not in rescue or vnc mode return */
/* so we can short circuit straight to stage 2 from CD */
if (url && (!FL_RESCUE(flags) && !hasGraphicalOverride()))
@@ -841,7 +842,7 @@ static char *doLoaderMain(char * location,
}
if (!FL_CMDLINE(flags))
- startNewt(flags);
+ startNewt();
step = STEP_LANG;
@@ -849,9 +850,9 @@ static char *doLoaderMain(char * location,
switch(step) {
case STEP_LANG:
if (loaderData->lang && (loaderData->lang_set == 1)) {
- setLanguage(loaderData->lang, flags);
+ setLanguage(loaderData->lang);
} else {
- chooseLanguage(&loaderData->lang, flags);
+ chooseLanguage(&loaderData->lang);
}
step = STEP_KBD;
dir = 1;
@@ -871,7 +872,7 @@ static char *doLoaderMain(char * location,
/* JKFIXME: should handle kbdtype, too probably... but it
* just matters for sparc */
if (!FL_CMDLINE(flags))
- rc = chooseKeyboard(loaderData, &kbdtype, flags);
+ rc = chooseKeyboard(loaderData, &kbdtype);
else
rc = LOADER_NOOP;
}
@@ -968,7 +969,7 @@ static char *doLoaderMain(char * location,
}
chooseManualDriver(installMethods[validMethods[methodNum]].deviceType,
- modLoaded, modDepsPtr, modInfo, flags);
+ modLoaded, modDepsPtr, modInfo);
/* it doesn't really matter what we return here; we just want
* to reprobe and make sure we have the driver */
step = STEP_DRIVER;
@@ -978,8 +979,7 @@ static char *doLoaderMain(char * location,
case STEP_DRIVERDISK:
rc = loadDriverFromMedia(needed,
- modLoaded, modDepsPtr, modInfo,
- flags, 0, 0);
+ modLoaded, modDepsPtr, modInfo, 0, 0);
if (rc == LOADER_BACK) {
step = STEP_DRIVER;
dir = -1;
@@ -1023,7 +1023,7 @@ static char *doLoaderMain(char * location,
/* fall through to interface selection */
case STEP_IFACE:
logMessage(INFO, "going to pick interface");
- rc = chooseNetworkInterface(loaderData, flags);
+ rc = chooseNetworkInterface(loaderData);
if ((rc == LOADER_BACK) || (rc == LOADER_ERROR) ||
((dir == -1) && (rc == LOADER_NOOP))) {
step = STEP_METHOD;
@@ -1043,9 +1043,9 @@ static char *doLoaderMain(char * location,
logMessage(INFO, "going to do getNetConfig");
/* populate netDev based on any kickstart data */
- setupNetworkDeviceConfig(&netDev, loaderData, flags);
+ setupNetworkDeviceConfig(&netDev, loaderData);
- rc = readNetConfig(devName, &netDev, loaderData->netCls, flags);
+ rc = readNetConfig(devName, &netDev, loaderData->netCls);
if ((rc == LOADER_BACK) || (rc == LOADER_ERROR) ||
((dir == -1) && (rc == LOADER_NOOP))) {
step = STEP_IFACE;
@@ -1069,7 +1069,7 @@ static char *doLoaderMain(char * location,
url = installMethods[validMethods[methodNum]].mountImage(
installMethods + validMethods[methodNum],
location, loaderData, modInfo, modLoaded,
- modDepsPtr, flags);
+ modDepsPtr);
if (!url) {
step = STEP_IP ;
dir = -1;
@@ -1088,7 +1088,7 @@ static char *doLoaderMain(char * location,
}
static int manualDeviceCheck(moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, int flags) {
+ moduleDeps * modDepsPtr) {
char ** devices;
int i, j, rc, num = 0;
struct moduleInfo * mi;
@@ -1135,8 +1135,7 @@ static int manualDeviceCheck(moduleInfoSet modInfo, moduleList modLoaded,
if (rc != 2)
break;
- chooseManualDriver(CLASS_UNSPEC, modLoaded, modDepsPtr, modInfo,
- flags);
+ chooseManualDriver(CLASS_UNSPEC, modLoaded, modDepsPtr, modInfo);
} while (1);
return 0;
}
@@ -1200,7 +1199,6 @@ static void loaderSegvHandler(int signum) {
}
int main(int argc, char ** argv) {
- int flags = LOADER_FLAGS_SELINUX | LOADER_FLAGS_NOFB;
struct stat sb;
struct serial_struct si;
int rc, i;
@@ -1304,7 +1302,7 @@ int main(int argc, char ** argv) {
memset(&loaderData, 0, sizeof(loaderData));
extraArgs[0] = NULL;
- flags = parseCmdLineFlags(flags, &loaderData, cmdLine);
+ flags = parseCmdLineFlags(&loaderData, cmdLine);
if ((FL_SERIAL(flags) || FL_VIRTPCONSOLE(flags)) &&
!hasGraphicalOverride())
@@ -1325,8 +1323,8 @@ int main(int argc, char ** argv) {
modDeps = mlNewDeps();
mlLoadDeps(&modDeps, "/modules/modules.dep");
- initializeConsole(modLoaded, modDeps, modInfo, flags);
- checkForRam(flags);
+ initializeConsole(modLoaded, modDeps, modInfo);
+ checkForRam();
/* iSeries vio console users will be telnetting in to the primary
partition, so use a terminal type that is appripriate */
@@ -1335,40 +1333,39 @@ int main(int argc, char ** argv) {
#if defined(__powerpc__) /* hack for pcspkr breaking ppc right now */
mlLoadModuleSet("cramfs:vfat:nfs:loop:isofs:floppy:edd:squashfs",
- modLoaded, modDeps, modInfo, flags);
+ modLoaded, modDeps, modInfo);
#else
mlLoadModuleSet("cramfs:vfat:nfs:loop:isofs:floppy:edd:pcspkr:squashfs",
- modLoaded, modDeps, modInfo, flags);
+ modLoaded, modDeps, modInfo);
#endif
/* IPv6 support is conditional */
- ipv6Setup(modLoaded, modDeps, modInfo, flags);
+ ipv6Setup(modLoaded, modDeps, modInfo);
/* now let's do some initial hardware-type setup */
- ideSetup(modLoaded, modDeps, modInfo, flags);
- scsiSetup(modLoaded, modDeps, modInfo, flags);
- dasdSetup(modLoaded, modDeps, modInfo, flags);
+ ideSetup(modLoaded, modDeps, modInfo);
+ scsiSetup(modLoaded, modDeps, modInfo);
+ dasdSetup(modLoaded, modDeps, modInfo);
/* Note we *always* do this. If you could avoid this you could get
a system w/o USB keyboard support, which would be bad. */
- usbInitialize(modLoaded, modDeps, modInfo, flags);
+ usbInitialize(modLoaded, modDeps, modInfo);
/* now let's initialize any possible firewire. fun */
- firewireInitialize(modLoaded, modDeps, modInfo, flags);
+ firewireInitialize(modLoaded, modDeps, modInfo);
/* explicitly read this to let libkudzu know we want to merge
* in future tables rather than replace the initial one */
pciReadDrivers("/modules/modules.alias");
if (loaderData.lang && (loaderData.lang_set == 1)) {
- setLanguage(loaderData.lang, flags);
+ setLanguage(loaderData.lang);
}
if (!canProbeDevices() || FL_MODDISK(flags)) {
- startNewt(flags);
+ startNewt();
- loadDriverDisks(CLASS_UNSPEC, modLoaded, &modDeps,
- modInfo, flags);
+ loadDriverDisks(CLASS_UNSPEC, modLoaded, &modDeps, modInfo);
}
/* FIXME: this is a bit of a hack */
@@ -1378,7 +1375,7 @@ int main(int argc, char ** argv) {
if (!access("/dd.img", R_OK)) {
logMessage(INFO, "found /dd.img, loading drivers");
- getDDFromSource(&loaderData, "path:/dd.img", flags);
+ getDDFromSource(&loaderData, "path:/dd.img");
}
/* this allows us to do an early load of modules specified on the
@@ -1387,15 +1384,15 @@ int main(int argc, char ** argv) {
* FIXME: this syntax is likely to change in a future release
* but is done as a quick hack for the present.
*/
- earlyModuleLoad(modInfo, modLoaded, modDeps, 0, flags);
+ earlyModuleLoad(modInfo, modLoaded, modDeps, 0);
- busProbe(modInfo, modLoaded, modDeps, 0, flags);
+ busProbe(modInfo, modLoaded, modDeps, 0);
/* JKFIXME: we'd really like to do this before the busprobe, but then
* we won't have network devices available (and that's the only thing
* we support with this right now */
if (loaderData.ddsrc != NULL) {
- getDDFromSource(&loaderData, loaderData.ddsrc, flags);
+ getDDFromSource(&loaderData, loaderData.ddsrc);
}
/* JKFIXME: loaderData->ksFile is set to the arg from the command line,
@@ -1405,18 +1402,17 @@ int main(int argc, char ** argv) {
logMessage(INFO, "getting kickstart file");
if (!ksFile)
- getKickstartFile(&loaderData, &flags);
+ getKickstartFile(&loaderData);
if (FL_KICKSTART(flags) &&
- (ksReadCommands((ksFile) ? ksFile : loaderData.ksFile,
- flags) != LOADER_ERROR)) {
- runKickstart(&loaderData, &flags);
+ (ksReadCommands((ksFile)?ksFile:loaderData.ksFile)!=LOADER_ERROR)) {
+ runKickstart(&loaderData);
}
}
if (FL_TELNETD(flags))
- startTelnetd(&loaderData, modInfo, modLoaded, modDeps, flags);
+ startTelnetd(&loaderData, modInfo, modLoaded, modDeps);
- url = doLoaderMain("/mnt/source", &loaderData, modInfo, modLoaded, &modDeps, flags);
+ url = doLoaderMain("/mnt/source", &loaderData, modInfo, modLoaded, &modDeps);
/* We have to do this before we init bogl(), which doLoaderMain will do
* when setting fonts for different languages. */
@@ -1451,32 +1447,32 @@ int main(int argc, char ** argv) {
logMessage(INFO, "getting ready to spawn shell now");
- spawnShell(flags); /* we can attach gdb now :-) */
+ spawnShell(); /* we can attach gdb now :-) */
/* JKFIXME: kickstart devices crap... probably kind of bogus now though */
/* we might have already loaded these, but trying again doesn't hurt */
- ideSetup(modLoaded, modDeps, modInfo, flags);
- scsiSetup(modLoaded, modDeps, modInfo, flags);
- busProbe(modInfo, modLoaded, modDeps, 0, flags);
+ ideSetup(modLoaded, modDeps, modInfo);
+ scsiSetup(modLoaded, modDeps, modInfo);
+ busProbe(modInfo, modLoaded, modDeps, 0);
- checkForHardDrives(&flags);
+ checkForHardDrives();
if ((!canProbeDevices() || FL_ISA(flags) || FL_NOPROBE(flags))
&& !loaderData.ksFile) {
- startNewt(flags);
- manualDeviceCheck(modInfo, modLoaded, &modDeps, flags);
+ startNewt();
+ manualDeviceCheck(modInfo, modLoaded, &modDeps);
}
if (loaderData.updatessrc)
- loadUpdatesFromRemote(loaderData.updatessrc, &loaderData, flags);
+ loadUpdatesFromRemote(loaderData.updatessrc, &loaderData);
else if (FL_UPDATES(flags))
- loadUpdates(flags);
+ loadUpdates();
- mlLoadModuleSet("md:raid0:raid1:raid5:raid6:fat:msdos:jbd:ext3:reiserfs:jfs:xfs:dm-mod:dm-zero:dm-mirror:dm-snapshot", modLoaded, modDeps, modInfo, flags);
+ mlLoadModuleSet("md:raid0:raid1:raid5:raid6:fat:msdos:jbd:ext3:reiserfs:jfs:xfs:dm-mod:dm-zero:dm-mirror:dm-snapshot", modLoaded, modDeps, modInfo);
- usbInitializeMouse(modLoaded, modDeps, modInfo, flags);
+ usbInitializeMouse(modLoaded, modDeps, modInfo);
/* we've loaded all the modules we're going to. write out a file
* describing which scsi disks go with which scsi adapters */
@@ -1484,7 +1480,7 @@ int main(int argc, char ** argv) {
/* if we are in rescue mode lets load st.ko for tape support */
if (FL_RESCUE(flags))
- scsiTapeInitialize(modLoaded, modDeps, modInfo, flags);
+ scsiTapeInitialize(modLoaded, modDeps, modInfo);
/* we only want to use RHupdates on nfs installs. otherwise, we'll
* use files on the first iso image and not be able to umount it */
diff --git a/loader2/loader.h b/loader2/loader.h
index c34bd2b97..2fd1ab9c2 100644
--- a/loader2/loader.h
+++ b/loader2/loader.h
@@ -78,8 +78,8 @@
#define FL_UB(a) ((a) & LOADER_FLAGS_UB)
#define FL_NOIPV6(a) ((a) & LOADER_FLAGS_NOIPV6)
-void startNewt(int flags);
-void stopNewt();
+void startNewt(void);
+void stopNewt(void);
char * getProductName(void);
char * getProductPath(void);
diff --git a/loader2/method.c b/loader2/method.c
index 09645eb12..48bb1efa3 100644
--- a/loader2/method.c
+++ b/loader2/method.c
@@ -47,6 +47,9 @@
#include "hdinstall.h"
#include "urlinstall.h"
+/* boot flags */
+extern int flags;
+
int umountLoopback(char * mntpoint, char * device) {
int loopfd;
@@ -333,7 +336,7 @@ int readStampFileFromIso(char *file, char **timestamp, char **releasedescr) {
* Given a starting isoFile, will offer choice to mediacheck it and
* all other ISO images in the same directory with the same stamp
*/
-void queryIsoMediaCheck(char *isoFile, int flags) {
+void queryIsoMediaCheck(char *isoFile) {
DIR * dir;
struct dirent * ent;
char *isoDir;
@@ -613,7 +616,7 @@ int mountStage2(char * path) {
/* copies a second stage from fd to dest and mounts on mntpoint */
-int copyFileAndLoopbackMount(int fd, char * dest, int flags,
+int copyFileAndLoopbackMount(int fd, char * dest,
char * device, char * mntpoint) {
int rc;
struct stat sb;
diff --git a/loader2/method.h b/loader2/method.h
index 676f7ecc7..e4862ae7b 100644
--- a/loader2/method.h
+++ b/loader2/method.h
@@ -14,7 +14,7 @@ struct installMethod {
char * (*mountImage)(struct installMethod * method,
char * location, struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, int flags);
+ moduleDeps * modDepsPtr);
};
@@ -23,14 +23,13 @@ int mountLoopback(char * fsystem, char * mntpoint, char * device);
char * validIsoImages(char * dirName, int *foundinvalid);
int readStampFileFromIso(char *file, char **descr, char **timestamp);
-void queryIsoMediaCheck(char * isoDir, int flags);
+void queryIsoMediaCheck(char * isoDir);
int verifyStamp(char * path);
void umountStage2(void);
int mountStage2(char * path);
-int copyFileAndLoopbackMount(int fd, char * dest, int flags,
- char * device, char * mntpoint);
+int copyFileAndLoopbackMount(int fd, char *dest, char *device, char *mntpoint);
int getFileFromBlockDevice(char *device, char *path, char * dest);
void copyUpdatesImg(char * path);
diff --git a/loader2/modules.c b/loader2/modules.c
index 181a3942c..6903356a8 100644
--- a/loader2/modules.c
+++ b/loader2/modules.c
@@ -39,6 +39,9 @@
#include "../isys/cpio.h"
+/* boot flags */
+extern int flags;
+
static int writeModulesConf(moduleList list, int fd);
static struct extractedModule * extractModules (char * const * modNames,
struct extractedModule * oldPaths,
@@ -247,7 +250,7 @@ static struct loadedModuleInfo * getLoadedModuleInfo(moduleList modLoaded,
/* load a single module. this is the real workhorse of loading modules */
static int loadModule(const char * modName, struct extractedModule * path,
moduleList modLoaded, char ** args,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
char fileName[300];
char ** argPtr, ** newArgs, ** arg;
struct moduleInfo * mi = NULL;
@@ -270,7 +273,7 @@ static int loadModule(const char * modName, struct extractedModule * path,
if (mi->major == DRIVER_SCSI) {
deviceCount = scsiDiskCount();
if (!FL_CMDLINE(flags)) {
- startNewt(flags);
+ startNewt();
scsiWindow(modName);
popWindow = 1;
}
@@ -431,7 +434,7 @@ static char ** lateModuleSort(char **allmods, int num) {
* *ALL* modules? this would probably want for auto module-info generation */
static int doLoadModules(const char * origModNames, moduleList modLoaded,
moduleDeps modDeps, moduleInfoSet modInfo,
- int flags, const char * argModule, char ** args,
+ const char * argModule, char ** args,
struct moduleBallLocation * modLocation) {
char * modNames;
char * start, * next, * end;
@@ -547,7 +550,7 @@ static int doLoadModules(const char * origModNames, moduleList modLoaded,
}
/* here we need to save the state of stage2 */
- removeLoadedModule("usb-storage", modLoaded, flags);
+ removeLoadedModule("usb-storage", modLoaded);
/* JKFIXME: here are the big hacks... for now, just described.
* 1) figure out which scsi devs are claimed by usb-storage.
@@ -566,7 +569,7 @@ static int doLoadModules(const char * origModNames, moduleList modLoaded,
continue;
if (loadModule(*l, p, modLoaded,
(argModule && !strcmp(argModule, *l)) ? args : NULL,
- modInfo, flags)) {
+ modInfo)) {
logMessage(ERROR, "failed to insert %s", p->path);
} else {
logMessage(INFO, "inserted %s", p->path);
@@ -574,7 +577,7 @@ static int doLoadModules(const char * origModNames, moduleList modLoaded,
}
if (reloadUsbStorage) {
- mlLoadModule("usb-storage", modLoaded, modDeps, modInfo, NULL, flags);
+ mlLoadModule("usb-storage", modLoaded, modDeps, modInfo, NULL);
/* JKFIXME: here's the rest of the hacks. basically do the reverse
* of what we did before.
*/
@@ -610,17 +613,17 @@ static int doLoadModules(const char * origModNames, moduleList modLoaded,
/* load a module with a given list of arguments */
int mlLoadModule(const char * module, moduleList modLoaded,
moduleDeps modDeps, moduleInfoSet modInfo,
- char ** args, int flags) {
- return doLoadModules(module, modLoaded, modDeps, modInfo, flags, module,
+ char ** args) {
+ return doLoadModules(module, modLoaded, modDeps, modInfo, module,
args, NULL);
}
/* loads a : separated list of modules */
int mlLoadModuleSet(const char * modNames,
moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
return doLoadModules(modNames, modLoaded, modDeps, modInfo,
- flags, NULL, NULL, NULL);
+ NULL, NULL, NULL);
}
static int writeModulesConf(moduleList list, int fd) {
@@ -884,8 +887,7 @@ static struct extractedModule * extractModules (char * const * modNames,
/* remove a module which has been loaded, including removal from the
* modLoaded struct
*/
-int removeLoadedModule(const char * modName, moduleList modLoaded,
- int flags) {
+int removeLoadedModule(const char * modName, moduleList modLoaded) {
int status, rc = 0;
pid_t child;
struct loadedModuleInfo * mod;
@@ -900,27 +902,27 @@ int removeLoadedModule(const char * modName, moduleList modLoaded,
mod->lastDevNum = 0;
if (FL_TESTING(flags)) {
- logMessage(INFO, "would have rmmod %s", modName);
- rc = 0;
+ logMessage(INFO, "would have rmmod %s", modName);
+ rc = 0;
} else {
- logMessage(INFO, "going to rmmod %s", modName);
- if (!(child = fork())) {
- int fd = open("/dev/tty3", O_RDWR);
+ logMessage(INFO, "going to rmmod %s", modName);
+ if (!(child = fork())) {
+ int fd = open("/dev/tty3", O_RDWR);
- dup2(fd, 0);
- dup2(fd, 1);
- dup2(fd, 2);
- close(fd);
+ dup2(fd, 0);
+ dup2(fd, 1);
+ dup2(fd, 2);
+ close(fd);
- execl("/sbin/rmmod", "/sbin/rmmod", modName, NULL);
- _exit(rc);
- }
+ execl("/sbin/rmmod", "/sbin/rmmod", modName, NULL);
+ _exit(rc);
+ }
- waitpid(child, &status, 0);
+ waitpid(child, &status, 0);
- if (!WIFEXITED(status) || WEXITSTATUS(status)) {
- rc = 1;
- } else {
+ if (!WIFEXITED(status) || WEXITSTATUS(status)) {
+ rc = 1;
+ } else {
int found = -1;
int i;
@@ -938,20 +940,19 @@ int removeLoadedModule(const char * modName, moduleList modLoaded,
modLoaded->numModules--;
rc = 0;
- }
+ }
}
return rc;
}
void loadKickstartModule(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
+ char ** argv) {
char * opts = NULL;
char * module = NULL;
char * type = NULL;
char ** args = NULL;
poptContext optCon;
int rc;
- int flags = *flagsPtr;
struct poptOption ksDeviceOptions[] = {
{ "opts", '\0', POPT_ARG_STRING, &opts, 0, NULL, NULL },
{ 0, 0, 0, 0, 0, 0, 0 }
@@ -960,7 +961,7 @@ void loadKickstartModule(struct loaderData_s * loaderData, int argc,
optCon = poptGetContext(NULL, argc, (const char **) argv,
ksDeviceOptions, 0);
if ((rc = poptGetNextOpt(optCon)) < -1) {
- startNewt(flags);
+ startNewt();
newtWinMessage(_("Kickstart Error"), _("OK"),
_("Bad argument to device kickstart method "
"command %s: %s"),
@@ -1004,6 +1005,6 @@ void loadKickstartModule(struct loaderData_s * loaderData, int argc,
mlLoadModule(module, loaderData->modLoaded, *(loaderData->modDepsPtr),
- loaderData->modInfo, args, flags);
+ loaderData->modInfo, args);
}
diff --git a/loader2/modules.h b/loader2/modules.h
index c899b3225..bbcc905fc 100644
--- a/loader2/modules.h
+++ b/loader2/modules.h
@@ -30,16 +30,15 @@ struct moduleList_s {
int mlReadLoadedList(moduleList * mlp);
int mlLoadModule(const char * module, moduleList modLoaded,
moduleDeps modDeps, moduleInfoSet modInfo,
- char ** args, int flags);
+ char ** args);
int mlLoadModuleSet(const char * modNames,
moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
+ moduleInfoSet modInfo);
int mlModuleInList(const char * modName, moduleList list);
void writeScsiDisks(moduleList list);
-int removeLoadedModule(const char * modName, moduleList modLoaded,
- int flags);
+int removeLoadedModule(const char * modName, moduleList modLoaded);
char * getModuleLocation(int version);
#endif
diff --git a/loader2/net.c b/loader2/net.c
index 216d25966..0b3725bd7 100644
--- a/loader2/net.c
+++ b/loader2/net.c
@@ -46,6 +46,9 @@
#include "net.h"
#include "windows.h"
+/* boot flags */
+extern int flags;
+
char *netServerPrompt = \
N_("Please enter the following information:\n"
"\n"
@@ -210,16 +213,16 @@ static void parseEthtoolSettings(struct loaderData_s * loaderData) {
void initLoopback(void) {
NLH_t nh;
NIC_t nic;
- uint32_t flags;
+ uint32_t nflags;
/* open nic handle and set device name */
nh = nic_open(nic_sys_logger);
nic = nic_by_name(nh, "lo");
/* bring the interface up */
- flags = nic_get_flags(nic);
- if ((flags & (IFF_UP | IFF_RUNNING)) == 0) {
- nic_set_flags(nic, flags | IFF_UP | IFF_RUNNING);
+ nflags = nic_get_flags(nic);
+ if ((nflags & (IFF_UP | IFF_RUNNING)) == 0) {
+ nic_set_flags(nic, nflags | IFF_UP | IFF_RUNNING);
nic_update(nic);
}
@@ -336,8 +339,7 @@ void printLoaderDataIPINFO(struct loaderData_s *loaderData) {
/* given loader data from kickstart, populate network configuration struct */
void setupNetworkDeviceConfig(struct networkDeviceConfig * cfg,
- struct loaderData_s * loaderData,
- int flags) {
+ struct loaderData_s * loaderData) {
struct in_addr addr;
struct in6_addr addr6;
char * c;
@@ -377,7 +379,7 @@ void setupNetworkDeviceConfig(struct networkDeviceConfig * cfg,
loaderData->netDev);
if (!FL_CMDLINE(flags)) {
- startNewt(flags);
+ startNewt();
winStatus(55, 3, _("Dynamic IP"),
_("Sending request for IP information for %s..."),
loaderData->netDev, 0);
@@ -502,7 +504,7 @@ void setupNetworkDeviceConfig(struct networkDeviceConfig * cfg,
}
int readNetConfig(char * device, struct networkDeviceConfig * cfg,
- char * dhcpclass, int flags) {
+ char * dhcpclass) {
newtComponent text, f, okay, back, answer, dhcpCheckbox;
newtGrid grid, subgrid, buttons;
struct networkDeviceConfig newCfg;
@@ -522,7 +524,7 @@ int readNetConfig(char * device, struct networkDeviceConfig * cfg,
if (!FL_TESTING(flags) && cfg->preset) {
logMessage(INFO, "doing kickstart... setting it up");
configureNetwork(cfg);
- findHostAndDomain(cfg, flags);
+ findHostAndDomain(cfg);
if (!cfg->noDns)
writeResolvConf(cfg);
@@ -741,7 +743,7 @@ int readNetConfig(char * device, struct networkDeviceConfig * cfg,
if (!FL_TESTING(flags)) {
configureNetwork(cfg);
- findHostAndDomain(cfg, flags);
+ findHostAndDomain(cfg);
writeResolvConf(cfg);
}
@@ -788,9 +790,9 @@ char *doDhcp(struct networkDeviceConfig *dev) {
i = &dev->dev;
if (dev->useipv6)
- r = pumpDhcpClassRun(i,0L,0L,0,0,10,netlogger,LOG_DEBUG);
+ r = pumpDhcpClassRun(i,0L,0L,0,0,10,netlogger,LOG_INFO);
else
- r = pumpDhcpClassRun(i,0L,0L,DHCPv6_DISABLE,0,10,netlogger,LOG_DEBUG);
+ r = pumpDhcpClassRun(i,0L,0L,DHCPv6_DISABLE,0,10,netlogger,LOG_INFO);
return r;
}
@@ -917,7 +919,7 @@ int writeResolvConf(struct networkDeviceConfig * net) {
return 0;
}
-int findHostAndDomain(struct networkDeviceConfig * dev, int flags) {
+int findHostAndDomain(struct networkDeviceConfig * dev) {
char * name, * chptr;
char ret[47];
ip_addr_t *tip;
@@ -971,7 +973,7 @@ int findHostAndDomain(struct networkDeviceConfig * dev, int flags) {
}
void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
+ char ** argv) {
char * arg, * bootProto = NULL, * device = NULL, *ethtool = NULL, * class = NULL;
char * essid = NULL, * wepkey = NULL, * onboot = NULL;
int noDns = 0, noksdev = 0, rc, mtu = 0;
@@ -1095,8 +1097,7 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
/* if multiple interfaces get one to use from user. */
/* NOTE - uses kickstart data available in loaderData */
-int chooseNetworkInterface(struct loaderData_s * loaderData,
- int flags) {
+int chooseNetworkInterface(struct loaderData_s * loaderData) {
int i, rc;
unsigned int max = 40;
int deviceNums = 0;
@@ -1196,7 +1197,7 @@ int chooseNetworkInterface(struct loaderData_s * loaderData,
logMessage(WARNING, "wanted netdev with link, but none present. prompting");
}
- startNewt(flags);
+ startNewt();
if (max > 70)
max = 70;
@@ -1229,8 +1230,7 @@ int chooseNetworkInterface(struct loaderData_s * loaderData,
* kickstart install so that we can do things like grab the ks.cfg from
* the network */
int kickstartNetworkUp(struct loaderData_s * loaderData,
- struct networkDeviceConfig *netCfgPtr,
- int flags) {
+ struct networkDeviceConfig *netCfgPtr) {
int rc;
initLoopback();
@@ -1241,7 +1241,7 @@ int kickstartNetworkUp(struct loaderData_s * loaderData,
do {
/* this is smart and does the right thing based on whether or not
* we have ksdevice= specified */
- rc = chooseNetworkInterface(loaderData, flags);
+ rc = chooseNetworkInterface(loaderData);
if (rc == LOADER_ERROR) {
/* JKFIXME: ask for a driver disk? */
@@ -1269,10 +1269,9 @@ int kickstartNetworkUp(struct loaderData_s * loaderData,
}
loaderData->ipinfo_set = 1;
- setupNetworkDeviceConfig(netCfgPtr, loaderData, flags);
+ setupNetworkDeviceConfig(netCfgPtr, loaderData);
- rc = readNetConfig(loaderData->netDev, netCfgPtr, loaderData->netCls,
- flags);
+ rc = readNetConfig(loaderData->netDev, netCfgPtr, loaderData->netCls);
if ((rc == LOADER_BACK) || (rc == LOADER_ERROR)) {
logMessage(ERROR, "unable to setup networking");
return -1;
diff --git a/loader2/net.h b/loader2/net.h
index fbe3b3578..5874fca8d 100644
--- a/loader2/net.h
+++ b/loader2/net.h
@@ -29,26 +29,23 @@ struct networkDeviceConfig {
};
int readNetConfig(char * device, struct networkDeviceConfig * dev,
- char * dhcpclass, int flags);
+ char * dhcpclass);
int configureNetwork(struct networkDeviceConfig * dev);
int writeNetInfo(const char * fn, struct networkDeviceConfig * dev);
-int findHostAndDomain(struct networkDeviceConfig * dev, int flags);
+int findHostAndDomain(struct networkDeviceConfig * dev);
int writeResolvConf(struct networkDeviceConfig * net);
extern char *netServerPrompt;
int nfsGetSetup(char ** hostptr, char ** dirptr);
void initLoopback(void);
-int chooseNetworkInterface(struct loaderData_s * loaderData,
- int flags);
+int chooseNetworkInterface(struct loaderData_s * loaderData);
void setupNetworkDeviceConfig(struct networkDeviceConfig * cfg,
- struct loaderData_s * loaderData,
- int flags);
+ struct loaderData_s * loaderData);
void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
+ char ** argv);
int kickstartNetworkUp(struct loaderData_s * loaderData,
- struct networkDeviceConfig *netCfgPtr,
- int flags);
+ struct networkDeviceConfig *netCfgPtr);
char * setupInterface(struct networkDeviceConfig *dev);
char *doDhcp(struct networkDeviceConfig *dev);
diff --git a/loader2/nfsinstall.c b/loader2/nfsinstall.c
index 16c0b54dc..2bd3bf635 100644
--- a/loader2/nfsinstall.c
+++ b/loader2/nfsinstall.c
@@ -34,6 +34,9 @@
#include "../isys/imount.h"
+/* boot flags */
+extern int flags;
+
int nfsGetSetup(char ** hostptr, char ** dirptr) {
struct newtWinEntry entries[3];
char * buf;
@@ -73,7 +76,7 @@ int nfsGetSetup(char ** hostptr, char ** dirptr) {
char * mountNfsImage(struct installMethod * method,
char * location, struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, int flags) {
+ moduleDeps * modDepsPtr) {
char * host = NULL;
char * directory = NULL;
char * mountOpts = NULL;
@@ -191,7 +194,7 @@ char * mountNfsImage(struct installMethod * method,
snprintf(mntPath, sizeof(mntPath), "/mnt/source2/%s/base/product.img", getProductPath());
copyProductImg(mntPath);
- queryIsoMediaCheck(path, flags);
+ queryIsoMediaCheck(path);
stage = NFS_STAGE_DONE;
url = "nfsiso:/mnt/source";
@@ -244,7 +247,7 @@ char * mountNfsImage(struct installMethod * method,
void setKickstartNfs(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
+ char ** argv) {
char * host = NULL, * dir = NULL, * mountOpts = NULL;
poptContext optCon;
int rc;
@@ -258,7 +261,7 @@ void setKickstartNfs(struct loaderData_s * loaderData, int argc,
logMessage(INFO, "kickstartFromNfs");
optCon = poptGetContext(NULL, argc, (const char **) argv, ksNfsOptions, 0);
if ((rc = poptGetNextOpt(optCon)) < -1) {
- startNewt(*flagsPtr);
+ startNewt();
newtWinMessage(_("Kickstart Error"), _("OK"),
_("Bad argument to NFS kickstart method "
"command %s: %s"),
@@ -285,15 +288,14 @@ void setKickstartNfs(struct loaderData_s * loaderData, int argc,
}
-int getFileFromNfs(char * url, char * dest, struct loaderData_s * loaderData,
- int flags) {
+int getFileFromNfs(char * url, char * dest, struct loaderData_s * loaderData) {
char ret[47];
char * host = NULL, *path = NULL, * file = NULL, * opts = NULL;
int failed = 0;
struct networkDeviceConfig netCfg;
ip_addr_t *tip;
- if (kickstartNetworkUp(loaderData, &netCfg, flags)) {
+ if (kickstartNetworkUp(loaderData, &netCfg)) {
logMessage(ERROR, "unable to bring up network");
return 1;
}
@@ -367,7 +369,6 @@ int getFileFromNfs(char * url, char * dest, struct loaderData_s * loaderData,
return failed;
}
-int kickstartFromNfs(char * url, struct loaderData_s * loaderData,
- int flags) {
- return getFileFromNfs(url, "/tmp/ks.cfg", loaderData, flags);
+int kickstartFromNfs(char * url, struct loaderData_s * loaderData) {
+ return getFileFromNfs(url, "/tmp/ks.cfg", loaderData);
}
diff --git a/loader2/nfsinstall.h b/loader2/nfsinstall.h
index 190cf0fb2..f1dc74b03 100644
--- a/loader2/nfsinstall.h
+++ b/loader2/nfsinstall.h
@@ -11,13 +11,12 @@ struct nfsInstallData {
void setKickstartNfs(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
-int kickstartFromNfs(char * url, struct loaderData_s * loaderData, int flags);
+ char ** argv);
+int kickstartFromNfs(char * url, struct loaderData_s * loaderData);
char * mountNfsImage(struct installMethod * method,
char * location, struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, int flags);
-int getFileFromNfs(char * url, char * dest, struct loaderData_s * loaderData,
- int flags);
+ moduleDeps * modDepsPtr);
+int getFileFromNfs(char * url, char * dest, struct loaderData_s * loaderData);
#endif
diff --git a/loader2/pcmcia.c b/loader2/pcmcia.c
index df4466c24..bf4b3df5e 100644
--- a/loader2/pcmcia.c
+++ b/loader2/pcmcia.c
@@ -30,6 +30,9 @@
#include "log.h"
#include "modules.h"
+/* boot flags */
+extern int flags;
+
char * getPcicController() {
struct device ** devices;
static int probed = 0;
@@ -121,7 +124,7 @@ int startupPcmciaControllers() {
}
int initializePcmciaController(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
char * pcic = NULL;
char * mods;
@@ -133,7 +136,7 @@ int initializePcmciaController(moduleList modLoaded, moduleDeps modDeps,
return 0;
mods = sdupprintf("pcmcia_core:%s:pcmcia", pcic);
- mlLoadModuleSet(mods, modLoaded, modDeps, modInfo, flags);
+ mlLoadModuleSet(mods, modLoaded, modDeps, modInfo);
startupPcmciaControllers();
return 0;
diff --git a/loader2/pcmcia.h b/loader2/pcmcia.h
index b3cc44992..3953c230f 100644
--- a/loader2/pcmcia.h
+++ b/loader2/pcmcia.h
@@ -4,7 +4,7 @@
#include <kudzu/kudzu.h>
int initializePcmciaController(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
-void startPcmciaDevices(moduleList modLoaded, int flags);
+ moduleInfoSet modInfo);
+void startPcmciaDevices(moduleList modLoaded);
#endif
diff --git a/loader2/telnetd.c b/loader2/telnetd.c
index 6c3bfef66..75bce5222 100644
--- a/loader2/telnetd.c
+++ b/loader2/telnetd.c
@@ -42,8 +42,11 @@
#define IPPORT_TELNET 23
#endif
+/* boot flags */
+extern int flags;
+
/* Forks, keeping the loader as our child (so we know when it dies). */
-int beTelnet(int flags) {
+int beTelnet(void) {
int sock;
int conn;
socklen_t addrLength;
@@ -118,7 +121,7 @@ int beTelnet(int flags) {
if (child) {
#ifndef DEBUG_TELNET
- startNewt(flags);
+ startNewt();
winStatus(45, 3, _("Telnet"), _("Running anaconda via telnet..."));
#endif
@@ -220,19 +223,19 @@ int beTelnet(int flags) {
/* brand new tty! */
setenv("TERM", termType, 1);
- startNewt(flags);
+ startNewt();
return 0;
}
void startTelnetd(struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps modDeps, int flags) {
+ moduleDeps modDeps) {
char ret[47];
struct networkDeviceConfig netCfg;
ip_addr_t *tip;
- if (kickstartNetworkUp(loaderData, &netCfg, flags)) {
+ if (kickstartNetworkUp(loaderData, &netCfg)) {
logMessage(ERROR, "unable to bring up network");
return;
}
@@ -240,7 +243,7 @@ void startTelnetd(struct loaderData_s * loaderData,
tip = &(netCfg.dev.ip);
inet_ntop(tip->sa_family, IP_ADDR(tip), ret, IP_STRLEN(tip));
logMessage(INFO, "going to beTelnet for %s", ret);
- if (!beTelnet(flags))
+ if (!beTelnet())
flags |= LOADER_FLAGS_TEXT | LOADER_FLAGS_NOSHELL;
return;
diff --git a/loader2/telnetd.h b/loader2/telnetd.h
index 31ef65aed..145c55f21 100644
--- a/loader2/telnetd.h
+++ b/loader2/telnetd.h
@@ -3,6 +3,6 @@
void startTelnetd(struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps modDeps, int flags);
+ moduleDeps modDeps);
#endif
diff --git a/loader2/urlinstall.c b/loader2/urlinstall.c
index f799bd74c..11dfb994b 100644
--- a/loader2/urlinstall.c
+++ b/loader2/urlinstall.c
@@ -38,7 +38,10 @@
#include "urls.h"
#include "windows.h"
-static int loadSingleUrlImage(struct iurlinfo * ui, char * file, int flags,
+/* boot flags */
+extern int flags;
+
+static int loadSingleUrlImage(struct iurlinfo * ui, char * file,
char * dest, char * mntpoint, char * device,
int silentErrors, int addProduct) {
int fd;
@@ -60,7 +63,7 @@ static int loadSingleUrlImage(struct iurlinfo * ui, char * file, int flags,
sprintf(ehdrs, "User-Agent: anaconda/%s\r\n", VERSION);
}
- fd = urlinstStartTransfer(ui, filepath, ehdrs, silentErrors, flags);
+ fd = urlinstStartTransfer(ui, filepath, ehdrs, silentErrors);
if (fd == -2) {
if (ehdrs) free (ehdrs);
@@ -73,7 +76,7 @@ static int loadSingleUrlImage(struct iurlinfo * ui, char * file, int flags,
newFile = alloca(strlen(filepath) + 20);
sprintf(newFile, "disc1/%s", filepath);
- fd = urlinstStartTransfer(ui, newFile, ehdrs, silentErrors, flags);
+ fd = urlinstStartTransfer(ui, newFile, ehdrs, silentErrors);
if (ehdrs) free (ehdrs);
if (fd == -2) return 2;
@@ -89,10 +92,10 @@ static int loadSingleUrlImage(struct iurlinfo * ui, char * file, int flags,
}
if (dest != NULL) {
- rc = copyFileAndLoopbackMount(fd, dest, flags, device, mntpoint);
+ rc = copyFileAndLoopbackMount(fd, dest, device, mntpoint);
}
- urlinstFinishTransfer(ui, fd, flags);
+ urlinstFinishTransfer(ui, fd);
if (newFile) {
newFile = malloc(strlen(ui->prefix) + 20);
@@ -105,7 +108,7 @@ static int loadSingleUrlImage(struct iurlinfo * ui, char * file, int flags,
}
-static int loadUrlImages(struct iurlinfo * ui, int flags) {
+static int loadUrlImages(struct iurlinfo * ui) {
char *stage2img;
char tmpstr1[1024], tmpstr2[1024];
int rc;
@@ -114,7 +117,7 @@ static int loadUrlImages(struct iurlinfo * ui, int flags) {
/* grab the updates.img before netstg1.img so that we minimize our
* ramdisk usage */
- if (!loadSingleUrlImage(ui, "base/updates.img", flags,
+ if (!loadSingleUrlImage(ui, "base/updates.img",
"/tmp/ramfs/updates-disk.img", "/tmp/update-disk",
"loop7", 1, 1)) {
copyDirectory("/tmp/update-disk", "/tmp/updates");
@@ -125,7 +128,7 @@ static int loadUrlImages(struct iurlinfo * ui, int flags) {
/* grab the product.img before netstg1.img so that we minimize our
* ramdisk usage */
- if (!loadSingleUrlImage(ui, "base/product.img", flags,
+ if (!loadSingleUrlImage(ui, "base/product.img",
"/tmp/ramfs/product-disk.img", "/tmp/product-disk",
"loop7", 1, 1)) {
copyDirectory("/tmp/product-disk", "/tmp/product");
@@ -147,7 +150,7 @@ static int loadUrlImages(struct iurlinfo * ui, int flags) {
snprintf(tmpstr1, sizeof(tmpstr1), "base/%s", stage2img);
snprintf(tmpstr2, sizeof(tmpstr2), "/tmp/ramfs/%s", stage2img);
- rc = loadSingleUrlImage(ui, tmpstr1, flags, tmpstr2,
+ rc = loadSingleUrlImage(ui, tmpstr1, tmpstr2,
"/mnt/runtime", "loop0", 0, 1);
if (rc) {
if (rc != 2)
@@ -207,7 +210,7 @@ static char * getLoginName(char * login, struct iurlinfo ui) {
char * mountUrlImage(struct installMethod * method,
char * location, struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDeps, int flags) {
+ moduleDeps * modDeps) {
int rc;
char * url, *p;
struct iurlinfo ui;
@@ -284,11 +287,11 @@ char * mountUrlImage(struct installMethod * method,
/* ok messy - see if we have a stage2 on local CD */
/* before trying to pull one over network */
cdurl = findAnacondaCD(location, modInfo, modLoaded,
- *modDeps, flags, 0);
+ *modDeps, 0);
/* FIXME: this hard-codes info about the backend type
which sucks */
if (cdurl &&
- (loadSingleUrlImage(&ui, "repodata/repomd.xml", flags, NULL,
+ (loadSingleUrlImage(&ui, "repodata/repomd.xml", NULL,
NULL, NULL, 0, 0) == 0)) {
logMessage(INFO, "Detected stage 2 image on CD");
winStatus(50, 3, _("Media Detected"),
@@ -306,7 +309,7 @@ char * mountUrlImage(struct installMethod * method,
dir = -1;
} else {
/* need to find stage 2 on remote site */
- if (loadUrlImages(&ui, flags)) {
+ if (loadUrlImages(&ui)) {
stage = URL_STAGE_MAIN;
dir = -1;
if (loaderData->method) {
@@ -351,7 +354,7 @@ char * mountUrlImage(struct installMethod * method,
}
int getFileFromUrl(char * url, char * dest,
- struct loaderData_s * loaderData, int flags) {
+ struct loaderData_s * loaderData) {
char ret[47];
struct iurlinfo ui;
enum urlprotocol_t proto =
@@ -362,7 +365,7 @@ int getFileFromUrl(char * url, char * dest,
char * ehdrs = NULL;
ip_addr_t *tip;
- if (kickstartNetworkUp(loaderData, &netCfg, flags)) {
+ if (kickstartNetworkUp(loaderData, &netCfg)) {
logMessage(ERROR, "unable to bring up network");
return 1;
}
@@ -426,7 +429,7 @@ int getFileFromUrl(char * url, char * dest,
}
}
- fd = urlinstStartTransfer(&ui, file, ehdrs, 0, flags);
+ fd = urlinstStartTransfer(&ui, file, ehdrs, 0);
if (fd < 0) {
logMessage(ERROR, "failed to retrieve http://%s/%s/%s", ui.address, ui.prefix, file);
if (ehdrs) free(ehdrs);
@@ -441,20 +444,19 @@ int getFileFromUrl(char * url, char * dest,
return 1;
}
- urlinstFinishTransfer(&ui, fd, flags);
+ urlinstFinishTransfer(&ui, fd);
if (ehdrs) free(ehdrs);
return 0;
}
/* pull kickstart configuration file via http */
-int kickstartFromUrl(char * url, struct loaderData_s * loaderData,
- int flags) {
- return getFileFromUrl(url, "/tmp/ks.cfg", loaderData, flags);
+int kickstartFromUrl(char * url, struct loaderData_s * loaderData) {
+ return getFileFromUrl(url, "/tmp/ks.cfg", loaderData);
}
void setKickstartUrl(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr) {
+ char ** argv) {
char *url = NULL;
poptContext optCon;
@@ -467,7 +469,7 @@ void setKickstartUrl(struct loaderData_s * loaderData, int argc,
logMessage(INFO, "kickstartFromUrl");
optCon = poptGetContext(NULL, argc, (const char **) argv, ksUrlOptions, 0);
if ((rc = poptGetNextOpt(optCon)) < -1) {
- startNewt(*flagsPtr);
+ startNewt();
newtWinMessage(_("Kickstart Error"), _("OK"),
_("Bad argument to Url kickstart method "
"command %s: %s"),
diff --git a/loader2/urlinstall.h b/loader2/urlinstall.h
index 2989c1c37..0162c53cd 100644
--- a/loader2/urlinstall.h
+++ b/loader2/urlinstall.h
@@ -9,14 +9,13 @@ struct urlInstallData {
void setKickstartUrl(struct loaderData_s * loaderData, int argc,
- char ** argv, int * flagsPtr);
-int kickstartFromUrl(char * url, struct loaderData_s * loaderData, int flags);
+ char ** argv);
+int kickstartFromUrl(char * url, struct loaderData_s * loaderData);
char * mountUrlImage(struct installMethod * method,
char * location, struct loaderData_s * loaderData,
moduleInfoSet modInfo, moduleList modLoaded,
- moduleDeps * modDepsPtr, int flags);
-int getFileFromUrl(char * url, char * dest, struct loaderData_s * loaderData,
- int flags);
+ moduleDeps * modDepsPtr);
+int getFileFromUrl(char * url, char * dest, struct loaderData_s * loaderData);
#endif
diff --git a/loader2/urls.c b/loader2/urls.c
index eb201623a..7aa6e0157 100644
--- a/loader2/urls.c
+++ b/loader2/urls.c
@@ -16,7 +16,6 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-
#include <arpa/inet.h>
#include <ctype.h>
#include <fcntl.h>
@@ -38,6 +37,9 @@
#include "windows.h"
#include "net.h"
+/* boot flags */
+extern int flags;
+
/* convert a url (ftp or http) to a ui */
int convertURLToUI(char *url, struct iurlinfo *ui) {
char *chptr;
@@ -150,8 +152,7 @@ char *convertUIToURL(struct iurlinfo *ui) {
/* see ftp.c:httpGetFileDesc() for details */
/* set to NULL if not needed */
int urlinstStartTransfer(struct iurlinfo * ui, char * filename,
- char *extraHeaders, int silentErrors,
- int flags) {
+ char *extraHeaders, int silentErrors) {
char * buf;
int fd;
char * finalPrefix;
@@ -211,7 +212,7 @@ int urlinstStartTransfer(struct iurlinfo * ui, char * filename,
return fd;
}
-int urlinstFinishTransfer(struct iurlinfo * ui, int fd, int flags) {
+int urlinstFinishTransfer(struct iurlinfo * ui, int fd) {
if (ui->protocol == URL_METHOD_FTP)
close(ui->ftpPort);
close(fd);
diff --git a/loader2/urls.h b/loader2/urls.h
index 49290d832..7cfebfc5d 100644
--- a/loader2/urls.h
+++ b/loader2/urls.h
@@ -23,7 +23,7 @@ int urlMainSetupPanel(struct iurlinfo * ui, urlprotocol protocol,
char * doSecondarySetup);
int urlSecondarySetupPanel(struct iurlinfo * ui, urlprotocol protocol);
int urlinstStartTransfer(struct iurlinfo * ui, char * filename,
- char *extraHeaders, int silentErrors, int flags);
-int urlinstFinishTransfer(struct iurlinfo * ui, int fd, int flags);
+ char *extraHeaders, int silentErrors);
+int urlinstFinishTransfer(struct iurlinfo * ui, int fd);
#endif
diff --git a/loader2/usb.c b/loader2/usb.c
index c3a845adb..144b07860 100644
--- a/loader2/usb.c
+++ b/loader2/usb.c
@@ -32,6 +32,8 @@
#include "../isys/imount.h"
+/* boot flags */
+extern int flags;
/* This forces a pause between initializing usb and trusting the /proc
stuff */
@@ -61,7 +63,7 @@ static void sleepUntilUsbIsStable(void) {
}
int usbInitialize(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
struct device ** devices;
char * buf;
int i;
@@ -74,8 +76,8 @@ int usbInitialize(moduleList modLoaded, moduleDeps modDeps,
devices = probeDevices(CLASS_USB, BUS_PCI, 0);
if (!devices) {
- logMessage(DEBUGLVL, "no usb controller found");
- return 0;
+ logMessage(DEBUGLVL, "no usb controller found");
+ return 0;
}
/* JKFIXME: if we looked for all of them, we could batch this up and it
@@ -84,8 +86,7 @@ int usbInitialize(moduleList modLoaded, moduleDeps modDeps,
if (!devices[i]->driver) continue;
logMessage(INFO, "found USB controller %s", devices[i]->driver);
- if (mlLoadModuleSet(devices[i]->driver, modLoaded, modDeps,
- modInfo, flags)) {
+ if (mlLoadModuleSet(devices[i]->driver, modLoaded, modDeps, modInfo)) {
/* dont return, just keep going. */
/* may have USB built into kernel */
/* return 1; */
@@ -119,20 +120,20 @@ int usbInitialize(moduleList modLoaded, moduleDeps modDeps,
buf = alloca(40);
sprintf(buf, "hid:keybdev%s", (loadUsbStorage ? loadUsbStorage : ""));
- mlLoadModuleSet(buf, modLoaded, modDeps, modInfo, flags);
+ mlLoadModuleSet(buf, modLoaded, modDeps, modInfo);
sleep(1);
return 0;
}
void usbInitializeMouse(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags) {
+ moduleInfoSet modInfo) {
if (FL_NOUSB(flags)) return;
logMessage(INFO, "looking for USB mouse...");
if (probeDevices(CLASS_MOUSE, BUS_USB, PROBE_ALL)) {
logMessage(INFO, "USB mouse found, loading mousedev module");
- if (mlLoadModuleSet("mousedev", modLoaded, modDeps, modInfo, flags)) {
+ if (mlLoadModuleSet("mousedev", modLoaded, modDeps, modInfo)) {
logMessage (DEBUGLVL, "failed to loading mousedev module");
return;
}
diff --git a/loader2/usb.h b/loader2/usb.h
index d35754bc3..d91f39f69 100644
--- a/loader2/usb.h
+++ b/loader2/usb.h
@@ -2,8 +2,8 @@
#define H_USB
int usbInitialize(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
+ moduleInfoSet modInfo);
void usbInitializeMouse(moduleList modLoaded, moduleDeps modDeps,
- moduleInfoSet modInfo, int flags);
+ moduleInfoSet modInfo);
#endif