aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-01-04 16:24:11 -0800
committerH. Peter Anvin <hpa@zytor.com>2008-01-04 16:24:11 -0800
commitc54b3aad457950cc5d3e408ae1a65d05f12b7173 (patch)
tree53bef0951b1f453cde97e586c5d80ac2b1b1fb8b
parent6e799707077193baa008edcb040aadcd913bac90 (diff)
downloadsyslinux-c54b3aad457950cc5d3e408ae1a65d05f12b7173.tar.gz
syslinux-c54b3aad457950cc5d3e408ae1a65d05f12b7173.tar.xz
syslinux-c54b3aad457950cc5d3e408ae1a65d05f12b7173.zip
Handle vga={ask|normal|ext} in linux.c32syslinux-3.55-pre4
linux.c32 didn't handle vga={ask|normal|ext}, fix that.
-rw-r--r--com32/modules/linux.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/com32/modules/linux.c b/com32/modules/linux.c
index c20536f3..90aab68b 100644
--- a/com32/modules/linux.c
+++ b/com32/modules/linux.c
@@ -204,8 +204,22 @@ int main(int argc, char *argv[])
if ((arg = find_argument(argp, "mem=")))
mem_limit = saturate32(suffix_number(arg));
- if ((arg = find_argument(argp, "vga=")))
- video_mode = strtoul(arg, NULL, 0);
+ if ((arg = find_argument(argp, "vga="))) {
+ switch (arg[0] | 0x20) {
+ case 'a': /* "ask" */
+ video_mode = 0xfffd;
+ break;
+ case 'e': /* "ext" */
+ video_mode = 0xfffe;
+ break;
+ case 'n': /* "normal" */
+ video_mode = 0xffff;
+ break;
+ default:
+ video_mode = strtoul(arg, NULL, 0);
+ break;
+ }
+ }
if ((arg = find_argument(argp, "initrd="))) {
do {