mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06: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:
parent
8cddc46990
commit
88cace9f11
8 changed files with 161 additions and 223 deletions
10
ui/gtk.c
10
ui/gtk.c
|
@ -1715,8 +1715,6 @@ static void gd_vc_chr_set_echo(Chardev *chr, bool echo)
|
|||
|
||||
static int nb_vcs;
|
||||
static Chardev *vcs[MAX_VCS];
|
||||
static const CharDriver gd_vc_driver;
|
||||
|
||||
static void gd_vc_open(Chardev *chr,
|
||||
ChardevBackend *backend,
|
||||
bool *be_opened,
|
||||
|
@ -1739,6 +1737,8 @@ static void char_gd_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 = gd_vc_open;
|
||||
cc->chr_write = gd_vc_chr_write;
|
||||
cc->chr_set_echo = gd_vc_chr_set_echo;
|
||||
|
@ -1751,11 +1751,6 @@ static const TypeInfo char_gd_vc_type_info = {
|
|||
.class_init = char_gd_vc_class_init,
|
||||
};
|
||||
|
||||
static const CharDriver gd_vc_driver = {
|
||||
.kind = CHARDEV_BACKEND_KIND_VC,
|
||||
.parse = qemu_chr_parse_vc,
|
||||
};
|
||||
|
||||
static gboolean gd_vc_in(VteTerminal *terminal, gchar *text, guint size,
|
||||
gpointer user_data)
|
||||
{
|
||||
|
@ -2353,6 +2348,5 @@ void early_gtk_display_init(int opengl)
|
|||
|
||||
#if defined(CONFIG_VTE)
|
||||
type_register(&char_gd_vc_type_info);
|
||||
register_char_driver(&gd_vc_driver);
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue