From: Zachary Amsden Date: Thu, 30 Jul 2009 10:15:02 +0000 (-1000) Subject: Clean up VGA type selection; far too many variables being used to track one state... X-Git-Tag: v0.11.0-rc2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=731dd3beb3bf9a15176b150bd2e9a1dd8b519d7e;p=thirdparty%2Fqemu.git Clean up VGA type selection; far too many variables being used to track one state leads to confusion if new variables are added. Signed-off-by: Zachary Amsden Signed-off-by: Anthony Liguori --- diff --git a/sysemu.h b/sysemu.h index c94b8e3390c..ce251093de3 100644 --- a/sysemu.h +++ b/sysemu.h @@ -104,10 +104,17 @@ typedef enum DisplayType extern int autostart; extern int bios_size; -extern int cirrus_vga_enabled; -extern int std_vga_enabled; -extern int vmsvga_enabled; -extern int xenfb_enabled; + +typedef enum { + VGA_NONE, VGA_STD, VGA_CIRRUS, VGA_VMWARE, VGA_XENFB +} VGAInterfaceType; + +extern int vga_interface_type; +#define cirrus_vga_enabled (vga_interface_type == VGA_CIRRUS) +#define std_vga_enabled (vga_interface_type == VGA_STD) +#define xenfb_enabled (vga_interface_type == VGA_XENFB) +#define vmsvga_enabled (vga_interface_type == VGA_VMWARE) + extern int graphic_width; extern int graphic_height; extern int graphic_depth; diff --git a/vl.c b/vl.c index ddd03a96f55..710d52ef018 100644 --- a/vl.c +++ b/vl.c @@ -199,10 +199,7 @@ int vm_running; int autostart; static int rtc_utc = 1; static int rtc_date_offset = -1; /* -1 means no change */ -int cirrus_vga_enabled = 1; -int std_vga_enabled = 0; -int vmsvga_enabled = 0; -int xenfb_enabled = 0; +int vga_interface_type = VGA_CIRRUS; #ifdef TARGET_SPARC int graphic_width = 1024; int graphic_height = 768; @@ -4588,18 +4585,15 @@ static void select_vgahw (const char *p) { const char *opts; - cirrus_vga_enabled = 0; - std_vga_enabled = 0; - vmsvga_enabled = 0; - xenfb_enabled = 0; + vga_interface_type = VGA_NONE; if (strstart(p, "std", &opts)) { - std_vga_enabled = 1; + vga_interface_type = VGA_STD; } else if (strstart(p, "cirrus", &opts)) { - cirrus_vga_enabled = 1; + vga_interface_type = VGA_CIRRUS; } else if (strstart(p, "vmware", &opts)) { - vmsvga_enabled = 1; + vga_interface_type = VGA_VMWARE; } else if (strstart(p, "xenfb", &opts)) { - xenfb_enabled = 1; + vga_interface_type = VGA_XENFB; } else if (!strstart(p, "none", &opts)) { invalid_vga: fprintf(stderr, "Unknown vga type: %s\n", p);