[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 12/13] serial: move TIOCM update to a separate fu
From: |
Anton Nefedov |
Subject: |
[Qemu-devel] [PATCH v5 12/13] serial: move TIOCM update to a separate function |
Date: |
Wed, 5 Jul 2017 17:02:03 +0300 |
will be used by the following patch
Signed-off-by: Anton Nefedov <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
---
hw/char/serial.c | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/hw/char/serial.c b/hw/char/serial.c
index ab14ca4..e47f0b6 100644
--- a/hw/char/serial.c
+++ b/hw/char/serial.c
@@ -312,6 +312,24 @@ static void serial_write_fcr(SerialState *s, uint8_t val)
}
}
+static void serial_update_tiocm(SerialState *s)
+{
+ int flags;
+
+ qemu_chr_fe_ioctl(&s->chr, CHR_IOCTL_SERIAL_GET_TIOCM, &flags);
+
+ flags &= ~(CHR_TIOCM_RTS | CHR_TIOCM_DTR);
+
+ if (s->mcr & UART_MCR_RTS) {
+ flags |= CHR_TIOCM_RTS;
+ }
+ if (s->mcr & UART_MCR_DTR) {
+ flags |= CHR_TIOCM_DTR;
+ }
+
+ qemu_chr_fe_ioctl(&s->chr, CHR_IOCTL_SERIAL_SET_TIOCM, &flags);
+}
+
static void serial_ioport_write(void *opaque, hwaddr addr, uint64_t val,
unsigned size)
{
@@ -426,24 +444,13 @@ static void serial_ioport_write(void *opaque, hwaddr
addr, uint64_t val,
break;
case 4:
{
- int flags;
int old_mcr = s->mcr;
s->mcr = val & 0x1f;
if (val & UART_MCR_LOOP)
break;
if (s->poll_msl >= 0 && old_mcr != s->mcr) {
-
- qemu_chr_fe_ioctl(&s->chr, CHR_IOCTL_SERIAL_GET_TIOCM, &flags);
-
- flags &= ~(CHR_TIOCM_RTS | CHR_TIOCM_DTR);
-
- if (val & UART_MCR_RTS)
- flags |= CHR_TIOCM_RTS;
- if (val & UART_MCR_DTR)
- flags |= CHR_TIOCM_DTR;
-
- qemu_chr_fe_ioctl(&s->chr, CHR_IOCTL_SERIAL_SET_TIOCM, &flags);
+ serial_update_tiocm(s);
/* Update the modem status after a one-character-send
wait-time, since there may be a response
from the device/computer at the other end of the serial
line */
timer_mod(s->modem_status_poll,
qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + s->char_transmit_time);
--
2.7.4
- Re: [Qemu-devel] [PATCH v5 03/13] char: chardevice hotswap, (continued)
- [Qemu-devel] [PATCH v5 05/13] char: avoid chardevice direct access, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 01/13] char: move QemuOpts->ChardevBackend translation to a separate func, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 04/13] char: forbid direct chardevice access for hotswap devices, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 07/13] test-char: split char_udp_test, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 02/13] char: add backend hotswap handler, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 09/13] test-char: add hotswap test, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 06/13] test-char: destroy chardev-udp after test, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 08/13] test-char: split char_file_test, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 12/13] serial: move TIOCM update to a separate function,
Anton Nefedov <=
- [Qemu-devel] [PATCH v5 13/13] serial: chardev hotswap support, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 10/13] hmp: add hmp analogue for qmp-chardev-change, Anton Nefedov, 2017/07/05
- [Qemu-devel] [PATCH v5 11/13] virtio-console: chardev hotswap support, Anton Nefedov, 2017/07/05
- Re: [Qemu-devel] [PATCH v5 00/13] chardevice hotswap, Paolo Bonzini, 2017/07/05