Commit acbfbe4a authored by Marc-André Lureau's avatar Marc-André Lureau Committed by Paolo Bonzini
Browse files

char: fold single-user functions in caller



This shortens the code a bit.

Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent b68e956a
Loading
Loading
Loading
Loading
+29 −66
Original line number Diff line number Diff line
@@ -1891,22 +1891,6 @@ static void qemu_chr_free_tty(CharDriverState *chr)
{
    fd_chr_free(chr);
}

static CharDriverState *qemu_chr_open_tty_fd(const CharDriver *driver,
                                             int fd,
                                             ChardevCommon *backend,
                                             bool *be_opened,
                                             Error **errp)
{
    CharDriverState *chr;

    tty_serial_init(fd, 115200, 'N', 8, 1);
    chr = qemu_chr_open_fd(driver, fd, fd, backend, errp);
    if (!chr) {
        return NULL;
    }
    return chr;
}
#endif /* __linux__ || __sun__ */

#if defined(__linux__)
@@ -2327,29 +2311,6 @@ static int win_chr_poll(void *opaque)
    return 0;
}

static CharDriverState *qemu_chr_open_win_path(const CharDriver *driver,
                                               const char *filename,
                                               ChardevCommon *backend,
                                               Error **errp)
{
    CharDriverState *chr;
    WinCharState *s;

    chr = qemu_chr_alloc(driver, backend, errp);
    if (!chr) {
        return NULL;
    }
    s = g_new0(WinCharState, 1);
    chr->opaque = s;

    if (win_chr_init(chr, filename, errp) < 0) {
        g_free(s);
        qemu_chr_free_common(chr);
        return NULL;
    }
    return chr;
}

static int win_chr_pipe_poll(void *opaque)
{
    CharDriverState *chr = opaque;
@@ -2806,30 +2767,6 @@ static void udp_chr_free(CharDriverState *chr)
    qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
}

static CharDriverState *qemu_chr_open_udp(const CharDriver *driver,
                                          QIOChannelSocket *sioc,
                                          ChardevCommon *backend,
                                          bool *be_opened,
                                          Error **errp)
{
    CharDriverState *chr = NULL;
    NetCharDriver *s = NULL;

    chr = qemu_chr_alloc(driver, backend, errp);
    if (!chr) {
        return NULL;
    }
    s = g_new0(NetCharDriver, 1);

    s->ioc = QIO_CHANNEL(sioc);
    s->bufcnt = 0;
    s->bufptr = 0;
    chr->opaque = s;
    /* be isn't opened until we get a connection */
    *be_opened = false;
    return chr;
}

/***********************************************************/
/* TCP Net console */

@@ -4614,8 +4551,23 @@ static CharDriverState *qmp_chardev_open_serial(const CharDriver *driver,
{
    ChardevHostdev *serial = backend->u.serial.data;
    ChardevCommon *common = qapi_ChardevHostdev_base(serial);
    CharDriverState *chr;
    WinCharState *s;

    chr = qemu_chr_alloc(driver, common, errp);
    if (!chr) {
        return NULL;
    }

    s = g_new0(WinCharState, 1);
    chr->opaque = s;
    if (win_chr_init(chr, serial->device, errp) < 0) {
        g_free(s);
        qemu_chr_free_common(chr);
        return NULL;
    }

    return qemu_chr_open_win_path(driver, serial->device, common, errp);
    return chr;
}

#else /* WIN32 */
@@ -4684,8 +4636,9 @@ static CharDriverState *qmp_chardev_open_serial(const CharDriver *driver,
        return NULL;
    }
    qemu_set_nonblock(fd);
    tty_serial_init(fd, 115200, 'N', 8, 1);

    return qemu_chr_open_tty_fd(driver, fd, common, be_opened, errp);
    return qemu_chr_open_fd(driver, fd, fd, common, errp);
}
#endif

@@ -4941,6 +4894,7 @@ static CharDriverState *qmp_chardev_open_udp(const CharDriver *driver,
    QIOChannelSocket *sioc = qio_channel_socket_new();
    char *name;
    CharDriverState *chr;
    NetCharDriver *s;

    if (qio_channel_socket_dgram_sync(sioc,
                                      udp->local, udp->remote,
@@ -4949,12 +4903,21 @@ static CharDriverState *qmp_chardev_open_udp(const CharDriver *driver,
        return NULL;
    }

    chr = qemu_chr_open_udp(driver, sioc, common, be_opened, errp);
    chr = qemu_chr_alloc(driver, common, errp);
    if (!chr) {
        return NULL;
    }

    name = g_strdup_printf("chardev-udp-%s", chr->label);
    qio_channel_set_name(QIO_CHANNEL(sioc), name);
    g_free(name);

    s = g_new0(NetCharDriver, 1);
    s->ioc = QIO_CHANNEL(sioc);
    chr->opaque = s;
    /* be isn't opened until we get a connection */
    *be_opened = false;

    return chr;
}