]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Add video mode to kernel initialization
authorJohn Floren <john@jfloren.net>
Mon, 23 May 2011 12:15:15 +0000 (15:15 +0300)
committerPekka Enberg <penberg@kernel.org>
Mon, 23 May 2011 14:07:39 +0000 (17:07 +0300)
Allow setting video mode in guest kernel.

For possible values see Documentation/fb/vesafb.txt

Signed-off-by: John Floren <john@jfloren.net>
[ turning code into patches and cleanup ]
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/include/kvm/kvm.h
tools/kvm/kvm.c

index 08c6fdac11fb9801483e93e701db4a6a65282fb4..f951f2d56230b6c46b7d27b54b132dc7350d6cb5 100644 (file)
@@ -41,7 +41,7 @@ int kvm__max_cpus(struct kvm *kvm);
 void kvm__init_ram(struct kvm *kvm);
 void kvm__delete(struct kvm *kvm);
 bool kvm__load_kernel(struct kvm *kvm, const char *kernel_filename,
-                       const char *initrd_filename, const char *kernel_cmdline);
+                       const char *initrd_filename, const char *kernel_cmdline, u16 vidmode);
 void kvm__setup_bios(struct kvm *kvm);
 void kvm__start_timer(struct kvm *kvm);
 void kvm__stop_timer(struct kvm *kvm);
index 4393a41999fde038a8d33e2dc5c1b46f85ced1b7..728421168f4d08868d25f19b70f47e7811c9e894 100644 (file)
@@ -320,7 +320,7 @@ static int load_flat_binary(struct kvm *kvm, int fd)
 static const char *BZIMAGE_MAGIC       = "HdrS";
 
 static bool load_bzimage(struct kvm *kvm, int fd_kernel,
-                       int fd_initrd, const char *kernel_cmdline)
+                       int fd_initrd, const char *kernel_cmdline, u16 vidmode)
 {
        struct boot_params *kern_boot;
        unsigned long setup_sects;
@@ -383,6 +383,7 @@ static bool load_bzimage(struct kvm *kvm, int fd_kernel,
        kern_boot->hdr.type_of_loader   = 0xff;
        kern_boot->hdr.heap_end_ptr     = 0xfe00;
        kern_boot->hdr.loadflags        |= CAN_USE_HEAP;
+       kern_boot->hdr.vid_mode         = vidmode;
 
        /*
         * Read initrd image into guest memory
@@ -441,7 +442,7 @@ static bool initrd_check(int fd)
 }
 
 bool kvm__load_kernel(struct kvm *kvm, const char *kernel_filename,
-               const char *initrd_filename, const char *kernel_cmdline)
+               const char *initrd_filename, const char *kernel_cmdline, u16 vidmode)
 {
        bool ret;
        int fd_kernel = -1, fd_initrd = -1;
@@ -459,7 +460,7 @@ bool kvm__load_kernel(struct kvm *kvm, const char *kernel_filename,
                        die("%s is not an initrd", initrd_filename);
        }
 
-       ret = load_bzimage(kvm, fd_kernel, fd_initrd, kernel_cmdline);
+       ret = load_bzimage(kvm, fd_kernel, fd_initrd, kernel_cmdline, vidmode);
 
        if (initrd_filename)
                close(fd_initrd);