]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Use vesa reserved space for strings and modes
authorSasha Levin <levinsasha928@gmail.com>
Wed, 1 Jun 2011 15:10:42 +0000 (18:10 +0300)
committerPekka Enberg <penberg@kernel.org>
Fri, 3 Jun 2011 16:22:17 +0000 (19:22 +0300)
As defined in the spec, the reserved space in struct vesa_general_info
should be used to store vesa oem string an a list of possible modes.

Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/bios/int10.c

index 48abe10e103661d6703323ea91fbfd7406389f4d..57647a134aac9b369afd9f41c1ddb99f0a6151e6 100644 (file)
@@ -20,14 +20,16 @@ struct int10_args {
 
 /* VESA General Information table */
 struct vesa_general_info {
-       u32 signature;                  /* 0 Magic number = "VESA" */
-       u16 version;                    /* 4 */
-       void *vendor_string;            /* 6 */
-       u32 capabilities;               /* 10 */
-       void *video_mode_ptr;           /* 14 */
-       u16 total_memory;               /* 18 */
-
-       u8 reserved[236];               /* 20 */
+       u32     signature;              /* 0 Magic number = "VESA" */
+       u16     version;                /* 4 */
+       void    *vendor_string;         /* 6 */
+       u32     capabilities;           /* 10 */
+       void    *video_mode_ptr;        /* 14 */
+       u16     total_memory;           /* 18 */
+       u16     modes[2];               /* 20 */
+       char    oem_string[11];         /* 24 */
+
+       u8 reserved[223];               /* 35 */
 } __attribute__ ((packed));
 
 
@@ -69,9 +71,6 @@ struct vminfo {
        u8      reserved[206];          /* 50 */
 };
 
-char oemstring[11] = "KVM VESA";
-u16 modes[2] = { 0x0112, 0xffff };
-
 static inline void outb(unsigned short port, unsigned char val)
 {
        asm volatile("outb %0, %1" : : "a"(val), "Nd"(port));
@@ -104,10 +103,12 @@ static void int10_vesa(struct int10_args *args)
                *destination = (struct vesa_general_info) {
                        .signature      = VESA_MAGIC,
                        .version        = 0x102,
-                       .vendor_string  = oemstring,
+                       .vendor_string  = &destination->oem_string,
                        .capabilities   = 0x10,
-                       .video_mode_ptr = modes,
+                       .video_mode_ptr = &destination->modes,
                        .total_memory   = (4*VESA_WIDTH * VESA_HEIGHT) / 0x10000,
+                       .oem_string     = "KVM VESA",
+                       .modes          = { 0x0112, 0xffff },
                };
 
                break;