From 800dae0d34f8629a34c638a612166b76dda03e27 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Sat, 2 Aug 2014 01:13:08 +0200 Subject: [PATCH 3/4] kexecboot: do not hardcode MOUNTPOINT Avoid to hardcode it: could be requested as a new configure option. Signed-off-by: Andrea Adami --- cfgparser.c | 6 +++--- kexecboot.c | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/cfgparser.c b/cfgparser.c index 8f6688c..dec27b1 100644 --- a/cfgparser.c +++ b/cfgparser.c @@ -141,7 +141,7 @@ static int set_kernel(struct cfgdata_t *cfgdata, char *value) return -1; } - strcpy(sc->kernelpath, "/mnt"); + strcpy(sc->kernelpath, MOUNTPOINT); strcat(sc->kernelpath, value); return 0; } @@ -155,7 +155,7 @@ static int set_icon(struct cfgdata_t *cfgdata, char *value) dispose(sc->iconpath); /* Add our mountpoint, since the enduser won't know it */ - sc->iconpath = malloc(sizeof(MOUNTPOINT)+strlen(value)); + sc->iconpath = malloc(strlen(MOUNTPOINT)+strlen(value)+1); if (NULL == sc->iconpath) { DPRINTF("Can't allocate memory to store iconpath '%s'", value); return -1; @@ -194,7 +194,7 @@ static int set_initrd(struct cfgdata_t *cfgdata, char *value) return -1; } - strcpy(sc->initrd, "/mnt"); + strcpy(sc->initrd, MOUNTPOINT); strcat(sc->initrd, value); return 0; } diff --git a/kexecboot.c b/kexecboot.c index d6657a0..7268d6b 100644 --- a/kexecboot.c +++ b/kexecboot.c @@ -57,20 +57,22 @@ #endif #ifdef USE_MACHINE_KERNEL -/* Machine-dependent kernel patch */ +/* Machine-dependent kernel path */ char *machine_kernel = NULL; #endif +#define PREPEND_MOUNTPATH(string) MOUNTPOINT""string + /* NULL-terminated array of kernel search paths * First item should be filled with machine-dependent path */ char *default_kernels[] = { #ifdef USE_ZIMAGE - "/mnt/boot/zImage", - "/mnt/zImage", + PREPEND_MOUNTPATH("/boot/zImage"), + PREPEND_MOUNTPATH("/zImage"), #endif #ifdef USE_UIMAGE - "/mnt/boot/uImage", - "/mnt/uImage", + PREPEND_MOUNTPATH("/boot/uImage"), + PREPEND_MOUNTPATH("/uImage"), #endif NULL }; @@ -149,14 +151,14 @@ char *get_machine_kernelpath() { ++tmp; } - /* Prepend "/mnt/boot/zImage-" to hw */ - tmp = malloc(strlen(hw) + 17 + 1); /* strlen("/mnt/boot/zImage-") */ + /* Prepend MOUNTPOINT"/boot/zImage-" to hw */ + tmp = malloc(strlen(PREPEND_MOUNTPATH("/boot/zImage-")) + strlen(hw) + 1); if (NULL == tmp) { DPRINTF("Can't allocate memory for machine-specific kernel path"); return NULL; } - strcpy(tmp, "/mnt/boot/zImage-"); + strcpy(tmp, PREPEND_MOUNTPATH("/boot/zImage-")); strcat(tmp, hw); return tmp; -- 1.9.1