From e96ebf494aa5aa0d81eb0e76ffb727920a0c40cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 8 Dec 2016 16:34:33 +0300 Subject: baum: convert to finalize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau Reviewed-by: Eric Blake --- backends/baum.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'backends') diff --git a/backends/baum.c b/backends/baum.c index 0f418ed..39c9365 100644 --- a/backends/baum.c +++ b/backends/baum.c @@ -616,9 +616,9 @@ static void baum_chr_read(void *opaque) } } -static void baum_chr_free(Chardev *chr) +static void char_braille_finalize(Object *obj) { - BaumChardev *baum = BAUM_CHARDEV(chr); + BaumChardev *baum = BAUM_CHARDEV(obj); timer_free(baum->cellCount_timer); if (baum->brlapi) { @@ -659,13 +659,13 @@ static void char_braille_class_init(ObjectClass *oc, void *data) cc->open = baum_chr_open; cc->chr_write = baum_chr_write; cc->chr_accept_input = baum_chr_accept_input; - cc->chr_free = baum_chr_free; } static const TypeInfo char_braille_type_info = { .name = TYPE_CHARDEV_BRAILLE, .parent = TYPE_CHARDEV, .instance_size = sizeof(BaumChardev), + .instance_finalize = char_braille_finalize, .class_init = char_braille_class_init, }; -- cgit v1.1 From 8955e8914c3abce89f35edd1ceb82cfc971b62af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 8 Dec 2016 16:34:44 +0300 Subject: msmouse: convert to finalize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau Reviewed-by: Eric Blake --- backends/msmouse.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'backends') diff --git a/backends/msmouse.c b/backends/msmouse.c index 936a547..55c344f 100644 --- a/backends/msmouse.c +++ b/backends/msmouse.c @@ -139,9 +139,9 @@ static int msmouse_chr_write(struct Chardev *s, const uint8_t *buf, int len) return len; } -static void msmouse_chr_free(struct Chardev *chr) +static void char_msmouse_finalize(Object *obj) { - MouseChardev *mouse = MOUSE_CHARDEV(chr); + MouseChardev *mouse = MOUSE_CHARDEV(obj); qemu_input_handler_unregister(mouse->hs); } @@ -172,13 +172,13 @@ static void char_msmouse_class_init(ObjectClass *oc, void *data) cc->open = msmouse_chr_open; cc->chr_write = msmouse_chr_write; cc->chr_accept_input = msmouse_chr_accept_input; - cc->chr_free = msmouse_chr_free; } static const TypeInfo char_msmouse_type_info = { .name = TYPE_CHARDEV_MSMOUSE, .parent = TYPE_CHARDEV, .instance_size = sizeof(MouseChardev), + .instance_finalize = char_msmouse_finalize, .class_init = char_msmouse_class_init, }; -- cgit v1.1 From 88cace9f119b85ac2d40a8b10c24e05ccfa6da07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Fri, 9 Dec 2016 00:50:12 +0300 Subject: char: get rid of CharDriver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Eric Blake --- backends/baum.c | 6 +----- backends/msmouse.c | 6 +----- backends/testdev.c | 6 +----- 3 files changed, 3 insertions(+), 15 deletions(-) (limited to 'backends') diff --git a/backends/baum.c b/backends/baum.c index 39c9365..5316c8d 100644 --- a/backends/baum.c +++ b/backends/baum.c @@ -656,6 +656,7 @@ static void char_braille_class_init(ObjectClass *oc, void *data) { ChardevClass *cc = CHARDEV_CLASS(oc); + cc->kind = CHARDEV_BACKEND_KIND_BRAILLE; cc->open = baum_chr_open; cc->chr_write = baum_chr_write; cc->chr_accept_input = baum_chr_accept_input; @@ -671,11 +672,6 @@ static const TypeInfo char_braille_type_info = { static void register_types(void) { - static const CharDriver driver = { - .kind = CHARDEV_BACKEND_KIND_BRAILLE, - }; - - register_char_driver(&driver); type_register_static(&char_braille_type_info); } diff --git a/backends/msmouse.c b/backends/msmouse.c index 55c344f..28689b3 100644 --- a/backends/msmouse.c +++ b/backends/msmouse.c @@ -169,6 +169,7 @@ static void char_msmouse_class_init(ObjectClass *oc, void *data) { ChardevClass *cc = CHARDEV_CLASS(oc); + cc->kind = CHARDEV_BACKEND_KIND_MSMOUSE; cc->open = msmouse_chr_open; cc->chr_write = msmouse_chr_write; cc->chr_accept_input = msmouse_chr_accept_input; @@ -184,11 +185,6 @@ static const TypeInfo char_msmouse_type_info = { static void register_types(void) { - static const CharDriver driver = { - .kind = CHARDEV_BACKEND_KIND_MSMOUSE, - }; - - register_char_driver(&driver); type_register_static(&char_msmouse_type_info); } diff --git a/backends/testdev.c b/backends/testdev.c index ea15143..243454a 100644 --- a/backends/testdev.c +++ b/backends/testdev.c @@ -111,6 +111,7 @@ static void char_testdev_class_init(ObjectClass *oc, void *data) { ChardevClass *cc = CHARDEV_CLASS(oc); + cc->kind = CHARDEV_BACKEND_KIND_TESTDEV; cc->chr_write = testdev_chr_write; } @@ -123,11 +124,6 @@ static const TypeInfo char_testdev_type_info = { static void register_types(void) { - static const CharDriver driver = { - .kind = CHARDEV_BACKEND_KIND_TESTDEV, - }; - - register_char_driver(&driver); type_register_static(&char_testdev_type_info); } -- cgit v1.1 From 0b663b7d77f1a2170fe30a91e3d6de1bb769a378 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Fri, 9 Dec 2016 11:04:51 +0300 Subject: char: remove class kind field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The class kind is necessary to lookup the chardev name in qmp_chardev_add() after calling qemu_chr_new_from_opts() and to set the appropriate ChardevBackend (mainly to free the right fields). qemu_chr_new_from_opts() can be changed to use a non-qmp function using the chardev class typename. Introduce qemu_chardev_add() to be called from qemu_chr_new_from_opts() and remove the class chardev kind field. Set the backend->type in the parse callback (when non-common fields are added). Signed-off-by: Marc-André Lureau Reviewed-by: Eric Blake --- backends/baum.c | 1 - backends/msmouse.c | 1 - backends/testdev.c | 1 - 3 files changed, 3 deletions(-) (limited to 'backends') diff --git a/backends/baum.c b/backends/baum.c index 5316c8d..2eddcae 100644 --- a/backends/baum.c +++ b/backends/baum.c @@ -656,7 +656,6 @@ static void char_braille_class_init(ObjectClass *oc, void *data) { ChardevClass *cc = CHARDEV_CLASS(oc); - cc->kind = CHARDEV_BACKEND_KIND_BRAILLE; cc->open = baum_chr_open; cc->chr_write = baum_chr_write; cc->chr_accept_input = baum_chr_accept_input; diff --git a/backends/msmouse.c b/backends/msmouse.c index 28689b3..d2c3162 100644 --- a/backends/msmouse.c +++ b/backends/msmouse.c @@ -169,7 +169,6 @@ static void char_msmouse_class_init(ObjectClass *oc, void *data) { ChardevClass *cc = CHARDEV_CLASS(oc); - cc->kind = CHARDEV_BACKEND_KIND_MSMOUSE; cc->open = msmouse_chr_open; cc->chr_write = msmouse_chr_write; cc->chr_accept_input = msmouse_chr_accept_input; diff --git a/backends/testdev.c b/backends/testdev.c index 243454a..7df9248 100644 --- a/backends/testdev.c +++ b/backends/testdev.c @@ -111,7 +111,6 @@ static void char_testdev_class_init(ObjectClass *oc, void *data) { ChardevClass *cc = CHARDEV_CLASS(oc); - cc->kind = CHARDEV_BACKEND_KIND_TESTDEV; cc->chr_write = testdev_chr_write; } -- cgit v1.1