diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2017-02-02 09:50:21 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2017-02-02 09:50:21 +0000 |
| commit | 2d6752d38d8acda6aae674a72b72be05482a58eb (patch) | |
| tree | 9d35c5a56135b95194c1c439232125deb1fee73a /spice-qemu-char.c | |
| parent | 6fe791b5e3aca8a6de8a322e85e76d2f13338a7e (diff) | |
| parent | 213dcb060f77a3e2704135d9c4da38b11673f8e9 (diff) | |
| download | focaccia-qemu-2d6752d38d8acda6aae674a72b72be05482a58eb.tar.gz focaccia-qemu-2d6752d38d8acda6aae674a72b72be05482a58eb.zip | |
Merge remote-tracking branch 'remotes/elmarco/tags/chr-split-pull-request' into staging
# gpg: Signature made Tue 31 Jan 2017 19:32:40 GMT # gpg: using RSA key 0xDAE8E10975969CE5 # gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>" # gpg: aka "Marc-André Lureau <marcandre.lureau@gmail.com>" # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 87A9 BD93 3F87 C606 D276 F62D DAE8 E109 7596 9CE5 * remotes/elmarco/tags/chr-split-pull-request: (41 commits) char: headers clean-up char: move parallel chardev in its own file char: move serial chardev to its own file char: move pty chardev in its own file char: move pipe chardev in its own file char: move console in its own file char: move stdio in its own file char: move file chardev in its own file char: move udp chardev in its own file char: move socket chardev to its own file char: move win-stdio into its own file char: move win chardev base class in its own file char: move fd chardev in its own file char: move QIOChannel-related stuff to char-io.h char: remove unused READ_RETRIES char: rename and move to header CHR_READ_BUF_LEN char: move ringbuf/memory to its own file char: move mux to its own file char: move null chardev to its own file char: make null_chr_write() the default method ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'spice-qemu-char.c')
| -rw-r--r-- | spice-qemu-char.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/spice-qemu-char.c b/spice-qemu-char.c index dd97c17fca..adfa55b55c 100644 --- a/spice-qemu-char.c +++ b/spice-qemu-char.c @@ -210,9 +210,9 @@ static int spice_chr_write(Chardev *chr, const uint8_t *buf, int len) return read_bytes; } -static void spice_chr_free(struct Chardev *chr) +static void char_spice_finalize(Object *obj) { - SpiceChardev *s = SPICE_CHARDEV(chr); + SpiceChardev *s = SPICE_CHARDEV(obj); vmc_unregister_interface(s); QLIST_REMOVE(s, next); @@ -338,6 +338,7 @@ static void qemu_chr_parse_spice_vmc(QemuOpts *opts, ChardevBackend *backend, error_setg(errp, "chardev: spice channel: no name given"); return; } + backend->type = CHARDEV_BACKEND_KIND_SPICEVMC; spicevmc = backend->u.spicevmc.data = g_new0(ChardevSpiceChannel, 1); qemu_chr_parse_common(opts, qapi_ChardevSpiceChannel_base(spicevmc)); spicevmc->type = g_strdup(name); @@ -353,6 +354,7 @@ static void qemu_chr_parse_spice_port(QemuOpts *opts, ChardevBackend *backend, error_setg(errp, "chardev: spice port: no name given"); return; } + backend->type = CHARDEV_BACKEND_KIND_SPICEPORT; spiceport = backend->u.spiceport.data = g_new0(ChardevSpicePort, 1); qemu_chr_parse_common(opts, qapi_ChardevSpicePort_base(spiceport)); spiceport->fqdn = g_strdup(name); @@ -365,13 +367,13 @@ static void char_spice_class_init(ObjectClass *oc, void *data) cc->chr_write = spice_chr_write; cc->chr_add_watch = spice_chr_add_watch; cc->chr_accept_input = spice_chr_accept_input; - cc->chr_free = spice_chr_free; } static const TypeInfo char_spice_type_info = { .name = TYPE_CHARDEV_SPICE, .parent = TYPE_CHARDEV, .instance_size = sizeof(SpiceChardev), + .instance_finalize = char_spice_finalize, .class_init = char_spice_class_init, .abstract = true, }; @@ -380,6 +382,7 @@ static void char_spicevmc_class_init(ObjectClass *oc, void *data) { ChardevClass *cc = CHARDEV_CLASS(oc); + cc->parse = qemu_chr_parse_spice_vmc; cc->open = qemu_chr_open_spice_vmc; cc->chr_set_fe_open = spice_vmc_set_fe_open; } @@ -394,6 +397,7 @@ static void char_spiceport_class_init(ObjectClass *oc, void *data) { ChardevClass *cc = CHARDEV_CLASS(oc); + cc->parse = qemu_chr_parse_spice_port; cc->open = qemu_chr_open_spice_port; cc->chr_set_fe_open = spice_port_set_fe_open; } @@ -406,17 +410,6 @@ static const TypeInfo char_spiceport_type_info = { static void register_types(void) { - static const CharDriver vmc_driver = { - .kind = CHARDEV_BACKEND_KIND_SPICEVMC, - .parse = qemu_chr_parse_spice_vmc, - }; - static const CharDriver port_driver = { - .kind = CHARDEV_BACKEND_KIND_SPICEPORT, - .parse = qemu_chr_parse_spice_port, - }; - register_char_driver(&vmc_driver); - register_char_driver(&port_driver); - type_register_static(&char_spice_type_info); type_register_static(&char_spicevmc_type_info); type_register_static(&char_spiceport_type_info); |