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

spice-char: notify the server when chardev is writable



The spice server is polling on write, unless
SPICE_CHAR_DEVICE_NOTIFY_WRITABLE flag is set. In this case, qemu must
call spice_server_char_device_wakeup() when the frontend is writable.

Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 246ca55f
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -110,6 +110,9 @@ static SpiceCharDeviceInterface vmc_interface = {
#if SPICE_SERVER_VERSION >= 0x000c02
    .event              = vmc_event,
#endif
#if SPICE_SERVER_VERSION >= 0x000c06
    .flags              = SPICE_CHAR_DEVICE_NOTIFY_WRITABLE,
#endif
};


@@ -260,6 +263,13 @@ static void print_allowed_subtypes(void)
    fprintf(stderr, "\n");
}

static void spice_chr_accept_input(struct CharDriverState *chr)
{
    SpiceCharDriver *s = chr->opaque;

    spice_server_char_device_wakeup(&s->sin);
}

static CharDriverState *chr_open(const char *subtype,
    void (*set_fe_open)(struct CharDriverState *, int))

@@ -279,6 +289,7 @@ static CharDriverState *chr_open(const char *subtype,
    chr->chr_set_fe_open = set_fe_open;
    chr->explicit_be_open = true;
    chr->chr_fe_event = spice_chr_fe_event;
    chr->chr_accept_input = spice_chr_accept_input;

    QLIST_INSERT_HEAD(&spice_chars, s, next);