diff options
author | Jeremy Katz <katzj@redhat.com> | 2003-07-08 03:00:53 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2003-07-08 03:00:53 +0000 |
commit | 459119c94529602d08de465b7ebfa4871d328081 (patch) | |
tree | 369a7eb643938d6d51ef6f2d0c46561e61dcc0ae /loader2/kickstart.c | |
parent | 390977d3ee0ebc010168ce04573f63ae15458718 (diff) | |
download | anaconda-459119c94529602d08de465b7ebfa4871d328081.tar.gz anaconda-459119c94529602d08de465b7ebfa4871d328081.tar.xz anaconda-459119c94529602d08de465b7ebfa4871d328081.zip |
massive merge from taroon branch. changes are all over the place, but a
summary of looking through the diff is
* clean up warnings, we build with -Wall -Werror here too
* product.img stuff
* max logical partitions enforcement
* 1 TB max fs size
* ethtool stuff
* autopart in kickstart
* driver disk fixes
* RHEL upgrade stuff
* network driver disks
* variant pkgorder/tree splitting
Diffstat (limited to 'loader2/kickstart.c')
-rw-r--r-- | loader2/kickstart.c | 61 |
1 files changed, 21 insertions, 40 deletions
diff --git a/loader2/kickstart.c b/loader2/kickstart.c index 8b5971ce2..8c630fe7e 100644 --- a/loader2/kickstart.c +++ b/loader2/kickstart.c @@ -52,7 +52,8 @@ struct ksCommandNames { int code; char * name; - void (*setupData) (struct loaderData_s *loaderData, + void (*setupData) (struct knownDevices * kd, + struct loaderData_s *loaderData, int argc, char ** argv, int * flagsPtr); } ; @@ -61,13 +62,17 @@ struct ksCommand { char ** argv; }; -static void setTextMode(struct loaderData_s * loaderData, int argc, +static void setTextMode(struct knownDevices * kd, + struct loaderData_s * loaderData, int argc, char ** argv, int * flagsPtr); -static void setGraphicalMode(struct loaderData_s * loaderData, int argc, - char ** argv, int * flagsPtr); -static void setCmdlineMode(struct loaderData_s * loaderData, int argc, +static void setGraphicalMode(struct knownDevices * kd, + struct loaderData_s * loaderData, int argc, + char ** argv, int * flagsPtr); +static void setCmdlineMode(struct knownDevices * kd, + struct loaderData_s * loaderData, int argc, char ** argv, int * flagsPtr); -void loadKickstartModule(struct loaderData_s * loaderData, int argc, +void loadKickstartModule(struct knownDevices * kd, + struct loaderData_s * loaderData, int argc, char ** argv, int * flagsPtr); struct ksCommandNames ksTable[] = { @@ -274,35 +279,7 @@ int kickstartFromFloppy(char *kssrc, int flags) { 3 - kickstart file named path not there */ int getKickstartFromBlockDevice(char *device, char *path) { - int rc; - char ksfile[4096]; - - logMessage("getKickstartFromBlockDevice(%s, %s)", device, path); - - if (devMakeInode(device, "/tmp/kssrcdev")) - return 1; - - if ((doPwMount("/tmp/kssrcdev", "/tmp/ks", "vfat", 1, 0, NULL, NULL, 0, 0)) && - doPwMount("/tmp/kssrcdev", "/tmp/ks", "ext2", 1, 0, NULL, NULL, 0, 0) && - doPwMount("/tmp/kssrcdev", "/tmp/ks", "iso9660", 1, 0, NULL, NULL, 0, 0)) { - logMessage("failed to mount /dev/%s: %s", device, strerror(errno)); - return 2; - } - - snprintf(ksfile, sizeof(ksfile), "/tmp/ks/%s", path); - logMessage("Searching for ks file on path %s", ksfile); - - if (access(ksfile, R_OK)) { - rc = 3; - } else { - copyFile(ksfile, "/tmp/ks.cfg"); - rc = 0; - logMessage("kickstart file copied to /tmp/ks.cfg"); - } - - umount("/tmp/ks"); - unlink("/tmp/kssrcdev"); - return rc; + return getFileFromBlockDevice(device, path, "/tmp/ks.cfg"); } void getHostandPath(char * ksSource, char **host, char ** file, char * ip) { @@ -365,25 +342,29 @@ void getKickstartFile(struct knownDevices * kd, return; } -static void setTextMode(struct loaderData_s * loaderData, int argc, +static void setTextMode(struct knownDevices * kd, + struct loaderData_s * loaderData, int argc, char ** argv, int * flagsPtr) { (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_TEXT; return; } -static void setGraphicalMode(struct loaderData_s * loaderData, int argc, +static void setGraphicalMode(struct knownDevices * kd, + struct loaderData_s * loaderData, int argc, char ** argv, int * flagsPtr) { (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_GRAPHICAL; return; } -static void setCmdlineMode(struct loaderData_s * loaderData, int argc, +static void setCmdlineMode(struct knownDevices * kd, + struct loaderData_s * loaderData, int argc, char ** argv, int * flagsPtr) { (*flagsPtr) = (*flagsPtr) | LOADER_FLAGS_CMDLINE; return; } -void setupKickstart(struct loaderData_s * loaderData, int * flagsPtr) { +void runKickstart(struct knownDevices * kd, struct loaderData_s * loaderData, + int * flagsPtr) { struct ksCommandNames * cmd; int argc; char ** argv; @@ -391,7 +372,7 @@ void setupKickstart(struct loaderData_s * loaderData, int * flagsPtr) { logMessage("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(kd, loaderData, argc, argv, flagsPtr); } } } |