From nobody Thu Nov 13 00:58:01 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=bu.edu) ARC-Seal: i=2; a=rsa-sha256; t=1575063858; cv=pass; d=zohomail.com; s=zohoarc; b=GpiwrsGo4fQWJn7l17SAe/D1Qgp7QHweQA5RtEZyqzGQDl+NUQvDjNqIitR8XXY8U3dQ0JeHGkFDsWEdLv8vmBM7DwFCT9hb/4hGIoF/XH2n+s9cVEMI9USylLvcnjU3LqpmsCQdVIsuDSA+MqV7XUPeEoNAgKBDo6scg3umNlA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575063858; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IxyYtCnh0jDMGD5U4MNPFhzgI9cNRH1r64lIbKgyztQ=; b=SFJqpI0kCy/mgsl8CA3t45g15QhUTWUg/DgPG2gpozcc/FR2sevUuEhkPWVyffpVEF4D2xLR35XIoZ/Y7HqUbMPMhYSbqhIglhtE11tOlevMxBv+Mf0nXtoJ8fcC9Z1lZVLdE4jGF5x38ap5ao+qwp2tc/NzNEkTtkMtyUIv8Bk= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1dmarc=pass fromdomain=bu.edu) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1575063858805889.9784230697356; Fri, 29 Nov 2019 13:44:18 -0800 (PST) Received: from localhost ([::1]:35428 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iao3l-0002Ow-G7 for importer@patchew.org; Fri, 29 Nov 2019 16:44:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:48093) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ianuc-00005A-Mt for qemu-devel@nongnu.org; Fri, 29 Nov 2019 16:34:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ianuZ-0002oH-NE for qemu-devel@nongnu.org; Fri, 29 Nov 2019 16:34:48 -0500 Received: from mail-eopbgr740102.outbound.protection.outlook.com ([40.107.74.102]:45028 helo=NAM01-BN3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ianuZ-0002ik-IZ for qemu-devel@nongnu.org; Fri, 29 Nov 2019 16:34:47 -0500 Received: from DM6PR03MB4795.namprd03.prod.outlook.com (20.179.107.22) by DM6PR03MB5050.namprd03.prod.outlook.com (10.141.161.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2495.18; Fri, 29 Nov 2019 21:34:41 +0000 Received: from DM6PR03MB4795.namprd03.prod.outlook.com ([fe80::2557:454e:205e:4d74]) by DM6PR03MB4795.namprd03.prod.outlook.com ([fe80::2557:454e:205e:4d74%2]) with mapi id 15.20.2495.014; Fri, 29 Nov 2019 21:34:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hhzc3KTUwbVNRmzu9JJHifUa7gTHDAJV2vBto3wSrSu5mfkMIIM5IPQhW3SHpmawspjsbPYLqDsho4J6qHfBADkwn9yuqa9bRYL514XFjSSKFNzkwELhbyp668jAak1yJJY//KkKPnLzFUnKf2PVNDvl1sjOFNsQzUXQsEYEiZlpmi3Wfk5Xas6+QWcxMiC5Hyus635Iu3MwY5LZii/4yuvhpD85eTpPA0YTcvCsr7i7USRPfjNm6zFkKP5Brk6YQ9h60z0x4w/1CXVSnKVo9My6dgK7m/HHQplTAyJSKpqVW4E+wklqwKT3Qr0pX4U/ESf/4Baylz1+RmUTgot8xA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IxyYtCnh0jDMGD5U4MNPFhzgI9cNRH1r64lIbKgyztQ=; b=Qz1gc3TT41FkCsDxbGUFkenkrGGz1uWltxKqUtbfKiiyJk0WjghHg3NBO3wxA5wjbd9y6cdhp1qyVzK2N7eFnLbRVcRFutgzujUZ/+NPS2aaHXttcNSf7Xkk4wDcMB6Om4ojbeTVGlJ8ITPV5aa/uO3lg/a+LGG+d7HvufAPOZHhNc/4BJv50PRRf11E6D5SAscM5MjHkApMz8U9tbfJYcTUVCPRw0tjTqml4KqQ4lo70eEmRHOJgRNO5RYEZSxlip+6QUkqEat+FsFxdM27DKyhvsKX6GvBIHlgqxfvkabfVNAU8J4tg6St+DbxEWxfgvi1BeADfmEZHdb1IO/GCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bu.edu; dmarc=pass action=none header.from=bu.edu; dkim=pass header.d=bu.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bushare.onmicrosoft.com; s=selector2-bushare-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IxyYtCnh0jDMGD5U4MNPFhzgI9cNRH1r64lIbKgyztQ=; b=anZemNQcFsAZ4ZDWa9jIKZYoAJ3IydxrNyd+joPnpnNGdjbHgj4VTnO1r8USwFfzjYKL4097SiKnishXsS8ciGobpEqoxOHT3VOvIvcNnLT4yATPlkZHE586MMte1ikSgWeyu/KfM40juTUpqvV0MMq/0LwCPO6ZJpDSjRRSZFE= From: "Oleinik, Alexander" To: "qemu-devel@nongnu.org" Subject: [PATCH v6 04/21] qtest: add qtest_server_send abstraction Thread-Topic: [PATCH v6 04/21] qtest: add qtest_server_send abstraction Thread-Index: AQHVpvzO30Syr3majEG6oA4HcTycLw== Date: Fri, 29 Nov 2019 21:34:40 +0000 Message-ID: <20191129213424.6290-5-alxndr@bu.edu> References: <20191129213424.6290-1-alxndr@bu.edu> In-Reply-To: <20191129213424.6290-1-alxndr@bu.edu> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.23.0 x-originating-ip: [128.197.127.33] x-clientproxiedby: BL0PR1501CA0025.namprd15.prod.outlook.com (2603:10b6:207:17::38) To DM6PR03MB4795.namprd03.prod.outlook.com (2603:10b6:5:18c::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=alxndr@bu.edu; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 20543cbd-3be4-46e6-1908-08d77513f110 x-ms-traffictypediagnostic: DM6PR03MB5050: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-forefront-prvs: 0236114672 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(366004)(346002)(39860400002)(136003)(396003)(199004)(189003)(54906003)(81156014)(81166006)(66066001)(6436002)(3846002)(8936002)(66946007)(6116002)(1076003)(66446008)(64756008)(66476007)(256004)(66556008)(316002)(786003)(8676002)(6512007)(102836004)(6486002)(478600001)(71190400001)(71200400001)(2351001)(86362001)(6506007)(14454004)(2501003)(75432002)(386003)(5640700003)(2906002)(6916009)(7736002)(2616005)(25786009)(26005)(52116002)(88552002)(99286004)(5660300002)(76176011)(186003)(446003)(11346002)(305945005)(50226002)(36756003)(4326008); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR03MB5050; H:DM6PR03MB4795.namprd03.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; received-spf: None (protection.outlook.com: bu.edu does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: lvjqVulXNywI2pNK8b+x/Vh3OusE5HmlDFqRgubGQFJ027GlAK7QaXee9NlgwfEzsGHN6raZcsOytytgSAviTwoH1Bm/VNh1+Pi3RFjYrkV8Ad8WcJ/G76aj8DHUhzf5bdWZK3ZZnk7301jreyrC0i0ycRz+EShRbTgVJ0w3fNgNTh+rpClSKKIlEc9KWQmJjrC2UrJTGNAeNROa/d7+TEXxpNCqrWiMBkiuo8jwdhgSuOKJliYcXj8Lq22QE0E9CCrnUuZb8xab5VRv17XzsfuAzPWQPcf3id1tHnEIJwPXiKP1nJ7pEqWx14SV3a7V4pd+IxTWVMsdJs79NlLqeFoEmEsgJuXmvFtBCfeqW4kO1BuyrC578HNRT9hnFVPMmFyAzb3WbzSVjOTAuJCc3B4H/027sUUPMmMqMocXS8tokeGmmT5iqRczm7scfN3Y Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: bu.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 20543cbd-3be4-46e6-1908-08d77513f110 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2019 21:34:40.8285 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d57d32cc-c121-488f-b07b-dfe705680c71 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: eTm79x8Rs7v3Fy7tZjZJ6X9wlG596WYIi6edrpQuKwtjUFkjorUrMgGiyaYgI/uH X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5050 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.74.102 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , Thomas Huth , "Oleinik, Alexander" , "bsd@redhat.com" , "stefanha@redhat.com" , "pbonzini@redhat.com" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @bushare.onmicrosoft.com) Content-Type: text/plain; charset="utf-8" qtest_server_send is a function pointer specifying the handler used to transmit data to the qtest client. In the standard configuration, this calls the CharBackend handler, but now it is possible for other types of handlers, e.g direct-function calls if the qtest client and server exist within the same process (inproc) Signed-off-by: Alexander Bulekov Reviewed-by: Stefan Hajnoczi Acked-by: Thomas Huth --- include/sysemu/qtest.h | 3 +++ qtest.c | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/sysemu/qtest.h b/include/sysemu/qtest.h index 5ed09c80b1..e2f1047fd7 100644 --- a/include/sysemu/qtest.h +++ b/include/sysemu/qtest.h @@ -26,4 +26,7 @@ bool qtest_driver(void); =20 void qtest_server_init(const char *qtest_chrdev, const char *qtest_log, Er= ror **errp); =20 +void qtest_server_set_send_handler(void (*send)(void *, const char *), + void *opaque); + #endif diff --git a/qtest.c b/qtest.c index 8b50e2783e..58d7e2a6fb 100644 --- a/qtest.c +++ b/qtest.c @@ -42,6 +42,8 @@ static GString *inbuf; static int irq_levels[MAX_IRQ]; static qemu_timeval start_time; static bool qtest_opened; +static void (*qtest_server_send)(void*, const char*); +static void *qtest_server_send_opaque; =20 #define FMT_timeval "%ld.%06ld" =20 @@ -228,8 +230,10 @@ static void GCC_FMT_ATTR(1, 2) qtest_log_send(const ch= ar *fmt, ...) va_end(ap); } =20 -static void do_qtest_send(CharBackend *chr, const char *str, size_t len) +static void qtest_server_char_be_send(void *opaque, const char *str) { + size_t len =3D strlen(str); + CharBackend* chr =3D (CharBackend *)opaque; qemu_chr_fe_write_all(chr, (uint8_t *)str, len); if (qtest_log_fp && qtest_opened) { fprintf(qtest_log_fp, "%s", str); @@ -238,7 +242,7 @@ static void do_qtest_send(CharBackend *chr, const char = *str, size_t len) =20 static void qtest_send(CharBackend *chr, const char *str) { - do_qtest_send(chr, str, strlen(str)); + qtest_server_send(qtest_server_send_opaque, str); } =20 static void GCC_FMT_ATTR(2, 3) qtest_sendf(CharBackend *chr, @@ -783,6 +787,16 @@ void qtest_server_init(const char *qtest_chrdev, const= char *qtest_log, Error ** qemu_chr_fe_set_echo(&qtest_chr, true); =20 inbuf =3D g_string_new(""); + + if (!qtest_server_send) { + qtest_server_set_send_handler(qtest_server_char_be_send, &qtest_ch= r); + } +} + +void qtest_server_set_send_handler(void (*send)(void*, const char*), void = *opaque) +{ + qtest_server_send =3D send; + qtest_server_send_opaque =3D opaque; } =20 bool qtest_driver(void) --=20 2.23.0