mirror of https://github.com/xqemu/xqemu.git
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
|
@table @option
|
||||||
ETEXI
|
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,
|
DEF("nographic", 0, QEMU_OPTION_nographic,
|
||||||
"-nographic disable graphical output and redirect serial I/Os to console\n",
|
"-nographic disable graphical output and redirect serial I/Os to console\n",
|
||||||
QEMU_ARCH_ALL)
|
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)
|
static int balloon_parse(const char *arg)
|
||||||
{
|
{
|
||||||
QemuOpts *opts;
|
QemuOpts *opts;
|
||||||
|
@ -2153,6 +2225,9 @@ int main(int argc, char **argv, char **envp)
|
||||||
}
|
}
|
||||||
numa_add(optarg);
|
numa_add(optarg);
|
||||||
break;
|
break;
|
||||||
|
case QEMU_OPTION_display:
|
||||||
|
display_type = select_display(optarg);
|
||||||
|
break;
|
||||||
case QEMU_OPTION_nographic:
|
case QEMU_OPTION_nographic:
|
||||||
display_type = DT_NOGRAPHIC;
|
display_type = DT_NOGRAPHIC;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue