Commit 71b423f4 authored by Marc-André Lureau's avatar Marc-André Lureau Committed by Gerd Hoffmann
Browse files

spice-qemu-char: factor out CharDriverState creation



Make the CharDriverState creation code reusable by spicevmc port.

Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 07a54d70
Loading
Loading
Loading
Loading
+23 −14
Original line number Diff line number Diff line
@@ -186,12 +186,31 @@ static void print_allowed_subtypes(void)
    fprintf(stderr, "\n");
}

CharDriverState *qemu_chr_open_spice(QemuOpts *opts)
static CharDriverState *chr_open(QemuOpts *opts, const char *subtype)
{
    CharDriverState *chr;
    SpiceCharDriver *s;
    const char* name = qemu_opt_get(opts, "name");
    uint32_t debug = qemu_opt_get_number(opts, "debug", 0);

    chr = g_malloc0(sizeof(CharDriverState));
    s = g_malloc0(sizeof(SpiceCharDriver));
    s->chr = chr;
    s->debug = debug;
    s->active = false;
    s->sin.subtype = subtype;
    chr->opaque = s;
    chr->chr_write = spice_chr_write;
    chr->chr_close = spice_chr_close;
    chr->chr_guest_open = spice_chr_guest_open;
    chr->chr_guest_close = spice_chr_guest_close;

    return chr;
}

CharDriverState *qemu_chr_open_spice(QemuOpts *opts)
{
    CharDriverState *chr;
    const char *name = qemu_opt_get(opts, "name");
    const char **psubtype = spice_server_char_device_recognized_subtypes();
    const char *subtype = NULL;

@@ -212,17 +231,7 @@ CharDriverState *qemu_chr_open_spice(QemuOpts *opts)
        return NULL;
    }

    chr = g_malloc0(sizeof(CharDriverState));
    s = g_malloc0(sizeof(SpiceCharDriver));
    s->chr = chr;
    s->debug = debug;
    s->active = false;
    s->sin.subtype = subtype;
    chr->opaque = s;
    chr->chr_write = spice_chr_write;
    chr->chr_close = spice_chr_close;
    chr->chr_guest_open = spice_chr_guest_open;
    chr->chr_guest_close = spice_chr_guest_close;
    chr = chr_open(opts, subtype);

#if SPICE_SERVER_VERSION < 0x000901
    /* See comment in vmc_state() */