public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Pekka Enberg <penberg@kernel.org>
To: kvm@vger.kernel.org
Cc: Pekka Enberg <penberg@kernel.org>, Ingo Molnar <mingo@elte.hu>,
	Cyrill Gorcunov <gorcunov@gmail.com>,
	John Floren <john@jfloren.net>,
	Sasha Levin <levinsasha928@gmail.com>
Subject: [PATCH 1/2] kvm tools, vesa: Cleanup code in bios/int10.c
Date: Fri,  3 Jun 2011 22:37:03 +0300	[thread overview]
Message-ID: <1307129824-8396-1-git-send-email-penberg@kernel.org> (raw)

This patch cleans up the code in bios/int10.c without changing functionality.

Cc: Ingo Molnar <mingo@elte.hu>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: John Floren <john@jfloren.net>
Cc: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
---
 tools/kvm/bios/int10.c |   88 +++++++++++++++++++++++++----------------------
 1 files changed, 47 insertions(+), 41 deletions(-)

diff --git a/tools/kvm/bios/int10.c b/tools/kvm/bios/int10.c
index 57647a1..f7fecac 100644
--- a/tools/kvm/bios/int10.c
+++ b/tools/kvm/bios/int10.c
@@ -29,10 +29,9 @@ struct vesa_general_info {
 	u16	modes[2];		/* 20 */
 	char	oem_string[11];		/* 24 */
 
-	u8 reserved[223];		/* 35 */
+	u8	reserved[223];		/* 35 */
 } __attribute__ ((packed));
 
-
 struct vminfo {
 	u16	mode_attr;		/* 0 */
 	u8	win_attr[2];		/* 2 */
@@ -87,56 +86,63 @@ static inline void int10_putchar(struct int10_args *args)
 	outb(0x3f8, al);
 }
 
+static void vbe_get_mode(struct int10_args *args)
+{
+	struct vminfo *info = (struct vminfo *) args->edi;
+
+	*info = (struct vminfo) {
+		.mode_attr		= 0xd9, /* 11011011 */
+		.logical_scan		= VESA_WIDTH*4,
+		.h_res			= VESA_WIDTH,
+		.v_res			= VESA_HEIGHT,
+		.bpp			= VESA_BPP,
+		.memory_layout		= 6,
+		.memory_planes		= 1,
+		.lfb_ptr		= VESA_MEM_ADDR,
+		.rmask			= 8,
+		.gmask			= 8,
+		.bmask			= 8,
+		.resv_mask		= 8,
+		.resv_pos		= 24,
+		.bpos			= 16,
+		.gpos			= 8,
+	};
+}
+
+static void vbe_get_info(struct int10_args *args)
+{
+	struct vesa_general_info *info = (struct vesa_general_info *) args->edi;
+
+	*info = (struct vesa_general_info) {
+		.signature		= VESA_MAGIC,
+		.version		= 0x102,
+		.vendor_string		= &info->oem_string,
+		.capabilities		= 0x10,
+		.video_mode_ptr		= &info->modes,
+		.total_memory		= (4 * VESA_WIDTH * VESA_HEIGHT) / 0x10000,
+		.oem_string		= "KVM VESA",
+		.modes			= { 0x0112, 0xffff },
+	};
+}
+
+#define VBE_STATUS_OK		0x004F
+
 static void int10_vesa(struct int10_args *args)
 {
 	u8 al;
-	struct vesa_general_info *destination;
-	struct vminfo *vi;
 
 	al = args->eax;
 
 	switch (al) {
-	case 0:
-		/* Set controller info */
-
-		destination = (struct vesa_general_info *)args->edi;
-		*destination = (struct vesa_general_info) {
-			.signature	= VESA_MAGIC,
-			.version	= 0x102,
-			.vendor_string	= &destination->oem_string,
-			.capabilities	= 0x10,
-			.video_mode_ptr	= &destination->modes,
-			.total_memory	= (4*VESA_WIDTH * VESA_HEIGHT) / 0x10000,
-			.oem_string	= "KVM VESA",
-			.modes		= { 0x0112, 0xffff },
-		};
-
+	case 0x00:
+		vbe_get_info(args);
 		break;
-	case 1:
-		vi = (struct vminfo *)args->edi;
-		*vi = (struct vminfo) {
-			.mode_attr	= 0xd9, /* 11011011 */
-			.logical_scan	= VESA_WIDTH*4,
-			.h_res		= VESA_WIDTH,
-			.v_res		= VESA_HEIGHT,
-			.bpp		= VESA_BPP,
-			.memory_layout	= 6,
-			.memory_planes	= 1,
-			.lfb_ptr	= VESA_MEM_ADDR,
-			.rmask		= 8,
-			.gmask		= 8,
-			.bmask		= 8,
-			.resv_mask	= 8,
-			.resv_pos	= 24,
-			.bpos		= 16,
-			.gpos		= 8,
-		};
-
+	case 0x01:
+		vbe_get_mode(args);
 		break;
 	}
 
-	args->eax			= 0x004f; /* return success every time */
-
+	args->eax = VBE_STATUS_OK;
 }
 
 bioscall void int10_handler(struct int10_args *args)
-- 
1.7.0.4


             reply	other threads:[~2011-06-03 19:37 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-03 19:37 Pekka Enberg [this message]
2011-06-03 19:37 ` [PATCH 2/2] kvm tools, vesa: Fix 'ah' access in int10_vesa() Pekka Enberg
2011-06-03 19:43   ` Cyrill Gorcunov
2011-06-06  8:28   ` Avi Kivity
2011-06-06  8:37     ` Cyrill Gorcunov
2011-06-06  9:09       ` Pekka Enberg
2011-06-06  9:11         ` Cyrill Gorcunov
2011-06-03 19:45 ` [PATCH 1/2] kvm tools, vesa: Cleanup code in bios/int10.c Cyrill Gorcunov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1307129824-8396-1-git-send-email-penberg@kernel.org \
    --to=penberg@kernel.org \
    --cc=gorcunov@gmail.com \
    --cc=john@jfloren.net \
    --cc=kvm@vger.kernel.org \
    --cc=levinsasha928@gmail.com \
    --cc=mingo@elte.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox