qemu-char: Print strerror message on failure

The only way for chardev drivers to communicate an error was to return a NULL
pointer, which resulted in an error message that said _that_ something went
wrong, but not _why_.

This patch changes the interface to return 0/-errno and updates
qemu_chr_open_opts to use strerror to display a more helpful error message.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Kevin Wolf 2011-06-01 13:29:11 +02:00 committed by Anthony Liguori
parent 84682834eb
commit 6e1db57b2a
8 changed files with 117 additions and 83 deletions

View file

@ -1514,7 +1514,7 @@ static void text_console_do_init(CharDriverState *chr, DisplayState *ds)
chr->init(chr);
}
CharDriverState *text_console_init(QemuOpts *opts)
int text_console_init(QemuOpts *opts, CharDriverState **_chr)
{
CharDriverState *chr;
TextConsole *s;
@ -1546,7 +1546,7 @@ CharDriverState *text_console_init(QemuOpts *opts)
if (!s) {
free(chr);
return NULL;
return -EBUSY;
}
s->chr = chr;
@ -1554,7 +1554,9 @@ CharDriverState *text_console_init(QemuOpts *opts)
s->g_height = height;
chr->opaque = s;
chr->chr_set_echo = text_console_set_echo;
return chr;
*_chr = chr;
return 0;
}
void text_consoles_set_display(DisplayState *ds)