mirror of
https://github.com/qemu/qemu.git
synced 2025-08-09 19:15:32 +00:00
chardev: Shorten references into ChardevBackend
An upcoming patch will alter how simple unions, like ChardevBackend, are laid out, which will impact all lines of the form 'backend->u.XXX' (expanding it to the longer 'backend->u.XXX.data'). For better legibility in that patch, and less need for line wrapping, it's better to use a temporary variable to reduce the effect of a layout change to just the variable initializations, rather than every reference within a ChardevBackend. It doesn't hurt that this also makes the code more consistent: some clients touched here already had a temporary variable but weren't using it. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-By: Daniel P. Berrange <berrange@redhat.com> Message-Id: <1457021813-10704-6-git-send-email-eblake@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
9ee86b8526
commit
f194a1ae53
122
qemu-char.c
122
qemu-char.c
@ -724,7 +724,7 @@ static CharDriverState *qemu_chr_open_mux(const char *id,
|
|||||||
ChardevMux *mux = backend->u.mux;
|
ChardevMux *mux = backend->u.mux;
|
||||||
CharDriverState *chr, *drv;
|
CharDriverState *chr, *drv;
|
||||||
MuxDriver *d;
|
MuxDriver *d;
|
||||||
ChardevCommon *common = qapi_ChardevMux_base(backend->u.mux);
|
ChardevCommon *common = qapi_ChardevMux_base(mux);
|
||||||
|
|
||||||
drv = qemu_chr_find(mux->chardev);
|
drv = qemu_chr_find(mux->chardev);
|
||||||
if (drv == NULL) {
|
if (drv == NULL) {
|
||||||
@ -1043,7 +1043,7 @@ static CharDriverState *qemu_chr_open_pipe(const char *id,
|
|||||||
char *filename_in;
|
char *filename_in;
|
||||||
char *filename_out;
|
char *filename_out;
|
||||||
const char *filename = opts->device;
|
const char *filename = opts->device;
|
||||||
ChardevCommon *common = qapi_ChardevHostdev_base(backend->u.pipe);
|
ChardevCommon *common = qapi_ChardevHostdev_base(opts);
|
||||||
|
|
||||||
|
|
||||||
filename_in = g_strdup_printf("%s.in", filename);
|
filename_in = g_strdup_printf("%s.in", filename);
|
||||||
@ -1123,7 +1123,7 @@ static CharDriverState *qemu_chr_open_stdio(const char *id,
|
|||||||
ChardevStdio *opts = backend->u.stdio;
|
ChardevStdio *opts = backend->u.stdio;
|
||||||
CharDriverState *chr;
|
CharDriverState *chr;
|
||||||
struct sigaction act;
|
struct sigaction act;
|
||||||
ChardevCommon *common = qapi_ChardevStdio_base(backend->u.stdio);
|
ChardevCommon *common = qapi_ChardevStdio_base(opts);
|
||||||
|
|
||||||
if (is_daemonized()) {
|
if (is_daemonized()) {
|
||||||
error_setg(errp, "cannot use stdio with -daemonize");
|
error_setg(errp, "cannot use stdio with -daemonize");
|
||||||
@ -2141,7 +2141,7 @@ static CharDriverState *qemu_chr_open_pipe(const char *id,
|
|||||||
const char *filename = opts->device;
|
const char *filename = opts->device;
|
||||||
CharDriverState *chr;
|
CharDriverState *chr;
|
||||||
WinCharState *s;
|
WinCharState *s;
|
||||||
ChardevCommon *common = qapi_ChardevHostdev_base(backend->u.pipe);
|
ChardevCommon *common = qapi_ChardevHostdev_base(opts);
|
||||||
|
|
||||||
chr = qemu_chr_alloc(common, errp);
|
chr = qemu_chr_alloc(common, errp);
|
||||||
if (!chr) {
|
if (!chr) {
|
||||||
@ -3216,7 +3216,7 @@ static CharDriverState *qemu_chr_open_ringbuf(const char *id,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
ChardevRingbuf *opts = backend->u.ringbuf;
|
ChardevRingbuf *opts = backend->u.ringbuf;
|
||||||
ChardevCommon *common = qapi_ChardevRingbuf_base(backend->u.ringbuf);
|
ChardevCommon *common = qapi_ChardevRingbuf_base(opts);
|
||||||
CharDriverState *chr;
|
CharDriverState *chr;
|
||||||
RingBufCharDriver *d;
|
RingBufCharDriver *d;
|
||||||
|
|
||||||
@ -3506,26 +3506,29 @@ static void qemu_chr_parse_file_out(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
const char *path = qemu_opt_get(opts, "path");
|
const char *path = qemu_opt_get(opts, "path");
|
||||||
|
ChardevFile *file;
|
||||||
|
|
||||||
if (path == NULL) {
|
if (path == NULL) {
|
||||||
error_setg(errp, "chardev: file: no filename given");
|
error_setg(errp, "chardev: file: no filename given");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
backend->u.file = g_new0(ChardevFile, 1);
|
file = backend->u.file = g_new0(ChardevFile, 1);
|
||||||
qemu_chr_parse_common(opts, qapi_ChardevFile_base(backend->u.file));
|
qemu_chr_parse_common(opts, qapi_ChardevFile_base(file));
|
||||||
backend->u.file->out = g_strdup(path);
|
file->out = g_strdup(path);
|
||||||
|
|
||||||
backend->u.file->has_append = true;
|
file->has_append = true;
|
||||||
backend->u.file->append = qemu_opt_get_bool(opts, "append", false);
|
file->append = qemu_opt_get_bool(opts, "append", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
|
static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
backend->u.stdio = g_new0(ChardevStdio, 1);
|
ChardevStdio *stdio;
|
||||||
qemu_chr_parse_common(opts, qapi_ChardevStdio_base(backend->u.stdio));
|
|
||||||
backend->u.stdio->has_signal = true;
|
stdio = backend->u.stdio = g_new0(ChardevStdio, 1);
|
||||||
backend->u.stdio->signal = qemu_opt_get_bool(opts, "signal", true);
|
qemu_chr_parse_common(opts, qapi_ChardevStdio_base(stdio));
|
||||||
|
stdio->has_signal = true;
|
||||||
|
stdio->signal = qemu_opt_get_bool(opts, "signal", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_CHARDEV_SERIAL
|
#ifdef HAVE_CHARDEV_SERIAL
|
||||||
@ -3533,14 +3536,15 @@ static void qemu_chr_parse_serial(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
const char *device = qemu_opt_get(opts, "path");
|
const char *device = qemu_opt_get(opts, "path");
|
||||||
|
ChardevHostdev *serial;
|
||||||
|
|
||||||
if (device == NULL) {
|
if (device == NULL) {
|
||||||
error_setg(errp, "chardev: serial/tty: no device path given");
|
error_setg(errp, "chardev: serial/tty: no device path given");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
backend->u.serial = g_new0(ChardevHostdev, 1);
|
serial = backend->u.serial = g_new0(ChardevHostdev, 1);
|
||||||
qemu_chr_parse_common(opts, qapi_ChardevHostdev_base(backend->u.serial));
|
qemu_chr_parse_common(opts, qapi_ChardevHostdev_base(serial));
|
||||||
backend->u.serial->device = g_strdup(device);
|
serial->device = g_strdup(device);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -3549,14 +3553,15 @@ static void qemu_chr_parse_parallel(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
const char *device = qemu_opt_get(opts, "path");
|
const char *device = qemu_opt_get(opts, "path");
|
||||||
|
ChardevHostdev *parallel;
|
||||||
|
|
||||||
if (device == NULL) {
|
if (device == NULL) {
|
||||||
error_setg(errp, "chardev: parallel: no device path given");
|
error_setg(errp, "chardev: parallel: no device path given");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
backend->u.parallel = g_new0(ChardevHostdev, 1);
|
parallel = backend->u.parallel = g_new0(ChardevHostdev, 1);
|
||||||
qemu_chr_parse_common(opts, qapi_ChardevHostdev_base(backend->u.parallel));
|
qemu_chr_parse_common(opts, qapi_ChardevHostdev_base(parallel));
|
||||||
backend->u.parallel->device = g_strdup(device);
|
parallel->device = g_strdup(device);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -3564,28 +3569,30 @@ static void qemu_chr_parse_pipe(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
const char *device = qemu_opt_get(opts, "path");
|
const char *device = qemu_opt_get(opts, "path");
|
||||||
|
ChardevHostdev *dev;
|
||||||
|
|
||||||
if (device == NULL) {
|
if (device == NULL) {
|
||||||
error_setg(errp, "chardev: pipe: no device path given");
|
error_setg(errp, "chardev: pipe: no device path given");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
backend->u.pipe = g_new0(ChardevHostdev, 1);
|
dev = backend->u.pipe = g_new0(ChardevHostdev, 1);
|
||||||
qemu_chr_parse_common(opts, qapi_ChardevHostdev_base(backend->u.pipe));
|
qemu_chr_parse_common(opts, qapi_ChardevHostdev_base(dev));
|
||||||
backend->u.pipe->device = g_strdup(device);
|
dev->device = g_strdup(device);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qemu_chr_parse_ringbuf(QemuOpts *opts, ChardevBackend *backend,
|
static void qemu_chr_parse_ringbuf(QemuOpts *opts, ChardevBackend *backend,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
int val;
|
int val;
|
||||||
|
ChardevRingbuf *ringbuf;
|
||||||
|
|
||||||
backend->u.ringbuf = g_new0(ChardevRingbuf, 1);
|
ringbuf = backend->u.ringbuf = g_new0(ChardevRingbuf, 1);
|
||||||
qemu_chr_parse_common(opts, qapi_ChardevRingbuf_base(backend->u.ringbuf));
|
qemu_chr_parse_common(opts, qapi_ChardevRingbuf_base(ringbuf));
|
||||||
|
|
||||||
val = qemu_opt_get_size(opts, "size", 0);
|
val = qemu_opt_get_size(opts, "size", 0);
|
||||||
if (val != 0) {
|
if (val != 0) {
|
||||||
backend->u.ringbuf->has_size = true;
|
ringbuf->has_size = true;
|
||||||
backend->u.ringbuf->size = val;
|
ringbuf->size = val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3593,14 +3600,15 @@ static void qemu_chr_parse_mux(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
const char *chardev = qemu_opt_get(opts, "chardev");
|
const char *chardev = qemu_opt_get(opts, "chardev");
|
||||||
|
ChardevMux *mux;
|
||||||
|
|
||||||
if (chardev == NULL) {
|
if (chardev == NULL) {
|
||||||
error_setg(errp, "chardev: mux: no chardev given");
|
error_setg(errp, "chardev: mux: no chardev given");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
backend->u.mux = g_new0(ChardevMux, 1);
|
mux = backend->u.mux = g_new0(ChardevMux, 1);
|
||||||
qemu_chr_parse_common(opts, qapi_ChardevMux_base(backend->u.mux));
|
qemu_chr_parse_common(opts, qapi_ChardevMux_base(mux));
|
||||||
backend->u.mux->chardev = g_strdup(chardev);
|
mux->chardev = g_strdup(chardev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
|
static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
|
||||||
@ -3616,6 +3624,7 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
const char *port = qemu_opt_get(opts, "port");
|
const char *port = qemu_opt_get(opts, "port");
|
||||||
const char *tls_creds = qemu_opt_get(opts, "tls-creds");
|
const char *tls_creds = qemu_opt_get(opts, "tls-creds");
|
||||||
SocketAddress *addr;
|
SocketAddress *addr;
|
||||||
|
ChardevSocket *sock;
|
||||||
|
|
||||||
if (!path) {
|
if (!path) {
|
||||||
if (!host) {
|
if (!host) {
|
||||||
@ -3633,20 +3642,20 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
backend->u.socket = g_new0(ChardevSocket, 1);
|
sock = backend->u.socket = g_new0(ChardevSocket, 1);
|
||||||
qemu_chr_parse_common(opts, qapi_ChardevSocket_base(backend->u.socket));
|
qemu_chr_parse_common(opts, qapi_ChardevSocket_base(sock));
|
||||||
|
|
||||||
backend->u.socket->has_nodelay = true;
|
sock->has_nodelay = true;
|
||||||
backend->u.socket->nodelay = do_nodelay;
|
sock->nodelay = do_nodelay;
|
||||||
backend->u.socket->has_server = true;
|
sock->has_server = true;
|
||||||
backend->u.socket->server = is_listen;
|
sock->server = is_listen;
|
||||||
backend->u.socket->has_telnet = true;
|
sock->has_telnet = true;
|
||||||
backend->u.socket->telnet = is_telnet;
|
sock->telnet = is_telnet;
|
||||||
backend->u.socket->has_wait = true;
|
sock->has_wait = true;
|
||||||
backend->u.socket->wait = is_waitconnect;
|
sock->wait = is_waitconnect;
|
||||||
backend->u.socket->has_reconnect = true;
|
sock->has_reconnect = true;
|
||||||
backend->u.socket->reconnect = reconnect;
|
sock->reconnect = reconnect;
|
||||||
backend->u.socket->tls_creds = g_strdup(tls_creds);
|
sock->tls_creds = g_strdup(tls_creds);
|
||||||
|
|
||||||
addr = g_new0(SocketAddress, 1);
|
addr = g_new0(SocketAddress, 1);
|
||||||
if (path) {
|
if (path) {
|
||||||
@ -3665,7 +3674,7 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
addr->u.inet->has_ipv6 = qemu_opt_get(opts, "ipv6");
|
addr->u.inet->has_ipv6 = qemu_opt_get(opts, "ipv6");
|
||||||
addr->u.inet->ipv6 = qemu_opt_get_bool(opts, "ipv6", 0);
|
addr->u.inet->ipv6 = qemu_opt_get_bool(opts, "ipv6", 0);
|
||||||
}
|
}
|
||||||
backend->u.socket->addr = addr;
|
sock->addr = addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qemu_chr_parse_udp(QemuOpts *opts, ChardevBackend *backend,
|
static void qemu_chr_parse_udp(QemuOpts *opts, ChardevBackend *backend,
|
||||||
@ -3677,6 +3686,7 @@ static void qemu_chr_parse_udp(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
const char *localport = qemu_opt_get(opts, "localport");
|
const char *localport = qemu_opt_get(opts, "localport");
|
||||||
bool has_local = false;
|
bool has_local = false;
|
||||||
SocketAddress *addr;
|
SocketAddress *addr;
|
||||||
|
ChardevUdp *udp;
|
||||||
|
|
||||||
if (host == NULL || strlen(host) == 0) {
|
if (host == NULL || strlen(host) == 0) {
|
||||||
host = "localhost";
|
host = "localhost";
|
||||||
@ -3696,8 +3706,8 @@ static void qemu_chr_parse_udp(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
has_local = true;
|
has_local = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
backend->u.udp = g_new0(ChardevUdp, 1);
|
udp = backend->u.udp = g_new0(ChardevUdp, 1);
|
||||||
qemu_chr_parse_common(opts, qapi_ChardevUdp_base(backend->u.udp));
|
qemu_chr_parse_common(opts, qapi_ChardevUdp_base(udp));
|
||||||
|
|
||||||
addr = g_new0(SocketAddress, 1);
|
addr = g_new0(SocketAddress, 1);
|
||||||
addr->type = SOCKET_ADDRESS_KIND_INET;
|
addr->type = SOCKET_ADDRESS_KIND_INET;
|
||||||
@ -3708,16 +3718,16 @@ static void qemu_chr_parse_udp(QemuOpts *opts, ChardevBackend *backend,
|
|||||||
addr->u.inet->ipv4 = qemu_opt_get_bool(opts, "ipv4", 0);
|
addr->u.inet->ipv4 = qemu_opt_get_bool(opts, "ipv4", 0);
|
||||||
addr->u.inet->has_ipv6 = qemu_opt_get(opts, "ipv6");
|
addr->u.inet->has_ipv6 = qemu_opt_get(opts, "ipv6");
|
||||||
addr->u.inet->ipv6 = qemu_opt_get_bool(opts, "ipv6", 0);
|
addr->u.inet->ipv6 = qemu_opt_get_bool(opts, "ipv6", 0);
|
||||||
backend->u.udp->remote = addr;
|
udp->remote = addr;
|
||||||
|
|
||||||
if (has_local) {
|
if (has_local) {
|
||||||
backend->u.udp->has_local = true;
|
udp->has_local = true;
|
||||||
addr = g_new0(SocketAddress, 1);
|
addr = g_new0(SocketAddress, 1);
|
||||||
addr->type = SOCKET_ADDRESS_KIND_INET;
|
addr->type = SOCKET_ADDRESS_KIND_INET;
|
||||||
addr->u.inet = g_new0(InetSocketAddress, 1);
|
addr->u.inet = g_new0(InetSocketAddress, 1);
|
||||||
addr->u.inet->host = g_strdup(localaddr);
|
addr->u.inet->host = g_strdup(localaddr);
|
||||||
addr->u.inet->port = g_strdup(localport);
|
addr->u.inet->port = g_strdup(localport);
|
||||||
backend->u.udp->local = addr;
|
udp->local = addr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4128,7 +4138,7 @@ static CharDriverState *qmp_chardev_open_file(const char *id,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
ChardevFile *file = backend->u.file;
|
ChardevFile *file = backend->u.file;
|
||||||
ChardevCommon *common = qapi_ChardevFile_base(backend->u.file);
|
ChardevCommon *common = qapi_ChardevFile_base(file);
|
||||||
HANDLE out;
|
HANDLE out;
|
||||||
|
|
||||||
if (file->has_in) {
|
if (file->has_in) {
|
||||||
@ -4151,7 +4161,7 @@ static CharDriverState *qmp_chardev_open_serial(const char *id,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
ChardevHostdev *serial = backend->u.serial;
|
ChardevHostdev *serial = backend->u.serial;
|
||||||
ChardevCommon *common = qapi_ChardevHostdev_base(backend->u.serial);
|
ChardevCommon *common = qapi_ChardevHostdev_base(serial);
|
||||||
return qemu_chr_open_win_path(serial->device, common, errp);
|
return qemu_chr_open_win_path(serial->device, common, errp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4175,7 +4185,7 @@ static CharDriverState *qmp_chardev_open_file(const char *id,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
ChardevFile *file = backend->u.file;
|
ChardevFile *file = backend->u.file;
|
||||||
ChardevCommon *common = qapi_ChardevFile_base(backend->u.file);
|
ChardevCommon *common = qapi_ChardevFile_base(file);
|
||||||
int flags, in = -1, out;
|
int flags, in = -1, out;
|
||||||
|
|
||||||
flags = O_WRONLY | O_CREAT | O_BINARY;
|
flags = O_WRONLY | O_CREAT | O_BINARY;
|
||||||
@ -4209,7 +4219,7 @@ static CharDriverState *qmp_chardev_open_serial(const char *id,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
ChardevHostdev *serial = backend->u.serial;
|
ChardevHostdev *serial = backend->u.serial;
|
||||||
ChardevCommon *common = qapi_ChardevHostdev_base(backend->u.serial);
|
ChardevCommon *common = qapi_ChardevHostdev_base(serial);
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
fd = qmp_chardev_open_file_source(serial->device, O_RDWR, errp);
|
fd = qmp_chardev_open_file_source(serial->device, O_RDWR, errp);
|
||||||
@ -4228,7 +4238,7 @@ static CharDriverState *qmp_chardev_open_parallel(const char *id,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
ChardevHostdev *parallel = backend->u.parallel;
|
ChardevHostdev *parallel = backend->u.parallel;
|
||||||
ChardevCommon *common = qapi_ChardevHostdev_base(backend->u.parallel);
|
ChardevCommon *common = qapi_ChardevHostdev_base(parallel);
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
fd = qmp_chardev_open_file_source(parallel->device, O_RDWR, errp);
|
fd = qmp_chardev_open_file_source(parallel->device, O_RDWR, errp);
|
||||||
@ -4280,7 +4290,7 @@ static CharDriverState *qmp_chardev_open_socket(const char *id,
|
|||||||
bool is_telnet = sock->has_telnet ? sock->telnet : false;
|
bool is_telnet = sock->has_telnet ? sock->telnet : false;
|
||||||
bool is_waitconnect = sock->has_wait ? sock->wait : false;
|
bool is_waitconnect = sock->has_wait ? sock->wait : false;
|
||||||
int64_t reconnect = sock->has_reconnect ? sock->reconnect : 0;
|
int64_t reconnect = sock->has_reconnect ? sock->reconnect : 0;
|
||||||
ChardevCommon *common = qapi_ChardevSocket_base(backend->u.socket);
|
ChardevCommon *common = qapi_ChardevSocket_base(sock);
|
||||||
|
|
||||||
chr = qemu_chr_alloc(common, errp);
|
chr = qemu_chr_alloc(common, errp);
|
||||||
if (!chr) {
|
if (!chr) {
|
||||||
@ -4380,7 +4390,7 @@ static CharDriverState *qmp_chardev_open_udp(const char *id,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
ChardevUdp *udp = backend->u.udp;
|
ChardevUdp *udp = backend->u.udp;
|
||||||
ChardevCommon *common = qapi_ChardevUdp_base(backend->u.udp);
|
ChardevCommon *common = qapi_ChardevUdp_base(udp);
|
||||||
QIOChannelSocket *sioc = qio_channel_socket_new();
|
QIOChannelSocket *sioc = qio_channel_socket_new();
|
||||||
|
|
||||||
if (qio_channel_socket_dgram_sync(sioc,
|
if (qio_channel_socket_dgram_sync(sioc,
|
||||||
|
Loading…
Reference in New Issue
Block a user