mirror of
https://github.com/mii443/qemu.git
synced 2025-09-01 14:49:23 +00:00
char: get rid of CharDriver
qemu_chr_new_from_opts() is modified to not need CharDriver backend[] array, but uses instead objectified qmp_query_chardev_backends() and char_get_class(). The alias field is moved outside in a ChardevAlias[], similar to QDevAlias for devices. "kind" and "parse" are moved to ChardevClass ("kind" is to be removed next) Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
10
ui/console.c
10
ui/console.c
@ -2059,8 +2059,6 @@ static void text_console_do_init(Chardev *chr, DisplayState *ds)
|
||||
qemu_chr_be_generic_open(chr);
|
||||
}
|
||||
|
||||
static const CharDriver vc_driver;
|
||||
|
||||
static void vc_chr_open(Chardev *chr,
|
||||
ChardevBackend *backend,
|
||||
bool *be_opened,
|
||||
@ -2189,6 +2187,8 @@ static void char_vc_class_init(ObjectClass *oc, void *data)
|
||||
{
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
cc->kind = CHARDEV_BACKEND_KIND_VC;
|
||||
cc->parse = qemu_chr_parse_vc;
|
||||
cc->open = vc_chr_open;
|
||||
cc->chr_write = vc_chr_write;
|
||||
cc->chr_set_echo = vc_chr_set_echo;
|
||||
@ -2206,15 +2206,9 @@ void qemu_console_early_init(void)
|
||||
/* set the default vc driver */
|
||||
if (!object_class_by_name(TYPE_CHARDEV_VC)) {
|
||||
type_register(&char_vc_type_info);
|
||||
register_char_driver(&vc_driver);
|
||||
}
|
||||
}
|
||||
|
||||
static const CharDriver vc_driver = {
|
||||
.kind = CHARDEV_BACKEND_KIND_VC,
|
||||
.parse = qemu_chr_parse_vc,
|
||||
};
|
||||
|
||||
static void register_types(void)
|
||||
{
|
||||
type_register_static(&qemu_console_info);
|
||||
|
Reference in New Issue
Block a user