summaryrefslogtreecommitdiffstats
path: root/loader2/kickstart.c
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2003-07-08 03:00:53 +0000
committerJeremy Katz <katzj@redhat.com>2003-07-08 03:00:53 +0000
commit459119c94529602d08de465b7ebfa4871d328081 (patch)
tree369a7eb643938d6d51ef6f2d0c46561e61dcc0ae /loader2/kickstart.c
parent390977d3ee0ebc010168ce04573f63ae15458718 (diff)
downloadanaconda-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.c61
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);
}
}
}