optimize screendump for the common non-switch case

switch console only if needed, also pass down whenever the console was
switched or not because a displaysurface redraw is only needed in case
the console was switched.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Gerd Hoffmann 2012-02-24 12:43:45 +01:00 committed by Anthony Liguori
parent 1673510204
commit 45efb16124
9 changed files with 34 additions and 21 deletions

View file

@ -176,19 +176,23 @@ void vga_hw_invalidate(void)
void vga_hw_screen_dump(const char *filename)
{
TextConsole *previous_active_console;
bool cswitch;
previous_active_console = active_console;
cswitch = previous_active_console && previous_active_console->index != 0;
/* There is currently no way of specifying which screen we want to dump,
so always dump the first one. */
console_select(0);
if (cswitch) {
console_select(0);
}
if (consoles[0] && consoles[0]->hw_screen_dump) {
consoles[0]->hw_screen_dump(consoles[0]->hw, filename);
consoles[0]->hw_screen_dump(consoles[0]->hw, filename, cswitch);
} else {
error_report("screen dump not implemented");
}
if (previous_active_console) {
if (cswitch) {
console_select(previous_active_console->index);
}
}