[syslinux:master] core: split loadconfig.c into two files

syslinux-bot for H. Peter Anvin hpa at linux.intel.com
Fri Jul 2 16:21:07 PDT 2010


Commit-ID:  d44d4b5df1e8496f0bb6a343ddba41c258e01cda
Gitweb:     http://syslinux.zytor.com/commit/d44d4b5df1e8496f0bb6a343ddba41c258e01cda
Author:     H. Peter Anvin <hpa at linux.intel.com>
AuthorDate: Fri, 2 Jul 2010 16:19:59 -0700
Committer:  H. Peter Anvin <hpa at linux.intel.com>
CommitDate: Fri, 2 Jul 2010 16:19:59 -0700

core: split loadconfig.c into two files

Split loadconfig.c into two files.  In particular, isolinux needs
search_config() but not generic_load_config().

Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>


---
 core/fs/lib/loadconfig.c                     |   30 +---------------------
 core/fs/lib/{loadconfig.c => searchconfig.c} |   36 +++++---------------------
 2 files changed, 8 insertions(+), 58 deletions(-)

diff --git a/core/fs/lib/loadconfig.c b/core/fs/lib/loadconfig.c
index c2fd972..c9652b6 100644
--- a/core/fs/lib/loadconfig.c
+++ b/core/fs/lib/loadconfig.c
@@ -4,34 +4,6 @@
 #include <core.h>
 #include <fs.h>
 
-int search_config(const char *search_directories[], const char *filenames[])
-{
-    char confignamebuf[FILENAME_MAX];
-    com32sys_t regs;
-    const char *sd, **sdp;
-    const char *sf, **sfp;
-
-    for (sdp = search_directories; (sd = *sdp); sdp++) {
-	for (sfp = filenames; (sf = *sfp); sfp++) {
-	    memset(&regs, 0, sizeof regs);
-	    snprintf(confignamebuf, sizeof confignamebuf,
-		     "%s%s%s",
-		     sd, (*sd && sd[strlen(sd)-1] == '/') ? "" : "/",
-		     sf);
-	    realpath(ConfigName, confignamebuf, FILENAME_MAX);
-	    regs.edi.w[0] = OFFS_WRT(ConfigName, 0);
-	    dprintf("Config search: %s\n", ConfigName);
-	    call16(core_open, &regs, &regs);
-	    if (!(regs.eflags.l & EFLAGS_ZF)) {
-		chdir(sd);
-		return 0;	/* Got it */
-	    }
-	}
-    }
-
-    return -1;
-}
-
 /*
  * Standard version of load_config for extlinux/syslinux filesystems.
  *
@@ -43,7 +15,7 @@ int generic_load_config(void)
 {
     static const char *search_directories[] = {
 	NULL,			/* CurrentDirName */
-	"/boot/syslinux", 
+	"/boot/syslinux",
 	"/syslinux",
 	"/",
 	NULL
diff --git a/core/fs/lib/loadconfig.c b/core/fs/lib/searchconfig.c
similarity index 56%
copy from core/fs/lib/loadconfig.c
copy to core/fs/lib/searchconfig.c
index c2fd972..24bfde3 100644
--- a/core/fs/lib/loadconfig.c
+++ b/core/fs/lib/searchconfig.c
@@ -4,6 +4,13 @@
 #include <core.h>
 #include <fs.h>
 
+/*
+ * Common implementation of load_config
+ *
+ * This searches for a specified set of filenames in a specified set
+ * of directories.  If found, set the current working directory to
+ * match.
+ */
 int search_config(const char *search_directories[], const char *filenames[])
 {
     char confignamebuf[FILENAME_MAX];
@@ -31,32 +38,3 @@ int search_config(const char *search_directories[], const char *filenames[])
 
     return -1;
 }
-
-/*
- * Standard version of load_config for extlinux/syslinux filesystems.
- *
- * This searches for extlinux.conf and syslinux.cfg in the install
- * directory, followed by a set of fallback directories.  If found,
- * set the current working directory to match.
- */
-int generic_load_config(void)
-{
-    static const char *search_directories[] = {
-	NULL,			/* CurrentDirName */
-	"/boot/syslinux", 
-	"/syslinux",
-	"/",
-	NULL
-    };
-    static const char *filenames[] = {
-	"extlinux.conf",
-	"syslinux.cfg",
-	NULL
-    };
-
-    search_directories[0] = CurrentDirName;
-
-    dprintf("CurrentDirName: \"%s\"\n", CurrentDirName);
-
-    return search_config(search_directories, filenames);
-}



More information about the Syslinux-commits mailing list