From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496047669843752.8003523688201; Mon, 29 May 2017 01:47:49 -0700 (PDT) Received: from localhost ([::1]:47526 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGL6-0007v5-8B for importer@patchew.org; Mon, 29 May 2017 04:47:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59708) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGJP-0006dP-Bd for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGJN-0000nZ-Qw for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:03 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48464) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGJN-0000nQ-I3 for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:01 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 60D2185545; Mon, 29 May 2017 08:46:00 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 803F21812D; Mon, 29 May 2017 08:45:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 60D2185545 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 60D2185545 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:33 +0400 Message-Id: <20170529084546.26500-2-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 29 May 2017 08:46:00 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 01/14] char-win: simplify win_chr_read() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" win_chr_read_poll() is always used before win_chr_read(). We can easily fold win_chr_readfile() too. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- chardev/char-win.h | 2 +- chardev/char-win.c | 35 +++++++++-------------------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/chardev/char-win.h b/chardev/char-win.h index d78a7d7972..73a0e3caef 100644 --- a/chardev/char-win.h +++ b/chardev/char-win.h @@ -28,7 +28,7 @@ =20 typedef struct { Chardev parent; - int max_size; + HANDLE hcom, hrecv, hsend; OVERLAPPED orecv; BOOL fpipe; diff --git a/chardev/char-win.c b/chardev/char-win.c index e4b6957ded..a46d878ef8 100644 --- a/chardev/char-win.c +++ b/chardev/char-win.c @@ -26,14 +26,21 @@ #include "qapi/error.h" #include "char-win.h" =20 -static void win_chr_readfile(Chardev *chr) +static void win_chr_read(Chardev *chr) { WinChardev *s =3D WIN_CHARDEV(chr); - + int max_size =3D qemu_chr_be_can_write(chr); int ret, err; uint8_t buf[CHR_READ_BUF_LEN]; DWORD size; =20 + if (s->len > max_size) { + s->len =3D max_size; + } + if (s->len =3D=3D 0) { + return; + } + ZeroMemory(&s->orecv, sizeof(s->orecv)); s->orecv.hEvent =3D s->hrecv; ret =3D ReadFile(s->hcom, buf, s->len, &size, &s->orecv); @@ -49,28 +56,6 @@ static void win_chr_readfile(Chardev *chr) } } =20 -static void win_chr_read(Chardev *chr) -{ - WinChardev *s =3D WIN_CHARDEV(chr); - - if (s->len > s->max_size) { - s->len =3D s->max_size; - } - if (s->len =3D=3D 0) { - return; - } - - win_chr_readfile(chr); -} - -static int win_chr_read_poll(Chardev *chr) -{ - WinChardev *s =3D WIN_CHARDEV(chr); - - s->max_size =3D qemu_chr_be_can_write(chr); - return s->max_size; -} - static int win_chr_poll(void *opaque) { Chardev *chr =3D CHARDEV(opaque); @@ -81,7 +66,6 @@ static int win_chr_poll(void *opaque) ClearCommError(s->hcom, &comerr, &status); if (status.cbInQue > 0) { s->len =3D status.cbInQue; - win_chr_read_poll(chr); win_chr_read(chr); return 1; } @@ -163,7 +147,6 @@ int win_chr_pipe_poll(void *opaque) PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL); if (size > 0) { s->len =3D size; - win_chr_read_poll(chr); win_chr_read(chr); return 1; } --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496047685858668.9626939598395; Mon, 29 May 2017 01:48:05 -0700 (PDT) Received: from localhost ([::1]:47527 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGLL-00087e-68 for importer@patchew.org; Mon, 29 May 2017 04:48:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59749) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGJZ-0006lP-PL for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGJW-0000pp-Nw for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:13 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34554) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGJW-0000pg-Hu for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:10 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 791AB4E359; Mon, 29 May 2017 08:46:09 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5CADB18347; Mon, 29 May 2017 08:46:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 791AB4E359 Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 791AB4E359 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:34 +0400 Message-Id: <20170529084546.26500-3-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 29 May 2017 08:46:09 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 02/14] char-win: remove WinChardev.len X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The "len" argument can be passed directly to win_chr_read() Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- chardev/char-win.h | 1 - chardev/char-win.c | 16 +++++++--------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/chardev/char-win.h b/chardev/char-win.h index 73a0e3caef..70215e04c2 100644 --- a/chardev/char-win.h +++ b/chardev/char-win.h @@ -32,7 +32,6 @@ typedef struct { HANDLE hcom, hrecv, hsend; OVERLAPPED orecv; BOOL fpipe; - DWORD len; =20 /* Protected by the Chardev chr_write_lock. */ OVERLAPPED osend; diff --git a/chardev/char-win.c b/chardev/char-win.c index a46d878ef8..5e7daeeae1 100644 --- a/chardev/char-win.c +++ b/chardev/char-win.c @@ -26,7 +26,7 @@ #include "qapi/error.h" #include "char-win.h" =20 -static void win_chr_read(Chardev *chr) +static void win_chr_read(Chardev *chr, DWORD len) { WinChardev *s =3D WIN_CHARDEV(chr); int max_size =3D qemu_chr_be_can_write(chr); @@ -34,16 +34,16 @@ static void win_chr_read(Chardev *chr) uint8_t buf[CHR_READ_BUF_LEN]; DWORD size; =20 - if (s->len > max_size) { - s->len =3D max_size; + if (len > max_size) { + len =3D max_size; } - if (s->len =3D=3D 0) { + if (len =3D=3D 0) { return; } =20 ZeroMemory(&s->orecv, sizeof(s->orecv)); s->orecv.hEvent =3D s->hrecv; - ret =3D ReadFile(s->hcom, buf, s->len, &size, &s->orecv); + ret =3D ReadFile(s->hcom, buf, len, &size, &s->orecv); if (!ret) { err =3D GetLastError(); if (err =3D=3D ERROR_IO_PENDING) { @@ -65,8 +65,7 @@ static int win_chr_poll(void *opaque) =20 ClearCommError(s->hcom, &comerr, &status); if (status.cbInQue > 0) { - s->len =3D status.cbInQue; - win_chr_read(chr); + win_chr_read(chr, status.cbInQue); return 1; } return 0; @@ -146,8 +145,7 @@ int win_chr_pipe_poll(void *opaque) =20 PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL); if (size > 0) { - s->len =3D size; - win_chr_read(chr); + win_chr_read(chr, size); return 1; } return 0; --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496047693206229.09899997807224; Mon, 29 May 2017 01:48:13 -0700 (PDT) Received: from localhost ([::1]:47528 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGLT-0008Fz-OS for importer@patchew.org; Mon, 29 May 2017 04:48:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59761) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGJf-0006os-2S for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGJe-0000qS-8a for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53752) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGJd-0000qO-W7 for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:18 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E13E9BDD4; Mon, 29 May 2017 08:46:16 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id CE59C17CD1; Mon, 29 May 2017 08:46:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E13E9BDD4 Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com E13E9BDD4 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:35 +0400 Message-Id: <20170529084546.26500-4-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 29 May 2017 08:46:17 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 03/14] char-win: rename win_chr_init/poll win_chr_serial_init/poll X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Those 2 functions are specific to serial chardev, make it more clear. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- chardev/char-win.h | 2 +- chardev/char-serial.c | 2 +- chardev/char-win.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/chardev/char-win.h b/chardev/char-win.h index 70215e04c2..e0b3839a77 100644 --- a/chardev/char-win.h +++ b/chardev/char-win.h @@ -46,7 +46,7 @@ typedef struct { #define WIN_CHARDEV(obj) OBJECT_CHECK(WinChardev, (obj), TYPE_CHARDEV_WIN) =20 void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out); -int win_chr_init(Chardev *chr, const char *filename, Error **errp); +int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp); int win_chr_pipe_poll(void *opaque); =20 #endif /* CHAR_WIN_H */ diff --git a/chardev/char-serial.c b/chardev/char-serial.c index 094e08dca5..fef3a91c77 100644 --- a/chardev/char-serial.c +++ b/chardev/char-serial.c @@ -45,7 +45,7 @@ static void qmp_chardev_open_serial(Chardev *chr, { ChardevHostdev *serial =3D backend->u.serial.data; =20 - win_chr_init(chr, serial->device, errp); + win_chr_serial_init(chr, serial->device, errp); } =20 #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \ diff --git a/chardev/char-win.c b/chardev/char-win.c index 5e7daeeae1..11abad1521 100644 --- a/chardev/char-win.c +++ b/chardev/char-win.c @@ -56,7 +56,7 @@ static void win_chr_read(Chardev *chr, DWORD len) } } =20 -static int win_chr_poll(void *opaque) +static int win_chr_serial_poll(void *opaque) { Chardev *chr =3D CHARDEV(opaque); WinChardev *s =3D WIN_CHARDEV(opaque); @@ -71,7 +71,7 @@ static int win_chr_poll(void *opaque) return 0; } =20 -int win_chr_init(Chardev *chr, const char *filename, Error **errp) +int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp) { WinChardev *s =3D WIN_CHARDEV(chr); COMMCONFIG comcfg; @@ -130,7 +130,7 @@ int win_chr_init(Chardev *chr, const char *filename, Er= ror **errp) error_setg(errp, "Failed ClearCommError"); goto fail; } - qemu_add_polling_cb(win_chr_poll, chr); + qemu_add_polling_cb(win_chr_serial_poll, chr); return 0; =20 fail: @@ -208,7 +208,7 @@ static void char_win_finalize(Object *obj) if (s->fpipe) { qemu_del_polling_cb(win_chr_pipe_poll, chr); } else { - qemu_del_polling_cb(win_chr_poll, chr); + qemu_del_polling_cb(win_chr_serial_poll, chr); } =20 qemu_chr_be_event(chr, CHR_EVENT_CLOSED); --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496047834388538.2094505131178; Mon, 29 May 2017 01:50:34 -0700 (PDT) Received: from localhost ([::1]:47540 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGNk-0001m7-SN for importer@patchew.org; Mon, 29 May 2017 04:50:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59778) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGJn-0006v3-39 for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGJl-0000qp-TA for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34070) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGJl-0000qg-Jz for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:25 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 865F88123A; Mon, 29 May 2017 08:46:24 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 690BF174B0; Mon, 29 May 2017 08:46:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 865F88123A Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 865F88123A From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:36 +0400 Message-Id: <20170529084546.26500-5-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Mon, 29 May 2017 08:46:24 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 04/14] char-win: rename hcom->file X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" hcom is the name of the file handle, regardless of the actual chardev driver (serial, file, console etc..). Rename it to be more explicit. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- chardev/char-win.h | 2 +- chardev/char-pipe.c | 10 +++++----- chardev/char-win.c | 36 ++++++++++++++++++------------------ 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/chardev/char-win.h b/chardev/char-win.h index e0b3839a77..888be2b3ca 100644 --- a/chardev/char-win.h +++ b/chardev/char-win.h @@ -29,7 +29,7 @@ typedef struct { Chardev parent; =20 - HANDLE hcom, hrecv, hsend; + HANDLE file, hrecv, hsend; OVERLAPPED orecv; BOOL fpipe; =20 diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c index 54240c863d..aae950a22b 100644 --- a/chardev/char-pipe.c +++ b/chardev/char-pipe.c @@ -58,27 +58,27 @@ static int win_chr_pipe_init(Chardev *chr, const char *= filename, } =20 openname =3D g_strdup_printf("\\\\.\\pipe\\%s", filename); - s->hcom =3D CreateNamedPipe(openname, + s->file =3D CreateNamedPipe(openname, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, MAXCONNECT, NSENDBUF, NRECVBUF, NTIMEOUT, NU= LL); g_free(openname); - if (s->hcom =3D=3D INVALID_HANDLE_VALUE) { + if (s->file =3D=3D INVALID_HANDLE_VALUE) { error_setg(errp, "Failed CreateNamedPipe (%lu)", GetLastError()); - s->hcom =3D NULL; + s->file =3D NULL; goto fail; } =20 ZeroMemory(&ov, sizeof(ov)); ov.hEvent =3D CreateEvent(NULL, TRUE, FALSE, NULL); - ret =3D ConnectNamedPipe(s->hcom, &ov); + ret =3D ConnectNamedPipe(s->file, &ov); if (ret) { error_setg(errp, "Failed ConnectNamedPipe"); goto fail; } =20 - ret =3D GetOverlappedResult(s->hcom, &ov, &size, TRUE); + ret =3D GetOverlappedResult(s->file, &ov, &size, TRUE); if (!ret) { error_setg(errp, "Failed GetOverlappedResult"); if (ov.hEvent) { diff --git a/chardev/char-win.c b/chardev/char-win.c index 11abad1521..a7e3296909 100644 --- a/chardev/char-win.c +++ b/chardev/char-win.c @@ -43,11 +43,11 @@ static void win_chr_read(Chardev *chr, DWORD len) =20 ZeroMemory(&s->orecv, sizeof(s->orecv)); s->orecv.hEvent =3D s->hrecv; - ret =3D ReadFile(s->hcom, buf, len, &size, &s->orecv); + ret =3D ReadFile(s->file, buf, len, &size, &s->orecv); if (!ret) { err =3D GetLastError(); if (err =3D=3D ERROR_IO_PENDING) { - ret =3D GetOverlappedResult(s->hcom, &s->orecv, &size, TRUE); + ret =3D GetOverlappedResult(s->file, &s->orecv, &size, TRUE); } } =20 @@ -63,7 +63,7 @@ static int win_chr_serial_poll(void *opaque) COMSTAT status; DWORD comerr; =20 - ClearCommError(s->hcom, &comerr, &status); + ClearCommError(s->file, &comerr, &status); if (status.cbInQue > 0) { win_chr_read(chr, status.cbInQue); return 1; @@ -91,15 +91,15 @@ int win_chr_serial_init(Chardev *chr, const char *filen= ame, Error **errp) goto fail; } =20 - s->hcom =3D CreateFile(filename, GENERIC_READ | GENERIC_WRITE, 0, NULL, + s->file =3D CreateFile(filename, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); - if (s->hcom =3D=3D INVALID_HANDLE_VALUE) { + if (s->file =3D=3D INVALID_HANDLE_VALUE) { error_setg(errp, "Failed CreateFile (%lu)", GetLastError()); - s->hcom =3D NULL; + s->file =3D NULL; goto fail; } =20 - if (!SetupComm(s->hcom, NRECVBUF, NSENDBUF)) { + if (!SetupComm(s->file, NRECVBUF, NSENDBUF)) { error_setg(errp, "Failed SetupComm"); goto fail; } @@ -110,23 +110,23 @@ int win_chr_serial_init(Chardev *chr, const char *fil= ename, Error **errp) comcfg.dcb.DCBlength =3D sizeof(DCB); CommConfigDialog(filename, NULL, &comcfg); =20 - if (!SetCommState(s->hcom, &comcfg.dcb)) { + if (!SetCommState(s->file, &comcfg.dcb)) { error_setg(errp, "Failed SetCommState"); goto fail; } =20 - if (!SetCommMask(s->hcom, EV_ERR)) { + if (!SetCommMask(s->file, EV_ERR)) { error_setg(errp, "Failed SetCommMask"); goto fail; } =20 cto.ReadIntervalTimeout =3D MAXDWORD; - if (!SetCommTimeouts(s->hcom, &cto)) { + if (!SetCommTimeouts(s->file, &cto)) { error_setg(errp, "Failed SetCommTimeouts"); goto fail; } =20 - if (!ClearCommError(s->hcom, &err, &comstat)) { + if (!ClearCommError(s->file, &err, &comstat)) { error_setg(errp, "Failed ClearCommError"); goto fail; } @@ -143,7 +143,7 @@ int win_chr_pipe_poll(void *opaque) WinChardev *s =3D WIN_CHARDEV(opaque); DWORD size; =20 - PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL); + PeekNamedPipe(s->file, NULL, 0, NULL, &size, NULL); if (size > 0) { win_chr_read(chr, size); return 1; @@ -162,14 +162,14 @@ static int win_chr_write(Chardev *chr, const uint8_t = *buf, int len1) s->osend.hEvent =3D s->hsend; while (len > 0) { if (s->hsend) { - ret =3D WriteFile(s->hcom, buf, len, &size, &s->osend); + ret =3D WriteFile(s->file, buf, len, &size, &s->osend); } else { - ret =3D WriteFile(s->hcom, buf, len, &size, NULL); + ret =3D WriteFile(s->file, buf, len, &size, NULL); } if (!ret) { err =3D GetLastError(); if (err =3D=3D ERROR_IO_PENDING) { - ret =3D GetOverlappedResult(s->hcom, &s->osend, &size, TRU= E); + ret =3D GetOverlappedResult(s->file, &s->osend, &size, TRU= E); if (ret) { buf +=3D size; len -=3D size; @@ -202,8 +202,8 @@ static void char_win_finalize(Object *obj) if (s->hrecv) { CloseHandle(s->hrecv); } - if (s->hcom) { - CloseHandle(s->hcom); + if (s->file) { + CloseHandle(s->file); } if (s->fpipe) { qemu_del_polling_cb(win_chr_pipe_poll, chr); @@ -219,7 +219,7 @@ void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out) WinChardev *s =3D WIN_CHARDEV(chr); =20 s->skip_free =3D true; - s->hcom =3D fd_out; + s->file =3D fd_out; } =20 static void char_win_class_init(ObjectClass *oc, void *data) --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496047847103129.26133075942323; Mon, 29 May 2017 01:50:47 -0700 (PDT) Received: from localhost ([::1]:47541 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGNx-0001yy-Fy for importer@patchew.org; Mon, 29 May 2017 04:50:45 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59792) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGJu-00071O-7F for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGJr-0000rB-5h for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:34 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49110) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGJq-0000r7-Sn for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:31 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D047985542; Mon, 29 May 2017 08:46:29 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8AFE260BE2; Mon, 29 May 2017 08:46:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D047985542 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D047985542 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:37 +0400 Message-Id: <20170529084546.26500-6-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 29 May 2017 08:46:30 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 05/14] char-win: close file handle except with console X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Only the console handle shouldn't be closed, however, the "file" handle should. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- chardev/char-win.h | 5 ++--- chardev/char-console.c | 2 +- chardev/char-file.c | 2 +- chardev/char-win.c | 12 ++++-------- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/chardev/char-win.h b/chardev/char-win.h index 888be2b3ca..4994425e9e 100644 --- a/chardev/char-win.h +++ b/chardev/char-win.h @@ -29,14 +29,13 @@ typedef struct { Chardev parent; =20 + bool keep_open; /* console do not close file */ HANDLE file, hrecv, hsend; OVERLAPPED orecv; BOOL fpipe; =20 /* Protected by the Chardev chr_write_lock. */ OVERLAPPED osend; - /* FIXME: file/console do not finalize */ - bool skip_free; } WinChardev; =20 #define NSENDBUF 2048 @@ -45,7 +44,7 @@ typedef struct { #define TYPE_CHARDEV_WIN "chardev-win" #define WIN_CHARDEV(obj) OBJECT_CHECK(WinChardev, (obj), TYPE_CHARDEV_WIN) =20 -void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out); +void win_chr_set_file(Chardev *chr, HANDLE file, bool keep_open); int win_chr_serial_init(Chardev *chr, const char *filename, Error **errp); int win_chr_pipe_poll(void *opaque); =20 diff --git a/chardev/char-console.c b/chardev/char-console.c index c824937fe6..8d972c1506 100644 --- a/chardev/char-console.c +++ b/chardev/char-console.c @@ -29,7 +29,7 @@ static void qemu_chr_open_win_con(Chardev *chr, bool *be_opened, Error **errp) { - qemu_chr_open_win_file(chr, GetStdHandle(STD_OUTPUT_HANDLE)); + win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true); } =20 static void char_console_class_init(ObjectClass *oc, void *data) diff --git a/chardev/char-file.c b/chardev/char-file.c index 8bae25350d..aed4ae1569 100644 --- a/chardev/char-file.c +++ b/chardev/char-file.c @@ -65,7 +65,7 @@ static void qmp_chardev_open_file(Chardev *chr, return; } =20 - qemu_chr_open_win_file(chr, out); + win_chr_set_file(chr, out, false); #else int flags, in =3D -1, out; =20 diff --git a/chardev/char-win.c b/chardev/char-win.c index a7e3296909..ec9a731be9 100644 --- a/chardev/char-win.c +++ b/chardev/char-win.c @@ -192,17 +192,13 @@ static void char_win_finalize(Object *obj) Chardev *chr =3D CHARDEV(obj); WinChardev *s =3D WIN_CHARDEV(chr); =20 - if (s->skip_free) { - return; - } - if (s->hsend) { CloseHandle(s->hsend); } if (s->hrecv) { CloseHandle(s->hrecv); } - if (s->file) { + if (!s->keep_open && s->file) { CloseHandle(s->file); } if (s->fpipe) { @@ -214,12 +210,12 @@ static void char_win_finalize(Object *obj) qemu_chr_be_event(chr, CHR_EVENT_CLOSED); } =20 -void qemu_chr_open_win_file(Chardev *chr, HANDLE fd_out) +void win_chr_set_file(Chardev *chr, HANDLE file, bool keep_open) { WinChardev *s =3D WIN_CHARDEV(chr); =20 - s->skip_free =3D true; - s->file =3D fd_out; + s->keep_open =3D keep_open; + s->file =3D file; } =20 static void char_win_class_init(ObjectClass *oc, void *data) --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496047822401839.5269091813461; Mon, 29 May 2017 01:50:22 -0700 (PDT) Received: from localhost ([::1]:47534 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGNZ-0001Yc-15 for importer@patchew.org; Mon, 29 May 2017 04:50:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59825) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGK0-00076n-Cr for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGJz-0000sF-6k for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35766) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGJy-0000s9-UJ for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:39 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D38CE2D9FDC; Mon, 29 May 2017 08:46:37 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4A3CA183DD; Mon, 29 May 2017 08:46:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D38CE2D9FDC Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D38CE2D9FDC From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:38 +0400 Message-Id: <20170529084546.26500-7-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 29 May 2017 08:46:38 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 06/14] Remove/replace sysemu/char.h inclusion X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Those are apparently unnecessary includes. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/arm/bcm2835_peripherals.c | 1 - hw/char/imx_serial.c | 1 - hw/display/xenfb.c | 1 - hw/i386/xen/xen-hvm.c | 1 - hw/mips/mips_fulong2e.c | 1 - hw/mips/mips_malta.c | 1 - hw/net/xgmac.c | 1 - hw/ppc/spapr_events.c | 1 - hw/ppc/spapr_rtas.c | 1 - hw/sparc/leon3.c | 1 - hw/usb/ccid-card-emulated.c | 2 +- hw/xen/xen_backend.c | 1 - util/event_notifier-posix.c | 1 - 13 files changed, 1 insertion(+), 13 deletions(-) diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c index 369ef1e3bd..502f04c02a 100644 --- a/hw/arm/bcm2835_peripherals.c +++ b/hw/arm/bcm2835_peripherals.c @@ -13,7 +13,6 @@ #include "hw/arm/bcm2835_peripherals.h" #include "hw/misc/bcm2835_mbox_defs.h" #include "hw/arm/raspi_platform.h" -#include "sysemu/char.h" #include "sysemu/sysemu.h" =20 /* Peripheral base address on the VC (GPU) system bus */ diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c index 52e67f8dc9..af250305be 100644 --- a/hw/char/imx_serial.c +++ b/hw/char/imx_serial.c @@ -21,7 +21,6 @@ #include "qemu/osdep.h" #include "hw/char/imx_serial.h" #include "sysemu/sysemu.h" -#include "sysemu/char.h" #include "qemu/log.h" =20 #ifndef DEBUG_IMX_UART diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c index 7a8727aa21..e76c0d805c 100644 --- a/hw/display/xenfb.c +++ b/hw/display/xenfb.c @@ -28,7 +28,6 @@ =20 #include "hw/hw.h" #include "ui/console.h" -#include "sysemu/char.h" #include "hw/xen/xen_backend.h" =20 #include diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c index b1c05ffb86..321cf36b67 100644 --- a/hw/i386/xen/xen-hvm.c +++ b/hw/i386/xen/xen-hvm.c @@ -18,7 +18,6 @@ #include "hw/xen/xen_backend.h" #include "qmp-commands.h" =20 -#include "sysemu/char.h" #include "qemu/error-report.h" #include "qemu/range.h" #include "sysemu/xen-mapcache.h" diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c index e636c3abaa..dbe2805acb 100644 --- a/hw/mips/mips_fulong2e.c +++ b/hw/mips/mips_fulong2e.c @@ -32,7 +32,6 @@ #include "hw/mips/mips.h" #include "hw/mips/cpudevs.h" #include "hw/pci/pci.h" -#include "sysemu/char.h" #include "sysemu/sysemu.h" #include "audio/audio.h" #include "qemu/log.h" diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index 5dd177e961..6fcdd9c6c1 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -37,7 +37,6 @@ #include "hw/mips/mips.h" #include "hw/mips/cpudevs.h" #include "hw/pci/pci.h" -#include "sysemu/char.h" #include "sysemu/sysemu.h" #include "sysemu/arch_init.h" #include "qemu/log.h" diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c index 46b1aa17fa..0843bf185c 100644 --- a/hw/net/xgmac.c +++ b/hw/net/xgmac.c @@ -26,7 +26,6 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "sysemu/char.h" #include "qemu/log.h" #include "net/net.h" #include "net/checksum.h" diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index f0b28d8112..8a5f1d321a 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -28,7 +28,6 @@ #include "qapi/error.h" #include "cpu.h" #include "sysemu/sysemu.h" -#include "sysemu/char.h" #include "hw/qdev.h" #include "sysemu/device_tree.h" =20 diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index 619f32c054..dd1633a104 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -29,7 +29,6 @@ #include "qemu/log.h" #include "qemu/error-report.h" #include "sysemu/sysemu.h" -#include "sysemu/char.h" #include "hw/qdev.h" #include "sysemu/device_tree.h" #include "sysemu/cpus.h" diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c index 6e16478413..f415997649 100644 --- a/hw/sparc/leon3.c +++ b/hw/sparc/leon3.c @@ -28,7 +28,6 @@ #include "hw/hw.h" #include "qemu/timer.h" #include "hw/ptimer.h" -#include "sysemu/char.h" #include "sysemu/sysemu.h" #include "sysemu/qtest.h" #include "hw/boards.h" diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c index 99627860a3..e646eb243b 100644 --- a/hw/usb/ccid-card-emulated.c +++ b/hw/usb/ccid-card-emulated.c @@ -33,7 +33,7 @@ #include =20 #include "qemu/thread.h" -#include "sysemu/char.h" +#include "qemu/main-loop.h" #include "ccid.h" =20 #define DPRINTF(card, lvl, fmt, ...) \ diff --git a/hw/xen/xen_backend.c b/hw/xen/xen_backend.c index 3570f37e56..c46cbb0759 100644 --- a/hw/xen/xen_backend.c +++ b/hw/xen/xen_backend.c @@ -28,7 +28,6 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "hw/boards.h" -#include "sysemu/char.h" #include "qemu/log.h" #include "qapi/error.h" #include "hw/xen/xen_backend.h" diff --git a/util/event_notifier-posix.c b/util/event_notifier-posix.c index acdbe3b483..73c4046b58 100644 --- a/util/event_notifier-posix.c +++ b/util/event_notifier-posix.c @@ -14,7 +14,6 @@ #include "qemu-common.h" #include "qemu/cutils.h" #include "qemu/event_notifier.h" -#include "sysemu/char.h" #include "qemu/main-loop.h" =20 #ifdef CONFIG_EVENTFD --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496048154145270.1810601331989; Mon, 29 May 2017 01:55:54 -0700 (PDT) Received: from localhost ([::1]:47565 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGSu-0006Pv-Kj for importer@patchew.org; Mon, 29 May 2017 04:55:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59865) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGKB-0007F6-To for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGK7-0000tS-Ev for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:51 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35974) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGK7-0000tO-2D for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:47 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EC38C3D955; Mon, 29 May 2017 08:46:45 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 167BB17CD1; Mon, 29 May 2017 08:46:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com EC38C3D955 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com EC38C3D955 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:39 +0400 Message-Id: <20170529084546.26500-8-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 29 May 2017 08:46:46 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 07/14] chardev: move headers to include/chardev X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" So they are all in one place. The following patch will move serial & parallel declarations to the respective headers. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- {chardev =3D> include/chardev}/char-fd.h | 2 +- {chardev =3D> include/chardev}/char-io.h | 2 +- {chardev =3D> include/chardev}/char-mux.h | 2 +- {chardev =3D> include/chardev}/char-parallel.h | 0 {chardev =3D> include/chardev}/char-serial.h | 0 {chardev =3D> include/chardev}/char-win-stdio.h | 0 {chardev =3D> include/chardev}/char-win.h | 2 +- include/{sysemu =3D> chardev}/char.h | 0 include/hw/char/bcm2835_aux.h | 2 +- include/hw/char/cadence_uart.h | 2 +- include/hw/char/digic-uart.h | 2 +- include/hw/char/imx_serial.h | 2 +- include/hw/char/serial.h | 4 ++-- include/hw/char/stm32f2xx_usart.h | 2 +- backends/baum.c | 2 +- backends/msmouse.c | 2 +- backends/rng-egd.c | 2 +- backends/testdev.c | 2 +- backends/wctablet.c | 2 +- chardev/char-console.c | 2 +- chardev/char-fd.c | 6 +++--- chardev/char-file.c | 6 +++--- chardev/char-io.c | 2 +- chardev/char-mux.c | 4 ++-- chardev/char-null.c | 2 +- chardev/char-parallel.c | 6 +++--- chardev/char-pipe.c | 6 +++--- chardev/char-pty.c | 4 ++-- chardev/char-ringbuf.c | 2 +- chardev/char-serial.c | 6 +++--- chardev/char-socket.c | 4 ++-- chardev/char-stdio.c | 8 ++++---- chardev/char-udp.c | 4 ++-- chardev/char-win-stdio.c | 4 ++-- chardev/char-win.c | 2 +- chardev/char.c | 10 +++++----- gdbstub.c | 2 +- hmp.c | 2 +- hw/arm/fsl-imx25.c | 2 +- hw/arm/fsl-imx31.c | 2 +- hw/arm/fsl-imx6.c | 2 +- hw/arm/omap2.c | 2 +- hw/arm/pxa2xx.c | 2 +- hw/arm/strongarm.c | 2 +- hw/bt/hci-csr.c | 2 +- hw/char/cadence_uart.c | 2 +- hw/char/debugcon.c | 2 +- hw/char/digic-uart.c | 2 +- hw/char/escc.c | 2 +- hw/char/etraxfs_ser.c | 2 +- hw/char/exynos4210_uart.c | 2 +- hw/char/grlib_apbuart.c | 2 +- hw/char/ipoctal232.c | 2 +- hw/char/lm32_juart.c | 2 +- hw/char/lm32_uart.c | 2 +- hw/char/mcf_uart.c | 2 +- hw/char/milkymist-uart.c | 2 +- hw/char/omap_uart.c | 2 +- hw/char/parallel.c | 2 +- hw/char/pl011.c | 2 +- hw/char/sclpconsole-lm.c | 2 +- hw/char/sclpconsole.c | 2 +- hw/char/serial.c | 2 +- hw/char/sh_serial.c | 2 +- hw/char/spapr_vty.c | 2 +- hw/char/terminal3270.c | 2 +- hw/char/virtio-console.c | 2 +- hw/char/xen_console.c | 2 +- hw/char/xilinx_uartlite.c | 2 +- hw/core/qdev-properties-system.c | 2 +- hw/core/qdev-properties.c | 2 +- hw/ipmi/ipmi_bmc_extern.c | 2 +- hw/isa/pc87312.c | 2 +- hw/mips/boston.c | 2 +- hw/misc/ivshmem.c | 2 +- hw/usb/ccid-card-passthru.c | 2 +- hw/usb/dev-serial.c | 2 +- hw/usb/redirect.c | 2 +- hw/virtio/vhost-user.c | 2 +- hw/xen/xen-common.c | 2 +- hw/xtensa/xtfpga.c | 2 +- monitor.c | 2 +- net/colo-compare.c | 2 +- net/filter-mirror.c | 2 +- net/slirp.c | 2 +- net/vhost-user.c | 2 +- qmp.c | 2 +- qtest.c | 2 +- replay/replay-char.c | 2 +- slirp/slirp.c | 2 +- spice-qemu-char.c | 2 +- tests/postcopy-test.c | 2 +- tests/test-char.c | 2 +- tests/vhost-user-test.c | 2 +- ui/console.c | 2 +- ui/gtk.c | 2 +- vl.c | 2 +- MAINTAINERS | 1 + 98 files changed, 117 insertions(+), 116 deletions(-) rename {chardev =3D> include/chardev}/char-fd.h (98%) rename {chardev =3D> include/chardev}/char-io.h (98%) rename {chardev =3D> include/chardev}/char-mux.h (98%) rename {chardev =3D> include/chardev}/char-parallel.h (100%) rename {chardev =3D> include/chardev}/char-serial.h (100%) rename {chardev =3D> include/chardev}/char-win-stdio.h (100%) rename {chardev =3D> include/chardev}/char-win.h (98%) rename include/{sysemu =3D> chardev}/char.h (100%) diff --git a/chardev/char-fd.h b/include/chardev/char-fd.h similarity index 98% rename from chardev/char-fd.h rename to include/chardev/char-fd.h index d8327982fb..55ae5b47b0 100644 --- a/chardev/char-fd.h +++ b/include/chardev/char-fd.h @@ -25,7 +25,7 @@ #define CHAR_FD_H =20 #include "io/channel.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 typedef struct FDChardev { Chardev parent; diff --git a/chardev/char-io.h b/include/chardev/char-io.h similarity index 98% rename from chardev/char-io.h rename to include/chardev/char-io.h index 55973a7671..9638da5100 100644 --- a/chardev/char-io.h +++ b/include/chardev/char-io.h @@ -26,7 +26,7 @@ =20 #include "qemu-common.h" #include "io/channel.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 /* Can only be used for read */ GSource *io_add_watch_poll(Chardev *chr, diff --git a/chardev/char-mux.h b/include/chardev/char-mux.h similarity index 98% rename from chardev/char-mux.h rename to include/chardev/char-mux.h index 3f41dfcfd2..45cdfc7e67 100644 --- a/chardev/char-mux.h +++ b/include/chardev/char-mux.h @@ -24,7 +24,7 @@ #ifndef CHAR_MUX_H #define CHAR_MUX_H =20 -#include "sysemu/char.h" +#include "chardev/char.h" =20 extern bool muxes_realized; =20 diff --git a/chardev/char-parallel.h b/include/chardev/char-parallel.h similarity index 100% rename from chardev/char-parallel.h rename to include/chardev/char-parallel.h diff --git a/chardev/char-serial.h b/include/chardev/char-serial.h similarity index 100% rename from chardev/char-serial.h rename to include/chardev/char-serial.h diff --git a/chardev/char-win-stdio.h b/include/chardev/char-win-stdio.h similarity index 100% rename from chardev/char-win-stdio.h rename to include/chardev/char-win-stdio.h diff --git a/chardev/char-win.h b/include/chardev/char-win.h similarity index 98% rename from chardev/char-win.h rename to include/chardev/char-win.h index 4994425e9e..fa59e9e423 100644 --- a/chardev/char-win.h +++ b/include/chardev/char-win.h @@ -24,7 +24,7 @@ #ifndef CHAR_WIN_H #define CHAR_WIN_H =20 -#include "sysemu/char.h" +#include "chardev/char.h" =20 typedef struct { Chardev parent; diff --git a/include/sysemu/char.h b/include/chardev/char.h similarity index 100% rename from include/sysemu/char.h rename to include/chardev/char.h diff --git a/include/hw/char/bcm2835_aux.h b/include/hw/char/bcm2835_aux.h index 6865f154bc..2a051c5646 100644 --- a/include/hw/char/bcm2835_aux.h +++ b/include/hw/char/bcm2835_aux.h @@ -9,7 +9,7 @@ #define BCM2835_AUX_H =20 #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #define TYPE_BCM2835_AUX "bcm2835-aux" #define BCM2835_AUX(obj) OBJECT_CHECK(BCM2835AuxState, (obj), TYPE_BCM2835= _AUX) diff --git a/include/hw/char/cadence_uart.h b/include/hw/char/cadence_uart.h index c836db4b74..eed7d8d358 100644 --- a/include/hw/char/cadence_uart.h +++ b/include/hw/char/cadence_uart.h @@ -19,7 +19,7 @@ #ifndef CADENCE_UART_H =20 #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/timer.h" =20 #define CADENCE_UART_RX_FIFO_SIZE 16 diff --git a/include/hw/char/digic-uart.h b/include/hw/char/digic-uart.h index 340c8e1111..370b48a6c5 100644 --- a/include/hw/char/digic-uart.h +++ b/include/hw/char/digic-uart.h @@ -19,7 +19,7 @@ #define HW_CHAR_DIGIC_UART_H =20 #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #define TYPE_DIGIC_UART "digic-uart" #define DIGIC_UART(obj) \ diff --git a/include/hw/char/imx_serial.h b/include/hw/char/imx_serial.h index 4cc3fbc395..05500f5346 100644 --- a/include/hw/char/imx_serial.h +++ b/include/hw/char/imx_serial.h @@ -19,7 +19,7 @@ #define IMX_SERIAL_H =20 #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #define TYPE_IMX_SERIAL "imx.serial" #define IMX_SERIAL(obj) OBJECT_CHECK(IMXSerialState, (obj), TYPE_IMX_SERIA= L) diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h index daebb076c2..01dcd2a8d2 100644 --- a/include/hw/char/serial.h +++ b/include/hw/char/serial.h @@ -28,10 +28,10 @@ =20 #include "hw/hw.h" #include "sysemu/sysemu.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "exec/memory.h" #include "qemu/fifo8.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #define UART_FIFO_LENGTH 16 /* 16550A Fifo Length */ =20 diff --git a/include/hw/char/stm32f2xx_usart.h b/include/hw/char/stm32f2xx_= usart.h index 3267523270..4259dbeb1e 100644 --- a/include/hw/char/stm32f2xx_usart.h +++ b/include/hw/char/stm32f2xx_usart.h @@ -26,7 +26,7 @@ #define HW_STM32F2XX_USART_H =20 #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "hw/hw.h" =20 #define USART_SR 0x00 diff --git a/backends/baum.c b/backends/baum.c index 2eddcae119..302dd9666c 100644 --- a/backends/baum.c +++ b/backends/baum.c @@ -24,7 +24,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/timer.h" #include "hw/usb.h" #include "ui/console.h" diff --git a/backends/msmouse.c b/backends/msmouse.c index d2c3162f1e..0ffd137ce8 100644 --- a/backends/msmouse.c +++ b/backends/msmouse.c @@ -23,7 +23,7 @@ */ #include "qemu/osdep.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "ui/console.h" #include "ui/input.h" =20 diff --git a/backends/rng-egd.c b/backends/rng-egd.c index 380b19a0a1..5448f6e5f5 100644 --- a/backends/rng-egd.c +++ b/backends/rng-egd.c @@ -12,7 +12,7 @@ =20 #include "qemu/osdep.h" #include "sysemu/rng.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qapi/error.h" #include "qapi/qmp/qerror.h" =20 diff --git a/backends/testdev.c b/backends/testdev.c index 7df9248a13..031e9a23e8 100644 --- a/backends/testdev.c +++ b/backends/testdev.c @@ -25,7 +25,7 @@ */ #include "qemu/osdep.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #define BUF_SIZE 32 =20 diff --git a/backends/wctablet.c b/backends/wctablet.c index a4d3ae098a..07a4cde956 100644 --- a/backends/wctablet.c +++ b/backends/wctablet.c @@ -32,7 +32,7 @@ =20 #include "qemu/osdep.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "ui/console.h" #include "ui/input.h" #include "trace.h" diff --git a/chardev/char-console.c b/chardev/char-console.c index 8d972c1506..535ed65136 100644 --- a/chardev/char-console.c +++ b/chardev/char-console.c @@ -22,7 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" -#include "char-win.h" +#include "chardev/char-win.h" =20 static void qemu_chr_open_win_con(Chardev *chr, ChardevBackend *backend, diff --git a/chardev/char-fd.c b/chardev/char-fd.c index 0b182c552c..1584a3de20 100644 --- a/chardev/char-fd.c +++ b/chardev/char-fd.c @@ -25,11 +25,11 @@ #include "qemu/sockets.h" #include "qapi/error.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "io/channel-file.h" =20 -#include "char-fd.h" -#include "char-io.h" +#include "chardev/char-fd.h" +#include "chardev/char-io.h" =20 /* Called with chr_write_lock held. */ static int fd_chr_write(Chardev *chr, const uint8_t *buf, int len) diff --git a/chardev/char-file.c b/chardev/char-file.c index aed4ae1569..a57b88aaf2 100644 --- a/chardev/char-file.c +++ b/chardev/char-file.c @@ -24,12 +24,12 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #ifdef _WIN32 -#include "char-win.h" +#include "chardev/char-win.h" #else -#include "char-fd.h" +#include "chardev/char-fd.h" #endif =20 static void qmp_chardev_open_file(Chardev *chr, diff --git a/chardev/char-io.c b/chardev/char-io.c index b5708eef45..f81052481a 100644 --- a/chardev/char-io.c +++ b/chardev/char-io.c @@ -22,7 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" -#include "char-io.h" +#include "chardev/char-io.h" =20 typedef struct IOWatchPoll { GSource parent; diff --git a/chardev/char-mux.c b/chardev/char-mux.c index 37d42c65c6..106c682e7f 100644 --- a/chardev/char-mux.c +++ b/chardev/char-mux.c @@ -24,9 +24,9 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/block-backend.h" -#include "char-mux.h" +#include "chardev/char-mux.h" =20 /* MUX driver for serial I/O splitting */ =20 diff --git a/chardev/char-null.c b/chardev/char-null.c index dc0d68ab2d..90bafe76f4 100644 --- a/chardev/char-null.c +++ b/chardev/char-null.c @@ -22,7 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 static void null_chr_open(Chardev *chr, ChardevBackend *backend, diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c index 3fa22ce29d..bce89f8c36 100644 --- a/chardev/char-parallel.c +++ b/chardev/char-parallel.c @@ -22,7 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qapi/error.h" #include =20 @@ -41,8 +41,8 @@ #endif #endif =20 -#include "char-fd.h" -#include "char-parallel.h" +#include "chardev/char-fd.h" +#include "chardev/char-parallel.h" =20 #if defined(__linux__) =20 diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c index aae950a22b..3a95e4c1b2 100644 --- a/chardev/char-pipe.c +++ b/chardev/char-pipe.c @@ -23,12 +23,12 @@ */ #include "qemu/osdep.h" #include "qapi/error.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #ifdef _WIN32 -#include "char-win.h" +#include "chardev/char-win.h" #else -#include "char-fd.h" +#include "chardev/char-fd.h" #endif =20 #ifdef _WIN32 diff --git a/chardev/char-pty.c b/chardev/char-pty.c index 35a175d796..e5d20a0e6a 100644 --- a/chardev/char-pty.c +++ b/chardev/char-pty.c @@ -24,12 +24,12 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "io/channel-file.h" #include "qemu/sockets.h" #include "qemu/error-report.h" =20 -#include "char-io.h" +#include "chardev/char-io.h" =20 #if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \ || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly_= _) \ diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c index d130069e88..df52b04d22 100644 --- a/chardev/char-ringbuf.c +++ b/chardev/char-ringbuf.c @@ -22,7 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qmp-commands.h" #include "qemu/base64.h" =20 diff --git a/chardev/char-serial.c b/chardev/char-serial.c index fef3a91c77..2f8f83821d 100644 --- a/chardev/char-serial.c +++ b/chardev/char-serial.c @@ -27,14 +27,14 @@ #include "qapi/error.h" =20 #ifdef _WIN32 -#include "char-win.h" +#include "chardev/char-win.h" #else #include #include -#include "char-fd.h" +#include "chardev/char-fd.h" #endif =20 -#include "char-serial.h" +#include "chardev/char-serial.h" =20 #ifdef _WIN32 =20 diff --git a/chardev/char-socket.c b/chardev/char-socket.c index e2fb7f7cd5..ccc499cfa1 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -22,14 +22,14 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "io/channel-socket.h" #include "io/channel-tls.h" #include "qemu/error-report.h" #include "qapi/error.h" #include "qapi/clone-visitor.h" =20 -#include "char-io.h" +#include "chardev/char-io.h" =20 /***********************************************************/ /* TCP Net console */ diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c index be4a65962c..6f5d798d7b 100644 --- a/chardev/char-stdio.c +++ b/chardev/char-stdio.c @@ -25,14 +25,14 @@ #include "qemu/sockets.h" #include "qapi/error.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #ifdef _WIN32 -#include "char-win.h" -#include "char-win-stdio.h" +#include "chardev/char-win.h" +#include "chardev/char-win-stdio.h" #else #include -#include "char-fd.h" +#include "chardev/char-fd.h" #endif =20 #ifndef _WIN32 diff --git a/chardev/char-udp.c b/chardev/char-udp.c index 607647642a..4ee11d3ebf 100644 --- a/chardev/char-udp.c +++ b/chardev/char-udp.c @@ -22,11 +22,11 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "io/channel-socket.h" #include "qapi/error.h" =20 -#include "char-io.h" +#include "chardev/char-io.h" =20 /***********************************************************/ /* UDP Net console */ diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c index eb44afc17a..efcf7827eb 100644 --- a/chardev/char-win-stdio.c +++ b/chardev/char-win-stdio.c @@ -23,8 +23,8 @@ */ #include "qemu/osdep.h" #include "qapi/error.h" -#include "char-win.h" -#include "char-win-stdio.h" +#include "chardev/char-win.h" +#include "chardev/char-win-stdio.h" =20 typedef struct { Chardev parent; diff --git a/chardev/char-win.c b/chardev/char-win.c index ec9a731be9..05518e0958 100644 --- a/chardev/char-win.c +++ b/chardev/char-win.c @@ -24,7 +24,7 @@ #include "qemu/osdep.h" #include "qemu-common.h" #include "qapi/error.h" -#include "char-win.h" +#include "chardev/char-win.h" =20 static void win_chr_read(Chardev *chr, DWORD len) { diff --git a/chardev/char.c b/chardev/char.c index 4e24dc39af..a747e0279a 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -28,16 +28,16 @@ #include "sysemu/sysemu.h" #include "qemu/config-file.h" #include "qemu/error-report.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qmp-commands.h" #include "qapi-visit.h" #include "sysemu/replay.h" #include "qemu/help_option.h" =20 -#include "char-mux.h" -#include "char-io.h" -#include "char-parallel.h" -#include "char-serial.h" +#include "chardev/char-mux.h" +#include "chardev/char-io.h" +#include "chardev/char-parallel.h" +#include "chardev/char-serial.h" =20 /***********************************************************/ /* character device */ diff --git a/gdbstub.c b/gdbstub.c index 86eed4f97c..6515c635dc 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -25,7 +25,7 @@ #include "qemu.h" #else #include "monitor/monitor.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/sysemu.h" #include "exec/gdbstub.h" #endif diff --git a/hmp.c b/hmp.c index 20f5daba5e..97d4822e52 100644 --- a/hmp.c +++ b/hmp.c @@ -17,7 +17,7 @@ #include "hmp.h" #include "net/net.h" #include "net/eth.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/block-backend.h" #include "sysemu/sysemu.h" #include "qemu/config-file.h" diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c index 9056f27bf8..40666b68a3 100644 --- a/hw/arm/fsl-imx25.c +++ b/hw/arm/fsl-imx25.c @@ -30,7 +30,7 @@ #include "sysemu/sysemu.h" #include "exec/address-spaces.h" #include "hw/boards.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 static void fsl_imx25_init(Object *obj) { diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c index d7e2d832b2..c30130667e 100644 --- a/hw/arm/fsl-imx31.c +++ b/hw/arm/fsl-imx31.c @@ -27,7 +27,7 @@ #include "sysemu/sysemu.h" #include "exec/address-spaces.h" #include "hw/boards.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 static void fsl_imx31_init(Object *obj) { diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index 6969e734ad..27773c9c47 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -24,7 +24,7 @@ #include "qemu-common.h" #include "hw/arm/fsl-imx6.h" #include "sysemu/sysemu.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/error-report.h" =20 #define NAME_SIZE 20 diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c index cf1b4ba58f..566749a9eb 100644 --- a/hw/arm/omap2.c +++ b/hw/arm/omap2.c @@ -30,7 +30,7 @@ #include "hw/arm/omap.h" #include "sysemu/sysemu.h" #include "qemu/timer.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "hw/block/flash.h" #include "hw/arm/soc_dma.h" #include "hw/sysbus.h" diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index eea551dc16..0d43cc707c 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -17,7 +17,7 @@ #include "hw/char/serial.h" #include "hw/i2c/i2c.h" #include "hw/ssi/ssi.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "qemu/cutils.h" diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c index 3311cc38a4..66cad198d4 100644 --- a/hw/arm/strongarm.c +++ b/hw/arm/strongarm.c @@ -34,7 +34,7 @@ #include "strongarm.h" #include "qemu/error-report.h" #include "hw/arm/arm.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/sysemu.h" #include "hw/ssi/ssi.h" #include "qemu/cutils.h" diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c index 3c193848fc..cc2087392e 100644 --- a/hw/bt/hci-csr.c +++ b/hw/bt/hci-csr.c @@ -20,7 +20,7 @@ =20 #include "qemu/osdep.h" #include "qemu-common.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/timer.h" #include "qemu/bswap.h" #include "hw/irq.h" diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index 4dcee571c0..cf4c1d56ff 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -23,7 +23,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/timer.h" #include "qemu/log.h" #include "hw/char/cadence_uart.h" diff --git a/hw/char/debugcon.c b/hw/char/debugcon.c index 80dce07e7f..77d91c8558 100644 --- a/hw/char/debugcon.c +++ b/hw/char/debugcon.c @@ -27,7 +27,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "hw/hw.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "hw/isa/isa.h" #include "hw/i386/pc.h" =20 diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c index 029f5bbf5e..4f1dec7f1d 100644 --- a/hw/char/digic-uart.c +++ b/hw/char/digic-uart.c @@ -29,7 +29,7 @@ #include "qemu/osdep.h" #include "hw/hw.h" #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/log.h" =20 #include "hw/char/digic-uart.h" diff --git a/hw/char/escc.c b/hw/char/escc.c index 9228091cec..df89d58eed 100644 --- a/hw/char/escc.c +++ b/hw/char/escc.c @@ -26,7 +26,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "hw/char/escc.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "ui/console.h" #include "ui/input.h" #include "trace.h" diff --git a/hw/char/etraxfs_ser.c b/hw/char/etraxfs_ser.c index 54383878e0..33e3e16397 100644 --- a/hw/char/etraxfs_ser.c +++ b/hw/char/etraxfs_ser.c @@ -24,7 +24,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/log.h" =20 #define D(x) diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c index bff706ab3a..94952fb90f 100644 --- a/hw/char/exynos4210_uart.c +++ b/hw/char/exynos4210_uart.c @@ -23,7 +23,7 @@ #include "hw/sysbus.h" #include "qemu/error-report.h" #include "sysemu/sysemu.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #include "hw/arm/exynos4210.h" =20 diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c index db686e6a6f..39d1133c61 100644 --- a/hw/char/grlib_apbuart.c +++ b/hw/char/grlib_apbuart.c @@ -24,7 +24,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #include "trace.h" =20 diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c index 93929c2880..b8a3c92c9e 100644 --- a/hw/char/ipoctal232.c +++ b/hw/char/ipoctal232.c @@ -11,7 +11,7 @@ #include "qemu/osdep.h" #include "hw/ipack/ipack.h" #include "qemu/bitops.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 /* #define DEBUG_IPOCTAL */ =20 diff --git a/hw/char/lm32_juart.c b/hw/char/lm32_juart.c index f8c1e0d076..6b0633e518 100644 --- a/hw/char/lm32_juart.c +++ b/hw/char/lm32_juart.c @@ -21,7 +21,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "trace.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #include "hw/char/lm32_juart.h" =20 diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c index 7f3597c4b0..a7610c28ce 100644 --- a/hw/char/lm32_uart.c +++ b/hw/char/lm32_uart.c @@ -26,7 +26,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "trace.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/error-report.h" =20 enum { diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c index e69672f4e9..b639b53c83 100644 --- a/hw/char/mcf_uart.c +++ b/hw/char/mcf_uart.c @@ -9,7 +9,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "hw/m68k/mcf.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "exec/address-spaces.h" #include "qapi/error.h" =20 diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c index ae8e2f3554..5ef847c5eb 100644 --- a/hw/char/milkymist-uart.c +++ b/hw/char/milkymist-uart.c @@ -25,7 +25,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "trace.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/error-report.h" =20 enum { diff --git a/hw/char/omap_uart.c b/hw/char/omap_uart.c index 31ebb1592c..6fd1b9cf6b 100644 --- a/hw/char/omap_uart.c +++ b/hw/char/omap_uart.c @@ -18,7 +18,7 @@ * with this program; if not, see . */ #include "qemu/osdep.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "hw/hw.h" #include "hw/arm/omap.h" #include "hw/char/serial.h" diff --git a/hw/char/parallel.c b/hw/char/parallel.c index c71a4a0f4f..c926df0bee 100644 --- a/hw/char/parallel.c +++ b/hw/char/parallel.c @@ -25,7 +25,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "hw/hw.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "hw/isa/isa.h" #include "hw/i386/pc.h" #include "sysemu/sysemu.h" diff --git a/hw/char/pl011.c b/hw/char/pl011.c index 24ea9738b6..1757035bb3 100644 --- a/hw/char/pl011.c +++ b/hw/char/pl011.c @@ -9,7 +9,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/log.h" #include "trace.h" =20 diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c index 07d6ebd112..755d514188 100644 --- a/hw/char/sclpconsole-lm.c +++ b/hw/char/sclpconsole-lm.c @@ -17,7 +17,7 @@ #include "hw/qdev.h" #include "qemu/thread.h" #include "qemu/error-report.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #include "hw/s390x/sclp.h" #include "hw/s390x/event-facility.h" diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c index b78f240a73..0fd3cb4887 100644 --- a/hw/char/sclpconsole.c +++ b/hw/char/sclpconsole.c @@ -19,7 +19,7 @@ =20 #include "hw/s390x/sclp.h" #include "hw/s390x/event-facility.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 typedef struct ASCIIConsoleData { EventBufferHeader ebh; diff --git a/hw/char/serial.c b/hw/char/serial.c index 03d890ca24..aa336333be 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -25,7 +25,7 @@ =20 #include "qemu/osdep.h" #include "hw/char/serial.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qapi/error.h" #include "qemu/timer.h" #include "exec/address-spaces.h" diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c index 303eb0a678..80c7696d8d 100644 --- a/hw/char/sh_serial.c +++ b/hw/char/sh_serial.c @@ -27,7 +27,7 @@ #include "qemu/osdep.h" #include "hw/hw.h" #include "hw/sh4/sh.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "exec/address-spaces.h" #include "qapi/error.h" =20 diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c index e30c8da57c..2317e45404 100644 --- a/hw/char/spapr_vty.c +++ b/hw/char/spapr_vty.c @@ -4,7 +4,7 @@ #include "qemu-common.h" #include "cpu.h" #include "hw/qdev.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "hw/ppc/spapr.h" #include "hw/ppc/spapr_vio.h" =20 diff --git a/hw/char/terminal3270.c b/hw/char/terminal3270.c index b2dda01baa..c043104185 100644 --- a/hw/char/terminal3270.c +++ b/hw/char/terminal3270.c @@ -13,7 +13,7 @@ =20 #include "qemu/osdep.h" #include "qapi/error.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "hw/s390x/3270-ccw.h" =20 /* Enough spaces for different window sizes. */ diff --git a/hw/char/virtio-console.c b/hw/char/virtio-console.c index 798d9b69fd..8418db6a07 100644 --- a/hw/char/virtio-console.c +++ b/hw/char/virtio-console.c @@ -11,7 +11,7 @@ */ =20 #include "qemu/osdep.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/error-report.h" #include "trace.h" #include "hw/virtio/virtio-serial.h" diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c index c01f41090e..1cdbe59f8a 100644 --- a/hw/char/xen_console.c +++ b/hw/char/xen_console.c @@ -25,7 +25,7 @@ =20 #include "qapi/error.h" #include "hw/hw.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "hw/xen/xen_backend.h" #include "qapi/error.h" =20 diff --git a/hw/char/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c index 37d313b429..bcebdae3da 100644 --- a/hw/char/xilinx_uartlite.c +++ b/hw/char/xilinx_uartlite.c @@ -24,7 +24,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #define DUART(x) =20 diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 79c2014135..4da0c6a24e 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -20,7 +20,7 @@ #include "hw/block/block.h" #include "net/hub.h" #include "qapi/visitor.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/iothread.h" =20 static void get_pointer(Object *obj, Visitor *v, Property *prop, diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index fa3617db2d..9f1a497322 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -9,7 +9,7 @@ #include "hw/block/block.h" #include "net/hub.h" #include "qapi/visitor.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 void qdev_prop_set_after_realize(DeviceState *dev, const char *name, Error **errp) diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c index e8e3d250b6..35285383fd 100644 --- a/hw/ipmi/ipmi_bmc_extern.c +++ b/hw/ipmi/ipmi_bmc_extern.c @@ -30,7 +30,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "qemu/timer.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/sysemu.h" #include "hw/ipmi/ipmi.h" =20 diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c index c707d24db4..5ce9f0a062 100644 --- a/hw/isa/pc87312.c +++ b/hw/isa/pc87312.c @@ -30,7 +30,7 @@ #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "sysemu/sysemu.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "trace.h" =20 =20 diff --git a/hw/mips/boston.c b/hw/mips/boston.c index 83f7b82386..56d22fe49b 100644 --- a/hw/mips/boston.c +++ b/hw/mips/boston.c @@ -35,7 +35,7 @@ #include "qemu/cutils.h" #include "qemu/error-report.h" #include "qemu/log.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/device_tree.h" #include "sysemu/sysemu.h" #include "sysemu/qtest.h" diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 475e36a4c7..cd064dcf8c 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -29,7 +29,7 @@ #include "qemu/error-report.h" #include "qemu/event_notifier.h" #include "qom/object_interfaces.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/hostmem.h" #include "sysemu/qtest.h" #include "qapi/visitor.h" diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c index a41b0d6ec5..c2096b25ab 100644 --- a/hw/usb/ccid-card-passthru.c +++ b/hw/usb/ccid-card-passthru.c @@ -9,7 +9,7 @@ */ =20 #include "qemu/osdep.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/error-report.h" #include "qemu/sockets.h" #include "ccid.h" diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c index 83a4f0e6fb..578760e1b3 100644 --- a/hw/usb/dev-serial.c +++ b/hw/usb/dev-serial.c @@ -15,7 +15,7 @@ #include "qemu/error-report.h" #include "hw/usb.h" #include "hw/usb/desc.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 //#define DEBUG_Serial =20 diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index ad5ef783a6..c862c1adea 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -33,7 +33,7 @@ #include "qapi/qmp/qerror.h" #include "qemu/error-report.h" #include "qemu/iov.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 #include #include diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index b87a176770..ff4cee82e6 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -13,7 +13,7 @@ #include "hw/virtio/vhost.h" #include "hw/virtio/vhost-backend.h" #include "hw/virtio/virtio-net.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/kvm.h" #include "qemu/error-report.h" #include "qemu/sockets.h" diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c index a9055e9eba..0bed5770c9 100644 --- a/hw/xen/xen-common.c +++ b/hw/xen/xen-common.c @@ -11,7 +11,7 @@ #include "qemu/osdep.h" #include "hw/xen/xen_backend.h" #include "qmp-commands.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/accel.h" #include "migration/migration.h" =20 diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c index 11176e26bd..5b31cdc566 100644 --- a/hw/xtensa/xtfpga.c +++ b/hw/xtensa/xtfpga.c @@ -40,7 +40,7 @@ #include "hw/sysbus.h" #include "hw/block/flash.h" #include "sysemu/block-backend.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/device_tree.h" #include "qemu/error-report.h" #include "bootparam.h" diff --git a/monitor.c b/monitor.c index baa73c98b7..29b71ff2bc 100644 --- a/monitor.c +++ b/monitor.c @@ -35,7 +35,7 @@ #include "exec/gdbstub.h" #include "net/net.h" #include "net/slirp.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "ui/qemu-spice.h" #include "sysemu/numa.h" #include "monitor/monitor.h" diff --git a/net/colo-compare.c b/net/colo-compare.c index 2639c7f0a2..619335d5e8 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -25,7 +25,7 @@ #include "qom/object.h" #include "qemu/typedefs.h" #include "net/queue.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/sockets.h" #include "qapi-visit.h" #include "net/colo.h" diff --git a/net/filter-mirror.c b/net/filter-mirror.c index 8b1b06977d..7adc2c10d2 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -20,7 +20,7 @@ #include "qemu/main-loop.h" #include "qemu/error-report.h" #include "trace.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/iov.h" #include "qemu/sockets.h" =20 diff --git a/net/slirp.c b/net/slirp.c index c705a60b62..af3e8b22ac 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -37,7 +37,7 @@ #include "qemu/sockets.h" #include "slirp/libslirp.h" #include "slirp/ip6.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/sysemu.h" #include "qemu/cutils.h" #include "qapi/error.h" diff --git a/net/vhost-user.c b/net/vhost-user.c index 00a0c1cbc5..77d2ce22a6 100644 --- a/net/vhost-user.c +++ b/net/vhost-user.c @@ -12,7 +12,7 @@ #include "clients.h" #include "net/vhost_net.h" #include "net/vhost-user.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/config-file.h" #include "qemu/error-report.h" #include "qmp-commands.h" diff --git a/qmp.c b/qmp.c index f656940769..59448dcd16 100644 --- a/qmp.c +++ b/qmp.c @@ -21,7 +21,7 @@ #include "qemu/config-file.h" #include "qemu/uuid.h" #include "qmp-commands.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "ui/qemu-spice.h" #include "ui/vnc.h" #include "sysemu/kvm.h" diff --git a/qtest.c b/qtest.c index 5aa6636ca8..dbf70a7018 100644 --- a/qtest.c +++ b/qtest.c @@ -17,7 +17,7 @@ #include "cpu.h" #include "sysemu/qtest.h" #include "hw/qdev.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "exec/ioport.h" #include "exec/memory.h" #include "hw/irq.h" diff --git a/replay/replay-char.c b/replay/replay-char.c index aa65955942..cbf7c04a9f 100755 --- a/replay/replay-char.c +++ b/replay/replay-char.c @@ -14,7 +14,7 @@ #include "sysemu/replay.h" #include "replay-internal.h" #include "sysemu/sysemu.h" -#include "sysemu/char.h" +#include "chardev/char.h" =20 /* Char drivers that generate qemu_chr_be_write events that should be saved into the log. */ diff --git a/slirp/slirp.c b/slirp/slirp.c index 2f2ec2c1b3..3b92cb54ce 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -25,7 +25,7 @@ #include "qemu-common.h" #include "qemu/timer.h" #include "qemu/error-report.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "slirp.h" #include "hw/hw.h" #include "qemu/cutils.h" diff --git a/spice-qemu-char.c b/spice-qemu-char.c index 4d1c76e8a4..1c6c2e3969 100644 --- a/spice-qemu-char.c +++ b/spice-qemu-char.c @@ -1,7 +1,7 @@ #include "qemu/osdep.h" #include "trace-root.h" #include "ui/qemu-spice.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/error-report.h" #include #include diff --git a/tests/postcopy-test.c b/tests/postcopy-test.c index e86f87656a..8142f2ab90 100644 --- a/tests/postcopy-test.c +++ b/tests/postcopy-test.c @@ -16,7 +16,7 @@ #include "qemu/option.h" #include "qemu/range.h" #include "qemu/sockets.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/sysemu.h" #include "hw/nvram/chrp_nvram.h" =20 diff --git a/tests/test-char.c b/tests/test-char.c index 124d0c5439..9340c55058 100644 --- a/tests/test-char.c +++ b/tests/test-char.c @@ -4,7 +4,7 @@ #include "qemu-common.h" #include "qemu/config-file.h" #include "qemu/sockets.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/sysemu.h" #include "qapi/error.h" #include "qom/qom-qobject.h" diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c index 9095af267e..acc392d046 100644 --- a/tests/vhost-user-test.c +++ b/tests/vhost-user-test.c @@ -16,7 +16,7 @@ #include "qemu/option.h" #include "qemu/range.h" #include "qemu/sockets.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "sysemu/sysemu.h" #include "libqos/libqos.h" #include "libqos/pci-pc.h" diff --git a/ui/console.c b/ui/console.c index ac66b3c910..6cf795a23d 100644 --- a/ui/console.c +++ b/ui/console.c @@ -27,7 +27,7 @@ #include "hw/qdev-core.h" #include "qemu/timer.h" #include "qmp-commands.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "trace.h" #include "exec/memory.h" =20 diff --git a/ui/gtk.c b/ui/gtk.c index 0213ad0efc..5bd87c265a 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -54,7 +54,7 @@ #include "qmp-commands.h" #include "x_keymap.h" #include "keymaps.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qom/object.h" =20 #define MAX_VCS 10 diff --git a/vl.c b/vl.c index 3465121217..009dfa58b4 100644 --- a/vl.c +++ b/vl.c @@ -81,7 +81,7 @@ int main(int argc, char **argv) #include "sysemu/numa.h" #include "exec/gdbstub.h" #include "qemu/timer.h" -#include "sysemu/char.h" +#include "chardev/char.h" #include "qemu/bitmap.h" #include "qemu/log.h" #include "sysemu/blockdev.h" diff --git a/MAINTAINERS b/MAINTAINERS index ef2ec58a94..59e03436ad 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1230,6 +1230,7 @@ M: Paolo Bonzini M: Marc-Andr=C3=A9 Lureau S: Maintained F: chardev/ +F: include/chardev/ F: backends/msmouse.c F: backends/testdev.c =20 --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496047816056817.271407079436; Mon, 29 May 2017 01:50:16 -0700 (PDT) Received: from localhost ([::1]:47533 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGNS-0001Tb-IZ for importer@patchew.org; Mon, 29 May 2017 04:50:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59880) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGKG-0007JC-9h for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGKF-0000tx-2v for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:56 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49650) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGKE-0000tp-QM for qemu-devel@nongnu.org; Mon, 29 May 2017 04:46:55 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B2A4E85542; Mon, 29 May 2017 08:46:53 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9324118351; Mon, 29 May 2017 08:46:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com B2A4E85542 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com B2A4E85542 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:40 +0400 Message-Id: <20170529084546.26500-9-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 29 May 2017 08:46:53 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 08/14] chardev: serial & parallel declaration to own headers X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/chardev/char-parallel.h | 20 +++++++++++++++++++- include/chardev/char-serial.h | 22 ++++++++++++++++++++++ include/chardev/char.h | 36 ------------------------------------ backends/wctablet.c | 2 +- hw/arm/strongarm.c | 2 +- hw/bt/hci-csr.c | 2 +- hw/char/cadence_uart.c | 2 +- hw/char/escc.c | 2 +- hw/char/exynos4210_uart.c | 2 +- hw/char/parallel.c | 2 +- hw/char/serial.c | 2 +- hw/usb/dev-serial.c | 2 +- 12 files changed, 50 insertions(+), 46 deletions(-) diff --git a/include/chardev/char-parallel.h b/include/chardev/char-paralle= l.h index 26742f9d5c..3284a1b96b 100644 --- a/include/chardev/char-parallel.h +++ b/include/chardev/char-parallel.h @@ -24,9 +24,27 @@ #ifndef CHAR_PARALLEL_H #define CHAR_PARALLEL_H =20 -#if defined(__linux__) || defined(__FreeBSD__) || \ +#include "chardev/char.h" + +#if defined(__linux__) || defined(__FreeBSD__) || \ defined(__FreeBSD_kernel__) || defined(__DragonFly__) #define HAVE_CHARDEV_PARPORT 1 #endif =20 +#define CHR_IOCTL_PP_READ_DATA 3 +#define CHR_IOCTL_PP_WRITE_DATA 4 +#define CHR_IOCTL_PP_READ_CONTROL 5 +#define CHR_IOCTL_PP_WRITE_CONTROL 6 +#define CHR_IOCTL_PP_READ_STATUS 7 +#define CHR_IOCTL_PP_EPP_READ_ADDR 8 +#define CHR_IOCTL_PP_EPP_READ 9 +#define CHR_IOCTL_PP_EPP_WRITE_ADDR 10 +#define CHR_IOCTL_PP_EPP_WRITE 11 +#define CHR_IOCTL_PP_DATA_DIR 12 + +struct ParallelIOArg { + void *buffer; + int count; +}; + #endif /* CHAR_PARALLEL_H */ diff --git a/include/chardev/char-serial.h b/include/chardev/char-serial.h index 64a27f63b1..cb2e59e82a 100644 --- a/include/chardev/char-serial.h +++ b/include/chardev/char-serial.h @@ -24,6 +24,8 @@ #ifndef CHAR_SERIAL_H #define CHAR_SERIAL_H =20 +#include "chardev/char.h" + #ifdef _WIN32 #define HAVE_CHARDEV_SERIAL 1 #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \ @@ -32,4 +34,24 @@ #define HAVE_CHARDEV_SERIAL 1 #endif =20 +#define CHR_IOCTL_SERIAL_SET_PARAMS 1 +typedef struct { + int speed; + int parity; + int data_bits; + int stop_bits; +} QEMUSerialSetParams; + +#define CHR_IOCTL_SERIAL_SET_BREAK 2 + +#define CHR_IOCTL_SERIAL_SET_TIOCM 13 +#define CHR_IOCTL_SERIAL_GET_TIOCM 14 + +#define CHR_TIOCM_CTS 0x020 +#define CHR_TIOCM_CAR 0x040 +#define CHR_TIOCM_DSR 0x100 +#define CHR_TIOCM_RI 0x080 +#define CHR_TIOCM_DTR 0x002 +#define CHR_TIOCM_RTS 0x004 + #endif diff --git a/include/chardev/char.h b/include/chardev/char.h index fffc0f40d4..95273e10ae 100644 --- a/include/chardev/char.h +++ b/include/chardev/char.h @@ -27,42 +27,6 @@ typedef enum { =20 #define CHR_READ_BUF_LEN 4096 =20 -#define CHR_IOCTL_SERIAL_SET_PARAMS 1 -typedef struct { - int speed; - int parity; - int data_bits; - int stop_bits; -} QEMUSerialSetParams; - -#define CHR_IOCTL_SERIAL_SET_BREAK 2 - -#define CHR_IOCTL_PP_READ_DATA 3 -#define CHR_IOCTL_PP_WRITE_DATA 4 -#define CHR_IOCTL_PP_READ_CONTROL 5 -#define CHR_IOCTL_PP_WRITE_CONTROL 6 -#define CHR_IOCTL_PP_READ_STATUS 7 -#define CHR_IOCTL_PP_EPP_READ_ADDR 8 -#define CHR_IOCTL_PP_EPP_READ 9 -#define CHR_IOCTL_PP_EPP_WRITE_ADDR 10 -#define CHR_IOCTL_PP_EPP_WRITE 11 -#define CHR_IOCTL_PP_DATA_DIR 12 - -struct ParallelIOArg { - void *buffer; - int count; -}; - -#define CHR_IOCTL_SERIAL_SET_TIOCM 13 -#define CHR_IOCTL_SERIAL_GET_TIOCM 14 - -#define CHR_TIOCM_CTS 0x020 -#define CHR_TIOCM_CAR 0x040 -#define CHR_TIOCM_DSR 0x100 -#define CHR_TIOCM_RI 0x080 -#define CHR_TIOCM_DTR 0x002 -#define CHR_TIOCM_RTS 0x004 - typedef void IOEventHandler(void *opaque, int event); =20 typedef enum { diff --git a/backends/wctablet.c b/backends/wctablet.c index 07a4cde956..6c13c2c58a 100644 --- a/backends/wctablet.c +++ b/backends/wctablet.c @@ -32,7 +32,7 @@ =20 #include "qemu/osdep.h" #include "qemu-common.h" -#include "chardev/char.h" +#include "chardev/char-serial.h" #include "ui/console.h" #include "ui/input.h" #include "trace.h" diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c index 66cad198d4..967caea749 100644 --- a/hw/arm/strongarm.c +++ b/hw/arm/strongarm.c @@ -34,7 +34,7 @@ #include "strongarm.h" #include "qemu/error-report.h" #include "hw/arm/arm.h" -#include "chardev/char.h" +#include "chardev/char-serial.h" #include "sysemu/sysemu.h" #include "hw/ssi/ssi.h" #include "qemu/cutils.h" diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c index cc2087392e..0f2021086d 100644 --- a/hw/bt/hci-csr.c +++ b/hw/bt/hci-csr.c @@ -20,7 +20,7 @@ =20 #include "qemu/osdep.h" #include "qemu-common.h" -#include "chardev/char.h" +#include "chardev/char-serial.h" #include "qemu/timer.h" #include "qemu/bswap.h" #include "hw/irq.h" diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index cf4c1d56ff..4bfc185376 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -23,7 +23,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-serial.h" #include "qemu/timer.h" #include "qemu/log.h" #include "hw/char/cadence_uart.h" diff --git a/hw/char/escc.c b/hw/char/escc.c index df89d58eed..81d792cb47 100644 --- a/hw/char/escc.c +++ b/hw/char/escc.c @@ -26,7 +26,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "hw/char/escc.h" -#include "chardev/char.h" +#include "chardev/char-serial.h" #include "ui/console.h" #include "ui/input.h" #include "trace.h" diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c index 94952fb90f..d93125645a 100644 --- a/hw/char/exynos4210_uart.c +++ b/hw/char/exynos4210_uart.c @@ -23,7 +23,7 @@ #include "hw/sysbus.h" #include "qemu/error-report.h" #include "sysemu/sysemu.h" -#include "chardev/char.h" +#include "chardev/char-serial.h" =20 #include "hw/arm/exynos4210.h" =20 diff --git a/hw/char/parallel.c b/hw/char/parallel.c index c926df0bee..1d6c6e9f33 100644 --- a/hw/char/parallel.c +++ b/hw/char/parallel.c @@ -25,7 +25,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "hw/hw.h" -#include "chardev/char.h" +#include "chardev/char-parallel.h" #include "hw/isa/isa.h" #include "hw/i386/pc.h" #include "sysemu/sysemu.h" diff --git a/hw/char/serial.c b/hw/char/serial.c index aa336333be..23e5fe9d18 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -25,7 +25,7 @@ =20 #include "qemu/osdep.h" #include "hw/char/serial.h" -#include "chardev/char.h" +#include "chardev/char-serial.h" #include "qapi/error.h" #include "qemu/timer.h" #include "exec/address-spaces.h" diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c index 578760e1b3..a145c919e9 100644 --- a/hw/usb/dev-serial.c +++ b/hw/usb/dev-serial.c @@ -15,7 +15,7 @@ #include "qemu/error-report.h" #include "hw/usb.h" #include "hw/usb/desc.h" -#include "chardev/char.h" +#include "chardev/char-serial.h" =20 //#define DEBUG_Serial =20 --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496047964244603.3767399654596; Mon, 29 May 2017 01:52:44 -0700 (PDT) Received: from localhost ([::1]:47547 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGPq-0003i0-RE for importer@patchew.org; Mon, 29 May 2017 04:52:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59924) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGKP-0007R6-LL for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGKM-0000uu-Ig for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:05 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49630) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGKM-0000uq-D0 for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:02 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4AC6F80C06; Mon, 29 May 2017 08:47:01 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3412918230; Mon, 29 May 2017 08:46:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4AC6F80C06 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 4AC6F80C06 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:41 +0400 Message-Id: <20170529084546.26500-10-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 29 May 2017 08:47:01 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 09/14] be-hci: use backend functions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Avoid accessing CharBackend directly, use qemu_chr_be_* methods instead. be->chr_read should exists if qemu_chr_be_can_write() is true. (use qemu_chr_be_write(), _impl() bypasses replay) Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Andrzej Zaborowski --- hw/bt/hci-csr.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c index 0f2021086d..d13192b9b5 100644 --- a/hw/bt/hci-csr.c +++ b/hw/bt/hci-csr.c @@ -82,17 +82,14 @@ enum { =20 static inline void csrhci_fifo_wake(struct csrhci_s *s) { - Chardev *chr =3D (Chardev *)s; - CharBackend *be =3D chr->be; + Chardev *chr =3D CHARDEV(s); =20 if (!s->enable || !s->out_len) return; =20 /* XXX: Should wait for s->modem_state & CHR_TIOCM_RTS? */ - if (be && be->chr_can_read && be->chr_can_read(be->opaque) && - be->chr_read) { - be->chr_read(be->opaque, - s->outfifo + s->out_start++, 1); + if (qemu_chr_be_can_write(chr)) { + qemu_chr_be_write(chr, s->outfifo + s->out_start++, 1); s->out_len--; if (s->out_start >=3D s->out_size) { s->out_start =3D 0; --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496048084157585.6779445255158; Mon, 29 May 2017 01:54:44 -0700 (PDT) Received: from localhost ([::1]:47557 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGRm-0005bs-SE for importer@patchew.org; Mon, 29 May 2017 04:54:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59964) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGKV-0007Xc-4J for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGKU-0000xY-7m for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58590) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGKT-0000xS-Up for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:10 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D982EC0467C7; Mon, 29 May 2017 08:47:08 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9931F1916C; Mon, 29 May 2017 08:47:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D982EC0467C7 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D982EC0467C7 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:42 +0400 Message-Id: <20170529084546.26500-11-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Mon, 29 May 2017 08:47:09 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 10/14] char: generalize qemu_chr_write_all() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" qemu_chr_fe_write() is similar to qemu_chr_write_all(): the later write all with a chardev backend. Make qemu_chr_write() and qemu_chr_fe_write_buffer() take an 'all' argument. If false, handle 'partial' write the way qemu_chr_fe_write() use to, and call qemu_chr_write() from qemu_chr_fe_write(). Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- chardev/char.c | 70 +++++++++++++++++++++++-------------------------------= ---- 1 file changed, 28 insertions(+), 42 deletions(-) diff --git a/chardev/char.c b/chardev/char.c index a747e0279a..9a7c70c7aa 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -96,7 +96,8 @@ static void qemu_chr_fe_write_log(Chardev *s, } =20 static int qemu_chr_fe_write_buffer(Chardev *s, - const uint8_t *buf, int len, int *offs= et) + const uint8_t *buf, int len, + int *offset, bool write_all) { ChardevClass *cc =3D CHARDEV_GET_CLASS(s); int res =3D 0; @@ -106,7 +107,7 @@ static int qemu_chr_fe_write_buffer(Chardev *s, while (*offset < len) { retry: res =3D cc->chr_write(s, buf + *offset, len - *offset); - if (res < 0 && errno =3D=3D EAGAIN) { + if (res < 0 && errno =3D=3D EAGAIN && write_all) { g_usleep(100); goto retry; } @@ -116,6 +117,9 @@ static int qemu_chr_fe_write_buffer(Chardev *s, } =20 *offset +=3D res; + if (!write_all) { + break; + } } if (*offset > 0) { qemu_chr_fe_write_log(s, buf, *offset); @@ -130,54 +134,20 @@ static bool qemu_chr_replay(Chardev *chr) return qemu_chr_has_feature(chr, QEMU_CHAR_FEATURE_REPLAY); } =20 -int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len) +static int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, + bool write_all) { - Chardev *s =3D be->chr; - ChardevClass *cc; - int ret; - - if (!s) { - return 0; - } - - if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_PLAY) { - int offset; - replay_char_write_event_load(&ret, &offset); - assert(offset <=3D len); - qemu_chr_fe_write_buffer(s, buf, offset, &offset); - return ret; - } - - cc =3D CHARDEV_GET_CLASS(s); - qemu_mutex_lock(&s->chr_write_lock); - ret =3D cc->chr_write(s, buf, len); - - if (ret > 0) { - qemu_chr_fe_write_log(s, buf, ret); - } - - qemu_mutex_unlock(&s->chr_write_lock); - =20 - if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_RECORD) { - replay_char_write_event_save(ret, ret < 0 ? 0 : ret); - } - =20 - return ret; -} - -int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len) -{ - int offset; + int offset =3D 0; int res; =20 if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_PLAY) { replay_char_write_event_load(&res, &offset); assert(offset <=3D len); - qemu_chr_fe_write_buffer(s, buf, offset, &offset); + qemu_chr_fe_write_buffer(s, buf, offset, &offset, true); return res; } =20 - res =3D qemu_chr_fe_write_buffer(s, buf, len, &offset); + res =3D qemu_chr_fe_write_buffer(s, buf, len, &offset, write_all); =20 if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_RECORD) { replay_char_write_event_save(res, offset); @@ -189,6 +159,22 @@ int qemu_chr_write_all(Chardev *s, const uint8_t *buf,= int len) return offset; } =20 +int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len) +{ + return qemu_chr_write(s, buf, len, true); +} + +int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len) +{ + Chardev *s =3D be->chr; + + if (!s) { + return 0; + } + + return qemu_chr_write(s, buf, len, false); +} + int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len) { Chardev *s =3D be->chr; @@ -197,7 +183,7 @@ int qemu_chr_fe_write_all(CharBackend *be, const uint8_= t *buf, int len) return 0; } =20 - return qemu_chr_write_all(s, buf, len); + return qemu_chr_write(s, buf, len, true); } =20 int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len) --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496048000442605.9078995204679; Mon, 29 May 2017 01:53:20 -0700 (PDT) Received: from localhost ([::1]:47549 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGQQ-0004Go-K7 for importer@patchew.org; Mon, 29 May 2017 04:53:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60024) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGKm-0007yT-BQ for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGKg-0000zQ-CR for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34998) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGKf-0000zI-UZ for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:22 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D426F83F40; Mon, 29 May 2017 08:47:20 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 697FB18179; Mon, 29 May 2017 08:47:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D426F83F40 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D426F83F40 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:43 +0400 Message-Id: <20170529084546.26500-12-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 29 May 2017 08:47:21 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 11/14] char: move CharBackend handling in char-fe unit X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Move all the fronted struct and methods to a seperate unit. This avoids accidentally mixing backend and frontend calls, and helps with readibilty. Make qemu_chr_replay() a macro shared by both char and char-fe. Export qemu_chr_write(), and use a macro for qemu_chr_write_all() (nb: yes, CharBackend is for char frontend :) Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/chardev/char-fe.h | 249 ++++++++++++++++++++++++++ include/chardev/char-mux.h | 1 + include/chardev/char.h | 242 +------------------------- include/hw/char/bcm2835_aux.h | 2 +- include/hw/char/cadence_uart.h | 2 +- include/hw/char/digic-uart.h | 2 +- include/hw/char/imx_serial.h | 2 +- include/hw/char/serial.h | 2 +- include/hw/char/stm32f2xx_usart.h | 2 +- backends/rng-egd.c | 2 +- chardev/char-fe.c | 358 ++++++++++++++++++++++++++++++++++= ++++ chardev/char.c | 343 +---------------------------------= -- gdbstub.c | 1 + hw/arm/omap2.c | 2 +- hw/arm/pxa2xx.c | 2 +- hw/arm/strongarm.c | 1 + hw/char/cadence_uart.c | 1 + hw/char/debugcon.c | 2 +- hw/char/digic-uart.c | 2 +- hw/char/escc.c | 1 + hw/char/etraxfs_ser.c | 2 +- hw/char/exynos4210_uart.c | 1 + hw/char/grlib_apbuart.c | 2 +- hw/char/ipoctal232.c | 2 +- hw/char/lm32_juart.c | 2 +- hw/char/lm32_uart.c | 2 +- hw/char/mcf_uart.c | 2 +- hw/char/milkymist-uart.c | 2 +- hw/char/parallel.c | 1 + hw/char/pl011.c | 2 +- hw/char/sclpconsole-lm.c | 2 +- hw/char/sclpconsole.c | 2 +- hw/char/sh_serial.c | 2 +- hw/char/spapr_vty.c | 2 +- hw/char/terminal3270.c | 2 +- hw/char/virtio-console.c | 2 +- hw/char/xen_console.c | 2 +- hw/char/xilinx_uartlite.c | 2 +- hw/core/qdev-properties-system.c | 2 +- hw/ipmi/ipmi_bmc_extern.c | 2 +- hw/misc/ivshmem.c | 2 +- hw/usb/ccid-card-passthru.c | 2 +- hw/usb/dev-serial.c | 1 + hw/usb/redirect.c | 2 +- hw/virtio/vhost-user.c | 2 +- monitor.c | 2 +- net/colo-compare.c | 2 +- net/filter-mirror.c | 2 +- net/slirp.c | 2 +- net/vhost-user.c | 2 +- qtest.c | 2 +- slirp/slirp.c | 2 +- tests/test-char.c | 2 +- tests/vhost-user-test.c | 2 +- ui/console.c | 2 +- chardev/Makefile.objs | 1 + 56 files changed, 664 insertions(+), 623 deletions(-) create mode 100644 include/chardev/char-fe.h create mode 100644 chardev/char-fe.c diff --git a/include/chardev/char-fe.h b/include/chardev/char-fe.h new file mode 100644 index 0000000000..bd82093218 --- /dev/null +++ b/include/chardev/char-fe.h @@ -0,0 +1,249 @@ +#ifndef QEMU_CHAR_FE_H +#define QEMU_CHAR_FE_H + +#include "chardev/char.h" + +typedef void IOEventHandler(void *opaque, int event); + +/* This is the backend as seen by frontend, the actual backend is + * Chardev */ +struct CharBackend { + Chardev *chr; + IOEventHandler *chr_event; + IOCanReadHandler *chr_can_read; + IOReadHandler *chr_read; + void *opaque; + int tag; + int fe_open; +}; + +/** + * @qemu_chr_fe_init: + * + * Initializes a front end for the given CharBackend and + * Chardev. Call qemu_chr_fe_deinit() to remove the association and + * release the driver. + * + * Returns: false on error. + */ +bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error **errp); + +/** + * @qemu_chr_fe_deinit: + * + * Dissociate the CharBackend from the Chardev. + * + * Safe to call without associated Chardev. + */ +void qemu_chr_fe_deinit(CharBackend *b); + +/** + * @qemu_chr_fe_get_driver: + * + * Returns the driver associated with a CharBackend or NULL if no + * associated Chardev. + */ +Chardev *qemu_chr_fe_get_driver(CharBackend *be); + +/** + * @qemu_chr_fe_set_handlers: + * @b: a CharBackend + * @fd_can_read: callback to get the amount of data the frontend may + * receive + * @fd_read: callback to receive data from char + * @fd_event: event callback + * @opaque: an opaque pointer for the callbacks + * @context: a main loop context or NULL for the default + * @set_open: whether to call qemu_chr_fe_set_open() implicitely when + * any of the handler is non-NULL + * + * Set the front end char handlers. The front end takes the focus if + * any of the handler is non-NULL. + * + * Without associated Chardev, nothing is changed. + */ +void qemu_chr_fe_set_handlers(CharBackend *b, + IOCanReadHandler *fd_can_read, + IOReadHandler *fd_read, + IOEventHandler *fd_event, + void *opaque, + GMainContext *context, + bool set_open); + +/** + * @qemu_chr_fe_take_focus: + * + * Take the focus (if the front end is muxed). + * + * Without associated Chardev, nothing is changed. + */ +void qemu_chr_fe_take_focus(CharBackend *b); + +/** + * @qemu_chr_fe_accept_input: + * + * Notify that the frontend is ready to receive data + */ +void qemu_chr_fe_accept_input(CharBackend *be); + +/** + * @qemu_chr_fe_disconnect: + * + * Close a fd accpeted by character backend. + * Without associated Chardev, do nothing. + */ +void qemu_chr_fe_disconnect(CharBackend *be); + +/** + * @qemu_chr_fe_wait_connected: + * + * Wait for characted backend to be connected, return < 0 on error or + * if no assicated Chardev. + */ +int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp); + +/** + * @qemu_chr_fe_set_echo: + * + * Ask the backend to override its normal echo setting. This only really + * applies to the stdio backend and is used by the QMP server such that you + * can see what you type if you try to type QMP commands. + * Without associated Chardev, do nothing. + * + * @echo true to enable echo, false to disable echo + */ +void qemu_chr_fe_set_echo(CharBackend *be, bool echo); + +/** + * @qemu_chr_fe_set_open: + * + * Set character frontend open status. This is an indication that the + * front end is ready (or not) to begin doing I/O. + * Without associated Chardev, do nothing. + */ +void qemu_chr_fe_set_open(CharBackend *be, int fe_open); + +/** + * @qemu_chr_fe_printf: + * + * Write to a character backend using a printf style interface. This + * function is thread-safe. It does nothing without associated + * Chardev. + * + * @fmt see #printf + */ +void qemu_chr_fe_printf(CharBackend *be, const char *fmt, ...) + GCC_FMT_ATTR(2, 3); + +/** + * @qemu_chr_fe_add_watch: + * + * If the backend is connected, create and add a #GSource that fires + * when the given condition (typically G_IO_OUT|G_IO_HUP or G_IO_HUP) + * is active; return the #GSource's tag. If it is disconnected, + * or without associated Chardev, return 0. + * + * @cond the condition to poll for + * @func the function to call when the condition happens + * @user_data the opaque pointer to pass to @func + * + * Returns: the source tag + */ +guint qemu_chr_fe_add_watch(CharBackend *be, GIOCondition cond, + GIOFunc func, void *user_data); + +/** + * @qemu_chr_fe_write: + * + * Write data to a character backend from the front end. This function + * will send data from the front end to the back end. This function + * is thread-safe. + * + * @buf the data + * @len the number of bytes to send + * + * Returns: the number of bytes consumed (0 if no assicated Chardev) + */ +int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len); + +/** + * @qemu_chr_fe_write_all: + * + * Write data to a character backend from the front end. This function wi= ll + * send data from the front end to the back end. Unlike @qemu_chr_fe_writ= e, + * this function will block if the back end cannot consume all of the data + * attempted to be written. This function is thread-safe. + * + * @buf the data + * @len the number of bytes to send + * + * Returns: the number of bytes consumed (0 if no assicated Chardev) + */ +int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len); + +/** + * @qemu_chr_fe_read_all: + * + * Read data to a buffer from the back end. + * + * @buf the data buffer + * @len the number of bytes to read + * + * Returns: the number of bytes read (0 if no assicated Chardev) + */ +int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len); + +/** + * @qemu_chr_fe_ioctl: + * + * Issue a device specific ioctl to a backend. This function is thread-sa= fe. + * + * @cmd see CHR_IOCTL_* + * @arg the data associated with @cmd + * + * Returns: if @cmd is not supported by the backend or there is no + * associated Chardev, -ENOTSUP, otherwise the return + * value depends on the semantics of @cmd + */ +int qemu_chr_fe_ioctl(CharBackend *be, int cmd, void *arg); + +/** + * @qemu_chr_fe_get_msgfd: + * + * For backends capable of fd passing, return the latest file descriptor p= assed + * by a client. + * + * Returns: -1 if fd passing isn't supported or there is no pending file + * descriptor. If a file descriptor is returned, subsequent call= s to + * this function will return -1 until a client sends a new file + * descriptor. + */ +int qemu_chr_fe_get_msgfd(CharBackend *be); + +/** + * @qemu_chr_fe_get_msgfds: + * + * For backends capable of fd passing, return the number of file received + * descriptors and fills the fds array up to num elements + * + * Returns: -1 if fd passing isn't supported or there are no pending file + * descriptors. If file descriptors are returned, subsequent cal= ls to + * this function will return -1 until a client sends a new set of= file + * descriptors. + */ +int qemu_chr_fe_get_msgfds(CharBackend *be, int *fds, int num); + +/** + * @qemu_chr_fe_set_msgfds: + * + * For backends capable of fd passing, set an array of fds to be passed wi= th + * the next send operation. + * A subsequent call to this function before calling a write function will + * result in overwriting the fd array with the new value without being sen= d. + * Upon writing the message the fd array is freed. + * + * Returns: -1 if fd passing isn't supported or no associated Chardev. + */ +int qemu_chr_fe_set_msgfds(CharBackend *be, int *fds, int num); + +#endif /* QEMU_CHAR_FE_H */ diff --git a/include/chardev/char-mux.h b/include/chardev/char-mux.h index 45cdfc7e67..8928977897 100644 --- a/include/chardev/char-mux.h +++ b/include/chardev/char-mux.h @@ -25,6 +25,7 @@ #define CHAR_MUX_H =20 #include "chardev/char.h" +#include "chardev/char-fe.h" =20 extern bool muxes_realized; =20 diff --git a/include/chardev/char.h b/include/chardev/char.h index 95273e10ae..8a9ade4931 100644 --- a/include/chardev/char.h +++ b/include/chardev/char.h @@ -16,6 +16,7 @@ #define IAC 255 =20 /* character device */ +typedef struct CharBackend CharBackend; =20 typedef enum { CHR_EVENT_BREAK, /* serial break char */ @@ -27,8 +28,6 @@ typedef enum { =20 #define CHR_READ_BUF_LEN 4096 =20 -typedef void IOEventHandler(void *opaque, int event); - typedef enum { /* Whether the chardev peer is able to close and * reopen the data channel, thus requiring support @@ -44,17 +43,7 @@ typedef enum { QEMU_CHAR_FEATURE_LAST, } ChardevFeature; =20 -/* This is the backend as seen by frontend, the actual backend is - * Chardev */ -typedef struct CharBackend { - Chardev *chr; - IOEventHandler *chr_event; - IOCanReadHandler *chr_can_read; - IOReadHandler *chr_read; - void *opaque; - int tag; - int fe_open; -} CharBackend; +#define qemu_chr_replay(chr) qemu_chr_has_feature(chr, QEMU_CHAR_FEATURE_R= EPLAY) =20 struct Chardev { Object parent_obj; @@ -103,15 +92,6 @@ void qemu_chr_parse_common(QemuOpts *opts, ChardevCommo= n *backend); */ Chardev *qemu_chr_new(const char *label, const char *filename); =20 - -/** - * @qemu_chr_fe_disconnect: - * - * Close a fd accpeted by character backend. - * Without associated Chardev, do nothing. - */ -void qemu_chr_fe_disconnect(CharBackend *be); - /** * @qemu_chr_cleanup: * @@ -120,14 +100,6 @@ void qemu_chr_fe_disconnect(CharBackend *be); void qemu_chr_cleanup(void); =20 /** - * @qemu_chr_fe_wait_connected: - * - * Wait for characted backend to be connected, return < 0 on error or - * if no assicated Chardev. - */ -int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp); - -/** * @qemu_chr_new_noreplay: * * Create a new character backend from a URI. @@ -142,150 +114,6 @@ int qemu_chr_fe_wait_connected(CharBackend *be, Error= **errp); Chardev *qemu_chr_new_noreplay(const char *label, const char *filename); =20 /** - * @qemu_chr_fe_set_echo: - * - * Ask the backend to override its normal echo setting. This only really - * applies to the stdio backend and is used by the QMP server such that you - * can see what you type if you try to type QMP commands. - * Without associated Chardev, do nothing. - * - * @echo true to enable echo, false to disable echo - */ -void qemu_chr_fe_set_echo(CharBackend *be, bool echo); - -/** - * @qemu_chr_fe_set_open: - * - * Set character frontend open status. This is an indication that the - * front end is ready (or not) to begin doing I/O. - * Without associated Chardev, do nothing. - */ -void qemu_chr_fe_set_open(CharBackend *be, int fe_open); - -/** - * @qemu_chr_fe_printf: - * - * Write to a character backend using a printf style interface. This - * function is thread-safe. It does nothing without associated - * Chardev. - * - * @fmt see #printf - */ -void qemu_chr_fe_printf(CharBackend *be, const char *fmt, ...) - GCC_FMT_ATTR(2, 3); - -/** - * @qemu_chr_fe_add_watch: - * - * If the backend is connected, create and add a #GSource that fires - * when the given condition (typically G_IO_OUT|G_IO_HUP or G_IO_HUP) - * is active; return the #GSource's tag. If it is disconnected, - * or without associated Chardev, return 0. - * - * @cond the condition to poll for - * @func the function to call when the condition happens - * @user_data the opaque pointer to pass to @func - * - * Returns: the source tag - */ -guint qemu_chr_fe_add_watch(CharBackend *be, GIOCondition cond, - GIOFunc func, void *user_data); - -/** - * @qemu_chr_fe_write: - * - * Write data to a character backend from the front end. This function - * will send data from the front end to the back end. This function - * is thread-safe. - * - * @buf the data - * @len the number of bytes to send - * - * Returns: the number of bytes consumed (0 if no assicated Chardev) - */ -int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len); - -/** - * @qemu_chr_fe_write_all: - * - * Write data to a character backend from the front end. This function wi= ll - * send data from the front end to the back end. Unlike @qemu_chr_fe_writ= e, - * this function will block if the back end cannot consume all of the data - * attempted to be written. This function is thread-safe. - * - * @buf the data - * @len the number of bytes to send - * - * Returns: the number of bytes consumed (0 if no assicated Chardev) - */ -int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len); - -/** - * @qemu_chr_fe_read_all: - * - * Read data to a buffer from the back end. - * - * @buf the data buffer - * @len the number of bytes to read - * - * Returns: the number of bytes read (0 if no assicated Chardev) - */ -int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len); - -/** - * @qemu_chr_fe_ioctl: - * - * Issue a device specific ioctl to a backend. This function is thread-sa= fe. - * - * @cmd see CHR_IOCTL_* - * @arg the data associated with @cmd - * - * Returns: if @cmd is not supported by the backend or there is no - * associated Chardev, -ENOTSUP, otherwise the return - * value depends on the semantics of @cmd - */ -int qemu_chr_fe_ioctl(CharBackend *be, int cmd, void *arg); - -/** - * @qemu_chr_fe_get_msgfd: - * - * For backends capable of fd passing, return the latest file descriptor p= assed - * by a client. - * - * Returns: -1 if fd passing isn't supported or there is no pending file - * descriptor. If a file descriptor is returned, subsequent call= s to - * this function will return -1 until a client sends a new file - * descriptor. - */ -int qemu_chr_fe_get_msgfd(CharBackend *be); - -/** - * @qemu_chr_fe_get_msgfds: - * - * For backends capable of fd passing, return the number of file received - * descriptors and fills the fds array up to num elements - * - * Returns: -1 if fd passing isn't supported or there are no pending file - * descriptors. If file descriptors are returned, subsequent cal= ls to - * this function will return -1 until a client sends a new set of= file - * descriptors. - */ -int qemu_chr_fe_get_msgfds(CharBackend *be, int *fds, int num); - -/** - * @qemu_chr_fe_set_msgfds: - * - * For backends capable of fd passing, set an array of fds to be passed wi= th - * the next send operation. - * A subsequent call to this function before calling a write function will - * result in overwriting the fd array with the new value without being sen= d. - * Upon writing the message the fd array is freed. - * - * Returns: -1 if fd passing isn't supported or no associated Chardev. - */ -int qemu_chr_fe_set_msgfds(CharBackend *be, int *fds, int num); - -/** * @qemu_chr_be_can_write: * * Determine how much data the front end can currently accept. This funct= ion @@ -328,69 +156,6 @@ void qemu_chr_be_write_impl(Chardev *s, uint8_t *buf, = int len); */ void qemu_chr_be_event(Chardev *s, int event); =20 -/** - * @qemu_chr_fe_init: - * - * Initializes a front end for the given CharBackend and - * Chardev. Call qemu_chr_fe_deinit() to remove the association and - * release the driver. - * - * Returns: false on error. - */ -bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error **errp); - -/** - * @qemu_chr_fe_get_driver: - * - * Returns the driver associated with a CharBackend or NULL if no - * associated Chardev. - */ -Chardev *qemu_chr_fe_get_driver(CharBackend *be); - -/** - * @qemu_chr_fe_deinit: - * - * Dissociate the CharBackend from the Chardev. - * - * Safe to call without associated Chardev. - */ -void qemu_chr_fe_deinit(CharBackend *b); - -/** - * @qemu_chr_fe_set_handlers: - * @b: a CharBackend - * @fd_can_read: callback to get the amount of data the frontend may - * receive - * @fd_read: callback to receive data from char - * @fd_event: event callback - * @opaque: an opaque pointer for the callbacks - * @context: a main loop context or NULL for the default - * @set_open: whether to call qemu_chr_fe_set_open() implicitely when - * any of the handler is non-NULL - * - * Set the front end char handlers. The front end takes the focus if - * any of the handler is non-NULL. - * - * Without associated Chardev, nothing is changed. - */ -void qemu_chr_fe_set_handlers(CharBackend *b, - IOCanReadHandler *fd_can_read, - IOReadHandler *fd_read, - IOEventHandler *fd_event, - void *opaque, - GMainContext *context, - bool set_open); - -/** - * @qemu_chr_fe_take_focus: - * - * Take the focus (if the front end is muxed). - * - * Without associated Chardev, nothing is changed. - */ -void qemu_chr_fe_take_focus(CharBackend *b); - -void qemu_chr_fe_accept_input(CharBackend *be); int qemu_chr_add_client(Chardev *s, int fd); Chardev *qemu_chr_find(const char *name); =20 @@ -399,7 +164,8 @@ bool qemu_chr_has_feature(Chardev *chr, void qemu_chr_set_feature(Chardev *chr, ChardevFeature feature); QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename); -int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len); +int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool write_all= ); +#define qemu_chr_write_all(s, buf, len) qemu_chr_write(s, buf, len, true) int qemu_chr_wait_connected(Chardev *chr, Error **errp); =20 #define TYPE_CHARDEV "chardev" diff --git a/include/hw/char/bcm2835_aux.h b/include/hw/char/bcm2835_aux.h index 2a051c5646..cdbf7e3e37 100644 --- a/include/hw/char/bcm2835_aux.h +++ b/include/hw/char/bcm2835_aux.h @@ -9,7 +9,7 @@ #define BCM2835_AUX_H =20 #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 #define TYPE_BCM2835_AUX "bcm2835-aux" #define BCM2835_AUX(obj) OBJECT_CHECK(BCM2835AuxState, (obj), TYPE_BCM2835= _AUX) diff --git a/include/hw/char/cadence_uart.h b/include/hw/char/cadence_uart.h index eed7d8d358..118e3f10de 100644 --- a/include/hw/char/cadence_uart.h +++ b/include/hw/char/cadence_uart.h @@ -19,7 +19,7 @@ #ifndef CADENCE_UART_H =20 #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/timer.h" =20 #define CADENCE_UART_RX_FIFO_SIZE 16 diff --git a/include/hw/char/digic-uart.h b/include/hw/char/digic-uart.h index 370b48a6c5..de9a3e3551 100644 --- a/include/hw/char/digic-uart.h +++ b/include/hw/char/digic-uart.h @@ -19,7 +19,7 @@ #define HW_CHAR_DIGIC_UART_H =20 #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 #define TYPE_DIGIC_UART "digic-uart" #define DIGIC_UART(obj) \ diff --git a/include/hw/char/imx_serial.h b/include/hw/char/imx_serial.h index 05500f5346..baeec3183f 100644 --- a/include/hw/char/imx_serial.h +++ b/include/hw/char/imx_serial.h @@ -19,7 +19,7 @@ #define IMX_SERIAL_H =20 #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 #define TYPE_IMX_SERIAL "imx.serial" #define IMX_SERIAL(obj) OBJECT_CHECK(IMXSerialState, (obj), TYPE_IMX_SERIA= L) diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h index 01dcd2a8d2..c4daf11a14 100644 --- a/include/hw/char/serial.h +++ b/include/hw/char/serial.h @@ -28,7 +28,7 @@ =20 #include "hw/hw.h" #include "sysemu/sysemu.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "exec/memory.h" #include "qemu/fifo8.h" #include "chardev/char.h" diff --git a/include/hw/char/stm32f2xx_usart.h b/include/hw/char/stm32f2xx_= usart.h index 4259dbeb1e..9d03a7527c 100644 --- a/include/hw/char/stm32f2xx_usart.h +++ b/include/hw/char/stm32f2xx_usart.h @@ -26,7 +26,7 @@ #define HW_STM32F2XX_USART_H =20 #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "hw/hw.h" =20 #define USART_SR 0x00 diff --git a/backends/rng-egd.c b/backends/rng-egd.c index 5448f6e5f5..ad3e1e5edf 100644 --- a/backends/rng-egd.c +++ b/backends/rng-egd.c @@ -12,7 +12,7 @@ =20 #include "qemu/osdep.h" #include "sysemu/rng.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qapi/error.h" #include "qapi/qmp/qerror.h" =20 diff --git a/chardev/char-fe.c b/chardev/char-fe.c new file mode 100644 index 0000000000..341221d029 --- /dev/null +++ b/chardev/char-fe.c @@ -0,0 +1,358 @@ +/* + * QEMU System Emulator + * + * Copyright (c) 2003-2008 Fabrice Bellard + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OT= HER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + */ +#include "qemu/osdep.h" +#include "qemu/error-report.h" +#include "qapi/error.h" +#include "qapi-visit.h" +#include "sysemu/replay.h" + +#include "chardev/char-fe.h" +#include "chardev/char-io.h" +#include "chardev/char-mux.h" + +int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len) +{ + Chardev *s =3D be->chr; + + if (!s) { + return 0; + } + + return qemu_chr_write(s, buf, len, false); +} + +int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len) +{ + Chardev *s =3D be->chr; + + if (!s) { + return 0; + } + + return qemu_chr_write(s, buf, len, true); +} + +int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len) +{ + Chardev *s =3D be->chr; + int offset =3D 0, counter =3D 10; + int res; + + if (!s || !CHARDEV_GET_CLASS(s)->chr_sync_read) { + return 0; + } + + if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_PLAY) { + return replay_char_read_all_load(buf); + } + + while (offset < len) { + retry: + res =3D CHARDEV_GET_CLASS(s)->chr_sync_read(s, buf + offset, + len - offset); + if (res =3D=3D -1 && errno =3D=3D EAGAIN) { + g_usleep(100); + goto retry; + } + + if (res =3D=3D 0) { + break; + } + + if (res < 0) { + if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_RECOR= D) { + replay_char_read_all_save_error(res); + } + return res; + } + + offset +=3D res; + + if (!counter--) { + break; + } + } + + if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_RECORD) { + replay_char_read_all_save_buf(buf, offset); + } + return offset; +} + +int qemu_chr_fe_ioctl(CharBackend *be, int cmd, void *arg) +{ + Chardev *s =3D be->chr; + int res; + + if (!s || !CHARDEV_GET_CLASS(s)->chr_ioctl || qemu_chr_replay(s)) { + res =3D -ENOTSUP; + } else { + res =3D CHARDEV_GET_CLASS(s)->chr_ioctl(s, cmd, arg); + } + + return res; +} + +int qemu_chr_fe_get_msgfd(CharBackend *be) +{ + Chardev *s =3D be->chr; + int fd; + int res =3D (qemu_chr_fe_get_msgfds(be, &fd, 1) =3D=3D 1) ? fd : -1; + if (s && qemu_chr_replay(s)) { + error_report("Replay: get msgfd is not supported " + "for serial devices yet"); + exit(1); + } + return res; +} + +int qemu_chr_fe_get_msgfds(CharBackend *be, int *fds, int len) +{ + Chardev *s =3D be->chr; + + if (!s) { + return -1; + } + + return CHARDEV_GET_CLASS(s)->get_msgfds ? + CHARDEV_GET_CLASS(s)->get_msgfds(s, fds, len) : -1; +} + +int qemu_chr_fe_set_msgfds(CharBackend *be, int *fds, int num) +{ + Chardev *s =3D be->chr; + + if (!s) { + return -1; + } + + return CHARDEV_GET_CLASS(s)->set_msgfds ? + CHARDEV_GET_CLASS(s)->set_msgfds(s, fds, num) : -1; +} + +void qemu_chr_fe_accept_input(CharBackend *be) +{ + Chardev *s =3D be->chr; + + if (!s) { + return; + } + + if (CHARDEV_GET_CLASS(s)->chr_accept_input) { + CHARDEV_GET_CLASS(s)->chr_accept_input(s); + } + qemu_notify_event(); +} + +void qemu_chr_fe_printf(CharBackend *be, const char *fmt, ...) +{ + char buf[CHR_READ_BUF_LEN]; + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + /* XXX this blocks entire thread. Rewrite to use + * qemu_chr_fe_write and background I/O callbacks */ + qemu_chr_fe_write_all(be, (uint8_t *)buf, strlen(buf)); + va_end(ap); +} + +Chardev *qemu_chr_fe_get_driver(CharBackend *be) +{ + return be->chr; +} + +bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error **errp) +{ + int tag =3D 0; + + if (CHARDEV_IS_MUX(s)) { + MuxChardev *d =3D MUX_CHARDEV(s); + + if (d->mux_cnt >=3D MAX_MUX) { + goto unavailable; + } + + d->backends[d->mux_cnt] =3D b; + tag =3D d->mux_cnt++; + } else if (s->be) { + goto unavailable; + } else { + s->be =3D b; + } + + b->fe_open =3D false; + b->tag =3D tag; + b->chr =3D s; + return true; + +unavailable: + error_setg(errp, QERR_DEVICE_IN_USE, s->label); + return false; +} + +void qemu_chr_fe_deinit(CharBackend *b) +{ + assert(b); + + if (b->chr) { + qemu_chr_fe_set_handlers(b, NULL, NULL, NULL, NULL, NULL, true); + if (b->chr->be =3D=3D b) { + b->chr->be =3D NULL; + } + if (CHARDEV_IS_MUX(b->chr)) { + MuxChardev *d =3D MUX_CHARDEV(b->chr); + d->backends[b->tag] =3D NULL; + } + b->chr =3D NULL; + } +} + +void qemu_chr_fe_set_handlers(CharBackend *b, + IOCanReadHandler *fd_can_read, + IOReadHandler *fd_read, + IOEventHandler *fd_event, + void *opaque, + GMainContext *context, + bool set_open) +{ + Chardev *s; + ChardevClass *cc; + int fe_open; + + s =3D b->chr; + if (!s) { + return; + } + + cc =3D CHARDEV_GET_CLASS(s); + if (!opaque && !fd_can_read && !fd_read && !fd_event) { + fe_open =3D 0; + remove_fd_in_watch(s); + } else { + fe_open =3D 1; + } + b->chr_can_read =3D fd_can_read; + b->chr_read =3D fd_read; + b->chr_event =3D fd_event; + b->opaque =3D opaque; + if (cc->chr_update_read_handler) { + cc->chr_update_read_handler(s, context); + } + + if (set_open) { + qemu_chr_fe_set_open(b, fe_open); + } + + if (fe_open) { + qemu_chr_fe_take_focus(b); + /* We're connecting to an already opened device, so let's make sur= e we + also get the open event */ + if (s->be_open) { + qemu_chr_be_event(s, CHR_EVENT_OPENED); + } + } + + if (CHARDEV_IS_MUX(s)) { + mux_chr_set_handlers(s, context); + } +} + +void qemu_chr_fe_take_focus(CharBackend *b) +{ + if (!b->chr) { + return; + } + + if (CHARDEV_IS_MUX(b->chr)) { + mux_set_focus(b->chr, b->tag); + } +} + +int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp) +{ + if (!be->chr) { + error_setg(errp, "missing associated backend"); + return -1; + } + + return qemu_chr_wait_connected(be->chr, errp); +} + +void qemu_chr_fe_set_echo(CharBackend *be, bool echo) +{ + Chardev *chr =3D be->chr; + + if (chr && CHARDEV_GET_CLASS(chr)->chr_set_echo) { + CHARDEV_GET_CLASS(chr)->chr_set_echo(chr, echo); + } +} + +void qemu_chr_fe_set_open(CharBackend *be, int fe_open) +{ + Chardev *chr =3D be->chr; + + if (!chr) { + return; + } + + if (be->fe_open =3D=3D fe_open) { + return; + } + be->fe_open =3D fe_open; + if (CHARDEV_GET_CLASS(chr)->chr_set_fe_open) { + CHARDEV_GET_CLASS(chr)->chr_set_fe_open(chr, fe_open); + } +} + +guint qemu_chr_fe_add_watch(CharBackend *be, GIOCondition cond, + GIOFunc func, void *user_data) +{ + Chardev *s =3D be->chr; + GSource *src; + guint tag; + + if (!s || CHARDEV_GET_CLASS(s)->chr_add_watch =3D=3D NULL) { + return 0; + } + + src =3D CHARDEV_GET_CLASS(s)->chr_add_watch(s, cond); + if (!src) { + return 0; + } + + g_source_set_callback(src, (GSourceFunc)func, user_data, NULL); + tag =3D g_source_attach(src, NULL); + g_source_unref(src); + + return tag; +} + +void qemu_chr_fe_disconnect(CharBackend *be) +{ + Chardev *chr =3D be->chr; + + if (chr && CHARDEV_GET_CLASS(chr)->chr_disconnect) { + CHARDEV_GET_CLASS(chr)->chr_disconnect(chr); + } +} diff --git a/chardev/char.c b/chardev/char.c index 9a7c70c7aa..3d5316166e 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -22,7 +22,6 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" -#include "qemu-common.h" #include "qemu/cutils.h" #include "monitor/monitor.h" #include "sysemu/sysemu.h" @@ -35,9 +34,6 @@ #include "qemu/help_option.h" =20 #include "chardev/char-mux.h" -#include "chardev/char-io.h" -#include "chardev/char-parallel.h" -#include "chardev/char-serial.h" =20 /***********************************************************/ /* character device */ @@ -129,13 +125,7 @@ static int qemu_chr_fe_write_buffer(Chardev *s, return res; } =20 -static bool qemu_chr_replay(Chardev *chr) -{ - return qemu_chr_has_feature(chr, QEMU_CHAR_FEATURE_REPLAY); -} - -static int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, - bool write_all) +int qemu_chr_write(Chardev *s, const uint8_t *buf, int len, bool write_all) { int offset =3D 0; int res; @@ -159,94 +149,6 @@ static int qemu_chr_write(Chardev *s, const uint8_t *b= uf, int len, return offset; } =20 -int qemu_chr_write_all(Chardev *s, const uint8_t *buf, int len) -{ - return qemu_chr_write(s, buf, len, true); -} - -int qemu_chr_fe_write(CharBackend *be, const uint8_t *buf, int len) -{ - Chardev *s =3D be->chr; - - if (!s) { - return 0; - } - - return qemu_chr_write(s, buf, len, false); -} - -int qemu_chr_fe_write_all(CharBackend *be, const uint8_t *buf, int len) -{ - Chardev *s =3D be->chr; - - if (!s) { - return 0; - } - - return qemu_chr_write(s, buf, len, true); -} - -int qemu_chr_fe_read_all(CharBackend *be, uint8_t *buf, int len) -{ - Chardev *s =3D be->chr; - int offset =3D 0, counter =3D 10; - int res; - - if (!s || !CHARDEV_GET_CLASS(s)->chr_sync_read) { - return 0; - } - - if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_PLAY) { - return replay_char_read_all_load(buf); - } - - while (offset < len) { - retry: - res =3D CHARDEV_GET_CLASS(s)->chr_sync_read(s, buf + offset, - len - offset); - if (res =3D=3D -1 && errno =3D=3D EAGAIN) { - g_usleep(100); - goto retry; - } - - if (res =3D=3D 0) { - break; - } - - if (res < 0) { - if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_RECOR= D) { - replay_char_read_all_save_error(res); - } - return res; - } - - offset +=3D res; - - if (!counter--) { - break; - } - } - - if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_RECORD) { - replay_char_read_all_save_buf(buf, offset); - } - return offset; -} - -int qemu_chr_fe_ioctl(CharBackend *be, int cmd, void *arg) -{ - Chardev *s =3D be->chr; - int res; - - if (!s || !CHARDEV_GET_CLASS(s)->chr_ioctl || qemu_chr_replay(s)) { - res =3D -ENOTSUP; - } else { - res =3D CHARDEV_GET_CLASS(s)->chr_ioctl(s, cmd, arg); - } - - return res; -} - int qemu_chr_be_can_write(Chardev *s) { CharBackend *be =3D s->be; @@ -279,75 +181,12 @@ void qemu_chr_be_write(Chardev *s, uint8_t *buf, int = len) } } =20 -int qemu_chr_fe_get_msgfd(CharBackend *be) -{ - Chardev *s =3D be->chr; - int fd; - int res =3D (qemu_chr_fe_get_msgfds(be, &fd, 1) =3D=3D 1) ? fd : -1; - if (s && qemu_chr_replay(s)) { - error_report("Replay: get msgfd is not supported " - "for serial devices yet"); - exit(1); - } - return res; -} - -int qemu_chr_fe_get_msgfds(CharBackend *be, int *fds, int len) -{ - Chardev *s =3D be->chr; - - if (!s) { - return -1; - } - - return CHARDEV_GET_CLASS(s)->get_msgfds ? - CHARDEV_GET_CLASS(s)->get_msgfds(s, fds, len) : -1; -} - -int qemu_chr_fe_set_msgfds(CharBackend *be, int *fds, int num) -{ - Chardev *s =3D be->chr; - - if (!s) { - return -1; - } - - return CHARDEV_GET_CLASS(s)->set_msgfds ? - CHARDEV_GET_CLASS(s)->set_msgfds(s, fds, num) : -1; -} - int qemu_chr_add_client(Chardev *s, int fd) { return CHARDEV_GET_CLASS(s)->chr_add_client ? CHARDEV_GET_CLASS(s)->chr_add_client(s, fd) : -1; } =20 -void qemu_chr_fe_accept_input(CharBackend *be) -{ - Chardev *s =3D be->chr; - - if (!s) { - return; - } - - if (CHARDEV_GET_CLASS(s)->chr_accept_input) { - CHARDEV_GET_CLASS(s)->chr_accept_input(s); - } - qemu_notify_event(); -} - -void qemu_chr_fe_printf(CharBackend *be, const char *fmt, ...) -{ - char buf[CHR_READ_BUF_LEN]; - va_list ap; - va_start(ap, fmt); - vsnprintf(buf, sizeof(buf), fmt, ap); - /* XXX this blocks entire thread. Rewrite to use - * qemu_chr_fe_write and background I/O callbacks */ - qemu_chr_fe_write_all(be, (uint8_t *)buf, strlen(buf)); - va_end(ap); -} - static void qemu_char_open(Chardev *chr, ChardevBackend *backend, bool *be_opened, Error **errp) { @@ -459,40 +298,6 @@ static Notifier muxes_realize_notify =3D { .notify =3D muxes_realize_done, }; =20 -Chardev *qemu_chr_fe_get_driver(CharBackend *be) -{ - return be->chr; -} - -bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error **errp) -{ - int tag =3D 0; - - if (CHARDEV_IS_MUX(s)) { - MuxChardev *d =3D MUX_CHARDEV(s); - - if (d->mux_cnt >=3D MAX_MUX) { - goto unavailable; - } - - d->backends[d->mux_cnt] =3D b; - tag =3D d->mux_cnt++; - } else if (s->be) { - goto unavailable; - } else { - s->be =3D b; - } - - b->fe_open =3D false; - b->tag =3D tag; - b->chr =3D s; - return true; - -unavailable: - error_setg(errp, QERR_DEVICE_IN_USE, s->label); - return false; -} - static bool qemu_chr_is_busy(Chardev *s) { if (CHARDEV_IS_MUX(s)) { @@ -503,84 +308,6 @@ static bool qemu_chr_is_busy(Chardev *s) } } =20 -void qemu_chr_fe_deinit(CharBackend *b) -{ - assert(b); - - if (b->chr) { - qemu_chr_fe_set_handlers(b, NULL, NULL, NULL, NULL, NULL, true); - if (b->chr->be =3D=3D b) { - b->chr->be =3D NULL; - } - if (CHARDEV_IS_MUX(b->chr)) { - MuxChardev *d =3D MUX_CHARDEV(b->chr); - d->backends[b->tag] =3D NULL; - } - b->chr =3D NULL; - } -} - -void qemu_chr_fe_set_handlers(CharBackend *b, - IOCanReadHandler *fd_can_read, - IOReadHandler *fd_read, - IOEventHandler *fd_event, - void *opaque, - GMainContext *context, - bool set_open) -{ - Chardev *s; - ChardevClass *cc; - int fe_open; - - s =3D b->chr; - if (!s) { - return; - } - - cc =3D CHARDEV_GET_CLASS(s); - if (!opaque && !fd_can_read && !fd_read && !fd_event) { - fe_open =3D 0; - remove_fd_in_watch(s); - } else { - fe_open =3D 1; - } - b->chr_can_read =3D fd_can_read; - b->chr_read =3D fd_read; - b->chr_event =3D fd_event; - b->opaque =3D opaque; - if (cc->chr_update_read_handler) { - cc->chr_update_read_handler(s, context); - } - - if (set_open) { - qemu_chr_fe_set_open(b, fe_open); - } - - if (fe_open) { - qemu_chr_fe_take_focus(b); - /* We're connecting to an already opened device, so let's make sur= e we - also get the open event */ - if (s->be_open) { - qemu_chr_be_event(s, CHR_EVENT_OPENED); - } - } - - if (CHARDEV_IS_MUX(s)) { - mux_chr_set_handlers(s, context); - } -} - -void qemu_chr_fe_take_focus(CharBackend *b) -{ - if (!b->chr) { - return; - } - - if (CHARDEV_IS_MUX(b->chr)) { - mux_set_focus(b->chr, b->tag); - } -} - int qemu_chr_wait_connected(Chardev *chr, Error **errp) { ChardevClass *cc =3D CHARDEV_GET_CLASS(chr); @@ -592,16 +319,6 @@ int qemu_chr_wait_connected(Chardev *chr, Error **errp) return 0; } =20 -int qemu_chr_fe_wait_connected(CharBackend *be, Error **errp) -{ - if (!be->chr) { - error_setg(errp, "missing associated backend"); - return -1; - } - - return qemu_chr_wait_connected(be->chr, errp); -} - QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename) { char host[65], port[33], width[8], height[8]; @@ -978,64 +695,6 @@ Chardev *qemu_chr_new(const char *label, const char *f= ilename) return chr; } =20 -void qemu_chr_fe_set_echo(CharBackend *be, bool echo) -{ - Chardev *chr =3D be->chr; - - if (chr && CHARDEV_GET_CLASS(chr)->chr_set_echo) { - CHARDEV_GET_CLASS(chr)->chr_set_echo(chr, echo); - } -} - -void qemu_chr_fe_set_open(CharBackend *be, int fe_open) -{ - Chardev *chr =3D be->chr; - - if (!chr) { - return; - } - - if (be->fe_open =3D=3D fe_open) { - return; - } - be->fe_open =3D fe_open; - if (CHARDEV_GET_CLASS(chr)->chr_set_fe_open) { - CHARDEV_GET_CLASS(chr)->chr_set_fe_open(chr, fe_open); - } -} - -guint qemu_chr_fe_add_watch(CharBackend *be, GIOCondition cond, - GIOFunc func, void *user_data) -{ - Chardev *s =3D be->chr; - GSource *src; - guint tag; - - if (!s || CHARDEV_GET_CLASS(s)->chr_add_watch =3D=3D NULL) { - return 0; - } - - src =3D CHARDEV_GET_CLASS(s)->chr_add_watch(s, cond); - if (!src) { - return 0; - } - - g_source_set_callback(src, (GSourceFunc)func, user_data, NULL); - tag =3D g_source_attach(src, NULL); - g_source_unref(src); - - return tag; -} - -void qemu_chr_fe_disconnect(CharBackend *be) -{ - Chardev *chr =3D be->chr; - - if (chr && CHARDEV_GET_CLASS(chr)->chr_disconnect) { - CHARDEV_GET_CLASS(chr)->chr_disconnect(chr); - } -} - static int qmp_query_chardev_foreach(Object *obj, void *data) { Chardev *chr =3D CHARDEV(obj); diff --git a/gdbstub.c b/gdbstub.c index 6515c635dc..4251d23898 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -26,6 +26,7 @@ #else #include "monitor/monitor.h" #include "chardev/char.h" +#include "chardev/char-fe.h" #include "sysemu/sysemu.h" #include "exec/gdbstub.h" #endif diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c index 566749a9eb..4b4c024693 100644 --- a/hw/arm/omap2.c +++ b/hw/arm/omap2.c @@ -30,7 +30,7 @@ #include "hw/arm/omap.h" #include "sysemu/sysemu.h" #include "qemu/timer.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "hw/block/flash.h" #include "hw/arm/soc_dma.h" #include "hw/sysbus.h" diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index 0d43cc707c..629e6c64e6 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -17,7 +17,7 @@ #include "hw/char/serial.h" #include "hw/i2c/i2c.h" #include "hw/ssi/ssi.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "qemu/cutils.h" diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c index 967caea749..7683edc9e5 100644 --- a/hw/arm/strongarm.c +++ b/hw/arm/strongarm.c @@ -34,6 +34,7 @@ #include "strongarm.h" #include "qemu/error-report.h" #include "hw/arm/arm.h" +#include "chardev/char-fe.h" #include "chardev/char-serial.h" #include "sysemu/sysemu.h" #include "hw/ssi/ssi.h" diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index 4bfc185376..4a2c124104 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -23,6 +23,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" +#include "chardev/char-fe.h" #include "chardev/char-serial.h" #include "qemu/timer.h" #include "qemu/log.h" diff --git a/hw/char/debugcon.c b/hw/char/debugcon.c index 77d91c8558..762e3d8ada 100644 --- a/hw/char/debugcon.c +++ b/hw/char/debugcon.c @@ -27,7 +27,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "hw/hw.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "hw/isa/isa.h" #include "hw/i386/pc.h" =20 diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c index 4f1dec7f1d..34306e11ff 100644 --- a/hw/char/digic-uart.c +++ b/hw/char/digic-uart.c @@ -29,7 +29,7 @@ #include "qemu/osdep.h" #include "hw/hw.h" #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/log.h" =20 #include "hw/char/digic-uart.h" diff --git a/hw/char/escc.c b/hw/char/escc.c index 81d792cb47..3f787632c7 100644 --- a/hw/char/escc.c +++ b/hw/char/escc.c @@ -26,6 +26,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "hw/char/escc.h" +#include "chardev/char-fe.h" #include "chardev/char-serial.h" #include "ui/console.h" #include "ui/input.h" diff --git a/hw/char/etraxfs_ser.c b/hw/char/etraxfs_ser.c index 33e3e16397..c1fba9f50f 100644 --- a/hw/char/etraxfs_ser.c +++ b/hw/char/etraxfs_ser.c @@ -24,7 +24,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/log.h" =20 #define D(x) diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c index d93125645a..b51d44a321 100644 --- a/hw/char/exynos4210_uart.c +++ b/hw/char/exynos4210_uart.c @@ -23,6 +23,7 @@ #include "hw/sysbus.h" #include "qemu/error-report.h" #include "sysemu/sysemu.h" +#include "chardev/char-fe.h" #include "chardev/char-serial.h" =20 #include "hw/arm/exynos4210.h" diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c index 39d1133c61..32d98edf49 100644 --- a/hw/char/grlib_apbuart.c +++ b/hw/char/grlib_apbuart.c @@ -24,7 +24,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 #include "trace.h" =20 diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c index b8a3c92c9e..337a3e566a 100644 --- a/hw/char/ipoctal232.c +++ b/hw/char/ipoctal232.c @@ -11,7 +11,7 @@ #include "qemu/osdep.h" #include "hw/ipack/ipack.h" #include "qemu/bitops.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 /* #define DEBUG_IPOCTAL */ =20 diff --git a/hw/char/lm32_juart.c b/hw/char/lm32_juart.c index 6b0633e518..3948dcd332 100644 --- a/hw/char/lm32_juart.c +++ b/hw/char/lm32_juart.c @@ -21,7 +21,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "trace.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 #include "hw/char/lm32_juart.h" =20 diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c index a7610c28ce..cff8c38f90 100644 --- a/hw/char/lm32_uart.c +++ b/hw/char/lm32_uart.c @@ -26,7 +26,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "trace.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/error-report.h" =20 enum { diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c index b639b53c83..fe12ad5ccb 100644 --- a/hw/char/mcf_uart.c +++ b/hw/char/mcf_uart.c @@ -9,7 +9,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "hw/m68k/mcf.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "exec/address-spaces.h" #include "qapi/error.h" =20 diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c index 5ef847c5eb..e19d0f6520 100644 --- a/hw/char/milkymist-uart.c +++ b/hw/char/milkymist-uart.c @@ -25,7 +25,7 @@ #include "hw/hw.h" #include "hw/sysbus.h" #include "trace.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/error-report.h" =20 enum { diff --git a/hw/char/parallel.c b/hw/char/parallel.c index 1d6c6e9f33..75a1a2f55e 100644 --- a/hw/char/parallel.c +++ b/hw/char/parallel.c @@ -26,6 +26,7 @@ #include "qapi/error.h" #include "hw/hw.h" #include "chardev/char-parallel.h" +#include "chardev/char-fe.h" #include "hw/isa/isa.h" #include "hw/i386/pc.h" #include "sysemu/sysemu.h" diff --git a/hw/char/pl011.c b/hw/char/pl011.c index 1757035bb3..33802f00c8 100644 --- a/hw/char/pl011.c +++ b/hw/char/pl011.c @@ -9,7 +9,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/log.h" #include "trace.h" =20 diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c index 755d514188..1b15046690 100644 --- a/hw/char/sclpconsole-lm.c +++ b/hw/char/sclpconsole-lm.c @@ -17,7 +17,7 @@ #include "hw/qdev.h" #include "qemu/thread.h" #include "qemu/error-report.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 #include "hw/s390x/sclp.h" #include "hw/s390x/event-facility.h" diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c index 0fd3cb4887..4a107a268d 100644 --- a/hw/char/sclpconsole.c +++ b/hw/char/sclpconsole.c @@ -19,7 +19,7 @@ =20 #include "hw/s390x/sclp.h" #include "hw/s390x/event-facility.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 typedef struct ASCIIConsoleData { EventBufferHeader ebh; diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c index 80c7696d8d..ca9816d045 100644 --- a/hw/char/sh_serial.c +++ b/hw/char/sh_serial.c @@ -27,7 +27,7 @@ #include "qemu/osdep.h" #include "hw/hw.h" #include "hw/sh4/sh.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "exec/address-spaces.h" #include "qapi/error.h" =20 diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c index 2317e45404..8f02f3a612 100644 --- a/hw/char/spapr_vty.c +++ b/hw/char/spapr_vty.c @@ -4,7 +4,7 @@ #include "qemu-common.h" #include "cpu.h" #include "hw/qdev.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "hw/ppc/spapr.h" #include "hw/ppc/spapr_vio.h" =20 diff --git a/hw/char/terminal3270.c b/hw/char/terminal3270.c index c043104185..7b10a04f18 100644 --- a/hw/char/terminal3270.c +++ b/hw/char/terminal3270.c @@ -13,7 +13,7 @@ =20 #include "qemu/osdep.h" #include "qapi/error.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "hw/s390x/3270-ccw.h" =20 /* Enough spaces for different window sizes. */ diff --git a/hw/char/virtio-console.c b/hw/char/virtio-console.c index 8418db6a07..0cb1668c8a 100644 --- a/hw/char/virtio-console.c +++ b/hw/char/virtio-console.c @@ -11,7 +11,7 @@ */ =20 #include "qemu/osdep.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/error-report.h" #include "trace.h" #include "hw/virtio/virtio-serial.h" diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c index 1cdbe59f8a..cb849c2e3e 100644 --- a/hw/char/xen_console.c +++ b/hw/char/xen_console.c @@ -25,7 +25,7 @@ =20 #include "qapi/error.h" #include "hw/hw.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "hw/xen/xen_backend.h" #include "qapi/error.h" =20 diff --git a/hw/char/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c index bcebdae3da..71ed2fc1be 100644 --- a/hw/char/xilinx_uartlite.c +++ b/hw/char/xilinx_uartlite.c @@ -24,7 +24,7 @@ =20 #include "qemu/osdep.h" #include "hw/sysbus.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 #define DUART(x) =20 diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 4da0c6a24e..a549d39030 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -20,7 +20,7 @@ #include "hw/block/block.h" #include "net/hub.h" #include "qapi/visitor.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "sysemu/iothread.h" =20 static void get_pointer(Object *obj, Visitor *v, Property *prop, diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c index 35285383fd..329b03e17f 100644 --- a/hw/ipmi/ipmi_bmc_extern.c +++ b/hw/ipmi/ipmi_bmc_extern.c @@ -30,7 +30,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "qemu/timer.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "sysemu/sysemu.h" #include "hw/ipmi/ipmi.h" =20 diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index cd064dcf8c..6367d041f0 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -29,7 +29,7 @@ #include "qemu/error-report.h" #include "qemu/event_notifier.h" #include "qom/object_interfaces.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "sysemu/hostmem.h" #include "sysemu/qtest.h" #include "qapi/visitor.h" diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c index c2096b25ab..fed3683a50 100644 --- a/hw/usb/ccid-card-passthru.c +++ b/hw/usb/ccid-card-passthru.c @@ -9,7 +9,7 @@ */ =20 #include "qemu/osdep.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/error-report.h" #include "qemu/sockets.h" #include "ccid.h" diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c index a145c919e9..17d650f35a 100644 --- a/hw/usb/dev-serial.c +++ b/hw/usb/dev-serial.c @@ -16,6 +16,7 @@ #include "hw/usb.h" #include "hw/usb/desc.h" #include "chardev/char-serial.h" +#include "chardev/char-fe.h" =20 //#define DEBUG_Serial =20 diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index c862c1adea..d2b3a84a03 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -33,7 +33,7 @@ #include "qapi/qmp/qerror.h" #include "qemu/error-report.h" #include "qemu/iov.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" =20 #include #include diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c index ff4cee82e6..e60a7a1cfe 100644 --- a/hw/virtio/vhost-user.c +++ b/hw/virtio/vhost-user.c @@ -13,7 +13,7 @@ #include "hw/virtio/vhost.h" #include "hw/virtio/vhost-backend.h" #include "hw/virtio/virtio-net.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "sysemu/kvm.h" #include "qemu/error-report.h" #include "qemu/sockets.h" diff --git a/monitor.c b/monitor.c index 29b71ff2bc..37f8d5645f 100644 --- a/monitor.c +++ b/monitor.c @@ -35,7 +35,7 @@ #include "exec/gdbstub.h" #include "net/net.h" #include "net/slirp.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "ui/qemu-spice.h" #include "sysemu/numa.h" #include "monitor/monitor.h" diff --git a/net/colo-compare.c b/net/colo-compare.c index 619335d5e8..2fb75bcca4 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -25,7 +25,7 @@ #include "qom/object.h" #include "qemu/typedefs.h" #include "net/queue.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/sockets.h" #include "qapi-visit.h" #include "net/colo.h" diff --git a/net/filter-mirror.c b/net/filter-mirror.c index 7adc2c10d2..a20330475c 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -20,7 +20,7 @@ #include "qemu/main-loop.h" #include "qemu/error-report.h" #include "trace.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/iov.h" #include "qemu/sockets.h" =20 diff --git a/net/slirp.c b/net/slirp.c index af3e8b22ac..6a6d727999 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -37,7 +37,7 @@ #include "qemu/sockets.h" #include "slirp/libslirp.h" #include "slirp/ip6.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "sysemu/sysemu.h" #include "qemu/cutils.h" #include "qapi/error.h" diff --git a/net/vhost-user.c b/net/vhost-user.c index 77d2ce22a6..526290d8c1 100644 --- a/net/vhost-user.c +++ b/net/vhost-user.c @@ -12,7 +12,7 @@ #include "clients.h" #include "net/vhost_net.h" #include "net/vhost-user.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "qemu/config-file.h" #include "qemu/error-report.h" #include "qmp-commands.h" diff --git a/qtest.c b/qtest.c index dbf70a7018..9a5d1dc50d 100644 --- a/qtest.c +++ b/qtest.c @@ -17,7 +17,7 @@ #include "cpu.h" #include "sysemu/qtest.h" #include "hw/qdev.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "exec/ioport.h" #include "exec/memory.h" #include "hw/irq.h" diff --git a/slirp/slirp.c b/slirp/slirp.c index 3b92cb54ce..e79345bdfc 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -25,7 +25,7 @@ #include "qemu-common.h" #include "qemu/timer.h" #include "qemu/error-report.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "slirp.h" #include "hw/hw.h" #include "qemu/cutils.h" diff --git a/tests/test-char.c b/tests/test-char.c index 9340c55058..d7ecf1056a 100644 --- a/tests/test-char.c +++ b/tests/test-char.c @@ -4,7 +4,7 @@ #include "qemu-common.h" #include "qemu/config-file.h" #include "qemu/sockets.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "sysemu/sysemu.h" #include "qapi/error.h" #include "qom/qom-qobject.h" diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c index acc392d046..4ca11ae28d 100644 --- a/tests/vhost-user-test.c +++ b/tests/vhost-user-test.c @@ -16,7 +16,7 @@ #include "qemu/option.h" #include "qemu/range.h" #include "qemu/sockets.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "sysemu/sysemu.h" #include "libqos/libqos.h" #include "libqos/pci-pc.h" diff --git a/ui/console.c b/ui/console.c index 6cf795a23d..d914cced53 100644 --- a/ui/console.c +++ b/ui/console.c @@ -27,7 +27,7 @@ #include "hw/qdev-core.h" #include "qemu/timer.h" #include "qmp-commands.h" -#include "chardev/char.h" +#include "chardev/char-fe.h" #include "trace.h" #include "exec/memory.h" =20 diff --git a/chardev/Makefile.objs b/chardev/Makefile.objs index 1feda0f0ed..e0b37dbfd8 100644 --- a/chardev/Makefile.objs +++ b/chardev/Makefile.objs @@ -1,6 +1,7 @@ chardev-obj-y +=3D char.o chardev-obj-$(CONFIG_WIN32) +=3D char-console.o chardev-obj-$(CONFIG_POSIX) +=3D char-fd.o +chardev-obj-y +=3D char-fe.o chardev-obj-y +=3D char-file.o chardev-obj-y +=3D char-io.o chardev-obj-y +=3D char-mux.o --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496048244905781.4068400787014; Mon, 29 May 2017 01:57:24 -0700 (PDT) Received: from localhost ([::1]:47585 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGUN-0007Qo-Cx for importer@patchew.org; Mon, 29 May 2017 04:57:23 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60044) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGKo-00080d-N6 for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGKn-00010E-Qs for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:30 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50262) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGKn-000104-Jr for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:29 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7AF4980C06; Mon, 29 May 2017 08:47:28 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 04E875C6ED; Mon, 29 May 2017 08:47:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7AF4980C06 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 7AF4980C06 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:44 +0400 Message-Id: <20170529084546.26500-13-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 29 May 2017 08:47:28 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 12/14] char: rename functions that are not part of fe X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" There is no clear reason to have those functions associated with frontend. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- chardev/char.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/chardev/char.c b/chardev/char.c index 3d5316166e..4e3808aefc 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -66,8 +66,7 @@ void qemu_chr_be_event(Chardev *s, int event) =20 /* Not reporting errors from writing to logfile, as logs are * defined to be "best effort" only */ -static void qemu_chr_fe_write_log(Chardev *s, - const uint8_t *buf, size_t len) +static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len) { size_t done =3D 0; ssize_t ret; @@ -91,9 +90,9 @@ static void qemu_chr_fe_write_log(Chardev *s, } } =20 -static int qemu_chr_fe_write_buffer(Chardev *s, - const uint8_t *buf, int len, - int *offset, bool write_all) +static int qemu_chr_write_buffer(Chardev *s, + const uint8_t *buf, int len, + int *offset, bool write_all) { ChardevClass *cc =3D CHARDEV_GET_CLASS(s); int res =3D 0; @@ -118,7 +117,7 @@ static int qemu_chr_fe_write_buffer(Chardev *s, } } if (*offset > 0) { - qemu_chr_fe_write_log(s, buf, *offset); + qemu_chr_write_log(s, buf, *offset); } qemu_mutex_unlock(&s->chr_write_lock); =20 @@ -133,11 +132,11 @@ int qemu_chr_write(Chardev *s, const uint8_t *buf, in= t len, bool write_all) if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_PLAY) { replay_char_write_event_load(&res, &offset); assert(offset <=3D len); - qemu_chr_fe_write_buffer(s, buf, offset, &offset, true); + qemu_chr_write_buffer(s, buf, offset, &offset, true); return res; } =20 - res =3D qemu_chr_fe_write_buffer(s, buf, len, &offset, write_all); + res =3D qemu_chr_write_buffer(s, buf, len, &offset, write_all); =20 if (qemu_chr_replay(s) && replay_mode =3D=3D REPLAY_MODE_RECORD) { replay_char_write_event_save(res, offset); --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496048181369997.8186891811515; Mon, 29 May 2017 01:56:21 -0700 (PDT) Received: from localhost ([::1]:47566 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGTM-0006hv-0f for importer@patchew.org; Mon, 29 May 2017 04:56:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60105) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGKx-00088z-Er for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGKv-00011F-Q9 for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43460) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGKv-000119-H5 for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:37 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6D874C057FAB; Mon, 29 May 2017 08:47:36 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id D5FC51812E; Mon, 29 May 2017 08:47:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 6D874C057FAB Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 6D874C057FAB From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:45 +0400 Message-Id: <20170529084546.26500-14-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Mon, 29 May 2017 08:47:36 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 13/14] char: make chr_fe_deinit() optionaly delete backend X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This simplifies removing a backend for a frontend user (no need to retrive the associated driver and seperate delete call etc). NB: many frontends have questionable handling of ending a chardev. They should probably delete the backend to prevent broken reusage. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/chardev/char-fe.h | 6 ++++-- backends/rng-egd.c | 2 +- chardev/char-fe.c | 5 ++++- chardev/char-mux.c | 2 +- gdbstub.c | 15 ++------------- hw/char/serial.c | 2 +- hw/char/xen_console.c | 2 +- hw/core/qdev-properties-system.c | 2 +- hw/usb/ccid-card-passthru.c | 5 +---- hw/usb/redirect.c | 4 +--- monitor.c | 2 +- net/colo-compare.c | 8 +++----- net/filter-mirror.c | 6 +++--- net/vhost-user.c | 5 +---- tests/test-char.c | 22 ++++++++-------------- tests/vhost-user-test.c | 4 +--- 16 files changed, 34 insertions(+), 58 deletions(-) diff --git a/include/chardev/char-fe.h b/include/chardev/char-fe.h index bd82093218..2cbb262f66 100644 --- a/include/chardev/char-fe.h +++ b/include/chardev/char-fe.h @@ -30,12 +30,14 @@ bool qemu_chr_fe_init(CharBackend *b, Chardev *s, Error= **errp); =20 /** * @qemu_chr_fe_deinit: - * + * @b: a CharBackend + * @del: if true, delete the chardev backend +* * Dissociate the CharBackend from the Chardev. * * Safe to call without associated Chardev. */ -void qemu_chr_fe_deinit(CharBackend *b); +void qemu_chr_fe_deinit(CharBackend *b, bool del); =20 /** * @qemu_chr_fe_get_driver: diff --git a/backends/rng-egd.c b/backends/rng-egd.c index ad3e1e5edf..e7ce2cac80 100644 --- a/backends/rng-egd.c +++ b/backends/rng-egd.c @@ -145,7 +145,7 @@ static void rng_egd_finalize(Object *obj) { RngEgd *s =3D RNG_EGD(obj); =20 - qemu_chr_fe_deinit(&s->chr); + qemu_chr_fe_deinit(&s->chr, false); g_free(s->chr_name); } =20 diff --git a/chardev/char-fe.c b/chardev/char-fe.c index 341221d029..3f90f0567c 100644 --- a/chardev/char-fe.c +++ b/chardev/char-fe.c @@ -211,7 +211,7 @@ unavailable: return false; } =20 -void qemu_chr_fe_deinit(CharBackend *b) +void qemu_chr_fe_deinit(CharBackend *b, bool del) { assert(b); =20 @@ -224,6 +224,9 @@ void qemu_chr_fe_deinit(CharBackend *b) MuxChardev *d =3D MUX_CHARDEV(b->chr); d->backends[b->tag] =3D NULL; } + if (del) { + object_unparent(OBJECT(b->chr)); + } b->chr =3D NULL; } } diff --git a/chardev/char-mux.c b/chardev/char-mux.c index 106c682e7f..08570b915e 100644 --- a/chardev/char-mux.c +++ b/chardev/char-mux.c @@ -266,7 +266,7 @@ static void char_mux_finalize(Object *obj) be->chr =3D NULL; } } - qemu_chr_fe_deinit(&d->chr); + qemu_chr_fe_deinit(&d->chr, false); } =20 void mux_chr_set_handlers(Chardev *chr, GMainContext *context) diff --git a/gdbstub.c b/gdbstub.c index 4251d23898..ec4e4b25be 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1678,9 +1678,6 @@ void gdb_exit(CPUArchState *env, int code) { GDBState *s; char buf[4]; -#ifndef CONFIG_USER_ONLY - Chardev *chr; -#endif =20 s =3D gdbserver_state; if (!s) { @@ -1690,19 +1687,13 @@ void gdb_exit(CPUArchState *env, int code) if (gdbserver_fd < 0 || s->fd < 0) { return; } -#else - chr =3D qemu_chr_fe_get_driver(&s->chr); - if (!chr) { - return; - } #endif =20 snprintf(buf, sizeof(buf), "W%02x", (uint8_t)code); put_packet(s, buf); =20 #ifndef CONFIG_USER_ONLY - qemu_chr_fe_deinit(&s->chr); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&s->chr, true); #endif } =20 @@ -2002,9 +1993,7 @@ int gdbserver_start(const char *device) NULL, &error_abort); monitor_init(mon_chr, 0); } else { - if (qemu_chr_fe_get_driver(&s->chr)) { - object_unparent(OBJECT(qemu_chr_fe_get_driver(&s->chr))); - } + qemu_chr_fe_deinit(&s->chr, true); mon_chr =3D s->mon_chr; memset(s, 0, sizeof(GDBState)); s->mon_chr =3D mon_chr; diff --git a/hw/char/serial.c b/hw/char/serial.c index 23e5fe9d18..e1f12507bf 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -905,7 +905,7 @@ void serial_realize_core(SerialState *s, Error **errp) =20 void serial_exit_core(SerialState *s) { - qemu_chr_fe_deinit(&s->chr); + qemu_chr_fe_deinit(&s->chr, false); =20 timer_del(s->modem_status_poll); timer_free(s->modem_status_poll); diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c index cb849c2e3e..f9af8cadf4 100644 --- a/hw/char/xen_console.c +++ b/hw/char/xen_console.c @@ -261,7 +261,7 @@ static void con_disconnect(struct XenDevice *xendev) { struct XenConsole *con =3D container_of(xendev, struct XenConsole, xen= dev); =20 - qemu_chr_fe_deinit(&con->chr); + qemu_chr_fe_deinit(&con->chr, false); xen_pv_unbind_evtchn(&con->xendev); =20 if (con->sring) { diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index a549d39030..3bef41914d 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -225,7 +225,7 @@ static void release_chr(Object *obj, const char *name, = void *opaque) Property *prop =3D opaque; CharBackend *be =3D qdev_get_prop_ptr(dev, prop); =20 - qemu_chr_fe_deinit(be); + qemu_chr_fe_deinit(be, false); } =20 PropertyInfo qdev_prop_chr =3D { diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c index fed3683a50..ac1725eeae 100644 --- a/hw/usb/ccid-card-passthru.c +++ b/hw/usb/ccid-card-passthru.c @@ -264,10 +264,7 @@ static void ccid_card_vscard_handle_message(PassthruSt= ate *card, =20 static void ccid_card_vscard_drop_connection(PassthruState *card) { - Chardev *chr =3D qemu_chr_fe_get_driver(&card->cs); - - qemu_chr_fe_deinit(&card->cs); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&card->cs, true); card->vscard_in_pos =3D card->vscard_in_hdr =3D 0; } =20 diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index d2b3a84a03..aa22d69216 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -1419,10 +1419,8 @@ static void usbredir_cleanup_device_queues(USBRedirD= evice *dev) static void usbredir_unrealize(USBDevice *udev, Error **errp) { USBRedirDevice *dev =3D USB_REDIRECT(udev); - Chardev *chr =3D qemu_chr_fe_get_driver(&dev->cs); =20 - qemu_chr_fe_deinit(&dev->cs); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&dev->cs, true); =20 /* Note must be done after qemu_chr_close, as that causes a close even= t */ qemu_bh_delete(dev->chardev_close_bh); diff --git a/monitor.c b/monitor.c index 37f8d5645f..75e7cd26d0 100644 --- a/monitor.c +++ b/monitor.c @@ -578,7 +578,7 @@ static void monitor_data_init(Monitor *mon) =20 static void monitor_data_destroy(Monitor *mon) { - qemu_chr_fe_deinit(&mon->chr); + qemu_chr_fe_deinit(&mon->chr, false); if (monitor_is_qmp(mon)) { json_message_parser_destroy(&mon->qmp.parser); } diff --git a/net/colo-compare.c b/net/colo-compare.c index 2fb75bcca4..6d500e1dc4 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -801,11 +801,9 @@ static void colo_compare_finalize(Object *obj) { CompareState *s =3D COLO_COMPARE(obj); =20 - qemu_chr_fe_set_handlers(&s->chr_pri_in, NULL, NULL, NULL, NULL, - s->worker_context, true); - qemu_chr_fe_set_handlers(&s->chr_sec_in, NULL, NULL, NULL, NULL, - s->worker_context, true); - qemu_chr_fe_deinit(&s->chr_out); + qemu_chr_fe_deinit(&s->chr_pri_in, false); + qemu_chr_fe_deinit(&s->chr_sec_in, false); + qemu_chr_fe_deinit(&s->chr_out, false); =20 g_main_loop_quit(s->compare_loop); qemu_thread_join(&s->thread); diff --git a/net/filter-mirror.c b/net/filter-mirror.c index a20330475c..52d978fce2 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -178,15 +178,15 @@ static void filter_mirror_cleanup(NetFilterState *nf) { MirrorState *s =3D FILTER_MIRROR(nf); =20 - qemu_chr_fe_deinit(&s->chr_out); + qemu_chr_fe_deinit(&s->chr_out, false); } =20 static void filter_redirector_cleanup(NetFilterState *nf) { MirrorState *s =3D FILTER_REDIRECTOR(nf); =20 - qemu_chr_fe_deinit(&s->chr_in); - qemu_chr_fe_deinit(&s->chr_out); + qemu_chr_fe_deinit(&s->chr_in, false); + qemu_chr_fe_deinit(&s->chr_out, false); } =20 static void filter_mirror_setup(NetFilterState *nf, Error **errp) diff --git a/net/vhost-user.c b/net/vhost-user.c index 526290d8c1..a042ec6a34 100644 --- a/net/vhost-user.c +++ b/net/vhost-user.c @@ -151,10 +151,7 @@ static void vhost_user_cleanup(NetClientState *nc) s->vhost_net =3D NULL; } if (nc->queue_index =3D=3D 0) { - Chardev *chr =3D qemu_chr_fe_get_driver(&s->chr); - - qemu_chr_fe_deinit(&s->chr); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&s->chr, true); } =20 qemu_purge_queued_packets(nc); diff --git a/tests/test-char.c b/tests/test-char.c index d7ecf1056a..dfe856cb85 100644 --- a/tests/test-char.c +++ b/tests/test-char.c @@ -97,8 +97,7 @@ static void char_stdio_test_subprocess(void) ret =3D qemu_chr_fe_write(&be, (void *)"buf", 4); g_assert_cmpint(ret, =3D=3D, 4); =20 - qemu_chr_fe_deinit(&be); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&be, true); } =20 static void char_stdio_test(void) @@ -146,8 +145,7 @@ static void char_ringbuf_test(void) g_assert_cmpstr(data, =3D=3D, ""); g_free(data); =20 - qemu_chr_fe_deinit(&be); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&be, true); =20 /* check alias */ opts =3D qemu_opts_create(qemu_find_opts("chardev"), "memory-label", @@ -231,9 +229,8 @@ static void char_mux_test(void) g_assert_cmpint(strlen(data), !=3D, 0); g_free(data); =20 - qemu_chr_fe_deinit(&chr_be1); - qemu_chr_fe_deinit(&chr_be2); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&chr_be1, false); + qemu_chr_fe_deinit(&chr_be2, true); } =20 typedef struct SocketIdleData { @@ -396,8 +393,7 @@ static void char_pipe_test(void) g_assert_cmpint(fe.read_count, =3D=3D, 8); g_assert_cmpstr(fe.read_buf, =3D=3D, "pipe-in"); =20 - qemu_chr_fe_deinit(&be); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&be, true); =20 g_assert(g_unlink(in) =3D=3D 0); g_assert(g_unlink(out) =3D=3D 0); @@ -511,8 +507,7 @@ static void char_file_test(void) =20 g_assert_cmpint(fe.read_count, =3D=3D, 8); g_assert_cmpstr(fe.read_buf, =3D=3D, "fifo-in"); - qemu_chr_fe_deinit(&be); - object_unref(OBJECT(chr)); + qemu_chr_fe_deinit(&be, true); g_unlink(fifo); g_free(fifo); } @@ -549,7 +544,7 @@ static void char_null_test(void) error_free_or_abort(&err); =20 /* deinit & reinit */ - qemu_chr_fe_deinit(&be); + qemu_chr_fe_deinit(&be, false); qemu_chr_fe_init(&be, chr, &error_abort); =20 qemu_chr_fe_set_open(&be, true); @@ -563,8 +558,7 @@ static void char_null_test(void) ret =3D qemu_chr_fe_write(&be, (void *)"buf", 4); g_assert_cmpint(ret, =3D=3D, 4); =20 - qemu_chr_fe_deinit(&be); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&be, true); } =20 static void char_invalid_test(void) diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c index 4ca11ae28d..b3cc045765 100644 --- a/tests/vhost-user-test.c +++ b/tests/vhost-user-test.c @@ -488,10 +488,8 @@ static inline void test_server_connect(TestServer *ser= ver) static gboolean _test_server_free(TestServer *server) { int i; - Chardev *chr =3D qemu_chr_fe_get_driver(&server->chr); =20 - qemu_chr_fe_deinit(&server->chr); - object_unparent(OBJECT(chr)); + qemu_chr_fe_deinit(&server->chr, true); =20 for (i =3D 0; i < server->fds_num; i++) { close(server->fds[i]); --=20 2.13.0.91.g00982b8dd From nobody Mon Apr 29 15:09:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149604796049046.47222694297841; Mon, 29 May 2017 01:52:40 -0700 (PDT) Received: from localhost ([::1]:47546 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGPn-0003e9-0r for importer@patchew.org; Mon, 29 May 2017 04:52:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60158) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dFGL6-0008FW-UX for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dFGL3-00013i-Re for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:33940) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dFGL3-00013Y-G2 for qemu-devel@nongnu.org; Mon, 29 May 2017 04:47:45 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6676217AC5A; Mon, 29 May 2017 08:47:44 +0000 (UTC) Received: from localhost (ovpn-112-30.ams2.redhat.com [10.36.112.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4372C1759F; Mon, 29 May 2017 08:47:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 6676217AC5A Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=marcandre.lureau@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 6676217AC5A From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= To: qemu-devel@nongnu.org Date: Mon, 29 May 2017 12:45:46 +0400 Message-Id: <20170529084546.26500-15-marcandre.lureau@redhat.com> In-Reply-To: <20170529084546.26500-1-marcandre.lureau@redhat.com> References: <20170529084546.26500-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 29 May 2017 08:47:44 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 14/14] char: move char devices to chardev/ X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, f4bug@amsat.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Suggested by Paolo Bonizini during series review. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- {backends =3D> chardev}/baum.c | 0 {backends =3D> chardev}/msmouse.c | 0 spice-qemu-char.c =3D> chardev/spice.c | 2 +- {backends =3D> chardev}/testdev.c | 0 {backends =3D> chardev}/wctablet.c | 0 MAINTAINERS | 4 +--- Makefile.objs | 4 ++-- backends/Makefile.objs | 4 ---- backends/trace-events | 10 ---------- chardev/Makefile.objs | 6 ++++++ chardev/trace-events | 18 ++++++++++++++++++ trace-events | 7 ------- 12 files changed, 28 insertions(+), 27 deletions(-) rename {backends =3D> chardev}/baum.c (100%) rename {backends =3D> chardev}/msmouse.c (100%) rename spice-qemu-char.c =3D> chardev/spice.c (99%) rename {backends =3D> chardev}/testdev.c (100%) rename {backends =3D> chardev}/wctablet.c (100%) create mode 100644 chardev/trace-events diff --git a/backends/baum.c b/chardev/baum.c similarity index 100% rename from backends/baum.c rename to chardev/baum.c diff --git a/backends/msmouse.c b/chardev/msmouse.c similarity index 100% rename from backends/msmouse.c rename to chardev/msmouse.c diff --git a/spice-qemu-char.c b/chardev/spice.c similarity index 99% rename from spice-qemu-char.c rename to chardev/spice.c index 1c6c2e3969..a312078812 100644 --- a/spice-qemu-char.c +++ b/chardev/spice.c @@ -1,5 +1,5 @@ #include "qemu/osdep.h" -#include "trace-root.h" +#include "trace.h" #include "ui/qemu-spice.h" #include "chardev/char.h" #include "qemu/error-report.h" diff --git a/backends/testdev.c b/chardev/testdev.c similarity index 100% rename from backends/testdev.c rename to chardev/testdev.c diff --git a/backends/wctablet.c b/chardev/wctablet.c similarity index 100% rename from backends/wctablet.c rename to chardev/wctablet.c diff --git a/MAINTAINERS b/MAINTAINERS index 59e03436ad..7ee69d0e42 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1231,13 +1231,11 @@ M: Marc-Andr=C3=A9 Lureau S: Maintained F: chardev/ F: include/chardev/ -F: backends/msmouse.c -F: backends/testdev.c =20 Character Devices (Braille) M: Samuel Thibault S: Maintained -F: backends/baum.c +F: chardev/baum.c =20 Command line option argument parsing M: Markus Armbruster diff --git a/Makefile.objs b/Makefile.objs index 2100845ce2..0575802440 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -50,8 +50,6 @@ common-obj-$(CONFIG_LINUX) +=3D fsdev/ =20 common-obj-y +=3D migration/ =20 -common-obj-$(CONFIG_SPICE) +=3D spice-qemu-char.o - common-obj-y +=3D audio/ common-obj-y +=3D hw/ common-obj-y +=3D accel.o @@ -70,6 +68,7 @@ common-obj-y +=3D tpm.o common-obj-$(CONFIG_SLIRP) +=3D slirp/ =20 common-obj-y +=3D backends/ +common-obj-y +=3D chardev/ =20 common-obj-$(CONFIG_SECCOMP) +=3D qemu-seccomp.o =20 @@ -121,6 +120,7 @@ trace-events-subdirs +=3D io trace-events-subdirs +=3D migration trace-events-subdirs +=3D block trace-events-subdirs +=3D backends +trace-events-subdirs +=3D chardev trace-events-subdirs +=3D hw/block trace-events-subdirs +=3D hw/block/dataplane trace-events-subdirs +=3D hw/char diff --git a/backends/Makefile.objs b/backends/Makefile.objs index 0e0f1567b2..0400799efd 100644 --- a/backends/Makefile.objs +++ b/backends/Makefile.objs @@ -1,10 +1,6 @@ common-obj-y +=3D rng.o rng-egd.o common-obj-$(CONFIG_POSIX) +=3D rng-random.o =20 -common-obj-y +=3D msmouse.o wctablet.o testdev.o -common-obj-$(CONFIG_BRLAPI) +=3D baum.o -baum.o-cflags :=3D $(SDL_CFLAGS) - common-obj-$(CONFIG_TPM) +=3D tpm.o =20 common-obj-y +=3D hostmem.o hostmem-ram.o diff --git a/backends/trace-events b/backends/trace-events index 8c3289a3f9..e69de29bb2 100644 --- a/backends/trace-events +++ b/backends/trace-events @@ -1,10 +0,0 @@ -# See docs/tracing.txt for syntax documentation. - -# backends/wctablet.c -wct_init(void) "" -wct_cmd_re(void) "" -wct_cmd_st(void) "" -wct_cmd_sp(void) "" -wct_cmd_ts(int input) "0x%02x" -wct_cmd_other(const char *cmd) "%s" -wct_speed(int speed) "%d" diff --git a/chardev/Makefile.objs b/chardev/Makefile.objs index e0b37dbfd8..52a8127606 100644 --- a/chardev/Makefile.objs +++ b/chardev/Makefile.objs @@ -16,3 +16,9 @@ chardev-obj-y +=3D char-stdio.o chardev-obj-y +=3D char-udp.o chardev-obj-$(CONFIG_WIN32) +=3D char-win.o chardev-obj-$(CONFIG_WIN32) +=3D char-win-stdio.o + +common-obj-y +=3D msmouse.o wctablet.o testdev.o +common-obj-$(CONFIG_BRLAPI) +=3D baum.o +baum.o-cflags :=3D $(SDL_CFLAGS) + +common-obj-$(CONFIG_SPICE) +=3D spice.o diff --git a/chardev/trace-events b/chardev/trace-events new file mode 100644 index 0000000000..822dde668b --- /dev/null +++ b/chardev/trace-events @@ -0,0 +1,18 @@ +# See docs/tracing.txt for syntax documentation. + +# chardev/wctablet.c +wct_init(void) "" +wct_cmd_re(void) "" +wct_cmd_st(void) "" +wct_cmd_sp(void) "" +wct_cmd_ts(int input) "0x%02x" +wct_cmd_other(const char *cmd) "%s" +wct_speed(int speed) "%d" + +# chardev/spice.c +spice_vmc_write(ssize_t out, int len) "spice wrote %zd of requested %d" +spice_vmc_read(int bytes, int len) "spice read %d of requested %d" +spice_vmc_register_interface(void *scd) "spice vmc registered interface %p" +spice_vmc_unregister_interface(void *scd) "spice vmc unregistered interfac= e %p" +spice_vmc_event(int event) "spice vmc event %d" + diff --git a/trace-events b/trace-events index e582d6315d..c785af294a 100644 --- a/trace-events +++ b/trace-events @@ -41,13 +41,6 @@ system_wakeup_request(int reason) "reason=3D%d" qemu_system_shutdown_request(void) "" qemu_system_powerdown_request(void) "" =20 -# spice-qemu-char.c -spice_vmc_write(ssize_t out, int len) "spice wrote %zd of requested %d" -spice_vmc_read(int bytes, int len) "spice read %d of requested %d" -spice_vmc_register_interface(void *scd) "spice vmc registered interface %p" -spice_vmc_unregister_interface(void *scd) "spice vmc unregistered interfac= e %p" -spice_vmc_event(int event) "spice vmc event %d" - # monitor.c monitor_protocol_event_handler(uint32_t event, void *qdict) "event=3D%d da= ta=3D%p" monitor_protocol_event_emit(uint32_t event, void *data) "event=3D%d data= =3D%p" --=20 2.13.0.91.g00982b8dd