Introduce -display argument
This patch introduces a -display argument which consolidates the setting of the display mode. Valid options are: sdl/curses/default Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									ffe8b821a1
								
							
						
					
					
						commit
						1472a95bab
					
				| 
						 | 
				
			
			@ -590,6 +590,28 @@ STEXI
 | 
			
		|||
@table @option
 | 
			
		||||
ETEXI
 | 
			
		||||
 | 
			
		||||
DEF("display", HAS_ARG, QEMU_OPTION_display,
 | 
			
		||||
    "-display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off]\n"
 | 
			
		||||
    "            [,window_close=on|off]|curses\n"
 | 
			
		||||
    "                select display type\n", QEMU_ARCH_ALL)
 | 
			
		||||
STEXI
 | 
			
		||||
@item -display @var{type}
 | 
			
		||||
@findex -display
 | 
			
		||||
Select type of display to use. This option is a replacement for the
 | 
			
		||||
old style -sdl/-curses/... options. Valid values for @var{type} are
 | 
			
		||||
@table @option
 | 
			
		||||
@item sdl
 | 
			
		||||
Display video output via SDL (usually in a separate graphics
 | 
			
		||||
window; see the SDL documentation for other possibilities).
 | 
			
		||||
@item curses
 | 
			
		||||
Display video output via curses. For graphics device models which
 | 
			
		||||
support a text mode, QEMU can display this output using a
 | 
			
		||||
curses/ncurses interface. Nothing is displayed when the graphics
 | 
			
		||||
device is in graphical mode or if the graphics device does not support
 | 
			
		||||
a text mode. Generally only the VGA device models support text mode.
 | 
			
		||||
@end table
 | 
			
		||||
ETEXI
 | 
			
		||||
 | 
			
		||||
DEF("nographic", 0, QEMU_OPTION_nographic,
 | 
			
		||||
    "-nographic      disable graphical output and redirect serial I/Os to console\n",
 | 
			
		||||
    QEMU_ARCH_ALL)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										75
									
								
								vl.c
								
								
								
								
							
							
						
						
									
										75
									
								
								vl.c
								
								
								
								
							| 
						 | 
				
			
			@ -1555,6 +1555,78 @@ static void select_vgahw (const char *p)
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static DisplayType select_display(const char *p)
 | 
			
		||||
{
 | 
			
		||||
    const char *opts;
 | 
			
		||||
    DisplayType display = DT_DEFAULT;
 | 
			
		||||
 | 
			
		||||
    if (strstart(p, "sdl", &opts)) {
 | 
			
		||||
#ifdef CONFIG_SDL
 | 
			
		||||
        display = DT_SDL;
 | 
			
		||||
        while (*opts) {
 | 
			
		||||
            const char *nextopt;
 | 
			
		||||
 | 
			
		||||
            if (strstart(opts, ",frame=", &nextopt)) {
 | 
			
		||||
                opts = nextopt;
 | 
			
		||||
                if (strstart(opts, "on", &nextopt)) {
 | 
			
		||||
                    no_frame = 0;
 | 
			
		||||
                } else if (strstart(opts, "off", &nextopt)) {
 | 
			
		||||
                    no_frame = 1;
 | 
			
		||||
                } else {
 | 
			
		||||
                    goto invalid_display;
 | 
			
		||||
                }
 | 
			
		||||
            } else if (strstart(opts, ",alt_grab=", &nextopt)) {
 | 
			
		||||
                opts = nextopt;
 | 
			
		||||
                if (strstart(opts, "on", &nextopt)) {
 | 
			
		||||
                    alt_grab = 1;
 | 
			
		||||
                } else if (strstart(opts, "off", &nextopt)) {
 | 
			
		||||
                    alt_grab = 0;
 | 
			
		||||
                } else {
 | 
			
		||||
                    goto invalid_display;
 | 
			
		||||
                }
 | 
			
		||||
            } else if (strstart(opts, ",ctrl_grab=", &nextopt)) {
 | 
			
		||||
                opts = nextopt;
 | 
			
		||||
                if (strstart(opts, "on", &nextopt)) {
 | 
			
		||||
                    ctrl_grab = 1;
 | 
			
		||||
                } else if (strstart(opts, "off", &nextopt)) {
 | 
			
		||||
                    ctrl_grab = 0;
 | 
			
		||||
                } else {
 | 
			
		||||
                    goto invalid_display;
 | 
			
		||||
                }
 | 
			
		||||
            } else if (strstart(opts, ",window_close=", &nextopt)) {
 | 
			
		||||
                opts = nextopt;
 | 
			
		||||
                if (strstart(opts, "on", &nextopt)) {
 | 
			
		||||
                    no_quit = 0;
 | 
			
		||||
                } else if (strstart(opts, "off", &nextopt)) {
 | 
			
		||||
                    no_quit = 1;
 | 
			
		||||
                } else {
 | 
			
		||||
                    goto invalid_display;
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                goto invalid_display;
 | 
			
		||||
            }
 | 
			
		||||
            opts = nextopt;
 | 
			
		||||
        }
 | 
			
		||||
#else
 | 
			
		||||
        fprintf(stderr, "SDL support is disabled\n");
 | 
			
		||||
        exit(1);
 | 
			
		||||
#endif
 | 
			
		||||
    } else if (strstart(p, "curses", &opts)) {
 | 
			
		||||
#ifdef CONFIG_CURSES
 | 
			
		||||
        display = DT_CURSES;
 | 
			
		||||
#else
 | 
			
		||||
        fprintf(stderr, "Curses support is disabled\n");
 | 
			
		||||
        exit(1);
 | 
			
		||||
#endif
 | 
			
		||||
    } else {
 | 
			
		||||
    invalid_display:
 | 
			
		||||
        fprintf(stderr, "Unknown display type: %s\n", p);
 | 
			
		||||
        exit(1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return display;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int balloon_parse(const char *arg)
 | 
			
		||||
{
 | 
			
		||||
    QemuOpts *opts;
 | 
			
		||||
| 
						 | 
				
			
			@ -2153,6 +2225,9 @@ int main(int argc, char **argv, char **envp)
 | 
			
		|||
                }
 | 
			
		||||
                numa_add(optarg);
 | 
			
		||||
                break;
 | 
			
		||||
            case QEMU_OPTION_display:
 | 
			
		||||
                display_type = select_display(optarg);
 | 
			
		||||
                break;
 | 
			
		||||
            case QEMU_OPTION_nographic:
 | 
			
		||||
                display_type = DT_NOGRAPHIC;
 | 
			
		||||
                break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue