diff options
author | Marc-André Lureau | 2022-04-25 15:39:06 +0200 |
---|---|---|
committer | Marc-André Lureau | 2022-05-03 13:51:52 +0200 |
commit | b84bb4dfe5d03b40c91260db8ee07d65809fc35f (patch) | |
tree | 16e770c0a41aa2cd5a848572633b3b9f7a8d2359 /chardev | |
parent | io: make qio_channel_command_new_pid() static (diff) | |
download | qemu-b84bb4dfe5d03b40c91260db8ee07d65809fc35f.tar.gz qemu-b84bb4dfe5d03b40c91260db8ee07d65809fc35f.tar.xz qemu-b84bb4dfe5d03b40c91260db8ee07d65809fc35f.zip |
chardev: replace qemu_set_nonblock()
Those calls are either for non-socket fd, or are POSIX-specific. Use the
dedicated GLib API. (qemu_set_nonblock() is for socket-like)
(this is a preliminary patch before renaming qemu_set_nonblock())
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Diffstat (limited to 'chardev')
-rw-r--r-- | chardev/char-fd.c | 4 | ||||
-rw-r--r-- | chardev/char-pty.c | 5 | ||||
-rw-r--r-- | chardev/char-serial.c | 5 | ||||
-rw-r--r-- | chardev/char-stdio.c | 5 |
4 files changed, 14 insertions, 5 deletions
diff --git a/chardev/char-fd.c b/chardev/char-fd.c index 6ec9682b22..cf78454841 100644 --- a/chardev/char-fd.c +++ b/chardev/char-fd.c @@ -212,8 +212,8 @@ void qemu_chr_open_fd(Chardev *chr, FDChardev *s = FD_CHARDEV(chr); g_autofree char *name = NULL; - if (fd_out >= 0) { - qemu_set_nonblock(fd_out); + if (fd_out >= 0 && !g_unix_set_fd_nonblocking(fd_out, true, NULL)) { + assert(!"Failed to set FD nonblocking"); } if (fd_out == fd_in && fd_in >= 0) { diff --git a/chardev/char-pty.c b/chardev/char-pty.c index 1e2863f532..53f25c6bbd 100644 --- a/chardev/char-pty.c +++ b/chardev/char-pty.c @@ -324,7 +324,10 @@ static void char_pty_open(Chardev *chr, } close(slave_fd); - qemu_set_nonblock(master_fd); + if (!g_unix_set_fd_nonblocking(master_fd, true, NULL)) { + error_setg_errno(errp, errno, "Failed to set FD nonblocking"); + return; + } chr->filename = g_strdup_printf("pty:%s", pty_name); qemu_printf("char device redirected to %s (label %s)\n", diff --git a/chardev/char-serial.c b/chardev/char-serial.c index 7c3d84ae24..4b0b83d5b4 100644 --- a/chardev/char-serial.c +++ b/chardev/char-serial.c @@ -271,7 +271,10 @@ static void qmp_chardev_open_serial(Chardev *chr, if (fd < 0) { return; } - qemu_set_nonblock(fd); + if (!g_unix_set_fd_nonblocking(fd, true, NULL)) { + error_setg_errno(errp, errno, "Failed to set FD nonblocking"); + return; + } tty_serial_init(fd, 115200, 'N', 8, 1); qemu_chr_open_fd(chr, fd, fd); diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c index 403da308c9..3c648678ab 100644 --- a/chardev/char-stdio.c +++ b/chardev/char-stdio.c @@ -103,7 +103,10 @@ static void qemu_chr_open_stdio(Chardev *chr, stdio_in_use = true; old_fd0_flags = fcntl(0, F_GETFL); tcgetattr(0, &oldtty); - qemu_set_nonblock(0); + if (!g_unix_set_fd_nonblocking(0, true, NULL)) { + error_setg_errno(errp, errno, "Failed to set FD nonblocking"); + return; + } atexit(term_exit); memset(&act, 0, sizeof(act)); |