summaryrefslogtreecommitdiffstats
path: root/devices
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2007-04-04 19:48:11 +1000
committerJeremy Kerr <jk@ozlabs.org>2007-04-04 19:48:11 +1000
commitf6de8493cf6645f8da027671f935cf22f8008a1b (patch)
tree3049a3755292c14d1a1d6987c556b88f405438b0 /devices
parent44722ec66794900881347462b6b6f32e430159af (diff)
downloadtalos-petitboot-f6de8493cf6645f8da027671f935cf22f8008a1b.tar.gz
talos-petitboot-f6de8493cf6645f8da027671f935cf22f8008a1b.zip
Remove duplicate prepend_mountpoint() functions.
Replace prepend_mountpoint() with join_paths(), and make it available to all parsers, instead of duplicating it in each. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'devices')
-rw-r--r--devices/native-parser.c24
-rw-r--r--devices/udev-helper.c16
-rw-r--r--devices/udev-helper.h2
-rw-r--r--devices/yaboot-parser.c22
4 files changed, 27 insertions, 37 deletions
diff --git a/devices/native-parser.c b/devices/native-parser.c
index bb1ca51..4f94d9d 100644
--- a/devices/native-parser.c
+++ b/devices/native-parser.c
@@ -13,20 +13,6 @@ static struct device *dev;
static const char *mountpoint;
int device_added;
-static char *prepend_mountpoint(const char *path)
-{
- char *full_path;
-
- full_path = malloc(strlen(path) + strlen(mountpoint) + 2);
-
- strcpy(full_path, mountpoint);
- if (path[0] != '/')
- strcat(full_path, "/");
- strcat(full_path, path);
-
- return full_path;
-}
-
int check_and_add_device(struct device *dev)
{
if (!dev->icon_file)
@@ -61,13 +47,13 @@ static void set_boot_option_parameter(struct boot_option *opt,
opt->description = strdup(value);
else if (streq(name, "image"))
- opt->boot_image_file = prepend_mountpoint(value);
+ opt->boot_image_file = join_paths(mountpoint, value);
else if (streq(name, "icon"))
- opt->icon_file = prepend_mountpoint(value);
+ opt->icon_file = join_paths(mountpoint, value);
else if (streq(name, "initrd"))
- opt->initrd_file = prepend_mountpoint(value);
+ opt->initrd_file = join_paths(mountpoint, value);
else if (streq(name, "args"))
opt->boot_args = strdup(value);
@@ -86,7 +72,7 @@ static void set_device_parameter(struct device *dev,
dev->description = strdup(value);
else if (streq(name, "icon"))
- dev->icon_file = prepend_mountpoint(value);
+ dev->icon_file = join_paths(mountpoint, value);
}
static int parameter(char *param_name, char *param_value)
@@ -106,7 +92,7 @@ int parse(const char *devicepath, const char *_mountpoint)
mountpoint = _mountpoint;
- filepath = prepend_mountpoint(conf_filename);
+ filepath = join_paths(mountpoint, conf_filename);
cur_opt = NULL;
dev = malloc(sizeof(*dev));
diff --git a/devices/udev-helper.c b/devices/udev-helper.c
index c113e55..da12129 100644
--- a/devices/udev-helper.c
+++ b/devices/udev-helper.c
@@ -568,3 +568,19 @@ int main(int argc, char **argv)
}
return rc;
}
+
+/* convenience function for parsers */
+char *join_paths(const char *a, const char *b)
+{
+ char *full_path;
+
+ full_path = malloc(strlen(a) + strlen(b) + 2);
+
+ strcpy(full_path, a);
+ if (b[0] != '/')
+ strcat(full_path, "/");
+ strcat(full_path, b);
+
+ return full_path;
+}
+
diff --git a/devices/udev-helper.h b/devices/udev-helper.h
index 10e5d2b..6b9ba9d 100644
--- a/devices/udev-helper.h
+++ b/devices/udev-helper.h
@@ -6,6 +6,8 @@ int add_device(const struct device *dev);
int add_boot_option(const struct boot_option *opt);
void free_boot_option(struct boot_option *opt);
+char *join_paths(const char *a, const char *b);
+
int mount_device(const char *dev_path, char *mount_path);
struct parser {
diff --git a/devices/yaboot-parser.c b/devices/yaboot-parser.c
index ee1b992..ee14cb1 100644
--- a/devices/yaboot-parser.c
+++ b/devices/yaboot-parser.c
@@ -86,20 +86,6 @@ make_params(char *label, char *params)
return buffer;
}
-static char *prepend_mountpoint(const char *path)
-{
- char *full_path;
-
- full_path = malloc(strlen(path) + strlen(mountpoint) + 2);
-
- strcpy(full_path, mountpoint);
- if (path[0] != '/')
- strcat(full_path, "/");
- strcat(full_path, path);
-
- return full_path;
-}
-
static int check_and_add_device(struct device *dev)
{
if (!dev->icon_file)
@@ -117,13 +103,13 @@ void process_image(char *label)
opt.name = label;
cfgopt = cfg_get_strg(label, "image");
- opt.boot_image_file = prepend_mountpoint(cfgopt);
+ opt.boot_image_file = join_paths(mountpoint, cfgopt);
if (cfgopt == defimage)
printf("This one is default. What do we do about it?\n");
cfgopt = cfg_get_strg(label, "initrd");
if (cfgopt)
- opt.initrd_file = prepend_mountpoint(cfgopt);
+ opt.initrd_file = join_paths(mountpoint, cfgopt);
opt.boot_args = make_params(label, NULL);
@@ -145,12 +131,12 @@ static int yaboot_parse(const char *devicepath, const char *_mountpoint)
mountpoint = _mountpoint;
- filepath = prepend_mountpoint("/etc/yaboot.conf");
+ filepath = join_paths(mountpoint, "/etc/yaboot.conf");
fd = open(filepath, O_RDONLY);
if (fd < 0) {
free(filepath);
- filepath = prepend_mountpoint("/yaboot.conf");
+ filepath = join_paths(mountpoint, "/yaboot.conf");
fd = open(filepath, O_RDONLY);
if (fd < 0)
OpenPOWER on IntegriCloud