diff options
Diffstat (limited to 'core/fs/lib')
-rw-r--r-- | core/fs/lib/loadconfig.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/core/fs/lib/loadconfig.c b/core/fs/lib/loadconfig.c index 9318c1c3..d84bdef9 100644 --- a/core/fs/lib/loadconfig.c +++ b/core/fs/lib/loadconfig.c @@ -5,20 +5,26 @@ #include <fs.h> /* - * Standard version of load_config for extlinux-installed filesystems + * Standard version of load_config for extlinux/syslinux filesystems */ int generic_load_config(void) { com32sys_t regs; chdir(CurrentDirName); + /* try extlinux.conf first */ realpath(ConfigName, "extlinux.conf", FILENAME_MAX); - - dprintf("Config = %s\n", ConfigName); - + dprintf("Try config = %s\n", ConfigName); memset(®s, 0, sizeof regs); regs.edi.w[0] = OFFS_WRT(ConfigName, 0); call16(core_open, ®s, ®s); - + /* give syslinux.cfg a chance ? */ + if (regs.eflags.l & EFLAGS_ZF) { + realpath(ConfigName, "syslinux.cfg", FILENAME_MAX); + dprintf("Then try config = %s\n", ConfigName); + memset(®s, 0, sizeof regs); + regs.edi.w[0] = OFFS_WRT(ConfigName, 0); + call16(core_open, ®s, ®s); + } return (regs.eflags.l & EFLAGS_ZF) ? -1 : 0; } |