diff options
author | Matt Fleming <matt.fleming@linux.intel.com> | 2011-05-27 17:49:39 +0100 |
---|---|---|
committer | Matt Fleming <matt.fleming@linux.intel.com> | 2011-06-07 20:02:55 +0100 |
commit | 26c1f437deb4b1ebe1df75e3613f24da62b73ae1 (patch) | |
tree | 094b61686e88042cf6f1d0231b680039ff636e10 | |
parent | 79163251bab8079623d4ea9d55e275e7b8b4607c (diff) | |
download | syslinux-26c1f437deb4b1ebe1df75e3613f24da62b73ae1.tar.gz syslinux-26c1f437deb4b1ebe1df75e3613f24da62b73ae1.tar.xz syslinux-26c1f437deb4b1ebe1df75e3613f24da62b73ae1.zip |
ldlinux: Parse "display" in config files
Teach ldlinux to parse the "display" directive.
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
-rw-r--r-- | com32/elflink/ldlinux/readconfig.c | 21 | ||||
-rw-r--r-- | core/conio.inc | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/com32/elflink/ldlinux/readconfig.c b/com32/elflink/ldlinux/readconfig.c index f0e45e97..906cbe05 100644 --- a/com32/elflink/ldlinux/readconfig.c +++ b/com32/elflink/ldlinux/readconfig.c @@ -30,6 +30,7 @@ #include "config.h" #include "getkey.h" #include "core.h" +#include "fs.h" const struct menu_parameter mparm[NPARAMS] = { [P_WIDTH] = {"width", 0}, @@ -725,6 +726,8 @@ static inline void io_delay(void) outb(0, 0x80); } +extern void get_msg_file(void); + extern char syslinux_banner[]; extern char copyright_str[]; @@ -1112,7 +1115,25 @@ do_include: * display/font/kbdmap are rather similar, open a file then do sth */ else if (looking_at(p, "display")) { + com32sys_t reg; + char *filename, *dst = KernelName; + size_t len = FILENAME_MAX - 1; + + filename = refstrdup(skipspace(p + 7)); + + while (len-- && not_whitespace(*filename)) + *dst++ = *filename++; + *dst = '\0'; + + memset(®, 0, sizeof(reg)); + reg.edi.w[0] = OFFS_WRT(KernelName, 0); + call16(core_open, ®, ®); + if (!(reg.eflags.l & EFLAGS_ZF)) + call16(get_msg_file, ®, NULL); + else + printf("File not found\n"); + refstr_put(filename); } else if (looking_at(p, "font")) { } else if (looking_at(p, "kbdmap")) { diff --git a/core/conio.inc b/core/conio.inc index 6d6f2342..46183fbb 100644 --- a/core/conio.inc +++ b/core/conio.inc @@ -53,6 +53,7 @@ loadkeys: ; ; Assumes CS == DS == ES. ; + global get_msg_file get_msg_file: mov byte [TextAttribute],07h ; Default grey on white mov byte [DisplayMask],07h ; Display text in all modes |