[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(®s, 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, ®s, ®s);
- 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