From nobody Sun Apr 28 07:58:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) 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 1506385306546259.1310263194698; Mon, 25 Sep 2017 17:21:46 -0700 (PDT) Received: from localhost ([::1]:44949 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwddA-0000hR-Js for importer@patchew.org; Mon, 25 Sep 2017 20:21:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55852) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdVH-0003NJ-TK for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwdV8-0005zD-9m for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:35 -0400 Received: from mail-sn1nam02on0065.outbound.protection.outlook.com ([104.47.36.65]:38592 helo=NAM02-SN1-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 1dwdUU-0005V3-Ol; Mon, 25 Sep 2017 20:12:47 -0400 Received: from BY2PR02CA0007.namprd02.prod.outlook.com (2a01:111:e400:5261::17) by BY1PR02MB1130.namprd02.prod.outlook.com (2a01:111:e400:52a7::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 26 Sep 2017 00:12:40 +0000 Received: from SN1NAM02FT028.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::205) by BY2PR02CA0007.outlook.office365.com (2a01:111:e400:5261::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.56.8 via Frontend Transport; Tue, 26 Sep 2017 00:12:40 +0000 Received: from xsj-pvapsmtpgw02 (149.199.60.100) by SN1NAM02FT028.mail.protection.outlook.com (10.152.72.105) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14 via Frontend Transport; Tue, 26 Sep 2017 00:12:39 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:49782 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUM-0001ns-Lm; Mon, 25 Sep 2017 17:12:38 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dwdUM-0008UU-Jn; Mon, 25 Sep 2017 17:12:38 -0700 Received: from xsj-pvapsmtp01 (xsj-mail.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v8Q0CP3P007337; Mon, 25 Sep 2017 17:12:25 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdU9-0008TR-KV; Mon, 25 Sep 2017 17:12:25 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=5j4XC3w5tNgvY2Z2poSSmhgjAOdeMYcL4joAdtWEEN0=; b=wqfBRnCczp9tePFzPobWDf+qhPhfrqSdDo4ttCba/be4PwR/PxTe7lP1jTo95j7uhoAfGAsxjo8Ke0wlET0j815EDVIywvtGwwb1acDdZsGtW8AZCWx0/TCmPxdbidyTzm7aNbL2LonDer1mL8hwBHLEbFmqR6QiiKE3aHqpt8c= Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; lists.xenproject.org; dkim=none (message not signed) header.d=none; lists.xenproject.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; From: Alistair Francis To: Date: Mon, 25 Sep 2017 17:08:39 -0700 Message-ID: X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23350.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(2980300002)(438002)(199003)(189002)(2906002)(9786002)(7416002)(5660300001)(6666003)(48376002)(81156014)(8676002)(305945005)(50466002)(575784001)(551934003)(356003)(81166006)(189998001)(36756003)(50226002)(76176999)(8936002)(50986999)(118296001)(77096006)(16200700003)(36386004)(53946003)(5003940100001)(47776003)(39060400002)(4326008)(5890100001)(63266004)(6916009)(54906003)(316002)(2351001)(16586007)(106466001)(2950100002)(8666007)(33646002)(478600001)(107986001)(21314002)(5001870100001)(579004)(559001)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR02MB1130; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT028; 1:UFyQoOKII0kHOD1gp/yfnM3Mum/YUQFoEotAOMe7NW8YjVwhu+Rt53yl/Ql+a6bZzYnDvoO2soH4qtbd1xmWoWRmWQN+88QDUlfldv3Saap/7PKl3O7VSRxidy7hFHA4 MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4b178fd9-2eba-4ac6-897a-08d504734cf8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(8251501002)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:BY1PR02MB1130; X-Microsoft-Exchange-Diagnostics: 1; BY1PR02MB1130; 3:eWnGj0ubAbgzWEw55iV8xcL2aTeKo7dB/guGplq5S5bnlufekVx0iyXuLmI/lI3WpzFvYAeOzxOpsV+4uIdyxVCv2eqcEAbj6TdKuAarLUn+2cVuvkUxOa6AcSodtVqguI4kVY/ss6b3ac5MPQeJmQ/6N7DcTz3G2sikYarKe12DqErwmw75lRZ0yOAIgEuyiCN6TWPYPUMeVV4Waz0tOmYZXMP2CKtNICma/AiOOEkk1ViiaiLSeqcLfp91NeDCWTY0lt73xBvAFT5aJpkCaS5H1XDz9cJq1XmAT5sH0tza/JA6+aQv/PXAqNAxZjZLS2rJ2C2WmhJNTZmmHO6Jj/+N8rwbU52jxC4wRT9uCeg=; 25:/TWiwSE7T26ODoNCzfO3ud0oiMjdSCyCb4YIo2yAFXyBr8z8tpuEldkANF02tnc9tMkp11s2mx+c8V9tDiZFYFtgmu9oTW9K4X6CFdCFMSiFw69ctRfqLZ7kdDKkW31/rPQ3c0CLCDQTaNdY1TCiuPiARFDaAttauACi8RTs2RG/4I5XfJ+XpJkN4gzbtpYAUC3z5XmxIHoOQ7ZK4eS+R+F6N0dzvsroRb0cjwGG1gNLadP8d2J2UkZkanpICXmscJqz7NT9sUImtSoPy5qnNMhkuxC/3rHoApM/xf/L7j2oHB1HXt7O7LKDmNbXjNV9a61F0+f49+GOV/pSJNQR5A== X-MS-TrafficTypeDiagnostic: BY1PR02MB1130: X-Microsoft-Exchange-Diagnostics: 1; BY1PR02MB1130; 31:v28v/F6Yw+axwLBQFrRaNbDdSl5T47jKzBTNOe4rpihHtjKQkrn48nqto1Tv7DdW7zsAzd2FFow49kS0jucwTcqdVgHBbgB3VBtCw9qzhiBEk0fANaQ/xkF0YNrNbMLbqsGVl1viN9i0BjswZIkS3MbX5YSpOj0tLaFDyYGA4EZuer/BRgmKFKgXSB+17rAekNVCB9Xd1P0vZ+jbWwQZVoiQZocygKyTMz4YrkKqgjA=; 20:Agh/8lmkC2oETfvbY+6n0vyO4QgjXy8blTl1Y0YwOGvmVM8RlitlDvaoL2YQbV8DYwf06JdGQraxyKiDLIYTpvj2xqW/sFYqgzGlhPxOLZqHHZqXe6s8TrdZhbp+8gMJLYRF/sIceOmdxSP8TaNYWj61AlF87xX/t9SjjkpW1s1iwdk+PrFvalNJE4xP0z5YLoPzbMxhkQoDOkvmFZttRcgSxuY92TBptnffPvrDZO+bHhGCdB7cjsvFf8iMwbiuQ/V44DXKvN3QD48nhsnMb+UKsBlw1OI0Ru5G7RiRdoajW3v3ZbdVCaPD9VbslwgIxs3rWdbIU/On6DB3IURgAWxaBN/LxvqgNGdoF30FlUmJIU87w9ld6e86OMAtds/VX719Wr5aK0pEStGC/5eDGpAlFv15qO3ryWA1VNapohpOUDTZ9vCi30YEyQi6zWLs1nIjAU6EIV/jrCarbElmV/kVSdvMIOkrOatUt0DWeFI9sWICkFDrAqe94C6UCMqW X-Exchange-Antispam-Report-Test: UriScan:(131327999870524)(788757137089)(192813158149592)(70601490899591); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93004095)(100000703101)(100105400095)(3002001)(6055026)(6041248)(20161123558100)(20161123560025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR02MB1130; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR02MB1130; X-Microsoft-Exchange-Diagnostics: 1; BY1PR02MB1130; 4:ZU3xsdIQhEF4V2dEcBbWxhwn1wqzf20juSGI0MUspXSOMhenfpaq71nDDoVaAXI5+9d9gYD8ovqgXLKQ5YnBQFB+5w3YJ/ZLwuKYuRntOG5uIbOr1pbW3bbCFigRfwIxqvEc4bUOKfn2PU9R8ZNpoodhOwPjTCFKlKuhBscXyYlihFEC13uUr1bApGnug+g/7OWb+/GH/42qJsshmP4NRk7EqQFn+2y2QKO4/yepx+5tv7gc3X7knbtWWoZzzCf1uEHuchlG2CgpO+VDdVIDkJ8/XxprwZZ+YbKOb7Ws7WaNXxtmPF5v/PCJAIhef24mbfh5tptNLCWWcbRnrDcuYZql0TvSr7K+dkive3d5lmcrBymbb5f2osuRzGak82IFj4sRJnTRclO9eADj2QgUug== X-Forefront-PRVS: 0442E569BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR02MB1130; 23:ueCeF7tkbZlPK1c0AsnntGq5mFZwlgy47xsK9cm2b?= =?us-ascii?Q?HSqr2bmMfHEZzLQyZMPyLrfYwf/Sa5uIhtmINca6AxQzq7cIO0bv+gn1PQ8v?= =?us-ascii?Q?HYH4SyJYdsR0XBpPglM9NGK71gzJntGkxPuvDw9isr/VkAk0jbnVEEzaep5k?= =?us-ascii?Q?AAvpKJgpDzp0aaXwDu7iJN5BlMgA7YynrXrpvFvpxTDwWDtKb8gx0TjYwHwX?= =?us-ascii?Q?uUmvr5SNio3CYTNpOtrBBbP2scCfM7M9oM0wRRWvk+qaqLjMeE5itai5jt5V?= =?us-ascii?Q?tu1ZuJhe50wN7llXpg4X8KRx9tg25SqLhBKexyOufYNIwXwAvabCCma79J7k?= =?us-ascii?Q?Kv966kP3TeoosH50w83d4TcZwaQXVy5mdKQud+cP13OyGsx6gzNMd3UBpaWa?= =?us-ascii?Q?dvxtwU2D2yOO8KUDYTi4nClJzrZM5ApF800KwPoDG33eV6FsUYykaitu4Yxr?= =?us-ascii?Q?DOzu3lZnV9UzLZG+vAMoZPY9DDAeR0/DARYdlUfD+Ypkdmw2OWgReakfoINR?= =?us-ascii?Q?dnJ89PS4V6ZDy2589JeOehrVcvumw+u/rXmps1ebN2tHyfMWWzNlKZ3qH8YE?= =?us-ascii?Q?HMmHozYvLIQt1gIIQAblUyvZCwLaw6Qd2ang7v0K0zaob7ik9PryoJw7pebr?= =?us-ascii?Q?Z4+7pWa7VzW6YLcN5i81GYMI29KP6AXjNPaknM2cDbHsJ45CNrqxel/t0rdC?= =?us-ascii?Q?sAjBBYsEPbt+hRmFTtNkKotHggMbmoZIiCeDG/I+IlXHQKZc2CrL2ZM8Ew/z?= =?us-ascii?Q?ugZvTNRNX7x5lEEKr6swRUnmhxk4qkdtTUtP4dZ7PO8WOYkuGsQ4VbbJTfkh?= =?us-ascii?Q?uTCBvLmhsWStpSPkJ0Mxv7er7SbW1Z5vbavp30yqroE8DxpdXj/5m+aDqIZR?= =?us-ascii?Q?cJiJsNQT2l0KsFrIgs/Cno2mplALah5SFroslRDNs5MOMxuaj8szGetQ2DYZ?= =?us-ascii?Q?bKhvoLmdykW/LDS0QkZlmgd3IHaR9zUseokEIqF6JdQ/C+qK1x5/uvJyukMC?= =?us-ascii?Q?bg587oT+mMZ3ZOW0BRC/sXyESEIWH1EOVht34jbRmXuC8Q/5LDZfIdzLdEH0?= =?us-ascii?Q?9klhy2zbyPNAeZ3kjjbVMvZ9vTIkK+k0M0751qUR0aas8rDmN9+CfsL8lIMG?= =?us-ascii?Q?gHWcJIZO7vGljpJs0gTGvqOKmMv/yDpt4qYADB4fmjI4h2She+dEfnnNZ9ab?= =?us-ascii?Q?ZjQC069ggDg3/UFq/eTHP4SabWmgV/51OaLiK2fB7PkHtgXcGQhdSR6cLSL2?= =?us-ascii?Q?AsodUNbp2L/APTpb0GyFa0gpQz7fiFSAeEhkkMeOqoTVLTJhbb2y8iVWC4w9?= =?us-ascii?B?QT09?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR02MB1130; 6:IZGnG9VJEQY3JoksiI3Wi8jBlWRcYsgveZY6B4xnr2wW6iB8G6GkaZBFQ93Rz4mgRWL2VYiBNMwnHN727fqMmoVBh1GmwviHn+BEGSANFA5+szXDhBdDpPLacU6n7JwxlQpGSpEqx1rpHhyu8wvJemrd7ysBDcMeouIi7+F4eAie9TwY82vatJtTTqhAW/3vlMbgUTvbOFYLk9b62gs9kKQcjraNpbwqPz3FG6Zje7RbL1/Jiln2FMsffW5cjkY+G6jHw5OkKwGut5h6xqmpNGuAoHLR0apUiEbCG/1wgQq3VrPPk+5fxgnnGPT3Nb9hyZfQUM4FXps+X/FiW2m3XA==; 5:MROt1NChOWP42WGCq+BQIuaH2APLomw9q6is+xE+WVbCZixZIkHnYaXqZLqNNrDh9KLcgbfcLzbzSy1/Pq11/7D2DH21SqCbxzCsEUqTqvQSVQJ3sLovwhgW4oqWd3VPb9+0fAJZ3X10Ug0kJrx98A==; 24:FvO6GhrlMoX3ldvY+lAqgMygkIN4e1/0YfiizM/UUTZWN4NYdH2/1wDnjYGayYR441bLpT5hDEnOen1xviSGtoPuECCA2M8SdJCzJnLCzQY=; 7:E/yJo0e/duSLBfSnvWHyAjHp1a7LTYVWi2uOA3+UWmICTenfdudZfFy2O/LfORDNAqgHM/1imm+ly7dwO5Y3OG6X+LfYR4rcGsCUoL2hg6fVP3k1hcIQDww6u3WOpk4zZS/QE5UwXwFJc9P7Do+ZOhIpjr+X9Vim3zVbBIhtsS49DhO0DDOYcq9cWaobE5fdL0C4up6PrUSb/iXVNqLrKG3FcLcNxJK+kBBK3Es/ZtI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 00:12:39.3305 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR02MB1130 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.36.65 Subject: [Qemu-devel] [PATCH v1 1/8] Replace all occurances of __FUNCTION__ with __func__ 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: "Dr. David Alan Gilbert" , Stefano Stabellini , Fam Zheng , qemu-block@nongnu.org, Peter Crosthwaite , John Snow , Juan Quintela , armbru@redhat.com, alistair.francis@xilinx.com, Yongbok Kim , qemu-arm@nongnu.org, Gerd Hoffmann , Stefan Hajnoczi , xen-devel@lists.xenproject.org, Anthony Perard , alistair23@gmail.com, Aurelien Jarno Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_6 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace all occurs of __FUNCTION__ except for the check in checkpatch with the non GCC specific __func__. One line in hcd-musb.c was manually tweaked to pass checkpatch. Signed-off-by: Alistair Francis Cc: Gerd Hoffmann Cc: Andrzej Zaborowski Cc: Stefano Stabellini Cc: Anthony Perard Cc: John Snow Cc: Aurelien Jarno Cc: Yongbok Kim Cc: Peter Crosthwaite Cc: Stefan Hajnoczi (supporter:Block Cc: Fam Zheng (supporter:Block Cc: Juan Quintela Cc: "Dr. David Alan Gilbert" Cc: qemu-arm@nongnu.org Cc: qemu-block@nongnu.org Cc: xen-devel@lists.xenproject.org Reviewed-by: Eric Blake --- audio/audio_int.h | 2 +- hw/arm/nseries.c | 2 +- hw/arm/omap1.c | 42 +++++++++++++++++++++--------------------- hw/arm/omap2.c | 12 ++++++------ hw/arm/palm.c | 14 +++++++------- hw/arm/pxa2xx.c | 46 +++++++++++++++++++++++-------------------= ---- hw/arm/pxa2xx_gpio.c | 6 +++--- hw/arm/pxa2xx_pic.c | 4 ++-- hw/arm/tosa.c | 10 +++++----- hw/audio/hda-codec.c | 10 +++++----- hw/audio/intel-hda.c | 28 ++++++++++++++-------------- hw/audio/wm8750.c | 4 ++-- hw/block/nand.c | 4 ++-- hw/block/onenand.c | 8 ++++---- hw/bt/core.c | 10 +++++----- hw/bt/hci-csr.c | 14 +++++++------- hw/bt/hci.c | 26 +++++++++++++------------- hw/bt/hid.c | 2 +- hw/bt/l2cap.c | 22 +++++++++++----------- hw/bt/sdp.c | 6 +++--- hw/display/blizzard.c | 18 +++++++++--------- hw/display/omap_dss.c | 6 +++--- hw/display/pxa2xx_lcd.c | 14 +++++++------- hw/display/qxl-render.c | 6 +++--- hw/display/qxl.h | 2 +- hw/display/tc6393xb.c | 2 +- hw/display/xenfb.c | 2 +- hw/dma/omap_dma.c | 26 +++++++++++++------------- hw/dma/pxa2xx_dma.c | 14 +++++++------- hw/gpio/max7310.c | 8 ++++---- hw/gpio/omap_gpio.c | 2 +- hw/i2c/omap_i2c.c | 6 +++--- hw/ide/ahci.c | 2 +- hw/ide/microdrive.c | 4 ++-- hw/input/lm832x.c | 6 +++--- hw/input/pxa2xx_keypad.c | 6 +++--- hw/input/tsc2005.c | 8 ++++---- hw/input/tsc210x.c | 4 ++-- hw/intc/omap_intc.c | 2 +- hw/isa/vt82c686.c | 2 +- hw/mips/gt64xxx_pci.c | 2 +- hw/misc/cbus.c | 12 ++++++------ hw/misc/omap_clk.c | 4 ++-- hw/misc/omap_gpmc.c | 6 +++--- hw/misc/omap_l4.c | 4 ++-- hw/misc/omap_sdrc.c | 2 +- hw/misc/omap_tap.c | 6 +++--- hw/misc/tmp105.c | 2 +- hw/pci-host/bonito.c | 2 +- hw/sd/pxa2xx_mmci.c | 6 +++--- hw/ssi/omap_spi.c | 6 +++--- hw/timer/omap_gptimer.c | 6 +++--- hw/timer/twl92230.c | 6 +++--- hw/usb/desc.c | 2 +- hw/usb/dev-bluetooth.c | 4 ++-- hw/usb/hcd-musb.c | 4 ++-- hw/usb/tusb6010.c | 14 +++++++------- hw/xenpv/xen_domainbuild.c | 16 ++++++++-------- hw/xenpv/xen_machine_pv.c | 2 +- include/hw/arm/omap.h | 10 +++++----- include/hw/arm/sharpsl.h | 2 +- memory_mapping.c | 2 +- migration/block.c | 4 ++-- ui/cursor.c | 6 +++--- ui/spice-display.c | 4 ++-- 65 files changed, 273 insertions(+), 273 deletions(-) diff --git a/audio/audio_int.h b/audio/audio_int.h index 5bcb1c60e1..543b1bd8d5 100644 --- a/audio/audio_int.h +++ b/audio/audio_int.h @@ -253,7 +253,7 @@ static inline int audio_ring_dist (int dst, int src, in= t len) #define AUDIO_STRINGIFY(n) AUDIO_STRINGIFY_(n) =20 #if defined _MSC_VER || defined __GNUC__ -#define AUDIO_FUNC __FUNCTION__ +#define AUDIO_FUNC __func__ #else #define AUDIO_FUNC __FILE__ ":" AUDIO_STRINGIFY (__LINE__) #endif diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c index 58005b6619..32687afced 100644 --- a/hw/arm/nseries.c +++ b/hw/arm/nseries.c @@ -463,7 +463,7 @@ static uint32_t mipid_txrx(void *opaque, uint32_t cmd, = int len) uint8_t ret; =20 if (len > 9) { - hw_error("%s: FIXME: bad SPI word width %i\n", __FUNCTION__, len); + hw_error("%s: FIXME: bad SPI word width %i\n", __func__, len); } =20 if (s->p >=3D ARRAY_SIZE(s->resp)) { diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c index b3e7625130..1388200191 100644 --- a/hw/arm/omap1.c +++ b/hw/arm/omap1.c @@ -999,7 +999,7 @@ static uint64_t omap_id_read(void *opaque, hwaddr addr, case omap1510: return 0x03310115; default: - hw_error("%s: bad mpu model\n", __FUNCTION__); + hw_error("%s: bad mpu model\n", __func__); } break; =20 @@ -1010,7 +1010,7 @@ static uint64_t omap_id_read(void *opaque, hwaddr add= r, case omap1510: return 0xfb47002f; default: - hw_error("%s: bad mpu model\n", __FUNCTION__); + hw_error("%s: bad mpu model\n", __func__); } break; } @@ -1716,7 +1716,7 @@ static void omap_clkm_write(void *opaque, hwaddr addr, case 0x18: /* ARM_SYSST */ if ((s->clkm.clocking_scheme ^ (value >> 11)) & 7) { s->clkm.clocking_scheme =3D (value >> 11) & 7; - printf("%s: clocking scheme set to %s\n", __FUNCTION__, + printf("%s: clocking scheme set to %s\n", __func__, clkschemename[s->clkm.clocking_scheme]); } s->clkm.cold_start &=3D value & 0x3f; @@ -2129,14 +2129,14 @@ qemu_irq *omap_mpuio_in_get(struct omap_mpuio_s *s) void omap_mpuio_out_set(struct omap_mpuio_s *s, int line, qemu_irq handler) { if (line >=3D 16 || line < 0) - hw_error("%s: No GPIO line %i\n", __FUNCTION__, line); + hw_error("%s: No GPIO line %i\n", __func__, line); s->handler[line] =3D handler; } =20 void omap_mpuio_key(struct omap_mpuio_s *s, int row, int col, int down) { if (row >=3D 5 || row < 0) - hw_error("%s: No key %i-%i\n", __FUNCTION__, col, row); + hw_error("%s: No key %i-%i\n", __func__, col, row); =20 if (down) s->buttons[row] |=3D 1 << col; @@ -2313,7 +2313,7 @@ void omap_uwire_attach(struct omap_uwire_s *s, uWireSlave *slave, int chipselect) { if (chipselect < 0 || chipselect > 3) { - fprintf(stderr, "%s: Bad chipselect %i\n", __FUNCTION__, chipselec= t); + fprintf(stderr, "%s: Bad chipselect %i\n", __func__, chipselect); exit(-1); } =20 @@ -2335,7 +2335,7 @@ static void omap_pwl_update(struct omap_pwl_s *s) =20 if (output !=3D s->output) { s->output =3D output; - printf("%s: Backlight now at %i/256\n", __FUNCTION__, output); + printf("%s: Backlight now at %i/256\n", __func__, output); } } =20 @@ -2473,7 +2473,7 @@ static void omap_pwt_write(void *opaque, hwaddr addr, case 0x04: /* VRC */ if ((value ^ s->vrc) & 1) { if (value & 1) - printf("%s: %iHz buzz on\n", __FUNCTION__, (int) + printf("%s: %iHz buzz on\n", __func__, (int) /* 1.5 MHz from a 12-MHz or 13-MHz PWT_CLK= */ ((omap_clk_getrate(s->clk) >> 3) / /* Pre-multiplexer divider */ @@ -2490,7 +2490,7 @@ static void omap_pwt_write(void *opaque, hwaddr addr, ((value & (1 << 5)) ? 80 : 127) / (107 * 55 * 63 * 127))); else - printf("%s: silence!\n", __FUNCTION__); + printf("%s: silence!\n", __func__); } s->vrc =3D value & 0x7f; break; @@ -2562,7 +2562,7 @@ static void omap_rtc_alarm_update(struct omap_rtc_s *= s) { s->alarm_ti =3D mktimegm(&s->alarm_tm); if (s->alarm_ti =3D=3D -1) - printf("%s: conversion failed\n", __FUNCTION__); + printf("%s: conversion failed\n", __func__); } =20 static uint64_t omap_rtc_read(void *opaque, hwaddr addr, @@ -3028,7 +3028,7 @@ static void omap_mcbsp_source_tick(void *opaque) if (!s->rx_rate) return; if (s->rx_req) - printf("%s: Rx FIFO overrun\n", __FUNCTION__); + printf("%s: Rx FIFO overrun\n", __func__); =20 s->rx_req =3D s->rx_rate << bps[(s->rcr[0] >> 5) & 7]; =20 @@ -3074,7 +3074,7 @@ static void omap_mcbsp_sink_tick(void *opaque) if (!s->tx_rate) return; if (s->tx_req) - printf("%s: Tx FIFO underrun\n", __FUNCTION__); + printf("%s: Tx FIFO underrun\n", __func__); =20 s->tx_req =3D s->tx_rate << bps[(s->xcr[0] >> 5) & 7]; =20 @@ -3176,7 +3176,7 @@ static uint64_t omap_mcbsp_read(void *opaque, hwaddr = addr, /* Fall through. */ case 0x02: /* DRR1 */ if (s->rx_req < 2) { - printf("%s: Rx FIFO underrun\n", __FUNCTION__); + printf("%s: Rx FIFO underrun\n", __func__); omap_mcbsp_rx_done(s); } else { s->tx_req -=3D 2; @@ -3282,7 +3282,7 @@ static void omap_mcbsp_writeh(void *opaque, hwaddr ad= dr, if (s->tx_req < 2) omap_mcbsp_tx_done(s); } else - printf("%s: Tx FIFO overrun\n", __FUNCTION__); + printf("%s: Tx FIFO overrun\n", __func__); return; =20 case 0x08: /* SPCR2 */ @@ -3297,7 +3297,7 @@ static void omap_mcbsp_writeh(void *opaque, hwaddr ad= dr, s->spcr[0] &=3D 0x0006; s->spcr[0] |=3D 0xf8f9 & value; if (value & (1 << 15)) /* DLB */ - printf("%s: Digital Loopback mode enable attempt\n", __FUNCTIO= N__); + printf("%s: Digital Loopback mode enable attempt\n", __func__); if (~value & 1) { /* RRST */ s->spcr[0] &=3D ~6; s->rx_req =3D 0; @@ -3330,13 +3330,13 @@ static void omap_mcbsp_writeh(void *opaque, hwaddr = addr, s->mcr[1] =3D value & 0x03e3; if (value & 3) /* XMCM */ printf("%s: Tx channel selection mode enable attempt\n", - __FUNCTION__); + __func__); return; case 0x1a: /* MCR1 */ s->mcr[0] =3D value & 0x03e1; if (value & 1) /* RMCM */ printf("%s: Rx channel selection mode enable attempt\n", - __FUNCTION__); + __func__); return; case 0x1c: /* RCERA */ s->rcer[0] =3D value & 0xffff; @@ -3418,7 +3418,7 @@ static void omap_mcbsp_writew(void *opaque, hwaddr ad= dr, if (s->tx_req < 4) omap_mcbsp_tx_done(s); } else - printf("%s: Tx FIFO overrun\n", __FUNCTION__); + printf("%s: Tx FIFO overrun\n", __func__); return; } =20 @@ -3536,7 +3536,7 @@ static void omap_lpg_tick(void *opaque) timer_mod(s->tm, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + s->on); =20 s->cycle =3D !s->cycle; - printf("%s: LED is %s\n", __FUNCTION__, s->cycle ? "on" : "off"); + printf("%s: LED is %s\n", __func__, s->cycle ? "on" : "off"); } =20 static void omap_lpg_update(struct omap_lpg_s *s) @@ -3557,9 +3557,9 @@ static void omap_lpg_update(struct omap_lpg_s *s) =20 timer_del(s->tm); if (on =3D=3D period && s->on < s->period) - printf("%s: LED is on\n", __FUNCTION__); + printf("%s: LED is on\n", __func__); else if (on =3D=3D 0 && s->on) - printf("%s: LED is off\n", __FUNCTION__); + printf("%s: LED is off\n", __func__); else if (on && (on !=3D s->on || period !=3D s->period)) { s->cycle =3D 0; s->on =3D on; diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c index f5b148881c..b53878b8b9 100644 --- a/hw/arm/omap2.c +++ b/hw/arm/omap2.c @@ -1312,7 +1312,7 @@ static void omap_prcm_apll_update(struct omap_prcm_s = *s) =20 if (mode[0] =3D=3D 1 || mode[0] =3D=3D 2 || mode[1] =3D=3D 1 || mode[1= ] =3D=3D 2) fprintf(stderr, "%s: bad EN_54M_PLL or bad EN_96M_PLL\n", - __FUNCTION__); + __func__); } =20 static void omap_prcm_dpll_update(struct omap_prcm_s *s) @@ -1331,7 +1331,7 @@ static void omap_prcm_dpll_update(struct omap_prcm_s = *s) s->dpll_lock =3D 0; switch (mode) { case 0: - fprintf(stderr, "%s: bad EN_DPLL\n", __FUNCTION__); + fprintf(stderr, "%s: bad EN_DPLL\n", __func__); break; case 1: /* Low-power bypass mode (Default) */ case 2: /* Fast-relock bypass mode */ @@ -1358,7 +1358,7 @@ static void omap_prcm_dpll_update(struct omap_prcm_s = *s) omap_clk_reparent(core, dpll_x2); break; case 3: - fprintf(stderr, "%s: bad CORE_CLK_SRC\n", __FUNCTION__); + fprintf(stderr, "%s: bad CORE_CLK_SRC\n", __func__); break; } } @@ -1628,7 +1628,7 @@ static void omap_prcm_write(void *opaque, hwaddr addr, case 0x500: /* CM_CLKEN_PLL */ if (value & 0xffffff30) fprintf(stderr, "%s: write 0s in CM_CLKEN_PLL for " - "future compatibility\n", __FUNCTION__); + "future compatibility\n", __func__); if ((s->clken[9] ^ value) & 0xcc) { s->clken[9] &=3D ~0xcc; s->clken[9] |=3D value & 0xcc; @@ -1647,7 +1647,7 @@ static void omap_prcm_write(void *opaque, hwaddr addr, case 0x540: /* CM_CLKSEL1_PLL */ if (value & 0xfc4000d7) fprintf(stderr, "%s: write 0s in CM_CLKSEL1_PLL for " - "future compatibility\n", __FUNCTION__); + "future compatibility\n", __func__); if ((s->clksel[5] ^ value) & 0x003fff00) { s->clksel[5] =3D value & 0x03bfff28; omap_prcm_dpll_update(s); @@ -1659,7 +1659,7 @@ static void omap_prcm_write(void *opaque, hwaddr addr, case 0x544: /* CM_CLKSEL2_PLL */ if (value & ~3) fprintf(stderr, "%s: write 0s in CM_CLKSEL2_PLL[31:2] for " - "future compatibility\n", __FUNCTION__); + "future compatibility\n", __func__); if (s->clksel[6] !=3D (value & 3)) { s->clksel[6] =3D value & 3; omap_prcm_dpll_update(s); diff --git a/hw/arm/palm.c b/hw/arm/palm.c index a1f55d79b4..285f43709d 100644 --- a/hw/arm/palm.c +++ b/hw/arm/palm.c @@ -44,7 +44,7 @@ static void static_write(void *opaque, hwaddr offset, uin= t64_t value, { #ifdef SPY printf("%s: value %08lx written at " PA_FMT "\n", - __FUNCTION__, value, offset); + __func__, value, offset); #endif } =20 @@ -127,11 +127,11 @@ static void palmte_onoff_gpios(void *opaque, int line= , int level) switch (line) { case 0: printf("%s: current to MMC/SD card %sabled.\n", - __FUNCTION__, level ? "dis" : "en"); + __func__, level ? "dis" : "en"); break; case 1: printf("%s: internal speaker amplifier %s.\n", - __FUNCTION__, level ? "down" : "on"); + __func__, level ? "down" : "on"); break; =20 /* These LCD & Audio output signals have not been identified yet. */ @@ -139,12 +139,12 @@ static void palmte_onoff_gpios(void *opaque, int line= , int level) case 3: case 4: printf("%s: LCD GPIO%i %s.\n", - __FUNCTION__, line - 1, level ? "high" : "low"); + __func__, line - 1, level ? "high" : "low"); break; case 5: case 6: printf("%s: Audio GPIO%i %s.\n", - __FUNCTION__, line - 4, level ? "high" : "low"); + __func__, line - 4, level ? "high" : "low"); break; } } @@ -234,7 +234,7 @@ static void palmte_init(MachineState *machine) rom_size =3D get_image_size(option_rom[0].name); if (rom_size > flash_size) { fprintf(stderr, "%s: ROM image too big (%x > %x)\n", - __FUNCTION__, rom_size, flash_size); + __func__, rom_size, flash_size); rom_size =3D 0; } if (rom_size > 0) { @@ -244,7 +244,7 @@ static void palmte_init(MachineState *machine) } if (rom_size < 0) { fprintf(stderr, "%s: error loading '%s'\n", - __FUNCTION__, option_rom[0].name); + __func__, option_rom[0].name); } } =20 diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index cf07234578..078006f390 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -107,7 +107,7 @@ static uint64_t pxa2xx_pm_read(void *opaque, hwaddr add= r, return s->pm_regs[addr >> 2]; default: fail: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } return 0; @@ -139,7 +139,7 @@ static void pxa2xx_pm_write(void *opaque, hwaddr addr, break; } =20 - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } } @@ -180,7 +180,7 @@ static uint64_t pxa2xx_cm_read(void *opaque, hwaddr add= r, return s->cm_regs[CCCR >> 2] | (3 << 28); =20 default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } return 0; @@ -205,7 +205,7 @@ static void pxa2xx_cm_write(void *opaque, hwaddr addr, break; =20 default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } } @@ -410,7 +410,7 @@ static uint64_t pxa2xx_mm_read(void *opaque, hwaddr add= r, return s->mm_regs[addr >> 2]; =20 default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } return 0; @@ -429,7 +429,7 @@ static void pxa2xx_mm_write(void *opaque, hwaddr addr, } =20 default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } } @@ -619,7 +619,7 @@ static uint64_t pxa2xx_ssp_read(void *opaque, hwaddr ad= dr, if (!s->enable) return 0xffffffff; if (s->rx_level < 1) { - printf("%s: SSP Rx Underrun\n", __FUNCTION__); + printf("%s: SSP Rx Underrun\n", __func__); return 0xffffffff; } s->rx_level --; @@ -636,7 +636,7 @@ static uint64_t pxa2xx_ssp_read(void *opaque, hwaddr ad= dr, case SSACD: return s->ssacd; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } return 0; @@ -653,9 +653,9 @@ static void pxa2xx_ssp_write(void *opaque, hwaddr addr, s->sscr[0] =3D value & 0xc7ffffff; s->enable =3D value & SSCR0_SSE; if (value & SSCR0_MOD) - printf("%s: Attempt to use network mode\n", __FUNCTION__); + printf("%s: Attempt to use network mode\n", __func__); if (s->enable && SSCR0_DSS(value) < 4) - printf("%s: Wrong data size: %i bits\n", __FUNCTION__, + printf("%s: Wrong data size: %i bits\n", __func__, SSCR0_DSS(value)); if (!(value & SSCR0_SSE)) { s->sssr =3D 0; @@ -668,7 +668,7 @@ static void pxa2xx_ssp_write(void *opaque, hwaddr addr, case SSCR1: s->sscr[1] =3D value; if (value & (SSCR1_LBM | SSCR1_EFWR)) - printf("%s: Attempt to use SSP test mode\n", __FUNCTION__); + printf("%s: Attempt to use SSP test mode\n", __func__); pxa2xx_ssp_fifo_update(s); break; =20 @@ -728,7 +728,7 @@ static void pxa2xx_ssp_write(void *opaque, hwaddr addr, break; =20 default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } } @@ -990,7 +990,7 @@ static uint64_t pxa2xx_rtc_read(void *opaque, hwaddr ad= dr, else return s->last_swcr; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } return 0; @@ -1096,7 +1096,7 @@ static void pxa2xx_rtc_write(void *opaque, hwaddr add= r, break; =20 default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); } } =20 @@ -1342,7 +1342,7 @@ static uint64_t pxa2xx_i2c_read(void *opaque, hwaddr = addr, s->ibmr =3D 0; return s->ibmr; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } return 0; @@ -1415,7 +1415,7 @@ static void pxa2xx_i2c_write(void *opaque, hwaddr add= r, break; =20 default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); } } =20 @@ -1616,7 +1616,7 @@ static uint64_t pxa2xx_i2s_read(void *opaque, hwaddr = addr, } return 0; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } return 0; @@ -1639,14 +1639,14 @@ static void pxa2xx_i2s_write(void *opaque, hwaddr a= ddr, s->status &=3D ~(1 << 7); /* I2SOFF */ } if (value & (1 << 4)) /* EFWR */ - printf("%s: Attempt to use special function\n", __FUNCTION__); + printf("%s: Attempt to use special function\n", __func__); s->enable =3D (value & 9) =3D=3D 1; /* ENB && !RST*/ pxa2xx_i2s_update(s); break; case SACR1: s->control[1] =3D value & 0x0039; if (value & (1 << 5)) /* ENLBF */ - printf("%s: Attempt to use loopback function\n", __FUNCTION__); + printf("%s: Attempt to use loopback function\n", __func__); if (value & (1 << 4)) /* DPRL */ s->fifo_len =3D 0; pxa2xx_i2s_update(s); @@ -1673,7 +1673,7 @@ static void pxa2xx_i2s_write(void *opaque, hwaddr add= r, } break; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); } } =20 @@ -1849,7 +1849,7 @@ static uint64_t pxa2xx_fir_read(void *opaque, hwaddr = addr, pxa2xx_fir_update(s); return ret; } - printf("%s: Rx FIFO underrun.\n", __FUNCTION__); + printf("%s: Rx FIFO underrun.\n", __func__); break; case ICSR0: return s->status[0]; @@ -1858,7 +1858,7 @@ static uint64_t pxa2xx_fir_read(void *opaque, hwaddr = addr, case ICFOR: return s->rx_len; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); break; } return 0; @@ -1910,7 +1910,7 @@ static void pxa2xx_fir_write(void *opaque, hwaddr add= r, case ICFOR: break; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); } } =20 diff --git a/hw/arm/pxa2xx_gpio.c b/hw/arm/pxa2xx_gpio.c index 521dbad039..e15070188e 100644 --- a/hw/arm/pxa2xx_gpio.c +++ b/hw/arm/pxa2xx_gpio.c @@ -107,7 +107,7 @@ static void pxa2xx_gpio_set(void *opaque, int line, int= level) uint32_t mask; =20 if (line >=3D s->lines) { - printf("%s: No GPIO pin %i\n", __FUNCTION__, line); + printf("%s: No GPIO pin %i\n", __func__, line); return; } =20 @@ -195,7 +195,7 @@ static uint64_t pxa2xx_gpio_read(void *opaque, hwaddr o= ffset, return s->status[bank]; =20 default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } =20 return 0; @@ -248,7 +248,7 @@ static void pxa2xx_gpio_write(void *opaque, hwaddr offs= et, break; =20 default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } } =20 diff --git a/hw/arm/pxa2xx_pic.c b/hw/arm/pxa2xx_pic.c index b516ced8c0..61275fa040 100644 --- a/hw/arm/pxa2xx_pic.c +++ b/hw/arm/pxa2xx_pic.c @@ -165,7 +165,7 @@ static uint64_t pxa2xx_pic_mem_read(void *opaque, hwadd= r offset, case ICHP: /* Highest Priority register */ return pxa2xx_pic_highest(s); default: - printf("%s: Bad register offset " REG_FMT "\n", __FUNCTION__, offs= et); + printf("%s: Bad register offset " REG_FMT "\n", __func__, offset); return 0; } } @@ -198,7 +198,7 @@ static void pxa2xx_pic_mem_write(void *opaque, hwaddr o= ffset, s->priority[32 + ((offset - IPR32) >> 2)] =3D value & 0x8000003f; break; default: - printf("%s: Bad register offset " REG_FMT "\n", __FUNCTION__, offs= et); + printf("%s: Bad register offset " REG_FMT "\n", __func__, offset); return; } pxa2xx_pic_update(opaque); diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c index 044796350a..a55b1a369c 100644 --- a/hw/arm/tosa.c +++ b/hw/arm/tosa.c @@ -159,7 +159,7 @@ static int tosa_dac_send(I2CSlave *i2c, uint8_t data) s->buf[s->len] =3D data; if (s->len ++ > 2) { #ifdef VERBOSE - fprintf(stderr, "%s: message too long (%i bytes)\n", __FUNCTION__,= s->len); + fprintf(stderr, "%s: message too long (%i bytes)\n", __func__, s->= len); #endif return 1; } @@ -181,14 +181,14 @@ static int tosa_dac_event(I2CSlave *i2c, enum i2c_eve= nt event) case I2C_START_SEND: break; case I2C_START_RECV: - printf("%s: recv not supported!!!\n", __FUNCTION__); + printf("%s: recv not supported!!!\n", __func__); break; case I2C_FINISH: #ifdef VERBOSE if (s->len < 2) - printf("%s: message too short (%i bytes)\n", __FUNCTION__, s->= len); + printf("%s: message too short (%i bytes)\n", __func__, s->len); if (s->len > 2) - printf("%s: message too long\n", __FUNCTION__); + printf("%s: message too long\n", __func__); #endif break; default: @@ -200,7 +200,7 @@ static int tosa_dac_event(I2CSlave *i2c, enum i2c_event= event) =20 static int tosa_dac_recv(I2CSlave *s) { - printf("%s: recv not supported!!!\n", __FUNCTION__); + printf("%s: recv not supported!!!\n", __func__); return -1; } =20 diff --git a/hw/audio/hda-codec.c b/hw/audio/hda-codec.c index 5402cd196c..e8aa7842e6 100644 --- a/hw/audio/hda-codec.c +++ b/hw/audio/hda-codec.c @@ -316,7 +316,7 @@ static void hda_audio_command(HDACodecDevice *hda, uint= 32_t nid, uint32_t data) goto fail; } dprint(a, 2, "%s: nid %d (%s), verb 0x%x, payload 0x%x\n", - __FUNCTION__, nid, node->name, verb, payload); + __func__, nid, node->name, verb, payload); =20 switch (verb) { /* all nodes */ @@ -449,7 +449,7 @@ static void hda_audio_command(HDACodecDevice *hda, uint= 32_t nid, uint32_t data) =20 fail: dprint(a, 1, "%s: not handled: nid %d (%s), verb 0x%x, payload 0x%x\n", - __FUNCTION__, nid, node ? node->name : "?", verb, payload); + __func__, nid, node ? node->name : "?", verb, payload); hda_codec_response(hda, true, 0); } =20 @@ -484,7 +484,7 @@ static int hda_audio_init(HDACodecDevice *hda, const st= ruct desc_codec *desc) =20 a->desc =3D desc; a->name =3D object_get_typename(OBJECT(a)); - dprint(a, 1, "%s: cad %d\n", __FUNCTION__, a->hda.cad); + dprint(a, 1, "%s: cad %d\n", __func__, a->hda.cad); =20 AUD_register_card("hda", &a->card); for (i =3D 0; i < a->desc->nnodes; i++) { @@ -526,7 +526,7 @@ static void hda_audio_exit(HDACodecDevice *hda) HDAAudioStream *st; int i; =20 - dprint(a, 1, "%s\n", __FUNCTION__); + dprint(a, 1, "%s\n", __func__); for (i =3D 0; i < ARRAY_SIZE(a->st); i++) { st =3D a->st + i; if (st->node =3D=3D NULL) { @@ -547,7 +547,7 @@ static int hda_audio_post_load(void *opaque, int versio= n) HDAAudioStream *st; int i; =20 - dprint(a, 1, "%s\n", __FUNCTION__); + dprint(a, 1, "%s\n", __func__); if (version =3D=3D 1) { /* assume running_compat[] is for output streams */ for (i =3D 0; i < ARRAY_SIZE(a->running_compat); i++) diff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c index 18a50a8f83..ed51177b15 100644 --- a/hw/audio/intel-hda.c +++ b/hw/audio/intel-hda.c @@ -265,7 +265,7 @@ static void intel_hda_update_irq(IntelHDAState *d) } else { level =3D 0; } - dprint(d, 2, "%s: level %d [%s]\n", __FUNCTION__, + dprint(d, 2, "%s: level %d [%s]\n", __func__, level, msi ? "msi" : "intx"); if (msi) { if (level) { @@ -285,7 +285,7 @@ static int intel_hda_send_command(IntelHDAState *d, uin= t32_t verb) cad =3D (verb >> 28) & 0x0f; if (verb & (1 << 27)) { /* indirect node addressing, not specified in HDA 1.0 */ - dprint(d, 1, "%s: indirect node addressing (guest bug?)\n", __FUNC= TION__); + dprint(d, 1, "%s: indirect node addressing (guest bug?)\n", __func= __); return -1; } nid =3D (verb >> 20) & 0x7f; @@ -293,7 +293,7 @@ static int intel_hda_send_command(IntelHDAState *d, uin= t32_t verb) =20 codec =3D hda_codec_find(&d->codecs, cad); if (codec =3D=3D NULL) { - dprint(d, 1, "%s: addressed non-existing codec\n", __FUNCTION__); + dprint(d, 1, "%s: addressed non-existing codec\n", __func__); return -1; } cdc =3D HDA_CODEC_DEVICE_GET_CLASS(codec); @@ -307,22 +307,22 @@ static void intel_hda_corb_run(IntelHDAState *d) uint32_t rp, verb; =20 if (d->ics & ICH6_IRS_BUSY) { - dprint(d, 2, "%s: [icw] verb 0x%08x\n", __FUNCTION__, d->icw); + dprint(d, 2, "%s: [icw] verb 0x%08x\n", __func__, d->icw); intel_hda_send_command(d, d->icw); return; } =20 for (;;) { if (!(d->corb_ctl & ICH6_CORBCTL_RUN)) { - dprint(d, 2, "%s: !run\n", __FUNCTION__); + dprint(d, 2, "%s: !run\n", __func__); return; } if ((d->corb_rp & 0xff) =3D=3D d->corb_wp) { - dprint(d, 2, "%s: corb ring empty\n", __FUNCTION__); + dprint(d, 2, "%s: corb ring empty\n", __func__); return; } if (d->rirb_count =3D=3D d->rirb_cnt) { - dprint(d, 2, "%s: rirb count reached\n", __FUNCTION__); + dprint(d, 2, "%s: rirb count reached\n", __func__); return; } =20 @@ -331,7 +331,7 @@ static void intel_hda_corb_run(IntelHDAState *d) verb =3D ldl_le_pci_dma(&d->pci, addr + 4*rp); d->corb_rp =3D rp; =20 - dprint(d, 2, "%s: [rp 0x%x] verb 0x%08x\n", __FUNCTION__, rp, verb= ); + dprint(d, 2, "%s: [rp 0x%x] verb 0x%08x\n", __func__, rp, verb); intel_hda_send_command(d, verb); } } @@ -345,7 +345,7 @@ static void intel_hda_response(HDACodecDevice *dev, boo= l solicited, uint32_t res =20 if (d->ics & ICH6_IRS_BUSY) { dprint(d, 2, "%s: [irr] response 0x%x, cad 0x%x\n", - __FUNCTION__, response, dev->cad); + __func__, response, dev->cad); d->irr =3D response; d->ics &=3D ~(ICH6_IRS_BUSY | 0xf0); d->ics |=3D (ICH6_IRS_VALID | (dev->cad << 4)); @@ -353,7 +353,7 @@ static void intel_hda_response(HDACodecDevice *dev, boo= l solicited, uint32_t res } =20 if (!(d->rirb_ctl & ICH6_RBCTL_DMA_EN)) { - dprint(d, 1, "%s: rirb dma disabled, drop codec response\n", __FUN= CTION__); + dprint(d, 1, "%s: rirb dma disabled, drop codec response\n", __fun= c__); return; } =20 @@ -365,17 +365,17 @@ static void intel_hda_response(HDACodecDevice *dev, b= ool solicited, uint32_t res d->rirb_wp =3D wp; =20 dprint(d, 2, "%s: [wp 0x%x] response 0x%x, extra 0x%x\n", - __FUNCTION__, wp, response, ex); + __func__, wp, response, ex); =20 d->rirb_count++; if (d->rirb_count =3D=3D d->rirb_cnt) { - dprint(d, 2, "%s: rirb count reached (%d)\n", __FUNCTION__, d->rir= b_count); + dprint(d, 2, "%s: rirb count reached (%d)\n", __func__, d->rirb_co= unt); if (d->rirb_ctl & ICH6_RBCTL_IRQ_EN) { d->rirb_sts |=3D ICH6_RBSTS_IRQ; intel_hda_update_irq(d); } } else if ((d->corb_rp & 0xff) =3D=3D d->corb_wp) { - dprint(d, 2, "%s: corb ring empty (%d/%d)\n", __FUNCTION__, + dprint(d, 2, "%s: corb ring empty (%d/%d)\n", __func__, d->rirb_count, d->rirb_cnt); if (d->rirb_ctl & ICH6_RBCTL_IRQ_EN) { d->rirb_sts |=3D ICH6_RBSTS_IRQ; @@ -1144,7 +1144,7 @@ static int intel_hda_post_load(void *opaque, int vers= ion) IntelHDAState* d =3D opaque; int i; =20 - dprint(d, 1, "%s\n", __FUNCTION__); + dprint(d, 1, "%s\n", __func__); for (i =3D 0; i < ARRAY_SIZE(d->st); i++) { if (d->st[i].ctl & 0x02) { intel_hda_parse_bdl(d, &d->st[i]); diff --git a/hw/audio/wm8750.c b/hw/audio/wm8750.c index d2bf2e1da1..de04d8ae8f 100644 --- a/hw/audio/wm8750.c +++ b/hw/audio/wm8750.c @@ -315,7 +315,7 @@ static int wm8750_event(I2CSlave *i2c, enum i2c_event e= vent) #ifdef VERBOSE if (s->i2c_len < 2) printf("%s: message too short (%i bytes)\n", - __FUNCTION__, s->i2c_len); + __func__, s->i2c_len); #endif break; default: @@ -555,7 +555,7 @@ static int wm8750_tx(I2CSlave *i2c, uint8_t data) =20 #ifdef VERBOSE default: - printf("%s: unknown register %02x\n", __FUNCTION__, cmd); + printf("%s: unknown register %02x\n", __func__, cmd); #endif } =20 diff --git a/hw/block/nand.c b/hw/block/nand.c index 0d33ac281f..5bc1829889 100644 --- a/hw/block/nand.c +++ b/hw/block/nand.c @@ -321,7 +321,7 @@ static void nand_command(NANDFlashState *s) break; =20 default: - printf("%s: Unknown NAND command 0x%02x\n", __FUNCTION__, s->cmd); + printf("%s: Unknown NAND command 0x%02x\n", __func__, s->cmd); } } =20 @@ -638,7 +638,7 @@ DeviceState *nand_init(BlockBackend *blk, int manf_id, = int chip_id) DeviceState *dev; =20 if (nand_flash_ids[chip_id].size =3D=3D 0) { - hw_error("%s: Unsupported NAND chip ID.\n", __FUNCTION__); + hw_error("%s: Unsupported NAND chip ID.\n", __func__); } dev =3D DEVICE(object_new(TYPE_NAND)); qdev_prop_set_uint8(dev, "manufacturer_id", manf_id); diff --git a/hw/block/onenand.c b/hw/block/onenand.c index b7423607d9..224daf7ccf 100644 --- a/hw/block/onenand.c +++ b/hw/block/onenand.c @@ -661,12 +661,12 @@ static uint64_t onenand_read(void *opaque, hwaddr add= r, case 0xff02: /* ECC Result of spare area data */ case 0xff03: /* ECC Result of main area data */ case 0xff04: /* ECC Result of spare area data */ - hw_error("%s: imeplement ECC\n", __FUNCTION__); + hw_error("%s: imeplement ECC\n", __func__); return 0x0000; } =20 fprintf(stderr, "%s: unknown OneNAND register %x\n", - __FUNCTION__, offset); + __func__, offset); return 0; } =20 @@ -711,7 +711,7 @@ static void onenand_write(void *opaque, hwaddr addr, =20 default: fprintf(stderr, "%s: unknown OneNAND boot command %"PRIx64"\n", - __FUNCTION__, value); + __func__, value); } break; =20 @@ -762,7 +762,7 @@ static void onenand_write(void *opaque, hwaddr addr, =20 default: fprintf(stderr, "%s: unknown OneNAND register %x\n", - __FUNCTION__, offset); + __func__, offset); } } =20 diff --git a/hw/bt/core.c b/hw/bt/core.c index 615f0af073..c1806b71a3 100644 --- a/hw/bt/core.c +++ b/hw/bt/core.c @@ -32,23 +32,23 @@ static void bt_dummy_lmp_connection_complete(struct bt_= link_s *link) { if (link->slave->reject_reason) fprintf(stderr, "%s: stray LMP_not_accepted received, fixme\n", - __FUNCTION__); + __func__); else fprintf(stderr, "%s: stray LMP_accepted received, fixme\n", - __FUNCTION__); + __func__); exit(-1); } =20 static void bt_dummy_lmp_disconnect_master(struct bt_link_s *link) { - fprintf(stderr, "%s: stray LMP_detach received, fixme\n", __FUNCTION__= ); + fprintf(stderr, "%s: stray LMP_detach received, fixme\n", __func__); exit(-1); } =20 static void bt_dummy_lmp_acl_resp(struct bt_link_s *link, const uint8_t *data, int start, int len) { - fprintf(stderr, "%s: stray ACL response PDU, fixme\n", __FUNCTION__); + fprintf(stderr, "%s: stray ACL response PDU, fixme\n", __func__); exit(-1); } =20 @@ -113,7 +113,7 @@ void bt_device_done(struct bt_device_s *dev) while (*p && *p !=3D dev) p =3D &(*p)->next; if (*p !=3D dev) { - fprintf(stderr, "%s: bad bt device \"%s\"\n", __FUNCTION__, + fprintf(stderr, "%s: bad bt device \"%s\"\n", __func__, dev->lmp_name ?: "(null)"); exit(-1); } diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c index d13192b9b5..ac067b81f6 100644 --- a/hw/bt/hci-csr.c +++ b/hw/bt/hci-csr.c @@ -111,14 +111,14 @@ static uint8_t *csrhci_out_packet(struct csrhci_s *s,= int len) =20 if (off < FIFO_LEN) { if (off + len > FIFO_LEN && (s->out_size =3D off + len) > FIFO_LEN= * 2) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __FUNCTION__, le= n); + fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); exit(-1); } return s->outfifo + off; } =20 if (s->out_len > s->out_size) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __FUNCTION__, len); + fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); exit(-1); } =20 @@ -169,7 +169,7 @@ static void csrhci_in_packet_vendor(struct csrhci_s *s,= int ocf, =20 s->hci->bdaddr_set(s->hci, s->bd_addr.b); fprintf(stderr, "%s: bd_address loaded from firmware: " - "%02x:%02x:%02x:%02x:%02x:%02x\n", __FUNCTION_= _, + "%02x:%02x:%02x:%02x:%02x:%02x\n", __func__, s->bd_addr.b[0], s->bd_addr.b[1], s->bd_addr.b= [2], s->bd_addr.b[3], s->bd_addr.b[4], s->bd_addr.b= [5]); } @@ -181,7 +181,7 @@ static void csrhci_in_packet_vendor(struct csrhci_s *s,= int ocf, break; =20 default: - fprintf(stderr, "%s: got a bad CMD packet\n", __FUNCTION__); + fprintf(stderr, "%s: got a bad CMD packet\n", __func__); return; } =20 @@ -226,7 +226,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_= t *pkt) case H4_NEG_PKT: if (s->in_hdr !=3D sizeof(csrhci_neg_packet) || memcmp(pkt - 1, csrhci_neg_packet, s->in_hdr)) { - fprintf(stderr, "%s: got a bad NEG packet\n", __FUNCTION__); + fprintf(stderr, "%s: got a bad NEG packet\n", __func__); return; } pkt +=3D 2; @@ -241,7 +241,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_= t *pkt) =20 case H4_ALIVE_PKT: if (s->in_hdr !=3D 4 || pkt[1] !=3D 0x55 || pkt[2] !=3D 0x00) { - fprintf(stderr, "%s: got a bad ALIVE packet\n", __FUNCTION__); + fprintf(stderr, "%s: got a bad ALIVE packet\n", __func__); return; } =20 @@ -254,7 +254,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_= t *pkt) default: bad_pkt: /* TODO: error out */ - fprintf(stderr, "%s: got a bad packet\n", __FUNCTION__); + fprintf(stderr, "%s: got a bad packet\n", __func__); break; } =20 diff --git a/hw/bt/hci.c b/hw/bt/hci.c index 476ebec0ab..df05f07887 100644 --- a/hw/bt/hci.c +++ b/hw/bt/hci.c @@ -458,7 +458,7 @@ static inline uint8_t *bt_hci_event_start(struct bt_hci= _s *hci, =20 if (len > 255) { fprintf(stderr, "%s: HCI event params too long (%ib)\n", - __FUNCTION__, len); + __func__, len); exit(-1); } =20 @@ -589,7 +589,7 @@ static void bt_hci_inquiry_result(struct bt_hci_s *hci, bt_hci_inquiry_result_with_rssi(hci, slave); return; default: - fprintf(stderr, "%s: bad inquiry mode %02x\n", __FUNCTION__, + fprintf(stderr, "%s: bad inquiry mode %02x\n", __func__, hci->lm.inquiry_mode); exit(-1); } @@ -1528,7 +1528,7 @@ static void bt_submit_hci(struct HCIInfo *info, "the Inquiry command has been issued, a Comman= d " "Status event has been received for the Inquir= y " "command, and before the Inquiry Complete even= t " - "occurs", __FUNCTION__); + "occurs", __func__); bt_hci_event_complete_status(hci, HCI_COMMAND_DISALLOWED); break; } @@ -1567,7 +1567,7 @@ static void bt_submit_hci(struct HCIInfo *info, "the Inquiry command has been issued, a Comman= d " "Status event has been received for the Inquir= y " "command, and before the Inquiry Complete even= t " - "occurs", __FUNCTION__); + "occurs", __func__); bt_hci_event_complete_status(hci, HCI_COMMAND_DISALLOWED); break; } @@ -1972,7 +1972,7 @@ static void bt_submit_hci(struct HCIInfo *info, =20 short_hci: fprintf(stderr, "%s: HCI packet too short (%iB)\n", - __FUNCTION__, length); + __func__, length); bt_hci_event_status(hci, HCI_INVALID_PARAMETERS); break; } @@ -1992,7 +1992,7 @@ static inline void bt_hci_lmp_acl_data(struct bt_hci_= s *hci, uint16_t handle, =20 if (len + HCI_ACL_HDR_SIZE > sizeof(hci->acl_buf)) { fprintf(stderr, "%s: can't take ACL packets %i bytes long\n", - __FUNCTION__, len); + __func__, len); return; } memcpy(hci->acl_buf + HCI_ACL_HDR_SIZE, data, len); @@ -2030,7 +2030,7 @@ static void bt_submit_acl(struct HCIInfo *info, =20 if (length < HCI_ACL_HDR_SIZE) { fprintf(stderr, "%s: ACL packet too short (%iB)\n", - __FUNCTION__, length); + __func__, length); return; } =20 @@ -2042,7 +2042,7 @@ static void bt_submit_acl(struct HCIInfo *info, =20 if (bt_hci_handle_bad(hci, handle)) { fprintf(stderr, "%s: invalid ACL handle %03x\n", - __FUNCTION__, handle); + __func__, handle); /* TODO: signal an error */ return; } @@ -2050,7 +2050,7 @@ static void bt_submit_acl(struct HCIInfo *info, =20 if (datalen > length) { fprintf(stderr, "%s: ACL packet too short (%iB < %iB)\n", - __FUNCTION__, length, datalen); + __func__, length, datalen); return; } =20 @@ -2061,7 +2061,7 @@ static void bt_submit_acl(struct HCIInfo *info, hci->asb_handle =3D handle; else if (handle !=3D hci->asb_handle) { fprintf(stderr, "%s: Bad handle %03x in Active Slave Broadcast= \n", - __FUNCTION__, handle); + __func__, handle); /* TODO: signal an error */ return; } @@ -2074,7 +2074,7 @@ static void bt_submit_acl(struct HCIInfo *info, hci->psb_handle =3D handle; else if (handle !=3D hci->psb_handle) { fprintf(stderr, "%s: Bad handle %03x in Parked Slave Broadcast= \n", - __FUNCTION__, handle); + __func__, handle); /* TODO: signal an error */ return; } @@ -2106,13 +2106,13 @@ static void bt_submit_sco(struct HCIInfo *info, =20 if (bt_hci_handle_bad(hci, handle)) { fprintf(stderr, "%s: invalid SCO handle %03x\n", - __FUNCTION__, handle); + __func__, handle); return; } =20 if (datalen > length) { fprintf(stderr, "%s: SCO packet too short (%iB < %iB)\n", - __FUNCTION__, length, datalen); + __func__, length, datalen); return; } =20 diff --git a/hw/bt/hid.c b/hw/bt/hid.c index f6affbbb44..09d17322e4 100644 --- a/hw/bt/hid.c +++ b/hw/bt/hid.c @@ -420,7 +420,7 @@ static void bt_hid_interrupt_sdu(void *opaque, const ui= nt8_t *data, int len) return; bad: fprintf(stderr, "%s: bad transaction on Interrupt channel.\n", - __FUNCTION__); + __func__); } =20 /* "Virtual cable" plug/unplug event. */ diff --git a/hw/bt/l2cap.c b/hw/bt/l2cap.c index e342045140..3e53dd082d 100644 --- a/hw/bt/l2cap.c +++ b/hw/bt/l2cap.c @@ -468,7 +468,7 @@ static void l2cap_channel_close(struct l2cap_instance_s= *l2cap, if (likely(ch)) { if (ch->remote_cid !=3D source_cid) { fprintf(stderr, "%s: Ignoring a Disconnection Request with the= " - "invalid SCID %04x.\n", __FUNCTION__, source_c= id); + "invalid SCID %04x.\n", __func__, source_cid); return; } =20 @@ -791,7 +791,7 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, /* TODO: do the IDs really have to be in sequence? */ if (!id || (id !=3D l2cap->last_id && id !=3D l2cap->next_id)) { fprintf(stderr, "%s: out of sequence command packet ignored.\n", - __FUNCTION__); + __func__); return; } #else @@ -814,7 +814,7 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, =20 /* We never issue commands other than Command Reject currently. */ fprintf(stderr, "%s: stray Command Reject (%02x, %04x) " - "packet, ignoring.\n", __FUNCTION__, id, + "packet, ignoring.\n", __func__, id, le16_to_cpu(((l2cap_cmd_rej *) params)->reason)); break; =20 @@ -837,7 +837,7 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, =20 /* We never issue Connection Requests currently. TODO */ fprintf(stderr, "%s: unexpected Connection Response (%02x) " - "packet, ignoring.\n", __FUNCTION__, id); + "packet, ignoring.\n", __func__, id); break; =20 case L2CAP_CONF_REQ: @@ -866,7 +866,7 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, ((l2cap_conf_rsp *) params)->data, len - L2CAP_CONF_RSP_SIZE(0))) fprintf(stderr, "%s: unexpected Configure Response (%02x) " - "packet, ignoring.\n", __FUNCTION__, id); + "packet, ignoring.\n", __func__, id); break; =20 case L2CAP_DISCONN_REQ: @@ -888,7 +888,7 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, =20 /* We never issue Disconnection Requests currently. TODO */ fprintf(stderr, "%s: unexpected Disconnection Response (%02x) " - "packet, ignoring.\n", __FUNCTION__, id); + "packet, ignoring.\n", __func__, id); break; =20 case L2CAP_ECHO_REQ: @@ -898,7 +898,7 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, case L2CAP_ECHO_RSP: /* We never issue Echo Requests currently. TODO */ fprintf(stderr, "%s: unexpected Echo Response (%02x) " - "packet, ignoring.\n", __FUNCTION__, id); + "packet, ignoring.\n", __func__, id); break; =20 case L2CAP_INFO_REQ: @@ -918,7 +918,7 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, =20 /* We never issue Information Requests currently. TODO */ fprintf(stderr, "%s: unexpected Information Response (%02x) " - "packet, ignoring.\n", __FUNCTION__, id); + "packet, ignoring.\n", __func__, id); break; =20 default: @@ -1067,7 +1067,7 @@ static void l2cap_frame_in(struct l2cap_instance_s *l= 2cap, =20 if (unlikely(cid >=3D L2CAP_CID_MAX || !l2cap->cid[cid])) { fprintf(stderr, "%s: frame addressed to a non-existent L2CAP " - "channel %04x received.\n", __FUNCTION__, cid); + "channel %04x received.\n", __func__, cid); return; } =20 @@ -1129,7 +1129,7 @@ static uint8_t *l2cap_bframe_out(struct bt_l2cap_conn= _params_s *parm, int len) =20 if (len > chan->params.remote_mtu) { fprintf(stderr, "%s: B-Frame for CID %04x longer than %i octets.\n= ", - __FUNCTION__, + __func__, chan->remote_cid, chan->params.remote_mtu); exit(-1); } @@ -1354,7 +1354,7 @@ void bt_l2cap_psm_register(struct bt_l2cap_device_s *= dev, int psm, int min_mtu, =20 if (new_psm) { fprintf(stderr, "%s: PSM %04x already registered for device `%s'.\= n", - __FUNCTION__, psm, dev->device.lmp_name); + __func__, psm, dev->device.lmp_name); exit(-1); } =20 diff --git a/hw/bt/sdp.c b/hw/bt/sdp.c index 3cb60b9495..7c0d38b504 100644 --- a/hw/bt/sdp.c +++ b/hw/bt/sdp.c @@ -506,7 +506,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uin= t8_t *data, int len) int rsp_len =3D 0; =20 if (len < 5) { - fprintf(stderr, "%s: short SDP PDU (%iB).\n", __FUNCTION__, len); + fprintf(stderr, "%s: short SDP PDU (%iB).\n", __func__, len); return; } =20 @@ -518,7 +518,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uin= t8_t *data, int len) =20 if (len !=3D plen) { fprintf(stderr, "%s: wrong SDP PDU length (%iB !=3D %iB).\n", - __FUNCTION__, plen, len); + __func__, plen, len); err =3D SDP_INVALID_PDU_SIZE; goto respond; } @@ -545,7 +545,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uin= t8_t *data, int len) case SDP_SVC_SEARCH_ATTR_RSP: default: fprintf(stderr, "%s: unexpected SDP PDU ID %02x.\n", - __FUNCTION__, pdu_id); + __func__, pdu_id); err =3D SDP_INVALID_SYNTAX; break; } diff --git a/hw/display/blizzard.c b/hw/display/blizzard.c index cbf07d14d9..291abe6fca 100644 --- a/hw/display/blizzard.c +++ b/hw/display/blizzard.c @@ -474,7 +474,7 @@ static uint16_t blizzard_reg_read(void *opaque, uint8_t= reg) return s->gpio_pdown; =20 default: - fprintf(stderr, "%s: unknown register %02x\n", __FUNCTION__, reg); + fprintf(stderr, "%s: unknown register %02x\n", __func__, reg); return 0; } } @@ -502,7 +502,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) s->pll_mode =3D value & 0x77; if ((value & 3) =3D=3D 0 || (value & 3) =3D=3D 3) fprintf(stderr, "%s: wrong PLL Control bits (%i)\n", - __FUNCTION__, value & 3); + __func__, value & 3); break; =20 case 0x0e: /* Clock-Source Select */ @@ -541,7 +541,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) case 0x28: /* LCD Panel Configuration */ s->lcd_config =3D value & 0xff; if (value & (1 << 7)) - fprintf(stderr, "%s: data swap not supported!\n", __FUNCTION__= ); + fprintf(stderr, "%s: data swap not supported!\n", __func__); break; =20 case 0x2a: /* LCD Horizontal Display Width */ @@ -586,7 +586,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) s->hssi_config[1] =3D value; if (((value >> 4) & 3) =3D=3D 3) fprintf(stderr, "%s: Illegal active-data-links value\n", - __FUNCTION__); + __func__); break; case 0x42: /* High-speed Serial Interface Tx Mode */ s->hssi_config[2] =3D value & 0xbd; @@ -641,7 +641,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) s->enable =3D value & 1; s->blank =3D (value >> 1) & 1; if (value & (1 << 4)) - fprintf(stderr, "%s: Macrovision enable attempt!\n", __FUNCTIO= N__); + fprintf(stderr, "%s: Macrovision enable attempt!\n", __func__); break; =20 case 0x6a: /* Special Effects */ @@ -718,7 +718,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) s->bpp =3D blizzard_iformat_bpp[s->iformat]; if (!s->bpp) fprintf(stderr, "%s: Illegal or unsupported input format %x\n", - __FUNCTION__, s->iformat); + __func__, s->iformat); break; case 0x8e: /* Data Source Select */ s->source =3D value & 7; @@ -730,7 +730,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) !((s->ix[1] - s->ix[0]) & (s->iy[1] - s->iy[0]) & (s->ox[1] - s->ox[0]) & (s->oy[1] - s->oy[0]) & = 1)) fprintf(stderr, "%s: Illegal input/output window positions\n", - __FUNCTION__); + __func__); =20 blizzard_transfer_setup(s); break; @@ -784,7 +784,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) s->pm =3D value & 0x83; if (value & s->mode & 1) fprintf(stderr, "%s: The display must be disabled before enter= ing " - "Standby Mode\n", __FUNCTION__); + "Standby Mode\n", __func__); break; case 0xe8: /* Non-display Period Control / Status */ s->status =3D value & 0x1b; @@ -815,7 +815,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) break; =20 default: - fprintf(stderr, "%s: unknown register %02x\n", __FUNCTION__, reg); + fprintf(stderr, "%s: unknown register %02x\n", __func__, reg); break; } } diff --git a/hw/display/omap_dss.c b/hw/display/omap_dss.c index 783e9e1318..601f178fdd 100644 --- a/hw/display/omap_dss.c +++ b/hw/display/omap_dss.c @@ -526,7 +526,7 @@ static void omap_disc_write(void *opaque, hwaddr addr, s->dispc.l[0].attr =3D value & 0x7ff; if (value & (3 << 9)) fprintf(stderr, "%s: Big-endian pixel format not supported\n", - __FUNCTION__); + __func__); s->dispc.l[0].enable =3D value & 1; s->dispc.l[0].bpp =3D (value >> 1) & 0xf; s->dispc.invalidate =3D 1; @@ -617,7 +617,7 @@ static void omap_rfbi_transfer_start(struct omap_dss_s = *s) if (s->rfbi.control & (1 << 1)) { /* BYPASS */ /* TODO: in non-Bypass mode we probably need to just assert the * DRQ and wait for DMA to write the pixels. */ - fprintf(stderr, "%s: Bypass mode unimplemented\n", __FUNCTION__); + fprintf(stderr, "%s: Bypass mode unimplemented\n", __func__); return; } =20 @@ -1086,6 +1086,6 @@ struct omap_dss_s *omap_dss_init(struct omap_target_a= gent_s *ta, void omap_rfbi_attach(struct omap_dss_s *s, int cs, struct rfbi_chip_s *ch= ip) { if (cs < 0 || cs > 1) - hw_error("%s: wrong CS %i\n", __FUNCTION__, cs); + hw_error("%s: wrong CS %i\n", __func__, cs); s->rfbi.chip[cs] =3D chip; } diff --git a/hw/display/pxa2xx_lcd.c b/hw/display/pxa2xx_lcd.c index 845521c5b2..b83f80753a 100644 --- a/hw/display/pxa2xx_lcd.c +++ b/hw/display/pxa2xx_lcd.c @@ -405,7 +405,7 @@ static uint64_t pxa2xx_lcdc_read(void *opaque, hwaddr o= ffset, =20 default: fail: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } =20 return 0; @@ -424,7 +424,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offs= et, s->status[0] |=3D LCSR0_QD; =20 if (!(s->control[0] & LCCR0_LCDT) && (value & LCCR0_LCDT)) - printf("%s: internal frame buffer unsupported\n", __FUNCTION__= ); + printf("%s: internal frame buffer unsupported\n", __func__); =20 if ((s->control[3] & LCCR3_API) && (value & LCCR0_ENB) && !(value & LCCR0_LCDT)) @@ -460,7 +460,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offs= et, =20 case OVL1C1: if (!(s->ovl1c[0] & OVLC1_EN) && (value & OVLC1_EN)) - printf("%s: Overlay 1 not supported\n", __FUNCTION__); + printf("%s: Overlay 1 not supported\n", __func__); =20 s->ovl1c[0] =3D value & 0x80ffffff; s->dma_ch[1].up =3D (value & OVLC1_EN) || (s->control[0] & LCCR0_S= DS); @@ -472,7 +472,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offs= et, =20 case OVL2C1: if (!(s->ovl2c[0] & OVLC1_EN) && (value & OVLC1_EN)) - printf("%s: Overlay 2 not supported\n", __FUNCTION__); + printf("%s: Overlay 2 not supported\n", __func__); =20 s->ovl2c[0] =3D value & 0x80ffffff; s->dma_ch[2].up =3D !!(value & OVLC1_EN); @@ -486,7 +486,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offs= et, =20 case CCR: if (!(s->ccr & CCR_CEN) && (value & CCR_CEN)) - printf("%s: Hardware cursor unimplemented\n", __FUNCTION__); + printf("%s: Hardware cursor unimplemented\n", __func__); =20 s->ccr =3D value & 0x81ffffe7; s->dma_ch[5].up =3D !!(value & CCR_CEN); @@ -560,7 +560,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offs= et, =20 default: fail: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } } =20 @@ -1050,7 +1050,7 @@ PXA2xxLCDState *pxa2xx_lcdc_init(MemoryRegion *sysmem, s->dest_width =3D 4; break; default: - fprintf(stderr, "%s: Bad color depth\n", __FUNCTION__); + fprintf(stderr, "%s: Bad color depth\n", __func__); exit(1); } =20 diff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c index 90e0865618..e7ac4f8789 100644 --- a/hw/display/qxl-render.c +++ b/hw/display/qxl-render.c @@ -78,7 +78,7 @@ void qxl_render_resize(PCIQXLDevice *qxl) qxl->guest_primary.bits_pp =3D 32; break; default: - fprintf(stderr, "%s: unhandled format: %x\n", __FUNCTION__, + fprintf(stderr, "%s: unhandled format: %x\n", __func__, qxl->guest_primary.surface.format); qxl->guest_primary.bytes_pp =3D 4; qxl->guest_primary.bits_pp =3D 32; @@ -248,7 +248,7 @@ static QEMUCursor *qxl_cursor(PCIQXLDevice *qxl, QXLCur= sor *cursor, break; default: fprintf(stderr, "%s: not implemented: type %d\n", - __FUNCTION__, cursor->header.type); + __func__, cursor->header.type); goto fail; } return c; @@ -275,7 +275,7 @@ int qxl_render_cursor(PCIQXLDevice *qxl, QXLCommandExt = *ext) } =20 if (qxl->debug > 1 && cmd->type !=3D QXL_CURSOR_MOVE) { - fprintf(stderr, "%s", __FUNCTION__); + fprintf(stderr, "%s", __func__); qxl_log_cmd_cursor(qxl, cmd, ext->group_id); fprintf(stderr, "\n"); } diff --git a/hw/display/qxl.h b/hw/display/qxl.h index f6556adb73..7d1b60014a 100644 --- a/hw/display/qxl.h +++ b/hw/display/qxl.h @@ -133,7 +133,7 @@ typedef struct PCIQXLDevice { #define PCI_QXL(obj) OBJECT_CHECK(PCIQXLDevice, (obj), TYPE_PCI_QXL) =20 #define PANIC_ON(x) if ((x)) { \ - printf("%s: PANIC %s failed\n", __FUNCTION__, #x); \ + printf("%s: PANIC %s failed\n", __func__, #x); \ abort(); \ } =20 diff --git a/hw/display/tc6393xb.c b/hw/display/tc6393xb.c index 74d10af3d4..79f161740a 100644 --- a/hw/display/tc6393xb.c +++ b/hw/display/tc6393xb.c @@ -148,7 +148,7 @@ static void tc6393xb_gpio_set(void *opaque, int line, i= nt level) // TC6393xbState *s =3D opaque; =20 if (line > TC6393XB_GPIOS) { - printf("%s: No GPIO pin %i\n", __FUNCTION__, line); + printf("%s: No GPIO pin %i\n", __func__, line); return; } =20 diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c index df8b78f6f4..6dc98d0497 100644 --- a/hw/display/xenfb.c +++ b/hw/display/xenfb.c @@ -643,7 +643,7 @@ static void xenfb_guest_copy(struct XenFB *xenfb, int x= , int y, int w, int h) } if (oops) /* should not happen */ xen_pv_printf(&xenfb->c.xendev, 0, "%s: oops: convert %d -> %d bpp= ?\n", - __FUNCTION__, xenfb->depth, bpp); + __func__, xenfb->depth, bpp); =20 dpy_gfx_update(xenfb->con, x, y, w, h); } diff --git a/hw/dma/omap_dma.c b/hw/dma/omap_dma.c index 45dfe7aadd..abd18c67ea 100644 --- a/hw/dma/omap_dma.c +++ b/hw/dma/omap_dma.c @@ -161,7 +161,7 @@ static void omap_dma_channel_load(struct omap_dma_chann= el_s *ch) a->pck_element =3D 0; =20 if (unlikely(!ch->elements || !ch->frames)) { - printf("%s: bad DMA request\n", __FUNCTION__); + printf("%s: bad DMA request\n", __func__); return; } =20 @@ -519,7 +519,7 @@ static void omap_dma_transfer_setup(struct soc_dma_ch_s= *dma) continue; #endif printf("%s: Bus time-out in DMA%i operation\n", - __FUNCTION__, dma->num); + __func__, dma->num); } =20 min_elems =3D INT_MAX; @@ -879,14 +879,14 @@ static int omap_dma_ch_reg_write(struct omap_dma_s *s, ch->pack[0] =3D (value & 0x0040) >> 6; ch->port[0] =3D (enum omap_dma_port) ((value & 0x003c) >> 2); if (ch->port[0] >=3D __omap_dma_port_last) - printf("%s: invalid DMA port %i\n", __FUNCTION__, + printf("%s: invalid DMA port %i\n", __func__, ch->port[0]); if (ch->port[1] >=3D __omap_dma_port_last) - printf("%s: invalid DMA port %i\n", __FUNCTION__, + printf("%s: invalid DMA port %i\n", __func__, ch->port[1]); ch->data_type =3D 1 << (value & 3); if ((value & 3) =3D=3D 3) { - printf("%s: bad data_type for DMA channel\n", __FUNCTION__); + printf("%s: bad data_type for DMA channel\n", __func__); ch->data_type >>=3D 1; } break; @@ -1440,7 +1440,7 @@ static int omap_dma_sys_read(struct omap_dma_s *s, in= t offset, case 0x482: /* DMA_PCh1_SR */ case 0x4c0: /* DMA_PChD_SR_0 */ printf("%s: Physical Channel Status Registers not implemented.\n", - __FUNCTION__); + __func__); *ret =3D 0xff; break; =20 @@ -1898,13 +1898,13 @@ static void omap_dma4_write(void *opaque, hwaddr ad= dr, omap_dma_reset(s->dma); s->ocp =3D value & 0x3321; if (((s->ocp >> 12) & 3) =3D=3D 3) /* MIDLEMODE */ - fprintf(stderr, "%s: invalid DMA power mode\n", __FUNCTION__); + fprintf(stderr, "%s: invalid DMA power mode\n", __func__); return; =20 case 0x78: /* DMA4_GCR */ s->gcr =3D value & 0x00ff00ff; if ((value & 0xff) =3D=3D 0x00) /* MAX_CHANNEL_FIFO_DEPTH */ - fprintf(stderr, "%s: wrong FIFO depth in GCR\n", __FUNCTION__); + fprintf(stderr, "%s: wrong FIFO depth in GCR\n", __func__); return; =20 case 0x80 ... 0xfff: @@ -1935,7 +1935,7 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->src_sync =3D (value >> 24) & 1; /* XXX For CamDMA must be 1 */ if (ch->buf_disable && !ch->src_sync) fprintf(stderr, "%s: Buffering disable is not allowed in " - "destination synchronised mode\n", __FUNCTION_= _); + "destination synchronised mode\n", __func__); ch->prefetch =3D (value >> 23) & 1; ch->bs =3D (value >> 18) & 1; ch->transparent_copy =3D (value >> 17) & 1; @@ -1947,7 +1947,7 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->fs =3D (value & 0x0020) >> 5; if (ch->fs && ch->bs && ch->mode[0] && ch->mode[1]) fprintf(stderr, "%s: For a packet transfer at least one port " - "must be constant-addressed\n", __FUNCTION__); + "must be constant-addressed\n", __func__); ch->sync =3D (value & 0x001f) | ((value >> 14) & 0x0060); /* XXX must be 0x01 for CamDMA */ =20 @@ -1978,7 +1978,7 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->endian_lock[1] =3D(value >> 18) & 1; if (ch->endian[0] !=3D ch->endian[1]) fprintf(stderr, "%s: DMA endianness conversion enable attempt\= n", - __FUNCTION__); + __func__); ch->write_mode =3D (value >> 16) & 3; ch->burst[1] =3D (value & 0xc000) >> 14; ch->pack[1] =3D (value & 0x2000) >> 13; @@ -1988,10 +1988,10 @@ static void omap_dma4_write(void *opaque, hwaddr ad= dr, ch->translate[0] =3D (value & 0x003c) >> 2; if (ch->translate[0] | ch->translate[1]) fprintf(stderr, "%s: bad MReqAddressTranslate sideband signal\= n", - __FUNCTION__); + __func__); ch->data_type =3D 1 << (value & 3); if ((value & 3) =3D=3D 3) { - printf("%s: bad data_type for DMA channel\n", __FUNCTION__); + printf("%s: bad data_type for DMA channel\n", __func__); ch->data_type >>=3D 1; } break; diff --git a/hw/dma/pxa2xx_dma.c b/hw/dma/pxa2xx_dma.c index 634a4328f0..f4eb26cf17 100644 --- a/hw/dma/pxa2xx_dma.c +++ b/hw/dma/pxa2xx_dma.c @@ -169,7 +169,7 @@ static inline void pxa2xx_dma_descriptor_fetch( s->chan[ch].dest &=3D ~3; =20 if (s->chan[ch].cmd & (DCMD_CMPEN | DCMD_FLYBYS | DCMD_FLYBYT)) - printf("%s: unsupported mode in channel %i\n", __FUNCTION__, ch); + printf("%s: unsupported mode in channel %i\n", __func__, ch); =20 if (s->chan[ch].cmd & DCMD_STARTIRQEN) s->chan[ch].state |=3D DCSR_STARTINTR; @@ -264,7 +264,7 @@ static uint64_t pxa2xx_dma_read(void *opaque, hwaddr of= fset, unsigned int channel; =20 if (size !=3D 4) { - hw_error("%s: Bad access width\n", __FUNCTION__); + hw_error("%s: Bad access width\n", __func__); return 5; } =20 @@ -312,7 +312,7 @@ static uint64_t pxa2xx_dma_read(void *opaque, hwaddr of= fset, } } =20 - hw_error("%s: Bad offset 0x" TARGET_FMT_plx "\n", __FUNCTION__, offset= ); + hw_error("%s: Bad offset 0x" TARGET_FMT_plx "\n", __func__, offset); return 7; } =20 @@ -323,7 +323,7 @@ static void pxa2xx_dma_write(void *opaque, hwaddr offse= t, unsigned int channel; =20 if (size !=3D 4) { - hw_error("%s: Bad access width\n", __FUNCTION__); + hw_error("%s: Bad access width\n", __func__); return; } =20 @@ -337,7 +337,7 @@ static void pxa2xx_dma_write(void *opaque, hwaddr offse= t, if (value & DRCMR_MAPVLD) if ((value & DRCMR_CHLNUM) > s->channels) hw_error("%s: Bad DMA channel %i\n", - __FUNCTION__, (unsigned)value & DRCMR_CHLNUM); + __func__, (unsigned)value & DRCMR_CHLNUM); =20 s->req[channel] =3D value; break; @@ -416,7 +416,7 @@ static void pxa2xx_dma_write(void *opaque, hwaddr offse= t, break; } fail: - hw_error("%s: Bad offset " TARGET_FMT_plx "\n", __FUNCTION__, offs= et); + hw_error("%s: Bad offset " TARGET_FMT_plx "\n", __func__, offset); } } =20 @@ -431,7 +431,7 @@ static void pxa2xx_dma_request(void *opaque, int req_nu= m, int on) PXA2xxDMAState *s =3D opaque; int ch; if (req_num < 0 || req_num >=3D PXA2XX_DMA_NUM_REQUESTS) - hw_error("%s: Bad DMA request %i\n", __FUNCTION__, req_num); + hw_error("%s: Bad DMA request %i\n", __func__, req_num); =20 if (!(s->req[req_num] & DRCMR_MAPVLD)) return; diff --git a/hw/gpio/max7310.c b/hw/gpio/max7310.c index f82e3e6555..4c203ef5c6 100644 --- a/hw/gpio/max7310.c +++ b/hw/gpio/max7310.c @@ -67,7 +67,7 @@ static int max7310_rx(I2CSlave *i2c) =20 default: #ifdef VERBOSE - printf("%s: unknown register %02x\n", __FUNCTION__, s->command); + printf("%s: unknown register %02x\n", __func__, s->command); #endif break; } @@ -82,7 +82,7 @@ static int max7310_tx(I2CSlave *i2c, uint8_t data) =20 if (s->len ++ > 1) { #ifdef VERBOSE - printf("%s: message too long (%i bytes)\n", __FUNCTION__, s->len); + printf("%s: message too long (%i bytes)\n", __func__, s->len); #endif return 1; } @@ -121,7 +121,7 @@ static int max7310_tx(I2CSlave *i2c, uint8_t data) break; default: #ifdef VERBOSE - printf("%s: unknown register %02x\n", __FUNCTION__, s->command); + printf("%s: unknown register %02x\n", __func__, s->command); #endif return 1; } @@ -141,7 +141,7 @@ static int max7310_event(I2CSlave *i2c, enum i2c_event = event) case I2C_FINISH: #ifdef VERBOSE if (s->len =3D=3D 1) - printf("%s: message too short (%i bytes)\n", __FUNCTION__, s->= len); + printf("%s: message too short (%i bytes)\n", __func__, s->len); #endif break; default: diff --git a/hw/gpio/omap_gpio.c b/hw/gpio/omap_gpio.c index 17891e2d0f..08472193b5 100644 --- a/hw/gpio/omap_gpio.c +++ b/hw/gpio/omap_gpio.c @@ -399,7 +399,7 @@ static void omap2_gpio_module_write(void *opaque, hwadd= r addr, =20 case 0x10: /* GPIO_SYSCONFIG */ if (((value >> 3) & 3) =3D=3D 3) - fprintf(stderr, "%s: bad IDLEMODE value\n", __FUNCTION__); + fprintf(stderr, "%s: bad IDLEMODE value\n", __func__); if (value & 2) omap2_gpio_module_reset(s); s->config[0] =3D value & 0x1d; diff --git a/hw/i2c/omap_i2c.c b/hw/i2c/omap_i2c.c index 12264ee0f5..26e3e5ebf6 100644 --- a/hw/i2c/omap_i2c.c +++ b/hw/i2c/omap_i2c.c @@ -341,12 +341,12 @@ static void omap_i2c_write(void *opaque, hwaddr addr, } if ((value & (1 << 15)) && !(value & (1 << 10))) { /* MST */ fprintf(stderr, "%s: I^2C slave mode not supported\n", - __FUNCTION__); + __func__); break; } if ((value & (1 << 15)) && value & (1 << 8)) { /* XA */ fprintf(stderr, "%s: 10-bit addressing mode not supported\n", - __FUNCTION__); + __func__); break; } if ((value & (1 << 15)) && value & (1 << 0)) { /* STT */ @@ -393,7 +393,7 @@ static void omap_i2c_write(void *opaque, hwaddr addr, omap_i2c_interrupts_update(s); } if (value & (1 << 15)) /* ST_EN */ - fprintf(stderr, "%s: System Test not supported\n", __FUNCTION_= _); + fprintf(stderr, "%s: System Test not supported\n", __func__); break; =20 default: diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 32d1296a64..c25e293d88 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1053,7 +1053,7 @@ static void process_ncq_command(AHCIState *s, int por= t, uint8_t *cmd_fis, g_assert(is_ncq(ncq_fis->command)); if (ncq_tfs->used) { /* error - already in use */ - fprintf(stderr, "%s: tag %d already used\n", __FUNCTION__, tag); + fprintf(stderr, "%s: tag %d already used\n", __func__, tag); return; } =20 diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c index 17917c0b30..3090254783 100644 --- a/hw/ide/microdrive.c +++ b/hw/ide/microdrive.c @@ -156,7 +156,7 @@ static uint8_t md_attr_read(PCMCIACardState *card, uint= 32_t at) return 0x00; #ifdef VERBOSE default: - printf("%s: Bad attribute space register %02x\n", __FUNCTION__, at= ); + printf("%s: Bad attribute space register %02x\n", __func__, at); #endif } =20 @@ -193,7 +193,7 @@ static void md_attr_write(PCMCIACardState *card, uint32= _t at, uint8_t value) case 0x06: /* Socket and Copy Register */ break; default: - printf("%s: Bad attribute space register %02x\n", __FUNCTION__, at= ); + printf("%s: Bad attribute space register %02x\n", __func__, at); } } =20 diff --git a/hw/input/lm832x.c b/hw/input/lm832x.c index 2340523da0..d39953126b 100644 --- a/hw/input/lm832x.c +++ b/hw/input/lm832x.c @@ -239,7 +239,7 @@ static uint8_t lm_kbd_read(LM823KbdState *s, int reg, i= nt byte) =20 default: lm_kbd_error(s, ERR_CMDUNK); - fprintf(stderr, "%s: unknown command %02x\n", __FUNCTION__, reg); + fprintf(stderr, "%s: unknown command %02x\n", __func__, reg); return 0x00; } =20 @@ -331,7 +331,7 @@ static void lm_kbd_write(LM823KbdState *s, int reg, int= byte, uint8_t value) if ((value & 3) && (value & 3) !=3D 3) { lm_kbd_error(s, ERR_BADPAR); fprintf(stderr, "%s: invalid clock setting in RCPWM\n", - __FUNCTION__); + __func__); } /* TODO: Validate that the command is only issued once */ break; @@ -378,7 +378,7 @@ static void lm_kbd_write(LM823KbdState *s, int reg, int= byte, uint8_t value) break; default: lm_kbd_error(s, ERR_CMDUNK); - fprintf(stderr, "%s: unknown command %02x\n", __FUNCTION__, reg); + fprintf(stderr, "%s: unknown command %02x\n", __func__, reg); break; } } diff --git a/hw/input/pxa2xx_keypad.c b/hw/input/pxa2xx_keypad.c index 2b70bbb95c..93db9ed25b 100644 --- a/hw/input/pxa2xx_keypad.c +++ b/hw/input/pxa2xx_keypad.c @@ -231,7 +231,7 @@ static uint64_t pxa2xx_keypad_read(void *opaque, hwaddr= offset, return s->kpkdi; break; default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } =20 return 0; @@ -278,7 +278,7 @@ static void pxa2xx_keypad_write(void *opaque, hwaddr of= fset, break; =20 default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } } =20 @@ -326,7 +326,7 @@ void pxa27x_register_keypad(PXA2xxKeyPadState *kp, const struct keymap *map, int size) { if(!map || size < 0x80) { - fprintf(stderr, "%s - No PXA keypad map defined\n", __FUNCTION__); + fprintf(stderr, "%s - No PXA keypad map defined\n", __func__); exit(-1); } =20 diff --git a/hw/input/tsc2005.c b/hw/input/tsc2005.c index eb5320af40..7990954b6c 100644 --- a/hw/input/tsc2005.c +++ b/hw/input/tsc2005.c @@ -201,7 +201,7 @@ static void tsc2005_write(TSC2005State *s, int reg, uin= t16_t data) if (s->enabled !=3D !(data & 0x4000)) { s->enabled =3D !(data & 0x4000); fprintf(stderr, "%s: touchscreen sense %sabled\n", - __FUNCTION__, s->enabled ? "en" : "dis"); + __func__, s->enabled ? "en" : "dis"); if (s->busy && !s->enabled) timer_del(s->timer); s->busy =3D s->busy && s->enabled; @@ -210,7 +210,7 @@ static void tsc2005_write(TSC2005State *s, int reg, uin= t16_t data) s->timing[0] =3D data & 0x1fff; if ((s->timing[0] >> 11) =3D=3D 3) fprintf(stderr, "%s: illegal conversion clock setting\n", - __FUNCTION__); + __func__); break; case 0xd: /* CFR1 */ s->timing[1] =3D data & 0xf07; @@ -222,7 +222,7 @@ static void tsc2005_write(TSC2005State *s, int reg, uin= t16_t data) =20 default: fprintf(stderr, "%s: write into read-only register %x\n", - __FUNCTION__, reg); + __func__, reg); } } =20 @@ -338,7 +338,7 @@ static uint8_t tsc2005_txrx_word(void *opaque, uint8_t = value) if (s->enabled !=3D !(value & 1)) { s->enabled =3D !(value & 1); fprintf(stderr, "%s: touchscreen sense %sabled\n", - __FUNCTION__, s->enabled ? "en" : "dis= "); + __func__, s->enabled ? "en" : "dis"); if (s->busy && !s->enabled) timer_del(s->timer); s->busy =3D s->busy && s->enabled; diff --git a/hw/input/tsc210x.c b/hw/input/tsc210x.c index b068343771..d4b19c1825 100644 --- a/hw/input/tsc210x.c +++ b/hw/input/tsc210x.c @@ -287,7 +287,7 @@ static void tsc2102_audio_rate_update(TSC210xState *s) rate->fsref =3D=3D ((s->audio_ctrl3 >> 13) & 1))/*= REFFS */ break; if (!rate->rate) { - printf("%s: unknown sampling rate configured\n", __FUNCTION__); + printf("%s: unknown sampling rate configured\n", __func__); return; } =20 @@ -913,7 +913,7 @@ uint32_t tsc210x_txrx(void *opaque, uint32_t value, int= len) uint32_t ret =3D 0; =20 if (len !=3D 16) - hw_error("%s: FIXME: bad SPI word width %i\n", __FUNCTION__, len); + hw_error("%s: FIXME: bad SPI word width %i\n", __func__, len); =20 /* TODO: sequential reads etc - how do we make sure the host doesn't * unintentionally read out a conversion result from a register while diff --git a/hw/intc/omap_intc.c b/hw/intc/omap_intc.c index ccdda89dab..6844c1aa83 100644 --- a/hw/intc/omap_intc.c +++ b/hw/intc/omap_intc.c @@ -540,7 +540,7 @@ static void omap2_inth_write(void *opaque, hwaddr addr, * for every register, see Chapter 3 and 4 for privileged mode. */ if (value & 1) fprintf(stderr, "%s: protection mode enable attempt\n", - __FUNCTION__); + __func__); return; =20 case 0x50: /* INTC_IDLE */ diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c index 50dc83df77..72bf674403 100644 --- a/hw/isa/vt82c686.c +++ b/hw/isa/vt82c686.c @@ -30,7 +30,7 @@ //#define DEBUG_VT82C686B =20 #ifdef DEBUG_VT82C686B -#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __FUNCTION__, ##__VA= _ARGS__) +#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __func__, ##__VA_ARG= S__) #else #define DPRINTF(fmt, ...) #endif diff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c index e8b2eef688..41a7690560 100644 --- a/hw/mips/gt64xxx_pci.c +++ b/hw/mips/gt64xxx_pci.c @@ -33,7 +33,7 @@ //#define DEBUG =20 #ifdef DEBUG -#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __FUNCTION__, ##__VA= _ARGS__) +#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __func__, ##__VA_ARG= S__) #else #define DPRINTF(fmt, ...) #endif diff --git a/hw/misc/cbus.c b/hw/misc/cbus.c index 677274ce3e..25e337ea77 100644 --- a/hw/misc/cbus.c +++ b/hw/misc/cbus.c @@ -62,7 +62,7 @@ static void cbus_io(CBusPriv *s) s->slave[s->addr]->io(s->slave[s->addr]->opaque, s->rw, s->reg, &s->val); else - hw_error("%s: bad slave address %i\n", __FUNCTION__, s->addr); + hw_error("%s: bad slave address %i\n", __func__, s->addr); } =20 static void cbus_cycle(CBusPriv *s) @@ -299,7 +299,7 @@ static inline uint16_t retu_read(CBusRetu *s, int reg) return 0x0000; =20 default: - hw_error("%s: bad register %02x\n", __FUNCTION__, reg); + hw_error("%s: bad register %02x\n", __func__, reg); } } =20 @@ -372,7 +372,7 @@ static inline void retu_write(CBusRetu *s, int reg, uin= t16_t val) break; =20 default: - hw_error("%s: bad register %02x\n", __FUNCTION__, reg); + hw_error("%s: bad register %02x\n", __func__, reg); } } =20 @@ -538,7 +538,7 @@ static inline uint16_t tahvo_read(CBusTahvo *s, int reg) return 0x0000; =20 default: - hw_error("%s: bad register %02x\n", __FUNCTION__, reg); + hw_error("%s: bad register %02x\n", __func__, reg); } } =20 @@ -567,7 +567,7 @@ static inline void tahvo_write(CBusTahvo *s, int reg, u= int16_t val) if (s->backlight !=3D (val & 0x7f)) { s->backlight =3D val & 0x7f; printf("%s: LCD backlight now at %i / 127\n", - __FUNCTION__, s->backlight); + __func__, s->backlight); } break; =20 @@ -588,7 +588,7 @@ static inline void tahvo_write(CBusTahvo *s, int reg, u= int16_t val) break; =20 default: - hw_error("%s: bad register %02x\n", __FUNCTION__, reg); + hw_error("%s: bad register %02x\n", __func__, reg); } } =20 diff --git a/hw/misc/omap_clk.c b/hw/misc/omap_clk.c index 19151d07d6..9ea14186d4 100644 --- a/hw/misc/omap_clk.c +++ b/hw/misc/omap_clk.c @@ -1109,7 +1109,7 @@ struct clk *omap_findclk(struct omap_mpu_state_s *mpu= , const char *name) for (i =3D mpu->clks; i->name; i ++) if (!strcmp(i->name, name) || (i->alias && !strcmp(i->alias, name)= )) return i; - hw_error("%s: %s not found\n", __FUNCTION__, name); + hw_error("%s: %s not found\n", __func__, name); } =20 void omap_clk_get(struct clk *clk) @@ -1120,7 +1120,7 @@ void omap_clk_get(struct clk *clk) void omap_clk_put(struct clk *clk) { if (!(clk->usecount --)) - hw_error("%s: %s is not in use\n", __FUNCTION__, clk->name); + hw_error("%s: %s is not in use\n", __func__, clk->name); } =20 static void omap_clk_update(struct clk *clk) diff --git a/hw/misc/omap_gpmc.c b/hw/misc/omap_gpmc.c index 67d8e2f023..84f9e4c612 100644 --- a/hw/misc/omap_gpmc.c +++ b/hw/misc/omap_gpmc.c @@ -643,7 +643,7 @@ static void omap_gpmc_write(void *opaque, hwaddr addr, case 0x010: /* GPMC_SYSCONFIG */ if ((value >> 3) =3D=3D 0x3) fprintf(stderr, "%s: bad SDRAM idle mode %"PRIi64"\n", - __FUNCTION__, value >> 3); + __func__, value >> 3); if (value & 2) omap_gpmc_reset(s); s->sysconfig =3D value & 0x19; @@ -806,7 +806,7 @@ static void omap_gpmc_write(void *opaque, hwaddr addr, break; case 0x230: /* GPMC_TESTMODE_CTRL */ if (value & 7) - fprintf(stderr, "%s: test mode enable attempt\n", __FUNCTION__= ); + fprintf(stderr, "%s: test mode enable attempt\n", __func__); break; =20 default: @@ -864,7 +864,7 @@ void omap_gpmc_attach(struct omap_gpmc_s *s, int cs, Me= moryRegion *iomem) assert(iomem); =20 if (cs < 0 || cs >=3D 8) { - fprintf(stderr, "%s: bad chip-select %i\n", __FUNCTION__, cs); + fprintf(stderr, "%s: bad chip-select %i\n", __func__, cs); exit(-1); } f =3D &s->cs_file[cs]; diff --git a/hw/misc/omap_l4.c b/hw/misc/omap_l4.c index 88c533a0fe..96fc057b4e 100644 --- a/hw/misc/omap_l4.c +++ b/hw/misc/omap_l4.c @@ -126,7 +126,7 @@ struct omap_target_agent_s *omap_l4ta_get(struct omap_l= 4_s *bus, break; } if (!ta) { - fprintf(stderr, "%s: bad target agent (%i)\n", __FUNCTION__, cs); + fprintf(stderr, "%s: bad target agent (%i)\n", __func__, cs); exit(-1); } =20 @@ -151,7 +151,7 @@ hwaddr omap_l4_attach(struct omap_target_agent_s *ta, hwaddr base; =20 if (region < 0 || region >=3D ta->regions) { - fprintf(stderr, "%s: bad io region (%i)\n", __FUNCTION__, region); + fprintf(stderr, "%s: bad io region (%i)\n", __func__, region); exit(-1); } =20 diff --git a/hw/misc/omap_sdrc.c b/hw/misc/omap_sdrc.c index dff37ecaf9..7b38c5568c 100644 --- a/hw/misc/omap_sdrc.c +++ b/hw/misc/omap_sdrc.c @@ -109,7 +109,7 @@ static void omap_sdrc_write(void *opaque, hwaddr addr, case 0x10: /* SDRC_SYSCONFIG */ if ((value >> 3) !=3D 0x2) fprintf(stderr, "%s: bad SDRAM idle mode %i\n", - __FUNCTION__, (unsigned)value >> 3); + __func__, (unsigned)value >> 3); if (value & 2) omap_sdrc_reset(s); s->config =3D value & 0x18; diff --git a/hw/misc/omap_tap.c b/hw/misc/omap_tap.c index e6ea8ee235..3f595e8df7 100644 --- a/hw/misc/omap_tap.c +++ b/hw/misc/omap_tap.c @@ -44,7 +44,7 @@ static uint64_t omap_tap_read(void *opaque, hwaddr addr, case omap3430: return 0x1b7ae02f; /* ES 2 */ default: - hw_error("%s: Bad mpu model\n", __FUNCTION__); + hw_error("%s: Bad mpu model\n", __func__); } =20 case 0x208: /* PRODUCTION_ID_reg for OMAP2 */ @@ -61,7 +61,7 @@ static uint64_t omap_tap_read(void *opaque, hwaddr addr, case omap3430: return 0x000000f0; default: - hw_error("%s: Bad mpu model\n", __FUNCTION__); + hw_error("%s: Bad mpu model\n", __func__); } =20 case 0x20c: @@ -75,7 +75,7 @@ static uint64_t omap_tap_read(void *opaque, hwaddr addr, case omap3430: return 0xcafeb7ae; /* ES 2 */ default: - hw_error("%s: Bad mpu model\n", __FUNCTION__); + hw_error("%s: Bad mpu model\n", __func__); } =20 case 0x218: /* DIE_ID_reg */ diff --git a/hw/misc/tmp105.c b/hw/misc/tmp105.c index 04e83787d4..9e22d64e36 100644 --- a/hw/misc/tmp105.c +++ b/hw/misc/tmp105.c @@ -131,7 +131,7 @@ static void tmp105_write(TMP105State *s) =20 case TMP105_REG_CONFIG: if (s->buf[0] & ~s->config & (1 << 0)) /* SD */ - printf("%s: TMP105 shutdown\n", __FUNCTION__); + printf("%s: TMP105 shutdown\n", __func__); s->config =3D s->buf[0]; s->faults =3D tmp105_faultq[(s->config >> 3) & 3]; /* F */ tmp105_alarm_update(s); diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c index 89133a9dd3..1767d2af61 100644 --- a/hw/pci-host/bonito.c +++ b/hw/pci-host/bonito.c @@ -50,7 +50,7 @@ //#define DEBUG_BONITO =20 #ifdef DEBUG_BONITO -#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __FUNCTION__, ##__VA= _ARGS__) +#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __func__, ##__VA_ARG= S__) #else #define DPRINTF(fmt, ...) #endif diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c index 3deccf02c9..0d4b88c609 100644 --- a/hw/sd/pxa2xx_mmci.c +++ b/hw/sd/pxa2xx_mmci.c @@ -330,7 +330,7 @@ static uint64_t pxa2xx_mmci_read(void *opaque, hwaddr o= ffset, unsigned size) case MMC_BLKS_REM: return s->numblk; default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } =20 return 0; @@ -369,7 +369,7 @@ static void pxa2xx_mmci_write(void *opaque, case MMC_SPI: s->spi =3D value & 0xf; if (value & SPI_SPI_MODE) - printf("%s: attempted to use card in SPI mode\n", __FUNCTION__= ); + printf("%s: attempted to use card in SPI mode\n", __func__); break; =20 case MMC_CMDAT: @@ -442,7 +442,7 @@ static void pxa2xx_mmci_write(void *opaque, break; =20 default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } } =20 diff --git a/hw/ssi/omap_spi.c b/hw/ssi/omap_spi.c index 22034656b8..34163e5646 100644 --- a/hw/ssi/omap_spi.c +++ b/hw/ssi/omap_spi.c @@ -295,10 +295,10 @@ static void omap_mcspi_write(void *opaque, hwaddr add= r, if ((value ^ s->ch[ch].config) & (3 << 14)) /* DMAR | DMAW */ omap_mcspi_dmarequest_update(s->ch + ch); if (((value >> 12) & 3) =3D=3D 3) /* TRM */ - fprintf(stderr, "%s: invalid TRM value (3)\n", __FUNCTION__); + fprintf(stderr, "%s: invalid TRM value (3)\n", __func__); if (((value >> 7) & 0x1f) < 3) /* WL */ fprintf(stderr, "%s: invalid WL value (%" PRIx64 ")\n", - __FUNCTION__, (value >> 7) & 0x1f); + __func__, (value >> 7) & 0x1f); s->ch[ch].config =3D value & 0x7fffff; break; =20 @@ -367,7 +367,7 @@ void omap_mcspi_attach(struct omap_mcspi_s *s, int chipselect) { if (chipselect < 0 || chipselect >=3D s->chnum) - hw_error("%s: Bad chipselect %i\n", __FUNCTION__, chipselect); + hw_error("%s: Bad chipselect %i\n", __func__, chipselect); =20 s->ch[chipselect].txrx =3D txrx; s->ch[chipselect].opaque =3D opaque; diff --git a/hw/timer/omap_gptimer.c b/hw/timer/omap_gptimer.c index 6d7c8a396f..ae2dc99832 100644 --- a/hw/timer/omap_gptimer.c +++ b/hw/timer/omap_gptimer.c @@ -357,7 +357,7 @@ static void omap_gp_timer_write(void *opaque, hwaddr ad= dr, s->config =3D value & 0x33d; if (((value >> 3) & 3) =3D=3D 3) /* IDLEMODE */ fprintf(stderr, "%s: illegal IDLEMODE value in TIOCP_CFG\n", - __FUNCTION__); + __func__); if (value & 2) /* SOFTRESET */ omap_gp_timer_reset(s); break; @@ -395,10 +395,10 @@ static void omap_gp_timer_write(void *opaque, hwaddr = addr, s->st =3D (value >> 0) & 1; if (s->inout && s->trigger !=3D gpt_trigger_none) fprintf(stderr, "%s: GP timer pin must be an output " - "for this trigger mode\n", __FUNCTION__); + "for this trigger mode\n", __func__); if (!s->inout && s->capture !=3D gpt_capture_none) fprintf(stderr, "%s: GP timer pin must be an input " - "for this capture mode\n", __FUNCTION__); + "for this capture mode\n", __func__); if (s->trigger =3D=3D gpt_trigger_none) omap_gp_timer_out(s, s->scpwm); /* TODO: make sure this doesn't overflow 32-bits */ diff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c index c0aa8ae3de..87e334af24 100644 --- a/hw/timer/twl92230.c +++ b/hw/timer/twl92230.c @@ -403,7 +403,7 @@ static uint8_t menelaus_read(void *opaque, uint8_t addr) =20 default: #ifdef VERBOSE - printf("%s: unknown register %02x\n", __FUNCTION__, addr); + printf("%s: unknown register %02x\n", __func__, addr); #endif break; } @@ -615,7 +615,7 @@ static void menelaus_write(void *opaque, uint8_t addr, = uint8_t value) rtc_badness: default: fprintf(stderr, "%s: bad RTC_UPDATE value %02x\n", - __FUNCTION__, value); + __func__, value); s->status |=3D 1 << 10; /* RTCERR */ menelaus_update(s); } @@ -708,7 +708,7 @@ static void menelaus_write(void *opaque, uint8_t addr, = uint8_t value) =20 default: #ifdef VERBOSE - printf("%s: unknown register %02x\n", __FUNCTION__, addr); + printf("%s: unknown register %02x\n", __func__, addr); #endif } } diff --git a/hw/usb/desc.c b/hw/usb/desc.c index c36bf30e4f..85c15addc5 100644 --- a/hw/usb/desc.c +++ b/hw/usb/desc.c @@ -688,7 +688,7 @@ int usb_desc_get_descriptor(USBDevice *dev, USBPacket *= p, break; =20 default: - fprintf(stderr, "%s: %d unknown type %d (len %zd)\n", __FUNCTION__, + fprintf(stderr, "%s: %d unknown type %d (len %zd)\n", __func__, dev->addr, type, len); break; } diff --git a/hw/usb/dev-bluetooth.c b/hw/usb/dev-bluetooth.c index 443e3c301d..0bbceaea0b 100644 --- a/hw/usb/dev-bluetooth.c +++ b/hw/usb/dev-bluetooth.c @@ -274,13 +274,13 @@ static void usb_bt_fifo_enqueue(struct usb_hci_in_fif= o_s *fifo, if (off <=3D DFIFO_LEN_MASK) { if (off + len > DFIFO_LEN_MASK + 1 && (fifo->dsize =3D off + len) > (DFIFO_LEN_MASK + 1)= * 2) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __FUNCTION__, le= n); + fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); exit(-1); } buf =3D fifo->data + off; } else { if (fifo->dlen > fifo->dsize) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __FUNCTION__, le= n); + fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); exit(-1); } buf =3D fifo->data + off - fifo->dsize; diff --git a/hw/usb/hcd-musb.c b/hw/usb/hcd-musb.c index 27d9d0bd82..d70a91a58c 100644 --- a/hw/usb/hcd-musb.c +++ b/hw/usb/hcd-musb.c @@ -253,8 +253,8 @@ /* #define MUSB_DEBUG */ =20 #ifdef MUSB_DEBUG -#define TRACE(fmt,...) fprintf(stderr, "%s@%d: " fmt "\n", __FUNCTION__, \ - __LINE__, ##__VA_ARGS__) +#define TRACE(fmt, ...) fprintf(stderr, "%s@%d: " fmt "\n", __func__, \ + __LINE__, ##__VA_ARGS__) #else #define TRACE(...) #endif diff --git a/hw/usb/tusb6010.c b/hw/usb/tusb6010.c index 8f593a6fdb..2662c060ed 100644 --- a/hw/usb/tusb6010.c +++ b/hw/usb/tusb6010.c @@ -296,7 +296,7 @@ static uint32_t tusb_async_readb(void *opaque, hwaddr a= ddr) } =20 printf("%s: unknown register at %03x\n", - __FUNCTION__, (int) (addr & 0xfff)); + __func__, (int) (addr & 0xfff)); return 0; } =20 @@ -313,7 +313,7 @@ static uint32_t tusb_async_readh(void *opaque, hwaddr a= ddr) } =20 printf("%s: unknown register at %03x\n", - __FUNCTION__, (int) (addr & 0xfff)); + __func__, (int) (addr & 0xfff)); return 0; } =20 @@ -436,7 +436,7 @@ static uint32_t tusb_async_readw(void *opaque, hwaddr a= ddr) return 0x54059adf; } =20 - printf("%s: unknown register at %03x\n", __FUNCTION__, offset); + printf("%s: unknown register at %03x\n", __func__, offset); return 0; } =20 @@ -456,7 +456,7 @@ static void tusb_async_writeb(void *opaque, hwaddr addr, =20 default: printf("%s: unknown register at %03x\n", - __FUNCTION__, (int) (addr & 0xfff)); + __func__, (int) (addr & 0xfff)); return; } } @@ -477,7 +477,7 @@ static void tusb_async_writeh(void *opaque, hwaddr addr, =20 default: printf("%s: unknown register at %03x\n", - __FUNCTION__, (int) (addr & 0xfff)); + __func__, (int) (addr & 0xfff)); return; } } @@ -505,7 +505,7 @@ static void tusb_async_writew(void *opaque, hwaddr addr, s->dev_config =3D value; s->host_mode =3D (value & TUSB_DEV_CONF_USB_HOST_MODE); if (value & TUSB_DEV_CONF_PROD_TEST_MODE) - hw_error("%s: Product Test mode not allowed\n", __FUNCTION__); + hw_error("%s: Product Test mode not allowed\n", __func__); break; =20 case TUSB_PHY_OTG_CTRL_ENABLE: @@ -636,7 +636,7 @@ static void tusb_async_writew(void *opaque, hwaddr addr, break; =20 default: - printf("%s: unknown register at %03x\n", __FUNCTION__, offset); + printf("%s: unknown register at %03x\n", __func__, offset); return; } } diff --git a/hw/xenpv/xen_domainbuild.c b/hw/xenpv/xen_domainbuild.c index c89ced2e88..027f76fad1 100644 --- a/hw/xenpv/xen_domainbuild.c +++ b/hw/xenpv/xen_domainbuild.c @@ -25,22 +25,22 @@ static int xenstore_domain_mkdir(char *path) int i; =20 if (!xs_mkdir(xenstore, 0, path)) { - fprintf(stderr, "%s: xs_mkdir %s: failed\n", __FUNCTION__, path); + fprintf(stderr, "%s: xs_mkdir %s: failed\n", __func__, path); return -1; } if (!xs_set_permissions(xenstore, 0, path, perms_ro, 2)) { - fprintf(stderr, "%s: xs_set_permissions failed\n", __FUNCTION__); + fprintf(stderr, "%s: xs_set_permissions failed\n", __func__); return -1; } =20 for (i =3D 0; writable[i]; i++) { snprintf(subpath, sizeof(subpath), "%s/%s", path, writable[i]); if (!xs_mkdir(xenstore, 0, subpath)) { - fprintf(stderr, "%s: xs_mkdir %s: failed\n", __FUNCTION__, sub= path); + fprintf(stderr, "%s: xs_mkdir %s: failed\n", __func__, subpath= ); return -1; } if (!xs_set_permissions(xenstore, 0, subpath, perms_rw, 2)) { - fprintf(stderr, "%s: xs_set_permissions failed\n", __FUNCTION_= _); + fprintf(stderr, "%s: xs_set_permissions failed\n", __func__); return -1; } } @@ -158,7 +158,7 @@ static int xen_domain_watcher(void) char byte; =20 if (pipe(fd) !=3D 0) { - qemu_log("%s: Huh? pipe error: %s\n", __FUNCTION__, strerror(errno= )); + qemu_log("%s: Huh? pipe error: %s\n", __func__, strerror(errno)); return -1; } if (fork() !=3D 0) @@ -190,7 +190,7 @@ static int xen_domain_watcher(void) case -1: if (errno =3D=3D EINTR) continue; - qemu_log("%s: Huh? read error: %s\n", __FUNCTION__, strerror(e= rrno)); + qemu_log("%s: Huh? read error: %s\n", __func__, strerror(errno= )); qemu_running =3D 0; break; case 0: @@ -198,13 +198,13 @@ static int xen_domain_watcher(void) qemu_running =3D 0; break; default: - qemu_log("%s: Huh? data on the watch pipe?\n", __FUNCTION__); + qemu_log("%s: Huh? data on the watch pipe?\n", __func__); break; } } =20 /* cleanup */ - qemu_log("%s: destroy domain %d\n", __FUNCTION__, xen_domid); + qemu_log("%s: destroy domain %d\n", __func__, xen_domid); xc_domain_destroy(xen_xc, xen_domid); _exit(0); } diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c index 31d2f25627..69a52a9f93 100644 --- a/hw/xenpv/xen_machine_pv.c +++ b/hw/xenpv/xen_machine_pv.c @@ -36,7 +36,7 @@ static void xen_init_pv(MachineState *machine) =20 /* Initialize backend core & drivers */ if (xen_be_init() !=3D 0) { - fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION_= _); + fprintf(stderr, "%s: xen backend core setup failed\n", __func__); exit(1); } =20 diff --git a/include/hw/arm/omap.h b/include/hw/arm/omap.h index cac1b2ba43..b398607b06 100644 --- a/include/hw/arm/omap.h +++ b/include/hw/arm/omap.h @@ -960,10 +960,10 @@ void omap_mpu_wakeup(void *opaque, int irq, int req); =20 # define OMAP_BAD_REG(paddr) \ fprintf(stderr, "%s: Bad register " OMAP_FMT_plx "\n", \ - __FUNCTION__, paddr) + __func__, paddr) # define OMAP_RO_REG(paddr) \ fprintf(stderr, "%s: Read-only register " OMAP_FMT_plx "\n", \ - __FUNCTION__, paddr) + __func__, paddr) =20 /* OMAP-specific Linux bootloader tags for the ATAG_BOARD area (Board-specifc tags are not here) */ @@ -998,13 +998,13 @@ enum { # ifdef TCMI_VERBOSE # define OMAP_8B_REG(paddr) \ fprintf(stderr, "%s: 8-bit register " OMAP_FMT_plx "\n", \ - __FUNCTION__, paddr) + __func__, paddr) # define OMAP_16B_REG(paddr) \ fprintf(stderr, "%s: 16-bit register " OMAP_FMT_plx "\n", \ - __FUNCTION__, paddr) + __func__, paddr) # define OMAP_32B_REG(paddr) \ fprintf(stderr, "%s: 32-bit register " OMAP_FMT_plx "\n", \ - __FUNCTION__, paddr) + __func__, paddr) # else # define OMAP_8B_REG(paddr) # define OMAP_16B_REG(paddr) diff --git a/include/hw/arm/sharpsl.h b/include/hw/arm/sharpsl.h index 13981a6d03..5bf6db1fa2 100644 --- a/include/hw/arm/sharpsl.h +++ b/include/hw/arm/sharpsl.h @@ -7,7 +7,7 @@ #define QEMU_SHARPSL_H =20 #define zaurus_printf(format, ...) \ - fprintf(stderr, "%s: " format, __FUNCTION__, ##__VA_ARGS__) + fprintf(stderr, "%s: " format, __func__, ##__VA_ARGS__) =20 /* zaurus.c */ =20 diff --git a/memory_mapping.c b/memory_mapping.c index a5d38552a6..775466f3a8 100644 --- a/memory_mapping.c +++ b/memory_mapping.c @@ -256,7 +256,7 @@ static void guest_phys_blocks_region_add(MemoryListener= *listener, =20 #ifdef DEBUG_GUEST_PHYS_REGION_ADD fprintf(stderr, "%s: target_start=3D" TARGET_FMT_plx " target_end=3D" - TARGET_FMT_plx ": %s (count: %u)\n", __FUNCTION__, target_star= t, + TARGET_FMT_plx ": %s (count: %u)\n", __func__, target_start, target_end, predecessor ? "joined" : "added", g->list->num); #endif } diff --git a/migration/block.c b/migration/block.c index 9171f60028..0e1b90a365 100644 --- a/migration/block.c +++ b/migration/block.c @@ -621,7 +621,7 @@ static int flush_blks(QEMUFile *f) int ret =3D 0; =20 DPRINTF("%s Enter submitted %d read_done %d transferred %d\n", - __FUNCTION__, block_mig_state.submitted, block_mig_state.read_= done, + __func__, block_mig_state.submitted, block_mig_state.read_done, block_mig_state.transferred); =20 blk_mig_lock(); @@ -648,7 +648,7 @@ static int flush_blks(QEMUFile *f) } blk_mig_unlock(); =20 - DPRINTF("%s Exit submitted %d read_done %d transferred %d\n", __FUNCTI= ON__, + DPRINTF("%s Exit submitted %d read_done %d transferred %d\n", __func__, block_mig_state.submitted, block_mig_state.read_done, block_mig_state.transferred); return ret; diff --git a/ui/cursor.c b/ui/cursor.c index 2e2fe13fa6..f3da0cee79 100644 --- a/ui/cursor.c +++ b/ui/cursor.c @@ -19,11 +19,11 @@ static QEMUCursor *cursor_parse_xpm(const char *xpm[]) if (sscanf(xpm[line], "%u %u %u %u", &width, &height, &colors, &chars) !=3D 4) { fprintf(stderr, "%s: header parse error: \"%s\"\n", - __FUNCTION__, xpm[line]); + __func__, xpm[line]); return NULL; } if (chars !=3D 1) { - fprintf(stderr, "%s: chars !=3D 1 not supported\n", __FUNCTION__); + fprintf(stderr, "%s: chars !=3D 1 not supported\n", __func__); return NULL; } line++; @@ -41,7 +41,7 @@ static QEMUCursor *cursor_parse_xpm(const char *xpm[]) } } fprintf(stderr, "%s: color parse error: \"%s\"\n", - __FUNCTION__, xpm[line]); + __func__, xpm[line]); return NULL; } =20 diff --git a/ui/spice-display.c b/ui/spice-display.c index 0963c7825f..346fff44f4 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -630,13 +630,13 @@ static int interface_req_cursor_notification(QXLInsta= nce *sin) =20 static void interface_notify_update(QXLInstance *sin, uint32_t update_id) { - fprintf(stderr, "%s: abort()\n", __FUNCTION__); + fprintf(stderr, "%s: abort()\n", __func__); abort(); } =20 static int interface_flush_resources(QXLInstance *sin) { - fprintf(stderr, "%s: abort()\n", __FUNCTION__); + fprintf(stderr, "%s: abort()\n", __func__); abort(); return 0; } --=20 2.11.0 From nobody Sun Apr 28 07:58:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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 150638500030326.048694716973614; Mon, 25 Sep 2017 17:16:40 -0700 (PDT) Received: from localhost ([::1]:44907 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdY1-0005C1-04 for importer@patchew.org; Mon, 25 Sep 2017 20:16:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55925) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdVW-0003X3-1u for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:14:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwdVB-00061r-OY for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:50 -0400 Received: from mail-by2nam01on0046.outbound.protection.outlook.com ([104.47.34.46]:29516 helo=NAM01-BY2-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 1dwdUV-0005VB-6b; Mon, 25 Sep 2017 20:12:47 -0400 Received: from MWHPR0201CA0080.namprd02.prod.outlook.com (10.167.161.21) by SN1PR0201MB1935.namprd02.prod.outlook.com (10.163.87.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 26 Sep 2017 00:12:41 +0000 Received: from SN1NAM02FT022.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::204) by MWHPR0201CA0080.outlook.office365.com (2603:10b6:301:75::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.8 via Frontend Transport; Tue, 26 Sep 2017 00:12:40 +0000 Received: from xsj-pvapsmtpgw02 (149.199.60.100) by SN1NAM02FT022.mail.protection.outlook.com (10.152.72.148) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14 via Frontend Transport; Tue, 26 Sep 2017 00:12:39 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:49780 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUM-0001nr-Ku; Mon, 25 Sep 2017 17:12:38 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dwdUM-0008UU-J1; Mon, 25 Sep 2017 17:12:38 -0700 Received: from xsj-pvapsmtp01 (smtp2.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v8Q0CTj3007349; Mon, 25 Sep 2017 17:12:29 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUD-0008Tv-24; Mon, 25 Sep 2017 17:12:29 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=H1XJS11kalWjBECnAN3eFlyeFruHLGit+ni4/T9FVck=; b=z8findqIgxKhFTZutDjHGJbEGFqrQy4gsuCq0YJvuRAf9XZsP48CM6rK4GU99q9CNPlUUANmPmGftvosOvGlUOtNee0KmYJTcHymMOF+vinjVFXSqHX+8mKoU2VtCCLotUMtxWOtlPAIjoN35kYaqomtfPrl/jOscxo4Q0UMoHI= Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=bestguesspass action=none header.from=xilinx.com; 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; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; From: Alistair Francis To: Date: Mon, 25 Sep 2017 17:08:48 -0700 Message-ID: <50c325943b1547813567efe6a11fb44644494d70.1506384414.git.alistair.francis@xilinx.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23350.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(2980300002)(438002)(189002)(199003)(16200700003)(316002)(39060400002)(47776003)(2906002)(2950100002)(6916009)(356003)(77096006)(81156014)(5660300001)(33646002)(575784001)(50986999)(76176999)(8936002)(50226002)(36386004)(53946003)(8676002)(81166006)(63266004)(36756003)(106466001)(6666003)(54906003)(5003940100001)(48376002)(478600001)(189998001)(4326008)(50466002)(118296001)(9786002)(16586007)(305945005)(2351001)(107986001)(5001870100001)(579004)(559001)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR0201MB1935; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT022; 1:t/nEnKAsq2gduykZ0fS/731WRtWYyWGuii658y8OVy80McSFEbaUCM4tW8Ceak/M2KcloA9G1mH7CRLeQZbKoWgBhzf7ld42EjMcPWdV3gIcJpwA0HmQ2oDeC12O0dcI MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 08c9d5eb-e7c3-46e3-413c-08d504734cf4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(8251501002)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:SN1PR0201MB1935; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0201MB1935; 3:rF+sxUSrDI+a6ik27BR9ZWglUlbz1Qv4gK8FCr05Yft6lOVtIouQnqGf99f4oIPxM4ZppgXM/oF9ydX1aSEXdCay8PPpWskEZuC1WB+IU5ejrYTgCpoVYjK2/uU438yKX80XJ5l7s0MrWwB9DrXI15Ss7MjiFG7+xK42wpnqqTSZAPPVP+6N7sL/3xaHEegLkGlQB3/r5xiaidzQcdp8Sl+6Vbb1oNduFq59kbv+sn7oy5fjpa99xIgpnOS90X9kO5ZtRyjRYibb6p+vEjqIkwIhTRoPJujiRi3POZiZneUklVCqgPdvQPLjt+cKBmXAupeutP8lq+CUy36zDWDCgANtd4VZowS+vShGHRCE9f4=; 25:wMb/DedXVcR+C7kStf7a+V6epDoHg4RaxHywc03OmRHj6m+gT8oDyAAnLDFKamrHmNY7P5wcFe1L9sfhrC6lJPWq3uYbQfx3GCPIAAUtaiGpeK7+JpcAdTBVe2YT4WoZf0OQKNuKVkqQ17BpEZq2SYoc/u1xBuPRs7luP47Rnn8jKien6pNK4TT0XyLEGZD/X1zQ4DnMDZGUMHBIFujOeBsfwBb5oLJ+odEul/S7mVh+zLfao7mugxCc0llMYtNT2vAgjwBW6HdWUJNB+shVKXXeeq4Xzxm0txlGFioHKm7I+l/OG1/1JRfPjpPjP3r0acwmFdEVAnxdTsho1u3NRQ== X-MS-TrafficTypeDiagnostic: SN1PR0201MB1935: X-Microsoft-Exchange-Diagnostics: 1; SN1PR0201MB1935; 31:Vtg6YelZrfcHdMzjqr5Nfc8KE6OwpzdFeOtVbpJ67MUro3lXkzp0/2Goz5c0KIwGhOuKhQesfoDOeCuyoBcvUhF/E/KMT8g61Do8hsB+8s3u3MmpvEQFrjVE2BFPIEA00Kssnt8JB1q/cgZUvCjVVW62izhNfL6qQJy7WxJQ8ecJn7kpYa6+eJYVcw6LfSiJuUosrJaD6NTSbPdz2uraG/aX/s6X59/CmcMQY/zwX0g=; 20:ONFKHyoEoB7CkwX1857pHZ3XBYYWJnKiw7cN2UhdrTLB9LrW4Fo+YkUdlgwGUgRjSAzvbXRy9ERoFX9M45VGaypzIV05YQMMaFUwfSsmewtaCpLGk8N+NGT5r2f1N2yqNj79eNng307V8zNRRxAETy+jYweJra/2Htn5Mqv5itcZC/zotIzlAuP8XwL1P0L9JguVvJvv6fADtz5nsUhDR5wAHVs8Gum6qeel0q0AA6X1i8TANrK1ifrGImS7Um+xFkhd1prHKpUROwYP2nSXK2kDBZdi5E3jnZDHRfupGmlY1BfHfQ7aLavm8K0BGC+gwLzs0Qh+/CvVlikwfPM4Yg7w1ICc/qHacEQj8dMbJZbQx5b9J5GnQeYaPD4p4Yyh1ctWgFpEN/S+HGVBXHCFMUSDN5XHfWMMA5594EzxIi9ja2/pDeuDqBYAk1UjnhqrHCLFJo4q6UsdtHaZ8KP/WusPecVUTSPdo8ceCLG16F2KLAQ8wO9P9QX4SFt0a1CE X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(192813158149592); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(93006095)(93004095)(100000703101)(100105400095)(10201501046)(3002001)(6055026)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN1PR0201MB1935; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN1PR0201MB1935; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0201MB1935; 4:3h12cyzF2VAQZce6qzxyGOBbWlCMagRU9Ly7586nd4yJf4OMApT2Wgk93ooBNCv53lTWr0AvUZ0G2y2GzOentPpVv3yKbh4q0KZIMCiA7JacOxJ5YJG+Pydnd7h8NHxB2jZVyV0vhPfSndCfMQpK2G6LSVjmdp+SqKDl2ckvoAzEoSpB/S1qqDRjrLxL27DrPOSCpA/TZZ8zVKVCDeCIiYwn7LdPOiS8dsixn822VDzysQlZElSt2xqVjbscuEreugy73WDdRosFVGB3XjrsRV4cZAYAdKkhP22RogAJQ1gjRJ3EDaLetHZSl3WbjsLIHn03iSVl2gD+SxZDc+somA== X-Forefront-PRVS: 0442E569BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR0201MB1935; 23:h2dsG25XnGExfHn6+eBukTgtRIs9/pDfStqrESB?= =?us-ascii?Q?e0PEZyJif7ouwOObldnknINzMdQ79A3ohhTY5M5AZv/bIL8b9ppPYJCj8XfY?= =?us-ascii?Q?4pNP7ZgGIpK2KeCYDWeJw98bqRIxTqbk55/SbpurZ3kzcdHuXoLYOhg67dcz?= =?us-ascii?Q?Ee//SpvJyTH4lrwnhXc16bzYXSjkr99FAIq2ox15ZZlEapsIZEVaU1FG1L6x?= =?us-ascii?Q?rxkhw2s9UQ1+nNUovpJ8XiRpq5gGrL5gxf+74UdG8frQJeWAfGISJwF6AqRY?= =?us-ascii?Q?7k2nRUjrHDJAHNKTM1qbCTDYmjaNLqPMrIlkX//Fn7mjs46T8h/C1cVHhqkQ?= =?us-ascii?Q?PuawtXJcDg9K/Ref+02O3YOIfiIVGqEKoWqBNZJ8jFq+vqDXe5fI/Bu5tYWy?= =?us-ascii?Q?7yVtunTkPAaDVJStv+7W2BsGJ9nLxKFkH6dPwjKtFOGi37MP0gc3zZQ7K/Sv?= =?us-ascii?Q?u2qB2/xwZuGeLqCkBSPE+fNTefE9OmY7LpQZDH/msZ3bxv+MAKSGnCBSpx/U?= =?us-ascii?Q?3JjkdGOYLP0RsEIO4Sq8w3Nzs1ZHZd8FF6q/PH5AsWAUTFH+Xetq13MpE7B3?= =?us-ascii?Q?mAowY5EiSkVnTXETPnVxI4KWij6kzHL8WUf8HScfjESIbuKL8oh+LshmYDNp?= =?us-ascii?Q?CZIu2avOIOudEU1bPybdl7c7i/ZFMqygpFC0579WBNHoO+unuRgbhS4jtq9U?= =?us-ascii?Q?N4vAg6hmcfATMpiQUNMnomnNFy7Aptfbm77Ct9DG4jqIYMIIjr6yrtQC//4H?= =?us-ascii?Q?7yvFL7fvVO0Eif9rkVJNIrEtjQaxMu5udwEJxYjZdIlBSIG6oMBBSQqmieqL?= =?us-ascii?Q?lSBq7t53q+85dBWafRO7WF84TOz2PRXoXF9w3p80RmNEj3YpTH8qoOkewW8J?= =?us-ascii?Q?IvCl9ymPEJZQsKHLTl5wz0tXiGHWJWHV6YOSSysRb2zoBklDMbPzA0KIZcBD?= =?us-ascii?Q?jpUsSSOR23+m8IxEHGI1SKwasTQhKBZiRP5GnAYHtECF4JQnWCSxIY4FnWWo?= =?us-ascii?Q?3R46KtccM1cPNyKoE6M49H+zNiBVaQjKcv7DZ4r3DZIyMEYku06fdIWIBGBQ?= =?us-ascii?Q?UzNS0apU8wtz+wUGfGJLMtIeCIz4KdQsBFqwg6H6YfGgfMHJQj3U3YFP8v84?= =?us-ascii?Q?ZD7YmZm8i5HxbrA71VvBQ65B76dREOeGCZ4mdv75Hc3odFk97P+FOew=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0201MB1935; 6:7cfQ+QiyNqtT19xIUWMGytcn7VElUBipvwxZyOZy33WjzQ5vpWQ+LMsJsRBq6V8Xy/rYRfh8hoGkZ0/dRPs8X29cU45fo6JxmDA1dQbmHS3DBSja0UE9S+5pK99E/9TFxHKv5kJmOKIRKN9fC/O8CKfyGBnQGoLsMSvox+T2uwEuWDJGvIVBnWT74cgIQ9eLBb9m5H2w7GSXXws9potaADS6LwbqwPA3x7ngt4FYuugd7p5Afo1BbyakQ/oximR2iFS5tKWKTRSk+VXzYtLv0E9EQMJWzeHI6lRELpEjtqQmw4RgNAnZCHErF8g2l6pt8gqnaBoqFJIKtS2l0MpE9g==; 5:h0yxXPqfOUTAeCv2+3K/x1eetKXPbJCVF9zcqdjwm2/Huqw3OJCPzEFEf12duPbfn+cZYL7l3i/MdSF9x+yCYqOelVKFXBqJ4UGz7KpaLw73hWNR9a4ScHvRKz9Qqz+r60Se+M5J0YdxeYWzMeobGQ==; 24:6uw/JqRuPO6Xl5635hSHjikuBWYYBfQU38u88nsWsdqWwVoWuMT93C67zF54ouk7g9IH5GdJTllleFVIBYcwBEHJ2TLbpjBl6nAZkchEi+0=; 7:r+3IN8ZpUBO4Ur8FomVONDbLi1gNRuRs6J/P9pVmcw+blUhMIo5GwPhpYU2NYI8VSim4SVslRF08UWu3nfgBi8IMn3sX9sDTyDaF2QLvKrLvWukrEBbyHrsJRIktznLE8aoJd0cBqxMLbvqC7FCF2ZhpuBw4TXntOLLmRsU5RtC9fFoikKmNWyFMsSGQPvK1Dt1vgoXaTtSGlmRj84vGAlIu9sTMrXu0CqPLVcLp9zY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 00:12:39.6306 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0201MB1935 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.34.46 Subject: [Qemu-devel] [PATCH v1 2/8] tests: Replace fprintf(stderr, "*\n" with error_report() 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: qemu-block@nongnu.org, "Michael S. Tsirkin" , armbru@redhat.com, "Dr. David Alan Gilbert" , Gerd Hoffmann , Igor Mammedov , alistair23@gmail.com, alistair.francis@xilinx.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace a large number of the fprintf(stderr, "*\n" calls with error_report(). The functions were renamed with these commands and then compiler issues where manually fixed. find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_= report("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_re= port("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report= ("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("= \1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1= "\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\= 2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2)= ;|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|= Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig= }' \ {} + find ./* -type f -exec sed -i \ 'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}'= \ {} + find ./* -type f -exec sed -i \ 'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \ {} + Signed-off-by: Alistair Francis Cc: "Michael S. Tsirkin" Cc: Igor Mammedov Cc: "Dr. David Alan Gilbert" Cc: Gerd Hoffmann Cc: qemu-block@nongnu.org --- tests/Makefile.include | 4 ++-- tests/ahci-test.c | 3 ++- tests/atomic_add-bench.c | 2 +- tests/bios-tables-test.c | 5 +++-- tests/check-qlit | Bin 0 -> 272776 bytes tests/i440fx-test.c | 8 ++++---- tests/libqos/ahci.c | 10 ++++----- tests/libqos/libqos.c | 7 ++++--- tests/libqos/malloc.c | 13 ++++++------ tests/libqtest.c | 13 ++++++------ tests/migration/stress.c | 36 ++++++++++++++++-------------= ---- tests/postcopy-test.c | 8 ++++---- tests/qemu-iotests/socket_scm_helper.c | 11 +++++----- tests/qht-bench.c | 5 +++-- tests/rcutorture.c | 5 +++-- tests/tcg/linux-test.c | 2 +- tests/tcg/runcom.c | 6 +++--- tests/tcg/test-i386-fprem.c | 2 +- tests/tcg/test_path.c | 4 ++-- tests/test-hmp.c | 5 +++-- tests/test-rcu-list.c | 5 +++-- tests/usb-hcd-ehci-test.c | 2 +- tests/vhost-user-bridge.c | 28 ++++++++++++------------- 23 files changed, 97 insertions(+), 87 deletions(-) create mode 100755 tests/check-qlit diff --git a/tests/Makefile.include b/tests/Makefile.include index abc6707ef2..485d258b17 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -618,7 +618,7 @@ tests/test-vmstate$(EXESUF): tests/test-vmstate.o \ $(test-io-obj-y) tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-= obj-y) tests/test-base64$(EXESUF): tests/test-base64.o $(test-util-obj-y) -tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o = hw/core/ptimer.o +tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o = hw/core/ptimer.o $(test-util-obj-y) =20 tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y) =20 @@ -785,7 +785,7 @@ tests/postcopy-test$(EXESUF): tests/postcopy-test.o tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o $(test-util-obj-y)= \ $(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y)= \ $(chardev-obj-y) -tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_s= cm_helper.o +tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_s= cm_helper.o $(test-util-obj-y) tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y) tests/test-keyval$(EXESUF): tests/test-keyval.o $(test-util-obj-y) $(test-= qapi-obj-y) tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-b= lock-obj-y) diff --git a/tests/ahci-test.c b/tests/ahci-test.c index 999121bb7c..0a0c7a459a 100644 --- a/tests/ahci-test.c +++ b/tests/ahci-test.c @@ -23,6 +23,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include =20 #include "libqtest.h" @@ -1859,7 +1860,7 @@ int main(int argc, char **argv) ahci_pedantic =3D 1; break; default: - fprintf(stderr, "Unrecognized ahci_test option.\n"); + error_report("Unrecognized ahci_test option."); g_assert_not_reached(); } } diff --git a/tests/atomic_add-bench.c b/tests/atomic_add-bench.c index caa1e8e689..41ba1600c0 100644 --- a/tests/atomic_add-bench.c +++ b/tests/atomic_add-bench.c @@ -29,7 +29,7 @@ static const char commands_string[] =3D static void usage_complete(char *argv[]) { fprintf(stderr, "Usage: %s [options]\n", argv[0]); - fprintf(stderr, "options:\n%s\n", commands_string); + fprintf(stderr, "options:\n%s", commands_string); } =20 /* diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c index 564da45f65..0955c72a74 100644 --- a/tests/bios-tables-test.c +++ b/tests/bios-tables-test.c @@ -11,6 +11,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include #include "qemu-common.h" #include "hw/smbios/smbios.h" @@ -396,7 +397,7 @@ try_again: aml_file =3D g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machi= ne, (gchar *)&signature, ext); if (getenv("V")) { - fprintf(stderr, "\nLooking for expected file '%s'\n", aml_file= ); + error_report("Looking for expected file '%s'", aml_file); } if (g_file_test(aml_file, G_FILE_TEST_EXISTS)) { exp_sdt.aml_file =3D aml_file; @@ -408,7 +409,7 @@ try_again: } g_assert(exp_sdt.aml_file); if (getenv("V")) { - fprintf(stderr, "\nUsing expected file '%s'\n", aml_file); + error_report("Using expected file '%s'", aml_file); } ret =3D g_file_get_contents(aml_file, &exp_sdt.aml, &exp_sdt.aml_len, &error); diff --git a/tests/check-qlit b/tests/check-qlit new file mode 100755 index 0000000000000000000000000000000000000000..950429524e3eb07e6daed1fe01c= aad0f5d554809 GIT binary patch literal 272776 zcmeEvdwf*Ywf~vPB$){zGeCghJ;($So{10*LNEgfoIs*MKvBRDLV(l&F`3b5QKOS6 z<2Y?>y_S2mt*zElwU$;dBEG^yz-JMBpjbggJuxB(J|Y71`+oO6Cvy^#w)b=3DI{oVV=3D z9X>g0?X}lld+oK?Ui)=3DsxTT<>|SdVVf@6fOefP4v-Ratdh_f4%Yb$XlO{t`nvlp56K(@DvC!CSdO}`4~rzA zM<52=3Ds|!`hBt9PTq{6#!U_iaO%7m)QWfx4EP_=3DwqRppvM z-MG4(3&veAX?*S4@#l+nQ$BfTU9v#bWZ2Pz6h)@uk3PWs^(j~RwV!?Ww~9X7j}(o$ zpx@rO(h&15#9w>AZSy!3TizVfCgU#`f71)z`r?_7f41)5N?TSQxOU;-Es?KMCZ7lo zZry(@1=3D(GGnxRPVE^->Wq5rHK`k%X@_wRPZ^#r+I75} zdM9=3DxzqA|qE#1)PbR#FB8~P*N(4Xr@{@HHm7j#2U>qh=3D%-Ow-XM$S*Vv0FH5 zcSGm6_u#Md$KDP9Aux8O&zf%9^-wqb-*+Sb%5LNg>V|(VU*)hqe;V^$vd-UG&Tvt0 zlCp^b-}DJX&tA#^WvMRTkaMHpPf^}1Gcgmze6tdNkux;C(^ zx@K)TN`oRbQc71qGLpIlVv2MyiAlkl3egny*lKpw1&m~T&PCK1Ff!%<}ItL zys<(QTwP57@oQNDt)M&c>axl;N@)cffsAFfwUQ1J+;LV>;q)1$=3DZ`;se0DpYHK`qq zVH3xja11Id)?haL<7z8jJUP^iR06O>k&0{2V=3Die1B~CF$E=3D$S}%TunAibFkI$zf=3DV zXPkIilqW!Nf#$(qU|^*~f#e}9j1Rf@oRc4K%8yr$>G|Zp=3Dk9y4{Ix3?C{LNGm6biY za-XE9{R1f9rcBe*vc5PWkNkZEzg3y7*Kh0#jMgo6vlc~Z>J;}pI{kr8^y_{k`8Rf=3D zXI4u3rcU&UI(d{|kx)Ei=3D~bQR^?KTXhMq^tWWg<+_?z{#0Xy>_=3D*0iE zE=3DTJ`*L3>vPV_dNZtpZto!05@PIQl6zN8aZwTCi)-~-EE>9XDrP2nCL@H z{OKmT9x_C3rinhx#GhlLdrb5^6MeXeuA1oQndl`Z`Un$!p^5G_(U+R&X(swA6MdwK zUTva}GSTZy^mG%w-bBwZ(bt>kqfPWC6Mc+{zQIJ-L#oJqz(gNs;@@bZk2ldbndlQt z^erZOritEcqGy@tdrb86P4vAc`a~1`fQdfIL_chzXPfAniGG2JZtNo%t9Y(se2jeo z=3D~E3Npc?$bu7=3D|qZ}cc?W3%5H-Kz$7+IO^bM6<8D!J|ae7USt0mIsXK6;1znxJ;Mx zKLvlJ*Z+@Tjn4NUg*WQu{-f|Vz1-i2MhB^pp2LgLjgjo_a|m*OUL-qp>te8IpPY?G z!ScLh`L$%J?!dBLvMeeQQr1b9Yy!B(*144OYss=3DfvRo-yMt6|1PO|*FWVt}HBz9oA z5-d#+>dxAi)f`&qO;#g(geG~_(5KoDLO^yACULal{n@BC2PEz1qz8ApcdT#@%U6`F zqlKY2u2w@Islg-1OXe3v;;#ZLn)q>{D0qJqpT4(W?@_)M{E)Q`22~^R1Pj!RHZ}B# z8f;6st}opF?dy;Qw|6Xw9+vW#?4Xyg81Ed`AWV$%w~F%F>_?P8%ktaK#;Kv>>Nf3S z)v`-{`z5W)8jP701l84*{^Vp4Ad=3DEuYLp!visPP5H zQ#JIWwpZ9XdmJqn+OCEUX;+gik~<6(?Jt-T;a0@;+&q!n_sTjCGm=3DEcAvG9(DF_zr zJmkJG2BNh($_*V;L%XzM%t|7N59+jZr674u9R0w9% z(}e8o*`l`Hs8B1HwSA!%+9?Z_sEr5x{nYRbJA1ZH4Qdu3YG{Vtzl4Eu(GuM+q1C@q zSfuAE0kRXR6&LZ)>I$J%JrYWcZ=3Dd8lGz)ywB;SM>AB98LMN3*nW7>t-pG)@l!49MR z3rmTy8HX}4cWs)dhJJX#1995VPGR8e&f`IzvRmvJcjvi)!vqW6i{MuEOvLz?b;ZxZ z9r!tZh5QrFUin_THWsB$I9))`sf){QaOJth@YU-J&vFIZEPl1-f?%69;K*vGgJWEy zg>T3f#tD#nA43)+&{Ytl4M8=3DMFFebwh7z_=3DF_cu)@D=3DW?X0>r&-DWk^Pm)(O#SB7y z5nh(7VOv_dXbe=3D%YS#Q18x76=3D0cv=3D@*S=3Dhxm@0F_HgCWy^o2s{QlT1Y@*8RLl~ktb zdkoTYJW#*ho|3NGBg$n@l*L~$VqrZ+6pPYqcf0<(+Vy7yQqArBFKSPwROq)eY3|%d z0JcV`OmiFKEFQ7;82y8;o#hsGj`aLcl*=3Dxc#ebNi_s?%A;wDiV?OEYG)_g*Bjuxdv z`_NyF&2>&Aqgn6o&~{SPH$D#@wy2KnEVKQDb0M?M@mJc{+3*-@ao+Y5JmEL<0;_~# zXvNnBiXwVln++Az5XSNj?S=3D26(O{br+V1?x?I@vcP$T}hsB?2l{r8#vAua1E%ZTsg z+fA8)>fq;=3DKxE?XS@{=3DlLg^h;EM$aIYWxp8Rs);*A*g-}bA8ou5QH7byq)!ecR zBqJUR`dmqW9CZI5VtT~fuHS4P+ITS%QZ&*gTjfCl4$T${Pn45>=3Dx9esLuS| z!ZKOSJ48UY34`a!^&83zYcDe?R;HkhVWg$$Td@fEPz>LbZIWhOYOh;agm4aF<1kM=3D?Z0S9?66-|jH^ zt8amCeqrb|rlImLL;GJ4LlC1nqg6ZcO*9($v86EdVk~mRv8m;dScgGd=3DTU>ZE!xZA zD-17j7e*$HMgJCt3S4UFJ?$E3z02l?0e0GpLfWDwzQw*JJ4F1`UO*89PZ%-l+eIxm z$Vsw+&7kA|b+)3kzN5FxHy^X*88q#?!qC^+?V=3D!OF1pciEv^U+graoBuFz-N=3DC7&n zr935lfsG6LHF62!L~TR zi}9ATjkAX_9&T}IiK3Z@7PXu`iAF|xI$}}QZ zUdFclpZP3p^%p6DcYKx2*Ics8wnNKVf9Ff<YeP)zQT8T zVdyNwB4Q4Do!$A42e9&APZ{>m>48423)}lAya?TS&_4^-W1r`v zY3NN&4gXjeePFxMZxt^Z7ety)GKB@TTAZ4--lhE(;>`Ze7XN^jqurv> zgHP+@NDVLMP&pV#X&ochb+Vnq^mZ;jZnP6iaZ#b{DdJhpBAC$$mCo{?#qwB;(|;iU z^f6sNYsdvlOAjtU!^D0~2x;&`pgn$+ zmNG4v7`DWCD+~|zvK`~v+c6LEV4vTi2B+IG2_O}o$o0jK(f3BX-YbNSiYI>&*d}|u zeH9g(?_e-YH}C?ESZxg)Sd6B^@Zz0fw7ObniTZVs{>l1yee8?&@haMj6OMUU)0JRd zg84|`ht!Z&dlt%i|(Q-A6 zHooLuETYG+S z=3DsW)iW@%hzNWN1XcR6TW%Ve<9Hm%R0O017D885^^F_veQ7ZT)N1U9)SYJzfx|FggJ zzT!^15epH&*Y0fihz1LUiMSa1Y7HwY(8@?Jnebis3Vz}mqKFVr_6=3D?JYPz8nv$LWjDOVMqCN7*>o z35`3XJ&IV-`b2wuBxz3SX0V|BXnJdtv=3Dh3-ZR!$O;WBzkB)j|qg4{_khP1++)GN~S zAlntmUWo%JWZw(0^?j~6u0b~Zu-!JCot+KbdKx=3D5=3DN+^J6!y`(lp<&TvBJn|cX8x* z^!fI2d=3DtzT4Ge9~mg9^QF3$$SS717JY3sPR!feZxZAGYm9%aAJ1Se(C$Om zFn)>QiuIISRi=3DT;u-2jmapD9bLJc`^a@gX4v$oq`$a@p=3DxNFfak;0OMFws8xXAW0p zp)c92&~|3E>_SUq|8S*yw&iUEF_|{}uQ2otBl~F)HW?4#jpxi+YtgL2$UR;WQ#vgD zu&Y!GBl%u;D-J5ed6bAV+x?4;b$4Otv)1?(O+}%TMd4b6mT&zKKSem%ms$cQYqb6& z5obF^-AUd;3@9y*oe`eM_H9JOfPlag3=3DlkgvdNh-yOZ)lVy_7&^PZ*{i|oyj@~OVo9+#3}^6PjK2<7)nst6>zD372?DJ30`WEZYp=3D`0w zxj7Z*8qF5p`qT?~lq3k?8Crj8eBeW*<|kUzNSy^qXJb}8ln%AEzTV{9WxEjQG5X#n z3<``RXM>9Bp$aB@AXo#}M1yD1pvO@P>tJVNc^um;7eqtb7ewLA$j#AU6pW2zJZmd- z7VN})$Vq(x+zRc`7JQ6G${n<`A(_>Lu;0!zS*?&|rPc2EE9Tsya1S{1OSs!b=3DiiR2 zT=3D>^)q_)n45(vOq%>}p-NIQ>-C>AE#iH}%C0pKstj?TNf8q@?lbic_ZNuH{;@qaVgDF*;R@p=3DF2d$w>xyQJ z0q`bWgA45K40QctLITgo$xz$Dr8{=3D&Se)p6%~ypx^tFaoi%H0sqgqpNULnqZoDGaA zMPc|tGsZ2#woBc;13@fW9NLY}5B*IIVZW7uC1wL(0~AY7jzWG9Kv5^}P@P2w3bA*E z3jXovc{QAjdFkS;Z?|G5z&&vvF`YCA&sdxdc_>5PtfN$TAI#52S@j0synKeGXfoWZ z7gWNE&Q~1zwB=3D?5SonPf-kE^k{{*i>!0#{1g!6{J-#XWDeQg}B;9BAsjL{t>sJf*G z+MrzyN5#!hOm5lWbIx5n@56i&gu!5RFFEsW&; z1(nGaecoaA{by_?X39IUvxnF7Y~zkY?1O`WN1$mn*&{uV2#~!IdKZRTwnhw1vyN)F z4uw)t?J^W9l+J|#T0-N>Tfjp4UjU1$&$QbepmKRX5kApUga>N)Gr}Zlpb=3Dn;nW$mw z*X%^b0L?3eqvuf3@ei>6ydNcQktIB`L@G;YvV`{a5XAD=3DV|s8~W7fmjcp7UW>T=3D2s zs~+PnFVgc%(H+?@3%R+)6u1KdwbxN2>icY*(D1P2dI((XttEyHv|CVV%L0g!J>zWX z&4Co@xmFgam10vU_6Lf+9%8vchv@gE=3Dmp5bE-qUI>()dF&T1|WeFYO}BOrU>RV{6h zsNDn;YrR<*_xMuw*Q2Rg?u%nkPQ1x52-(^tV&~EIe2G1?*rlH2(ogI{w5R?Ck#P7P z_3PrIm_`Pm^DwI+0JmPK#~;R4d*eZ8<4G8li!vJ~#v2e+HjElGE`&dIC zydlW-9u7ES%ZU|Dg$Ry?GH~kW2^|01{e@~cQ-!Xm=3DVWV7Q~ct5gslt~hgtiyo4Fcm z!}fHB%NKl;b7BB1ajYPZX*0N8LHhOLDHW~&PJVxAt;hc48R#2rsl@}fzeRLf_Ih|L9e5Tl)`$BInP$Ty;#LsK(WvmbMc;&B(t(&pZKhth+V;YXl zD*Cy^$21(*$C%nrYK<7Q?3y%Vu|2Aw;Ya}I=3D?JmMwEp67!T$s}z#KSeSP&;gdTSSO zr61bW`V!qyo^jrGkZmkM+%)dQF>@Q~4uPEg)7wiIbin@D-vxUCAodsbE0U*D#@`Ji!E-NKrrie~w09oHf^g!ANYmdCQt^5TCT3;* zLS6%J?sPuh+5QP#+rRl;-ToM_@VSon*+v=3DtKD+rHp=3Dp-X)G0OnlC8mkm7;xxY^~am zhafV;IHC&UkopI#=3DENB}_6N`%S8K_tmZ6nt&;Z<7>jQ^9SY+0?in+r|AZ-bQ+- zH6;BP@-|?X#8ooiG7?eV+3+SBg6lTi@{N{qcM zJ2rltn@b_+J8crEEHfA|X9xNAkgrM1lP%8@*TAijkcH`wt1vVOGL>dtu64+U^<;Q`_1!&5C3iidR?p!et1jx zC*wULhFuAWTf4K^|6QMn{#;(o z(4F!y(lyojrx)?35yi~IWb7V`ln(b$CMIw;lN;}zH31$aFRo04K;wNhA(6Mc`n|Kc z61}YKFV?)f8J-a(uQ-1%#%Z{CZ9^QXy(&*3)X;oya)$$m94vl@u)z_(H(ee%BHCcp zt&IY8g>!tf8m{uD-R4^p@o-#E1K$W!uv{G zb2$qRv{(p-)q_iMK96@{p})}Gjc1Y9rTrR#rd@Lop}8xjdGJychi}bAjK+vqAVBV7 zM(kEd)LQl-{y*~pm|DWZ1e`BVI2Ug-R8mDK25Ws`RzeFe0ksIqAlk(|TslGd#$+RQ0k}lgA&s%{%P0)Pkzf6dh3=3Di)bjVldH(MFjHB8! zkSv_C{4JmJ`LET;RQ;U2r4Tu>{tfMKeL3qO-*3PIAWv!h_T~$no2_bOwgsJ#p_YHE zM&@6Lkn&EAqjezsfATw6KVXrr2De$(&%(KekHJpcm8giDH*wy4dS2)x&V;q!zY&d2 zK5)~_j2-HRBFo{%gEvocZsv7Ru>~hjW7YD5@MSlIAFoMn#f>1>7n6@uJ{B01Ujq4a zqYe8YpW)V6nVIb6+?)VC2j?XE9pWDQqC~z=3DxXS`MwS;QeRPTex&_!Z+qmlLK0nRT* z8nt$||6Ag0o2GYe9@=3Dow@8f0MwR=3DUd;ZaJS@L=3DcWB?@lzEMV~904>>zI5atRz5in_ zqKtcgJsw~P`csQT6&z?rpb>9S2`yUxYK%A7e^mX&ivK)nkHb4G^o71m*549U{5@cs z$-4r$=3Dj6MbO|koqqVTBV#v}geILSnZ^Cj;yc@5wCXBLG%ZtWZEZyY5%pP$H_vD~Jl zvQbzHezprQ;2{q$SqT+&W8)PsIe)0T3uv~^c}-YJ=3D7(pchObD@$IDN?;P+PNPd9)M zDZCfcd`%*jz?IFb5n+6h>bQc&W}mb0c;p`I&*Q&|ZaZtu4>cE5zQlVO-?p}4mbbSK zYiymHAKLca=3De}E8UP7tR-fgE6x3$IRXKc^dmXG(2wtYX$@_Hn>-`15YR;>8$^U&Tm z+VV5@SoU0Vg>7o(rFK^ebljj;HrLO^S1{j*bE@SpVG=3D;MH&A^AI#ofZmX#tDtPK@$7;M+x14FPa>Q8fM&)Y~o6xxnRyaVK{eauK^mxlI=3DxkS-^ z40;$Z>#_g8doQ$CjH;M_6^8acjjwSkTc<-*%UK-q)0?`;FJ}G+UFK`hPL_ZEoP2%h z1%I6f_dVw|0xtEcFv0jjZ{yxpd;K-M=3DoLD#8+E~Kym-KTvQxVrZNP$xmo#cP)yu0| z|0R4eWq}fiS10fHXMflEErW~EVwW+2?1;68d+0=3DUcLFOAakzDt80Xj-3rVevYkzJ% zq6MJ};@Ur<|GJp|DN=3Dv2FN`%oi-Jt$eZi^T^VHqj(brMD(YYOMVtYgu+cewUrmS+m=3D2p_kDGp-=3DJltQ;(8 zCAWIxAhjU88Vjr41=3Du%USrne+Et-7NU!y&P9K0{lnxw~1#@)?*zRjO&@dQrPpBm@S z7jG9}AvRUqMi!$+ya8Ag3Mhf8a6I#^ILF0zf1~Wym$9P9d7AGzu4!7I6)2Y+t$)@@ zf6yjF)%JKlFZ2dZuow#P9i9%$NxoF{CDtH#S-b~FMOHIhH!!Tz+e1Ud7%;5|cQZ8V zLwUdU+DpPqV&k1gMLzz%;#Ik)p}5yidxL?FWq`JdNF=3DgBppYj&kRP4i}buvfb4q-Fu`xl z#7QcSokz%)1kc`b-JsC%ZC@q^_tfXDzuvMwaSIp}qn^C=3D7aHq^dK$vHIkBO+&S88* zqA7UzmQaFo^A%X&)b-rA?0a)w^-gX6DvWMjgL4!tbABX@|~NV zsC3^94^~;)97w{q!FD2rDzKHM)R@1Z`RN_pQhd84>RkUI#A7Y~64&2dzU`DX<7IIP-F~0!Y`g00(=3DPUM)PJ>H^uH7TO7x4#%nC9Br6D2O$IZo3}9$ii56LfpCe5Rieq>w|;Q|CTPH9 zKHr#f!%M^LIRMSo)0(I=3D8fL*^&8=3DVT1?PWrYqa0*gp!R1F|Fl?)BP*pKRtc$pYRx7^hM(B zNZ?%vdF*1}9;m}y?XOjXH>E57QWd7)`)&AQLpscX%kD1hAPq!QxwIrSx*#;x+sP`^ zVHLJDw#E`836aY}?Lr0Vt@j|h4IY51BH6`mg4~|~Y<&Qwv?4HR!|>=3Dd{^)aOUJ(7k z1C{3}3$M>G-fRe5oPS4{( zG{5kG?`zp{$`R{7wbT3A^#3tp&In(uT|o)qA46o+pCrCwp*<;t;)V4oKp>BsO!Imf zhwB$|#);(K(4V_HZAvn24K1KnFCOnja!X~7kC%pc_q{c2)+Z8Qc(I4C-JVn@@Ajvl zJF}1`p1x>D_!2bra(u5NcO7J?;p_Mk$h)}o;oQ$FDs3GWmprfYBO$+I`7;VFmcA8oj> zj^DeK3kSRszEk@(%i$7t71keE&W`1m>sCS8AN8Y#c*OuWBT)DOuoWRpqKwU3g!7_f z+h}Jvn|LGWPyt`#EXI3;t^%CNc*ME4_Av$~Sa3!%g4=3D+OZ%)F|USS=3DP>?3^%az6(U z-wD+|hHSHajd=3D6l5L--vg$~>yu>1&GA-_c9N$0|=3DIt`{+h)IUJ9sJYK_rE6~7KgSK z;B>$o6LC`6jq1%fj`};Q&&4UCI6o{5y-xpvYw0grGcIZni<6Oy7|{{Tix|xB@z#UN zpxz|lLwYcOOb_NyieT=3D{c-G5E(;=3Dv*^A%7m!1Ccj+Am&!|1=3D)N;?2J(Kb*r5=3DRt_e z58J%x1ee|!sf5A@*%g^ZT)#2t!7Dk~{uPwuhdzffig-WGohP~6CEClUxrew3m(}bv zEDns<^+qBBvQ zGS-N{rq{`VJpXyRRP@31R)3a>n!K}PVDRbJ;|{&?0Y zob`2#PM>%uY9hJ-m^FYIIkyo7;mVtkD_)NJPWu-eC?TU(X7Hwqt`KXFvr+u8MWy?=3D+q(mnqhO2FGaay^T%$v=3D;NUl?+rcz8L#AqKqEylzDMt}Z}k*q`i zn>G=3Dnsdw!6Mfi3@0KYI1-#eS;%1IG5Fs~|`;tgs;gaJ$9RD=3DaliLFLtpmLMf-N{?_kD;&{oNPVlP~LevL{4D za$hE3J(sbb2XIu-?tkIFm9joHoTP@FY8dZd?4AX;MTyWA=3DYD^Z?L+G(u@LGH;AIad z-xLX7in#{*gj750mlbDElJ#F~)W3@Ldpgt~-!jpIHxBsW{bxA-U8Hd@6e_W)k<{;Y zb8`b#N~lU6h6Y`AGg$no@>eiI)i!*$9J>Iq^9bfx12&MTgGW@Jy@@OKNbW}jv;ij~ z?f$1|gFI#4^Am*lAG8}m!TUtw_duKlxak_Q5w-Aj7xR7qmER3AsQP@ybGoxx(Uyrn zP#_d#TCCJtJRs?5D=3DKMmG5tT`-+0aUBW(Kre$cMLEZwb>7i?zh@?pXMDgA{>|3MS} z#0j#yaeCXo|BuBN+W!T*z(3IcSli#xfBTcv-#EjeC&L$W#~{M;iz5#0PUHg_ik}|( zeWnMl&Ruc~E^NiLf#pL67@EXs&mrwa;20CX!`$6IJzWa}#TFZ5zyW`5{YfmgaU|fJ zu2&KYMS9K_AbTPKl?lC*)hu5=3D<~Os&X(Xj}8b2pZcQ=3D$LzVCx?hGBnE6iMqhn!m{u z8Ar&a0KaOMfuDDR_-$w6v|&#`LoAIvSqF{rR}}gjM;`f*5KVnwTrf`lTi|n6Y+A;f z_KPQX=3D;~56^oRvt^v5W&Abfao1L?4os+AQ(hHVUNPa?vg*nS*RHOfpcfs#N};^c4)W4Rk~Y>u zo(yGpcMPRyjlqQayX7NSmfpYOP%4x87T2(+vTcOa>!*e~CEGR09X+(A? zgCG4}dqXKWj2uHx)=3DHY-!*5N45x*I2aOrgZB=3DqvN0siu};A1*~-e&)5eOV*60b@*H>$>%hov;K1`Zt$elda7ac$~sSFt*5MtKLUM&2fxAW zDMQjzTV7TL$J9Unn16XCeQ-wEnl)?vp4AXa2lSM!S?*c0b`Abl3M8(nxS>{;SHyJX z8WgHPWi=3DIG@_Xpf{VF85SaRjkHOYu9>~1^j{lrBaHeCaQP4!GXUy*9m;-{n2jk+^D)9^C>@YIWHS%PR28)3yE#rMR-T7TzW;E7}i>z?W;&0^@bN%93R@HDx#8 zr>Nna_-S>1B)zg$Na`XjnA+*J)eHwKs>=3DMOFb(r$`SO~;>S}m(>|?G^l!|2uOy*M( zeyh6_L8Mj>R63u`KX<@gOXY7c+!*!CAQy`hdRmOf_Ax>69Y@4D<;Y@)H4SisucN$W zYu8qFl1I`%Dv!2(f%p8<@givs{tn>X$W{1rUw2V=3D59E%YxDxSex-zE{qe7Wgsm!lbN-C9tN><+fIgYzhevZ$O@UVn=3D$1WC1 ziQjdHPNRWTGdzg7Ag%Tyh*oB-4OB69`8{j#e++m=3DrPYp71Rv%cQ9y_Ug_DrTz+^HK z$l97x@iX{c&{yE+;)QvX1#9r@`;3g0C;DS%WZgkw>XqvtlhklI$a{5ypvv z^uVgM<>RIyK3%8ae>dRo6IqKcol!cout>gU)vhy2 zmO?B1%DxOEOxGZsudR_$h3V?G)gAb&1GTFMGf z(c^$QfG!;LtOCpg+z813-^#ry8eIxl2UriN0d4?P|BQ7l-~qtBfP4NDjkW=3D{0lJ`v zisfl0;CjGSfExho0qs~yZvjjPJOG#jcpPv&pa(1PHoy|V94x@=3D09OGv0oDO-1Uvw^ zhxyoqY0L+7qrF=3DIa{%j}f_{MMTTl<+LcqO%>j5>u4S?_|Wh0=3DQ5a$f_fOeciZ2?>b zcpR_}(2mQe4S*iNEr2WvX2LQJK?g7*QH9+^Xkb~WJ9iR%h z5pXHs9>6-lh0jH!+?4MDJPcU(0_=3Dvp`Uae_*8?uZok=3Ds`M!+^e4KNeu8Et?npdA-g z8vys<0#PIV70}V|tMFRZ20%AnFFOvn5YUd33=3DJ>`F#WI418^Z=3D6W|uWO@Idg_W){u zhXLJqXR!@X1$4oWR^c_%g@Ee;>i{vJPdeZOfD7M+-lPNCQz7p?@B!`ttOh&)xE?U)AnXIU5bywC z9pG`m4S@E(pudm)0!;rK>;b3&9tPa<0p>tlt8F}lb^y8$qh6)~_X65KggpUs0G0kI z2dDz7AEAE2kI`yDsaz&-fBLk@0&(?5lM0doNBctH%<1h^h>6W|`ey@2VT zp&X$GdkjFk0ILDlw?H4jjh~}_yc4kp&;z)k6?}jP0G9%8`~rRgr~y6zn0^#?U>dLu zuBI8+W_kU-Cw~TfU5vE0d4@?1E>KW25bXt19YE2zvK0tRe6aKlN+16=3Dqu>wg{V?c7q{H5&(AO|H+mnnVCf8$n`xjH( zVn`>m?B}t_-+_KM+nw#q2i=3DWwm=3DfDRlYsH3B`9w#snb(j5$p66_g(D&+ikv-^kDoY zDVf$wQqnSx7%4? z&~}q>H&mdPApdFbF9m-YX)*u2Jf+0yYj;n*Luvo9afd4 zn6Hlq(%%RDg5P$eQ{LA)KgX?mK(O~L*5As(%9*qvy^A|%e(jNo8 z9`w$3-3j^z(9L!g?FYRHbb$8Ha$sB+t_S^VQqjJj(l37!hxSEm(^Jy#iqB8Uygk8} zk`qjvos!3v=3DJ--F;jzV`U&Se&8`|A# zCXD2sAz~l76qdUO<&=3D)xX4 zo&7f-bQSbQ(qiK$7Wd|3{9N5}_|T{CLb(S}&WM-h_+?$*F@P0;|5@-K2LDFHb(0^X zUAiBmUAiC7Nm*(=3D(51WT69DBU!(e%TK|ghr2d_UzUOr;vt}f;2{WcZy7DJv3dzcr1 zo9qB9>+v7s%o^+zM|6E?$NN#f3FT+$<<0h(Cr1zh`ivfnO{QVFH&JdQ%87LY>~Aht z(q3+6kIPKu*w4wBP&T0)wleJ>+QkbxDmte8fMFbL-UJU(qLLT>c=3DfNLLeh}-on0~WTmd5$4-H3~;u%)cJG^P5g zlvTczrI3Y>Xg>_XJy>N&eY=3DuB8|{At;%9UbFNHk%g&*>`ciTjY7>`(5M&cmvE*qwd z+v8P^M{7Mi!#pBqFr=3D`bo<#Xu@9Q|Pk^U;^p6BtkC*X_&Rfqs%fgS-}1wBN1%pV{- zXtUmGasp&C#-yU6jo_a`{#e|;G{v)0Fk{gwl0XLbJJ?c7q%o1nYF&$b)uKjL42o(Z}b z-v#aCLfYXu3=3DG%|8ViLee{eG5=3Df8EdGutrB}VkJA5UF@9qf*8L?GzpuhlINi4kA^cU$(XXK? zucz3j_gILf@vc{2dtLa{?eTZnB5^;#x{vKR4Y`MLCa@eh>s^Z8n64YS3Z%g}JIKVl zsjo9X<_B|9JU78uFd!U3<+7)JPR5FWbWDshdZ@rrNaf0kJg7kIc66QsK~Hh3f-J__ zU8t`K^~FIy(>RXBh1fWrol!?5c^PKf}QA*}I46-8A z`uh^S{i6SIHqwOhxh$`L#sW?PeGBO2q{aMRth22PJB}yHSq}a-@cYQGe~JLtfu4!C z$?Hh#O21htnLn06pnZQZt4A>?nBv+ga>8LfuR`8Z$P?p{GVx(OM?kLw{bmwk^>mzv zE`eC{Mr2lxqK*U>mi|4-iTD6{&q`7|y$JM@T^-k7laRX{bQSc=3D$Qkn^#uNC3T>Rzt znA09x$j0{Ek8;&0ha;f&59v>WUe^WvRnY4@(euH71oZWwKSwEO|2g9aeicl}$5MAq zl8D>ps5?hG1m%q7P8;9xc9&-M(`aDa0@ZF;Sj6U=3Da8_wR=3D zL(XS-V2L8R^7yF4ac@9B;*a^D(Wt?#ePWfPey$^aO=3D#P>V>vzNx zecdbieHQwC{ki?6ujAMrFC1_KFM{$0r5i~MZn3%{vppI1fu zk$)Wdmop#pM$pQAkZeEw_*LX*z8;N!!+f;=3D@9t}tTL0XoAM5>2{~V0Q9EQAyC{NhC zHbt|{OgWA}&Ei7`T+v=3DX`HR56^smwApW69v?v{Tsc-B!q`1|Yq^>_3wPIw=3DU`*4cnQ5Kwy;%VM!i6#n=3D=3D-IZUAe9yjUbQ;UUZGzUT+T~9IX&v(OkUy3A@CW^Tbasjd z{p!x&fq=3D1#Cv+-i20bC#^(4xvD7TsAM8Eu@T`v9LP2_9HPx;5|2$0avb*=3DZ&N<2E7_|$}m2p`$4Y*T_y4682??MZvuU| z!3;?Lhd|%c1^=3D_4D{rHno%r7by{(ISztH(u zGA-srpzFgPK`_o7j2MS&Q1NNf^BHIOG4j7TD~~BR=3D)u9*>+^jBesJU}J_q!C9KnbW z??(8Mt3s?>Wm3VE)#0PFDd|7)2s)3p_;KqEG4$A=3DXW$4-d<=3DO*^|ZnFgMO?E^9a&e zJbG|78}iH+9{=3D#@sqa*Vjmo z)zii}(uegqtupo=3D_1(xnqK|h&?&xzQbR-z^nss^ImH%3oYm667Pq*pN(ow8(TBjRv z!qbhuor;|k|2Ez25iGN2%(%#tzF=3D8kjX&VIVEn}Knd7p~4~XRX8Is^RKQrsX%t@IS zi2vYR8bF2vzEr}GcrgLcg9Q>l;=3D(|p9i9w+R^0 zc;Yicf^(izL9r^&U2c?b)}t2>D*5^OKUMzTfKk3=3DxGa~aw{!D9RsNn`M){`6vV5`L zyYK!}<>PREBJFdS4Z`O!36#_Spgf)3stmVS^zu#mBq$Dibs1(L`8VJkTh@mkq!XXz zW+oFZ`4h4Ye&aRLz2=3D?6IsCpg27mJ<5rOknq(Cw9S!=3DN5YBAKvo=3D=3DV%d}M-HT*# ze1l$2Xd~`&e2#dU@I7(2;}=3Dje;S_O?Vgq220}*1~KFeJm@HxGm`hJQGqak3d>5>5ojf zEnAUTpLCi6hFi9R)|B*NG7=3De<3z686q%kpCBpygQ#>5zr*qHP!6JteUQ_>kG##{1G zW=3DqmFw9*8jTXWI^^iD#Sr5W|?RC-XWgnRAHSlhW1?q?$%FS1#`B&s+*MZYEdip{k< z9-)1I%htNkY`S8Cy#=3DXc_AAxynE`}UcBP>1HK=3D`*lu2lk(?)qyETlU}(*9E=3DK7~r< z3f#rlc@rODovwIvMB<|YJp;*!j|ucEbfSGA6-hpVM<$%Gmy(zU;2Mcuun!`|b(~y7 zg}P~^4kOih8lB-d&$!v^>CChM+k;1_^^Z*ONZj!r|b2h4^sEGmJbLlIKp+M@yb`G`z>p z1>IGQ>XI)I`W!-eiQ36+?|I?HFpi^;7M@In6bIiw?RgP#8yYtd*}cirC&4}&K-j7b zh)_6BNt_GZ`83L>jI)sLWFMxC7r1Q|2AOj(y~7@cAziLV9tVr#d5m(`V>bgub;SSp z1aPa87y=3DMoz5|G;p(k`8wKpj#d|xP$|IJN;ozLDJ^eGJai609hpS_QgSPExNY!gI2 zds|_Hl&$EE#Gb$s?0oj_kB9wgc$BNxu~OiUcszQ2B^9d%bFULa;YL=3D+0gQuQC*y(J z98vOo`xJ1yl6W2x33fhvFUP~4j_w%T>+EyDlTzRky%dX(mh=3DiJy(|_XF6jzr+{rckF@2y@$!>^XK||dv-$( z`enE%#Aok0c%(c*lV2`~eD+=3D{Q1)%_YXrKV=3Dyd|sh~6sDGeqwaXm4uu3xU$|y?-lE z+O78=3D1-g$Y-;qzSe@1kNK>4Cl@7D#|3(wx~3Y5zC=3DDR%!_C-XG;bD6i!?oAYhoGtb zU38zV*DxC2L4A7-KZPe~6%g0!`kw(!b@h5{9`gI{f{wl35$JN*tJk~br2du8@LnxY zCAl6C5`}*{m1GuYjz}je$*hvSDbjI@{bt~0sNAu1?Jq6Rib4o0=3DsC{CybvsppR%!;jGasTYW{iBK{1LJCjJN0!xQ zy9h?I+HHpr(rlAZUurR@7286hSMZAm3HF=3Du>=3D(kL|1vy4=3DmU^Qg8LbY{@(Hc@Bv$a zyHbC!@LLHTvrNLw-#EVgqd0EGv)_2pCdYy-;1gJv9jg+Up#OxC;7_oR#d9EqPXQt|ww>$^ zbmB}92Au$E?|)GR@WIte|6Fnou2lL@dj%B5wh!j$e?c{H`x`)A{nfjH4*};K(fA=3D? zEg~yw{VklT|AqH6@f)C?{#P)AyjKZcM^EV9f6;2{=3D(ruv{)-QS!KEbA_C$qGSd?V4 zx5m=3D8KIm=3Dt#BV_v&>Lu`d!gkrOvp(~uo`n;X({8uOVUf&;JB}{{1^#)(tB`!_hJh> z%#}0=3D+PJT_{0rysqx~dJ5+ImQPaSE#O*`yWhiCf{_S9K zDYis-^T6A@NF=3Dh5Jpt*=3Dfgj!g-0=3D$72Y!4MsNz`3hJ0ehAh$c7qOebg19v%&lc(i; z;BLoVY~WEA^*DY>gM7IMc)DWy6Qat%ho45V1p5JGB-n=3D`Bf)MHIA5$vu+!}Qo&{OD z4NcHrBwuF(66_S4VE-+iHsMQ$=3D3sOQpZJWdf}a?eX!->Eek4Rbl@|FRo-~NmUKXNY z=3D~4(Rp!Q>94E|BTogcEMN-OQ-{EGOGB>o$A;x!WA$39st@nLk5H4;As0fTm1e=3D1bE z9f<_{A>hs-=3D=3D8y}ER^Z;preOm|3PGa1bX6wK!>`AUTH}{4N3Fi-9xVuV?#-5Mhk~7 z5(!(<0Mq^(ta+A@ zXM^KYbeQMr4?%xG8U8pbPOx+ONwCuz{n)Plq=3DK*&K=3D?I{U=3DaC3PQyRJBf-vzDZzdi zct19yKdB&mMFQI^2u3+82trs^hn)UQqR>6iEy2$JylY?)9{lUi*$70=3DY6;${V{0|3G*tgVC@M$!WR&dBxGo=3Db8kxZ_>_JkHWoRr(Wj?4+fgqHo zxnz!r)CqQarwa!nif7rsfY-&i<|$_d!%tvfxsI_HD|#YGCfLt_*Vzvq>T!voVS581 zZusKS$g~r6S<@Iz9sEw4btK~?yb@)sqw;`a_HIJi;Y+R}KT(%;X)XCr0=3DJe80}A^p&m`D7-m@Pp37$7mGEuQnfcLyz zkmdR#g06SeHlPT}cv>x1e)Tj#%p;J4mp=3DDL0f@!r1*)CPUL9};ywgzCI~Edmdt zb>49j=3Dhq#*b0q#3xV?9o#P`Doy|ohGgL=3DG;5}(3~?w0rv;`dAZFQ~-(lEfJvz3)hT z2CV8GY!&t1z$T>VQUa`d2gyu@2sSDwU^VSMl95`Tg+D;pBwj%I zzmoXnl>d~(_X|5n{5Q1E0f{%#CM^>Gh<5l^;(p4p*o2-vDW|u@XRxke5|2=3DyOo{v1 z7c(WkjJlOcJWM;^B=3DN^d|GC8LDdz!+AEG{+ByK?v^X`^-0o%S`;yOWNCZ&By-B|aYR>YXX^Ybob4iI>oqu9tW|<=3Dn30Z2O-i{xa?Vti)~Pc~#=3Dv zIeQOC{1=3Dq-vBdYXjbBRKP5na&LbpR~?=3DK|2oVI#c;uX~GNr_)fo);v}RgCu)iT9*^ z-qz`C*GY*_rT?FmI9JHtL5ZTS0PQnI;&;+Nuar1{EYG_};+zM(H%WXL^}k!)v zBtDI8d`9Bg!e=3DDDkam7o;#1hhFC@;dr+fR^g%12BN$+@xr*iz}Nj$_hE)ck@1-e<6 zGb)a7rS)5l!00#*Qd+;C0aYBQAv&$!2H;4I)!u^49YjO@>xA^ZW9k?t44Bh?)_fa=3DFfZB<=3DN1b;VxKMS}2p)7xRY!SA z#)R}V+-_9gRwjtLM)h~$#9mBbquiIp_=3Dk~<)s}tKfD&MR`R(LU14p2}eZPk%jv5pI zZ{Mql4rVodlZF5tB6vp=3D9eO#6!4R8J6_y%!j+}-HExn04;x;vTkPYJ1@J-7wNnENE zM_q~jwalP89&qz>kpzn6{__T4%{Cr=3DBpFCge;k9)GK0sf7b2OFs~4Js+YAkAjJ7PW z-d#1?GT(YV@VS;uC8I=3DVxg0F1kO&q>+^A);7H~S^ny5cNV;1PVW#CoD@^s0PZR8pk zftLG!hgOfPgDA^|bc^vb5oG=3DyG)J6LF61Z^E=3D4Xs2q)t6AkvvUjIxNc)HNVxU9Iy} zp)#SAVJWI#3yulvJ4tD2mokMGdzeyw(OHUN+IA_=3Db&@gx<4@``jZ#if%B!8Fbk^nk zt!UuAx}ly%5q>Ne4#l2J(6P{)DyQMk+DfnM3CS&^V#+G(Mra4oxTC|GdjH%x#(!)qFTv# zU1xd_OoQR@!v4nnw32byB*Q1O(IY~JajC6joHa46=3D*VQ;a4Q*h-LTa1W}V4CM#<=3D- z(;o-@UY&j&S~bMP|G2?FR>?>=3D@$WM6pRd!OhMd1ix+M$a!o>bfj6KWnOB#m;(;H>n zykp2%p#=3Dul_vo;_x)2g9c|Su}=3DftDjBk0h{q+R4fYRcuXF+V$z$O`C*ze@QS5$1uG z*PfVbwa*=3DGxy%uFTqi+5Mo_QsJrsT$wLw8krZ9S{x!`0`&=3D_i?EejoSb%vBN{A~w* zgo`|?Cq9M1AEZDItPEpB&+mhHnd!e5$EM!S9QS`~$V)$>vmF1SKHQ!UQld7G%+qXjwr9T;~I!2*qN;+P0l0F0Zz2XNc#B zt8Lp^;__ zUTxb_EE|v`ueNQyEwr1w+P3wvEJ8wFZQD{UKZi7VwQX}-9z;T3ZQF)h9t4}b+O}m_ zFe>z`ZQE#(kXPHbF(M(awryiYLSAj###<(#jJ(>mO%S@tt8H7Bg_}wJYTKq?ZQJf=3D zBgNIW?UzL5)wbnyl9bp@sA4h3?#=3DtCQx2&Ck&(_$*w3zP;Lprv6BEoG*J=3D>-UsKo|l92&GV_Ft&_M`hVZv z=3DgN)=3Dy!XGg{$Fe9=3DsWxDv(I?Xz4z?1x2in6fcy@JUR2wGv`|E~?F=3DPZRNKxZ$xhX_ zbD%(~ww+EXnq0qz7-^qTZ3h$f1uTWC?OcGiK5zmN{9@jFOn##ZSGI|9fr{lNEFrf7eZthwKxu< z+AjEbGO(z&3qI9~QMFz0SpYW}Rc#l1{*fPjBC73zFE)S<)pj0o`5lJQX%r@^?Sj46 z1B+_Az_LY}sJ07iTf~WKyTD^#!af$&c7fOC-&m?@yTB(YP;Ji^=3D?tScAyC!!okC<7 z-AtmWwy8PC2_O=3D=3DQLC!$T|#6SeV;^8ZU0M%45L)it7<#auL*4v)pn#pn@`ntB)N&r zw*t9H^*aosZ3tAgJz9tiqX!7&*hZ%dyr1xJfmHTImkWG{@I-;%60Q-*o{wH6ko^{=3D z%FFNEM|h3EZG<-qe4Fqtf!`25ERdCtJ}q!O;SL0%+Ab((AFFD+pn{z*s_lZxx4;1& zsN)poR9 z@=3D~=3DO9ZcbY0Z7`9YCAfOw-r%sM`tYtkKZ{8Vaf3bVp9=3D-@NX0wAVE~y(XVZ)xmC3t z{nox65m9YN_t-Wwh-y2!S0YqWvetfwvP89Al-|Z>6r;k$b=3D;Oz)pl`zA09YFwOu^m z0m>28c5$P$NmSd#O)Lw$0#t4HX(|A}-|2%eLE&^>p*0rOcAwTJ5LC6@XV^i&P;K`a zNlvJ?`;58+6jg2aX`chEs_j0LPXmU!y3bT;JXG6#4kRl|rE0s+;By!e)pnm*Od#)E z;T6?(pLsJ`M^SC}nNNomP;ImC31v<|wN3WtyW^tTE@^!O6jg1P%(l6IEUN92IW`@L zt7^MsuDuiyRc)8dw>e;{+AdjWpNSMzZI>*PJgV9*SuA;=3D+Geqo6?+E*fUaX1LZnRT zIya@$O`%L7x+%*+5Y=3D|c(RK{-M73SA!d?%$-(jQt&PL{DBDJb!NT}M5RX+@Zsr$@$0WeYyHkcC0`(LfIoByS?Q1AnUYY7sMob7aM?s zERy3QgreGxztM)fhRg{b5sC>v5m?#veusK-NoS=3Dc9mJh3k+s)M6s%JU3kz@w8{_gv zfJL<(Kib3o5!H5lxnioeKEcG+T^N^QUMEy+}ViE6uFdI%~js_lN&0;xRgmk~(ScE1{d zRBiXGC9LrA-cVk%3L<`3wO!tD5O_qjT|S%}=3D&IT-AMp!Z*rM7lAH_4gs@g6eP0g;V zw#z#n0an#^`54kwwOu}zSXJBQ*&&RkdBdfIO<&E?@X0=3Do_rc%Tc`F;q3?8{=3Dg+{SBz8;uEUSaYj%Q5N_|qS`KB_64~7&N~Q2wOt;OOG8xK z74wVm6rrl^Wc3hW(F`Orp8%?AJ6Y2Ph`TrS*%b@MkzZ8X$wl+YPmM-$u|s}UZCCzV zU&*N2uG}M7Rohkhzh(xiwyO#VRkd9e;qw>oSWn|uRNGaBCm=3DcSTLh}w=3D0%n&Wu^Xa zs_j(OZOALC?NrT;fJUh;>g?2JQbe7ddPX4C*{L@PMV+1MV+*D_J2gP@E_7#Vs$#0M zQ%e+6ot;{xnCk4*Ig0tHkXomh>g?2d#Z+gfo=3D{A6cIqX?RA;BkJW?*z*{NE^RA;Bg zE9MSF3SP8WPpY$1s}xh6o!Y3F>g?15imA>{y{?$gjj0b5Q=3DOgqN-@>hDaR`^sm@OI zQ%rSss!=3Di3*{Kf2RA;AVDyBL+wM;S9*{M~Esm@NFrI_mM)YXcq&Q9H>nCk4*6N;(M zPVG=3Dkb$04K#Z+gfzEDhccFOiiJ*m!4MHN$>ovKiL3G36WnCk4*M8#BRrxq)wIy-fS zVyd%Kmnx<@JGDVE)!C^{imA>{ZBa~hc51s~sSV=3DKXQ$3Jm~FpJG1b|r`xR52oq9?!)!C^XiuppCdP_0Y*{P2d zQ=3DOfg?2mimA>{ZB@)isML#w&USsSnCk4*Ud2>r zr}_q@EUL3p{S{N4otmSV>g?2UimA>{ouQcO?9@8NRA;AdQ%rSs>ORF(XQ!S}Om%kZ zWyMryr#@6nb#|)6kvdSFooZA}b#|&lG4IBy8G=3DQfom|S5FmfNNoSx3ZkEwEO8dnzv zy&db4=3Do@@~T8X8~dK;BAyU6?#*%fHlB8-Roc?|RNhjx_zf3%zWJ$JnaPesjSpLstf zR4*dU-Dei;?lZrJgur_UTobAvqnZ0Lq1r|kV?ssjnotqDCRD_(2^FzxLPhMFP!SI? zCRD^(6DmfsCRB`MO{f^jnox07%$iW$hRFZIgz8=3Dh_+OY%{Tb4-CRC3hk~N`v37CRC)m zCRBor2^Fz1p<|sLnF{r#QvCk}aQyHvbPG3^KYeGe;YeKaG*za(F zT@xx&j0qLV|Fa1dx$Z+IX?3>=3D6_0xVPbO5t^S?KtlKQ-X;zI3&t_csv5~r z@?f8N27W^9t78GA!W~v%KCo*-MY?N3MZ6yqs(U~-CRDVH(tYO0Eq?*Ve&#RnBSTID zDJg;b%%nz1(S7EZf&31`C{3nxpZOypGK|t>O81$)SdXz)jxb7-Dcxs|3z1=3DzrcbU3 z)pB5CLZuZ`6DnG}xF%E)VAq7|VPNbt4-jDtqrAbnCRC3DyCzg3%{8GCar-r)`Z)#m zGNC$6q%({@jX?LAcLu0E-PG%ZKNW`02`?7tuzqSc)sIl^ zrr7hwZi@Y8?518Ld_=3DN+MyPgE0hXqAQ)Pr|H^s_}-4yID327iD`^@{AP_grk2~`dt zc=3Dk1+S_q;sp%SPjRL7C3CR8+rvO;SRkSO!hm{2iA;>LuEqbYHBpSf`RA3!oDRBeD* zhsb11sF-L>s0c$BA)S5i%H-n6llBtd*My4X|E&oX#RQ7*H1&ffR6KtCJtkBCZ#)OLJ zqm2pGzsSRvMVL_0B+8gj(Qd&tp^`Qk6DpQv_L*Z%1Htci1|v*RI4!2M#>Rx|5D;7w zDjG?N2^BfTgz805TobCF0J|nsG?AiN)Kqd>VnRh$v(FqG{0Byi2^AB_J6Cv(3DqgA zqcNd+2MpL}X5SOa9Kb#^*=3DaCk;>Lu^#`9>_glYjIt_jt#z?N%5buJ=3DV6Dkf^)`V&U zQnDsg%#$^tVjk=3D>vslt&G-^ZFu?!(HUAoRqIo?g7Od+}{7lYuMQ1M8;YeMxG(ESb@ z<#(QBZYI)V$_$B`P|*>xYeE&oW4|$>((dCvb7?)voHfjAOsEndb?-ALI_k+{OsHs@ zWK5`3ikeXU7v3XW6RKYUyCzf|3D<<`H=3Dw&FRGeh42^D!7&=3D54@5n|VbiZydhsIEa? z*My4LHKF4D*)^g11L#>3s@K_ud+=3D;vOsGC$8)Tn3@k|96jR_S8)HR_Zc1@_B220k2 zstJ(*Gr1;IG#E1`R9^wQCRAa(ytpP*4ZyAm)kt91go;^ppE>an&6vzSbK?3((f@vj zmR^3R9tnPjmTWk?FCn|VWDCeTZP*1diN4GR_#KM%JGUS-CR8(VFOfO%8Civ&2u$pH zzwBmN4$}M%jXYfwD)JZ;D*in*w%)Ol1!&$RCRBxZ;d4!>IQ_FGRE%Uzs2ItbP%)A< zp<*O!Ld8h83DrF)BS87C2^C!+`<;FW1C0ob3DsOmP!lSFYCTuxmnfJg{p*bw03bLPfW|t_cv z8xu@VflJto7^xu8oT`NF6@n`)41x$7u}?~jQDpip>IRcUGSL#5-x%*kAo8x}cP2B5 z%Oray#&i&mz)uOgM+ok@1}+9n^<=3DG(}cw*k^)ZOsHs-XH2MAKqZZQjR{p8PX|zSA#_cs$l>b)LS+T_YVrwDlSgHTp=3D5xA=3D{!NTs)ti8Rhc)iG1)bhZy0NGds1{X(u0@q#Zb8GM zN-(#eVNoTRThOqm5^OB01RIMg!Q6s|MU`M~LBpa-u(7BTY%Hn-8;dHz#-d8Fv8Ymh zy!^wWO0co05^OB01ak`-7FB|cMU`MaBf_Feu(7BTY%Hn-8;dHz#-d6vx1eEBB{+n6 z4~r_nf1=3DD~ij75;(2YfvU}I4w*jQ8v<`#7N3C+tbXjoJUomnZcADU>4akubDoMd*)FP?N?ndrUybeKlb`^7)+#j;@p09 zB>4PTL8|4{Ip{&}nj@4i(~9U%aKxOSW^Ah4ufKo-YQ}-Q4q0lSK$@G*n)72n`v7@f zM$&8Gsq39y|927C|9&I4ssb+%l<583o`ECuv;^R19Cr8n-(?~PA<{@|p<_(d8fipw zKsEv+hSwTt#NbvP4~pC~Z-iWVZ;asFJaE%T=3Dqvk~`G7WqX6b`xmH-ZHsYAW(=3DZQJ! z>`K2g0b|^nV8ZXWf!x`TiI(-g{-7sMg<(Vb$HyU^@Oxua}j}4ujGYS$V z+q+#_weNP&06e%z|FqMEp>LzK|vJKL;FiBu1w9;*$eHmx) zW*B(zbC&*~mqM_pyg>bOBKXUZ;oRkLNA>BC>ndEo!@q?YWqj(QG72eLa0y z-)*M8?WY@|0g!(SA?PMfVst%h-mLb!do<^DO%8fzo6O%GpG%}ku5fGE119@Qj1OjF z6m5|?%}Pis!&cxkh;7=3D*IlYnv8`UfgT1nz?UfrDlWQH_0Qlyb4(x4RR z0B${q%|7Bpq_0JkpYA?OqDnH1M^OCFvwgOV?Abm$l2zH__E|IX1ifFmeRi`EItb+L zz`gqHU6afy5Cx0OyzlR`qomJV;nuL-CcE^Rw2#G0`$ATL)o=3DQM?VBRK)rGk9)|Bqv znnI%V7S|3kqqo?+)>oKu80YUUG@hTK`h&^TgiCP*t!eFHya4vFXE+Qa$ZmIz+yKtq z5IpMe!%5|qk`27d;N;N54_^t)M}51q|38iVQ_%_N0FRTz%0hpp-texw=3DwYxFAE$L_^ zIC3Gp9!X=3D$Ok;l5t1;(+UmH`_qcMU_W6Dfpe*S%paTBtQDVN6Z(N;$0G=3DRF^Om1Vw z(BrIUF5hmv9A>#IdFJv?Br}n7Se(+19Ye-;FYlSk)Xv-YxKo78{8@f-TH|>G@9oak zUVj6!Pv9-r{|&?6PGpC5yQJ=3Df$2hm*!GZ@UhnqOQLfoAcbqw%IA zX{P`Px&A2R>)#*M<|o@j-(R6MQlVWvdx!(ofiCB#L4QyoJ_E_q*6k=3Dup0*|#9@I-d z_Ot!T!_nd%Z(Z+n_i2lk&HVIw+B#t70Q@&GzVS&1xMq8`6At(lCJ(>;UYT+Re)z4s z(4NZ2Sbh(fhk)PsLDmZp?6c%ZyE?C3hWiu`VXVa0{XBxVgx-fRe1nl{JlN*YgKf@^ zPN9egTmS#;!8V5;Z2h&PkST{|e*WgQ%&%sCIcEd=3D2VP5xn)&7MVa(s!EbKUp6F6IP z(#$XLGs1xL0z%)D%%Zk_LO{LO;CUs;#INwptwT@&?w$B`NbxZUI7OHtFr-?LzIZQvd&K}|+;UwvMi97O_;O)?{Y(^&M)6cDAOQbVDgc>;>iOj}-@gU-} zpTN(eeEPX{{Pr`5bmhOnJdVxUuFR*OTPGxu6Y{@ek@@x=3DNI4~+XJnnIeJvtu@_E7- zjXxHVv+_?x=3DoH&8K-$^)w=3Dfd7-$vy8{C`tGrTrjiYxCd4gm8?X+kE=3DDb&Q|eeEPX{ zjGx>5FBma?Zu9Bq)@igSK)~Jk$FP^0q;8w@XJ8DSf%XR|=3DTWQRDwcX#Nc`M7>)FWg zV{Fz{gjSgQK+e@{t`nx8TjyG~7VifR{~RHJ%A3JvwPmnLE||hlfXSFH+Zu^9@5B7up+^|25sfFDA%&YQT0vvES^o8_uo0k?!lzwhQLrIR(&uwUu zWT!D;=3Dsy(GafZ=3D-Op)p|iQlX2PT7J9K=3DMCgn7!p6X1%sEPbHWFJyI?3QWQFPHwqO{s4~?6E zWFL8o1I~%;NA}gl08-%&%Q+pmkY<^Y0XFG{^m7|&6r9tAi>$EhT4V`{pWEn-JX;Z_ zpWEooHvpnI;#;WH_gKyy_>m#!X$vU<58OiakrFupf%7$jfP_Atzle;67$+YnAfb=3Dv zFCvF?vZjQ{&^LfY8Us2*gvii07C~qsW>lo;;|qbqIS7hA)r#?uM$u;nU>bSC^mAME zc{8vtOcT1IFQ^))+Z03s68ioNFeJu+MSI@`&dm`Rv>xk9`Av zeEDZUQjyobl>+ncz;r9}NlM&ut`zAEeLQ~=3Dp`TmlD1*i$MY8v z`nh$ggvijx^A!;q13H6+$j~iz~GG)L#@QsR_rp94MI>`c6U+ z`4hXGXD|X1`e@1*kaIIWn(_sly%;0kH3ExR)0+j>65b_nB;msX+4DY{@&z3Bn~$b^ z0f*1?KHBUBoG3ycEinU54dK@UM-ci@zktKa`w9e}OPB!6xgM8mQ91iK^fHFeS5(2y z5A%>oQDrqCcz8&o=3D;X@*`$URf;7N;;|3=3DM=3DUJ}Sd8bvSjC`AbmX%xM3HFE{eK|rF+ z&jKsR>`ak(zzVWRj;6%DR*149MccRFCrs0oqMiKvYjhx)qK}gDHWQ=3Dtb6fNdVQ?+d z+4ru@7ZCU00Yu`*SUL1_+ozTn7Ch3UAzOj^3}{A}^EIx&K5dgaj{~;y z>F2g&uS9SfN@^W&C@Y74Ze!^vA&mj!bu{G*$svt+f2z5{)EvbJ$lsBLe+s^MBirN) z&lm{Y#IhVKrx{&P+QdT`0cRG%z7&2WfYvyNer`)!xkFqger`*Ltp&z$iqetf#L0`& zQ9Msz(Esb6Yy!pNl@Sg6w-jnFF>JBzsABJf{ewooKBDB|#&f=3DEQ9K3`Fwj=3DQc6N z=3DD`RnpMGu=3DbM5O9aq?fm^iRyUIbe}|`ngRkwB;V2e;F!~SR{Fp`Sf#}SS)#JwU;O> zUW;t#I+h__N14)fZpts*6p=3D}GH|1ue6mq3V9Bt15z3|5@Z-xCj=3DmCd~3OMgGHxs`G zFhjya8hxwjDmAnWFw(cC4mi9Ole=3D%7b{`LE^sOhEvxa$d=3D;yYqc^F8Mn*eh@KzqtM zrcjC;(kQ$0b4qbgpR#*Y3J+*p5&u!TQ9Eo_Ces0Siybttb zxEfti_7EpoZJ2&;%N`~VPXz!!LfjmtpWCv>ShFEv`nfIJ@(}WNgjwUV$B8G07ZE@C zByx3z>F2iWDIQvwZROCUqAXnaiNM6J$886!lFmv? zI*4?#B1G0+Gf}WkDJ(3Y#-uTn2mV7rD5M90vZFohpF;Y%EnBXbhcwELQOrXcWh)f( zkVe^Yig`$*-xklkQl;Aw2{^eJ%ffyb^zunIWk!=3D2=3D!!wlOJW#|&R+p5;>kJoK$MU_ z9kV+*SFQ~!e>19;oF@@q{zlBwH zwS-A=3D!C6)FXNag2Kev_Fp?P+t__?iAKesvbb6eH07Cbrhb6Yi>*F%VZTez`m#Pg_N zn0{`nM!f-Og*PIo8qLE7PMCgft2%N}i%6J$ZmY(S9uISBSB)i3hUw?FYFr6;YQqFS`#j${JEr`ALa&D)x6KZ zzcx%iw^a+sb48ebZmSlCa3ycBs$NFH0f)DrfWzL9a}{w?LEza8nZoP@m&g+-RS^&Z z4sT2WCl5HrX2eMap^OB!R|syt0U(I5`TL~A8AYZCQMZ6Ij!Y*b;5W{@5s1921)MG> zahYV##F-A_+4zaEdxYR#TUU_Ej*9cPtXDbJopG+~8gSBR!c7=3DjNV=3D7I*jY+tI;ejG zK`PDe(iB;#0}kJkqx5rIwPZ7RqiN2BBUnIHKLkmZinH5FadunTh7QlE+zvthN_BRdLjjqpFCZ&QXSbP}PXVzm zBQ%FHqI7ec*-U!$DwL6VMj#JmWZon!BG zor-xVBeO~|4`pOFD(0b#%ma#fC?oT_;_a9!nGY26P)6n}#XOXealBG44`pQfDdwS! zOrv5R%E)vm4x!sKGZp`dGM6dlp^VHb#XOXeIZH7QWn`{a%$@7ZU5a@qBlCn}9?Hn< zP|QOanfDa)P)6np#XOXev3*ic9?Hl>74uL=3Drb00+A!8JP`=3Dc_<^ZNwJMJEVD&14`pPwE9Rk$%x=3DX$!o`^>%8|P9P)4R)F%M;A zS`;^8qGl#4<|B9JP{llykvUm04`pP|HJEL`O)(E;WbRkYLm8Q;6!TC zn1?blA1UUcjLZdosT&VvWG+|CRVs76;$^Jc9g2AtsB9GI0rU(#m1xn%GIm>rgmS!zch z`fXAp9jLc`@rB^57Ck5sr# z;_}Sy3UcF{t(A8_Y*T&)@h$lv*k^u)q+Lk__+T=3D~$6nu#wAO>cWuHliV;%wLFObwW zp0t(hLVFn!21y66By1lnr!h_>X2CNs=3D;?ov@yL})5i5V=3DNMx`73z&w8{39ugOLFxQ z;GBij#}FBCPLhl;XTj4C+Klc(W9@+uc^*a1vyzf*E!H21r1MG@IgcU>aYYRg{qDTe zz_Sw3p~s!L!m<~P_x3<^y+F9sbkAfAwCCV>!E|{0oM3XYmcPK4Z8}MEpNx61*rfgr za;@|`Y~dlBpflrVvi_ij>P12o6I?N2s z>BzFp(B0wErg4ss;2|D+!e+J%pP~AL*4&kC%>=3DgQrzp8vsy~6%e;U!I&rPO>`P)Kg zmUahu*O<}()Gmp8(IJcTnL^CAXbu1!c zn0}NkVhpZiEuxM^a06k;6)E!1LiBb-tCtu@?1hg5kXq|lQ z#`{r=3DIuE*jHF)a21kZH<{d+Suhz}>LmLs~*2-(az+ZI9=3D8O{Hu0FLH+1RTv6F2MmS z47VB0oYSq7tg7sQHk#C@(Zy*<;=3DFWftpPK8&_T;xWjo2Vlgy-0X3GY4Qw4_!YBl+E zuN*5OL|2XqvvRb&LiQN@VS{1E9a=3Dv2dM>IXsomy>Qv!trz3!ie;}C@^+WExlrCVEB za6EIl$cWR`cR&+8xU6xE$r=3D~39CD8_+IRMv=3D4|J^V61B2DKslYwD04ZA=3Dle77@g{o|em_Klpy99-N7@ra0Tfn7IY>KL?nFuwgQq61yU^?@7_ey6!=3D?fMJtDO=3DE;{3Z^a z;wrWi2U*{AVkj)SgEHO)mLeY&+naFvc0ZS)%DolaJ^z)}w__?;!EufcH^l#0r!D`=3D znp4XuBLB*o(|i&0_i$aC^PPWX&1r2WJG~3!bbA-@cmF}FU;d!gcLM6~znP-phz4Qc zRS_+J*eV3yN#F>q;B0f1-sGb~R4#)GWZVscs7M1O=3DNU!!HRzU*D!LB^1GWM2K;(SM z0-TU4x``tpRdf@_L#pT|PKH#`O!r^BPWE7qWfM%P6-=3DD_f?3j2^&TC zQHY!sJ{2K4f=3Dc4E!?!RJxBrF6`Qd*@5UI2u18r^iP0k;q=3DnnT(bccH?y2Cvc-C?8X z?tp;1!^dECgQA;t+Z;BEZt9vJwendj=3DdwJb=3Dw>5Bs^})PLaOLybDfYXx+#QSZ#RMl zUr*@IAP1P$mH{S}Ln+ieZ}thVfQs&jQFN0YF^X=3D%M$t`NsETfuS*VI`fqPI$@MeLk z=3Dw?OWW!AEeL8hqXEMi_&bdyrZ=3DcioxL)Su8bdwq}itej`{SF5>Viet^6sn?|WubIeJBtp?GJVwziJVwziJVwzi z#ZeoZ-!Aoe1Njx^8AbPLSPnv}=3Dq9rjQbjj0z24FTL4Z8)M!=3DOr`ieekrNSMSL*;hl z9&|Gl-K0m1qMKN}5fsWFy5<>0_j@3RRMAc2brgrEpXe=3DAV?&|(D1KzfsVJ2a=3D#7BX z04W8c=3DnkSeeurUzO4NeU5aW~!kzs)9)B;g-w+fMAfQr=3DuQFKohBE!I;2=3Da`go9g6{ zD!R2|s_34BO#@Fz72O@czK|-qsfC21dw~dJ82BxP8AUhM&|#zK7HMIl=3DoWEd-c_OK z{vG=3D`Y!uypp}??FbTb8t?i)oq!@wQ{1)}JtJ_dGG2m{mr7yJaX!RaSNh5_n=3D3q;Y~ zB1DD(YK03#(LG6s31Y2Yr!Tkbxx*)JcpqvnRPN1msUlS-w{C5S4>YjUt_`h6)0k$1hmja>#$yE3# zmgSjR1=3D7SAo?V0TkU{++4y&(R~;*gpHz`5!#ir)_#Yw#2Y~@T}7yh z?rLPtGm7q+z#&z1)1j>uQbo74DWr;SmSwyVlr}9!1U`BZCMf(Q0IjijBPebCDG2I~ zpmf*{4FN#cu?!(HUAoRqq03WA zp-dsVDffdAF^cY^S-Mele*`+*DoXeb!UPj(zi);_72Vum%rlDap}-+kbZhsiqMKyS z8s-&m1ZB-sY!}>w#ZvyzwX9<<;(12VO-*cwOKRCYDn%9D5Au;Iq>ApxfFmJQbaN!) zAyss51w9$6Mpu+Q#7R~gQbjj;8juG1BgD-iRdlmvLqe+PeirE+Aysq}PYx}@3R(6f zZ`GY4Rdl}uy75L(HinArf~+@!vT5ar=3DNUye71!d8pzK)=3DD2|q)1IwNxR&NAl+xa+W zyb+Y0bvPmpGvygY_Z`3?RdiD~X@ykLO+$Srq>AqOz>$zDx>o?lLl?7wyO}i^Qbo5H zbmNVn?D~JoP!=3DKC@645uDsKFvfrRY#k}nbHv|$&-BpSr!0WOO5JFg)WZvF9r5H z(-1lf5frMT`$A+Y+=3D?1kRtr=3D`w?I{N3sglnp;{hR)$m-^4|^l1YM{Zmcq6D9{wiRe zQFQ+u`${2IbbkzJg*GCn8jabCxu=3DTmK78^IsiK?oc!=3DuasiF?G~kYqD!Pvco*Ys|H+ecks_4E1cy>q?-PZyy3aO&|Zs4wvD!OSF zzcQqXZqCb7LaONI1-B-oif+=3D+4`KHQif#{H(AS1k(M_H!LaOL41AT*4`5v0>cX<23 zzw-c>uw5}yLHHMbWL~oqTq2dPl}QBf2`kz90++BEF;YQpAc5@_f}4+;ZxMFvJ}EIq zk?9%K&F>sWrt=3DW+8{^#wMBdf>&M8ddGRdBaF&)H9@l(R?5rTVdQS)8Gj*9WNtXKI7 z$Qk3j)PR#l6Yj(8grvVP4?9b#Ob3;kZ>co9OH*W}Ru2P(+whuJwPYK33suq00xAa} zC{#uFWMuO@;>gh`y2&Bl2vQZ?t|`cRBS_6Z4RL2Vf;^-6rt8^|D!yk$QJ;`1zB>SM zOIOABjpR3q??=3De5if@X+#5Iax!A9{d*eJdQZ^!I_;#;s$dx!A9{d*eJdQ8^yO^qxcqV6yJi4;#+VdW zoCCKhzfpV(-6*~V8^yO^qxcqV6yJi4;#;s$d$iTjpAFdQG5$Fif^Uk zLV@C2uu*&qHi~b-M)57!D82<7#kXLi_!evw--3x!A9{dcsL${q4*YT z6yJi4;#;s$dzKld*OhCfYw@kFLz?@Sv~`sf?U0`LQ7QQ9i(Ud2iS@-QksV*(XB8@qt{_u=3D z$sfrthba0-D?kzc{zb~qLlpgs+2Ba%X5v1qO+3Uy6#Ywxla`N}`^WwUIT1R`XlS+D zAqOuU7{Ex1l%a+~dLhqP44BS3WcXi@_9xz5Lm&vBP5J|E(LYennzJAmsl*R*F048p zs(g)?BX>9j0k^V*|H18f3mUS-#G5sXyho>5P*9dsmH1snd>u5v&W_*?x1IDR?OAz7U&0w}~@*axH zt{luZSk}>)v;5fW&*|rm#!WIhH=3Dv?5e`W9A4^dSnmGp8q*95%W^v=3D~*XHs_|ml+vLX5@5}fE@C%pZ7il zEHm=3DIP<5G+-(i|&H*iM&5ezaZ$=3DTGKOD5%uNWn*@+c~DJPENPyy@lvpnQq@u45u5l zp)E|+>2{Uj-`{jwH(2Ca?1nlBVxv}}8_qI$J^+2P(6gOuH(PBlo8&LFAA;Uy-pcX8 zAOyWfWFv=3DobN}caBqxr{C}AS(1|MgHY`5X85hvl`A)GdYWGZxUZsAjf#hV{{{mB0A zG#%t6J`xSA`MO?mOvW5K3*RBjjyu7!2g@{l6Y;txPRt=3DPtzUrfI{x3TiMJqW$kJ8d zA1Wp8LcFe)HPATEWO14glWF`H)K914aG8qD<%r*v0rv>GNG`6x619TTN6OS4IuTR; zFjO<>y~4D5_+YZH_cpX^lZI`=3DTij*HH-!I%Zl5P|UqW0~oz6kZg;h^J_B!w5C{tFQ zWD=3DzI#fHP~#Mvw)aoElT{a8Z}f&P`yWnF1M-_UvC^g}V=3D$C#PQaq;2QzsxW_gQ-7U znQ*d)sjHECjY;LyKg^_p-u8^4$514zA&XhBIdF;20k<~>@lS>OnbI+-uR8#1g&Fis zest7mZ!wzLLfrbnG#nB7u-X!T&2H9i1r$Cfkz83<><@+6`Y4%87z9V@*Y3iLSm+hsMC;=3D@j zMGgLB%Gkvgj`QXtsi6+^y8v29Y;8lVX_UDl(Kh*vB+qxK!rQjM@MbT=3D_z{{(E<^Wt z2Ny(VzFdX1M;WR78F&KveXFTe5*HiJqII!WKLfoMPb{NY?OO(F7H$FZgC&bKnu_$M z-f2=3DR@C@96*}vULrvBKT;_XC+hCQGkNAM}Ye-pe7P@dv?1-9m3gJn%etho=3DshXfS> zho{jwbpY)j8JPn*acm7$<>Yi4t@fy?Q z=3D2TscNpYjOBC}n%JG*%GUdbNuNFS~_QY9hm&kp)o?+!ZHdkI^{UU~pEZ|copdTAgZ zFs?G0*Rqpldv9Y#K3sf`jJn!yHyoSEG1hCLQ)IQTs|Mg|e>gx3Q+2if$~4rh_TG~% z+!4*w#lTq*-EJ5@p}^mI$57xApkGcoB(@%hSlczN+RQ`IVeBld5U3FaOg93Oc+s#o zc+YYLJWT;4s(@ei5`gu|tZ#oc0n>;UoQ@j+T9~TSv0s~tb00oV zl52JqiLxrbXyk38yyLu&Qy#CJ7b%8BxmrdqF)Q7dNHWu~%1GYDoTqsc9AVDmidy6( zQKn&gv$;QU9_N9_%;nKTjl|hgMdEC%L(`4KWDpY1^e%v)ktc#a@@NDtq&EK)s0;Mw zO8{OX_%*|*S`XmB}K3U>|t2`xSUw+?qdw^`IiXG{_p$$)D^SqNU13#;l96lsYa~!`DW>*lxZeT*8*=3D3t1<9fO)6hK2TAI5d8l;nKz#C>W^$3gzgfoFbC(+W z{+|9O?&s<6`DLa(?e6V}(r@Y^{UIZrb$!Cnb@5=3D?|1hbn>p#AedZN3iAT^Ac-?N>V z$-Z?PS7R2tOBrQU8!q%y`^P5tm3ZzSDfH=3DhsVm9xcgC=3DTwyI#fg0&AZBTVvJro5BD{;Z+19!;1aZ2SJ| zv0y*-xT04*+-K2MkcIt(TkzT?Z*P3Lk+-)n4#5DAIf`#TJ3NPi&E~V;*j0R)+Tr15 zz*u=3Dv+u`Ah+BkVhd&R?@opExO|5eXt$TV)n;!`Ypr(k`RdQF6l6K{vFdrkz;c=3Dxr6 zg^lO70;|D@HQ~>E*Sp?h55_~{M0usU-oyQiv9g13y@#g>$I2_)A3Wr#--M>vHwe!- zyy)HN>42DV@SUni#7_ew1*7GZB`qgST3!rCK){*BZ0M1mHQZ*$=3DZ|3I$6kMHll#tk zq;$h#RJK;$Igj)(Z8PG0$L#VngP)JNvQ_dVl7ik%M~W0{SkjMc3nbktS>fSU$vW`X zZDj+F^Ki>-H{z3I)84kPtKeq9pT2;uCANO^dEaVP|iTC zEdw8&g1eV##7Y!upW-!pVKirva<{ZF1%L^#Jxfw zR{VC;7_OAO@yk2zayFL;2XNJY^tBt>zN2R_7A1 zRyP5(C41FMZ*AYL)%9it%GT=3Dj@s{-)lR3vN?_AF)2p#zm(yaE^0Qun_+E^%Td-I>#D}UR79{Hv0@6UTeue{c14jMmP z>qfU2NoK*h1C@cYJZ3IFwo@*?Ld&@qc=3DCCi#1mzuXvUipKlkVlEt{3|NkywMe4CHR}bR*irB4SVVoC~@<_Fn;T0C$@A zVc2JvIf**7FrPf@Z$u2A{@gQOXM|!IlMe*HPr-baehPf@EbVE*8s3|;`9-iCgp{`5 z8yWjP#qkoe+SZsfZs73-&s*mqxNpE96Dy|O;#rBSjh{ev#TtkEo_1J^tRp{08MA)t?v;zl82mTy!-Ky946u3Wa7fwD6%Nx!bQ|KmKVD=3DEtH|!qb?l+tp z3`f4!4!b;Wu{XHO^AhCCJKVPbO}!c2H=3DJvXfc?C~J!O)zeLmE)5N(pdEXU1Vp2EMw zw9iv`?^GGr<;aVVJc++$%Gkvgj_}+{`5e=3DqgGa{nQGgbv>XZ09GyV57hO$n2OnSCI zMtPp6OsGW#>u=3DLu*BY6b zBM-G4d)yIF^(~WeH!~8EMLzakJA$e-yo9vhv1EAzf532k!gBqd>&d}4@GUHkM0o>m zdcqV}VT9?vWN)hQw!Le3vzu!Ful6Nn-tRKC!lQ_M?5O7{){OK1eb!wDCvFPr<8t-$ z@VQt9Cp^>)&UcuM+J#noqIMx?Q*SOApP5L(r~OV-8}6SkKml@>yL6eBsuvuzQ-+C` z+S$rv6jFST;(G$GwY`Rm&+WfaE_r_lnWpgC{Ii=3D|-czQU6y|ukM~+JjombUvLzkx=3D zDHU6uCY?%x9870(wYS}E=3D)AO0_nt~K>%fb7Njz(RVtD#xFT|736*cv|u%ESgUp|d- zxe%X~3v(yqav?q|7vhLv?uEF$$A$R3O*xMuO)tI|dPp9-LhAYWM`0w_qm@hJ=3D{{xN|5_L*HW7zhc(!HrV zr9U#f|Fq78!^M%lOS$CDe3hYd`n_uCoKd{k-FfvZ z!^7ENqmMb-tH{%HeA_n~F3yS4EEoLR8#?F2P@(UWuPuys41TiB|8@7|@1^Y7Y0Eab zJ8XP{`)Lffj4R`)*kg9m+zT)T}FL95_OuCVAc@flj%Sc>C zEk+FW-tT4`;$DiAP3lExCiKnH8MyeS&NXxn13IYtMl>B2d_I8+{?XoMnmQ?4!Edq^ z{G(Lx52%1XC~3S2tF%`5k5b{^AwEPZe1}YZDv4zFTBdl+K>67B+t)z0%-(~+WVOF- z3TLw(G!@TonYMpxQu!+Jnn~67n^kCB?E4yb2pYGu6pg#Wju;6Kx;0q8guN?H8m^Ga z9*=3DtPz4S`C7WW`lFSqmGNYi_~qkdwp%W0iPCaNr-yKt51ZTA|R(knZ#ye=3D|Kd}QHg z$O$X(czB&KEbqXB$_a*H2|9Q5+8z;H(^OPd8&W4a&%WA@L$D~SHX!ps)Wf(8YsjEV zst=3DLY!nj_;&lnNhL_V0eIJGy%0gjtY3NO62Cru zhL@oZ7uegdQ^(Jb^aqbeY@I&NTp;~<&=3D_~>Tp&~DO2q5s_{&AoHT`GeUi~*C#yp2v z_9gZp$Z0qoY40FI!;b+9#sVA(&;roZJ4^F=3D`vh3 z=3D1KxnyDO^?MqwJt<;rpr*xL*{+oY=3Dvc49u{Req{%p9kW^WrUmpvY&D}NKDq96vpIb zF5hy z6l7(JS*u2SEjH}=3DnXNyV+M6Ljr*@+VI0`MR`5n2N>=3D%%BC*%AZ47*wO>^)d7xX`qS z;DZp;L2Q-!9FO>6Pn$w`k7JjVP)>}G`7u7*$8fXaCC8EnPhfQ`SvNdJv*45$G zty1dtD@fNBTXX!Cr7y%&q@A+K8<>E3f3y+9)pi<)y>1wze{9l!kISX=3DEECzpI}ZLN z6tx+A5E~nn*NJA6oJJ}?_WC?rxY}J&snST4qE(7YBThoRrm#cQP4X5M!Z zZy(a5il20Rw~8Gm{XSOlAQSm-ts;*UPCt_~VDE{j(Y6fh1>Yh1gBm`IQfA1U+sjL? z9QVwba$DZZ5txPO45{CLn0+mxbzidwZJQZCMtq9g13fm=3D@lP`CyE7`A9eOo*dUxo* zO!~8^V0(_K?M_4<5oY-Zp3#klZr(8THPI6lz z{8JHazo$pN+QHttUJsdc8R(}?LX) zL}&5FcB;wP?1QLx-r-`y0~lW*UG8gZO!^|G>wRtXWUOC|%YAM14TeLNqgIBlZmpIfW4Re&SfT@517{U z+c|%q=3DlgWCp?43=3D``N;tXJP-y7WO;~OQH+fhxRD!neP@hdW=3Dbz=3D{?OvWO`5cv6)*q z^CI6VdFgm}V79R2IVeh-xrHVFf+d&sDER=3De_iEdn*-y!K&yvF?@)=3D8>{VhwrwFA)R^Wz-3 zc5h`t*7O57QGb6Z;2KlF9AJLz^(;zj^?NdpL^ZTOe$QH6faqMgtNfuE?0XTN#ix>A z8abbMA!FmckRcBwOqU0enyCPMAXx>_LN0j-c^I*#+fCj)sR8D3_e042CTZV?kT$n8 zK7?Q}q>~k)| z@*_oKVy4>N!oX8XHju}x=3DC8g*>wI+md?W*uR&r9 zX`_w0Pd&B1d2LQA%u{nr&bSz@+ z_nItxZtD*gPA(^DwLNC&JTT@?IIC^6q4pf51$5bFcd;|=3Dn;=3D22yDrYUg>t_5|)0+J%FXkB>Tbr%c zv>B4NU>AigO~L-x$C1Q0#hc7T=3D*9>m^4dJw%f zkgq}iG%~g!#hz=3DApaAaDOaOyy33masFtvlntZYab{h`Ujs|r=3D&Tkj`TT8CS+RoRB=3D z+wdbKJqZD=3Drvk{4$&l%kW-LASYWqHx$1XYLFcd?gE^qw}n=3DEfvn}{xN(@rzd3RBhq zx1?Jkqp5dl>yJ=3DG+pkTYY*$~fOmlyCC*vo&li_6h+8W(za&uGUs1ZFPhoNX(-m-hr zKCed^muf=3DLd)D`sb4IUn+T5CF>$vKB^Pb)-ueIztjKv010W&<9*wb*s>-ZCr>`pm3 zeyicgcZaEJFgWDh{yB7>yxV`lUhK{2zT3NW-Xqv>IXS+JYvVQ}y1^B_{&tGy1AHm=3D z6y*W_CBw7GiyG+z{Gmu|VO%f0e;W>7&--jlE#uN}nR^aaVfonWpGO%-Qi}t(tIK%H zi5M1NmgP&b+-F$$*tx4()4HW3Fs?^_gd|Gg2E!*c%3^ARo;(LEqD;9O6&6jGuU2`& zZb?R&@)8*2%J~+csW+D>Q`%-o9=3DV8lUmmdMY6}!6l2Z#Jt?C7FjHhw(^bS03;Z__zl z{7VRaYg>D{TB`t|Ak$2R?2Vx#PVBF^zZN;Xc2YMgD$`QE4%Vh6Mp;m>*C*_ z@>`$iilSNk)|YnizmNH?nbgJqHRZQvWEcPMmEW3CUHk`Merv{A$0YHJVXch9tV{pa z?*cS|-VY-oGnn}C;IoybC7-u{dxOTUHwBAcuAS-Gbo^cUN|g|xGC zZ($^E--gKfx%6A;ue5IiZEY_77W$3f!d&_-^qW8E%l()U^9Oyo^jqjRf6$jpM>qaP zy8{C5&OL^`Wc(K9(r=3D-Ep#5i*^Qe_~6-&L$*_?~s^si?lgO9OUR}sP!9j-qA)oiX4 zq~AjSwHzDzEnEVc-+3Le&}IazcDN3JR1T$3A9JZiR(>0rR6xIl{^2(11@v3!AEB6j z3;iPnM>eeF6Oz2Gc@`&~IVxP?96`TbMgZT1&r$xd#fQ-@@EZ zDVkirhZt$KZ57aOVP3-i6-%Mt!o0pR84BpPFt3c7J*$9z3-cXe6`2=3DnTd zhkgt5E){xY8j1_GOMTuzeua+sEesECL+1qPw=3Dg`E6|#c#TNoZjOuvN%NRE;RehWwA zNBU|efK<4{3QPnpxCi<32iT++&~IUWqhRq{SWxy0$a2JQVdTc^z!Ie2!pP0508t$A zEgOM7R^Uwh$dKO+ASKXmA*oSP^69rQ@CX9G!!Y_ZiFiV@0=3D)eFvIs=3D~M&jX^tbyG^ zWElOD#CtIs0gqg745J|g&O*$nNa4rRfrB{+3P06~(QjelXGNGso*?}e7JmK>mJDC; zKjiu1X3+6h8Zkut4#Vgi1djMEEZqA?;9UAGEVOKqmP@~dg|;o?a%Z8&g&zCY`0?e^ zZ(*U=3DK7|5v@4$2`^hrwG3M@q?zr!$k7lM5H?h8CDM269)Nc;&#J@Aqc8AjhEk$wvU z9}1CS^a~Q{w=3DiIH-E$a5^AI@Vw=3DmjoIB<}D3!@d<{ITekX!3r@!MM=3DXi{D`w?Ld(K zCwBQ%Au^245XiBOE)w`S;V}YVBRomqXM}Vz=3Dyw9F)x`qY^U=3D!%vfrZD3go|yM{g0h zlkjeVpAtSI(2p?sSAnd2^kspagnvgMehUlB*~gCfEi9~H=3DLcsZt+4WAgy2~QafK(J z2Ur{_d|@)u#cyHZO9JV)u<+&Cr1B5?3Sa30v_dB$AW`OL0lW+#&J>9UtPqRjXiD5` zIpVjlaQixtg7jNhxU(D(9Z06gqolme#7GKrw(uRo&>Ez(?_HUj5r4{!8^47`wY;zb zB>T1k70E$N@mpBb?YFRK>{O(Q-@@X?&CIZe86L(^7dLY`5x<4S1LcDM4X*v-mbe2d z{T3FtOJ4ddEFRp!-&##)Di zpneNu!{!3RZ((dCIm?c=3DVxu;LV)>rKypFXm19rr3VQlib!2Q5ERT>Y!g|P$4YWx<) z2Crk}8qBX`Y!(y9J6CvvVbnb~Zwc!dq~F5W{B2-};4fbhA(S~`!#N}3ySn4zw=3DmxN z0VwLXFh1L!gd1`${T9aO*fW8xT>34H&$U+~;^fkAVSK*L0gL3)Z()3)eIZifx%68Y zUnF^wx%68YUo3gxw~)nBR*bG&(RD0Ch?FT^=3DcdeeQz%o2Zpuj@6kLXDFn+Y1g1mws zv%D4dM$r8Z8wICz%+16{m|ObBN56%o)qe%S5x<3{HFUrhq~F5QI_*9l@GGq+nX`s@ z#cyGvnSbk-pY>aq=3DqN_q5x<3rJ0AcJ(r;nn9+mP-%*4dKr()teLHaFB+`k$)5~Sb4 z!~-0Oc#wVz6AzvPdNNpzu1Gw@Nmd)A-@?ShOl-dkEXHqP;;d3c0?Z^{u$mKZ9tRwhf6aXBZ-7>iehU+C(~+PP zq~F5CJ0*CAi3C4^$i#a!!13V4Y~XHYO$O<=3DF!9j?z{YQ3;`&>W&F?&o1XxiZ!7qQA zsQx7V4!gbNc93=3D2unS@meS{70I~418E=3DMSS3lnd2;6jr*v6HOAPXs1*z2A8p5lLsI zB^^XQ>k5&z*Gv?wQwj?Ua0wgZ@|OV@&~IVlXb=3D0RfPM=3DT%N1Y4K|Dq=3D{T3!xD5l@S z#Bqx0x3KRP&(EYvKS9LrJP%wzzlCL!Y|4xzG0^=3D6T`h_9R2#SgusmKq$Nm-|cRD6| z`CPd+tlZ6LVfj3X_;TsDuzbEmoLu@XEMFjzQ0_`pr+lGABDwTiSbn%fjNiiYMfPffTJa`?-PL3r`29HIjCdcgpt_@y9{_&pzHwWprFgbyENRWODlM@4IO-Im1 z2P7vq08b9SfU!tUB~NG2L;eFNfj&D(zlF(Z{NK7oLHaFB9&|i#SCD=3DSlbzQCuME;} zVRAO-ld2lZwUq|)pzO_7z_?>r1bgnkQ?OD+U&B+Z#{ z1PiGA2QI7#{T3#d(GjA0KP=3D#5Y%(I3hL3&;E9a+?7~rFX!#Mt+?*QPS`YE(AV3?XH z#8cA&X#5mbE|^aKwU8C@ELuVS&w)LQDFzo9{S;RHTi?s*r?6^|U}p>(8A;{e$PDyT zm?|K&f^-p;itr(fx2>1)D}D-7h36nSun9r8pTcx0EA@Z#Q<$#W3|SHSDNNVg2Z(hU zq484~*@|hK-b{LgehSmi2&A9F^qYhQzeDe)``CgnLc7uf6z@U@rKc*UpThJK#q?8{ zUZt3R3e)E(9?pW+DW;#o^m@hgQ<#22G5r*#Us6mzh3PVnlzS>GU#pmY3e)2i-+;kO zcPgfz!t^S|^i!DLsQ7cre?T$)6sBKSOh1L`4;0f+Vfrh@^i!C2yi#r}rc=3D6~V)`je zH!A*sWpyYHVVVS2G*`YBAGp_qOO z)0ZlypThJ8#q?8{-lW*Z8kXLocmmtLT`~O>rgtl*pTcxej?|5Q3e)9^>8CK=3DqPP(=3D zK0Q$}{S>ATRouzBbh2XlDNLVhFx!5cV)`je->;Y!kLjlr(@$Y~hhq9EOuwa=3DehSkc zDW;#o^aXyY+Z$}}<%*ZGudY|TjCH$1@o4fqsF+WX>8*$3q(hke4rSn0f>1mIR>w$y@V@;2 zxZoz#qq?sOr&GY{zDBq>1*|T8i%eW;s}r))2I&;Ay6;sW8>fKPWfT-3V}vg1GSmBU zJT_yu+g`VMI4Xosw_(Hk*k9Mb0bIx0?w)}hR36)xGNnfJ?!Wv5@Yb1#ZU(R=3D+Kf${ zTACsIOHm{5qN7xBT^^#(nNl`jg4mb8j90Guz9659Ed5tNwwsPQBOm+xhskpWk{$+6 zL+|tf=3DOYD&PX01N`3ICk%|MCbDWL8qq?VhcZ7lLP(@@R&yFi{h8xKLG4R{!_fuju9 z*d(OgVWC|&=3D%_HR<2s6?kK^t*Zs2!ach%`c zoacGp=3Dl$#ZgZ}-x`l`F`s=3D8}AbxxnVu5*6Zm7(zsEzer#Y{M4o`f5|ex+}ywX9PIA zIQU-cR|o?;VJ(M9{x#zU@7JiKFMUAfIUHcK57PR{ri60{`zK{n!Ue=3DEqa1U3!0A1q zcxoF2oqA*|n2HY`>V=3D8kDih{ZLUUS5NTjE?A@#=3DTpdWZqmy^x$-kN7*(h$Ff^g(fe zObCH%28RAX%?7^aZy+xrR}Er?IBL|7VNS{v@*qR5OafpmvmdB5xDF}DBSk)5>l1Xz zkgM37)nVQSeJ%zcSAEKQ<=3DZ#OkCWn4bjX#1<_ul7x6PafnfOWS@u|S7>XGx#f+uRLuIG(xJi^s zKa7)pkfVPB3pR?FR?I@3ea9?fI9-TltGPB?Tq~^_Dw||lshyNE21ywMcC+$2vAY#z z;&Yz*LBpzWfY!(!cTqSIrjL*Z1~gE=3Db~2J*)|rAl$Q$^$#Ad>V=3Ddd2s?t{W!tra_#pT~pPXg>slO zxHsg(5gSPJBLk5epFZk`Q*^dG@s02Sh%gmN_{G_h4j4_%cv7uFE=3D%s#OMl;sL_W4LMJL=3Dfd z8?*+lTjXQLOQ9iC{}>FoO#O|V69+0fhrzYFfbNIEXwI}wJyixdC2u~3C3BM9!;(4e zj5#T;cNAu`Ez#+6zJ*Rt|4*Jr515qbhT^#`Uq*BKA$eA(*^#grQN zDz3Hob&buwnK3mg`@Y8LnC#0Iqld~?2sd8Pj4MO6-QZIkTikB2C7`XrPirL#vwV;9 z-?iI!K2B{pR`-`J9^7t#v*E$*20IRJH#oT60Lw+&!R-dTAV0X>0RR8J*1_!txXp2J zy8(SE2e%vGn(^Rv1MQbOxZME%zz%LV!2gVc+YJtGH#oT6;NW(HgWC<@qdK_V;NW(H zgWC<1+rJTa6Ao@SF!KNZyWPN&SKrly7vm1Ha`;D-!(Z(zpif`F`c7>v@KLdw!@uec z+;27qwhd8tn7mV zWU1>BY(|#!C2;#V>Dl}1&85`24oM$Cr}n_~%x&}=3D8Fd%xa`z!x&l1)B^@gQd{sVj~ zb$luoKfV%p73iLK9N>*~&!4UBY@~aBa3kIGj_KOz&GtA>Z??IK^g*-nkANnFX6b{* z9e}-B#Od9em>13LO6B_QO`@ThWN#bV9&9*~kGc6PsP{R30n&*;BlTMJY4xV>&Wy5- zw+AcTg!)16v)lTLcQndE$92LV#Ue_?u8#DxNdH*p>T>7&0@Bob2-ZSB^(w$`0BR3Z z%zTOzbe$s)sjj1guYWg(+-0GCp!xq_nFKB zXOo7^g4r?)?(6106ElK(-0D?97z0i(naEFf>WN&eb-E_!33j-t zFCoGAcLWYMbve9Wnwxq!#11$0DXM60DzU>&C3d)}#11!=3D*x{xUJKR)a$5}+2<)$){ z<)$){<)$){<)+>M^RnF3t%zi~skAoBO=3DTp@O}!hDEH{ zHexv9jOo60&hH&x(1 zl7jQZ0ToH3j zO%n;6?@)7 z{y;xMhnso`9KxELN@a(eN=3D$BQ8InWP0XOwf{77Fd1`vbW4Bs?hhnq^d!%ZdD+*Hn4 zhnvcM%bJ^d7NEmT{R1#KkQd=3DchI}W0)Ie@3r6EcbH8r8I||D#bb6)UE7ehnvdxC}+8;OaV7_rIgMvL;{oIroJFThM~Vv zDBRTdMaVGp8HK`4{a%C&Lmqf@6gM>}ejSFP5(Ex6bsVtfrmE&EZt5;J-|*E)CWfI& z2oyJUrU)5^7766ohK?2ZGT|u#|4DeZK$E6$J3n}?gufQZo)6t3ko^|AQ{YR44+{K< zaHl{#2EYjI7FbC5hCmu0`as}3LhfDF+*J0Y!%b!9Yi=3Dr8zR*$J)GGkVO+5nXnwu(6 zaZ~xQ0?kcb184-+A)rv^C%CE1&J>BmS;Q(iniB8grfz{qb5k1tF=3Dwfyxv5Ol+*HB< zPnhg`r%W!6e{i{O>MIaC z+*E0k=3DBBc)EH^a+eZ>hXVd29NRTgV*>Np4-Zt5~%;ighkxT()U;&4+}0Xy8(%YnsN zB#jqtDpj-G)Gdr?ZYmRmn<~1Rn|eHL)ZEm!pa5sW^fnJ!)Dq#Wg> zuuKs;DQ83Aa8p}QjKfVO1JY};QHoYt!o=3DOoEq$Z8sc%5wa8q4ar8PHIbsrbXScYQG z8s^p9)G$Qdxv5oD(cIK$Sc>ANs!|j;bv^zfINa2WfgNrtN5bKzUIw|tP30tWxT(~s zM?=3Ds#j}bf0B3kBfQ?Eu|hnq_5a8sW`t`5yjrbeNtxv3mb zhnq_5a8sXzN|u|NM#RTV4mb5QV9iba9MIvWda(o3;ilFAJKWTMzz#Q+SsiZbGr(DH z>O(T1uft5QRfPml)CET+WVaXXfLKi%c0sX3ce4Rri^Y1aTM%k)>Li>?WKMiURnaGc z61yG`p+iK{X|$w6NS>+)X}!wCg4LA5!UAa#8{_EL0Xy7O_K(9&6|A|bf;Bf)u;!); z*4)%f#ia958aB%VJKR+2Xm0B5lK4JWGT(0ig`1j-Mcd(~a{3#&I}m`I%1D-*%1D-* z%1D-*%1D-*%19SC^)A%mWBCp@wE-CCVuZdF0?kc5j3p>;szAj}6{xtW0u?uvu-wga zLn3uCiugZqQXrv4t-;iht4I^0wqa1J+> za)+C`3;GT>l{yYLbuZ*wjEcKpIv)QbOCNiqi0vw-6yiVON2V}4!4ZO(k}?srNI3auyLf+*DD4 zogYA?xv7^S+4nF4#ZBdrRvn{J|F7KC=3DTMgBraldbbs6DLxv7+EZmK}VO(k@=3Dse&~( zRq)#w1#nXZ^M3%ise&~(Rj}r!3fA0I!J3;YSaVYaYi_Dw%}o`oxv7FRH&yB5$`{;J z!J3;Y*rI%^l7ERtfSW3E%}o`&2eSd(RKc2?Dp+$<1#51qV9iYxthuRz1DNOFrV75B zWiD1&b5ljGxv7G+vq-S!rV8FeJD*Z{H8)k{nwu*4?>K#en<`jyQw3{os$k7c6|A|b zN*@y!+*HAun<`jyQw3{os^Bwm(gHVCu;!);*4$LVnwu(Eb5jLtZmM9-O%<%Use&6h zuSa_XYi_Dw%}o`oxv2`X?RO}B%}o`#=3DB5hP+*HAun<`jyQw3{os$k7c6|A|bf)~@a zd%S`*H&w9arV7^FR3*pJ32v%j%}o`oxv7FRH&w9arV7^1BEh#}`35&tu;!);*4$LV znwu(Eb5jLtZmM9-O%>eCaWAq2Yi_Dw%}o`oxv9jOo67aj-49(}6Pa0rRg5rNQ+Wn( zoX=3DmbsrozmNHbEaDaJB+Kc-Ag;U$RpM8bHmruZHRWNod99^RFyoMK!JST(V)fC~8< zhMJOk^kgAlc~Db&GIR_1{)n2MtgA3L4j32R3}M-K$cEKy5`MfEE3678iz;wyU&yq{ zqS3s|FJ#(e(F9U zg@eHG^Ik!!BnS+p}OuA-a7gSXV=3Dk3_`#7X1Hy)H z(VTzkY7C5;IpGaf<43^{Edq!DdPId*2$8`tw3FkvmkyRIUAP%c$c6ECbk@p*d)Z#r|K-#QVOnek*VbuNWB`VnRPm~ z3~e2U6ttK0=3DlUzVSKg~x_eibk5g|w$nGbX``#^fG$_tn4R3kG$XC8(GKJ3*Qp3Lhy zVH^_f@0L*io=3D%vCgiJu!)``el-L)b*;V2|va-S~;ej`?@-sM;j%nYZVa8UcmOv`Yl z_2pV&W=3DJdThgT=3Dnk0QVW)*B8-8T}O>u~`-Ylz6usG(6CI|A;!wLMd@QvZxXZr9>`7 zW+A04sJL4}B~C#nW6XN<+33keigIoP>`TsSvXKx~&0!_VeadUQoL3?4L+7z;CXWd5 ze0~U-a-Y70JdDYmAn+Nf-ReBkHeJ!m=3Dh^a`jt_Jmd|NLMzHN0pg|(wv`DO=3DxQ+2K1 zV@~p$O0|-;&2MsWE1xRQZ>qkv>&dvST~Eesb)Jk{H>TBj9B$oEV>y}vQW`o;yB(X+ zK_sP}smBY`T|VbzaNYSo5Yt?*OoHD3!tF?3V@~rrX6oi^%;|LnCEa|DIlXxmExtzg z+98DWHM+I0@o~woe2sz~U*j$$_+Cb!e2t#Z=3Db=3D&JYxI1L^6U!&&-V&!Y}>?2mbM$dj?4e2t#4c@!eb*XW6u zH=3D;DZYLSSq(cen3 z_!|9VBs+bL{s{u;XJH6K6)L!7Q@i@ z6v}gOz36*e2w%vdM$>b?jLgv`V=3Dh+4I`%$bQpqM?N@MyB*&qRBp$A5h}N1E-O}UM;fo)j#CNgb`)P@u#A1I ze2u|!cE0!;gB84-h7Ns=3D!8I2EMuNc?Cm>yXjlq`%($^S#bvC7Z4sP(ZqXCV;$p|Qv z`3YYmvol5F@HMhZj;6#NUt@633t83u}2NU-=3Dpf z>moSt#n)Ka@GQ%b=3DinALN}I&jSlGn6@L#wY*HJ}Hyb0>HY7myN@IC;_V(~Q=3D_2%7Q zzwi^fai;cG0KKvmRw1142b zf8MoKzQ&>>m_Xf`qAR|}qFKC=3Ds(g(_v;PVO_!`;wgfb`KYoz*nU2*X>7Wby3PWc*( zr<>#9>JeXK@eFe&u<|t)&ooydqI`|TvrP_|@--IEH7`br@--HBN*?8FES@iU;A>>H zEUTDza?y3HLxe0-y3R@IbW&KR2%VHuAP`?;@iLQMBJnjAA7gHV9QVx81g~`;b2D)# zb4%ZduQ6If2cq&dMpOR=3D7GGnuR&^g2#%P9O&Kl+wUt_G9POdIrW2}wtF6C>C-TMfz z_!?vPt5WD|jQx=3D=3DDdlU7J-8NF`5I#naU_(lG4}9zkSkwf>=3D8~fR^@Aqeewu!+Hl{23zOI_ccHa#2f$1`sul@&?5s%g zM8a+_`aQ&I+OP|XCAt$vLzl&RtzRP)Ut{d8kvM_KoOqk6qE7@RcD>i4pHtFlw4_7$ zPe(}WRVEg!rW6(yNQ>AQM?V29zQ))x7yCzijj`nl)7Ka~N@4mMW5*~=3DUt?^A!t^zk z>~yUclg>Z{59kLLUt{SQlVyspv1i{KB$2yCe0;!bSu{Sw{1HHWjq#asY$#u2e3nF% zuQ5JbBFfhopCb|FYmCp8i1IbY=3DSf8S8snWN{h2j# zYg~MdWiu523eB`5Mbd($S`#gIhj| zSos>uN84zP@->#XHv=3DnQWBGXMC|_gwgz=3DCoUt{^iPGIG0EI)KLu<|vQciaZ7e2wMP zIWLv3v3v#(IOS_BpGmp$HI~oX0e$6bET2Oi>d#~$JP=3D`*-^z2WK~DGxEZ;w7fZlN zqY_TW#6(G_G7mdTNtq7mb_m31c9%+#l^R#V5Qwj_d;$HE;%h8l$g(TA9Z7tR<%_+z zQ1Dt`Lsxu_4lK9AE0PB8`Y1PJMQS7<&fdIYP0Trr`h>xX z&ZDW%%gKuQQ9zXce{eJ2$_&cQNO+)|@ePQyn{geIeRm+}?q;M>|F3RFx-7Mu@sEI5 zk`eyY%}BX+GYV90MncEUC|J801;33>g_}{Zb~6grZbre{%_vyA83k)MqhRf36s+Bh zg0-7buy!*F)^0|nkBeTo83k)MqhRf36s+Bhg0-7buy!*F)^0|@+RZ3fyBP&*H=3D|(f zW)!U5jDoeBQLuJ13f68$!P?CzSi2boYd51{?Pe6L-Hd{@n^CZKGYZyjM#0+6C|J80 zl|Cjb+>C;?n^CZKGYZyjM#0+6C|J801#35>VC`lUtlf-)wVP3}b~6grZbre4nDKBk z3f68$!P?CzSi2b&##IB{jDoeBQLuJ13f68$!B=3D7t#v^bAYd51{?Pe6L-Hd{@n^Ev$ z+IEjuuy!*F)^0|@JfGtcxJr(r6K+Pq+RZ3fyBP&*H=3D|(fW)!U5jDoeBQLuJ13f68$ z!P?CzSi2boYd51{?Pe6*%yBQW1Zy{=3DVC`lUtlf;n;%2N^#Pv|t)r5IPSgo7zcqr$G9*75vt|W)6D3BcboCfLfn{EPoa%6_d`o? zmz%UC-h0P`SC>j|BXx_uP5oDtn%1vitbIZY>9Gspiv)j;PiINf5%jMkRsOU&*&LUa zN4e@`BlBLj+>$f;-{liKxztt=3DL&;N}1V-G>#|6&1h8a7{V z=3Dl?hBv24EH&i@T@(B|vy{NEBsZNA>l{~d9{=3DH_t!_rz(NuebC6K-_He^>+S!!~^UE z<@<@-0t?Wue#2y>J;2x7`Avy*1o(P8ze^(116ybk79R9lXMnG_^LtG%B1;2&y`A4O zY3*?VzTVCskjSb4UvKB{VLpeHlLCCboj+u95Y7zn^>+TSxdxH5U;!28YmjXS@bz~7T5|*QP1N>9`9uNugKkjzid(eW;W7(g3Y>y(6IS>JO8z8 zu4UiG{=3DI>%4PpSFb8#5Qqd$9a_-S^2AEZ&rp%iJ0BMlotzTU2Yueb9LGAS?M>+Sr5 z73OVy{}90;*03B3;Snq?!nfV!-bNE59*j%wZw2l{Qtmc^yvuKwFjo&gJ(SzK3-Pc~ zX5icI>{3c1yvuKwQ7gi`{B}8|1$^6GpwhJm*s?ei3ieY{Et1F%3|3w%#Sy;kE^mxv z=3DUx6hI?Ig+@ABt$5EiXE#u#9oeLXC+M|1k0OQ~UBp8#G@?6yzEvT2=3D1Y}tRTL3loK zz;3AmzJNGrKUNKVA#ucB%W^Ivj@o}BzL>bD{SlX)ONbNppHslU;&GX_H((92F6Hsn zZ1kYjcfuMO6w@epicKsrXL9jscVBk$A8D4nzm z@=3DHZt>>h+%RZR=3Df3(>>T2(16VhdqWX`W%{PxTEW8@nc2rsl-n(x|YI3w7eWYZP9h; z4dcuhuEDW;U?p<9V!;YziVa~?jR@&eJ^D%KzXeSNbLT-Zm|u4d678o@dVa$QBpUWF zQAK`Z2Ow_QpM=3Dz0F*?|vFI%(e{0O!#5KX=3DWFgTFdjWNFg$!_YDSk`X*$Q1ezK>Do> zPF~=3DG`;ot(!KA!^F99rQ6zo~*#d)bGkL+A|31IlPevsIF31D~|-{NN2dhVJVS8`Q6QWgQ|0o=3Dj0lowFp^{1EHJ>A z07l%B0_VrSrF4ewanK6NO8}<{t@Fjqey-bW$F?gS_#}=3Dfs@0~Jv3gMKN_)&)EW*jv|X&zWUiaoo4iW<1wc)rE) zSJY<~A&FK+BLtFYRouv8d>fd7M62TFvD7lLk`?#j0q>#nqqya_R9KGjFYYIK>HH|} z&%%ArAW1tvJbh46@x&3#$G86#AMq^`E$c^w@m!oQ!|wt?@N4||C@AA@>EdtA3gGfT z0tbt~H^(9p;M@O-_nD+0;U$acuj2g@!KN~c=3D2{lZ^86F#MXQe`q}L->ODa!pmO_g=3DLD+NeMwv za0L#@(q-noD5ij0^GlC0M?!8{Y?Nhn0Ed`3kGZ9MYqRfy*b<0}5#&A^o>EM8*7U*Lcm_63-q@!fKCRvx){l@Z@_7|IG79v^0R z{H)(Y-^Wb3Uc{T@?~saP@4^g>zk52MVe@T(@x7Mu2x+~_#Ddk7vMk<=3DkFzn3 z{(Zm&^xemox!6Ai+(r>!t}wkI@uL)`7bJd+!t{c~S13#`NZC$T5GGqzF{Z3#(IHsC zw*i)qFrp2<$)$D`rW=3D9oULlS}|K9 zR)B8@4w3ZxgLG9{2+kjgZny5Ox&l|nCe7wj`)H=3D=3DoF>_UXD zSQ_okF+ALIQeFQws_~eprg~5>sOQSt0ILTN#B{dFxT+pH3ed2(BB&mAIIv~&ZGhEn zM*#tH)EP!*)@B!n?rJZN3e#dg3?0oi^VFSbb;@94Sj}z74RtV+8PV zHs1zVJ)QINB%5yote(LG?o7LY<+M)j=3De(BEM5ZGhEtsI$p_9|KlB_XJ3` zpslFJvUobOEcQm6?Fv&0!Fc@0yk;jj!r8#ps}WchPgIt5JaC-N2vZ8dSro9nB5?9u z3V{^%=3Duc9@j3QH^l*JqLp*Ill8|K*wNj%G0)?b*!Ws*G;W;%o);wR4T5rK1T?WdF- z73OJL9p#T8XPE1{3OH$0LIJuSB}JefXJ;uX(;;n#K#XR0sT5hMEo&|Wk>@!i3zE=3D{ z@NIzA3t2(+DF`Bb8({U~YoTRX7bA?{!4i1=3D0>Mqd1x1*$)j>H{JXh7=3Dwp`r{5c?iM zkjuC?8T|mba=3Dwv_g%ix^c>sUbY6kL(p@#4{Gdbf?)MIxdF*);yD*V{zq=3D9EG0JLO{ zPtN|fl2dqP1>|%7Qp#z2IV8!sbD*ELI}^b3xb`>8c_7(IJizXU|Fy~aJoC3DCnkXx z41(NkmbaOyk+p~~T!{SbW@5Umeik51U6~kRii`rfv(i7P|N3OjrS}QWl{Y%p_Q*y3Hr-jZ`Gkh;sss))FE2fK z)5Sy8+Je2v?Bhz24qzFP+XI;x&5u3lf_AJGJ!-~I#Kd*QF2PA6Cq_4{J4TG}(`R^CK&CQ*yb-?9F_S6<)Q&9An-!4EI}egv!eD0p?|^0UWfl+`HXp>5S$MX# z@pQ;M8BFoa+J~8oFqk>}y=3D<;?2z9P=3DWw6n*dmxMK!U3Jx!P+C&!2HZ}0_il%yhB*P z_eN$4O~G`UWf~Nw(=3D0PyVLHt+3lyf)EVEK!I?Xa?D@>URc6&AF{-3exxMBssIk9w#bH5IYnJ4xdbiA>NSVw%ZPZ3(Ne_~bj$Mzu1jctOC z9s4in2aGb7pLx_>ilPh59N?YG20G|6dlaUFF7vU%bkJqO9_a@<=3DrUyr(?OSMQMeHn zW=3D1Pa2VG{0!gSDO)+kH|UFIB(+0S<h3e!QCxkcf{wCx^+>7dIztS}vPnOzFgL6><+%h|3k6{dqOvtMC4 z=3DrW}~)>T%W0gn52#c-iY+?ELyo`@AA!2czga3NO!BXD*Ckx1bh5MTp)j41nH37t8JRgvVLBr-8x^KAGINK*bVg<#P?*lh%u@=3D} z8JT%iVLBr-|5TXH$V`zXV@qdbrcq%!BQtFZ(;1nWCfKqb#%M%7goUX^Jo`l+fZ=3Dsh z+53@j5~t9u3)plw!}{6gEu~0pL8H%z^{r$#JdH6iW8=3D|sSL{^C(G8E_=3D&4^|o&wc^ zPIPkpk&?|*jSLNCPeB|cv@BlsSQhUpd%i+djlsQ4BlJv7fX$Wo4sqXqA;@Js+EiBu zrj1+=3DG}ZHtyCMHPn;IU35mx1KC$2J@8b1QYztCCuX{s0meIGOBGCsX&+k4ppZkGaV zixvHjt+VW-F{PUBAP(4zh_@35?FbstbSH5{{)#u{8m_AMSe+PMo;pt?d zm3+BXF5%Lq&6}X48hwqj`54-BEwN?q!?-qG*CBTD3ZZEWan#;~3Egx(aiVg?iN_dC z;zLT?0m^TryxG1PH8$NuJizWm*mUz%VjFKUG~M#K*jB~1{N_5^rus+b!*n}En{T}z z@=3DkS)!=3D`k*#$l;p$}qz0bjxBh@0u*1vfLj(1_Vh`pU5>q`mW8M)_B-^5 z89Pj7+l@E?-7&uO%!+*sYl5-kG5->=3D{RrD)y)b@fMhlV2Fryc-U{`b!`VIb(>!h0K zs|mz{(LbRu_(wiqtWE#fY`TmC9805YBX*M1IRfdf*d3@RC-ymOHaz<|3|G@G%lent z+z$;6@z7zvbi3BW9SPC86$hAQ&C1ao!5Q)stz8gEe$Ej|f%;y_$`OdHfe}p)vX;mM z&d)!w+Q{E=3Dz%=3Da;xSX@<5rG>C9~Icfv3gA4KA7J0gus(1eNtc=3DO>EjJa4_f4p9Q|i z5}r~JwKqL2Z~@^n0-IRavjU6I=3D}mtTcmd6MPTL-a7kE56AUWU-NJEFAgnxGFKY&@9Z2dP=3D zXucO6AvGDEH_=3DncflTo{&+LPGB2AQ<9VKnai?ntyJHzu=3D);VM}6ynQ&q9v*a1ct}U zI)TM(x06k9z07T{+4EX;`Hgl)hB?D6cb ziFX0F*}JH7=3DzYNL_9j|8iGK+@>_;)Lk{yo&Pq&w#Q<9UP2JW=3DqV!czI2VQDdu*}0=3D z0zS@u7L7DlALPvf z%c4^5Oqd!>E*;Md+}^36VGCJ*>13UOHxzK|hcW9DG{v(1gb8R_J7HwxCLTpkFEDU` z?S$SsXlbWW6%T!Ki%U-zH!d>z zoT8NnLwSuTW5-i+nJU5PyF(|BL9%M~S{9k?0bx%H9-QP1eOiB z*-?d2Xh&B;z0IlSh~C(l)vLETg=3Do4z$8y@j5q<_!Mf~BjV1Truz-Sl;Y#u7zw|#;# z|F_vz%)!Cf%8PVpu$`k(99ngfljCN@Td#wXF2TJVFV^i~i5)V`3lZ^gp^xtf~f@%NpjRb^ZoKEdQQ2T2c{sq1W3x$ubVU!$bPWhNhdE@MWvjM*uaaV#!Up+Q`B6yhkP(Z#&CA~tw5 zE)Y&Yl0Rp=3Dws?qBj-|^fLGr-SUewbp^^_frgaH$EZ5N`|=3DoGUVE%oQ@$u@g(PHwXc z^P#I?nHT@16*w(6pqw7uF-8MqT0{)r0^o)fSX<4Q)V5)~GGm>##@y^lW9&m%K%l|7 zaX9R0Ub4tAOJ!_-k7&~@9wI&U(0BCxoi0R%bf=3DDRNdJx6emFoG!(&XIiR{ zb>4+pYqr6fMm%c65?ek(<*o8?c+16<>SGY+?K+)*E#gh-ZW?EJnozZYMT4e5)8+*;;l$HO;8oRkx z8N1tL$9+NL#Ms>?jh(*&ap}3;Cbvqx&$t-BN6I_uSadY3eNkfmc}Px#4lml0R!PW9Y@SHTIWXS^eyh*-iFo4 zVr~&zI(bmz^Q`*8;j=3Dyi+k>11TcoXXk9XR(1@92XGwT_bwy6?UoPhWh)W6=3Dm80mqP zSU?sZXP7ri&mg8kvk3-f_f`9wwdD8AJ?Mmq(^@DbwS?9F-JZbk? zs9lZedD8C0iB7v!3BO`o+I_ysyvQ9pUoEU=3DA2$3Eq;ECYU;Du7N1b>w0MQI z_!iWwTD(G9Jn|%`#j1pR8J89xYclWDlXZ)a|4EA*wBZ}r;xo*yBq>Y|~Tr-qTz;-GGE*BCECU21NRlomgY zdR2=3D@N{g5N!fCN8;Wfsk#iLB-Jqf2G8RIcOY4HqQQ3qQ*#jJs*w7BRr-Qo!ZoZDv+ zu*LTQ7=3D1_Rj55YfDO_Fo5{3WN;%9XR-C~Y-TZX5#sI=3DJpE%FVQgEuM-9Ki!ID#i|% z^(iLp9R4Lw_%X?2Gz4)VnL&wsHX0@3gUb&2n423L(FIasP)hs+hBq!=3Dfs;m1mbw(y z8r4NXIs7{jKg6ZY?9(L8(91A>rg9y&aG^6LC-;LKoY!PIHX4SfVS+6tJpVHj?#!BC ziwWCMg)+ew6ZU3Ju*HP3Gho8sbus^q2@}Nx!`)@ViDfXsD<*9JnF%aK^@3MSSdJ=3D` z30^VbM#NPwc*TU*X~Lubvk9sfx|uN2$5ZnQye!_)rusj}rGCxL;a=3DpS(Z(0JqNUHo zrJW4J3q0YhLUhy}Nu=3D)PWx*asd1J!d&1E3)OGITF@8Jr46ryAJm&kmPbv=3Dz}yG)Lk zzDG1?+Ug6blkbzhind((cG-C^+$DD{i01`FUq99)Ls3=3Dcs zV?L~PqGORdPR?pS)C@;vdW!8wwMrVbTqi11c|F-Od4#Hl@+Vcv_Qng(xXiQ$R9gd* zyl9}>C0gw@)Zl?C%Jt{GqisF#y3J*MB$sVYTa3Ps>Fjd2$^{!+D;I3JhL1x!{w?;` zy&NTT8R8TEz(Ks1JGv&w07}xtLl>1peBT17O`J4u9)?FSq8(qbhkwJA4n5zd0P|yR z-j5PT^8!!OkH!d$I)j5L(RUCX!~2Kkt;~J+I<$9*E@Cg*y9b%GYmnL7XgRH0;%7fe z>|^x3TqknejE-e&)n*pkrsW=3DBe$35>v}mIw{bW>o$SAG!88UO|zBH$ykWVY2er_CH zapowM`9bxALT*MOld+}TJeSCvHWrua=3DTY@8lsEQd!#tmrN6@chp(K$FjG!+h@+2a- zEGTfJo@=3DX6!U>%FhOP$-ihRt?6}=3D(cpP&Mdv*0<1&aPmTN8#Csj*$av6|;Yb=3D#&Ib z0%Ni2uBPPhb8*m&)TREQTIb@@Zya`E4N6%;E6qu$WGb$Nm$1wU4Q#d~Ov2yfrPMGw zE~Aaph&x77fOC=3DhL0=3DU1L5Hqfh3m^{EZ}<7Ia&@&$i-}Y%505v>xX>t&r##L?=3DrtMzIy<WB{xpPx+4~y~ zQKc`;Rx+e7N?mZ`60NWc8Ak1|pgxU?T!2)J!(f)%iOATa7voRgP^N7|^ay6(rVAbB z6goT&Y5#c$o`X*RsQ?WZ0*nRd0GNJYju{{IH;fryA;9FgUKdw{4&u>>Af_tRu2Qy_`Kd1Rs zR9p$`RP(D?z-~mBy)HuZxcN9@s<<58i0CBgj~Xh^=3D8>^i*FYYKSyO`2`wxWp zQ>gau1u)=3DZ91u*LGYYZG5JSc{p_Z>({TVYRk7Y(T`lI9$fNv2SMeqs0=3D>P-bTDwy9 zQP<_fWL{3JM4@xpvKFm|15iF@YTj;^yc5A6Sm1*I{{rajuQls9D~yRHV%g=3Dl<&Gtbp~!F5q$P#O&Tq?YOJ2sQi{F;ZmTbWf zzb&UNsluYdZ?Bb09F}9BQA_4xDdM;9Wy@ATkKe#d_tM)+kPqK}2GNo@3g)-!uw|#A zDg5?7-#n6Yh~K50e&6C^t)D?;q|pg(<5?J{sgp<7E9#_kZ}W9Dg`aW#FbSWm!;DG~ zKs3kGh>L#!_jCl4@%1o(KSDjs&^NpRJ>oJhhse4QRx4;&b0AmPZOuS&E@LxQtQ$m5 zjK|cuedoJzp=3DPg!`2TL?YD8Tt&^~Besz4Rn$z70!hvEDr%-{ zEgIoz{*0Lv71OmA*wf2}x$jj}OxKq=3Dko2a#F2%pRl~D0732m#H+NL}dF(6pcDQ&Ai z5(0-H@Ckd;_xUatnluD~?~6x~6_1RG0RKA!6}SYkWca=3Dz4qE@^1^$*eYF!Blkv-{iNo0E7 z7MkQXbI{bzJhCT!UK6BYV`(1QlRnF&wa4X=3DJ?RTbWK|y7lfE8i1Vx{eNA{#IWU}AR z%p-f!7dBr;p0n~!M(B%}`6z8|-tCM;&2mK6=3DaD_>t1!!vXG0#@lfGJ$`7ln zB3tr4Wu#6bTl2nVq+TN1^T?j`HJaOz=3Df1q7*h@`f+m5_xg^2VrYf#VQMvrS)>lMBo zx#&&bW;W6yd(w9ep<$6d>ARNAwXECNzc;Y8K@99}bc<~r3Ip97SDLM7vu$xGMcUVq zhH*`eCI!i!^bIm850X9U8?5jk8Z|_40qK&~ZLG7vgMq+)al(BxXPdy!QJ=3DqrhPcN9 zUXJ9D5g=3DQxAc;}%mr_#j8MVr&RY1C=3Dznsz_>5{pXuARWP#i0+9E}2^`k^-Iy?N*8l zNSCz7NOsaC?Fj-&m$W;iYHAh2K4~>}V?Ko<10^O+4w9Z2D3uNmlAajoY4UIglAai- zP&%Y125OZKZ4YFW4(W-3OGREl24P-5vF9!1SI|dot4IHv*g0dN-J_KT85Xxl_ZTR~ zp>by*IZU01ZQX$%=3D__)l#Naj~a4&H1e&o+@Fewj`7nt8D*hOAouqWrNPk4a^w}oMg zMP6XRws)b8>WFWTLhLdEpFku-o<>}1$b$`(hAGJ>FEG#>$hH`Uhfv5fVxV1w48v0> zoQKI8m?J`l;Ug&|FEDU|2pNV?Mc@-&VCd7wfi3a^L!T?d$O{a8u@=3D+FWsw&c`ci0j z7I}f8ulW!r%Ltr{h;1AN}Ia zBQG$NV+yq{kG#N;TT<|l>%U6r48tjum``3{pap?#F$@o;@E08QF(PCbo=3Do8#C^Rrz zgbc$=3DC?qd1aJ&c^hJS&;C%nLL{I|dsd4b__)qL^-!-;w{6XSA@WMUZJjv)VTcKHJ$ zWEg%zAjdZRyubm3e-p^r7k*#h0>aM)t|9zEAbURSgTc1NehY^L_9rBP!nP(5rUlL? zdq8hi}b+gtlg-=3DvPch%&TfMOo@K|rCzLsXC*D)N zqbu$TW3*$vXF*aTbimkjlO(RZIk*sw%`l$?Hu6XZjLkIPM#Rb^9WXZA>$^Sf}JksW_$9m|xib5fphQlw0(J1L~E1h2rM z8e3*w%GyZ>j2&b0L4~%(M%h+1a48de1Lz?k9k8TkC?3-@5NCzw(J^)JjqyxH02P~b~j<`?g zfTho!3|vM!VCf4SP&`S2-M^dIDkB}RbWaLp1q~PJfTd^gX^sJA@(CTV^qn_>tzA$r zeRm2J4eLlYWbcu{mKx>v&tU=3D9XVm%dO5mtxi43Qv|eRm!D>ojVS%(*8pHCSe<1`x(g91Cx!6BJ(g91CD@;0I z=3D}`)k4p@4O!lVP1u2A?p6wq_0>noV#s;a|Ek>dRiUnO8PUQ7OH8Sm@F>$ngZWxUxE zujk=3DmS(i0Hy@8ll$9s_ty@U+5H4?f(o)62$n6#=3DOfvHm7m%b?58iNdhae(E~#0>Lx zfIJck6Eo%LGV*qyp2RGPxbsLTOw5*ul}AEhVva-tc_b7j=3D1L@(M?zs@ojD*5O zr#THp2UvcPgu=3Dvp^Lb#~x}V~w5fqS6SW$fs>?zmDBB8Ky&=3D^3U5DF^?cc2Q3gu=3D?9 zvj7ciD@z=3D9G{qJPg_Ui;1P)px6jlzWJZh0pSUG|?VUbW+dC0GT(-uz(l_PHiZnj7$ ztQBR3(=3D8GTD<}5AvD#^oP*{0r zHSki4gu=3D>>>A=3DTXqzP3{=3DgdCIBB8Ky1`pXYEfNYVXHvf2!tDj4a@GpyZ?H%xteiug zO%@4-m2=3DlazQw4VhAM4~Con9bz{S!=3DN+Fn!A2|rv2~jOP0l4x)1h&Of8!lvli`k4Q zr4VeQfbA85lkZjtq_9_hk`iSUnK;C@^)QvbM8I#9=3DQ9X-UbL?IV20nlPDmeuyP?Qs5}Be0SSebi|>J!ZQX=3D0ScDl`8I(iARR}><`AY}`Pa^O! z-fTwdFiK^|tUS^%i@2H_R=3DOTH!isOf>DMY-c>-?cMtR#JXpP4JD;%{JHvz{Ug?hre zg!(01EU=3DiqfR(svc0ZKqBMes8%mTJZi>pp@l40tj`>Iph2@Myya8+}bP@gbZ-FXJ} zxt*hWK23v+WVf0h)IUd(-D>s;_L0FBO!jz?8Tw*wCi4jmi(A=3D~K^n))G5%$CQ8ig` zC6WV=3DBB&Cw8;|5vj7C*F30sW{A-h!w*{$LdEMPemLUyYVvRlO-sCX+B+0DfQQkA<=3D zRsqRwsnoN8Ueomr3@;!7EwzJ^0usl?s!9mO5Ku63|i`6(#{KwOQf2Ftn+s6ea;J^|Hbwprv}cq+XubQfY-r zKue8O_*Qg9szYHC&{8WECIKzARbdj)QV%Ii0$S=3D#h4)|*ran@b1hmvQ3X_1AvT~$e z{wGSs6(#{K)u=3DEDXsI@ZNkB^-uJGL~bFsoCpruwSOafZ!EQLuxOI@ol323Q5C`M4b4;3Z>E%mj+B%q~Cx7bMnS}LS4323Qug)gE#%?gu%mKv=3Dv323SL z3X_1AI!$2`&{CHwOafYJi^6Zwp6v>g6qeel@F=3D!@kHRE{r9M{pSj^*8*dw;RPy5Rh zCMhh{qHrT;^k{`i3QJ8KTPe3QN7BFiByl zcNHcnEcJ=3DPB!#8U^U}8JSUvu~$f0$CcOee@ic>Q@wzfB5m8dupp{rsz?98e73l%E{ z)Zu@E5hRr?b)}RLB$X_6i^7Z9qI(o3l`QqJ!laU=3Db}5|4UVTZ+*&AOf%q23lUtvkCcP?khr*;+r5;e2^s3ZT3iC29 z^{T>y*falBxS6x1$Pyb!uSzv4OnOzSO<~fjQqu%i#hso^pT^a=3DVg%wwg&`ezH9FN* z@jf~)r{Xf|87``)*RFwP@L}|Oy0`fdux)X%4^~mqDw2W^(dOz!T$gQ&Dg~r%)lTKV zhXQW3&NLI&+=3D(PJ?$6nNInW9%u=3D(HxA*ZGtbX92IUhIRQ~y$_ zuOXN3GQ{&?EVNnUsfedn>ud`uv0VfiYGu=3DIt?Z68G8=3DSiCMGFxu}#GieiX}ymlL5K5(J`0yWxnUzf3z9EzaQxK;1G4t+VQY(&5xuaOm>&hTY(TavsH%+kh(_FtTGKUJYc0(GKvm<ln3ertFnf0Ih zv*b))o&1yf`~05uzrl_*??;}#GWu^2;_!Z<0A9QnEDYu=3DTtc?!$%F+>KIZ06px0lr zyuvJSmiFt%IlPlLw`uh`S#`c!PIc-|s;@$$25g}LPf>pdqUpnQrkl`+QBdb$Z8aP9 z^R)a9$m=3DiB5k6GWXgZ4qUh&x^Rn2fTg&%YCa?FNSIjFDTG40>v%%dyV+@*-Bd9+E* zqccw*u%5PG^(b=3DhMCw3k*wr*`AEL4zoPsj_InB;`u&hJsGM<1T>6dimc|^R><63k& zLhjTy(!Ops$0Ze8<&AW`7IP7qt;E z4*Fc^U}mrbKhxsBK}=3DQ_C(LOG$+n<@ry}cqt@A!~uFmQh^?q$QSI~wc9pMU^Ed({- zIGB!_o3_)O)d{_n#Io(;vp`h4R5mi<%qFw)BRIHZN(bpgJXW&8j925+qyzFCKq3firI`YQ6~PVQ`+;J`>?EGyz-iZT4_Mr5V^ZBRPHXQ>n0}2 z5|?WPXxyNWc?2cQvw@YN2{BX(Pq1)fIM1is^Z?1I?&-58O znO7UVRWkQ~)vwd?eaL2{FYKl@qf4vd3N81;2o#L#J!3d0&lWBJm$uE^%(KfOPatVF zt$QBe0fN5)l-vlwtw$#ld=3D79Y!4CjI%*heHO8iyWXpAV3Uu#rP{H{d8s1(4h0Ha#~ zM&{{hjFFH}do@(rkmA1?ElBIsLRi`hDbfvVyUud%jrX15<$AUe&WVOrt<7Z_nv#er zR%>y&uHqXMG=3DhyX4;#TInR7?5LFSwhY!3HJk6?4mc_Y}E98_^&W5yg<xmMgxoj&@#k@mu~%`&K0K8}HS=3DHK8`8)wi^lAveGA4eejy zhu`?Q?XxlR{Kh-R#gK*HhE3+Ulkv-M=3Dn!D+AF4@+AF58+AEgR zZLgTZ2ksSf|7@?A=3DamOw5q71W?Z%@2f4Nu8`?I}b-kZ-#Wto zo4sOrTw-l&2Erb$#kdf#nim7BEoA=3DB|Bil@EoA;~Tgd#~wvhR|Z6Wh_+d}5=3DwuQ{! zZ3~&d+ZHl^w=3DHCTwS_F7TgdPLey-&0`P@Q=3D2k?svFke4_pONYLTVNL+z+aLBZ$iF) z0Dl6JrTN@Kh6nIJiuNCu&n;wl06!zE^0|c!58#(AWcm65{IZ2CUq68VWvHE%e=3DNNYw0y$ohQ!0Djp*maiYckE`3=3DiNRjCvl&i+G^m*IUT^o7qU&Lgv4QP;DXeU(4pI zEoA=3De7Bb#>Q%mauTGJLn+b;jx=3Dl(a0^+8TgdPLe#%4o0sMlwg$xhiCl0GE zWUMo+wvY+jM{~9b&DxrHnsTgbxPLKf)SLRODMOj>OkA#Ned zD=3D~XQ6yg@LJhg=3D^#4TibY71G2TgdV%ln%F$<*6-XA#MuGQ(MSF+(MS8wvdI@L+CjV z!*8LvJ!ChT+CrA!{{hq_TgdXeZ6V7aDE)%QU4i60>J;Lx8GfX%-T)AT+l;`oz@ht5 zTd=3D{TJj5+z!A8Ndg{+|47P8Q788ltCkcGB=3D2W_>5EOdJl#Mr9j!H*32FaW86TgWKQ zqohE#kc|VfErxkhDIA7k0`o-3FmD-!vW0Aw2pQ&`PN8feJ5PiR^Daf8wvdHC{Tr~< z6#iTp#w}#wFRsSgthSJazx*YzTegsezwV72ve-g)trW&E?`;+)TgbxuTfK1ga|>D6 zFr~D7ZXpYsrWBWd1S}5gEoAxJLKe<3f5eZK&n;x(>=3Dv?*q;!UPLs4RZY#|#91Q!m% zyu&DzEo5^=3D$S`jyg|dZgr3e}3okpQ-AzLp(hIzk2ptg`j;*SE$7P3gWYW@fuXpzJr zXeP$x8p*^kZzqC+yV>QtMaVGkb%7k)ynhIsMEHfkMTGkVo=3Dj+=3Dp|*7~VOSu0KCet5 z`z^0l;Gu+l1TG{TCh#P}aRM(QwS}y(YYSOn*A}uOwS{aQGjI!8QP&o-qOL7uMJ?A+fm_Imy0(zvRj@R92a^87 z7P6wQEo4PUd<7lb`VL`~yToE|0zq&Iegd*>j9bWxzBPLyu~fE@6@71VheSTNkQMDS zFJp#$ZXqk$FA@4IX*D*LAe1d+#nlT5>0yr6ECzLsXEo4;Z&Kez;Eo3FVPk^LUwvd%fH~)f2KDUsS%rM^oHuAZJ ztYoJ7Z$zwoZXqj~ZF0bZ{~vpA0^e43vAWKV3z zj`q$Cb|0yCxMYm;H1bOu7&&QJ0oQs|ZhXlY9)p`CV0TWCx7 zLZQ$W`u+dsz9&67Ke!~B&VKVl`wiQaO#97icvHdy8qUxkoWK1w1}A!L=3DGXBibjR`~_ODuk@^OB|UBA*(!Dg1Rb%tnw6L6+%|&2qCL{ zq8#~F2wCOQbr|QUObA(JD=3D*AfA!L-nfn^g=3DUt96^7)SeRv~1Szff^> z3?ZxhVY9-m3Li$ET6dvE&Js6aed~sl5FsBNkOn6x15u)%YPVf z2}8&#V=3Dm&Sgdt>=3DmnoPbWR<%W%n-85eg!jxtTL`(hLBA->GEL`KGTH?K65+Z5-R|V zZI=3D2$rd1aN5xH z1%NS8Tx11+F)>;jX9a*wL(?PJe#whqF$949D`4!!%)S$kQWXHkFv8NuG2-fgfGPk? zKotNcpb7vZSZxJ>dBB}D|Bmr#H4*?;BLQGFIRRkbM>kdgSS5T~upI!l53n5oM%WGjdoN%+0PGWh?Eo;Au>-)q3fK++ z`ypUE0E~fQb^ur{wjMhGjC5%SfRW+s05Im;0bt8f-VOj`89M;%667D%CQU=3Drh{qM0 zAvVf6uL|ZOdoKP62@?r+=3D4!x`B6#>rZcIM&V!-8`Mg?<`(a#LdS2FB+S0h6jJD&5V zf=3DN^=3DmbU(pg-+qYe-+$~@QS+{;syDNVv?At;Cp0#6MxEy9?7tI>v`r9Q5D>l6_OrDWFa8L&K}!rJD<`s4F5e?}HZo+;M3;Iak{X&YGD^P&d0n$}6v~!P27A?X zv4cr*JW5pn*o`RVGl%dju>!zY!u3)eip{+X*`o-$h8mFG{%NH13Hm25_$uJ4RG&6^ z;S$S`U&6TpLAh;R!np!d?nCKJIG48sl zI9E`GbCochE2zS`eC9UHYve-KmB_9sg_p4|BfF*)5mb>~Q_hX-nlg$3KqCh5n4F31 z3RQ4?H4@oXBavM-X<*A$^FHWWMvX*v)ktJl%~NRGQ{#y23e{YTx}}Wl3Qf5JpcUCw z%E+$JBg`pfWLM}(0U6m9`aZ#ue?b?aF}lEv>}70k%4(A^4tk?lXEU`BR@{!776fq+6kQ}9l<`HF%W*%dMk>6ejRp$Q6RWLKz8 z!Hnz*Em1HdyFyzO{0X)hRWKvFLP-TPvMY2z!CctT5d|}{EA$x!KP7ljFeAG{Pb-*_ zU7_a{%*d|L%L-;>S4eluI2qX$Dp4>ayFyh8W@J~WLBWjd3awJ`PL3_2U`BR@u2L`~ zyFxcBn2}wfqY7qZSLi+kGqNjmQo)Su3O%J@Ms|gMpey*O;j)=3DyF#-R z41UFU6wJu3&;|uFvMaP#!Hnz*{hbAK?jKh$BfCNmDwvU7p(hlaz_uKETEUF$3jI*Q zjO+^iQo)Su3f<_Du`xy~^nL|1Mk{oef}LURN+HDwHp(F)Zmcr^KUiGmrU71}ItDQ$XzZVJUx z6-9LxlT$jvHJMnbYjKkBYdAc4Nj^?@*D?54KB9t6O(A^G* z|EvQwti(u^{uqTPH{FYFN^U~!$?eAH(dy*yvBoWcrq$evVl^YAuahXO*X)wMUPB2( zEByujO!s~eWuTg(6*a;cC0}N(GkB@hydPNJ7?-_WYfRGTQiL=3D&)Jz+sp*&R zP~}I^;fM+|;Io@GL!9}WXQ(id+V@&z{<#Kar_g7k`}N{;`nx96pI`brn(415+uy%g z)!5(VR(~^x_4ie)jOvfxAY6pieyJKL{Tloa!6KRdilx7wXZkD2_V-Jx8vFac)nCJ~ z{(L$8P39`O^(9utV$~h`Ya3_d(=3DGkYzYA%i)2;K>^+?v)qhxo(PziVYCK7808mzwz z#G(JL;haA1Lqp1)|2r<(*U+X!p!|+KRDJ|K*yFN$a3D|hQ2$5++Wwi}Y8z5P{?l(~ z4b}F~*!C{8CT;(WZGVz&*E*2J(K`^O+Mb!){%@;snaMUaB=3DjTy>36+|X)h=3DO(cX(P3*7(~-DVZ~ z7bHLnI&iq&YizyDs-sQ+hSmAaXt4xc0~wC6x#>T#>htwX`}KCa`t-c*sv*8^w_oqh zyk6*dov>eLI-kD9@%p{?>m7FOMct0qGORxP73ATs9piq?t{b-tO#g%R`s0}QPtb?EYbZ<|v&sifrS){C@*L~+2~@69uNg!(eX*7QW#rFuzv*pUuhiecA|)V8zEdyzT7rnTyrfsxw3M`Vq+?LzDst##!-R(os8$AF_&P zXY?)$fPNrXU6M%`2H>m-82+X43*UrkuuT=3DQ6#D(J}aMbs?Lb$7b~jD6mEl zA?YU4Wi9epM3EI!GN@v01WVU5mP4OBU@_^ZrAg%6PJyU)pvk2A+tBS)37ZZcK^X>T zPxo50co74+0maElkTSJFD_=3DOi{yMJ2csl?i+W~g~)xmgn@bydw6EYnvaL7Q$;463;=3DjsCuC^+?<-gihZFXSJxYg@EhaCQ^bLnk%=3DuZ90whNHOe=3D{a&cY+4o+N0B< z6RYr-6i~zPmqR-^1Z?i=3DkG6d&x>wgA8FCGhp?0eJEnO zc@2_+Vc%BQAmy1Zb@!1+-FpJ=3DD$vOiI0ISrY6_WuJJLD1%v0Cb{_*- zOqV1&d`CGXxBe{t?C>#=3D#q{VuMPirld#q#X9PNOQfh^_-Nu+$Qu**XIIlS5DV<3xJ zq7#qT`e>UsOZB^vIN%$?(;Th;8m%4lfyy7H#r%|Vpi+FM&2PG16jy3i&-yYd&I{;7IUWVK|f!F zqZ+KUxsL11VHbiX z@t7EM}v?au-tmJ?vBNLdw5az}L`n{xJd7T}T`V z0!K7$4;m}cyu0zox(kUp)?G*}W!;6uT>CDhy8)XfSKGb|i8WXZk2kn}JTV_K|#!y7WpVJ_`=3DxA$K8pZ8rg%Ly`a$24mRdWj!%8Nty4ZY5YHAO~MCO~4Nlya1r*E{M{SiNvJw zEi9kAq>9LQZ$W{Q>LmcVf1vA)x1uu`Da}zQ=3DU&4MjdYORgE+jVNZDR#> z7t(%~QgMkViBp!7a(!(f&UnRhE z?2~wu-Hit_I`PNLjB@KPq#psUu``|i-Gq$s)?G;V0^3Ru9tp-P-%gK)=3D~j0kRii+$Hj=3Dm}C^VsKBUyZAHtkV& zAuUEug?$&&ZAkd6yO2HtSo2wTAw7zO>9g)a;(`_XthG%eQzsOxko}U5vTE+lepv0L4R#FZ#_tGkfSAm8r}02SjOC6R^P>MkUf zVT3C3zd*Rbt?okN$mY9w=3DpKLaJE*(FEulB32(NMPfIu4m829IP_Yw~Ci60=3DpL-U;A z9F|rfA$K8p)LlqZkv6QmkhTGypzcEAf@*Gc7ZPD}g1QUIgbIQfc6ArhWhn1uCBwQ4 z>2rYH3``jR!`UdPxqBf=3D#y__Pu<8B`)@1yTc*Rh$Tiu1U4{*8rCQk4dtm=3D2GyO0Wz zAJRPPE~G!nQclEc(~QcKp+%;-O`b&iSQpAGvLOn}Bsm&WM=3D3Uo-{-{B)64$9cNhp2 zn&5>?Wm29H3K8|DS%HMS=3Db+_1G8fpH9KEW32fbkB(QZC(tpU1oTA)1kAW;z+jNq@=3D6eK>s_l|+`|bvnR$VL!)5k!Ts!Jp>!pA_Cs!JtN?E4@XxGF4( z(ONkJS*mvEzeOKjwl6msRYmj!VEl9(p57Q9a+8sN@-669ZZh%*1pErx@&^TEAd7#B zfZbRNe~4g}n|nj`6yA&E|96Z}^GhI$UjkYDDv-s)n~bVw+>0_E-egq0=3Dtlqzxyh({ z@vksIH*YekzVP<|HTT_Y@gg63Hr>3*sCtPXaIu>=3D8C5T3e!2U@=3D(~CuVZWO<8C5Tz z2{`0_56iEh0@L8;O-9u#3D0+Pp4F>5055Utpr`6JR{>t*=3D1oS`EiBXS=3D1oS`Yi|SG z;gBZr)^6-ARVK)=3Di;ay^ZRG?NoWmxvwEt22FISHzKK_2_r*pGOFJBpC~Ig8C7?&gX;Ns$W2Do(Tyl&nv9Q; zn~bW9g*7}3MX9-X0NI8_rA!Lk0@zKD%A{Zi)(TXKo+nMYj-${#3`MEA}z)=3D3c>a?n1bQYQaVj$Xx#N}2qcz@|AFbW_0Z=3DnaWV2^8w+z|E+XKoLRB?WzG> zOjV4V7muYL77dL04r+NRw`(LS<#Ln=3DR&acNiAwQHREl4sQv4E?;%~vQ-F}Hm@jr#) z9>0o8@vwnlO&RLSeM7-1B>-KH`-Xy#Fh}ki3O*?yqf&z3Cn)y~1;^+DGb$xmtKetQ zU9d&Lj7kaaR4}7bf=3DLCR0+xa|D40R7&u61v4rocv``XN(r7-Fr!j}l`iR* zQ7OTYf*F+(T%q8PVljj53T9MFFsWchr3CL*@QZB!Aq6ukCHP+oW>iY>X9{LiO7Im0 zGb$x$8qzPLQi2l{%&3%Loq`#a5?rESMx_L|D41Lmj4GH>DZ!+I8I=3D+|pkPL&1dk|~ zQ7OUCDEKMCgMvRu{5-8-Mx_LwS1_Yef-ftWQ7J*)E#qWVO0Y!1j7kYsDVR|y!3G60 zDkZo|!Hh}?Mik7bl;BkgW>iY>W(6}UC3sZ9j7kaKr(i~<1WziMQ7OTv6wIiU;4c)+ zsFYx7o{WuADZz;fW>iXWmV)a@(W?~9sFdIa1v4roxL3i9N(ug*1#|8nS1_Yef)6T~ zQ7OSE6wIiU;L{4GnIiZ@1v4ro_)7&dDkXTMN5;mel;Han%&3&$T?&qJY@bvxqf&yO zQ!tgw;NuErR7&uSmCt#-s9;8=3D1YcJ$qf&z7^QA9Fr39xd_}!$>P6ab6B^XyQqf&xb zDVR|y!NUqZ%yvGmU>Y}q4=3D9*XDZ$eUW>iY>TMA}WO7Q0jW>iXWtSMt)R7$W;!Hh}? zE>SR}Qi7WWmK%O1byFzH-9A$`#W6X#+b7gOa1zbcda)J(j_@C5BLCs{c_2b3OB6&g zO|@4ZM=3D}EET`^yL3aNn0s^f-XKd5dq2&&r*D5~e6ohh`Z>v{TYlu!{Bd2CCZ|9Na@ z>NNQvTugBAUap*p5nOpQY8p{gnIYbTE6-x^GsJsv6+h{laS2OZ#p+ru`#!V-5dP~| zf8a;hT@K59F<$)=3D?5ZbteU9pE-QBnGQ62L6JnjJ*8c^_PK|7kU~2Zg6f zb98p1QQT{x&H0t}_By<2Q*X0Qa~4X%sqmUr=3Dq40^BjjUN^8HNCyAc@SKUc>*etgS+ z6TdsJ4LST*b#k8Vxu{q@Zzpp2uj>8UhfvwA#p^Ii<)XL^`E*efTPwSaec``dE77)c zQCMCE!}c<`>1A*|y$+=3D;FGJp+_cFNYWiT49XC>uja32J0%)FI3%FE!Um%*4#GIG<) z;6B($kX{D&^#ncg!-MS0V5Bg#BK674rT-IOL^QA@7fb8@%)?@^Bz6_htB_~v z9PK~>y$X3FB#|nhS0S%ZdsQKts$h*}PuR`AKoTT?loYox#H7~sic}F;1 z(@U>H-iJ6_oNvt@g> z(yQQYm#$grqi9BEt>g10zy;&<53m=3D09$PS85MJ~y=3D2z-uha!F+TTrda(5p}|Rh6Ni zpkSIRL$5-?&5~bCuYzx`jE7zY1)Abj7%^`?kmIFSVZ;IsNb}OGFk&HLHzrq#*Ci}d z>M@t&kKk$>02%NSEx#FX5y@a=3Dt3i)|#{z*JMCZ8p=3D;T6)WkpCUY z`M;4&K1=3D?<%oA9Rd=3DIeUG5IXvL08UC#l^p(ncJI(NAYje!01&dexVFx(X4oR*bmVrITyi z1@tNu8~T-Ouz+5LVz<00*YfGD@QBZ%#v zvt$Jxg_J1y>m-xUl1>4+wk6#HK0z=3DcAU`xJ*)QPB1aA<~$5HWM<}r!+l7AMEcq^fc z0+O8|T@)Vk8G>|Cc+8gw(naAh3-BzVi^5}a@FjFnc+5=3D%e}adbUWMX`#IY$}h2knA z-%GDTaW#*DC=3D*3<#e3faaCC9;f2_rO@hTLb6_8$q;%{BdTzVCXzugBAx02(*Org&r zZ3L_HjieEE!Y;X*k~TC`yb8rn-GVHy*e1VI0}u#gq2e!+w4US3VtyW5{3C)RuE%@g z-fr`YNPo>v@7CP(DwKrCSozF$KMts*b`G9ydKF6MtRqOTLdh}#=3D~XDLV>9_W6lOQQ z3Z)GcCvJKbN@ohg)2mQAi@zS?rdOeKuGFPhp>!S_&u_%5T(5$gUWL+DZYyqj6-u{W zjxru|FP>u$;8C_64`htMpL}MBSE2M({R4oNSE2L|`lCn`(5q1Tnm!7!RzR;p>Fbif zao*&pJto_7)2lFg@-v(_y$WNd{t&rhT__$iod!woRt$bj?N`{2_c}bs)XAK@^eT+0 zXI~~h!v_k+)>omtN34G1*f@{jYQ%1O6~@lK2pP(&Fm~akfZy8((1fmyVDV?OX*azJWwU>U9OYFg>(E(`GV-(zx89`m!T&6jjRSW7~$ zLV4gD$S}pLP(Fp<s(OHORqx3HwY`QLd8=3DL zpa{ORrgf^~zyu`nS;-WyLdEw70ek6HsQBTJ0BT-(6)K+N?+%z=3DdKD^uG!8mUv6o(j zisz>TF8AKV3I2jr{a$(%Dt`GW;E?8~SE1sre@8Ws`E|VTnB{okG5KY*#~dj+MElrJ zAzP6RQBWpHx%%8=3DvRRLOR_mr$q2hZhz+FNU&#JvW1%ZA_>jE(Pvqy*Tt2aULZ|*G00o;s=3Do7XHZ)gRN zV1^U6OTt}nH>h;N#gZ@!=3DvA0-i6ll8(5o=3DvQb`mS(5o;ZED6i2Fab_NG@Z}(i}-o$ zgos{)*?3GJp81t{6!Y`giIdl0u*Hvq`X&Yh{0iEd7!;6Rg^5!Hq*q~Lh+vhQdqdTf zgJ|MSy$WtBTU9eIMHx4}3RR0f0MHb#Le=3D6AVZL5^6{;>g4p8&n%@!|u7_jN3SD|VN z?UTh`qN!>r^UJ;TDpV~a?Dx{EP__J7z#;E@SboJzfE&E@Dpai`Jl{*NLe(l->z8=3Dx zRj69i0CPoFTDy??e_p4@Y1VL z)j_)4=3DcQMns*?V%Tx9%|8Jw?V*!BK^ zTxpEo-e%vFF^NjFJ$g*KEXJ+Gga6978zGasnn%9X6@gF8l<_?>*W=3DGvqDL}p-s)j4 z5mh!CRTY=3DdLR)2&>*_(GQ7?wDv}ox{)*-S~F5e^fK4i$Ci7xdJ3W0z0B)lvn=3DpF;eUp1R) zf^L2@>z_+!L?J=3DLo@+ex^@?98&@=3DlO%0~H+9U+kT5(>oEU z5%VO!nGH-CiDoSCMDgPw|G*>6Ddsn`fhPr|cOvk8f<^phHZVpPnBIv%t%9EcY62|^ zrgtK+Q^6$sKvKb{fSSM!3Z{1=3Da9F|gP6TdOFufCj(+Z|{B5+p0^iBjSUD7YT6M>L| z>759yP%ym{fp!JcI}u1KnBIxN-3q36BJhxc>75AtmxAe?2>eXJ^iBj`Q82v|0n?Cv z>758nP%ym{fjR}#I}uo-V0tG4TNF(1L?EhQdM5%&1=3DBkbIG|v9Cjv(lOz%YCGYY16 zB5+#4^iBkxRxrI2f#(%W??m8b1=3DBkb(A_dldM5%U3Z{1=3DP^Dl>h(Lpa>759yQZT&} zfrx_Xod{f|V0tG4H!GOliNH|>(>oEkPr>v~1WqcL-ig3d3Z{1=3D@CyagI}s?&ld;h| z5tyi8dM5(26kJD&UZr4qCjuK3Oz%WsuY&2F2>hJ|bM7BkFufCj2Ng{3MBoVp(>oD( zTEXvUJ3mw~y%T|7Dwy7hz>OY`ZBoSy@Y@^?C*^&PQmnP1Rhr~Rf@nFE1%eSQNi?S z1YTD#eHwxB`GP(AGy>BVOrJ)eQ^E9U1mX&&Pa|-Zg6Y!;99A%W8i9{1m_Cib0}7^3 zBXC;5^l1dXrC|Cr0zX%91F2=3DKDPy2dBT%Pc`ZNMd6ilB+V6%exn+Czz`WNuWV}?+n zXcBW4NKWzd7UmR8vXJ12#en$FI=3D@4=3DM56e|^(fV}hGV!1ZB(}#Td*)S@-;5kI#hE2#r*O$ zuKy$o>wftf*RQ_DE&c_Xp6dO7P{w1c8qI|sVr`RowoQLlriB||xu4pfz^}-g9Kibf z@bT~tES+wiMVWUq`6@_MH=3Dh9(zkuZQRbYi%Pz%?k?pDprm~Rd2pO9TEPN4O*{KsDnwR(rw2wAUz*vHWl8x_PBYWW;i9j|=3Dmzu<>8eUu(3EcF?M;|n*J zjne7XaZT2Iz6+5B4?z(?@XJ`uC|u}UPUJ=3D zW~$9cD+N|Euc?$tpWP@%sq0OptTD10?eM;)!ctUST!Dq3quM~Fiz=3D8=3DY-ONdl`*Os zQ!JS$11KGX9~y$8qD;?@VoY`vP;$oTQ!3a~S)NoVw+4acahAvoKaWMmv8)=3D`__Cad zRia7L#>a$gg43E4i!eL&Y- z<%gG{jp=3Dxy@dZxMbr=3D)-oKlg~6ii)NDyUS2T<=3DrnPpE=3DshQkK5JSp!ntapykmLCn-!9lY5psmizN;^a(Ju78-FvwNTg~MmOO02I@ z!n-L)j$%yBIT;YFE!m8>&C5z1$g@=3DpZnd7Q-jZ+YEvC|2@D-)n=3DL>B8!xuzXBQmTa z+sDYPBEgLwk=3D!zSOPwjQ`+|yMD=3D(wCB-lwa%1eorkx^bssl1FM#@1RU4cA&GJ4ru> z@B>+%A*EAu$!xGwhz(nZ5FU2!^7vX!?ef!{L`ou_Zgckx#oc6Mi@Sw~E$*(*@lK?3`>Efz_#Jfcu00BuZ8 zwYbMhVh6VigYzAtK&0IaTS(M8-{6SLeC}}8(L@d=3DN}SAe5UaE?OVKHU;kb>?$qJJT z98w~8i*` z+5R}ZmK;g7Hrq;$JZsHr9c_;0uz2enx>~!MzID1=3DpSuET3L7YVH>y5yu~?=3DE4zk0B zy*VrNNOD`Oxr0xc-0B)>C8cat?u%qU3rvs%p`5 zNas<4%+D>BgNFrKrYGMmN@hR& z8!;0*sUwF%|JPbjvV2OS<*CbY?3tTo4ZfY1WjveDsh4HUBMY+c6>BZbHU~C7hgV=3Du zQ3_XMF4uvdDW5J|)-c79M;C{X4rNtW``99) zeVTI{n(o-2W@NW5Ik7km9&%>kPJlBD-5PMEkhq*K6nkTVsd2cppOYO~4tKyNk>w3=3D zhU{>;yfDnOu`rj6c|Lc_|MP^Lu@n5a`ZqG-5AyCWvcF}Nvnh&7p&wCO3OUF$*G*^> zGtS?+r17>1c}oEUTl*85G{OcXP@!Iv;k=3D^<30{%N8s~~^o{VrG^tI=3D zW-=3DKXZrPpc$dJ~jWhO7l=3D`v@8p3HEH*4m5+70X19f&wvT8yZB|Ss16i1e8qwvBMZN z(~-p6SvDz>U}rlB_8e6|D`)3AwrtFBo_zqZ{3;Z&wpMT1Y~W9prLvOH>N7*a7@*x} z&o^+aaB>{Zg|O+!$Z69N$BHG~1y4&XiS4k|EJeGd2y_E?a<&ub_8G?H=3D-^pVlyi<5 z10EKerie=3D0gahJb(l+8)NvQdm!k9*rg<0!uvo(4jN8jS?Q7K4kvt8kaPi`V@+4f+m z$+m`w-puNsYk663&6C|?6foIvtJ|1cLv^_+TU66F`*b3COST_Y7fTHnzzz-Qun&=3D) zYV+LYY*;nB-IFV`w)&BZdSC zxE9H#8;TmQ3JEI6deeNi+#aFi_&aDRSNq2Q0{_@>DGJASHa;Pkp`1TwDR+v$sSfdH z>6;cMPA6yD78s|-X;&Bfct)my|8m^jIXvO;c~hp$BsJ6PZOdq+VK|qh#nNxXNtT)K zx$*(x+1Z$!+SGo`?rlMB2`vh0hc=3DFLn=3DL36t2?~lFvesH=3DXlK^tnnsuG+aX22II>x zeuaEiCqOv8l>uu-R`kQtqViTLsk7RaLTj=3DttWJauZ})IB3-+eJ6$VypS4cIi$l`u% zQsn+(Tb$rSRom@lJGD_nMdXzdpH3xebTwKUqm-htPNk?UD_ih!iLDe>C|zuvQ#Tr) z5lXV1R%SJ~3At*L!?BH!RJ3mq2uJUCdbz7Jij0W48e4grWUEh;9ZV}lBpSscM$kQc z*;yXW#^4R-;od5l7K};uv02)2 z5?993jEJ)pDN6v^s+5&n?rbE315vBquyGE5rBf4tVr8*)uG~_ihqK!zF{M;xBuVq| z;>zjLlEpk7-@^rs!}|>#Yqb0+yAPwnL%o2jW9XV+wXDI(N$wmfc71X!V%${NnA1g0fsk>M zv+xC&2wXANMCd5D95eHBh!ynqhWnd?SQR;*k2cTU(f*pz=3D8i2+_SMPGJuTp*svJ@d zW`!P)VRk@=3DC2>Q}dJeHoVnI}wEiOq&a0l8H%H%nktF>p;I=3DG|m9IBd*FJ)ZXNAS%H zep~=3Dyc{=3D_hvEl!zXfl=3D5>XTiAkyO{N`bb|anTo{f`yFYh1F>eI=3D=3D`o7rC`rfXt`hD}~hUdH4{L1y#BS&xXVo>>jpp`{c}w6eUe$L;2L_{EkyNz%Z6XR- zdz&SJQmqch-(AtJ-L;qZ#ZqkA`9#<5NO$+3YA}gZ)M`8yM;<=3DTOY<*k5vyH^cu%YsX?zRQYmXNn!1Z39jtuTb zK4J8kV0(m9y9T2Xj*yA|Xuky|tvN_;M0z5K`E(_^IdrCCiLPCdcs$CHGM!8f_N3!o zL=3Dlsu^mHoLXQ%f>2a~Y`2P<#wj`1NG2MUa{AY^hPiS<_?s{_J!ZRCYodqOboVd(_P zSgy;vWA@6)g320Rj^8UpO}@skVsYYxiJgfATLc(MCZmJadhlb}LsWzDpK*b14D=3Dk_ zw&g;z*F5cZ8RaH!_&0VP*k-oye}>oeyB3T#8(cM|cw1`LoyF_KDP#XBS7;3WkIa&0 zWW^T~s@vkK0{^1}Kg5Z2@C8k8X=3D>Tpa=3DqEm>B6mH`agisT-r@=3DE9LS}pumlGh%m@y^!p;z4A~;YhM{rP(*yDw8$p{X@w%{O~5gbe?!9mCt9FnU9 z2f?i1V9F^tq*7LJFzFN=3DOlJj$ytM@fM4Ur#K&E7cIAn?~MUZbv5r~!?DMG0N>Z$EY z^y8~Y2nC9jc)G6-TLL|dzn4w?vq0E6o4D1}+aizi+xTB?8-H8e$u;dizsvuR+~sY7 zLsrdh=3Ds8RaPId0&nav)|%Uyi{-!k(*2ERgUyr`MYl4y1nsJ;1G-p;~e z<8*%`UQIZ15apsh>DJpMJyOzXrdzi5UW^h$Jt(m|z5Vm0hVR+ggU01%vr*J+q@GP1 zBRhe296Q($C_EH#+7}FP@E!kNN>mF|#tTI{$zKGHML;1zRmZaa)Z+ zuC2xpd{Z?BFEeTkTT*HaAX|;eW;)M5$o(^F3^aoOo9Ca5po6NHtHwAbA`xgGe*iDu znU3|PYGd&WmALb|9+{{h<4c-e`pQ)cTlbiwjg5y&TR#7-&F#~-FMxm;v6!-OPfvR7 zVYdNrq1#yN)(^D(+~0V*%Gh$I)L8IBdQs!H?h8BJh7mr1!ZpWmz-f8h?KZmWkgQA* z>LJuYh^M2i(sWFNVh~kw2Y$no&L*`B=3Dn9FCWS6>8eghoN-4+n`ll#;vZ!#=3Dl-|mXt24?mdi>-@NM3>C z-zQwhq?V}C2G*jv6Ssq*3FDYc@N&<|9mZJmz}^KH8P8nRVV*TU=3Dz13KEv%hjQBMn> zLO4P~ox6-@v>xM$t3ecpjWY8{i}4Zt&_%|7T)Eh|*J!Rs=3Dij>0Jci!yF;3k2k4S#v z$_}KyX7s##gK^i@=3DAqvh&*~jU%B(ZGj~U;&x}(MTHyw?k8@K0x$K0m?Jav!xY5utk zjXZfJx8j#wt|_`vaK_lP7-aXMU4!Nvy!)W7Euz=3D&#!z|FrpjR8s-_}p=3D(?<`iGGJxvMyX_7lcSF7pgApg+jRbJwu`Vb>O-v$V5mv*u$ik) z$5Kx^^Si0dFB#(xU?Cs4;s{E7$xZTm=3D!#=3D3{$+Q^$Bi9_4F6(d$1xQ7<`svK`w6#e zl3srl>Bp|%+&=3DA23A`BaXWizp`VZdslY_>+SH57J5k%^qV;)yvoJ?`Id4_+@uN&il zq`P%6;9}!vL(Rr5o(}w#c?iMX0BnKlrPA$JpFz_<&O2c|KXk%4f|Ac)z4*&*;L(SA zo8FD{;|gQ2*(iK=3D-OAIQX8mQx^?Ju~N{sjJ=3DkQ)cJ?|kTe>x;MxYffM9^6kVz_J|o z96=3D{8aEAPO@e29Nqv7>eo49#_{XXcb8NJYW8b7k82K33HW2gTl^5RLz$429yu7>#e z`*}<8v%v?9qGPw9@()yJM?8m&hB>% z2gTzrbdb!~!3?jAI7=3DaW13&+jT3ok_H+d7Rn`hbn! zD9$1#br${rVA5?o;W=3DP@^XfCkJ!DDa_G{`ONEaJ5b;e^ja$}nNk$qN>_-pqm;{&>R z1_LnexTeD>a81{ZJ9O84DzYbrgy%i3S^5+6Qx|VT+mwF5<)O#^(da#5R5TmCi*Gi! zExhoC1v5LNodC8OmCeTY_JhMaja%}}L(du4U9s5sle^hCa7DB6NB0Zi%Zxs?-e}+=3D zES~XI4yV(&KhNwzr>FM`seC5?&~an`8RG~0AzF^+DRJ82`96rnH6B(1kb~FtXrT?)+Hpn; z#&MX2(r?*Je1jNDw@~s4;emlakDY7*qB9W zzMINm7iINC?ugwzMuSO8l|U+P$HN-VeM20jDXd7Hyg84X1T2tZ=3DzB>Ln+0+Q)B11p@mfx^fOKvqeRS^53ngy?5m5cZSOPJ z96;NLvCFVyOVxE5sEg(w*E;^Ls&P>ly8F~MP&ZH< zDhF=3D3)WuC)iPbnSH5vW#7V#l(@#?Q1I`THHu5w;IFE#&1hL$*N4S!B*{?V42wbaz=3D zC^R>S(5%Y{&1V*8gr#|6_y77!XE}${SlDGbTk8aVk)bu(GV5`dnwrA^y@9{xcRK@Dv+A?Poed z%tQ&OqNgNs!Wi3JZ}cBAFE_^48T)#St`p{dV}J9_IPRS>)*W*#ExjK4%rW!0IS*Rb zv&P;Rj7@k`aL5>gKYMXtcNw)EqD*`NV#1~U(_0FQ^O2=3D*9fJE8c`*Ju;bob)CQ&Eg zZdKpSd3FcX0<5z($m-Zzf^_(~~_L{2=3DpA(XuwQ;<&wv+#jh7k#Ff4kA4 ze;sD8tM8BX;?n>GO2576!fbKPa&lQ>!Vd1R_deeY4%mk`n7$jNeG_ zhvPoQeEf2Vh~3)3=3Ds-eZ;?WbUcSZUne4h)E>IMm@_Uy$(wo?o0>58WqT#qT{>OL8@ z32!Lzer-#?@ME`od_#`@+oWGdIUNx0{ou zU;LT9T{DeuYG#SvXg;j|8FS1N&%X5C&PBb^Mx(jIn7g>eXgV-^TASfb8Pn>Fz4RIE zF*csK#i&ae6Ann(!#{>w;sxV5xG(*@kb4%jFJOb zqsi0u&40PGb=3D}lU&9A5TnUfB^44R2rG;_$4zVxj5rM+fFsd<0Pa~A`lO%2KND7&t)GbXDo?$HCDwApx(Yf5=3D5ynkn|pw;spH@qj=3D zg#XXNA9KUe~b2-x$Ay>h5f1%Fe;KC_vy)ZdJjZy#IE`KSat^SOI# zX4eE?+nXs>A3IbN*_r(oF!#(y+V~fzgx58F%;ujNLv`yr-`CiA_V|lt%(bQDrGtyi z)7xA##<;pme!G1^Y*w<-{Mg=3DucbKQQw;-oClDv#If5FaCG< z;m1oG@qc65snV@$4<0^x;Y4GjnW|pYc=3DoV4y0OZ*|LRkvNq^&|4;y>y%?2b;{pTe$(dJt=3DvbA7VHaoaH0Uz<;*<)_7Gr;kpzR?=3Da79 zyA#m>HF|bbMW-CE3h@d-Qm72qi|1e`cVrkzUMb!Bu-f1|JVR?PoUx_NWkQUe5RrNr z@ckAd^-V=3DzRyw}3Qulx3c`Ew>^V>aCz1FP?P zz^D^b0 z=3Dak2|%kl8nUm>_`=3DnxY(FE>O=3D&uvY+YqGwHPCh7%ANtk!mzj zJxQauIZSJ`%X7kWIDI`uXC)sd4N(T-G);dgy1%aVmC;*|*WcMB5quNzPB+)^xt1S9 zm%duMXHnytUGFb_p!Y)N-pw#27Yn$gA;h;9o~hp2*lAY3G}`!v_JZDM_)g)0uaF4I zP_M%lhS;YXg`j(x@*yaS*kZyp0TSB_bh@;Mz;x$GZ+vdPbJ&#y=3Dgnc~-YW68VA57> zGyoe_sz)itA|Lqy(i;id^TPFQD8_#?x^S)~>J1fOYP5%TD1lfefi|8~kU+*O8slr< zhwl_!#&0y9sNZ+ZF@fnFyYZTy!0@4sD_vo~&Akvo69{_m3_wvzP!NkvooxVi`C9Ba*%8y__H zisVQp(t};maI9Nh2@~!aO!S8t_@gP~d^j0Rg|R;+24krqZC!j_PtVeHDiQ8WBzC6< zGERzcWZ$d{)CXzdcyuqEqw%@np1#E1SiC2ptxqQg)BWoPHo^37*9<3j!Nk5Z-2*>J zJT-G}IHh&;a!cFT?ylXe!^`}$OeUixb$u8-?3}2p(p>!`BnmtQf zzp1l*WqAFvb?eq@1A_^8k@~~2_?`qVQi3;0^&5^y`lGZh0Hxac<%2^5sl=3DK{a@W$n zUe0t^e`c5%0tOk5#=3DEt?UE!YCU@~PpCBog&uEA)JU4I#ex+*aUhk;!iZ^NQQYpFfJ zWS7I{$cs-OvPY?BLf2%Lm2K5h1_IU0?5R=3D z5lMS7=3DBSLZH*BpN>vF!ya8F_|Ot*75os4Q>y1(O`wN(x?fb&CJj>|tH@$R*_*s47O zj76a@IhPAQtZtO!wN6^^KmwSK4r*B8NN-Zxg*z3r)c$ZkuHwRa?8TC3t5@JTm>6nH zq+&fo>Yk~$Jc4Q)aTis8q&1p~IQtFvvRBZ8yKZB|5a+(H-zg zN{iumEbEi#(l!l7;>n00d8s^GVpyQzj1f<2;c$9xm{-uuoSUInTpwnycQ`h%4`nDB z_9x;|x#2fsPXP58e|YsqVcpEzaB9C0b#EAF=3DY3)2O0-DG zTI(nR4EluMX3qjo5f`{%Y!CS$kw%lCq-11|BBb>zaGR92aUj+eU7wB)4z(sgKF$RI zcSnFmg%`|Dy3*P~PJLhmXGtNxow0aia3~z<1>1p7h>kGo_a)-JetD$h9CEbV&ske6 zxseQ(%H=3D6xv*yIk94fIfJRf)gh7?zxd5npUsT&dqLHx1n|ES`F8z;s08nMbRR2 z*^h?X&#)YWQ4F{z))$Q@Bp5F&%OAEpsYs3aV;6KFbpKLM*9<(!(4xD|J*rvbnTl-IF*h^8+)S=3D`LQk} zBZFPL8et8nWtm=3Do?Yde1+Mf2Nm3YPzwY1xGrE0O(5l{wRGgI9Q1$ggZWMB{e!d;F_ z13~O5TosrYWG!;>o4wH1cO~}DS_k3U7a3U23kRLc!h7_zo^%QuzqU4!Ol`te-k#`- zb!GNNwe<@*1OIz8!F_uKSMVvZYvULQ9EhNml00cRDcG9s-Y*#|@|u@-4<)5c9uFk*YShpfVV64AjGG2GWE zTE_5gpu0~C_j9VELTwyCaI8IUsx9-u7Q(ekY&$k}ku#S3z6|>=3Dctcs#sLS+2iNMIi z(R~Bhmbu4c55{(HMR92YEBk-_eD z14^N=3D=3D9YO2U7;(r4N@eU99D!ez|cQHs%o+}z`Mh26+un%oW$2T(YB7=3DuGl_`i+ zSv@;fSZU=3DRY|u_I(H%<;P=3DE`fl!~A&UEbcbu`iKwu3g)zjj~OP__fAuZCRK&u85?( zN;-BSZay2L1AUQmWXG)V%&^)h!`k|_u@v{mm2sfa7V67m1G}Pw=3DScO;t|}`@fh#iF z#vYktWxR_TC{{FAnAi$2CMXzN@0?mjc0~~)g~=3D$bz}^U<2V-x5LZUS#yOOar5PT%h zUMexeX%pgEbZ41(OsUCE7PWT+3N7foJ&|-DHiiCyKG{|@Xi8fmed(xkeb#`JAs%xX zSxAki1B-#$Hn(c6Fs-DfDk@yhw zD4smhvayL|4TlFJ-7}GoKeN=3DI+3L?6_2&X@SuBxU3bm8^T%S55SSXV4XF1TEy9saJ zuzF?NCT;ynT-mTzorXkbQZ#|ax}q}R92yVr5k(@L=3D;^`1ic3U=3Dx+$>^TbuOkTwx{n z(sAKan_kw%R}y138qflSq9%tae~tMd>2y-ocP6uGOKPW8+WCwIpNlyZz^ z!TF48X0(6HCee4YqL%wKPd3BEsXEzlyKRr8FqgPJE?H|4D6MuJ-}1;nWM>Q#AtTu- zJShN(ijMhnm$z@;5bcFNA032#n&H-1H+DyL6w0(kq^2{wYj2VgeIU`-7w+j!TI3aO zUD~0ohy6wHwY(2f({7V2DXIWZb@m{#$5vYt1g|U?Az`7Hvcb|1SK)M}ZGavd9c+ij zwIV&xC&yDc6lYEfw$cP$eJzhE8(AT>R2}}-MtdV&Lr$j2Xl9A9Fn|{BN)O`v*q82) z=3Dhk&nNiP>#OQtg_tW7CPV<4*>i7kt=3Db1)IyIr z4mwq99JJMbhkdJG&JjxSOUEI0a5Tj+^K$zT9$vi(yA~u5czu5~Mbfo)z^=3DhWW(O2x z2n7tALjq?2iwij)OS(fkg8`&GRoyL7C7Cy-cRJNwOYOI?>s&(nRJPnQVUSLE090Ex zRA9s@Lvkgpox@gDaQdd|vLTwJXtgPyW*Df{@P%3@BV02)nBA0f&Z{_ncPCTa$CdKA zES*Y0L9m(%CuwL|y`GmJQ$Hd%FNG$Ud2j8{YPeatrl}_$?X`)OI#8IjKfY{|-Fj?5OKCTF%dpbg@jwhTuINM9$R z2p+9dVIp@)z?PzdLuLVw5G|;8k z_}X$GeiUlJI8CU%;SEUG!KYfP3r7LiTJ}OLT20j3_x9o#-LDKuSm-d10X${c#lkS) z^7|}pHx)!eilkH-CcD8@u-=3DLKg~@>ydcekzUC`OWO)#6W11?^sNwJJcQ|ytQ;SjGx zxKvuPZu2sjW9+$#yhb0eP5^O9o+z=3DjyOo6OMaEz^j4WV9I7Y=3D{C5V-lHlzDwx~mJa zLWLoOBRgsJaNvOV+-9d`DM6XR5gmdJ&Xl7aULcDHAPPglQ5b{l7n)W{iv{6lC!MPp zb-}7tdi_Sb7AKe)nR<)CbwL;EqD37f22^J_+p_X`6s70eBrg=3DWX?hr+;$};ZV<8fW46@Xtdi&w z+I=3De9Tebm`7KfS5kt2karag#yAcrZ2{1m(i5t43Z1Qsb`Y%?8WgYE-PlR{zx$d=3DD` zrd$*KP#|KcxhIO#nN)C+$$GJR@x+jsjBG)|aB*;4b|gxAqxn=3DK28I)(sfLxnff;8# zt6Ue{I@p^v&{%kPbSPU}M2_H34MHSlI5`0AA6BiQo!tIN_A)|?T5?lig}5xCVJIZj z?9|U`p357HCaogyj||zQBN&&yxZa6@2)+cdiYc0q!E;E8R7CEno^S?_$N4LK*%sB(%u9E6h7hUj_%{y!A=3DG9NoL51x1u4iC$rK(Y6-m}xJC|BiJ#A;syO@aFd_tEA~ z+-+%h$)_e0D~Q+2WOf7@Gkgpph#?llX74eYlK@juieztzP3}N1|d0H zmTuUvv@^W9scjRiI>0n68I-~BS8j%L6$+|4&2_A6U)dH0dv%H7qiyA;@ba}yuu+6p zY-rlDazl8_ij~^Ax#Beg%|S(k8!ygHj^o&}Z1bvBD>p#k!U)qtXHPe{sE3r91o`&J z#wbTG?t3KVVV*P%>Kz-iKCc4pqmI}*9ik<%YPw~@D^{*riWSQ3LR?|=3DC7y%w6`Nbz(G}*CTLXiFJ|Blu z74Ek^R4~9+VsgnrmyBJD?+jy&lRyWQ(j@T=3DyINls-$G`xXz&|s#_2n!4Wb;%lk)wY zJHllfnpUh{37n`8C}j*-%@lhGhvjQMEN~j$XWE>)V55(8ONVRVF2?aagPGM$%eTx9 zH*MO;kx;$mfe=3DBX6c7-L;XRmbco)2W6v6fgyJ--nm%bk+<}_T4zzKc=3DryFLq*3Gb~ z%c{YqjiEpdjWg~**(bGhUv%fpS@VH5dJw`%>Y7B!hG*kG{!Yeyyr+2be zc;(uat>BA|pkvq=3Dg~VlaJL%!uIKZQjwxJ`uansUGE5l+(64b-Y4iP|$$4+=3D})M?3{ zh)}m+T7&ORc?&V~Sbt`!QX&QE4Vm}`T!9D(wL}BJKG{2`W&RuonaL(YK{k#p*zC#t zR)^%(95iDSMZDuJfzbDpcUw5n*OdN|RQxSwHgW71w0~x@5t!<2^)>#sZRwx`p zx*$#rXNe=3Dalk2M6dSO)Euh_HE6ESLC`J%aWs6-4^FR@( z6;fX)pHw6qqhWUN^Vxi~Q#c4OVQd@h(+2k`0T)(wH%kIQ%tDR9yr>t_UVtRDUM*v{ z%N+VFbcF{ad*49xY~Bdzou(TvLlYUMLEuUb)2IjtVc2se#HOX~2+e^Z3hH4FQF6&4 z#j;eGS!TzIAtVC@u(Sx$fkgtbK-eWW>{Hm%7(gN$MYa_ZAofQ#4yyu~nyf2Z;2TV` zt!X(IWGD*58128@6uDSyx(C-f#EjxStbCS(XdOOhHV`KgB5}?Owebosg_~BcTp8AO z!NUR108c0MV<)X)i=3DzT7>2M0t_rf)W6t!k!ZLJ`Lb<1fp*$8J=3D7nDG2wd3Tm)}_m7 zD9#f9QW)AY3~mWVm?v^%E8B|n4eT1WEh=3D*a2}EDrgd9#(cLwW zw$3`Jyq6O>2kF>RX;pv~UBfyHb!Lu&qKU}Tv#MYnY)0nBv2ru1-XeqCWD|gX+Yih9w39H#T*I1*tYJE!jcC z2N$=3D8Ho7F7T`a^sa+L&7Whq{>OhdA&Y3!eZZ$aepNZj7rfOndGl%fW@SSL)-+n<8; z%1{x>&C=3DMy;J`PSf$VI3;)V#PdQvpE@ZsnhkD;=3D;qu{X{Yl^`fY3Fo!g!6>Q0kh zD!qh6fn*d$P>>)v1`#SUE+~speg#o9Dl>zC&<-xBs8L)%S)zjCfbxImp7%ZH);YIA z#OHtJf1c^*NzQxT`)%ht%RP6gD#>Sjnv@raqGe0ZjAVD4Q+FcOJ?WH&O6M(?Ma=3DKR zbMj|q&T9?1#ADTvQ%~Q3oD1ZnrCuM9m+ay^`06r!&s{7JJM1Y$1(?{c%j-yq@YI!H zv{sUr>?0ZE(w+Krwm~KuPbl7aE1Ywl>}KLsy<(9#^4g|6UDX15FQXZ`2vA2#=3DE61FfSYD&d)Xgr$;68l)q4~AUS86U zAA3BRw20((L%?%kBsW{+U$GN$sP|YRxu2@ z3^n0g*ORuGS#X!UH-hDYf<$9*bovS9UJj#hr z9kKthk+tfAU6wR?qO7+Ra_OM%a`cT1&7a#e6EP!u$;`(4Of*s1k_1Lw1M-D2@>;Lj zo5-R9Wj%R^o=3DS+xADWlLpq&M?(EHmVvT>V;6=3DqLhiC zKKdu?NOBNp8T-i{JT~QraAiKKJL!5H$J0aZC-R4NXW|ETYl1xCsh}nVWBS8piT|lK z->8LzR&6w)py8Usbom~X6N08P@fdzaa6&M%>?+;>`9B!FnPuX`j9ycjcu%&*Q*2Rh zVZs*io^0KO-#xw=3DWlfMFJP&Saf}Go$TOs{ft3_zF3a%F8-fayt#0N{{F2$#C}k87ZUZ$j_+w4J%-Zc%knpYwLDs%(1qr`WA?P-96OPiqgz}ngz00>n zvuucN)@$~VIa0?zic+E_90#R6u=3DXn}NcdcZAZssKLBa_YiDT_xu;QBVCnP0fl#2TZH#k*m4yw!qE>J#mx19cUj8S+WJqL zxfP{^PWTKc9lEP{8;*X%C}zF|_!~>PTD!0^{Lw5HorH%$YeI0%T379Ph}RjJW^cuI zWn}ocW_G~LmyGv3;bVr%5&jU=3DgrJ0F)7twgjy+^#{D54Ulz{j{wpSSMdBR%^l_UJL zapni~0UZ0Nk?{j^Wl{oaK!TT>F3c0Y1C$;PtX*maZFV%GttCbzB&4>o6_#1EwnEp| zeAr+xGE51nojy#dNY6Dvl^|S?yW#OjGk5ZYCxFr(S<73&YPQ~JL_$Jp>rAj_ZF!lf zgAE2FnINQgdM2ny&yoqkq+;kztQM?=3D>&%*%C+r86?(u9KZL^A9fHWY{6Ykm8?gpLI zBk+TNqDXj*p>l+8HB_GPcu+c2*3Phkgi9*~SzBQQz0K822(8YDsZIrLBvMVn}$ap$ddaTmJY8pfJZM<_X_nr~+XdC>VggR`)oLLpQ&XszcBW_9TtB?`L}jiB7D(MIl{kyN>3j4;m^*_^*b_6Mh&}dR+B5dbCv}yvR^(gq!!u)(oQ<628+=3D1;V5)zuAn725N#V zVNx+$c6)p_JmrnY4B;h)YA2+vlpPKYoe8Z8!K`vMXOu}X^LD5Y80X$lcSR-z8)ONX zR@ZRsMZr|hC#Cz1L4W(&pacCeN?8dA9|x5_8t%f;hpghGfHbhzwsy@A;=3DjWd=3Du#93 z#|%{ze{|I_>nXoZYF!c8XnHbNRy(PvZ4 zd+QQIU1DtI&IKH>6d_wt6Rf5un;CC7F?9Nn{Trb*^p9tTHvb=3D)e-VjS_u*`}XfzEe zYBs6zuCy~aw91I&_9At@R=3Dcm|jg`_o9o80eXVw1%Zs_CN%uxON}0TbA2d{saBj1fo)BCZ z5N`*kCp2qU&a#rkp9H5RS-W_)l_Y){oR(y5&KxUA{QkL`(~_*!px0HL#HWMPlB}&s zNNP*=3Df97VrNkm9^0~%cuv=3Dg%B%6?d8jrK**8rJA`nB6r~*QJ}E0Q`-iGK5UGNYVC- zCWxGYNU=3D=3Dnw*fNyqR5ng+eqcc0gpt+MT&5$p)%}&>F5EGVyeH74iL)CsZeg4Pe91; zG@%z5AA^(4&LePBXKWWv1UwmK+PoP+LYXQh!(1JWb}G)zjN;rDD$Wn1%?+a_Xmb;x zG?|HZGrIh<_@1I=3DPLwU?<cgt2_H9n)V&@BiA20yA23W@u*C0*+dWkol3b{4JYb!0|deUI`B} z)N1DEC_fh$8Y=3Dfu!0m?05OOrgsQwHx^$^OG>mE1tDl^P|n=3DxJ>><3jFY}j084 z_^_c?xq0SzIvjac9*L*g+!H=3D(sECl0Q)v=3D&F3C29Q|S)$ni3=3D4X?v3JX+uSXoOnu; zm|ZCjIMUfwN{ra9JQ3mdkqafpG0Z`#IAXg(MTE&Q%sINJG0faPj1@+iXKs%&iCoQW zaC|E8+vuxESmxH2hYnd;mH$P6Il z@c7@cA#f9s*1vZm*LJ9k)Ln`pl2`(72es3Tp3GB(W`2#-arh@zEw__z^)0y~Db8Gx zM-g@r*7gbhur=3D{=3D63bzS(YcBaB85PvJ<6NjhSs12CkY~)!e_ikPl4<7p{jFp1)FV*HPN;dsnkX)J_=3D| z55vdf#+TRlL*U!)Z~Z0Sl}TCRsm`;qG=3DZ(zWcE-6o_TrkB~m=3D2@+wOx_k@~~4!V0Q zqEA~$LmcBaa6;g>%#}%L8JqD1n3D@!w@dHCAzll~XxR^qw%0(pSJx`|S_M~&;oNP* z`99#YmSPG!vDZ!snvwn8-Qz~I8BP6!>F4Mcz@J)*@Cid@xaZ zyNw}p0b&iU_6@CeN17Tl9Ch5!rOYAUU(OFa=3DljdK{%V8$UP*E2jSD(_uW4X`@I#=3D~ zi-{)F#&M_7DiG4Mo|UXUVg(85Sqrje;|Se+jKIbxjIA8u=3DM0sh#|I7N z%}TdHY8_yU?lNlagtRC#fban;=3D5?4>@cr^_~%Xb zy{`4O+Ni~eA~TJU-Kpn{JKjD7Hy=3D0dGOkEzhGs59DIH6=3D*eoV(gv&r_cdT7#1*@6g zZp?>-XB(|{LK@T)iZyHAdz!-NX;a=3D$M@} zx}CPBpqaA&U|35mbuJ(yP1&WCk@GL1REs7tqmzp{8gDnoR}TZ;YbnC78!Ag^L-01x z4B=3D0S5QrIqx=3D?dtP@yu2tKd;_#2+-=3D%rf!ahHEMlGiv37nBk_KLpX9f67jm-&;I!k zWF+$$xMs*Ho#AT56TsDrN!K6!FqbLDx4=3DJBk+L`3g=3Dl|mqV|@ANwC6>NsY!8O3NZ; zID*q;cEj0mC+POd8bSChD80C_R(qlmBs>6A`YPmm2we}-!n-%q!OJF+kdO{yIk#VY z`&rt5z?f<$d?eARY?(FsmOdq{GwsY0G7QyD|83NISf+DXQVO8nj&ee%2@=3DjTRF3eJit{3CtyYk5m7(&4Z?DjGN1Go<$T;R3TLnUT)@L=3D=3D za#oO#&gCftVKR=3D;yM*@R$TE(Tjrlf0de$SCwY(K1Ogi<4_&DaoFU{P@6aLOn1;S@R z>1Bbn1B}xG;TsK=3DCwvnqt?PCIOT*j%wi$Xx5pzh)2P({+k}gi<^Zo^H1tglB-#PTkI-t)ClPA>paU zR)H{S%b!8NfQ{dv+*fW|?*B^7;ojm#!Fub#jmsDDPCQS;jkV(SYYRkHpp;Azt};|R z;eDVc1{cfq5o`Z$SoPHeZk!k4=3D+}%nFNh)zji5}sN_J&ZCjFIA|A_JAT}f^|PKWnt zl+s+n-+-DJTq12_?McI?waqsd(%ciqLmOezmOnOpTUpxrxv^CsOxp5SNY_@{g7SZ0 zbeA#i^-Bj1tu-Qf!mB~0&lz7aOjGoeupVar*?7#n8}NOWa)($G4$U(ndBPA>dYryu zn5O8*=3D__W_6#brQK|IS%sF@Xjt(I~dIDV{Vo<=3DFdmaq|8=3D?(N1!!$*|fxcpviqlP; zIl{Llg2p*Q2buFQVYL ztcQQtDf1%B6d}#)6wyPn4gRv@>WVok{=3Dh`*onjksXu1)}6P|9U9N{KV>0L)#vy5U$ zc!8k`gzFNv!ZK?ctsr62so!<8p|AjD)vlvphxPCeJ7r!Z*Mu~$Q$!ERHuzoV>WVok zUTC8AyKb7E=3DZz?3o)g|`sMUmbfYNcX_KFoGoB)qnkhM3MIJ{fi4X|;#u@w@2!cYZ5 zdRFGcGHZXaf`s&}1zEFkcn{6|II@i6c4Iywq-SM5YvQOe&5Q`?Sqrjel!8ppZ9g|Fh^OFG&wv>CCXVS)vA+Pnmh}Wo{ z(7w-D$q-t@UL!L2BA1o+3tb35W~dzDr$DJ*^Cw&fj+RiW>l5Pl8DrjS6uWTfH%25+ zc$j(8og+LPln#Nlqpcv}vY6o6ctl0VxNYa-=3Dj36 zm&D&p9Nw1sc^tAL-UTp4m?T;12pQ);n6KSvDCp;CDj)S## z8o?al)rQIwUSFZh+D%5#8`YC=3D=3Dy)TNr`C;@a>oQCplI6l^&L?E3d*#b8m>&rco>KJ zOEwz9mqDe^u^-^*(^m11fHWXoL%3&KyK$NJlDS;V6CRA4Efa$=3DxozSmii%UrogM#W z1Io~%iVA+HwrAsig>+gkG{Es}b5AHwILAbuwnX`gVVa^p?WcJjy?MIx6rHEPp_CRA zzVB4dnl{1@7%ESAH7MQltbNG{wh`WIs663U4b?{YsG;(NKLM3Kww_1eON?TUaD|}? zgzqs_j-hU|6yZklqYOoP?{N&?jdBx zQl4wm5F`7a>QpyVZ$w&7Gx^OA0=3D~;qO!;RmspU(Dm?dt>s1lT6$>!d0NsmxSH0 z@h6lMf;s-#z>!Hg-R%n}bShJyaL@j!STKQmQ~eD%bdC{ebCc$acuAv3_SLN%WkftH zJY-|p3lT5e>2R>fILZ*x@PxphBR8QRcI=3D_AT$z-<>VVe^jQ2d@^@hq3-T*3n_|Vpv zQ49$`VyFUP(w2V)-T;NIMlnNp9VnF*Vj7drS8nu%>~<*JX>8>Q9|4u#AYU=3D0;seH3 z8)4Fx-yq*s*0)tiv*ka4xCPE1G(mU+Z!1=3DeFPoJkPxuv3>23Znj^1V!?*ya)SqBOC zY^&uoJvSqiqDZ(Fln#Qmi>)Bxdn*K4d%qPVys|>jT@;q$DE&()ui4hQzAc(%Lv*uV zvxi+cgFk7{}4eYfo zb|LO?1focYTkt~V2=3DU3EKxdw{#V{g*gy$M6Pk2_1=3D0u9{Y(wPDK zl_$KqLYK8?jG#Av{lijX<` zUy#8zWROjkxo|6bfxRLW^Uac47l4qpF9d1QToDkA}&RkkdNeQ(+YZ{j!w1(PzLu?Dwf`Ep;0Y-&LY%R6Z z(g)GFw3a*%6Z@D1czr^*xN)skTS6|eY8K?ntepZ4wVnfVQfWcf-fjg6yFqC|R7^2` zfQElUDIN&lcc4C`6mJB?NwAq}cDg=3DN;Pd2iDC=3DCd^4Wz4q|(x5V*O)=3DkYM+~?y=3D;AGAnF+Ea`^c1dWx}17SNT zJs4RlT0z1QP_YA6Hd%5)nUyOnS>p{chO*pv2np$2cQ|VoSV2NM(t@nft?VJ(_Roh6 z+EnW_G1bz3uWS43wWWJe%6uT4Y{JSBP64G;$=3DWn4=3D!W$JnEh{KK0~b|jg~iDnjoDu zT6w~2LFouwcfMjs#SO+*j_|^St+31*J*1p`Y5p{0D@#Z>H9;#O4XIH5tL#?TXfw9F zG_>rm+xIS%(l>+;8Y=3De!p)r)J0i0~8JmFMBdGpwJ7t-Cc^bxcX(ybn$tkJXF{U)Sm z8MK7QnIOCs&JQBXAf7fs6bR{7riI6u*@-_raJL%@FhqoO=3D5;4AMYaMSW#lc z$C|Fo5ZXj~CzN$?^pS)^;@eE98N%lc6){xCBGD5vODZhlgG^Y_;ed=3D-Gzo2_k(<=3Dg zewz6hN||ef&loC4xIY3_9h5J#c7zE(Pk3~NAZzoDV2<##3c**8E@X7I##Vul@u=3Dv+ zl;}c6N2e*Duk-VfrAH<~K95V7^q5WYn59Q%K!uhqv&JNdMM8$A1z$ZMt$uXvY0>MGS3rf!s)|MH;JYlXvkhQf&Fh@90A?S_?Ke~|7on&kk2pNx_Bdjqb zIad+VY04b&J!a{VNstjuNFRDcvqm>^Vj^S)v>-@*Pa$#YuS&k zH7&ZJ=3DvTI-64^!+M zA#68Pj_{qJR1fCMtX*jY^Muz{2(osI5zG3_*&i^@wKwPmN!Ryt(>pr&5;Jokt|9%j}TsAs2t%Z zLFqZd+Ex4lJf{5ouqhNcByJs+)pbnR);wU+(pTGOIyE&I{6r$y(_ zk&WmQ`jr-!>kzgft-06DEW3qaVivo?xEFDO+KgHF`+-E+F50mgcFYZ0$`OTdCM#;%XygB+6E6N?hJe zC_k>1G~aE^uO>{IUzuXw`#i`T*f`VJ$~B@JPDLpGD&nv6`736lECHZeolC)ga+y>fVYp%Vvr*U@3HPd_z5Co{7dhlC=3D01eAPT(YDQW zQGlzMbnSly8h^INsMi5KvA+TECQG@7w!i?BCR(mY2j=3D0JnU8tG8w`~ryb+Y1L#*9q z1qnZ2Az01nI-?j8e$-F}Lb}nDjkVjYAYsy}zw&H=3D!o@~0JwHw44-Qr*`eC^WpDolv-%1hEyhynXngMC1P99tkb{IoBLN+Y^ z)@;{Q$3)Fsf>Jg;gqIqsjqov0=3D~KtI75cUcX}0|I`L?pO^*Iw)JK^UOab?S_jaxy& z?^Fn~#%86Q?faoX=3DZXA$)|hXj$A>LNNY4|3ivwc%tyTL3R%{U7sof94B=3D$<!}_#jx@pK3A3Qm zN0zS`rYZWvh>FvV$B^(OP_@D6<}xb`BjsWB_FCPX9Vlfa5Kb`G+X!n7<;`B-P)I{} z8QVER8q&*=3Dn^E6ZmbT=3Dz&-hPWyR)e%l`VgN`Z+lNiV4CCormr>A_c-{4An}w8&qvD zyt&NEOIFTp46VOtM7%3Ziu~A!crot6Ch8a?k|#XTP%8<~2BpUxYi&l*`_u}}|K9A? zLc-}rt3XJDy7ySK=3DDo{xny)psvV;s-#wH;R>JDWsZ*)UK>(M(U(<5!l%K(HlsLZ#P zS+llU-5&fMlEREgsDy7eK^1&Me@_~$p^%2yN^wVMgY+8AAYX@w)O7^$AtuT!;o+ca zgY}!stk@v3eh^tVh_tI9T9^Uz`^ou1?-{*K8%5bIi2*=3DuJpkP9@D=3Dm4kyP~W$MEQU z6Wm2X-TY~F^N%f)T4FNgz1BnRQz5dCd>!0~Y?@iOs^08k3#I_bB1?Flp>l)|gHo;c z8{yjuX=3D{+)dnv?sWxJOH=3D;}*22|W;6hp$KqMraNt}}{R!mA9`O1KqNe6nNZ1}kUM0YFoX zCH|ooJ;hwnT@y9)3`%J_;qO7o+kczOth^rA06HJ69bm2u@`RHs1gp8FS+$B0)2LjW z5YlMcVz(WSK)+y~Y3B(aG*p3b9F&fqwI5kQLcX(*-toTEkWL>kwsM4z7%ERl&&qsQ zX6=3DVYFh|IE)SWEiWNay83r6~lu{_}=3DhRPA%1S-9q0S4J5GuZNk+=3Dj@MBjgD{1`#3G zYi*vjW^2wJ8C&tRuHJ;2C!7UJ?gzM90o5oY=3DP|-}BwFZaYYXn~2j+2ap73Z;Y5u52 z8SzJWF4T0_x{+pZbhY(I_#Q*$2;Xa{JmKY_(mSjLnO$KsOgLhw9O0;;@`Pic(#>zd zChUDErKbrWH&lV}C!o@8eFR7CoyiR0kBzMyA#J7HvfvHYTW}v!f+B3Th6qot2#U4! zR?zJ+-+V~(3yjukLK@V)&zd#w-TeMMqMm1LwfkD$i-cc=3D*5O90K&^gDxlJj7sI{3Q zd<&@bzVa2rG(~@UF@iS&NZ$}HGgOYS2r4}Y+B(W8hJ=3Dx!3WP~p)#IW8c}z^$X>7F- zCT;l_w8x|R&gk8p#*Ml8cct*_Q#XR9AQ0Zy#6~i<|zsqGD=3DkJO&Ln3dlevh?J| ztT2{Xk`?-wCmDncC6;sB|20^qrwMYsN_>QARz&lymU1m^#fJLLuqdOL@C;BY8UD4Z zuNbB&`s;6tV&b#*U~N69^Phmj)eDB>>OG9Pb*0H z{R%;MoYTWiMlmF$V#-xMMd(&O^0@VyhS;`uK5%7I%=3DW>&sy

jbz0J$(a>#dCJ;Gi?g@l_xr8ck$=3Dbt;wc_>dfZm5v( zSy1WgXbH>nv-X5VSZ{3+Htx~Z4y@QGSX+e44HXjdEs^xNw!_w~<|LCR{H&ouLVDh_ ztxsA-LK=3D`O3&Nx=3D|MbC=3D-wnoAp0I4FkdUoNkBhec)hZIwfW$?ZwB^UO1vV}>w(^8m z8Y(2b3RHSrwDm7mk&p%?F2bZOKdzmaofGWEEa7_%)lPUNC>X$g*BZf)(0cS%a^ItQA@KdiP((-{%40UgW7hZRt)hGh%zouY zhVX9V(R+4Uk3%z!NJ!}yLCG0;!v(s_%H;OJtqM8T&tv4yHn%ata{$jz5q~$hE3G)j zg(;4}p%YQ6yU4_+8MPcCy~XdeutL`0zLgbPTj`P7PI&FB+|9@nj1t#cEeux2o>ILQkWs^HB^qU-%!+Z zTM!&!MF^WgrO!WFIK(K1gh@re6RCK#QOpt^XQ(`3(w2V{Vf-+y@jH~u4%hYbP-an% zp@e-?Y&}#%9&dP)uD>0n5d~1u@cR_X=3DTJUhC7${Jq%AB*nMK)w z(zRcQzB&@+TTnK!4;_Vf9i@q@QQn2}D<~cDU<=3D~pakjr&d&%E|eB6fei&gTo`pw#7 zC(0tq0hDe$6B;zLAIixn-+=3DN^lv7bQqdXa9;QYM=3DzV0phz*3YeP&(qlPUMNl+1_gH z`z7q~Hy#?W>hK31T>Jdlg}s#zVXuVpag;wp>Dr%!nRWuo>rvi>(v|0r1N;of|BRA9 z1K`TLzhF{#jF#Zfu(i)eL_!oxiWX@pxBK*YAb=3Dw^%}s zKN0V0@u#o1;BlS%E7Yz$e{wZ*qCUc3R^{)~R+FE(m-1U?XbYF2{3y!1P`dV?0RJ?~ zOrw@~2g+`gy(nG%JHY=3DMSQ7%N;j?%TV z5_a2B4xs#K6@Pbv{~F4tW@?Kspget^uD7Ff{XGc1ag?`1@0%!H`9~pF#PRJo{eBVU z`{!zn&!BYmZ-m~bP;Q!~C9Xv2%0CLZT_~T1pBH)BcNFG=3D4^dtZyF04br`&~*XB^aX z%m;6Soe<^QQLe3G|32{FM!DZ?ZShEyuKn*r?iVQ8Z)>Xb-&EKMQBI$uEzUtX8+r?> z=3Du>Yu^y|=3DXC!#zVC|&#f zaV#F^zTt;&bR~72{IfXz2b3>Yk^cew{v746Q1Vv~TrWKS4CHpBVF%@`ED&=3DntcZR^!>F4zrxJb-*|v#u10w+%Ii>WLwP;Q8&Teb@@AC$QeW3T zpH(#1=3Dp#E(@;3727!Th<>FT@p?*0Sgg*Wb8dGbGi9PecQ4s}_NE}TULTC7@{@vHsr&%}Z&D=3D8 z1hv6|!FM~8jK;OWrrt)tHwx#li1lv>j zHwN>sOtb%{VEPBr_(OwWYZ`x8&~Z%~pMFQGHb}qoRBLV+1{Hs`=3D3aFLE%{Hs!&Doj z-|49h{1}zR+TbmfhNV^`|0V{%f5knZ*3b!o9S=3DuCKzXc@e&2@Ki8U)wdmqKucWc2Z zkk5gC(UDh^Sjq1Ke-Px~3w|8@f#5#|ekb^P@LvXh3;4<4zXyH`c*gUb@M-P+i}0$w zyh(+>S)+MMtBwfO0<`GI0JkOcuuob!l(J|gne#q&xidB!0&jACS1SM zdo@qLmqDJJV#?njyo&Qs$TL4*fINSB^(^@PPw-7sHSs0zzXZP<{2k!`2>W%8{R3nj zRC#N`*?=3D#=3DzXkm6Q;oNB(=3D@Tfj5U=3DY&t|-#-hl^1#hB`-S6YqtlPlFE`Du-@6^ZOJRSzW5274{Sxf+A;7QDkC(@G4h?o-{p38o3ig98onTpE zuc94d7eA|5Et0yge7o`{$RJg;)99 z>RjCX4g9#nPnoFY8`x0zJx=3D(V;ILpV&Lc=3D$FgND?^IbdabU1eUVtN0(dAaau?dq%2 zUXH^jo$;`>ik*+der1+i*$}sAKHBwfF+VxTV3)>zzqg8=3D{}5i~bN3nAz{9Zf9q>C_ zG*K(_NBunx`}e~>w@rTnzXLqy@9X4ZMdg`4W5M|{Ip*y?f$?80d|KX)isdHNf7N#&)dW+5jw{e06pLftpV#VeT0B{i4}ycd z{pXt4j=3D!JOZxH(P@sik%zaPFPw&U+VKPCJ@GOijhpbk@E$lt$%AMez4bbIij@=3D@%Q%2f=3DR!UxFR>i~87Xn%|E@zW!`&;9l6-0iHj{&Hdgtz-Ja|!P6lB zKo$FsLq1rn1uud8lib=3DCP~? z>a)UX9+hTje%~5hzKwQp=3D~vWr&?bDn^y5mbhoFNl$k*diZU_f1r2Thj;)~#~rab1| zIpA*q-+_4KG!g%O8hn7j=3DYYQlJa4i#fLEVDSMB0&#bWvekHqVVe;?q-u{@L$#dEN; z1MOm*e*-^0T?@0lbrNvexSAI82L$67SKo$@nN{Q$L%w097CasDtH3v*W9z~9fZv6D zP6fXS{5a;zN#Oq_=3D21x$+p6%l!%hp=3DtTSEU9{|4# z`FsobM`J$W5b!C;H(*|OgI7Px#2hBI>Z+{IhgIR#uTQD|YC=3D3MFt!x@E^JhHfDgg9 zG-+b0oS)R+8t@t9nfrvHnAbAN|KAPyj-{IA{8GO+me#IMLVgRz6}F+lo#0zAu3iTx z-wr`OWjTd2aTUxritmBF~>INSh!{Ag|XMA&~Xc)k?&R`4GJ-*lWNu&oJh5xxO3 z$>Oe9KFMhOpzu>B92(R)`-I16|2!@CIjH^`d_4mE8u%Bh*nhp;NKx(Gj&+siqeF$C zBG(bT4?Gcej*I0{Nfc+m4u8Rz`N@FajW`#gf7ehx(nh`tTZ7=3DYEY`$Vz+VWy197r{ z-wS@+v2!iuF@B1$^KalYp(Z{H{x0ym^~!Pn0C@hcH{11N@Y^vS-U2(nqWrm)10^f0jmcwZ{SP#C%IbUA_ zeh1D+oJUvDKIS9Tf-?Ae@H`LR4u0oy1c*d`3H(;fM+~FjKJb~dwERY>JuJNH7k6Lx zBgpfmSTsBM8TfGw5NvCLKY-tgL^2PrfbRey!z2EiRIkU${TL5C|Gq(ZHBURxFC1@g zj^z&xS|Bgg`0rTAH((s{{5TiFSpFs!y7Dqn`e&-5JaQ=3DP)e8V)&KM(nD#yl#C;`@-_u|$(R7d%l#{u#*E!#?N5 zU#rL;G)47`|MyQZFV_+1UrdAG1n>>Zv<}a+E#P-!d}3J%mVw^_`6jsPjCtSh2;^I` z`WVOCCE&NK2RHKfaa{!02(QjB?l`|OmWNQHxVs8}AMB4~qjv>#9udAFp-=3Db}d%oAR%x0hej5DRi1EsEu}Zu0--u+xG3 zpM--E_;F|al)!IA{CpYZJyq;qFT9Fps}s*BV5i|2?U3W)v%>S5B^l>~kgvye{d^qk zi`ReudGU`SzZDDfIgoz>{FXB`(GC8O;CEoW-3q?;V4eRRPM)X4JcJU(@m2T*u(KV3 z+zXwvg;)9Eb6ED*J0RbI^*jstb>N%critIs_xi!HfyS<2{m_~Vie018=3Dui|hrOx5e z#@Rs>Wm*@9;i_m!e#N42>3J)nsBz|kS+nO?IWm7ibJZi&bQUztt)jDFW;JUIW-h3v zGizqGBeR=3D=3D^&_LheS^Ky;I7V6XIJ0orl@bQYq;1sQmjY;#NsSev)4SYS`72&&JWgi z_jQempV96$(b~?DwbuNmQn9gbWVo|&RwJ^^{(*1XKb)b29{Lkt3hI`^O~yoYMwK%+L3wbqqezeR+F?) z#qSLFnA&4c&!00ZSifdysNd0ysXc4TIPF?n>{>TNJjafuh>GjSI{PE``l$4a3QXk{ zO`o}7&fEnt7xfGc3Ewp|P?FB=3Djzp|D+}Yo#CWc3L9~zXw5=3DGrZQE&gy8i}xbbZB@a>Kxk`D69R&(PDSw zyg74~n-rm_r*E(?>Kq>K+!PPJO+n9a=3DRh&)9vc`?qb^aCNhfJYiprwXpGdDt^q$7+ z%mwphHg}DU_Vtg5?1;3kZ(}qt)*nb8OIbwT>zo4G*#g5vP-(6CJG!S4QI)YCcI*$--@IJzO#v*^vPHZ+@NHOnj=3D z7@HBBl?HW<4M+V$s=3Dv~j&^#}FO=3D_OiJTHBfl_S!+D%PYqBcn33#9!=3DxMoHGlQ8io! zhNPc{h6N=3Du)+|Faik7r4T)sG3yy7ewNP1KeSM+Un5S_JZ#lq!F7l~Bj$jGRiV1zn* zMLt@54y>JXR%;NQz3jX*7cPs=3DTe2j#IE=3D!DXD(YD+1&QZD3gp2m1KdEAdAC;lKDuc z#hR|DYh)}QgHrDrl~qb!Ly` z+8kQ8t zesDIfNU%&1J6xGDozkA+qD;);C?1qS+|?T}Ahdv*D0Uj4Q>E>Lvd(n(RGJhw)%;Y9 zACco=3D?~P=3D(7Khb1j|L>6oxMfrrP6Sm)Y90<+GtRQue4N)InA_-Kw?yL1gX=3DB*c4x~ zCKd;zA(hd_vmx$ZOa~0cuA#x6zTRj<=3Ddg^%xI5#sY&5b~&9Do(zQz-&ryC;5zaCPs z(%Ib|pRaIS?fcN%YL3U_zjIVCMV%XpY9jQ>X;)ScwVUr78Ja)0X{Md9YIv&AX%-6A zZ@Sh!R*E<=3Du%^cIHX7*ca|V)H_~M*aj@Ao?`Uct3;W4#mFl|(ezw8L4N1WW5**!LQ zwi;e)m?g%a?HJicuPe$DsT9oGCH<*pnHs)o<-vHsG*Imnrfb0U8TWDCtBmgZxMSlDwAuQ}nL>r4dnX=3D1Dr76JIxC*tQPe9Z zW8F$Q38N!ytEHFj29Kc|5L6cD|i=3Dpj_nX`?GM9?E^|9Rr9yKgWW8!2|% z!Ggqclq4Gx$EmXjskN#xi8VhMSf_?&?||_&RO;;Q94!WYgFQnyF-V7+vw1vb%;M2& z&-m^>mK)W2mVXD2v>`#4DrPbjlz@ zo8rAtye*FcojVnyEJXc01?u@TQc{;LW;MZ?rB`}W?;^|*GiFr0a(-1YsFp-;+Yq(l zLS&KJaj8pIl^ESp5oKy6=3DZWE58XJwzbJ~&wKP=3Dm(xLXrvEV&HmmE}wAXXNTX9uazT zrB)L0t`-|R3(N*e=3DB~+2*FblFpPV?x`ipC3HqV!9o35emVl<+x!emdMY;cT#T*h00 z;>JGbWTD4Um-GqRrOu0zTJB|KpJn#dRd;?Ep78|HLoGHKZ`sl}Z1HwMm3|xTr<|!-#w$RJ7`q3_|8&e_ohLy7sRC`JwCFbI6NXdp^8c* z$A*jjok}ohjK@x6NtOilUt{l(fKj!#XjB*SA~_UqUmJ^Sap}IcTl87e`uZAPYY<=3D1 zC1Ofd`4TH}T%7~5b&A=3DbQP!xSQSK-V$V?P2?ugFe&cR-p_^7H?lDKotn&ILG*5auM zDb-(q(%FQt#2cLdSg9UEsaxlKe}JExV#((e^n%;$tOn}2#J&lAe!hxjgOSvL&re9t z6p+;C=3Ddf5#qaaFG|19DE^vWwkjDH&d%NFSIc>?bvgAUZ=3Dq}R(o>OTg+avX~Lh>U7G z^$!)S{?zL}wepYp{QMWoP#sMCx%pGiFJDQ-&(Ddmya>9CpMF@bljDC&=3D=3D1YrEVn~n z#jiqP{Gfw(3Q#$vJ$~+t*8_Ua`gfo5`-R9`?b8#%!;CU(K>6i7J9DRO%j^%z7MCp#- zk3*mN=3Dlc~bKkOKA{om&3^YeHtpLZNO)!-gSpP$=3Df`8+!s@w@rEPk8mLn!}u*@4Ni{ zTEUfPo#nWQ$)j(h&(8sF-Anz)MOSq({qysJ+g?RqRN}v%%l}FJ?Rd{^JM`7~Nd7e> zD}tYuf1F$D5I=3Du7|4LO0g54N@oF8mA`|(jxrpU>T`F*Mo7SA z@V}cA0|#B%!>j0zU8fbk@MNV%Wi1Gft)hSY#oFP{EM zf-U&;`1A&?ceE6j%Ri1=3DE-Pwzmessage= ); + error_report("unable to create blob file: %s", error->message); g_error_free(error); } else { if (ftruncate(fd, BLOB_SIZE) =3D=3D -1) { - fprintf(stderr, "ftruncate(\"%s\", %zu): %s\n", pathname, + error_report("ftruncate(\"%s\", %zu): %s", pathname, BLOB_SIZE, strerror(errno)); } else { void *buf; =20 buf =3D mmap(NULL, BLOB_SIZE, PROT_WRITE, MAP_SHARED, fd, 0); if (buf =3D=3D MAP_FAILED) { - fprintf(stderr, "mmap(\"%s\", %zu): %s\n", pathname, BLOB_= SIZE, + error_report("mmap(\"%s\", %zu): %s", pathname, BLOB_SIZE, strerror(errno)); } else { size_t i; diff --git a/tests/libqos/ahci.c b/tests/libqos/ahci.c index 1ca7f456b5..dffe625444 100644 --- a/tests/libqos/ahci.c +++ b/tests/libqos/ahci.c @@ -23,7 +23,7 @@ */ =20 #include "qemu/osdep.h" - +#include "qemu/error-report.h" #include "libqtest.h" #include "libqos/ahci.h" #include "libqos/pci-pc.h" @@ -985,9 +985,9 @@ static void ahci_atapi_command_set_offset(AHCICommand *= cmd, uint64_t lba) default: /* SCSI doesn't have uniform packet formats, * so you have to add support for it manually. Sorry! */ - fprintf(stderr, "The Libqos AHCI driver does not support the " + error_report("The Libqos AHCI driver does not support the " "set_offset operation for ATAPI command 0x%02x, " - "please add support.\n", + "please add support.", cbd[0]); g_assert_not_reached(); } @@ -1060,8 +1060,8 @@ static void ahci_atapi_set_size(AHCICommand *cmd, uin= t64_t xbytes) default: /* SCSI doesn't have uniform packet formats, * so you have to add support for it manually. Sorry! */ - fprintf(stderr, "The Libqos AHCI driver does not support the set_s= ize " - "operation for ATAPI command 0x%02x, please add support.\n= ", + error_report("The Libqos AHCI driver does not support the set_size= " + "operation for ATAPI command 0x%02x, please add support.", cbd[0]); g_assert_not_reached(); } diff --git a/tests/libqos/libqos.c b/tests/libqos/libqos.c index 6226546c28..e125d885ef 100644 --- a/tests/libqos/libqos.c +++ b/tests/libqos/libqos.c @@ -1,4 +1,5 @@ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include =20 #include "libqtest.h" @@ -155,7 +156,7 @@ void migrate(QOSState *from, QOSState *to, const char *= uri) continue; } =20 - fprintf(stderr, "Migration did not complete, status: %s\n", st); + error_report("Migration did not complete, status: %s", st); g_assert_not_reached(); } =20 @@ -199,7 +200,7 @@ void mkimg(const char *file, const char *fmt, unsigned = size_mb) fmt, file, size_mb); ret =3D g_spawn_command_line_sync(cli, &out, &out2, &rc, &err); if (err) { - fprintf(stderr, "%s\n", err->message); + error_report("%s", err->message); g_error_free(err); } g_assert(ret && !err); @@ -210,7 +211,7 @@ void mkimg(const char *file, const char *fmt, unsigned = size_mb) * 0 is only possible if the program exited normally, so that should be * sufficient for our purposes on all platforms, here. */ if (rc) { - fprintf(stderr, "qemu-img returned status code %d\n", rc); + error_report("qemu-img returned status code %d", rc); } g_assert(!rc); =20 diff --git a/tests/libqos/malloc.c b/tests/libqos/malloc.c index b8eff5f495..e81e0bb8f2 100644 --- a/tests/libqos/malloc.c +++ b/tests/libqos/malloc.c @@ -11,6 +11,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "libqos/malloc.h" #include "qemu-common.h" #include "qemu/host-utils.h" @@ -193,7 +194,7 @@ static uint64_t mlist_alloc(QGuestAllocator *s, uint64_= t size) =20 node =3D mlist_find_space(s->free, size); if (!node) { - fprintf(stderr, "Out of guest memory.\n"); + error_report("Out of guest memory."); g_assert_not_reached(); } return mlist_fulfill(s, node, size); @@ -209,8 +210,8 @@ static void mlist_free(QGuestAllocator *s, uint64_t add= r) =20 node =3D mlist_find_key(s->used, addr); if (!node) { - fprintf(stderr, "Error: no record found for an allocation at " - "0x%016" PRIx64 ".\n", + error_report("Error: no record found for an allocation at " + "0x%016" PRIx64 ".", addr); g_assert_not_reached(); } @@ -234,8 +235,8 @@ void alloc_uninit(QGuestAllocator *allocator) /* Check for guest leaks, and destroy the list. */ QTAILQ_FOREACH_SAFE(node, allocator->used, MLIST_ENTNAME, tmp) { if (allocator->opts & (ALLOC_LEAK_WARN | ALLOC_LEAK_ASSERT)) { - fprintf(stderr, "guest malloc leak @ 0x%016" PRIx64 "; " - "size 0x%016" PRIx64 ".\n", + error_report("guest malloc leak @ 0x%016" PRIx64 "; " + "size 0x%016" PRIx64 ".", node->addr, node->size); } if (allocator->opts & (ALLOC_LEAK_ASSERT)) { @@ -251,7 +252,7 @@ void alloc_uninit(QGuestAllocator *allocator) if ((allocator->opts & mask) =3D=3D mask) { if ((node->addr !=3D allocator->start) || (node->size !=3D allocator->end - allocator->start)) { - fprintf(stderr, "Free list is corrupted.\n"); + error_report("Free list is corrupted."); g_assert_not_reached(); } } diff --git a/tests/libqtest.c b/tests/libqtest.c index cbd709470b..b7c488444e 100644 --- a/tests/libqtest.c +++ b/tests/libqtest.c @@ -15,6 +15,7 @@ * */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "libqtest.h" =20 #include @@ -89,7 +90,7 @@ static int socket_accept(int sock) ret =3D accept(sock, (struct sockaddr *)&addr, &addrlen); } while (ret =3D=3D -1 && errno =3D=3D EINTR); if (ret =3D=3D -1) { - fprintf(stderr, "%s failed: %s\n", __func__, strerror(errno)); + error_report("%s failed: %s", __func__, strerror(errno)); } close(sock); =20 @@ -155,7 +156,7 @@ static const char *qtest_qemu_binary(void) =20 qemu_bin =3D getenv("QTEST_QEMU_BINARY"); if (!qemu_bin) { - fprintf(stderr, "Environment variable QTEST_QEMU_BINARY required\n= "); + error_report("Environment variable QTEST_QEMU_BINARY required"); exit(1); } =20 @@ -312,7 +313,7 @@ static GString *qtest_recv_line(QTestState *s) } =20 if (len =3D=3D -1 || len =3D=3D 0) { - fprintf(stderr, "Broken pipe\n"); + error_report("Broken pipe"); exit(1); } =20 @@ -397,7 +398,7 @@ static void qmp_response(JSONMessageParser *parser, GQu= eue *tokens) =20 obj =3D json_parser_parse(tokens, NULL); if (!obj) { - fprintf(stderr, "QMP JSON response parsing failed\n"); + error_report("QMP JSON response parsing failed"); exit(1); } =20 @@ -423,7 +424,7 @@ QDict *qmp_fd_receive(int fd) } =20 if (len =3D=3D -1 || len =3D=3D 0) { - fprintf(stderr, "Broken pipe\n"); + error_report("Broken pipe"); exit(1); } =20 @@ -880,7 +881,7 @@ void qtest_bufread(QTestState *s, uint64_t addr, void *= data, size_t size) =20 g_base64_decode_inplace(args[1], &len); if (size !=3D len) { - fprintf(stderr, "bufread: asked for %zu bytes but decoded %zu\n", + error_report("bufread: asked for %zu bytes but decoded %zu", size, len); len =3D MIN(len, size); } diff --git a/tests/migration/stress.c b/tests/migration/stress.c index cf8ce8b16d..49e1ff4555 100644 --- a/tests/migration/stress.c +++ b/tests/migration/stress.c @@ -47,7 +47,7 @@ static __attribute__((noreturn)) void exit_failure(void) if (getpid() =3D=3D 1) { sync(); reboot(RB_POWER_OFF); - fprintf(stderr, "%s (%05d): ERROR: cannot reboot: %s\n", + error_report("%s (%05d): cannot reboot: %s", argv0, gettid(), strerror(errno)); abort(); } else { @@ -60,7 +60,7 @@ static __attribute__((noreturn)) void exit_success(void) if (getpid() =3D=3D 1) { sync(); reboot(RB_POWER_OFF); - fprintf(stderr, "%s (%05d): ERROR: cannot reboot: %s\n", + error_report("%s (%05d): cannot reboot: %s", argv0, gettid(), strerror(errno)); abort(); } else { @@ -76,13 +76,13 @@ static int get_command_arg_str(const char *name, char *start, *end; =20 if (fp =3D=3D NULL) { - fprintf(stderr, "%s (%05d): ERROR: cannot open /proc/cmdline: %s\n= ", + error_report("%s (%05d): cannot open /proc/cmdline: %s", argv0, gettid(), strerror(errno)); return -1; } =20 if (!fgets(line, sizeof line, fp)) { - fprintf(stderr, "%s (%05d): ERROR: cannot read /proc/cmdline: %s\n= ", + error_report("%s (%05d): cannot read /proc/cmdline: %s", argv0, gettid(), strerror(errno)); fclose(fp); return -1; @@ -96,8 +96,8 @@ static int get_command_arg_str(const char *name, start +=3D strlen(name); =20 if (*start !=3D '=3D') { - fprintf(stderr, "%s (%05d): ERROR: no value provided for '%s' in /= proc/cmdline\n", - argv0, gettid(), name); + error_report("%s (%05d): no value provided for '%s' in /proc/cmdli= ne", + argv0, gettid(), name); } start++; =20 @@ -106,8 +106,8 @@ static int get_command_arg_str(const char *name, end =3D strstr(start, "\n"); =20 if (end =3D=3D start) { - fprintf(stderr, "%s (%05d): ERROR: no value provided for '%s' in /= proc/cmdline\n", - argv0, gettid(), name); + error_report("%s (%05d): no value provided for '%s' in /proc/cmdli= ne", + argv0, gettid(), name); return -1; } =20 @@ -132,7 +132,7 @@ static int get_command_arg_ull(const char *name, errno =3D 0; *val =3D strtoll(valstr, &end, 10); if (errno || *end) { - fprintf(stderr, "%s (%05d): ERROR: cannot parse %s value %s\n", + error_report("%s (%05d): cannot parse %s value %s", argv0, gettid(), name, valstr); free(valstr); return -1; @@ -148,13 +148,13 @@ static int random_bytes(char *buf, size_t len) =20 fd =3D open("/dev/urandom", O_RDONLY); if (fd < 0) { - fprintf(stderr, "%s (%05d): ERROR: cannot open /dev/urandom: %s\n", + error_report("%s (%05d): cannot open /dev/urandom: %s", argv0, gettid(), strerror(errno)); return -1; } =20 if (read(fd, buf, len) !=3D len) { - fprintf(stderr, "%s (%05d): ERROR: cannot read /dev/urandom: %s\n", + error_report("%s (%05d): cannot read /dev/urandom: %s", argv0, gettid(), strerror(errno)); close(fd); return -1; @@ -187,12 +187,12 @@ static int stressone(unsigned long long ramsizeMB) unsigned long long before, after; =20 if (!ram) { - fprintf(stderr, "%s (%05d): ERROR: cannot allocate %llu MB of RAM:= %s\n", + error_report("%s (%05d): cannot allocate %llu MB of RAM: %s", argv0, gettid(), ramsizeMB, strerror(errno)); return -1; } if (!data) { - fprintf(stderr, "%s (%d): ERROR: cannot allocate %d bytes of RAM: = %s\n", + error_report("%s (%d): cannot allocate %d bytes of RAM: %s", argv0, gettid(), PAGE_SIZE, strerror(errno)); free(ram); return -1; @@ -271,13 +271,13 @@ static int stress(unsigned long long ramsizeGB, int n= cpus) static int mount_misc(const char *fstype, const char *dir) { if (mkdir(dir, 0755) < 0 && errno !=3D EEXIST) { - fprintf(stderr, "%s (%05d): ERROR: cannot create %s: %s\n", + error_report("%s (%05d): cannot create %s: %s", argv0, gettid(), dir, strerror(errno)); return -1; } =20 if (mount("none", dir, fstype, 0, NULL) < 0) { - fprintf(stderr, "%s (%05d): ERROR: cannot mount %s: %s\n", + error_report("%s (%05d): cannot mount %s: %s", argv0, gettid(), dir, strerror(errno)); return -1; } @@ -322,7 +322,7 @@ int main(int argc, char **argv) errno =3D 0; ramsizeGB =3D strtoll(optarg, &end, 10); if (errno !=3D 0 || *end) { - fprintf(stderr, "%s (%05d): ERROR: Cannot parse RAM size %= s\n", + error_report("%s (%05d): Cannot parse RAM size %s", argv0, gettid(), optarg); exit_failure(); } @@ -332,7 +332,7 @@ int main(int argc, char **argv) errno =3D 0; ncpus =3D strtoll(optarg, &end, 10); if (errno !=3D 0 || *end) { - fprintf(stderr, "%s (%05d): ERROR: Cannot parse CPU count = %s\n", + error_report("%s (%05d): Cannot parse CPU count %s", argv0, gettid(), optarg); exit_failure(); } @@ -340,7 +340,7 @@ int main(int argc, char **argv) =20 case '?': case 'h': - fprintf(stderr, "%s: [--help][--ramsize GB][--cpus N]\n", argv= 0); + error_report("%s: [--help][--ramsize GB][--cpus N]", argv0); exit_failure(); } } diff --git a/tests/postcopy-test.c b/tests/postcopy-test.c index 8142f2ab90..32bb11ba82 100644 --- a/tests/postcopy-test.c +++ b/tests/postcopy-test.c @@ -11,7 +11,7 @@ */ =20 #include "qemu/osdep.h" - +#include "qemu/error-report.h" #include "libqtest.h" #include "qemu/option.h" #include "qemu/range.h" @@ -214,7 +214,7 @@ static void wait_for_serial(const char *side) break; =20 default: - fprintf(stderr, "Unexpected %d on %s serial\n", readvalue, sid= e); + error_report("Unexpected %d on %s serial", readvalue, side); g_assert_not_reached(); } } while (true); @@ -333,9 +333,9 @@ static void check_guests_ram(void) */ hit_edge =3D true; } else { - fprintf(stderr, "Memory content inconsistency at %x" + error_report("Memory content inconsistency at %x" " first_byte =3D %x last_byte =3D %x curre= nt =3D %x" - " hit_edge =3D %x\n", + " hit_edge =3D %x", address, first_byte, last_byte, b, hit_edg= e); bad =3D true; } diff --git a/tests/qemu-iotests/socket_scm_helper.c b/tests/qemu-iotests/so= cket_scm_helper.c index eb76d31aa9..7785da953a 100644 --- a/tests/qemu-iotests/socket_scm_helper.c +++ b/tests/qemu-iotests/socket_scm_helper.c @@ -11,6 +11,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include #include =20 @@ -53,7 +54,7 @@ static int send_fd(int fd, int fd_to_send) } while (ret < 0 && errno =3D=3D EINTR); =20 if (ret < 0) { - fprintf(stderr, "Failed to send msg, reason: %s\n", strerror(errno= )); + error_report("Failed to send msg, reason: %s", strerror(errno)); } =20 return ret; @@ -69,14 +70,14 @@ static int get_fd_num(const char *fd_str, bool silent) sock =3D strtol(fd_str, &err, 10); if (errno) { if (!silent) { - fprintf(stderr, "Failed in strtol for socket fd, reason: %s\n", + error_report("Failed in strtol for socket fd, reason: %s", strerror(errno)); } return -1; } if (!*fd_str || *err || sock < 0) { if (!silent) { - fprintf(stderr, "bad numerical value for socket fd '%s'\n", fd= _str); + error_report("bad numerical value for socket fd '%s'", fd_str); } return -1; } @@ -96,7 +97,7 @@ int main(int argc, char **argv, char **envp) #ifdef SOCKET_SCM_DEBUG int i; for (i =3D 0; i < argc; i++) { - fprintf(stderr, "Parameter %d: %s\n", i, argv[i]); + error_report("Parameter %d: %s", i, argv[i]); } #endif =20 @@ -120,7 +121,7 @@ int main(int argc, char **argv, char **envp) is supposed to fork and exec this program. */ fd =3D open(argv[2], O_RDONLY); if (fd < 0) { - fprintf(stderr, "Failed to open file '%s'\n", argv[2]); + error_report("Failed to open file '%s'", argv[2]); return EXIT_FAILURE; } } diff --git a/tests/qht-bench.c b/tests/qht-bench.c index 11c1cec766..2637d601a9 100644 --- a/tests/qht-bench.c +++ b/tests/qht-bench.c @@ -5,6 +5,7 @@ * See the COPYING file in the top-level directory. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu/processor.h" #include "qemu/atomic.h" #include "qemu/qht.h" @@ -89,7 +90,7 @@ static const char commands_string[] =3D static void usage_complete(int argc, char *argv[]) { fprintf(stderr, "Usage: %s [options]\n", argv[0]); - fprintf(stderr, "options:\n%s\n", commands_string); + fprintf(stderr, "options:\n%s", commands_string); exit(-1); } =20 @@ -328,7 +329,7 @@ static void htable_init(void) retries++; } } - fprintf(stderr, " populated after %zu retries\n", retries); + error_report(" populated after %zu retries", retries); } =20 static void add_stats(struct thread_stats *s, struct thread_info *info, in= t n) diff --git a/tests/rcutorture.c b/tests/rcutorture.c index 4002ecf123..21d2c76d0b 100644 --- a/tests/rcutorture.c +++ b/tests/rcutorture.c @@ -61,6 +61,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu/atomic.h" #include "qemu/rcu.h" #include "qemu/thread.h" @@ -86,7 +87,7 @@ static int n_threads; static void create_thread(void *(*func)(void *)) { if (n_threads >=3D NR_THREADS) { - fprintf(stderr, "Thread limit of %d exceeded!\n", NR_THREADS); + error_report("Thread limit of %d exceeded!", NR_THREADS); exit(-1); } qemu_thread_create(&threads[n_threads], "test", func, &data[n_threads], @@ -417,7 +418,7 @@ static void gtest_stress_10_5(void) =20 static void usage(int argc, char *argv[]) { - fprintf(stderr, "Usage: %s [nreaders [ perf | stress ] ]\n", argv[0]); + error_report("Usage: %s [nreaders [ perf | stress ] ]", argv[0]); exit(-1); } =20 diff --git a/tests/tcg/linux-test.c b/tests/tcg/linux-test.c index 5070d31446..76c9059073 100644 --- a/tests/tcg/linux-test.c +++ b/tests/tcg/linux-test.c @@ -51,7 +51,7 @@ void error1(const char *filename, int line, const char *f= mt, ...) va_start(ap, fmt); fprintf(stderr, "%s:%d: ", filename, line); vfprintf(stderr, fmt, ap); - fprintf(stderr, "\n"); + error_report(""); va_end(ap); exit(1); } diff --git a/tests/tcg/runcom.c b/tests/tcg/runcom.c index d60342bfc6..7acf0239c8 100644 --- a/tests/tcg/runcom.c +++ b/tests/tcg/runcom.c @@ -61,7 +61,7 @@ void dump_regs(struct vm86_regs *r) #ifdef SIGTEST void alarm_handler(int sig) { - fprintf(stderr, "alarm signal=3D%d\n", sig); + error_report("alarm signal=3D%d", sig); alarm(1); } #endif @@ -172,7 +172,7 @@ int main(int argc, char **argv) break; default: unknown_int: - fprintf(stderr, "unsupported int 0x%02x\n", int_num); + error_report("unsupported int 0x%02x", int_num); dump_regs(&ctx.regs); // exit(1); } @@ -184,7 +184,7 @@ int main(int argc, char **argv) case VM86_STI: break; default: - fprintf(stderr, "unhandled vm86 return code (0x%x)\n", ret); + error_report("unhandled vm86 return code (0x%x)", ret); dump_regs(&ctx.regs); exit(1); } diff --git a/tests/tcg/test-i386-fprem.c b/tests/tcg/test-i386-fprem.c index 1a71623204..7c3d37d07a 100644 --- a/tests/tcg/test-i386-fprem.c +++ b/tests/tcg/test-i386-fprem.c @@ -340,7 +340,7 @@ static void test_fprem_pairs(void) } } =20 - fprintf(stderr, "test-i386-fprem: tested %llu cases\n", count); + error_report("test-i386-fprem: tested %llu cases", count); } =20 int main(int argc, char **argv) diff --git a/tests/tcg/test_path.c b/tests/tcg/test_path.c index 1c29bce263..d543bb76ef 100644 --- a/tests/tcg/test_path.c +++ b/tests/tcg/test_path.c @@ -150,8 +150,8 @@ int main(int argc, char *argv[]) ret =3D do_test(); cleanup(); if (ret) { - fprintf(stderr, "test_path: failed on line %i\n", ret); - return 1; + error_report("test_path: failed on line %i", ret); + return 1; } return 0; } diff --git a/tests/test-hmp.c b/tests/test-hmp.c index 5677fbf775..ff86220814 100644 --- a/tests/test-hmp.c +++ b/tests/test-hmp.c @@ -15,6 +15,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "libqtest.h" =20 static int verbose; @@ -79,7 +80,7 @@ static void test_commands(void) =20 for (i =3D 0; hmp_cmds[i] !=3D NULL; i++) { if (verbose) { - fprintf(stderr, "\t%s\n", hmp_cmds[i]); + error_report("\t%s", hmp_cmds[i]); } response =3D hmp("%s", hmp_cmds[i]); g_free(response); @@ -102,7 +103,7 @@ static void test_info_commands(void) *endp =3D '\0'; /* Now run the info command */ if (verbose) { - fprintf(stderr, "\t%s\n", info); + error_report("\t%s", info); } resp =3D hmp("%s", info); g_free(resp); diff --git a/tests/test-rcu-list.c b/tests/test-rcu-list.c index 1514d7ec97..00a03de370 100644 --- a/tests/test-rcu-list.c +++ b/tests/test-rcu-list.c @@ -21,6 +21,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu/atomic.h" #include "qemu/rcu.h" #include "qemu/thread.h" @@ -64,7 +65,7 @@ static int select_random_el(int max) static void create_thread(void *(*func)(void *)) { if (n_threads >=3D NR_THREADS) { - fprintf(stderr, "Thread limit of %d exceeded!\n", NR_THREADS); + error_report("Thread limit of %d exceeded!", NR_THREADS); exit(-1); } qemu_thread_create(&threads[n_threads], "test", func, &data[n_threads], @@ -255,7 +256,7 @@ static void rcu_qtest(const char *test, int duration, i= nt nreaders) =20 static void usage(int argc, char *argv[]) { - fprintf(stderr, "Usage: %s duration nreaders\n", argv[0]); + error_report("Usage: %s duration nreaders", argv[0]); exit(-1); } =20 diff --git a/tests/usb-hcd-ehci-test.c b/tests/usb-hcd-ehci-test.c index 944eb1c088..1e7ef842e5 100644 --- a/tests/usb-hcd-ehci-test.c +++ b/tests/usb-hcd-ehci-test.c @@ -42,7 +42,7 @@ static void ehci_port_test(struct qhc *hc, int port, uint= 32_t expect) uint16_t mask =3D ~(PORTSC_CSC | PORTSC_PEDC | PORTSC_OCC); =20 #if 0 - fprintf(stderr, "%s: %d, have 0x%08x, want 0x%08x\n", + error_report("%s: %d, have 0x%08x, want 0x%08x", __func__, port, value & mask, expect & mask); #endif g_assert((value & mask) =3D=3D (expect & mask)); diff --git a/tests/vhost-user-bridge.c b/tests/vhost-user-bridge.c index f922cc75ae..c70a453cef 100644 --- a/tests/vhost-user-bridge.c +++ b/tests/vhost-user-bridge.c @@ -181,7 +181,7 @@ vubr_handle_tx(VuDev *dev, int qidx) out_num =3D elem->out_num; out_sg =3D elem->out_sg; if (out_num < 1) { - fprintf(stderr, "virtio-net header not in first element\n"); + error_report("virtio-net header not in first element"); break; } if (VHOST_USER_BRIDGE_DEBUG) { @@ -293,7 +293,7 @@ vubr_backend_recv_cb(int sock, void *ctx) } =20 if (elem->in_num < 1) { - fprintf(stderr, "virtio-net contains no in buffers\n"); + error_report("virtio-net contains no in buffers"); break; } =20 @@ -363,7 +363,7 @@ vubr_receive_cb(int sock, void *ctx) VubrDev *vubr =3D (VubrDev *)ctx; =20 if (!vu_dispatch(&vubr->vudev)) { - fprintf(stderr, "Error while dispatching\n"); + error_report("Error while dispatching"); } } =20 @@ -460,7 +460,7 @@ vubr_panic(VuDev *dev, const char *msg) { VubrDev *vubr =3D container_of(dev, VubrDev, vudev); =20 - fprintf(stderr, "PANIC: %s\n", msg); + error_report("PANIC: %s", msg); =20 dispatcher_remove(&vubr->dispatcher, dev->sock); vubr->quit =3D 1; @@ -561,14 +561,14 @@ vubr_set_host(struct sockaddr_in *saddr, const char *= host) { if (isdigit(host[0])) { if (!inet_aton(host, &saddr->sin_addr)) { - fprintf(stderr, "inet_aton() failed.\n"); + error_report("inet_aton() failed."); exit(1); } } else { struct hostent *he =3D gethostbyname(host); =20 if (!he) { - fprintf(stderr, "gethostbyname() failed.\n"); + error_report("gethostbyname() failed."); exit(1); } saddr->sin_addr =3D *(struct in_addr *)he->h_addr; @@ -589,13 +589,13 @@ vubr_backend_udp_setup(VubrDev *dev, =20 lport =3D strtol(local_port, (char **)&r, 0); if (r =3D=3D local_port) { - fprintf(stderr, "lport parsing failed.\n"); + error_report("lport parsing failed."); exit(1); } =20 rport =3D strtol(remote_port, (char **)&r, 0); if (r =3D=3D remote_port) { - fprintf(stderr, "rport parsing failed.\n"); + error_report("rport parsing failed."); exit(1); } =20 @@ -713,15 +713,15 @@ main(int argc, char *argv[]) return 0; =20 out: - fprintf(stderr, "Usage: %s ", argv[0]); - fprintf(stderr, "[-c] [-u ud_socket_path] [-l lhost:lport] [-r rhost:r= port]\n"); - fprintf(stderr, "\t-u path to unix doman socket. default: %s\n", + error_report("Usage: %s ", argv[0]); + error_report("[-c] [-u ud_socket_path] [-l lhost:lport] [-r rhost:rpor= t]"); + error_report("\t-u path to unix doman socket. default: %s", DEFAULT_UD_SOCKET); - fprintf(stderr, "\t-l local host and port. default: %s:%s\n", + fprintf(stderr, "\t-l local host and port. default: %s:%s", DEFAULT_LHOST, DEFAULT_LPORT); - fprintf(stderr, "\t-r remote host and port. default: %s:%s\n", + error_report("\t-r remote host and port. default: %s:%s", DEFAULT_RHOST, DEFAULT_RPORT); - fprintf(stderr, "\t-c client mode\n"); + error_report("\t-c client mode"); =20 return 1; } --=20 2.11.0 From nobody Sun Apr 28 07:58:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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 (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1506385254745740.6372746054802; Mon, 25 Sep 2017 17:20:54 -0700 (PDT) Received: from localhost ([::1]:44940 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdcE-0008Ri-39 for importer@patchew.org; Mon, 25 Sep 2017 20:20:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56481) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdX2-0004lu-CB for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:15:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwdWg-00004s-B9 for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:15:24 -0400 Received: from mail-dm3nam03on0079.outbound.protection.outlook.com ([104.47.41.79]:36736 helo=NAM03-DM3-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 1dwdUh-0005dY-7C; Mon, 25 Sep 2017 20:12:59 -0400 Received: from BY2PR02CA0098.namprd02.prod.outlook.com (10.163.44.152) by CY1PR0201MB1931.namprd02.prod.outlook.com (10.163.56.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 26 Sep 2017 00:12:51 +0000 Received: from BL2NAM02FT038.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e46::208) by BY2PR02CA0098.outlook.office365.com (2a01:111:e400:5261::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.56.9 via Frontend Transport; Tue, 26 Sep 2017 00:12:50 +0000 Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BL2NAM02FT038.mail.protection.outlook.com (10.152.77.25) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14 via Frontend Transport; Tue, 26 Sep 2017 00:12:49 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUW-0007B5-Qt; Mon, 25 Sep 2017 17:12:48 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dwdUW-0008VZ-OY; Mon, 25 Sep 2017 17:12:48 -0700 Received: from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v8Q0CW1C007357; Mon, 25 Sep 2017 17:12:32 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUG-0008U7-6M; Mon, 25 Sep 2017 17:12:32 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=0JTkhBN/MPIfjGf0MDP5kiNuMG2F915lASxs1b9lIfE=; b=jrVMjL/N3fllgf2z0IKMYAOCPZgFCUfDeGkSrzdxsq83aNpWA1Mhah/POlcqEYLlN/mMlnXrU1UCdgIZ5us9zz3cRqyZJTn7WluSdFQLZ/wmJarqYtot2FA548V9Zd+LjvoYP3W8saHqOWCgwbb2tJUaYf54afPgojkKvDu+vA0= Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=bestguesspass action=none header.from=xilinx.com; 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; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; From: Alistair Francis To: Date: Mon, 25 Sep 2017 17:08:52 -0700 Message-ID: X-Mailer: git-send-email 2.11.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23350.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(376002)(39860400002)(346002)(2980300002)(438002)(189002)(199003)(8676002)(53946003)(50226002)(23676002)(16200700003)(54906003)(2351001)(551934003)(316002)(478600001)(50986999)(76176999)(2870700001)(118296001)(50466002)(305945005)(4326008)(81166006)(7406005)(47776003)(5660300001)(39060400002)(575784001)(356003)(6306002)(33646002)(189998001)(6916009)(2906002)(5820100001)(7416002)(5890100001)(9786002)(6666003)(36756003)(2950100002)(81156014)(77096006)(36386004)(8936002)(106466001)(63266004)(8666007)(21314002)(107986001)(579004)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0201MB1931; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2NAM02FT038; 1:ze3NFSOsovELHF3Q1H8FT8/tOrDnVJBDv0PG0kZJeCEAYjG4b4diWTrje1ZoFRd78cbu99zWIALYUFPb8QEh9YkUnqXretn35fPQYio3dZ9A1MD08KUFxcvp/O7jvPW/ X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 711ec752-9c30-44af-2674-08d5047352fb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(8251501002)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:CY1PR0201MB1931; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1931; 3:rdD6Kr+B9+1hqU4tuoeP4/PwfPjIcq62CYes5oR9QCqr4rULAUcikoON5I9gndRzgjNPKPMdOlCnfLM4g89rJb3urFXVvKgA58KZJA2aUdRmElXI3YW4JHcz8QKI00sOPMmGKPRHMGrwGaK05ykhKTD/J9Y3QroEA6RklQHDX20vnAnNwCH+w3lOltVlmO6H8QodhCA3SAPzSDZgWQWLFn2wmO4H8XJdYAjLOEBVRQW9AMxkxM4WVtqxD0VXM6ZE2Y2/m+lNtKZDVTDX8wvvclRxmJy4eBrzmupOIRRISLigv1WPPuNi3F6HWSDbfFJhmYsLD8ElPiX1SEVmK2Me9vNCuA2GG1U+9m+aKrmeVM4=; 25:AerXj/6KloArXe9jer8Gy6w2xI2SAjoQJeF3Wvr4qagnpdjmHzTiGQut5DNm3GV+cypnnNZKaotbBn+XpSBDv3aW/LmEPXtDUaikA/SSzzZX+7T0qSx6OVwYhzSMnZ5zwvA1X/g3cw9qyljFGGVVkHKo4YVwWRrfbRWA3o3Ua4nJtg4S6tQO+/NREBRfwSmkU9ZV9c38mrfQPA+JERm16LGYiHitgdqVIALsVeOaSZFo7JFlP6+9SCE/paycAKKorn2q5c+434qgY6WzOuZFk8jfIreoWjrYqo6SCJjIUM1hX//CdZ+IgvASdKszhioMlmxBf+TJxBwt3rRl1gct0w== X-MS-TrafficTypeDiagnostic: CY1PR0201MB1931: X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1931; 31:H6Flvj2+gV5A6JQdh0Zz4iPu8yQcyDepdU6fEsRkoF71535hK7Pi2ogZw+hnRNMFwPOe7O0/MZCQN3x3cIR1YRMY85nre0Iu5Eu5yAHOYZFQjeYiFNJTv27DYFH6gLe7Wzlr229K/GKSDOojDnkOQUB/6akSenPZnLbnPk/ll5fqFTjszZj3HQmO0ZmmYcioMvvMaMuoI4qajeAYxsefWj69wKuHWqYtr89D8b2BBKs=; 20:FmVKal1eJ81kVlYVZJc3Y04GRWfPDCt5vGYP5Bbgg8sd2K01MWd7VFjLhQAWv+ubwvU02/1heb57rKLWURAzddvADlJvD+H8mYomsIgyJsD6jO03fb3dehCrqAo8vHcdfOmxtyHF4j+JAlqnUWbWU4q6hIm/T2X5RM/zt8yZgDiPxr++veLxWrytI+i0N9f3H83X7Xa/hRwkP0Vik3GVDM/f0GatcQP+Gbuo/eABW3vHEoz5nxolupyjRy8bGB2tlvA9lyppg9ZF5WYEZp8GNCHUTMLDoZsKKqrkF7utHfKAzPczS5MiuBEncp/M5NK5K8M9qZ7zLGlb8G18zkdAvHRV3o+dklmWrENZzXbj1OmHOBfQGZ5mutMn8FS8/Lcn8rZDnTl32mbRWWw3b96b0W7xcBzDaITKVe2M18XXkrx8eghU/A7mHZ4SS2Yab2BqyMZbrt5tQtodI0ZztQ/RoCrxNpyEU47HvfqtJMnqIGOrFvEU50NFy0nJu+RhM/P9 X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(158342451672863)(142945433499172)(72170088055959)(22074186197030)(788757137089)(190383065149520)(245156298449039)(192813158149592)(70601490899591); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(93004095)(3002001)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(20161123564025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR0201MB1931; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR0201MB1931; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1931; 4:cVEFDCbW1wRzlkDOJYBwW0/Fuxx4i6WFITmceadNvKjl7mbi6TYtzyj3HQkxDEeNf19u85d1WxcROm/RlgiMKHBf3cqlYzZQg3KtY43qGFJXrzseg8mkH7ARWqX+qv5N/CKwYCeLnkAOzrl855acCNjg8NIEDP31AN1alTknKjwFP0mOMkRpWgg9B7mq6ZbNKHqDNYPZadFCminFIrR1mOvB/HwSW5MNQKr1kTK0s77DhUWG7+RM445k5P/aSwe2/KVrZfbytYjFEjagRmiHqk5hvKAaoAdsEy1XiwNJaKJYu6IemCaCLqFd+RrCR+7CL8nbDjvL2T9pkIfTEb7jnRbHUlfbKgSnqkWBOWXBwLSOFVVKz0630eVU3XH7XGkJ3A8ROs54arbIB0mPG3w3wTEByFMHagR6E9TMIZNVm8E3uoVcnRu8/g284fKk6Vv6EVizINdyLtXg6OEs9WV64i9jir9fpXEH2JyU6PlUp1+Nz77TxmLXp5rzo6TZshl+YaJCrk7CFemwB9aPeg5ZW5XZR/IyQeKP+8zvI9dMu/d2rcbWWCK0G2eKPLsVjkl4eZpMzmrQvqdn68PwXIqIg/eqWlNk56J7jFbt30JdrCw= X-Forefront-PRVS: 0442E569BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0201MB1931; 23:PugbQgukwf/tXl6c7yZ9MlS35iOWqvx89bKgM3U?= =?us-ascii?Q?bJ5vuvmWcqwueR9nGf6uVLv02xJc2e2ZHeF2ab6ke78Oer+d+aNrPwx0OfSZ?= =?us-ascii?Q?GvqoULVLrPjw1aihqbB3t1C2imoJAGKP7Bd1LEAXZ24Vib4O21sd4mvHBJax?= =?us-ascii?Q?USvvJuXJRyK08yEVwp6ds6VeCnDJCgvLcW+kJDA2+BxIoeDNUIDXiBIscVI5?= =?us-ascii?Q?fBh6NQWaAb3mkUVcMFvGxpJY2/vKgEF5MEgwIt2sLbgmqy3kgVJ6IQiZ360o?= =?us-ascii?Q?cpMz61FuBZCZ6du7Ch3S4lA6mR1vDctKnx5+VY32ebJZTljPrQpXnJd4Lbgt?= =?us-ascii?Q?eGGlotV9bkEB9raiKOnUYqqTdcAujd1cg+Dvf/IBmLwoEBG8Z7h6LB/90pHP?= =?us-ascii?Q?nMY6y4X4Mz+ADFnRjr8+/axKtNa/KqZXfn1AFyypHX/mxH5msE4cMiQljPWJ?= =?us-ascii?Q?gwucKeaj+rgJVgVXt6QJdWQo0+FRkbo7FWy5tJH4VgbmkrcozZpedGy06qjw?= =?us-ascii?Q?OomHyKV6846JXv26fpbAh+vsnSseYielPMnoo3gigXUIQtusOmj8hMUt0qkJ?= =?us-ascii?Q?XedceJ6da9JuuxxjVShUu0MVjm6Eb64APlqEO3nN48rrN5cJg0oQrYnT3/+6?= =?us-ascii?Q?DNF12ObrVwpDFtQHfkzwuksWbVoHXBBO9/VsgYYlcGGU0CIHl4GnF2qRkR4Z?= =?us-ascii?Q?XNRly/LDK5a5WaYNK1cH870o+O2G9Gh+w/50dR2jNZL2jlcpJBrydSxqrdQw?= =?us-ascii?Q?W01Uho58x+1X0FQT+1fRYsHs+f9mLE4zCPiEfSUpq4tCIeuidAJynR3evPvE?= =?us-ascii?Q?u5kEKzDi5y1euKAjPdHVpuc3HDhud3kYVoAIesUXpSNxczYA13IlMPljwcHI?= =?us-ascii?Q?ZzAYes9WKJYlwby2Vw0B/6AFYVRnbkMdrw6QrIoLbPiQXhjP7TgblbJgV80R?= =?us-ascii?Q?H2q9cXVrlY3Uk5mYXI5QRSKZYy2IuQjfX9g9GMCq9Vmsb2Ut6T0xlkE4NUat?= =?us-ascii?Q?ZacTf3RdN8v/QB8LCKnHU3fYVKXHeqMpk7vik47is/XUq6f0jFDyztvyeGBT?= =?us-ascii?Q?w67/WYHXGELYn5/7nEaKnq5tQsgkRoRFI7l7BshjR+Ytfecwtb3hjy5esX7Q?= =?us-ascii?Q?SPLisnv/uxI4cu1kVrGZXOGIS2biUXir+FviXY3AC1IlcY47f5SKiux9pYgx?= =?us-ascii?Q?N3WVOFF/4pxLn2Ssax4u6uI80qTOQ3a3s9uGSOZCnSamz6r2l8WuskHv0MVK?= =?us-ascii?Q?om3X2oAakwLgIGGq/IGDnqbeSUMU8VmARbKSqNQ+GZp7Fp70RyyI/3tG+P0i?= =?us-ascii?Q?mAw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1931; 6:vClvaIFNPfNOm46PeuHA/gxAjQEC2iBmT4ubj2uM2mDnwWbSsSC4O4clMkZgN3XIxkgJEeVPjJUQUnHwLMDZiVRDtX4BLleopZ+wcqd42HY7SGtf4ZtWLtQIhct/m9Wki5v15Bg3UYmyesU+mbZVy+XbnVZPzvbl5ARo9zEubU8muOkaLS1ZzYp7+ODyFKEHnvpuZNyuM20K3rk86MoSR6UFKKxCSqMbbpmxMoBiulA5iaEelaMqbYfo1WwMGrDZCzp9gCdjr9U0IByG+XunWYsW76+HP1UiVjRZepaA2W572iyrrygYD2dAyUOwHKI7wFIoY8gC7rkvnaKFpe03Yw==; 5:otLoKd6h7fHBS1L21zdMlHRSCGIGAGhZhBW0/jtnnD1liJmv9zzh0n4nLxCl1iFssGw8KmpJZmvq4+z+K5griAk/N4K1bNTXpp0S3Il4D+Zwj5oq30gHVTWxtU4l2hLqPoSJZ6YMbwVUcepHBReqnA==; 24:HJessilumlYO4K2mAa18ZNLs4B4GNgHr0DaESFYWQ4oOscwN1V8TUQ9VtmUVhEdah3bd6dx9Z1JTzL7NNdcC2SdozGu1ogmYOddfNh1O9Mo=; 7:KjBmRTEiTagY94OVY9mOBYXjCf9uW476BtEJfyNME6ar6l5rOxtDZmMwJuA6cvSIO2nOxcyksOQvfi9jft4zow1Uqm6uvmIuKhJ+yYAFdNFNZpT7NB6Wp8PnTDMqgyD2DcLc1M+Kixx39ZRtpCZdW5pSU2WPe6QiO++P16fP3KniMQxQPA/01NHtJxpNnlrt0GAhAsnnXoBQTwno6mwBBOaZc7Kp1Xf2ISakMlGB9W4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 00:12:49.6327 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0201MB1931 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.79 Subject: [Qemu-devel] [PATCH v1 3/8] hw: Replace fprintf(stderr, "*\n" with error_report() 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: Chris Wulff , "Michael S. Tsirkin" , Anthony Green , Mark Cave-Ayland , armbru@redhat.com, Gerd Hoffmann , Marek Vasut , Stefano Stabellini , Jia Liu , qemu-block@nongnu.org, Magnus Damm , Alexander Graf , Christian Borntraeger , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Anthony Perard , xen-devel@lists.xenproject.org, Jason Wang , Artyom Tarasenko , Eduardo Habkost , Fabien Chouteau , alistair.francis@xilinx.com, Marcel Apfelbaum , qemu-arm@nongnu.org, Jan Kiszka , Stefan Hajnoczi , Yongbok Kim , alistair23@gmail.com, Stafford Horne , John Snow , Richard Henderson , Paul Burton , Thomas Huth , Cornelia Huck , Michael Walle , qemu-ppc@nongnu.org, Paolo Bonzini , Aurelien Jarno Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Replace a large number of the fprintf(stderr, "*\n" calls with error_report(). The functions were renamed with these commands and then compiler issues where manually fixed. find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_= report("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_re= port("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report= ("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("= \1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1= "\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\= 2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2)= ;|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|= Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig= }' \ {} + find ./* -type f -exec sed -i \ 'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}'= \ {} + find ./* -type f -exec sed -i \ 'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \ {} + Some lines where then manually tweaked to pass checkpatch. Signed-off-by: Alistair Francis Cc: Andrzej Zaborowski Cc: Jan Kiszka Cc: Stefan Hajnoczi Cc: Paolo Bonzini Cc: Thomas Huth Cc: Gerd Hoffmann Cc: "Michael S. Tsirkin" Cc: Richard Henderson Cc: Eduardo Habkost Cc: Stefano Stabellini Cc: Anthony Perard Cc: John Snow Cc: Christian Borntraeger Cc: Cornelia Huck Cc: Alexander Graf Cc: Michael Walle Cc: Paul Burton Cc: Aurelien Jarno Cc: Yongbok Kim Cc: "Herv=C3=A9 Poussineau" Cc: Anthony Green Cc: Jason Wang Cc: Chris Wulff Cc: Marek Vasut Cc: Jia Liu Cc: Stafford Horne Cc: Marcel Apfelbaum Cc: Magnus Damm Cc: Fabien Chouteau Cc: Mark Cave-Ayland Cc: Artyom Tarasenko Cc: qemu-arm@nongnu.org Cc: qemu-block@nongnu.org Cc: xen-devel@lists.xenproject.org Cc: qemu-ppc@nongnu.org --- hw/arm/armv7m.c | 2 +- hw/arm/boot.c | 34 +++++++++---------- hw/arm/gumstix.c | 13 ++++---- hw/arm/mainstone.c | 7 ++-- hw/arm/musicpal.c | 2 +- hw/arm/omap1.c | 5 +-- hw/arm/omap2.c | 21 ++++++------ hw/arm/omap_sx1.c | 6 ++-- hw/arm/palm.c | 10 +++--- hw/arm/pxa2xx.c | 7 ++-- hw/arm/stellaris.c | 3 +- hw/arm/tosa.c | 17 +++++----- hw/arm/versatilepb.c | 2 +- hw/arm/vexpress.c | 8 ++--- hw/arm/z2.c | 6 ++-- hw/block/dataplane/virtio-blk.c | 6 ++-- hw/block/onenand.c | 8 ++--- hw/block/tc58128.c | 44 ++++++++++++------------- hw/bt/core.c | 15 +++++---- hw/bt/hci-csr.c | 17 +++++----- hw/bt/hci.c | 30 ++++++++--------- hw/bt/hid.c | 2 +- hw/bt/l2cap.c | 47 ++++++++++++++------------- hw/bt/sdp.c | 7 ++-- hw/char/exynos4210_uart.c | 6 ++-- hw/char/mcf_uart.c | 5 +-- hw/char/sh_serial.c | 9 +++--- hw/core/loader.c | 31 +++++++++--------- hw/core/ptimer.c | 7 ++-- hw/cris/axis_dev88.c | 3 +- hw/cris/boot.c | 5 +-- hw/display/blizzard.c | 20 ++++++------ hw/display/omap_dss.c | 14 ++++---- hw/display/pl110.c | 2 +- hw/display/pxa2xx_lcd.c | 2 +- hw/display/qxl-render.c | 7 ++-- hw/display/qxl.c | 10 +++--- hw/display/tc6393xb.c | 36 ++++++++++++--------- hw/display/virtio-gpu-3d.c | 4 +-- hw/display/vmware_vga.c | 22 ++++++------- hw/dma/omap_dma.c | 26 ++++++++------- hw/dma/soc_dma.c | 37 ++++++++++----------- hw/gpio/omap_gpio.c | 2 +- hw/i2c/omap_i2c.c | 10 +++--- hw/i386/kvm/apic.c | 9 +++--- hw/i386/kvm/clock.c | 7 ++-- hw/i386/kvm/i8254.c | 7 ++-- hw/i386/kvm/i8259.c | 5 +-- hw/i386/kvm/ioapic.c | 5 +-- hw/i386/multiboot.c | 21 ++++++------ hw/i386/pc.c | 18 +++++------ hw/i386/pc_piix.c | 2 +- hw/i386/pc_sysfw.c | 5 +-- hw/i386/xen/xen-hvm.c | 32 +++++++++--------- hw/i386/xen/xen-mapcache.c | 12 +++---- hw/i386/xen/xen_apic.c | 2 +- hw/ide/ahci.c | 6 ++-- hw/ide/core.c | 2 +- hw/input/lm832x.c | 6 ++-- hw/input/pckbd.c | 3 +- hw/input/pxa2xx_keypad.c | 2 +- hw/input/tsc2005.c | 17 +++++----- hw/input/tsc210x.c | 72 ++++++++++++++++++++-----------------= ---- hw/input/virtio-input-hid.c | 14 ++++---- hw/input/virtio-input.c | 5 +-- hw/intc/arm_gic_kvm.c | 12 +++---- hw/intc/omap_intc.c | 4 +-- hw/intc/openpic.c | 7 ++-- hw/intc/openpic_kvm.c | 8 ++--- hw/intc/s390_flic_kvm.c | 4 +-- hw/ipmi/ipmi.c | 1 + hw/ipmi/ipmi_bmc_extern.c | 5 +-- hw/isa/isa-bus.c | 7 ++-- hw/lm32/lm32_boards.c | 5 +-- hw/lm32/milkymist.c | 5 +-- hw/m68k/an5206.c | 4 +-- hw/m68k/mcf5206.c | 3 +- hw/m68k/mcf5208.c | 7 ++-- hw/microblaze/boot.c | 2 +- hw/mips/boston.c | 4 +-- hw/mips/mips_fulong2e.c | 4 +-- hw/mips/mips_jazz.c | 4 +-- hw/mips/mips_malta.c | 4 +-- hw/mips/mips_mipssim.c | 4 +-- hw/mips/mips_r4k.c | 6 ++-- hw/misc/a9scu.c | 3 +- hw/misc/omap_gpmc.c | 11 ++++--- hw/misc/omap_l4.c | 5 +-- hw/misc/omap_sdrc.c | 3 +- hw/misc/vmport.c | 2 +- hw/moxie/moxiesim.c | 7 ++-- hw/net/fsl_etsec/etsec.c | 2 +- hw/net/pcnet.c | 2 +- hw/net/smc91c111.c | 5 +-- hw/net/vhost_net.c | 16 ++++----- hw/nios2/boot.c | 2 +- hw/nvram/eeprom93xx.c | 5 +-- hw/nvram/fw_cfg.c | 4 +-- hw/openrisc/openrisc_sim.c | 3 +- hw/pci-host/bonito.c | 6 ++-- hw/pci/pci.c | 10 +++--- hw/ppc/e500.c | 20 ++++++------ hw/ppc/mac_newworld.c | 2 +- hw/ppc/mac_oldworld.c | 2 +- hw/ppc/mpc8544_guts.c | 5 +-- hw/ppc/ppc405_boards.c | 8 ++--- hw/ppc/ppc440_bamboo.c | 19 +++++------ hw/ppc/ppc4xx_pci.c | 3 +- hw/ppc/prep.c | 4 +-- hw/ppc/virtex_ml507.c | 4 +-- hw/s390x/virtio-ccw.c | 2 +- hw/scsi/lsi53c895a.c | 4 +-- hw/scsi/spapr_vscsi.c | 49 ++++++++++++++-------------- hw/scsi/virtio-scsi-dataplane.c | 6 ++-- hw/sd/pl181.c | 5 +-- hw/sd/sd.c | 14 ++++---- hw/sh4/r2d.c | 9 +++--- hw/sh4/sh7750.c | 64 ++++++++++++++++++------------------ hw/sparc/leon3.c | 9 +++--- hw/sparc/sun4m.c | 8 ++--- hw/sparc64/niagara.c | 2 +- hw/sparc64/sun4u.c | 9 +++--- hw/ssi/omap_spi.c | 5 +-- hw/timer/omap_gptimer.c | 11 ++++--- hw/timer/twl92230.c | 2 +- hw/timer/xilinx_timer.c | 8 ++--- hw/usb/core.c | 15 +++++---- hw/usb/desc.c | 4 +-- hw/usb/dev-audio.c | 29 +++++++++-------- hw/usb/dev-bluetooth.c | 4 +-- hw/usb/dev-mtp.c | 9 +++--- hw/usb/dev-network.c | 20 ++++++------ hw/usb/hcd-ehci.c | 32 +++++++++--------- hw/usb/hcd-musb.c | 4 +-- hw/usb/hcd-xhci.c | 3 +- hw/usb/host-legacy.c | 2 +- hw/watchdog/watchdog.c | 9 +++--- hw/watchdog/wdt_i6300esb.c | 8 +++-- hw/xen/xen-common.c | 10 +++--- hw/xen/xen_pt.c | 4 +-- hw/xenpv/xen_domainbuild.c | 24 +++++++------- hw/xenpv/xen_machine_pv.c | 8 ++--- 142 files changed, 769 insertions(+), 705 deletions(-) diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c index bb2dfc942b..56770a7048 100644 --- a/hw/arm/armv7m.c +++ b/hw/arm/armv7m.c @@ -278,7 +278,7 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel= _filename, int mem_size) #endif =20 if (!kernel_filename && !qtest_enabled()) { - fprintf(stderr, "Guest image must be specified (using -kernel)\n"); + error_report("Guest image must be specified (using -kernel)"); exit(1); } =20 diff --git a/hw/arm/boot.c b/hw/arm/boot.c index c2720c8046..5b2d17f08a 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -8,6 +8,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include #include "hw/hw.h" @@ -418,13 +419,13 @@ static int load_dtb(hwaddr addr, const struct arm_boo= t_info *binfo, char *filename; filename =3D qemu_find_file(QEMU_FILE_TYPE_BIOS, binfo->dtb_filena= me); if (!filename) { - fprintf(stderr, "Couldn't open dtb file %s\n", binfo->dtb_file= name); + error_report("Couldn't open dtb file %s", binfo->dtb_filename); goto fail; } =20 fdt =3D load_device_tree(filename, &size); if (!fdt) { - fprintf(stderr, "Couldn't open dtb file %s\n", filename); + error_report("Couldn't open dtb file %s", filename); g_free(filename); goto fail; } @@ -432,7 +433,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, } else { fdt =3D binfo->get_dtb(binfo, &size); if (!fdt) { - fprintf(stderr, "Board was unable to create a dtb blob\n"); + error_report("Board was unable to create a dtb blob"); goto fail; } } @@ -451,7 +452,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, scells =3D qemu_fdt_getprop_cell(fdt, "/", "#size-cells", NULL, &error_fatal); if (acells =3D=3D 0 || scells =3D=3D 0) { - fprintf(stderr, "dtb file invalid (#address-cells or #size-cells 0= )\n"); + error_report("dtb file invalid (#address-cells or #size-cells 0)"); goto fail; } =20 @@ -459,8 +460,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, /* This is user error so deserves a friendlier error message * than the failure of setprop_sized_cells would provide */ - fprintf(stderr, "qemu: dtb file not compatible with " - "RAM size > 4GB\n"); + error_report("qemu: dtb file not compatible with RAM size > 4GB"); goto fail; } =20 @@ -480,7 +480,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, acells, mem_base, scells, mem_len); if (rc < 0) { - fprintf(stderr, "couldn't set %s/reg for node %d\n", noden= ame, + error_report("couldn't set %s/reg for node %d", nodename, i); goto fail; } @@ -505,7 +505,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, acells, binfo->loader_start, scells, binfo->ram_size); if (rc < 0) { - fprintf(stderr, "couldn't set /memory/reg\n"); + error_report("couldn't set /memory/reg"); goto fail; } } @@ -519,7 +519,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, rc =3D qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", binfo->kernel_cmdline); if (rc < 0) { - fprintf(stderr, "couldn't set /chosen/bootargs\n"); + error_report("couldn't set /chosen/bootargs"); goto fail; } } @@ -528,14 +528,14 @@ static int load_dtb(hwaddr addr, const struct arm_boo= t_info *binfo, rc =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-start", binfo->initrd_start); if (rc < 0) { - fprintf(stderr, "couldn't set /chosen/linux,initrd-start\n"); + error_report("couldn't set /chosen/linux,initrd-start"); goto fail; } =20 rc =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", binfo->initrd_start + binfo->initrd_siz= e); if (rc < 0) { - fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n"); + error_report("couldn't set /chosen/linux,initrd-end"); goto fail; } } @@ -690,7 +690,7 @@ static void load_image_to_fw_cfg(FWCfgState *fw_cfg, ui= nt16_t size_key, gsize length; =20 if (!g_file_get_contents(image_name, &contents, &length, NULL)) { - fprintf(stderr, "failed to load \"%s\"\n", image_name); + error_report("failed to load \"%s\"", image_name); exit(1); } size =3D length; @@ -956,7 +956,7 @@ static void arm_load_kernel_notify(Notifier *notifier, = void *data) is_linux =3D 1; } if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", info->kernel_filename); exit(1); } @@ -976,7 +976,7 @@ static void arm_load_kernel_notify(Notifier *notifier, = void *data) info->initrd_start); } if (initrd_size < 0) { - fprintf(stderr, "qemu: could not load initrd '%s'\n", + error_report("qemu: could not load initrd '%s'", info->initrd_filename); exit(1); } @@ -1021,9 +1021,9 @@ static void arm_load_kernel_notify(Notifier *notifier= , void *data) } else { fixupcontext[FIXUP_ARGPTR] =3D info->loader_start + KERNEL_ARG= S_ADDR; if (info->ram_size >=3D (1ULL << 32)) { - fprintf(stderr, "qemu: RAM size must be less than 4GB to b= oot" - " Linux kernel using ATAGS (try passing a device t= ree" - " using -dtb)\n"); + error_report("qemu: RAM size must be less than 4GB to boot" + " Linux kernel using ATAGS (try passing a devi= ce tree" + " using -dtb)"); exit(1); } } diff --git a/hw/arm/gumstix.c b/hw/arm/gumstix.c index bba9e9f57a..8bd34956b7 100644 --- a/hw/arm/gumstix.c +++ b/hw/arm/gumstix.c @@ -35,6 +35,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/arm/pxa.h" #include "net/net.h" @@ -62,8 +63,8 @@ static void connex_init(MachineState *machine) =20 dinfo =3D drive_get(IF_PFLASH, 0, 0); if (!dinfo && !qtest_enabled()) { - fprintf(stderr, "A flash image must be given with the " - "'pflash' parameter\n"); + error_report("A flash image must be given with the " + "'pflash' parameter"); exit(1); } =20 @@ -76,7 +77,7 @@ static void connex_init(MachineState *machine) dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, sector_len, connex_rom / sector_len, 2, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("qemu: Error registering flash memory."); exit(1); } =20 @@ -99,8 +100,8 @@ static void verdex_init(MachineState *machine) =20 dinfo =3D drive_get(IF_PFLASH, 0, 0); if (!dinfo && !qtest_enabled()) { - fprintf(stderr, "A flash image must be given with the " - "'pflash' parameter\n"); + error_report("A flash image must be given with the " + "'pflash' parameter"); exit(1); } =20 @@ -113,7 +114,7 @@ static void verdex_init(MachineState *machine) dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, sector_len, verdex_rom / sector_len, 2, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("qemu: Error registering flash memory."); exit(1); } =20 diff --git a/hw/arm/mainstone.c b/hw/arm/mainstone.c index d07972a966..5c454c7109 100644 --- a/hw/arm/mainstone.c +++ b/hw/arm/mainstone.c @@ -12,6 +12,7 @@ * GNU GPL, version 2 or (at your option) any later version. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "hw/hw.h" #include "hw/arm/pxa.h" @@ -143,8 +144,8 @@ static void mainstone_common_init(MemoryRegion *address= _space_mem, if (qtest_enabled()) { break; } - fprintf(stderr, "Two flash images must be given with the " - "'pflash' parameter\n"); + error_report("Two flash images must be given with the " + "'pflash' parameter"); exit(1); } =20 @@ -154,7 +155,7 @@ static void mainstone_common_init(MemoryRegion *address= _space_mem, blk_by_legacy_dinfo(dinfo), sector_len, MAINSTONE_FLASH / sector_le= n, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("qemu: Error registering flash memory."); exit(1); } } diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c index b648770882..06127a873d 100644 --- a/hw/arm/musicpal.c +++ b/hw/arm/musicpal.c @@ -1626,7 +1626,7 @@ static void musicpal_init(MachineState *machine) flash_size =3D blk_getlength(blk); if (flash_size !=3D 8*1024*1024 && flash_size !=3D 16*1024*1024 && flash_size !=3D 32*1024*1024) { - fprintf(stderr, "Invalid flash image size\n"); + error_report("Invalid flash image size"); exit(1); } =20 diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c index 1388200191..821ee69441 100644 --- a/hw/arm/omap1.c +++ b/hw/arm/omap1.c @@ -18,6 +18,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -2313,7 +2314,7 @@ void omap_uwire_attach(struct omap_uwire_s *s, uWireSlave *slave, int chipselect) { if (chipselect < 0 || chipselect > 3) { - fprintf(stderr, "%s: Bad chipselect %i\n", __func__, chipselect); + error_report("%s: Bad chipselect %i", __func__, chipselect); exit(-1); } =20 @@ -3989,7 +3990,7 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegio= n *system_memory, =20 dinfo =3D drive_get(IF_SD, 0, 0); if (!dinfo) { - fprintf(stderr, "qemu: missing SecureDigital device\n"); + error_report("qemu: missing SecureDigital device"); exit(1); } s->mmc =3D omap_mmc_init(0xfffb7800, system_memory, diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c index b53878b8b9..cbbb3ec05f 100644 --- a/hw/arm/omap2.c +++ b/hw/arm/omap2.c @@ -19,6 +19,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -1311,7 +1312,7 @@ static void omap_prcm_apll_update(struct omap_prcm_s = *s) /* TODO: update clocks */ =20 if (mode[0] =3D=3D 1 || mode[0] =3D=3D 2 || mode[1] =3D=3D 1 || mode[1= ] =3D=3D 2) - fprintf(stderr, "%s: bad EN_54M_PLL or bad EN_96M_PLL\n", + error_report("%s: bad EN_54M_PLL or bad EN_96M_PLL", __func__); } =20 @@ -1331,7 +1332,7 @@ static void omap_prcm_dpll_update(struct omap_prcm_s = *s) s->dpll_lock =3D 0; switch (mode) { case 0: - fprintf(stderr, "%s: bad EN_DPLL\n", __func__); + error_report("%s: bad EN_DPLL", __func__); break; case 1: /* Low-power bypass mode (Default) */ case 2: /* Fast-relock bypass mode */ @@ -1358,7 +1359,7 @@ static void omap_prcm_dpll_update(struct omap_prcm_s = *s) omap_clk_reparent(core, dpll_x2); break; case 3: - fprintf(stderr, "%s: bad CORE_CLK_SRC\n", __func__); + error_report("%s: bad CORE_CLK_SRC", __func__); break; } } @@ -1627,8 +1628,8 @@ static void omap_prcm_write(void *opaque, hwaddr addr, =20 case 0x500: /* CM_CLKEN_PLL */ if (value & 0xffffff30) - fprintf(stderr, "%s: write 0s in CM_CLKEN_PLL for " - "future compatibility\n", __func__); + error_report("%s: write 0s in CM_CLKEN_PLL for " + "future compatibility", __func__); if ((s->clken[9] ^ value) & 0xcc) { s->clken[9] &=3D ~0xcc; s->clken[9] |=3D value & 0xcc; @@ -1646,8 +1647,8 @@ static void omap_prcm_write(void *opaque, hwaddr addr, break; case 0x540: /* CM_CLKSEL1_PLL */ if (value & 0xfc4000d7) - fprintf(stderr, "%s: write 0s in CM_CLKSEL1_PLL for " - "future compatibility\n", __func__); + error_report("%s: write 0s in CM_CLKSEL1_PLL for " + "future compatibility", __func__); if ((s->clksel[5] ^ value) & 0x003fff00) { s->clksel[5] =3D value & 0x03bfff28; omap_prcm_dpll_update(s); @@ -1658,8 +1659,8 @@ static void omap_prcm_write(void *opaque, hwaddr addr, break; case 0x544: /* CM_CLKSEL2_PLL */ if (value & ~3) - fprintf(stderr, "%s: write 0s in CM_CLKSEL2_PLL[31:2] for " - "future compatibility\n", __func__); + error_report("%s: write 0s in CM_CLKSEL2_PLL[31:2] for " + "future compatibility", __func__); if (s->clksel[6] !=3D (value & 3)) { s->clksel[6] =3D value & 3; omap_prcm_dpll_update(s); @@ -2486,7 +2487,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegi= on *sysmem, =20 dinfo =3D drive_get(IF_SD, 0, 0); if (!dinfo) { - fprintf(stderr, "qemu: missing SecureDigital device\n"); + error_report("qemu: missing SecureDigital device"); exit(1); } s->mmc =3D omap2_mmc_init(omap_l4tao(s->l4, 9), diff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c index 9a14270795..6eb56ae744 100644 --- a/hw/arm/omap_sx1.c +++ b/hw/arm/omap_sx1.c @@ -158,7 +158,7 @@ static void sx1_init(MachineState *machine, const int v= ersion) blk_by_legacy_dinfo(dinfo), sector_size, flash_size / sector_size, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory %d.\n", + error_report("qemu: Error registering flash memory %d.", fl_idx); } fl_idx++; @@ -182,7 +182,7 @@ static void sx1_init(MachineState *machine, const int v= ersion) blk_by_legacy_dinfo(dinfo), sector_size, flash1_size / sector_size, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory %d.\n", + error_report("qemu: Error registering flash memory %d.", fl_idx); } fl_idx++; @@ -194,7 +194,7 @@ static void sx1_init(MachineState *machine, const int v= ersion) } =20 if (!machine->kernel_filename && !fl_idx && !qtest_enabled()) { - fprintf(stderr, "Kernel or Flash image must be specified\n"); + error_report("Kernel or Flash image must be specified"); exit(1); } =20 diff --git a/hw/arm/palm.c b/hw/arm/palm.c index 285f43709d..7f3637041a 100644 --- a/hw/arm/palm.c +++ b/hw/arm/palm.c @@ -233,8 +233,8 @@ static void palmte_init(MachineState *machine) if (nb_option_roms) { rom_size =3D get_image_size(option_rom[0].name); if (rom_size > flash_size) { - fprintf(stderr, "%s: ROM image too big (%x > %x)\n", - __func__, rom_size, flash_size); + error_report("%s: ROM image too big (%x > %x)", + __func__, rom_size, flash_size); rom_size =3D 0; } if (rom_size > 0) { @@ -243,13 +243,13 @@ static void palmte_init(MachineState *machine) rom_loaded =3D 1; } if (rom_size < 0) { - fprintf(stderr, "%s: error loading '%s'\n", - __func__, option_rom[0].name); + error_report("%s: error loading '%s'", + __func__, option_rom[0].name); } } =20 if (!rom_loaded && !kernel_filename && !qtest_enabled()) { - fprintf(stderr, "Kernel or ROM image must be specified\n"); + fprintf(stderr, "Kernel or ROM image must be specified"); exit(1); } =20 diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index 078006f390..c46b65d5d2 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -8,6 +8,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -2060,7 +2061,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space, s =3D g_new0(PXA2xxState, 1); =20 if (strncmp(cpu_type, "pxa27", 5)) { - fprintf(stderr, "Machine requires a PXA27x processor.\n"); + error_report("Machine requires a PXA27x processor."); exit(1); } =20 @@ -2093,7 +2094,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space, =20 dinfo =3D drive_get(IF_SD, 0, 0); if (!dinfo) { - fprintf(stderr, "qemu: missing SecureDigital device\n"); + error_report("qemu: missing SecureDigital device"); exit(1); } s->mmc =3D pxa2xx_mmci_init(address_space, 0x41100000, @@ -2218,7 +2219,7 @@ PXA2xxState *pxa255_init(MemoryRegion *address_space,= unsigned int sdram_size) =20 dinfo =3D drive_get(IF_SD, 0, 0); if (!dinfo) { - fprintf(stderr, "qemu: missing SecureDigital device\n"); + error_report("qemu: missing SecureDigital device"); exit(1); } s->mmc =3D pxa2xx_mmci_init(address_space, 0x41100000, diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c index de7c0fc4a6..f6f295b363 100644 --- a/hw/arm/stellaris.c +++ b/hw/arm/stellaris.c @@ -8,6 +8,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "hw/sysbus.h" #include "hw/ssi/ssi.h" @@ -559,7 +560,7 @@ static void ssys_write(void *opaque, hwaddr offset, case 0x040: /* SRCR0 */ case 0x044: /* SRCR1 */ case 0x048: /* SRCR2 */ - fprintf(stderr, "Peripheral reset not implemented\n"); + error_report("Peripheral reset not implemented"); break; case 0x054: /* IMC */ s->int_mask =3D value & 0x7f; diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c index a55b1a369c..a069c95f1c 100644 --- a/hw/arm/tosa.c +++ b/hw/arm/tosa.c @@ -12,6 +12,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "hw/hw.h" #include "hw/arm/pxa.h" @@ -70,19 +71,19 @@ static void tosa_out_switch(void *opaque, int line, int= level) { switch (line) { case 0: - fprintf(stderr, "blue LED %s.\n", level ? "on" : "off"); + error_report("blue LED %s.", level ? "on" : "off"); break; case 1: - fprintf(stderr, "green LED %s.\n", level ? "on" : "off"); + error_report("green LED %s.", level ? "on" : "off"); break; case 2: - fprintf(stderr, "amber LED %s.\n", level ? "on" : "off"); + error_report("amber LED %s.", level ? "on" : "off"); break; case 3: - fprintf(stderr, "wlan LED %s.\n", level ? "on" : "off"); + fprintf(stderr, "wlan LED %s.", level ? "on" : "off"); break; default: - fprintf(stderr, "Uhandled out event: %d =3D %d\n", line, level= ); + fprintf(stderr, "Uhandled out event: %d =3D %d", line, level); break; } } @@ -133,7 +134,7 @@ static void tosa_gpio_setup(PXA2xxState *cpu, =20 static uint32_t tosa_ssp_tansfer(SSISlave *dev, uint32_t value) { - fprintf(stderr, "TG: %d %02x\n", value >> 5, value & 0x1f); + error_report("TG: %d %02x", value >> 5, value & 0x1f); return 0; } =20 @@ -159,13 +160,13 @@ static int tosa_dac_send(I2CSlave *i2c, uint8_t data) s->buf[s->len] =3D data; if (s->len ++ > 2) { #ifdef VERBOSE - fprintf(stderr, "%s: message too long (%i bytes)\n", __func__, s->= len); + error_report("%s: message too long (%i bytes)", __func__, s->len); #endif return 1; } =20 if (s->len =3D=3D 2) { - fprintf(stderr, "dac: channel %d value 0x%02x\n", + error_report("dac: channel %d value 0x%02x", s->buf[0], s->buf[1]); } =20 diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c index 418792cd02..f0ae069172 100644 --- a/hw/arm/versatilepb.c +++ b/hw/arm/versatilepb.c @@ -364,7 +364,7 @@ static void versatile_init(MachineState *machine, int b= oard_id) VERSATILE_FLASH_SECT_SIZE, VERSATILE_FLASH_SIZE / VERSATILE_FLASH_SECT_SIZE, 4, 0x0089, 0x0018, 0x0000, 0x0, 0)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("qemu: Error registering flash memory."); } =20 versatile_binfo.ram_size =3D machine->ram_size; diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c index efb5a29475..508629dfe9 100644 --- a/hw/arm/vexpress.c +++ b/hw/arm/vexpress.c @@ -266,7 +266,7 @@ static void a9_daughterboard_init(const VexpressMachine= State *vms, =20 if (ram_size > 0x40000000) { /* 1GB is the maximum the address space permits */ - fprintf(stderr, "vexpress-a9: cannot model more than 1GB RAM\n"); + error_report("vexpress-a9: cannot model more than 1GB RAM"); exit(1); } =20 @@ -355,7 +355,7 @@ static void a15_daughterboard_init(const VexpressMachin= eState *vms, */ uint64_t rsz =3D ram_size; if (rsz > (30ULL * 1024 * 1024 * 1024)) { - fprintf(stderr, "vexpress-a15: cannot model more than 30GB RAM= \n"); + error_report("vexpress-a15: cannot model more than 30GB RAM"); exit(1); } } @@ -640,7 +640,7 @@ static void vexpress_common_init(MachineState *machine) pflash0 =3D ve_pflash_cfi01_register(map[VE_NORFLASH0], "vexpress.flas= h0", dinfo); if (!pflash0) { - fprintf(stderr, "vexpress: error registering flash 0.\n"); + error_report("vexpress: error registering flash 0."); exit(1); } =20 @@ -655,7 +655,7 @@ static void vexpress_common_init(MachineState *machine) dinfo =3D drive_get_next(IF_PFLASH); if (!ve_pflash_cfi01_register(map[VE_NORFLASH1], "vexpress.flash1", dinfo)) { - fprintf(stderr, "vexpress: error registering flash 1.\n"); + error_report("vexpress: error registering flash 1."); exit(1); } =20 diff --git a/hw/arm/z2.c b/hw/arm/z2.c index 60561c7b7c..5048439799 100644 --- a/hw/arm/z2.c +++ b/hw/arm/z2.c @@ -319,8 +319,8 @@ static void z2_init(MachineState *machine) #endif dinfo =3D drive_get(IF_PFLASH, 0, 0); if (!dinfo && !qtest_enabled()) { - fprintf(stderr, "Flash image must be given with the " - "'pflash' parameter\n"); + error_report("Flash image must be given with the " + "'pflash' parameter"); exit(1); } =20 @@ -329,7 +329,7 @@ static void z2_init(MachineState *machine) dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, sector_len, Z2_FLASH_SIZE / sector_len, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("qemu: Error registering flash memory."); exit(1); } =20 diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-bl= k.c index 5556f0e64e..69dfd49191 100644 --- a/hw/block/dataplane/virtio-blk.c +++ b/hw/block/dataplane/virtio-blk.c @@ -178,8 +178,8 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev) /* Set up guest notifier (irq) */ r =3D k->set_guest_notifiers(qbus->parent, nvqs, true); if (r !=3D 0) { - fprintf(stderr, "virtio-blk failed to set guest notifier (%d), " - "ensure -enable-kvm is set\n", r); + error_report("virtio-blk failed to set guest notifier (%d), " + "ensure -enable-kvm is set", r); goto fail_guest_notifiers; } =20 @@ -187,7 +187,7 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev) for (i =3D 0; i < nvqs; i++) { r =3D virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, true); if (r !=3D 0) { - fprintf(stderr, "virtio-blk failed to set host notifier (%d)\n= ", r); + error_report("virtio-blk failed to set host notifier (%d)", r); while (i--) { virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false); } diff --git a/hw/block/onenand.c b/hw/block/onenand.c index 224daf7ccf..8bcd67688b 100644 --- a/hw/block/onenand.c +++ b/hw/block/onenand.c @@ -598,7 +598,7 @@ static void onenand_command(OneNANDState *s) default: s->status |=3D ONEN_ERR_CMD; s->intstatus |=3D ONEN_INT; - fprintf(stderr, "%s: unknown OneNAND command %x\n", + error_report("%s: unknown OneNAND command %x", __func__, s->command); } =20 @@ -665,7 +665,7 @@ static uint64_t onenand_read(void *opaque, hwaddr addr, return 0x0000; } =20 - fprintf(stderr, "%s: unknown OneNAND register %x\n", + error_report("%s: unknown OneNAND register %x", __func__, offset); return 0; } @@ -710,7 +710,7 @@ static void onenand_write(void *opaque, hwaddr addr, break; =20 default: - fprintf(stderr, "%s: unknown OneNAND boot command %"PRIx64"\n", + error_report("%s: unknown OneNAND boot command %"PRIx64"", __func__, value); } break; @@ -761,7 +761,7 @@ static void onenand_write(void *opaque, hwaddr addr, break; =20 default: - fprintf(stderr, "%s: unknown OneNAND register %x\n", + error_report("%s: unknown OneNAND register %x", __func__, offset); } } diff --git a/hw/block/tc58128.c b/hw/block/tc58128.c index 1d9f7ee000..d274c9aafe 100644 --- a/hw/block/tc58128.c +++ b/hw/block/tc58128.c @@ -50,8 +50,8 @@ static void init_dev(tc58128_dev * dev, const char *filen= ame) dev->flash_contents[1] =3D (blocks >> 8) & 0xff; dev->flash_contents[2] =3D (blocks >> 16) & 0xff; dev->flash_contents[3] =3D (blocks >> 24) & 0xff; - fprintf(stderr, "loaded %d bytes for %s into flash\n", ret, - filename); + error_report("loaded %d bytes for %s into flash", ret, + filename); } } } @@ -60,26 +60,26 @@ static void handle_command(tc58128_dev * dev, uint8_t c= ommand) { switch (command) { case 0xff: - fprintf(stderr, "reset flash device\n"); - dev->state =3D WAIT; - break; + error_report("reset flash device"); + dev->state =3D WAIT; + break; case 0x00: - fprintf(stderr, "read mode 1\n"); - dev->state =3D READ1; - dev->address_cycle =3D 0; - break; + error_report("read mode 1"); + dev->state =3D READ1; + dev->address_cycle =3D 0; + break; case 0x01: - fprintf(stderr, "read mode 2\n"); - dev->state =3D READ2; - dev->address_cycle =3D 0; - break; + error_report("read mode 2"); + dev->state =3D READ2; + dev->address_cycle =3D 0; + break; case 0x50: - fprintf(stderr, "read mode 3\n"); - dev->state =3D READ3; - dev->address_cycle =3D 0; - break; + error_report("read mode 3"); + dev->state =3D READ3; + dev->address_cycle =3D 0; + break; default: - fprintf(stderr, "unknown flash command 0x%02x\n", command); + error_report("unknown flash command 0x%02x", command); abort(); } } @@ -103,8 +103,8 @@ static void handle_address(tc58128_dev * dev, uint8_t d= ata) break; case 2: dev->address +=3D data * 528; - fprintf(stderr, "address pointer in flash: 0x%08x\n", - dev->address); + error_report("address pointer in flash: 0x%08x", + dev->address); break; default: /* Invalid data */ @@ -119,10 +119,6 @@ static void handle_address(tc58128_dev * dev, uint8_t = data) =20 static uint8_t handle_read(tc58128_dev * dev) { -#if 0 - if (dev->address % 0x100000 =3D=3D 0) - fprintf(stderr, "reading flash at address 0x%08x\n", dev->address); -#endif return dev->flash_contents[dev->address++]; } =20 diff --git a/hw/bt/core.c b/hw/bt/core.c index c1806b71a3..a6e9bf2a3e 100644 --- a/hw/bt/core.c +++ b/hw/bt/core.c @@ -18,6 +18,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "sysemu/bt.h" #include "hw/bt.h" @@ -31,24 +32,24 @@ static void bt_dummy_lmp_mode_change(struct bt_link_s *= link) static void bt_dummy_lmp_connection_complete(struct bt_link_s *link) { if (link->slave->reject_reason) - fprintf(stderr, "%s: stray LMP_not_accepted received, fixme\n", - __func__); + error_report("%s: stray LMP_not_accepted received, fixme", + __func__); else - fprintf(stderr, "%s: stray LMP_accepted received, fixme\n", - __func__); + error_report("%s: stray LMP_accepted received, fixme", + __func__); exit(-1); } =20 static void bt_dummy_lmp_disconnect_master(struct bt_link_s *link) { - fprintf(stderr, "%s: stray LMP_detach received, fixme\n", __func__); + fprintf(stderr, "%s: stray LMP_detach received, fixme", __func__); exit(-1); } =20 static void bt_dummy_lmp_acl_resp(struct bt_link_s *link, const uint8_t *data, int start, int len) { - fprintf(stderr, "%s: stray ACL response PDU, fixme\n", __func__); + error_report("%s: stray ACL response PDU, fixme", __func__); exit(-1); } =20 @@ -113,7 +114,7 @@ void bt_device_done(struct bt_device_s *dev) while (*p && *p !=3D dev) p =3D &(*p)->next; if (*p !=3D dev) { - fprintf(stderr, "%s: bad bt device \"%s\"\n", __func__, + error_report("%s: bad bt device \"%s\"", __func__, dev->lmp_name ?: "(null)"); exit(-1); } diff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c index ac067b81f6..6a171a54b7 100644 --- a/hw/bt/hci-csr.c +++ b/hw/bt/hci-csr.c @@ -19,6 +19,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "chardev/char-serial.h" #include "qemu/timer.h" @@ -111,14 +112,14 @@ static uint8_t *csrhci_out_packet(struct csrhci_s *s,= int len) =20 if (off < FIFO_LEN) { if (off + len > FIFO_LEN && (s->out_size =3D off + len) > FIFO_LEN= * 2) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); + error_report("%s: can't alloc %i bytes", __func__, len); exit(-1); } return s->outfifo + off; } =20 if (s->out_len > s->out_size) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); + error_report("%s: can't alloc %i bytes", __func__, len); exit(-1); } =20 @@ -168,8 +169,8 @@ static void csrhci_in_packet_vendor(struct csrhci_s *s,= int ocf, s->bd_addr.b[5] =3D data[offset + 2]; =20 s->hci->bdaddr_set(s->hci, s->bd_addr.b); - fprintf(stderr, "%s: bd_address loaded from firmware: " - "%02x:%02x:%02x:%02x:%02x:%02x\n", __func__, + error_report("%s: bd_address loaded from firmware: " + "%02x:%02x:%02x:%02x:%02x:%02x", __func__, s->bd_addr.b[0], s->bd_addr.b[1], s->bd_addr.b= [2], s->bd_addr.b[3], s->bd_addr.b[4], s->bd_addr.b= [5]); } @@ -181,7 +182,7 @@ static void csrhci_in_packet_vendor(struct csrhci_s *s,= int ocf, break; =20 default: - fprintf(stderr, "%s: got a bad CMD packet\n", __func__); + error_report("%s: got a bad CMD packet", __func__); return; } =20 @@ -226,7 +227,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_= t *pkt) case H4_NEG_PKT: if (s->in_hdr !=3D sizeof(csrhci_neg_packet) || memcmp(pkt - 1, csrhci_neg_packet, s->in_hdr)) { - fprintf(stderr, "%s: got a bad NEG packet\n", __func__); + error_report("%s: got a bad NEG packet", __func__); return; } pkt +=3D 2; @@ -241,7 +242,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_= t *pkt) =20 case H4_ALIVE_PKT: if (s->in_hdr !=3D 4 || pkt[1] !=3D 0x55 || pkt[2] !=3D 0x00) { - fprintf(stderr, "%s: got a bad ALIVE packet\n", __func__); + error_report("%s: got a bad ALIVE packet", __func__); return; } =20 @@ -254,7 +255,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_= t *pkt) default: bad_pkt: /* TODO: error out */ - fprintf(stderr, "%s: got a bad packet\n", __func__); + error_report("%s: got a bad packet", __func__); break; } =20 diff --git a/hw/bt/hci.c b/hw/bt/hci.c index df05f07887..ac9394daf0 100644 --- a/hw/bt/hci.c +++ b/hw/bt/hci.c @@ -19,6 +19,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "qemu/timer.h" @@ -457,7 +458,7 @@ static inline uint8_t *bt_hci_event_start(struct bt_hci= _s *hci, int mask_byte; =20 if (len > 255) { - fprintf(stderr, "%s: HCI event params too long (%ib)\n", + error_report("%s: HCI event params too long (%ib)", __func__, len); exit(-1); } @@ -589,7 +590,7 @@ static void bt_hci_inquiry_result(struct bt_hci_s *hci, bt_hci_inquiry_result_with_rssi(hci, slave); return; default: - fprintf(stderr, "%s: bad inquiry mode %02x\n", __func__, + error_report("%s: bad inquiry mode %02x", __func__, hci->lm.inquiry_mode); exit(-1); } @@ -1971,7 +1972,7 @@ static void bt_submit_hci(struct HCIInfo *info, break; =20 short_hci: - fprintf(stderr, "%s: HCI packet too short (%iB)\n", + error_report("%s: HCI packet too short (%iB)", __func__, length); bt_hci_event_status(hci, HCI_INVALID_PARAMETERS); break; @@ -1991,7 +1992,7 @@ static inline void bt_hci_lmp_acl_data(struct bt_hci_= s *hci, uint16_t handle, /* TODO: avoid memcpy'ing */ =20 if (len + HCI_ACL_HDR_SIZE > sizeof(hci->acl_buf)) { - fprintf(stderr, "%s: can't take ACL packets %i bytes long\n", + error_report("%s: can't take ACL packets %i bytes long", __func__, len); return; } @@ -2029,7 +2030,7 @@ static void bt_submit_acl(struct HCIInfo *info, struct bt_link_s *link; =20 if (length < HCI_ACL_HDR_SIZE) { - fprintf(stderr, "%s: ACL packet too short (%iB)\n", + error_report("%s: ACL packet too short (%iB)", __func__, length); return; } @@ -2041,15 +2042,15 @@ static void bt_submit_acl(struct HCIInfo *info, length -=3D HCI_ACL_HDR_SIZE; =20 if (bt_hci_handle_bad(hci, handle)) { - fprintf(stderr, "%s: invalid ACL handle %03x\n", - __func__, handle); + error_report("%s: invalid ACL handle %03x", + __func__, handle); /* TODO: signal an error */ return; } handle &=3D ~HCI_HANDLE_OFFSET; =20 if (datalen > length) { - fprintf(stderr, "%s: ACL packet too short (%iB < %iB)\n", + fprintf(stderr, "%s: ACL packet too short (%iB < %iB)", __func__, length, datalen); return; } @@ -2060,7 +2061,7 @@ static void bt_submit_acl(struct HCIInfo *info, if (!hci->asb_handle) hci->asb_handle =3D handle; else if (handle !=3D hci->asb_handle) { - fprintf(stderr, "%s: Bad handle %03x in Active Slave Broadcast= \n", + error_report("%s: Bad handle %03x in Active Slave Broadcast", __func__, handle); /* TODO: signal an error */ return; @@ -2073,7 +2074,7 @@ static void bt_submit_acl(struct HCIInfo *info, if (!hci->psb_handle) hci->psb_handle =3D handle; else if (handle !=3D hci->psb_handle) { - fprintf(stderr, "%s: Bad handle %03x in Parked Slave Broadcast= \n", + error_report("%s: Bad handle %03x in Parked Slave Broadcast", __func__, handle); /* TODO: signal an error */ return; @@ -2105,14 +2106,13 @@ static void bt_submit_sco(struct HCIInfo *info, length -=3D 3; =20 if (bt_hci_handle_bad(hci, handle)) { - fprintf(stderr, "%s: invalid SCO handle %03x\n", - __func__, handle); + error_report("%s: invalid SCO handle %03x", __func__, handle); return; } =20 if (datalen > length) { - fprintf(stderr, "%s: SCO packet too short (%iB < %iB)\n", - __func__, length, datalen); + error_report("%s: SCO packet too short (%iB < %iB)", + __func__, length, datalen); return; } =20 @@ -2223,7 +2223,7 @@ struct HCIInfo *hci_init(const char *str) return bt_new_hci(vlan); } =20 - fprintf(stderr, "qemu: Unknown bluetooth HCI `%s'.\n", str); + error_report("qemu: Unknown bluetooth HCI `%s'.", str); =20 return 0; } diff --git a/hw/bt/hid.c b/hw/bt/hid.c index 09d17322e4..056291f9b5 100644 --- a/hw/bt/hid.c +++ b/hw/bt/hid.c @@ -419,7 +419,7 @@ static void bt_hid_interrupt_sdu(void *opaque, const ui= nt8_t *data, int len) =20 return; bad: - fprintf(stderr, "%s: bad transaction on Interrupt channel.\n", + error_report("%s: bad transaction on Interrupt channel.", __func__); } =20 diff --git a/hw/bt/l2cap.c b/hw/bt/l2cap.c index 3e53dd082d..9cf27f0df6 100644 --- a/hw/bt/l2cap.c +++ b/hw/bt/l2cap.c @@ -18,6 +18,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "qemu/timer.h" #include "qemu/bswap.h" @@ -467,8 +468,8 @@ static void l2cap_channel_close(struct l2cap_instance_s= *l2cap, =20 if (likely(ch)) { if (ch->remote_cid !=3D source_cid) { - fprintf(stderr, "%s: Ignoring a Disconnection Request with the= " - "invalid SCID %04x.\n", __func__, source_cid); + error_report("%s: Ignoring a Disconnection Request with the " + "invalid SCID %04x.", __func__, source_cid); return; } =20 @@ -790,7 +791,7 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, #if 0 /* TODO: do the IDs really have to be in sequence? */ if (!id || (id !=3D l2cap->last_id && id !=3D l2cap->next_id)) { - fprintf(stderr, "%s: out of sequence command packet ignored.\n", + error_report("%s: out of sequence command packet ignored.", __func__); return; } @@ -813,9 +814,9 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, } =20 /* We never issue commands other than Command Reject currently. */ - fprintf(stderr, "%s: stray Command Reject (%02x, %04x) " - "packet, ignoring.\n", __func__, id, - le16_to_cpu(((l2cap_cmd_rej *) params)->reason)); + error_report("%s: stray Command Reject (%02x, %04x) " + "packet, ignoring.", __func__, id, + le16_to_cpu(((l2cap_cmd_rej *) params)->reason)); break; =20 case L2CAP_CONN_REQ: @@ -836,8 +837,8 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, } =20 /* We never issue Connection Requests currently. TODO */ - fprintf(stderr, "%s: unexpected Connection Response (%02x) " - "packet, ignoring.\n", __func__, id); + error_report("%s: unexpected Connection Response (%02x) " + "packet, ignoring.", __func__, id); break; =20 case L2CAP_CONF_REQ: @@ -865,8 +866,8 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, le16_to_cpu(((l2cap_conf_rsp *) params)->scid), ((l2cap_conf_rsp *) params)->data, len - L2CAP_CONF_RSP_SIZE(0))) - fprintf(stderr, "%s: unexpected Configure Response (%02x) " - "packet, ignoring.\n", __func__, id); + error_report("%s: unexpected Configure Response (%02x) " + "packet, ignoring.", __func__, id); break; =20 case L2CAP_DISCONN_REQ: @@ -887,8 +888,8 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, } =20 /* We never issue Disconnection Requests currently. TODO */ - fprintf(stderr, "%s: unexpected Disconnection Response (%02x) " - "packet, ignoring.\n", __func__, id); + error_report("%s: unexpected Disconnection Response (%02x) " + "packet, ignoring.", __func__, id); break; =20 case L2CAP_ECHO_REQ: @@ -897,8 +898,8 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, =20 case L2CAP_ECHO_RSP: /* We never issue Echo Requests currently. TODO */ - fprintf(stderr, "%s: unexpected Echo Response (%02x) " - "packet, ignoring.\n", __func__, id); + error_report("%s: unexpected Echo Response (%02x) " + "packet, ignoring.", __func__, id); break; =20 case L2CAP_INFO_REQ: @@ -917,8 +918,8 @@ static void l2cap_command(struct l2cap_instance_s *l2ca= p, int code, int id, } =20 /* We never issue Information Requests currently. TODO */ - fprintf(stderr, "%s: unexpected Information Response (%02x) " - "packet, ignoring.\n", __func__, id); + error_report("%s: unexpected Information Response (%02x) " + "packet, ignoring.", __func__, id); break; =20 default: @@ -1066,8 +1067,8 @@ static void l2cap_frame_in(struct l2cap_instance_s *l= 2cap, uint16_t len =3D le16_to_cpu(frame->len); =20 if (unlikely(cid >=3D L2CAP_CID_MAX || !l2cap->cid[cid])) { - fprintf(stderr, "%s: frame addressed to a non-existent L2CAP " - "channel %04x received.\n", __func__, cid); + error_report("%s: frame addressed to a non-existent L2CAP " + "channel %04x received.", __func__, cid); return; } =20 @@ -1128,9 +1129,9 @@ static uint8_t *l2cap_bframe_out(struct bt_l2cap_conn= _params_s *parm, int len) struct l2cap_chan_s *chan =3D (struct l2cap_chan_s *) parm; =20 if (len > chan->params.remote_mtu) { - fprintf(stderr, "%s: B-Frame for CID %04x longer than %i octets.\n= ", - __func__, - chan->remote_cid, chan->params.remote_mtu); + error_report("%s: B-Frame for CID %04x longer than %i octets.", + __func__, + chan->remote_cid, chan->params.remote_mtu); exit(-1); } =20 @@ -1353,8 +1354,8 @@ void bt_l2cap_psm_register(struct bt_l2cap_device_s *= dev, int psm, int min_mtu, struct bt_l2cap_psm_s *new_psm =3D l2cap_psm(dev, psm); =20 if (new_psm) { - fprintf(stderr, "%s: PSM %04x already registered for device `%s'.\= n", - __func__, psm, dev->device.lmp_name); + error_report("%s: PSM %04x already registered for device `%s'.", + __func__, psm, dev->device.lmp_name); exit(-1); } =20 diff --git a/hw/bt/sdp.c b/hw/bt/sdp.c index 7c0d38b504..f4aba9d74f 100644 --- a/hw/bt/sdp.c +++ b/hw/bt/sdp.c @@ -18,6 +18,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "qemu/host-utils.h" #include "hw/bt.h" @@ -506,7 +507,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uin= t8_t *data, int len) int rsp_len =3D 0; =20 if (len < 5) { - fprintf(stderr, "%s: short SDP PDU (%iB).\n", __func__, len); + error_report("%s: short SDP PDU (%iB).", __func__, len); return; } =20 @@ -517,7 +518,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uin= t8_t *data, int len) len -=3D 5; =20 if (len !=3D plen) { - fprintf(stderr, "%s: wrong SDP PDU length (%iB !=3D %iB).\n", + error_report("%s: wrong SDP PDU length (%iB !=3D %iB).", __func__, plen, len); err =3D SDP_INVALID_PDU_SIZE; goto respond; @@ -544,7 +545,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uin= t8_t *data, int len) case SDP_SVC_SEARCH_RSP: case SDP_SVC_SEARCH_ATTR_RSP: default: - fprintf(stderr, "%s: unexpected SDP PDU ID %02x.\n", + error_report("%s: unexpected SDP PDU ID %02x.", __func__, pdu_id); err =3D SDP_INVALID_SYNTAX; break; diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c index 3957e78abf..a388f01a23 100644 --- a/hw/char/exynos4210_uart.c +++ b/hw/char/exynos4210_uart.c @@ -296,7 +296,7 @@ static void exynos4210_uart_update_irq(Exynos4210UartSt= ate *s) qemu_irq_raise(s->irq); =20 #if DEBUG_IRQ - fprintf(stderr, "UART%d: IRQ has been raised: %08x\n", + error_report("UART%d: IRQ has been raised: %08x", s->channel, s->reg[I_(UINTP)]); #endif =20 @@ -388,7 +388,7 @@ static void exynos4210_uart_write(void *opaque, hwaddr = offset, * qemu_chr_fe_write and background I/O callbacks */ qemu_chr_fe_write_all(&s->chr, &ch, 1); #if DEBUG_Tx_DATA - fprintf(stderr, "%c", ch); + error_report("%c", ch); #endif s->reg[I_(UTRSTAT)] |=3D UTRSTAT_TRANSMITTER_EMPTY | UTRSTAT_Tx_BUFFER_EMPTY; @@ -400,7 +400,7 @@ static void exynos4210_uart_write(void *opaque, hwaddr = offset, case UINTP: s->reg[I_(UINTP)] &=3D ~val; s->reg[I_(UINTSP)] &=3D ~val; - PRINT_DEBUG("UART%d: UINTP [%04x] have been cleared: %08x\n", + PRINT_DEBUG("UART%d: UINTP [%04x] have been cleared: %08x", s->channel, offset, s->reg[I_(UINTP)]); exynos4210_uart_update_irq(s); break; diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c index 56fa402b58..14cb051be9 100644 --- a/hw/char/mcf_uart.c +++ b/hw/char/mcf_uart.c @@ -6,6 +6,7 @@ * This code is licensed under the GPL */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/sysbus.h" #include "hw/m68k/mcf.h" @@ -174,7 +175,7 @@ static void mcf_do_command(mcf_uart_state *s, uint8_t c= md) mcf_uart_do_tx(s); break; case 3: /* Reserved. */ - fprintf(stderr, "mcf_uart: Bad TX command\n"); + error_report("mcf_uart: Bad TX command"); break; } =20 @@ -189,7 +190,7 @@ static void mcf_do_command(mcf_uart_state *s, uint8_t c= md) s->rx_enabled =3D 0; break; case 3: /* Reserved. */ - fprintf(stderr, "mcf_uart: Bad RX command\n"); + error_report("mcf_uart: Bad RX command"); break; } } diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c index 835b5378a0..7bb3f3c70b 100644 --- a/hw/char/sh_serial.c +++ b/hw/char/sh_serial.c @@ -25,6 +25,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/sh4/sh.h" #include "chardev/char-fe.h" @@ -190,8 +191,8 @@ static void sh_serial_write(void *opaque, hwaddr offs, } } =20 - fprintf(stderr, "sh_serial: unsupported write to 0x%02" - HWADDR_PRIx "\n", offs); + error_report("sh_serial: unsupported write to 0x%02" + HWADDR_PRIx "", offs); abort(); } =20 @@ -290,8 +291,8 @@ static uint64_t sh_serial_read(void *opaque, hwaddr off= s, #endif =20 if (ret & ~((1 << 16) - 1)) { - fprintf(stderr, "sh_serial: unsupported read from 0x%02" - HWADDR_PRIx "\n", offs); + error_report("sh_serial: unsupported read from 0x%02" + HWADDR_PRIx "", offs); abort(); } =20 diff --git a/hw/core/loader.c b/hw/core/loader.c index 4593061445..95bdcbbe36 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -43,6 +43,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "hw/hw.h" #include "disas/disas.h" @@ -82,7 +83,7 @@ int load_image(const char *filename, uint8_t *addr) return -1; size =3D lseek(fd, 0, SEEK_END); if (size =3D=3D -1) { - fprintf(stderr, "file %-20s: get size error: %s\n", + error_report("file %-20s: get size error: %s", filename, strerror(errno)); close(fd); return -1; @@ -623,7 +624,7 @@ static int load_uboot_image(const char *filename, hwadd= r *ep, hwaddr *loadaddr, goto out; =20 if (hdr->ih_type !=3D image_type) { - fprintf(stderr, "Wrong image type %d, expected %d\n", hdr->ih_type, + error_report("Wrong image type %d, expected %d", hdr->ih_type, image_type); goto out; } @@ -670,14 +671,14 @@ static int load_uboot_image(const char *filename, hwa= ddr *ep, hwaddr *loadaddr, address =3D *loadaddr; break; default: - fprintf(stderr, "Unsupported u-boot image type %d\n", hdr->ih_type= ); + error_report("Unsupported u-boot image type %d", hdr->ih_type); goto out; } =20 data =3D g_malloc(hdr->ih_size); =20 if (read(fd, data, hdr->ih_size) !=3D hdr->ih_size) { - fprintf(stderr, "Error reading file\n"); + error_report("Error reading file"); goto out; } =20 @@ -693,7 +694,7 @@ static int load_uboot_image(const char *filename, hwadd= r *ep, hwaddr *loadaddr, bytes =3D gunzip(data, max_bytes, compressed_data, hdr->ih_size); g_free(compressed_data); if (bytes < 0) { - fprintf(stderr, "Unable to decompress gzipped image!\n"); + error_report("Unable to decompress gzipped image!"); goto out; } hdr->ih_size =3D bytes; @@ -763,7 +764,7 @@ int load_image_gzipped_buffer(const char *filename, uin= t64_t max_sz, data =3D g_malloc(max_sz); bytes =3D gunzip(data, max_sz, compressed_data, len); if (bytes < 0) { - fprintf(stderr, "%s: unable to decompress gzipped kernel file\n", + error_report("%s: unable to decompress gzipped kernel file", filename); goto out; } @@ -893,8 +894,8 @@ int rom_add_file(const char *file, const char *fw_dir, char devpath[100]; =20 if (as && mr) { - fprintf(stderr, "Specifying an Address Space and Memory Region is = " \ - "not valid when loading a rom\n"); + error_report("Specifying an Address Space and Memory Region is " \ + "not valid when loading a rom"); /* We haven't allocated anything so we don't need any cleanup */ return -1; } @@ -909,7 +910,7 @@ int rom_add_file(const char *file, const char *fw_dir, =20 fd =3D open(rom->path, O_RDONLY | O_BINARY); if (fd =3D=3D -1) { - fprintf(stderr, "Could not open option rom '%s': %s\n", + error_report("Could not open option rom '%s': %s", rom->path, strerror(errno)); goto err; } @@ -921,7 +922,7 @@ int rom_add_file(const char *file, const char *fw_dir, rom->addr =3D addr; rom->romsize =3D lseek(fd, 0, SEEK_END); if (rom->romsize =3D=3D -1) { - fprintf(stderr, "rom: file %-20s: get size error: %s\n", + error_report("rom: file %-20s: get size error: %s", rom->name, strerror(errno)); goto err; } @@ -931,7 +932,7 @@ int rom_add_file(const char *file, const char *fw_dir, lseek(fd, 0, SEEK_SET); rc =3D read(fd, rom->data, rom->datasize); if (rc !=3D rom->datasize) { - fprintf(stderr, "rom: file %-20s: read error: rc=3D%d (expected %z= d)\n", + error_report("rom: file %-20s: read error: rc=3D%d (expected %zd)", rom->name, rc, rom->datasize); goto err; } @@ -1105,10 +1106,10 @@ int rom_check_and_register_reset(void) continue; } if ((addr > rom->addr) && (as =3D=3D rom->as)) { - fprintf(stderr, "rom: requested regions overlap " - "(rom %s. free=3D0x" TARGET_FMT_plx - ", addr=3D0x" TARGET_FMT_plx ")\n", - rom->name, addr, rom->addr); + error_report("rom: requested regions overlap " + "(rom %s. free=3D0x" TARGET_FMT_plx + ", addr=3D0x" TARGET_FMT_plx ")", + rom->name, addr, rom->addr); return -1; } addr =3D rom->addr; diff --git a/hw/core/ptimer.c b/hw/core/ptimer.c index 7221c68a98..514e177de2 100644 --- a/hw/core/ptimer.c +++ b/hw/core/ptimer.c @@ -6,6 +6,7 @@ * This code is licensed under the GNU LGPL. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "qemu/timer.h" #include "hw/ptimer.h" @@ -56,7 +57,7 @@ static void ptimer_reload(ptimer_state *s, int delta_adju= st) =20 if (s->period =3D=3D 0) { if (!qtest_enabled()) { - fprintf(stderr, "Timer with period zero, disabling\n"); + error_report("Timer with period zero, disabling"); } timer_del(s->timer); s->enabled =3D 0; @@ -89,7 +90,7 @@ static void ptimer_reload(ptimer_state *s, int delta_adju= st) =20 if (delta =3D=3D 0) { if (!qtest_enabled()) { - fprintf(stderr, "Timer with delta zero, disabling\n"); + error_report("Timer with delta zero, disabling"); } timer_del(s->timer); s->enabled =3D 0; @@ -263,7 +264,7 @@ void ptimer_run(ptimer_state *s, int oneshot) =20 if (was_disabled && s->period =3D=3D 0) { if (!qtest_enabled()) { - fprintf(stderr, "Timer with period zero, disabling\n"); + error_report("Timer with period zero, disabling"); } return; } diff --git a/hw/cris/axis_dev88.c b/hw/cris/axis_dev88.c index 5eb552bce2..d121836b69 100644 --- a/hw/cris/axis_dev88.c +++ b/hw/cris/axis_dev88.c @@ -23,6 +23,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -349,7 +350,7 @@ void axisdev88_init(MachineState *machine) li.cmdline =3D kernel_cmdline; cris_load_image(cpu, &li); } else if (!qtest_enabled()) { - fprintf(stderr, "Kernel image must be specified\n"); + error_report("Kernel image must be specified"); exit(1); } } diff --git a/hw/cris/boot.c b/hw/cris/boot.c index f896ed7f86..f199a13a82 100644 --- a/hw/cris/boot.c +++ b/hw/cris/boot.c @@ -23,6 +23,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "cpu.h" #include "hw/hw.h" @@ -86,14 +87,14 @@ void cris_load_image(CRISCPU *cpu, struct cris_load_inf= o *li) } =20 if (image_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", li->image_filename); exit(1); } =20 if (li->cmdline && (kcmdline_len =3D strlen(li->cmdline))) { if (kcmdline_len > 256) { - fprintf(stderr, "Too long CRIS kernel cmdline (max 256)\n"); + error_report("Too long CRIS kernel cmdline (max 256)"); exit(1); } pstrcpy_targphys("cmdline", 0x40000000, 256, li->cmdline); diff --git a/hw/display/blizzard.c b/hw/display/blizzard.c index 291abe6fca..0d12e078c4 100644 --- a/hw/display/blizzard.c +++ b/hw/display/blizzard.c @@ -474,7 +474,7 @@ static uint16_t blizzard_reg_read(void *opaque, uint8_t= reg) return s->gpio_pdown; =20 default: - fprintf(stderr, "%s: unknown register %02x\n", __func__, reg); + error_report("%s: unknown register %02x", __func__, reg); return 0; } } @@ -501,7 +501,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) case 0x0c: /* PLL Mode Control 0 */ s->pll_mode =3D value & 0x77; if ((value & 3) =3D=3D 0 || (value & 3) =3D=3D 3) - fprintf(stderr, "%s: wrong PLL Control bits (%i)\n", + error_report("%s: wrong PLL Control bits (%i)", __func__, value & 3); break; =20 @@ -541,7 +541,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) case 0x28: /* LCD Panel Configuration */ s->lcd_config =3D value & 0xff; if (value & (1 << 7)) - fprintf(stderr, "%s: data swap not supported!\n", __func__); + error_report("%s: data swap not supported!", __func__); break; =20 case 0x2a: /* LCD Horizontal Display Width */ @@ -585,7 +585,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) case 0x40: /* High-speed Serial Interface Tx Configuration Port 1 */ s->hssi_config[1] =3D value; if (((value >> 4) & 3) =3D=3D 3) - fprintf(stderr, "%s: Illegal active-data-links value\n", + error_report("%s: Illegal active-data-links value", __func__); break; case 0x42: /* High-speed Serial Interface Tx Mode */ @@ -641,7 +641,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) s->enable =3D value & 1; s->blank =3D (value >> 1) & 1; if (value & (1 << 4)) - fprintf(stderr, "%s: Macrovision enable attempt!\n", __func__); + error_report("%s: Macrovision enable attempt!", __func__); break; =20 case 0x6a: /* Special Effects */ @@ -717,7 +717,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) s->iformat =3D value & 0xf; s->bpp =3D blizzard_iformat_bpp[s->iformat]; if (!s->bpp) - fprintf(stderr, "%s: Illegal or unsupported input format %x\n", + error_report("%s: Illegal or unsupported input format %x", __func__, s->iformat); break; case 0x8e: /* Data Source Select */ @@ -729,7 +729,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) s->iy[1] !=3D s->oy[1])) || !((s->ix[1] - s->ix[0]) & (s->iy[1] - s->iy[0]) & (s->ox[1] - s->ox[0]) & (s->oy[1] - s->oy[0]) & = 1)) - fprintf(stderr, "%s: Illegal input/output window positions\n", + error_report("%s: Illegal input/output window positions", __func__); =20 blizzard_transfer_setup(s); @@ -783,8 +783,8 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) case 0xe6: /* Power-save */ s->pm =3D value & 0x83; if (value & s->mode & 1) - fprintf(stderr, "%s: The display must be disabled before enter= ing " - "Standby Mode\n", __func__); + error_report("%s: The display must be disabled before entering= " + "Standby Mode", __func__); break; case 0xe8: /* Non-display Period Control / Status */ s->status =3D value & 0x1b; @@ -815,7 +815,7 @@ static void blizzard_reg_write(void *opaque, uint8_t re= g, uint16_t value) break; =20 default: - fprintf(stderr, "%s: unknown register %02x\n", __func__, reg); + error_report("%s: unknown register %02x", __func__, reg); break; } } diff --git a/hw/display/omap_dss.c b/hw/display/omap_dss.c index 601f178fdd..52d6e753d3 100644 --- a/hw/display/omap_dss.c +++ b/hw/display/omap_dss.c @@ -406,10 +406,10 @@ static void omap_disc_write(void *opaque, hwaddr addr, s->lcd.enable =3D (value >> 0) & 1; if (value & (1 << 12)) /* OVERLAY_OPTIMIZATION */ if (!((s->dispc.l[1].attr | s->dispc.l[2].attr) & 1)) { - fprintf(stderr, "%s: Overlay Optimization when no overlay " - "region effectively exists leads to " - "unpredictable behaviour!\n", __func__); - } + error_report("%s: Overlay Optimization when no overlay " + "region effectively exists leads to " + "unpredictable behaviour!", __func__); + } if (value & (1 << 6)) { /* GODIGITAL */ /* XXX: Shadowed fields are: * s->dispc.config @@ -525,8 +525,8 @@ static void omap_disc_write(void *opaque, hwaddr addr, case 0x0a0: /* DISPC_GFX_ATTRIBUTES */ s->dispc.l[0].attr =3D value & 0x7ff; if (value & (3 << 9)) - fprintf(stderr, "%s: Big-endian pixel format not supported\n", - __func__); + error_report("%s: Big-endian pixel format not supported", + __func__); s->dispc.l[0].enable =3D value & 1; s->dispc.l[0].bpp =3D (value >> 1) & 0xf; s->dispc.invalidate =3D 1; @@ -617,7 +617,7 @@ static void omap_rfbi_transfer_start(struct omap_dss_s = *s) if (s->rfbi.control & (1 << 1)) { /* BYPASS */ /* TODO: in non-Bypass mode we probably need to just assert the * DRQ and wait for DMA to write the pixels. */ - fprintf(stderr, "%s: Bypass mode unimplemented\n", __func__); + error_report("%s: Bypass mode unimplemented", __func__); return; } =20 diff --git a/hw/display/pl110.c b/hw/display/pl110.c index 8c7dcc6f0a..b8b7903d36 100644 --- a/hw/display/pl110.c +++ b/hw/display/pl110.c @@ -174,7 +174,7 @@ static void pl110_update_display(void *opaque) dest_width =3D 4; break; default: - fprintf(stderr, "pl110: Bad color depth\n"); + error_report("pl110: Bad color depth"); exit(1); } if (s->cr & PL110_CR_BGR) diff --git a/hw/display/pxa2xx_lcd.c b/hw/display/pxa2xx_lcd.c index b83f80753a..ae3a365849 100644 --- a/hw/display/pxa2xx_lcd.c +++ b/hw/display/pxa2xx_lcd.c @@ -1050,7 +1050,7 @@ PXA2xxLCDState *pxa2xx_lcdc_init(MemoryRegion *sysmem, s->dest_width =3D 4; break; default: - fprintf(stderr, "%s: Bad color depth\n", __func__); + error_report("%s: Bad color depth", __func__); exit(1); } =20 diff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c index e7ac4f8789..0cd07028a4 100644 --- a/hw/display/qxl-render.c +++ b/hw/display/qxl-render.c @@ -78,7 +78,7 @@ void qxl_render_resize(PCIQXLDevice *qxl) qxl->guest_primary.bits_pp =3D 32; break; default: - fprintf(stderr, "%s: unhandled format: %x\n", __func__, + error_report("%s: unhandled format: %x", __func__, qxl->guest_primary.surface.format); qxl->guest_primary.bytes_pp =3D 4; qxl->guest_primary.bits_pp =3D 32; @@ -247,7 +247,7 @@ static QEMUCursor *qxl_cursor(PCIQXLDevice *qxl, QXLCur= sor *cursor, } break; default: - fprintf(stderr, "%s: not implemented: type %d\n", + error_report("%s: not implemented: type %d", __func__, cursor->header.type); goto fail; } @@ -275,9 +275,8 @@ int qxl_render_cursor(PCIQXLDevice *qxl, QXLCommandExt = *ext) } =20 if (qxl->debug > 1 && cmd->type !=3D QXL_CURSOR_MOVE) { - fprintf(stderr, "%s", __func__); + error_report("%s", __func__); qxl_log_cmd_cursor(qxl, cmd, ext->group_id); - fprintf(stderr, "\n"); } switch (cmd->type) { case QXL_CURSOR_SET: diff --git a/hw/display/qxl.c b/hw/display/qxl.c index ae3677fd1e..0163a18bbb 100644 --- a/hw/display/qxl.c +++ b/hw/display/qxl.c @@ -875,7 +875,7 @@ static void interface_notify_update(QXLInstance *sin, u= int32_t update_id) * Probably was at some earlier version that is prior to git start (20= 09), * and is still guest trigerrable. */ - fprintf(stderr, "%s: deprecated\n", __func__); + error_report("%s: deprecated", __func__); } =20 /* called from spice server thread context only */ @@ -905,7 +905,7 @@ static void interface_async_complete_io(PCIQXLDevice *q= xl, QXLCookie *cookie) =20 trace_qxl_interface_async_complete_io(qxl->id, current_async, cookie); if (!cookie) { - fprintf(stderr, "qxl: %s: error, cookie is NULL\n", __func__); + error_report("qxl: %s: error, cookie is NULL", __func__); return; } if (cookie && current_async !=3D cookie->io) { @@ -930,7 +930,7 @@ static void interface_async_complete_io(PCIQXLDevice *q= xl, QXLCookie *cookie) qxl_spice_destroy_surface_wait_complete(qxl, cookie->u.surface_id); break; default: - fprintf(stderr, "qxl: %s: unexpected current_async %d\n", __func__, + error_report("qxl: %s: unexpected current_async %d", __func__, current_async); } qxl_send_events(qxl, QXL_INTERRUPT_IO_CMD); @@ -998,7 +998,7 @@ static void interface_async_complete(QXLInstance *sin, = uint64_t cookie_token) case QXL_COOKIE_TYPE_POST_LOAD_MONITORS_CONFIG: break; default: - fprintf(stderr, "qxl: %s: unexpected cookie type %d\n", + error_report("qxl: %s: unexpected cookie type %d", __func__, cookie->type); g_free(cookie); } @@ -1875,7 +1875,7 @@ static void qxl_send_events(PCIQXLDevice *d, uint32_t= events) trace_qxl_send_events(d->id, events); if (!qemu_spice_display_is_running(&d->ssd)) { /* spice-server tracks guest running state and should not do this = */ - fprintf(stderr, "%s: spice-server bug: guest stopped, ignoring\n", + error_report("%s: spice-server bug: guest stopped, ignoring", __func__); trace_qxl_send_events_vm_stopped(d->id, events); return; diff --git a/hw/display/tc6393xb.c b/hw/display/tc6393xb.c index 79f161740a..8b708a858b 100644 --- a/hw/display/tc6393xb.c +++ b/hw/display/tc6393xb.c @@ -159,7 +159,7 @@ void tc6393xb_gpio_out_set(TC6393xbState *s, int line, qemu_irq handler) { if (line >=3D TC6393XB_GPIOS) { - fprintf(stderr, "TC6393xb: no GPIO pin %d\n", line); + error_report("TC6393xb: no GPIO pin %d", line); return; } =20 @@ -190,7 +190,7 @@ static void tc6393xb_l3v(void *opaque, int line, int le= vel) { TC6393xbState *s =3D opaque; s->blank =3D !level; - fprintf(stderr, "L3V: %d\n", level); + error_report("L3V: %d", level); } =20 static void tc6393xb_sub_irq(void *opaque, int line, int level) { @@ -257,7 +257,7 @@ static uint32_t tc6393xb_scr_readb(TC6393xbState *s, hw= addr addr) SCR_REG_B(CONFIG); SCR_REG_B(DEBUG); } - fprintf(stderr, "tc6393xb_scr: unhandled read at %08x\n", (uint32_t) a= ddr); + error_report("tc6393xb_scr: unhandled read at %08x", (uint32_t) addr); return 0; } #undef SCR_REG_B @@ -318,8 +318,8 @@ static void tc6393xb_scr_writeb(TC6393xbState *s, hwadd= r addr, uint32_t value) SCR_REG_B(CONFIG); SCR_REG_B(DEBUG); } - fprintf(stderr, "tc6393xb_scr: unhandled write at %08x: %02x\n", - (uint32_t) addr, value & 0xff); + error_report("tc6393xb_scr: unhandled write at %08x: %02x", + (uint32_t) addr, value & 0xff); } #undef SCR_REG_B #undef SCR_REG_W @@ -341,7 +341,7 @@ static uint32_t tc6393xb_nand_cfg_readb(TC6393xbState *= s, hwaddr addr) { case NAND_CFG_BASE + 3: return s->nand_phys >> (addr - NAND_CFG_BASE); } - fprintf(stderr, "tc6393xb_nand_cfg: unhandled read at %08x\n", (uint32= _t) addr); + error_report("tc6393xb_nand_cfg: unhandled read at %08x", (uint32_t) a= ddr); return 0; } static void tc6393xb_nand_cfg_writeb(TC6393xbState *s, hwaddr addr, uint32= _t value) { @@ -357,7 +357,7 @@ static void tc6393xb_nand_cfg_writeb(TC6393xbState *s, = hwaddr addr, uint32_t val s->nand_phys |=3D (value & 0xff) << ((addr - NAND_CFG_BASE) * = 8); return; } - fprintf(stderr, "tc6393xb_nand_cfg: unhandled write at %08x: %02x\n", + error_report("tc6393xb_nand_cfg: unhandled write at %08x: %02x", (uint32_t) addr, value & 0xff); } =20 @@ -377,12 +377,14 @@ static uint32_t tc6393xb_nand_readb(TC6393xbState *s,= hwaddr addr) { case NAND_IMR: return s->nand.imr; } - fprintf(stderr, "tc6393xb_nand: unhandled read at %08x\n", (uint32_t) = addr); + error_report("tc6393xb_nand: unhandled read at %08x", (uint32_t) addr); return 0; } -static void tc6393xb_nand_writeb(TC6393xbState *s, hwaddr addr, uint32_t v= alue) { -// fprintf(stderr, "tc6393xb_nand: write at %08x: %02x\n", -// (uint32_t) addr, value & 0xff); +static void tc6393xb_nand_writeb(TC6393xbState *s, hwaddr addr, uint32_t v= alue) +{ + /* error_report("tc6393xb_nand: write at %08x: %02x", + * (uint32_t) addr, value & 0xff); + */ switch (addr) { case NAND_DATA + 0: case NAND_DATA + 1: @@ -420,7 +422,7 @@ static void tc6393xb_nand_writeb(TC6393xbState *s, hwad= dr addr, uint32_t value) tc6393xb_nand_irq(s); return; } - fprintf(stderr, "tc6393xb_nand: unhandled write at %08x: %02x\n", + error_report("tc6393xb_nand: unhandled write at %08x: %02x", (uint32_t) addr, value & 0xff); } =20 @@ -522,13 +524,15 @@ static uint64_t tc6393xb_readb(void *opaque, hwaddr a= ddr, }; =20 if ((addr &~0xff) =3D=3D s->nand_phys && s->nand_enable) { -// return tc6393xb_nand_readb(s, addr & 0xff); + /* return tc6393xb_nand_readb(s, addr & 0xff); */ uint8_t d =3D tc6393xb_nand_readb(s, addr & 0xff); -// fprintf(stderr, "tc6393xb_nand: read at %08x: %02hhx\n", (uint32= _t) addr, d); + /* error_report("tc6393xb_nand: read at %08x: %02hhx", + * (uint32_t) addr, d); + */ return d; } =20 -// fprintf(stderr, "tc6393xb: unhandled read at %08x\n", (uint32_t) add= r); + /* error_report("tc6393xb: unhandled read at %08x", (uint32_t) addr); = */ return 0; } =20 @@ -548,7 +552,7 @@ static void tc6393xb_writeb(void *opaque, hwaddr addr, if ((addr &~0xff) =3D=3D s->nand_phys && s->nand_enable) tc6393xb_nand_writeb(s, addr & 0xff, value); else - fprintf(stderr, "tc6393xb: unhandled write at %08x: %02x\n", + error_report("tc6393xb: unhandled write at %08x: %02x", (uint32_t) addr, (int)value & 0xff); } =20 diff --git a/hw/display/virtio-gpu-3d.c b/hw/display/virtio-gpu-3d.c index 8c106a662d..88bc1c84a6 100644 --- a/hw/display/virtio-gpu-3d.c +++ b/hw/display/virtio-gpu-3d.c @@ -473,7 +473,7 @@ void virtio_gpu_virgl_process_cmd(VirtIOGPU *g, return; } if (cmd->error) { - fprintf(stderr, "%s: ctrl 0x%x, error 0x%x\n", __func__, + error_report("%s: ctrl 0x%x, error 0x%x", __func__, cmd->cmd_hdr.type, cmd->error); virtio_gpu_ctrl_response_nodata(g, cmd, cmd->error); return; @@ -556,7 +556,7 @@ static void virtio_gpu_print_stats(void *opaque) VirtIOGPU *g =3D opaque; =20 if (g->stats.requests) { - fprintf(stderr, "stats: vq req %4d, %3d -- 3D %4d (%5d)\n", + error_report("stats: vq req %4d, %3d -- 3D %4d (%5d)", g->stats.requests, g->stats.max_inflight, g->stats.req_3d, diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c index 4a64b41259..44d425e1f6 100644 --- a/hw/display/vmware_vga.c +++ b/hw/display/vmware_vga.c @@ -293,45 +293,45 @@ static inline bool vmsvga_verify_rect(DisplaySurface = *surface, int x, int y, int w, int h) { if (x < 0) { - fprintf(stderr, "%s: x was < 0 (%d)\n", name, x); + error_report("%s: x was < 0 (%d)", name, x); return false; } if (x > SVGA_MAX_WIDTH) { - fprintf(stderr, "%s: x was > %d (%d)\n", name, SVGA_MAX_WIDTH, x); + error_report("%s: x was > %d (%d)", name, SVGA_MAX_WIDTH, x); return false; } if (w < 0) { - fprintf(stderr, "%s: w was < 0 (%d)\n", name, w); + error_report("%s: w was < 0 (%d)", name, w); return false; } if (w > SVGA_MAX_WIDTH) { - fprintf(stderr, "%s: w was > %d (%d)\n", name, SVGA_MAX_WIDTH, w); + error_report("%s: w was > %d (%d)", name, SVGA_MAX_WIDTH, w); return false; } if (x + w > surface_width(surface)) { - fprintf(stderr, "%s: width was > %d (x: %d, w: %d)\n", + error_report("%s: width was > %d (x: %d, w: %d)", name, surface_width(surface), x, w); return false; } =20 if (y < 0) { - fprintf(stderr, "%s: y was < 0 (%d)\n", name, y); + error_report("%s: y was < 0 (%d)", name, y); return false; } if (y > SVGA_MAX_HEIGHT) { - fprintf(stderr, "%s: y was > %d (%d)\n", name, SVGA_MAX_HEIGHT, y); + error_report("%s: y was > %d (%d)", name, SVGA_MAX_HEIGHT, y); return false; } if (h < 0) { - fprintf(stderr, "%s: h was < 0 (%d)\n", name, h); + error_report("%s: h was < 0 (%d)", name, h); return false; } if (h > SVGA_MAX_HEIGHT) { - fprintf(stderr, "%s: h was > %d (%d)\n", name, SVGA_MAX_HEIGHT, h); + error_report("%s: h was > %d (%d)", name, SVGA_MAX_HEIGHT, h); return false; } if (y + h > surface_height(surface)) { - fprintf(stderr, "%s: update height > %d (y: %d, h: %d)\n", + error_report("%s: update height > %d (y: %d, h: %d)", name, surface_height(surface), y, h); return false; } @@ -529,7 +529,7 @@ static inline void vmsvga_cursor_define(struct vmsvga_s= tate_s *s, #endif break; default: - fprintf(stderr, "%s: unhandled bpp %d, using fallback cursor\n", + error_report("%s: unhandled bpp %d, using fallback cursor", __func__, c->bpp); cursor_put(qc); qc =3D cursor_builtin_left_ptr(); diff --git a/hw/dma/omap_dma.c b/hw/dma/omap_dma.c index abd18c67ea..5d7fe06d98 100644 --- a/hw/dma/omap_dma.c +++ b/hw/dma/omap_dma.c @@ -18,6 +18,7 @@ * with this program; if not, see . */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "qemu/timer.h" #include "hw/arm/omap.h" @@ -1898,13 +1899,13 @@ static void omap_dma4_write(void *opaque, hwaddr ad= dr, omap_dma_reset(s->dma); s->ocp =3D value & 0x3321; if (((s->ocp >> 12) & 3) =3D=3D 3) /* MIDLEMODE */ - fprintf(stderr, "%s: invalid DMA power mode\n", __func__); + error_report("%s: invalid DMA power mode", __func__); return; =20 case 0x78: /* DMA4_GCR */ s->gcr =3D value & 0x00ff00ff; if ((value & 0xff) =3D=3D 0x00) /* MAX_CHANNEL_FIFO_DEPTH */ - fprintf(stderr, "%s: wrong FIFO depth in GCR\n", __func__); + error_report("%s: wrong FIFO depth in GCR", __func__); return; =20 case 0x80 ... 0xfff: @@ -1934,8 +1935,8 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->buf_disable =3D (value >> 25) & 1; ch->src_sync =3D (value >> 24) & 1; /* XXX For CamDMA must be 1 */ if (ch->buf_disable && !ch->src_sync) - fprintf(stderr, "%s: Buffering disable is not allowed in " - "destination synchronised mode\n", __func__); + error_report("%s: Buffering disable is not allowed in " + "destination synchronised mode", __func__); ch->prefetch =3D (value >> 23) & 1; ch->bs =3D (value >> 18) & 1; ch->transparent_copy =3D (value >> 17) & 1; @@ -1946,8 +1947,8 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->priority =3D (value & 0x0040) >> 6; ch->fs =3D (value & 0x0020) >> 5; if (ch->fs && ch->bs && ch->mode[0] && ch->mode[1]) - fprintf(stderr, "%s: For a packet transfer at least one port " - "must be constant-addressed\n", __func__); + error_report("%s: For a packet transfer at least one port " + "must be constant-addressed", __func__); ch->sync =3D (value & 0x001f) | ((value >> 14) & 0x0060); /* XXX must be 0x01 for CamDMA */ =20 @@ -1977,8 +1978,8 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->endian[1] =3D(value >> 19) & 1; ch->endian_lock[1] =3D(value >> 18) & 1; if (ch->endian[0] !=3D ch->endian[1]) - fprintf(stderr, "%s: DMA endianness conversion enable attempt\= n", - __func__); + error_report("%s: DMA endianness conversion enable attempt", + __func__); ch->write_mode =3D (value >> 16) & 3; ch->burst[1] =3D (value & 0xc000) >> 14; ch->pack[1] =3D (value & 0x2000) >> 13; @@ -1986,12 +1987,13 @@ static void omap_dma4_write(void *opaque, hwaddr ad= dr, ch->burst[0] =3D (value & 0x0180) >> 7; ch->pack[0] =3D (value & 0x0040) >> 6; ch->translate[0] =3D (value & 0x003c) >> 2; - if (ch->translate[0] | ch->translate[1]) - fprintf(stderr, "%s: bad MReqAddressTranslate sideband signal\= n", - __func__); + if (ch->translate[0] | ch->translate[1]) { + error_report("%s: bad MReqAddressTranslate sideband signal", + __func__); + } ch->data_type =3D 1 << (value & 3); if ((value & 3) =3D=3D 3) { - printf("%s: bad data_type for DMA channel\n", __func__); + error_report("%s: bad data_type for DMA channel", __func__); ch->data_type >>=3D 1; } break; diff --git a/hw/dma/soc_dma.c b/hw/dma/soc_dma.c index 9bb499bf9c..7339a3ec95 100644 --- a/hw/dma/soc_dma.c +++ b/hw/dma/soc_dma.c @@ -18,6 +18,7 @@ * with this program; if not, see . */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "qemu/timer.h" #include "hw/arm/soc_dma.h" @@ -270,11 +271,11 @@ void soc_dma_port_add_fifo(struct soc_dma_s *soc, hwa= ddr virt_base, if (entry->type =3D=3D soc_dma_port_mem) { if (entry->addr <=3D virt_base && entry->addr + entry->u.mem.size > virt_base) { - fprintf(stderr, "%s: FIFO at %"PRIx64 - " collides with RAM region at %"PRIx64 - "-%"PRIx64 "\n", __func__, - virt_base, entry->addr, - (entry->addr + entry->u.mem.size)); + error_report("%s: FIFO at %"PRIx64 + " collides with RAM region at %"PRIx64 + "-%"PRIx64 "", __func__, + virt_base, entry->addr, + (entry->addr + entry->u.mem.size)); exit(-1); } =20 @@ -284,9 +285,9 @@ void soc_dma_port_add_fifo(struct soc_dma_s *soc, hwadd= r virt_base, while (entry < dma->memmap + dma->memmap_size && entry->addr <=3D virt_base) { if (entry->addr =3D=3D virt_base && entry->u.fifo.out =3D= =3D out) { - fprintf(stderr, "%s: FIFO at %"PRIx64 - " collides FIFO at %"PRIx64 "\n", - __func__, virt_base, entry->addr); + error_report("%s: FIFO at %"PRIx64 + " collides FIFO at %"PRIx64 "", + __func__, virt_base, entry->addr); exit(-1); } =20 @@ -321,11 +322,11 @@ void soc_dma_port_add_mem(struct soc_dma_s *soc, uint= 8_t *phys_base, if ((entry->addr >=3D virt_base && entry->addr < virt_base + s= ize) || (entry->addr <=3D virt_base && entry->addr + entry->u.mem.size > virt_base))= { - fprintf(stderr, "%s: RAM at %"PRIx64 "-%"PRIx64 - " collides with RAM region at %"PRIx64 - "-%"PRIx64 "\n", __func__, - virt_base, virt_base + size, - entry->addr, entry->addr + entry->u.mem.si= ze); + error_report("%s: RAM at %"PRIx64 "-%"PRIx64 + " collides with RAM region at %"PRIx64 + "-%"PRIx64 "", __func__, + virt_base, virt_base + size, + entry->addr, entry->addr + entry->u.mem.size); exit(-1); } =20 @@ -334,11 +335,11 @@ void soc_dma_port_add_mem(struct soc_dma_s *soc, uint= 8_t *phys_base, } else { if (entry->addr >=3D virt_base && entry->addr < virt_base + size) { - fprintf(stderr, "%s: RAM at %"PRIx64 "-%"PRIx64 - " collides with FIFO at %"PRIx64 - "\n", __func__, - virt_base, virt_base + size, - entry->addr); + error_report("%s: RAM at %"PRIx64 "-%"PRIx64 + " collides with FIFO at %"PRIx64 + "", __func__, + virt_base, virt_base + size, + entry->addr); exit(-1); } =20 diff --git a/hw/gpio/omap_gpio.c b/hw/gpio/omap_gpio.c index 08472193b5..57aa2e54f5 100644 --- a/hw/gpio/omap_gpio.c +++ b/hw/gpio/omap_gpio.c @@ -399,7 +399,7 @@ static void omap2_gpio_module_write(void *opaque, hwadd= r addr, =20 case 0x10: /* GPIO_SYSCONFIG */ if (((value >> 3) & 3) =3D=3D 3) - fprintf(stderr, "%s: bad IDLEMODE value\n", __func__); + error_report("%s: bad IDLEMODE value", __func__); if (value & 2) omap2_gpio_module_reset(s); s->config[0] =3D value & 0x1d; diff --git a/hw/i2c/omap_i2c.c b/hw/i2c/omap_i2c.c index 26e3e5ebf6..c89664f342 100644 --- a/hw/i2c/omap_i2c.c +++ b/hw/i2c/omap_i2c.c @@ -340,13 +340,13 @@ static void omap_i2c_write(void *opaque, hwaddr addr, break; } if ((value & (1 << 15)) && !(value & (1 << 10))) { /* MST */ - fprintf(stderr, "%s: I^2C slave mode not supported\n", - __func__); + error_report("%s: I^2C slave mode not supported", + __func__); break; } if ((value & (1 << 15)) && value & (1 << 8)) { /* XA */ - fprintf(stderr, "%s: 10-bit addressing mode not supported\n", - __func__); + error_report("%s: 10-bit addressing mode not supported", + __func__); break; } if ((value & (1 << 15)) && value & (1 << 0)) { /* STT */ @@ -393,7 +393,7 @@ static void omap_i2c_write(void *opaque, hwaddr addr, omap_i2c_interrupts_update(s); } if (value & (1 << 15)) /* ST_EN */ - fprintf(stderr, "%s: System Test not supported\n", __func__); + error_report("%s: System Test not supported", __func__); break; =20 default: diff --git a/hw/i386/kvm/apic.c b/hw/i386/kvm/apic.c index 1df6d26816..e90a1b9b3b 100644 --- a/hw/i386/kvm/apic.c +++ b/hw/i386/kvm/apic.c @@ -10,6 +10,7 @@ * See the COPYING file in the top-level directory. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "cpu.h" #include "hw/i386/apic_internal.h" @@ -128,7 +129,7 @@ static void kvm_apic_vapic_base_update(APICCommonState = *s) =20 ret =3D kvm_vcpu_ioctl(CPU(s->cpu), KVM_SET_VAPIC_ADDR, &vapid_addr); if (ret < 0) { - fprintf(stderr, "KVM: setting VAPIC address failed (%s)\n", + error_report("KVM: setting VAPIC address failed (%s)", strerror(-ret)); abort(); } @@ -145,7 +146,7 @@ static void kvm_apic_put(CPUState *cs, run_on_cpu_data = data) =20 ret =3D kvm_vcpu_ioctl(CPU(s->cpu), KVM_SET_LAPIC, &kapic); if (ret < 0) { - fprintf(stderr, "KVM_SET_LAPIC failed: %s\n", strerror(ret)); + error_report("KVM_SET_LAPIC failed: %s", strerror(ret)); abort(); } } @@ -167,7 +168,7 @@ static void do_inject_external_nmi(CPUState *cpu, run_o= n_cpu_data data) if (!(lvt & APIC_LVT_MASKED) && ((lvt >> 8) & 7) =3D=3D APIC_DM_NMI) { ret =3D kvm_vcpu_ioctl(cpu, KVM_NMI); if (ret < 0) { - fprintf(stderr, "KVM: injection failed, NMI lost (%s)\n", + error_report("KVM: injection failed, NMI lost (%s)", strerror(-ret)); } } @@ -184,7 +185,7 @@ static void kvm_send_msi(MSIMessage *msg) =20 ret =3D kvm_irqchip_send_msi(kvm_state, *msg); if (ret < 0) { - fprintf(stderr, "KVM: injection failed, MSI lost (%s)\n", + error_report("KVM: injection failed, MSI lost (%s)", strerror(-ret)); } } diff --git a/hw/i386/kvm/clock.c b/hw/i386/kvm/clock.c index 363d1b5743..e05c1587ce 100644 --- a/hw/i386/kvm/clock.c +++ b/hw/i386/kvm/clock.c @@ -14,6 +14,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "cpu.h" #include "qemu/host-utils.h" @@ -99,7 +100,7 @@ static void kvm_update_clock(KVMClockState *s) =20 ret =3D kvm_vm_ioctl(kvm_state, KVM_GET_CLOCK, &data); if (ret < 0) { - fprintf(stderr, "KVM_GET_CLOCK failed: %s\n", strerror(ret)); + error_report("KVM_GET_CLOCK failed: %s", strerror(ret)); abort(); } s->clock =3D data.clock; @@ -174,7 +175,7 @@ static void kvmclock_vm_state_change(void *opaque, int = running, data.clock =3D s->clock; ret =3D kvm_vm_ioctl(kvm_state, KVM_SET_CLOCK, &data); if (ret < 0) { - fprintf(stderr, "KVM_SET_CLOCK failed: %s\n", strerror(ret)); + error_report("KVM_SET_CLOCK failed: %s", strerror(ret)); abort(); } =20 @@ -185,7 +186,7 @@ static void kvmclock_vm_state_change(void *opaque, int = running, ret =3D kvm_vcpu_ioctl(cpu, KVM_KVMCLOCK_CTRL, 0); if (ret) { if (ret !=3D -EINVAL) { - fprintf(stderr, "%s: %s\n", __func__, strerror(-ret)); + error_report("%s: %s", __func__, strerror(-ret)); } return; } diff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c index 521a58498a..27f24b1090 100644 --- a/hw/i386/kvm/i8254.c +++ b/hw/i386/kvm/i8254.c @@ -24,6 +24,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include #include "qapi/error.h" #include "qemu/timer.h" @@ -101,7 +102,7 @@ static void kvm_pit_get(PITCommonState *pit) if (kvm_has_pit_state2()) { ret =3D kvm_vm_ioctl(kvm_state, KVM_GET_PIT2, &kpit); if (ret < 0) { - fprintf(stderr, "KVM_GET_PIT2 failed: %s\n", strerror(ret)); + error_report("KVM_GET_PIT2 failed: %s", strerror(ret)); abort(); } pit->channels[0].irq_disabled =3D kpit.flags & KVM_PIT_FLAGS_HPET_= LEGACY; @@ -112,7 +113,7 @@ static void kvm_pit_get(PITCommonState *pit) */ ret =3D kvm_vm_ioctl(kvm_state, KVM_GET_PIT, &kpit); if (ret < 0) { - fprintf(stderr, "KVM_GET_PIT failed: %s\n", strerror(ret)); + error_report("KVM_GET_PIT failed: %s", strerror(ret)); abort(); } } @@ -175,7 +176,7 @@ static void kvm_pit_put(PITCommonState *pit) kvm_has_pit_state2() ? KVM_SET_PIT2 : KVM_SET_PIT, &kpit); if (ret < 0) { - fprintf(stderr, "%s failed: %s\n", + error_report("%s failed: %s", kvm_has_pit_state2() ? "KVM_SET_PIT2" : "KVM_SET_PIT", strerror(ret)); abort(); diff --git a/hw/i386/kvm/i8259.c b/hw/i386/kvm/i8259.c index 11d1b726b6..770a934552 100644 --- a/hw/i386/kvm/i8259.c +++ b/hw/i386/kvm/i8259.c @@ -10,6 +10,7 @@ * See the COPYING file in the top-level directory. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/isa/i8259_internal.h" #include "hw/i386/apic_internal.h" #include "sysemu/kvm.h" @@ -39,7 +40,7 @@ static void kvm_pic_get(PICCommonState *s) chip.chip_id =3D s->master ? KVM_IRQCHIP_PIC_MASTER : KVM_IRQCHIP_PIC_= SLAVE; ret =3D kvm_vm_ioctl(kvm_state, KVM_GET_IRQCHIP, &chip); if (ret < 0) { - fprintf(stderr, "KVM_GET_IRQCHIP failed: %s\n", strerror(ret)); + error_report("KVM_GET_IRQCHIP failed: %s", strerror(ret)); abort(); } =20 @@ -92,7 +93,7 @@ static void kvm_pic_put(PICCommonState *s) =20 ret =3D kvm_vm_ioctl(kvm_state, KVM_SET_IRQCHIP, &chip); if (ret < 0) { - fprintf(stderr, "KVM_SET_IRQCHIP failed: %s\n", strerror(ret)); + error_report("KVM_SET_IRQCHIP failed: %s", strerror(ret)); abort(); } } diff --git a/hw/i386/kvm/ioapic.c b/hw/i386/kvm/ioapic.c index 98ca480792..a31bcd2658 100644 --- a/hw/i386/kvm/ioapic.c +++ b/hw/i386/kvm/ioapic.c @@ -11,6 +11,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "monitor/monitor.h" #include "hw/i386/pc.h" #include "hw/i386/ioapic_internal.h" @@ -74,7 +75,7 @@ static void kvm_ioapic_get(IOAPICCommonState *s) chip.chip_id =3D KVM_IRQCHIP_IOAPIC; ret =3D kvm_vm_ioctl(kvm_state, KVM_GET_IRQCHIP, &chip); if (ret < 0) { - fprintf(stderr, "KVM_GET_IRQCHIP failed: %s\n", strerror(ret)); + error_report("KVM_GET_IRQCHIP failed: %s", strerror(ret)); abort(); } =20 @@ -107,7 +108,7 @@ static void kvm_ioapic_put(IOAPICCommonState *s) =20 ret =3D kvm_vm_ioctl(kvm_state, KVM_SET_IRQCHIP, &chip); if (ret < 0) { - fprintf(stderr, "KVM_GET_IRQCHIP failed: %s\n", strerror(ret)); + error_report("KVM_GET_IRQCHIP failed: %s", strerror(ret)); abort(); } } diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c index c7b70c91d5..d297a88f9d 100644 --- a/hw/i386/multiboot.c +++ b/hw/i386/multiboot.c @@ -23,6 +23,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "cpu.h" #include "hw/hw.h" @@ -184,7 +185,7 @@ int load_multiboot(FWCfgState *fw_cfg, memset(&mbs, 0, sizeof(mbs)); =20 if (flags & 0x00000004) { /* MULTIBOOT_HEADER_HAS_VBE */ - fprintf(stderr, "qemu: multiboot knows VBE. we don't.\n"); + error_report("qemu: multiboot knows VBE. we don't."); } if (!(flags & 0x00010000)) { /* MULTIBOOT_HEADER_HAS_ADDR */ uint64_t elf_entry; @@ -193,7 +194,7 @@ int load_multiboot(FWCfgState *fw_cfg, fclose(f); =20 if (((struct elf64_hdr*)header)->e_machine =3D=3D EM_X86_64) { - fprintf(stderr, "Cannot load x86-64 image, give a 32bit one.\n= "); + error_report("Cannot load x86-64 image, give a 32bit one."); exit(1); } =20 @@ -201,7 +202,7 @@ int load_multiboot(FWCfgState *fw_cfg, &elf_low, &elf_high, 0, I386_ELF_MACHINE, 0, 0); if (kernel_size < 0) { - fprintf(stderr, "Error while loading elf kernel\n"); + error_report("Error while loading elf kernel"); exit(1); } mh_load_addr =3D elf_low; @@ -210,7 +211,7 @@ int load_multiboot(FWCfgState *fw_cfg, =20 mbs.mb_buf =3D g_malloc(mb_kernel_size); if (rom_copy(mbs.mb_buf, mh_load_addr, mb_kernel_size) !=3D mb_ker= nel_size) { - fprintf(stderr, "Error while fetching elf kernel from rom\n"); + error_report("Error while fetching elf kernel from rom"); exit(1); } =20 @@ -224,7 +225,7 @@ int load_multiboot(FWCfgState *fw_cfg, =20 mh_load_addr =3D ldl_p(header+i+16); if (mh_header_addr < mh_load_addr) { - fprintf(stderr, "invalid mh_load_addr address\n"); + error_report("invalid mh_load_addr address"); exit(1); } =20 @@ -234,19 +235,19 @@ int load_multiboot(FWCfgState *fw_cfg, =20 if (mh_load_end_addr) { if (mh_bss_end_addr < mh_load_addr) { - fprintf(stderr, "invalid mh_bss_end_addr address\n"); + error_report("invalid mh_bss_end_addr address"); exit(1); } mb_kernel_size =3D mh_bss_end_addr - mh_load_addr; =20 if (mh_load_end_addr < mh_load_addr) { - fprintf(stderr, "invalid mh_load_end_addr address\n"); + error_report("invalid mh_load_end_addr address"); exit(1); } mb_load_size =3D mh_load_end_addr - mh_load_addr; } else { if (kernel_file_size < mb_kernel_text_offset) { - fprintf(stderr, "invalid kernel_file_size\n"); + error_report("invalid kernel_file_size"); exit(1); } mb_kernel_size =3D kernel_file_size - mb_kernel_text_offset; @@ -269,7 +270,7 @@ int load_multiboot(FWCfgState *fw_cfg, mbs.mb_buf =3D g_malloc(mb_kernel_size); fseek(f, mb_kernel_text_offset, SEEK_SET); if (fread(mbs.mb_buf, 1, mb_load_size, f) !=3D mb_load_size) { - fprintf(stderr, "fread() failed\n"); + error_report("fread() failed"); exit(1); } memset(mbs.mb_buf + mb_load_size, 0, mb_kernel_size - mb_load_size= ); @@ -326,7 +327,7 @@ int load_multiboot(FWCfgState *fw_cfg, mb_debug("multiboot loading module: %s\n", tmpbuf); mb_mod_length =3D get_image_size(tmpbuf); if (mb_mod_length < 0) { - fprintf(stderr, "Failed to open file '%s'\n", tmpbuf); + error_report("Failed to open file '%s'", tmpbuf); exit(1); } =20 diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 05985d4927..ca25424c09 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -856,14 +856,14 @@ static void load_linux(PCMachineState *pcms, if (!f || !(kernel_size =3D get_file_size(f)) || fread(header, 1, MIN(ARRAY_SIZE(header), kernel_size), f) !=3D MIN(ARRAY_SIZE(header), kernel_size)) { - fprintf(stderr, "qemu: could not load kernel '%s': %s\n", + error_report("qemu: could not load kernel '%s': %s", kernel_filename, strerror(errno)); exit(1); } =20 /* kernel protocol version */ #if 0 - fprintf(stderr, "header magic: %#x\n", ldl_p(header+0x202)); + error_report("header magic: %#x", ldl_p(header + 0x202)); #endif if (ldl_p(header+0x202) =3D=3D 0x53726448) { protocol =3D lduw_p(header+0x206); @@ -960,13 +960,13 @@ static void load_linux(PCMachineState *pcms, /* load initrd */ if (initrd_filename) { if (protocol < 0x200) { - fprintf(stderr, "qemu: linux kernel too old to load a ram disk= \n"); + error_report("qemu: linux kernel too old to load a ram disk"); exit(1); } =20 initrd_size =3D get_image_size(initrd_filename); if (initrd_size < 0) { - fprintf(stderr, "qemu: error reading initrd %s: %s\n", + error_report("qemu: error reading initrd %s: %s", initrd_filename, strerror(errno)); exit(1); } @@ -991,7 +991,7 @@ static void load_linux(PCMachineState *pcms, } setup_size =3D (setup_size+1)*512; if (setup_size > kernel_size) { - fprintf(stderr, "qemu: invalid kernel header\n"); + error_report("qemu: invalid kernel header"); exit(1); } kernel_size -=3D setup_size; @@ -1000,11 +1000,11 @@ static void load_linux(PCMachineState *pcms, kernel =3D g_malloc(kernel_size); fseek(f, 0, SEEK_SET); if (fread(setup, 1, setup_size, f) !=3D setup_size) { - fprintf(stderr, "fread() failed\n"); + error_report("fread() failed"); exit(1); } if (fread(kernel, 1, kernel_size, f) !=3D kernel_size) { - fprintf(stderr, "fread() failed\n"); + error_report("fread() failed"); exit(1); } fclose(f); @@ -1012,13 +1012,13 @@ static void load_linux(PCMachineState *pcms, /* append dtb to kernel */ if (dtb_filename) { if (protocol < 0x209) { - fprintf(stderr, "qemu: Linux kernel too old to load a dtb\n"); + error_report("qemu: Linux kernel too old to load a dtb"); exit(1); } =20 dtb_size =3D get_image_size(dtb_filename); if (dtb_size <=3D 0) { - fprintf(stderr, "qemu: error reading dtb %s: %s\n", + error_report("qemu: error reading dtb %s: %s", dtb_filename, strerror(errno)); exit(1); } diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 9ff79b1fd9..1796db1e36 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -1090,7 +1090,7 @@ void igd_passthrough_isa_bridge_create(PCIBus *bus, u= int16_t gpu_dev_id) * Note that vendor id is always PCI_VENDOR_ID_INTEL. */ if (!bridge_dev) { - fprintf(stderr, "set igd-passthrough-isa-bridge failed!\n"); + error_report("set igd-passthrough-isa-bridge failed!"); return; } pci_config_set_device_id(bridge_dev->config, pch_dev_id); diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c index 6b183747fc..b6c10a509f 100644 --- a/hw/i386/pc_sysfw.c +++ b/hw/i386/pc_sysfw.c @@ -201,7 +201,7 @@ static void old_pc_system_rom_init(MemoryRegion *rom_me= mory, bool isapc_ram_fw) ret =3D rom_add_file_fixed(bios_name, (uint32_t)(-bios_size), -1); if (ret !=3D 0) { bios_error: - fprintf(stderr, "qemu: could not load PC BIOS '%s'\n", bios_name); + error_report("qemu: could not load PC BIOS '%s'", bios_name); exit(1); } g_free(filename); @@ -243,7 +243,8 @@ void pc_system_firmware_init(MemoryRegion *rom_memory, = bool isapc_ram_fw) if (kvm_enabled() && !kvm_readonly_mem_enabled()) { /* Older KVM cannot execute from device memory. So, flash memory * cannot be used unless the readonly memory kvm capability is pre= sent. */ - fprintf(stderr, "qemu: pflash with kvm requires KVM readonly memor= y support\n"); + error_report("qemu: pflash with kvm requires KVM readonly memory" + " support"); exit(1); } =20 diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c index d9ccd5d0d6..f8e3e0507b 100644 --- a/hw/i386/xen/xen-hvm.c +++ b/hw/i386/xen/xen-hvm.c @@ -246,9 +246,10 @@ void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t siz= e, MemoryRegion *mr, =20 if (runstate_check(RUN_STATE_INMIGRATE)) { /* RAM already populated in Xen */ - fprintf(stderr, "%s: do not alloc "RAM_ADDR_FMT - " bytes of ram at "RAM_ADDR_FMT" when runstate is INMIGRAT= E\n", - __func__, size, ram_addr);=20 + error_report("%s: do not alloc "RAM_ADDR_FMT + " bytes of ram at "RAM_ADDR_FMT" when runstate is " + " INMIGRATE", + __func__, size, ram_addr); return; } =20 @@ -444,8 +445,9 @@ static int xen_remove_from_physmap(XenIOState *state, =20 rc =3D xen_xc_domain_add_to_physmap(xen_xc, xen_domid, XENMAPSPACE= _gmfn, idx, gpfn); if (rc) { - fprintf(stderr, "add_to_physmap MFN %"PRI_xen_pfn" to PFN %" - PRI_xen_pfn" failed: %d (errno: %d)\n", idx, gpfn, rc,= errno); + error_report("add_to_physmap MFN %"PRI_xen_pfn" to PFN %" + PRI_xen_pfn" failed: %d (errno: %d)", idx, + gpfn, rc, errno); return -rc; } } @@ -1090,11 +1092,11 @@ static void cpu_handle_ioreq(void *opaque) req->data =3D copy.data; =20 if (req->state !=3D STATE_IOREQ_INPROCESS) { - fprintf(stderr, "Badness in I/O request ... not in service?!: " - "%x, ptr: %x, port: %"PRIx64", " - "data: %"PRIx64", count: %u, size: %u, type: %u\n", - req->state, req->data_is_ptr, req->addr, - req->data, req->count, req->size, req->type); + error_report("Badness in I/O request ... not in service?!: " + "%x, ptr: %x, port: %"PRIx64", " + "data: %"PRIx64", count: %u, size: %u, type: %u", + req->state, req->data_is_ptr, req->addr, + req->data, req->count, req->size, req->type); destroy_hvm_domain(false); return; } @@ -1397,16 +1399,16 @@ void destroy_hvm_domain(bool reboot) =20 xc_handle =3D xc_interface_open(0, 0, 0); if (xc_handle =3D=3D NULL) { - fprintf(stderr, "Cannot acquire xenctrl handle\n"); + error_report("Cannot acquire xenctrl handle"); } else { sts =3D xc_domain_shutdown(xc_handle, xen_domid, reboot ? SHUTDOWN_reboot : SHUTDOWN_power= off); if (sts !=3D 0) { - fprintf(stderr, "xc_domain_shutdown failed to issue %s, " - "sts %d, %s\n", reboot ? "reboot" : "poweroff", + error_report("xc_domain_shutdown failed to issue %s, " + "sts %d, %s", reboot ? "reboot" : "poweroff", sts, strerror(errno)); } else { - fprintf(stderr, "Issued domain %d %s\n", xen_domid, + error_report("Issued domain %d %s", xen_domid, reboot ? "reboot" : "poweroff"); } xc_interface_close(xc_handle); @@ -1425,7 +1427,7 @@ void xen_shutdown_fatal_error(const char *fmt, ...) va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); - fprintf(stderr, "Will destroy the domain.\n"); + error_report("Will destroy the domain."); /* destroy the domain */ qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_ERROR); } diff --git a/hw/i386/xen/xen-mapcache.c b/hw/i386/xen/xen-mapcache.c index baab93b614..4062af0900 100644 --- a/hw/i386/xen/xen-mapcache.c +++ b/hw/i386/xen/xen-mapcache.c @@ -377,7 +377,7 @@ ram_addr_t xen_ram_addr_from_mapcache(void *ptr) } } if (!found) { - fprintf(stderr, "%s, could not find %p\n", __func__, ptr); + error_report("%s, could not find %p", __func__, ptr); QTAILQ_FOREACH(reventry, &mapcache->locked_entries, next) { DPRINTF(" "TARGET_FMT_plx" -> %p is present\n", reventry->pa= ddr_index, reventry->vaddr_req); @@ -477,9 +477,9 @@ void xen_invalidate_map_cache(void) if (!reventry->dma) { continue; } - fprintf(stderr, "Locked DMA mapping while invalidating mapcache!" - " "TARGET_FMT_plx" -> %p is present\n", - reventry->paddr_index, reventry->vaddr_req); + error_report("Locked DMA mapping while invalidating mapcache!" + " "TARGET_FMT_plx" -> %p is present", + reventry->paddr_index, reventry->vaddr_req); } =20 for (i =3D 0; i < mapcache->nr_buckets; i++) { @@ -545,8 +545,8 @@ static uint8_t *xen_replace_cache_entry_unlocked(hwaddr= old_phys_addr, address_index =3D new_phys_addr >> MCACHE_BUCKET_SHIFT; address_offset =3D new_phys_addr & (MCACHE_BUCKET_SIZE - 1); =20 - fprintf(stderr, "Replacing a dummy mapcache entry for "TARGET_FMT_plx \ - " with "TARGET_FMT_plx"\n", old_phys_addr, new_phys_addr); + error_report("Replacing a dummy mapcache entry for "TARGET_FMT_plx \ + " with "TARGET_FMT_plx"", old_phys_addr, new_phys_addr); =20 xen_remap_bucket(entry, entry->vaddr_base, cache_size, address_index, false); diff --git a/hw/i386/xen/xen_apic.c b/hw/i386/xen/xen_apic.c index 55769eba7e..9e19ef94a2 100644 --- a/hw/i386/xen/xen_apic.c +++ b/hw/i386/xen/xen_apic.c @@ -24,7 +24,7 @@ static void xen_apic_mem_write(void *opaque, hwaddr addr, uint64_t data, unsigned size) { if (size !=3D sizeof(uint32_t)) { - fprintf(stderr, "Xen: APIC write data size =3D %d, invalid\n", siz= e); + error_report("Xen: APIC write data size =3D %d, invalid", size); return; } =20 diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index c25e293d88..2ed015285a 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -410,8 +410,8 @@ static void ahci_mem_write(void *opaque, hwaddr addr, =20 /* Only aligned reads are allowed on AHCI */ if (addr & 3) { - fprintf(stderr, "ahci: Mis-aligned write to addr 0x" - TARGET_FMT_plx "\n", addr); + error_report("ahci: Mis-aligned write to addr 0x" + TARGET_FMT_plx "", addr); return; } =20 @@ -1053,7 +1053,7 @@ static void process_ncq_command(AHCIState *s, int por= t, uint8_t *cmd_fis, g_assert(is_ncq(ncq_fis->command)); if (ncq_tfs->used) { /* error - already in use */ - fprintf(stderr, "%s: tag %d already used\n", __func__, tag); + error_report("%s: tag %d already used", __func__, tag); return; } =20 diff --git a/hw/ide/core.c b/hw/ide/core.c index d63eb4a72e..d46936193a 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -2762,7 +2762,7 @@ static void ide_drive_pio_pre_save(void *opaque) =20 idx =3D transfer_end_table_idx(s->end_transfer_func); if (idx =3D=3D -1) { - fprintf(stderr, "%s: invalid end_transfer_func for DRQ_STAT\n", + error_report("%s: invalid end_transfer_func for DRQ_STAT", __func__); s->end_transfer_fn_idx =3D 2; } else { diff --git a/hw/input/lm832x.c b/hw/input/lm832x.c index d39953126b..caeeda47f2 100644 --- a/hw/input/lm832x.c +++ b/hw/input/lm832x.c @@ -239,7 +239,7 @@ static uint8_t lm_kbd_read(LM823KbdState *s, int reg, i= nt byte) =20 default: lm_kbd_error(s, ERR_CMDUNK); - fprintf(stderr, "%s: unknown command %02x\n", __func__, reg); + error_report("%s: unknown command %02x", __func__, reg); return 0x00; } =20 @@ -330,7 +330,7 @@ static void lm_kbd_write(LM823KbdState *s, int reg, int= byte, uint8_t value) s->reg =3D LM832x_GENERAL_ERROR; if ((value & 3) && (value & 3) !=3D 3) { lm_kbd_error(s, ERR_BADPAR); - fprintf(stderr, "%s: invalid clock setting in RCPWM\n", + error_report("%s: invalid clock setting in RCPWM", __func__); } /* TODO: Validate that the command is only issued once */ @@ -378,7 +378,7 @@ static void lm_kbd_write(LM823KbdState *s, int reg, int= byte, uint8_t value) break; default: lm_kbd_error(s, ERR_CMDUNK); - fprintf(stderr, "%s: unknown command %02x\n", __func__, reg); + error_report("%s: unknown command %02x", __func__, reg); break; } } diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c index c479f827b6..ff4f03e4c3 100644 --- a/hw/input/pckbd.c +++ b/hw/input/pckbd.c @@ -22,6 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/isa/isa.h" #include "hw/i386/pc.h" @@ -307,7 +308,7 @@ static void kbd_write_command(void *opaque, hwaddr addr, /* ignore that */ break; default: - fprintf(stderr, "qemu: unsupported keyboard cmd=3D0x%02x\n", (int)= val); + error_report("qemu: unsupported keyboard cmd=3D0x%02x", (int)val); break; } } diff --git a/hw/input/pxa2xx_keypad.c b/hw/input/pxa2xx_keypad.c index 93db9ed25b..0a594c30fc 100644 --- a/hw/input/pxa2xx_keypad.c +++ b/hw/input/pxa2xx_keypad.c @@ -326,7 +326,7 @@ void pxa27x_register_keypad(PXA2xxKeyPadState *kp, const struct keymap *map, int size) { if(!map || size < 0x80) { - fprintf(stderr, "%s - No PXA keypad map defined\n", __func__); + error_report("%s - No PXA keypad map defined", __func__); exit(-1); } =20 diff --git a/hw/input/tsc2005.c b/hw/input/tsc2005.c index 7990954b6c..f5057e8eeb 100644 --- a/hw/input/tsc2005.c +++ b/hw/input/tsc2005.c @@ -200,17 +200,17 @@ static void tsc2005_write(TSC2005State *s, int reg, u= int16_t data) s->host_mode =3D (data >> 15) !=3D 0; if (s->enabled !=3D !(data & 0x4000)) { s->enabled =3D !(data & 0x4000); - fprintf(stderr, "%s: touchscreen sense %sabled\n", - __func__, s->enabled ? "en" : "dis"); + error_report("%s: touchscreen sense %sabled", + __func__, s->enabled ? "en" : "dis"); if (s->busy && !s->enabled) timer_del(s->timer); s->busy =3D s->busy && s->enabled; } s->nextprecision =3D (data >> 13) & 1; s->timing[0] =3D data & 0x1fff; - if ((s->timing[0] >> 11) =3D=3D 3) - fprintf(stderr, "%s: illegal conversion clock setting\n", - __func__); + if ((s->timing[0] >> 11) =3D=3D 3) { + error_report("%s: illegal conversion clock setting", __func__); + } break; case 0xd: /* CFR1 */ s->timing[1] =3D data & 0xf07; @@ -221,8 +221,7 @@ static void tsc2005_write(TSC2005State *s, int reg, uin= t16_t data) break; =20 default: - fprintf(stderr, "%s: write into read-only register %x\n", - __func__, reg); + error_report("%s: write into read-only register %x", __func__, reg= ); } } =20 @@ -337,8 +336,8 @@ static uint8_t tsc2005_txrx_word(void *opaque, uint8_t = value) s->nextprecision =3D (value >> 2) & 1; if (s->enabled !=3D !(value & 1)) { s->enabled =3D !(value & 1); - fprintf(stderr, "%s: touchscreen sense %sabled\n", - __func__, s->enabled ? "en" : "dis"); + error_report("%s: touchscreen sense %sabled", + __func__, s->enabled ? "en" : "dis"); if (s->busy && !s->enabled) timer_del(s->timer); s->busy =3D s->busy && s->enabled; diff --git a/hw/input/tsc210x.c b/hw/input/tsc210x.c index d4b19c1825..c685221842 100644 --- a/hw/input/tsc210x.c +++ b/hw/input/tsc210x.c @@ -396,8 +396,8 @@ static uint16_t tsc2102_data_register_read(TSC210xState= *s, int reg) =20 default: #ifdef TSC_VERBOSE - fprintf(stderr, "tsc2102_data_register_read: " - "no such register: 0x%02x\n", reg); + error_report("tsc2102_data_register_read: " + "no such register: 0x%02x", reg); #endif return 0xffff; } @@ -447,8 +447,8 @@ static uint16_t tsc2102_control_register_read( default: bad_reg: #ifdef TSC_VERBOSE - fprintf(stderr, "tsc2102_control_register_read: " - "no such register: 0x%02x\n", reg); + error_report("tsc2102_control_register_read: " + "no such register: 0x%02x", reg); #endif return 0xffff; } @@ -528,8 +528,8 @@ static uint16_t tsc2102_audio_register_read(TSC210xStat= e *s, int reg) =20 default: #ifdef TSC_VERBOSE - fprintf(stderr, "tsc2102_audio_register_read: " - "no such register: 0x%02x\n", reg); + error_report("tsc2102_audio_register_read: " + "no such register: 0x%02x", reg); #endif return 0xffff; } @@ -553,8 +553,8 @@ static void tsc2102_data_register_write( =20 default: #ifdef TSC_VERBOSE - fprintf(stderr, "tsc2102_data_register_write: " - "no such register: 0x%02x\n", reg); + error_report("tsc2102_data_register_write: " + "no such register: 0x%02x", reg); #endif } } @@ -606,8 +606,8 @@ static void tsc2102_control_register_write( tsc210x_reset(s); #ifdef TSC_VERBOSE } else { - fprintf(stderr, "tsc2102_control_register_write: " - "wrong value written into RESET\n"); + error_report("tsc2102_control_register_write: " + "wrong value written into RESET"); #endif } return; @@ -616,8 +616,8 @@ static void tsc2102_control_register_write( s->timing =3D value & 0x3f; #ifdef TSC_VERBOSE if (value & ~0x3f) - fprintf(stderr, "tsc2102_control_register_write: " - "wrong value written into CONFIG\n"); + error_report("tsc2102_control_register_write: " + "wrong value written into CONFIG"); #endif return; =20 @@ -637,8 +637,8 @@ static void tsc2102_control_register_write( default: bad_reg: #ifdef TSC_VERBOSE - fprintf(stderr, "tsc2102_control_register_write: " - "no such register: 0x%02x\n", reg); + error_report("tsc2102_control_register_write: " + "no such register: 0x%02x", reg); #endif } } @@ -651,8 +651,8 @@ static void tsc2102_audio_register_write( s->audio_ctrl1 =3D value & 0x0f3f; #ifdef TSC_VERBOSE if ((value & ~0x0f3f) || ((value & 7) !=3D ((value >> 3) & 7))) - fprintf(stderr, "tsc2102_audio_register_write: " - "wrong value written into Audio 1\n"); + error_report("tsc2102_audio_register_write: " + "wrong value written into Audio 1"); #endif tsc2102_audio_rate_update(s); tsc2102_audio_output_update(s); @@ -661,8 +661,8 @@ static void tsc2102_audio_register_write( case 0x01: #ifdef TSC_VERBOSE if (value !=3D 0xff00) - fprintf(stderr, "tsc2102_audio_register_write: " - "wrong value written into reg 0x01\n"); + error_report("tsc2102_audio_register_write: " + "wrong value written into reg 0x01"); #endif return; =20 @@ -674,8 +674,8 @@ static void tsc2102_audio_register_write( case 0x03: #ifdef TSC_VERBOSE if (value !=3D 0x8b00) - fprintf(stderr, "tsc2102_audio_register_write: " - "wrong value written into reg 0x03\n"); + error_report("tsc2102_audio_register_write: " + "wrong value written into reg 0x03"); #endif return; =20 @@ -683,8 +683,8 @@ static void tsc2102_audio_register_write( s->audio_ctrl2 =3D value & 0xf7f2; #ifdef TSC_VERBOSE if (value & ~0xf7fd) - fprintf(stderr, "tsc2102_audio_register_write: " - "wrong value written into Audio 2\n"); + error_report("tsc2102_audio_register_write: " + "wrong value written into Audio 2"); #endif return; =20 @@ -695,8 +695,8 @@ static void tsc2102_audio_register_write( s->dac_power =3D value & 0x9543; #ifdef TSC_VERBOSE if ((value & ~0x9543) !=3D 0x2aa0) - fprintf(stderr, "tsc2102_audio_register_write: " - "wrong value written into Power\n"); + error_report("tsc2102_audio_register_write: " + "wrong value written into Power"); #endif tsc2102_audio_rate_update(s); tsc2102_audio_output_update(s); @@ -707,8 +707,8 @@ static void tsc2102_audio_register_write( s->audio_ctrl3 |=3D value & 0xf800; #ifdef TSC_VERBOSE if (value & ~0xf8c7) - fprintf(stderr, "tsc2102_audio_register_write: " - "wrong value written into Audio 3\n"); + error_report("tsc2102_audio_register_write: " + "wrong value written into Audio 3"); #endif tsc2102_audio_output_update(s); return; @@ -740,8 +740,8 @@ static void tsc2102_audio_register_write( s->pll[0] =3D value & 0xfffc; #ifdef TSC_VERBOSE if (value & ~0xfffc) - fprintf(stderr, "tsc2102_audio_register_write: " - "wrong value written into PLL 1\n"); + error_report("tsc2102_audio_register_write: " + "wrong value written into PLL 1"); #endif return; =20 @@ -749,8 +749,8 @@ static void tsc2102_audio_register_write( s->pll[1] =3D value & 0xfffc; #ifdef TSC_VERBOSE if (value & ~0xfffc) - fprintf(stderr, "tsc2102_audio_register_write: " - "wrong value written into PLL 2\n"); + error_report("tsc2102_audio_register_write: " + "wrong value written into PLL 2"); #endif return; =20 @@ -758,15 +758,15 @@ static void tsc2102_audio_register_write( s->softstep =3D !(value & 0x4000); #ifdef TSC_VERBOSE if (value & ~0x4000) - fprintf(stderr, "tsc2102_audio_register_write: " - "wrong value written into Audio 4\n"); + error_report("tsc2102_audio_register_write: " + "wrong value written into Audio 4"); #endif return; =20 default: #ifdef TSC_VERBOSE - fprintf(stderr, "tsc2102_audio_register_write: " - "no such register: 0x%02x\n", reg); + error_report("tsc2102_audio_register_write: " + "no such register: 0x%02x", reg); #endif } } @@ -847,7 +847,7 @@ static uint16_t tsc210x_read(TSC210xState *s) uint16_t ret =3D 0x0000; =20 if (!s->command) - fprintf(stderr, "tsc210x_read: SPI underrun!\n"); + error_report("tsc210x_read: SPI underrun!"); =20 switch (s->page) { case TSC_DATA_REGISTERS_PAGE: @@ -886,7 +886,7 @@ static void tsc210x_write(TSC210xState *s, uint16_t val= ue) s->state =3D true; } else { if (s->command) - fprintf(stderr, "tsc210x_write: SPI overrun!\n"); + error_report("tsc210x_write: SPI overrun!"); else switch (s->page) { case TSC_DATA_REGISTERS_PAGE: diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c index 4d3afc1b14..bf1ed7b18e 100644 --- a/hw/input/virtio-input-hid.c +++ b/hw/input/virtio-input-hid.c @@ -208,8 +208,8 @@ static void virtio_input_handle_event(DeviceState *dev,= QemuConsole *src, virtio_input_send(vinput, &event); } else { if (key->down) { - fprintf(stderr, "%s: unmapped key: %d [%s]\n", __func__, - qcode, QKeyCode_str(qcode)); + error_report("%s: unmapped key: %d [%s]", __func__, + qcode, QKeyCode_str(qcode)); } } break; @@ -222,9 +222,9 @@ static void virtio_input_handle_event(DeviceState *dev,= QemuConsole *src, virtio_input_send(vinput, &event); } else { if (btn->down) { - fprintf(stderr, "%s: unmapped button: %d [%s]\n", __func__, - btn->button, - InputButton_str(btn->button)); + error_report("%s: unmapped button: %d [%s]", __func__, + btn->button, + InputButton_str(btn->button)); } } break; @@ -310,8 +310,8 @@ static void virtio_input_hid_handle_status(VirtIOInput = *vinput, kbd_put_ledstate(vhid->ledstate); break; default: - fprintf(stderr, "%s: unknown type %d\n", __func__, - le16_to_cpu(event->type)); + error_report("%s: unknown type %d", __func__, + le16_to_cpu(event->type)); break; } } diff --git a/hw/input/virtio-input.c b/hw/input/virtio-input.c index 0e42f0d02c..fb5fa0a280 100644 --- a/hw/input/virtio-input.c +++ b/hw/input/virtio-input.c @@ -5,6 +5,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu/iov.h" #include "trace.h" @@ -121,8 +122,8 @@ void virtio_input_add_config(VirtIOInput *vinput, =20 if (virtio_input_find_config(vinput, config->select, config->subsel)) { /* should not happen */ - fprintf(stderr, "%s: duplicate config: %d/%d\n", - __func__, config->select, config->subsel); + error_report("%s: duplicate config: %d/%d", + __func__, config->select, config->subsel); abort(); } =20 diff --git a/hw/intc/arm_gic_kvm.c b/hw/intc/arm_gic_kvm.c index ae095d08a3..a5478d3e20 100644 --- a/hw/intc/arm_gic_kvm.c +++ b/hw/intc/arm_gic_kvm.c @@ -316,12 +316,12 @@ static void kvm_arm_gic_put(GICState *s) num_cpu =3D ((reg & 0xe0) >> 5) + 1; =20 if (num_irq < s->num_irq) { - fprintf(stderr, "Restoring %u IRQs, but kernel supports max %d= \n", - s->num_irq, num_irq); + error_report("Restoring %u IRQs, but kernel supports max %d", + s->num_irq, num_irq); abort(); } else if (num_cpu !=3D s->num_cpu) { - fprintf(stderr, "Restoring %u CPU interfaces, kernel only has = %d\n", - s->num_cpu, num_cpu); + error_report("Restoring %u CPU interfaces, kernel only has %d", + s->num_cpu, num_cpu); /* Did we not create the VCPUs in the kernel yet? */ abort(); } @@ -411,8 +411,8 @@ static void kvm_arm_gic_get(GICState *s) s->num_cpu =3D ((reg & 0xe0) >> 5) + 1; =20 if (s->num_irq > GIC_MAXIRQ) { - fprintf(stderr, "Too many IRQs reported from the kernel: %d\n", - s->num_irq); + error_report("Too many IRQs reported from the kernel: %d", + s->num_irq); abort(); } =20 diff --git a/hw/intc/omap_intc.c b/hw/intc/omap_intc.c index 6844c1aa83..7fc239715a 100644 --- a/hw/intc/omap_intc.c +++ b/hw/intc/omap_intc.c @@ -539,8 +539,8 @@ static void omap2_inth_write(void *opaque, hwaddr addr, /* TODO: Make a bitmap (or sizeof(char)map) of access privileges * for every register, see Chapter 3 and 4 for privileged mode. */ if (value & 1) - fprintf(stderr, "%s: protection mode enable attempt\n", - __func__); + error_report("%s: protection mode enable attempt", + __func__); return; =20 case 0x50: /* INTC_IDLE */ diff --git a/hw/intc/openpic.c b/hw/intc/openpic.c index 9dd285b923..dfaefbf575 100644 --- a/hw/intc/openpic.c +++ b/hw/intc/openpic.c @@ -34,6 +34,7 @@ * */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/ppc/mac.h" #include "hw/pci/pci.h" @@ -162,7 +163,7 @@ static int inttgt_to_output(int inttgt) } } =20 - fprintf(stderr, "%s: unsupported inttgt %d\n", __func__, inttgt); + error_report("%s: unsupported inttgt %d", __func__, inttgt); return OPENPIC_OUTPUT_INT; } =20 @@ -534,7 +535,7 @@ static void openpic_set_irq(void *opaque, int n_IRQ, in= t level) IRQSource *src; =20 if (n_IRQ >=3D OPENPIC_MAX_IRQ) { - fprintf(stderr, "%s: IRQ %d out of range\n", __func__, n_IRQ); + error_report("%s: IRQ %d out of range", __func__, n_IRQ); abort(); } =20 @@ -1208,7 +1209,7 @@ static uint32_t openpic_iack(OpenPICState *opp, IRQDe= st *dst, int cpu) src =3D &opp->src[irq]; if (!(src->ivpr & IVPR_ACTIVITY_MASK) || !(IVPR_PRIORITY(src->ivpr) > dst->ctpr)) { - fprintf(stderr, "%s: bad raised IRQ %d ctpr %d ivpr 0x%08x\n", + error_report("%s: bad raised IRQ %d ctpr %d ivpr 0x%08x", __func__, irq, dst->ctpr, src->ivpr); openpic_update_irq(opp, irq); retval =3D opp->spve; diff --git a/hw/intc/openpic_kvm.c b/hw/intc/openpic_kvm.c index fa83420254..60c784ae86 100644 --- a/hw/intc/openpic_kvm.c +++ b/hw/intc/openpic_kvm.c @@ -150,8 +150,8 @@ static void kvm_openpic_region_add(MemoryListener *list= ener, =20 ret =3D ioctl(opp->fd, KVM_SET_DEVICE_ATTR, &attr); if (ret < 0) { - fprintf(stderr, "%s: %s %" PRIx64 "\n", __func__, - strerror(errno), reg_base); + error_report("%s: %s %" PRIx64 "", __func__, + strerror(errno), reg_base); } } =20 @@ -184,8 +184,8 @@ static void kvm_openpic_region_del(MemoryListener *list= ener, =20 ret =3D ioctl(opp->fd, KVM_SET_DEVICE_ATTR, &attr); if (ret < 0) { - fprintf(stderr, "%s: %s %" PRIx64 "\n", __func__, - strerror(errno), reg_base); + error_report("%s: %s %" PRIx64 "", __func__, + strerror(errno), reg_base); } } =20 diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c index 7ead17ac3e..3774b1a2f0 100644 --- a/hw/intc/s390_flic_kvm.c +++ b/hw/intc/s390_flic_kvm.c @@ -83,7 +83,7 @@ static void flic_enable_pfault(KVMS390FLICState *flic) rc =3D ioctl(flic->fd, KVM_SET_DEVICE_ATTR, &attr); =20 if (rc) { - fprintf(stderr, "flic: couldn't enable pfault\n"); + error_report("flic: couldn't enable pfault"); } } =20 @@ -97,7 +97,7 @@ static void flic_disable_wait_pfault(KVMS390FLICState *fl= ic) rc =3D ioctl(flic->fd, KVM_SET_DEVICE_ATTR, &attr); =20 if (rc) { - fprintf(stderr, "flic: couldn't disable pfault\n"); + error_report("flic: couldn't disable pfault"); } } =20 diff --git a/hw/ipmi/ipmi.c b/hw/ipmi/ipmi.c index b27babd504..81c62920de 100644 --- a/hw/ipmi/ipmi.c +++ b/hw/ipmi/ipmi.c @@ -23,6 +23,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/ipmi/ipmi.h" #include "sysemu/sysemu.h" diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c index abab3bba4f..8c0535d3dd 100644 --- a/hw/ipmi/ipmi_bmc_extern.c +++ b/hw/ipmi/ipmi_bmc_extern.c @@ -28,6 +28,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu/timer.h" #include "chardev/char-fe.h" @@ -194,8 +195,8 @@ static void ipmi_bmc_extern_handle_command(IPMIBmc *b, =20 if (ibe->outlen) { /* We already have a command queued. Shouldn't ever happen. */ - fprintf(stderr, "IPMI KCS: Got command when not finished with the" - " previous command\n"); + error_report("IPMI KCS: Got command when not finished with the" + " previous command"); abort(); } =20 diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c index 348e0eab9d..0f2e426d02 100644 --- a/hw/isa/isa-bus.c +++ b/hw/isa/isa-bus.c @@ -17,6 +17,7 @@ * License along with this library; if not, see . */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "hw/hw.h" #include "monitor/monitor.h" @@ -186,15 +187,15 @@ ISADevice *isa_vga_init(ISABus *bus) case VGA_CIRRUS: return isa_create_simple(bus, "isa-cirrus-vga"); case VGA_QXL: - fprintf(stderr, "%s: qxl: no PCI bus\n", __func__); + error_report("%s: qxl: no PCI bus", __func__); return NULL; case VGA_STD: return isa_create_simple(bus, "isa-vga"); case VGA_VMWARE: - fprintf(stderr, "%s: vmware_vga: no PCI bus\n", __func__); + error_report("%s: vmware_vga: no PCI bus", __func__); return NULL; case VGA_VIRTIO: - fprintf(stderr, "%s: virtio-vga: no PCI bus\n", __func__); + error_report("%s: virtio-vga: no PCI bus", __func__); return NULL; case VGA_NONE: default: diff --git a/hw/lm32/lm32_boards.c b/hw/lm32/lm32_boards.c index b0bb3ef58a..d739acf476 100644 --- a/hw/lm32/lm32_boards.c +++ b/hw/lm32/lm32_boards.c @@ -18,6 +18,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "cpu.h" #include "hw/sysbus.h" @@ -152,7 +153,7 @@ static void lm32_evr_init(MachineState *machine) } =20 if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } @@ -250,7 +251,7 @@ static void lm32_uclinux_init(MachineState *machine) } =20 if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } diff --git a/hw/lm32/milkymist.c b/hw/lm32/milkymist.c index 4db4d2d533..caa6cf4e0f 100644 --- a/hw/lm32/milkymist.c +++ b/hw/lm32/milkymist.c @@ -18,6 +18,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "cpu.h" #include "hw/sysbus.h" @@ -149,7 +150,7 @@ milkymist_init(MachineState *machine) =20 /* if no kernel is given no valid bios rom is a fatal error */ if (!kernel_filename && !dinfo && !bios_filename && !qtest_enabled()) { - fprintf(stderr, "qemu: could not load Milkymist One bios '%s'\n", + error_report("qemu: could not load Milkymist One bios '%s'", bios_name); exit(1); } @@ -188,7 +189,7 @@ milkymist_init(MachineState *machine) } =20 if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } diff --git a/hw/m68k/an5206.c b/hw/m68k/an5206.c index 9002c460e5..bdab620a02 100644 --- a/hw/m68k/an5206.c +++ b/hw/m68k/an5206.c @@ -66,7 +66,7 @@ static void an5206_init(MachineState *machine) if (qtest_enabled()) { return; } - fprintf(stderr, "Kernel image must be specified\n"); + error_report("Kernel image must be specified"); exit(1); } =20 @@ -83,7 +83,7 @@ static void an5206_init(MachineState *machine) entry =3D KERNEL_LOAD_ADDR; } if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", kernel_filen= ame); + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } =20 diff --git a/hw/m68k/mcf5206.c b/hw/m68k/mcf5206.c index b81901fdfd..fbf3f0f074 100644 --- a/hw/m68k/mcf5206.c +++ b/hw/m68k/mcf5206.c @@ -6,6 +6,7 @@ * This code is licensed under the GPL */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "cpu.h" #include "hw/hw.h" @@ -220,7 +221,7 @@ static void m5206_mbar_update(m5206_mbar_state *s) break; default: /* Unknown vector. */ - fprintf(stderr, "Unhandled vector for IRQ %d\n", irq); + error_report("Unhandled vector for IRQ %d", irq); vector =3D 0xf; break; } diff --git a/hw/m68k/mcf5208.c b/hw/m68k/mcf5208.c index b9dde75106..2fb5037b72 100644 --- a/hw/m68k/mcf5208.c +++ b/hw/m68k/mcf5208.c @@ -6,6 +6,7 @@ * This code is licensed under the GPL */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -257,7 +258,7 @@ static void mcf5208evb_init(MachineState *machine) mcf5208_sys_init(address_space_mem, pic); =20 if (nb_nics > 1) { - fprintf(stderr, "Too many NICs\n"); + error_report("Too many NICs"); exit(1); } if (nd_table[0].used) { @@ -292,7 +293,7 @@ static void mcf5208evb_init(MachineState *machine) if (qtest_enabled()) { return; } - fprintf(stderr, "Kernel image must be specified\n"); + error_report("Kernel image must be specified"); exit(1); } =20 @@ -309,7 +310,7 @@ static void mcf5208evb_init(MachineState *machine) entry =3D 0x40000000; } if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", kernel_filen= ame); + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } =20 diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c index 457a08a2fe..31466050de 100644 --- a/hw/microblaze/boot.c +++ b/hw/microblaze/boot.c @@ -86,7 +86,7 @@ static int microblaze_load_dtb(hwaddr addr, r =3D qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", kernel_cmdline); if (r < 0) { - fprintf(stderr, "couldn't set /chosen/bootargs\n"); + error_report("couldn't set /chosen/bootargs"); } } =20 diff --git a/hw/mips/boston.c b/hw/mips/boston.c index 776ee283e1..ee82968ea7 100644 --- a/hw/mips/boston.c +++ b/hw/mips/boston.c @@ -353,7 +353,7 @@ static const void *boston_fdt_filter(void *opaque, cons= t void *fdt_orig, =20 err =3D fdt_open_into(fdt_orig, fdt, fdt_sz); if (err) { - fprintf(stderr, "unable to open FDT\n"); + error_report("unable to open FDT"); return NULL; } =20 @@ -361,7 +361,7 @@ static const void *boston_fdt_filter(void *opaque, cons= t void *fdt_orig, ? machine->kernel_cmdline : " "; err =3D qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline); if (err < 0) { - fprintf(stderr, "couldn't set /chosen/bootargs\n"); + error_report("couldn't set /chosen/bootargs"); return NULL; } =20 diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c index 75318680e1..34710a466c 100644 --- a/hw/mips/mips_fulong2e.c +++ b/hw/mips/mips_fulong2e.c @@ -143,7 +143,7 @@ static int64_t load_kernel (CPUMIPSState *env) initrd_offset, ram_size - initrd_offs= et); } if (initrd_size =3D=3D (target_ulong) -1) { - fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", + error_report("qemu: could not load initial ram disk '%s'", loaderparams.initrd_filename); exit(1); } @@ -342,7 +342,7 @@ static void mips_fulong2e_init(MachineState *machine) =20 isa_bus =3D vt82c686b_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 0)); if (!isa_bus) { - fprintf(stderr, "vt82c686b_init error\n"); + error_report("vt82c686b_init error"); exit(1); } =20 diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c index 7e6626dc88..6c91a940be 100644 --- a/hw/mips/mips_jazz.c +++ b/hw/mips/mips_jazz.c @@ -271,10 +271,10 @@ static void mips_jazz_init(MachineState *machine, sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(rc4030, 4)); break; } else if (is_help_option(nd->model)) { - fprintf(stderr, "qemu: Supported NICs: dp83932\n"); + error_report("qemu: Supported NICs: dp83932"); exit(1); } else { - fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd->model); + error_report("qemu: Unsupported NIC: %s", nd->model); exit(1); } } diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index 2adb9bcf89..d457adfa69 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -856,8 +856,8 @@ static int64_t load_kernel (void) ram_size - initrd_offset); } if (initrd_size =3D=3D (target_ulong) -1) { - fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", - loaderparams.initrd_filename); + error_report("qemu: could not load initial ram disk '%s'", + loaderparams.initrd_filename); exit(1); } } diff --git a/hw/mips/mips_mipssim.c b/hw/mips/mips_mipssim.c index a092072e2a..a3d9406610 100644 --- a/hw/mips/mips_mipssim.c +++ b/hw/mips/mips_mipssim.c @@ -101,8 +101,8 @@ static int64_t load_kernel(void) initrd_offset, loaderparams.ram_size - initrd_offset); } if (initrd_size =3D=3D (target_ulong) -1) { - fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", - loaderparams.initrd_filename); + error_report("qemu: could not load initial ram disk '%s'", + loaderparams.initrd_filename); exit(1); } } diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c index 1272d4ef9d..e54ce918a7 100644 --- a/hw/mips/mips_r4k.c +++ b/hw/mips/mips_r4k.c @@ -121,8 +121,8 @@ static int64_t load_kernel(void) ram_size - initrd_offset); } if (initrd_size =3D=3D (target_ulong) -1) { - fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", - loaderparams.initrd_filename); + error_report("qemu: could not load initial ram disk '%s'", + loaderparams.initrd_filename); exit(1); } } @@ -246,7 +246,7 @@ void mips_r4k_init(MachineState *machine) blk_by_legacy_dinfo(dinfo), sector_len, mips_rom / sector_len, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("qemu: Error registering flash memory."); } } else if (!qtest_enabled()) { /* not fatal */ diff --git a/hw/misc/a9scu.c b/hw/misc/a9scu.c index 3e8ad8cd73..21b8e49b6c 100644 --- a/hw/misc/a9scu.c +++ b/hw/misc/a9scu.c @@ -9,6 +9,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/misc/a9scu.h" =20 static uint64_t a9_scu_read(void *opaque, hwaddr offset, @@ -59,7 +60,7 @@ static void a9_scu_write(void *opaque, hwaddr offset, mask =3D 0xffffffff; break; default: - fprintf(stderr, "Invalid size %u in write to a9 scu register %x\n", + error_report("Invalid size %u in write to a9 scu register %x", size, (unsigned)offset); return; } diff --git a/hw/misc/omap_gpmc.c b/hw/misc/omap_gpmc.c index 84f9e4c612..e3b30e90ea 100644 --- a/hw/misc/omap_gpmc.c +++ b/hw/misc/omap_gpmc.c @@ -19,6 +19,7 @@ * with this program; if not, see . */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/block/flash.h" #include "hw/arm/omap.h" @@ -408,7 +409,7 @@ static void omap_gpmc_cs_map(struct omap_gpmc_s *s, int= cs) /* TODO: check for overlapping regions and report access errors */ if (mask !=3D 0x8 && mask !=3D 0xc && mask !=3D 0xe && mask !=3D 0xf && !(s->accept_256 && !mask)) { - fprintf(stderr, "%s: invalid chip-select mask address (0x%x)\n", + error_report("%s: invalid chip-select mask address (0x%x)", __func__, mask); } =20 @@ -642,7 +643,7 @@ static void omap_gpmc_write(void *opaque, hwaddr addr, =20 case 0x010: /* GPMC_SYSCONFIG */ if ((value >> 3) =3D=3D 0x3) - fprintf(stderr, "%s: bad SDRAM idle mode %"PRIi64"\n", + error_report("%s: bad SDRAM idle mode %"PRIi64"", __func__, value >> 3); if (value & 2) omap_gpmc_reset(s); @@ -806,7 +807,7 @@ static void omap_gpmc_write(void *opaque, hwaddr addr, break; case 0x230: /* GPMC_TESTMODE_CTRL */ if (value & 7) - fprintf(stderr, "%s: test mode enable attempt\n", __func__); + error_report("%s: test mode enable attempt", __func__); break; =20 default: @@ -864,7 +865,7 @@ void omap_gpmc_attach(struct omap_gpmc_s *s, int cs, Me= moryRegion *iomem) assert(iomem); =20 if (cs < 0 || cs >=3D 8) { - fprintf(stderr, "%s: bad chip-select %i\n", __func__, cs); + error_report("%s: bad chip-select %i", __func__, cs); exit(-1); } f =3D &s->cs_file[cs]; @@ -881,7 +882,7 @@ void omap_gpmc_attach_nand(struct omap_gpmc_s *s, int c= s, DeviceState *nand) assert(nand); =20 if (cs < 0 || cs >=3D 8) { - fprintf(stderr, "%s: bad chip-select %i\n", __func__, cs); + error_report("%s: bad chip-select %i", __func__, cs); exit(-1); } f =3D &s->cs_file[cs]; diff --git a/hw/misc/omap_l4.c b/hw/misc/omap_l4.c index 96fc057b4e..47d9c10aeb 100644 --- a/hw/misc/omap_l4.c +++ b/hw/misc/omap_l4.c @@ -18,6 +18,7 @@ * with this program; if not, see . */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/arm/omap.h" =20 @@ -126,7 +127,7 @@ struct omap_target_agent_s *omap_l4ta_get(struct omap_l= 4_s *bus, break; } if (!ta) { - fprintf(stderr, "%s: bad target agent (%i)\n", __func__, cs); + error_report("%s: bad target agent (%i)", __func__, cs); exit(-1); } =20 @@ -151,7 +152,7 @@ hwaddr omap_l4_attach(struct omap_target_agent_s *ta, hwaddr base; =20 if (region < 0 || region >=3D ta->regions) { - fprintf(stderr, "%s: bad io region (%i)\n", __func__, region); + error_report("%s: bad io region (%i)", __func__, region); exit(-1); } =20 diff --git a/hw/misc/omap_sdrc.c b/hw/misc/omap_sdrc.c index 7b38c5568c..3dcabc1e00 100644 --- a/hw/misc/omap_sdrc.c +++ b/hw/misc/omap_sdrc.c @@ -18,6 +18,7 @@ * with this program; if not, see . */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/arm/omap.h" =20 @@ -108,7 +109,7 @@ static void omap_sdrc_write(void *opaque, hwaddr addr, =20 case 0x10: /* SDRC_SYSCONFIG */ if ((value >> 3) !=3D 0x2) - fprintf(stderr, "%s: bad SDRAM idle mode %i\n", + error_report("%s: bad SDRAM idle mode %i", __func__, (unsigned)value >> 3); if (value & 2) omap_sdrc_reset(s); diff --git a/hw/misc/vmport.c b/hw/misc/vmport.c index 165500223f..55369bd180 100644 --- a/hw/misc/vmport.c +++ b/hw/misc/vmport.c @@ -80,7 +80,7 @@ static uint64_t vmport_ioport_read(void *opaque, hwaddr a= ddr, if (!s->func[command]) { #ifdef VMPORT_DEBUG - fprintf(stderr, "vmport: unknown command %x\n", command); + error_report("vmport: unknown command %x", command); #endif return eax; } diff --git a/hw/moxie/moxiesim.c b/hw/moxie/moxiesim.c index 5ea8dd3a93..5916f86c68 100644 --- a/hw/moxie/moxiesim.c +++ b/hw/moxie/moxiesim.c @@ -25,6 +25,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -61,7 +62,7 @@ static void load_kernel(MoxieCPU *cpu, LoaderParams *load= er_params) 0, 0); =20 if (kernel_size <=3D 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", loader_params->kernel_filename); exit(1); } @@ -85,8 +86,8 @@ static void load_kernel(MoxieCPU *cpu, LoaderParams *load= er_params) ram_size); } if (initrd_size =3D=3D (target_ulong)-1) { - fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", - loader_params->initrd_filename); + error_report("qemu: could not load initial ram disk '%s'", + loader_params->initrd_filename); exit(1); } } diff --git a/hw/net/fsl_etsec/etsec.c b/hw/net/fsl_etsec/etsec.c index 9da1932970..965effa314 100644 --- a/hw/net/fsl_etsec/etsec.c +++ b/hw/net/fsl_etsec/etsec.c @@ -347,7 +347,7 @@ static ssize_t etsec_receive(NetClientState *nc, eTSEC *etsec =3D qemu_get_nic_opaque(nc); =20 #if defined(HEX_DUMP) - fprintf(stderr, "%s receive size:%zd\n", nc->name, size); + error_report("%s receive size:%zd", nc->name, size); qemu_hexdump((void *)buf, stderr, "", size); #endif /* Flush is unnecessary as are already in receiving path */ diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c index 654455355f..5f2b5fe046 100644 --- a/hw/net/pcnet.c +++ b/hw/net/pcnet.c @@ -1070,7 +1070,7 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8= _t *buf, size_t size_) if (!s->looptest) { if (size > 4092) { #ifdef PCNET_DEBUG_RMD - fprintf(stderr, "pcnet: truncates rx packet.\n"); + error_report("pcnet: truncates rx packet."); #endif size =3D 4092; } diff --git a/hw/net/smc91c111.c b/hw/net/smc91c111.c index 3b16dcf5a1..ae40fd6e6e 100644 --- a/hw/net/smc91c111.c +++ b/hw/net/smc91c111.c @@ -8,6 +8,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/sysbus.h" #include "net/net.h" #include "hw/devices.h" @@ -362,9 +363,9 @@ static void smc91c111_writeb(void *opaque, hwaddr offse= t, return; case 12: /* Control */ if (value & 1) - fprintf(stderr, "smc91c111:EEPROM store not implemented\n"= ); + error_report("smc91c111:EEPROM store not implemented"); if (value & 2) - fprintf(stderr, "smc91c111:EEPROM reload not implemented\n= "); + error_report("smc91c111:EEPROM reload not implemented"); value &=3D ~3; SET_LOW(ctr, value); return; diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index e037db63a3..37d0cce560 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -135,7 +135,7 @@ static int vhost_net_get_fd(NetClientState *backend) case NET_CLIENT_DRIVER_TAP: return tap_get_fd(backend); default: - fprintf(stderr, "vhost-net requires tap backend\n"); + error_report("vhost-net requires tap backend"); return -EBADFD; } } @@ -148,7 +148,7 @@ struct vhost_net *vhost_net_init(VhostNetOptions *optio= ns) uint64_t features =3D 0; =20 if (!options->net_backend) { - fprintf(stderr, "vhost-net requires net backend to be setup\n"); + error_report("vhost-net requires net backend to be setup"); goto fail; } net->nc =3D options->net_backend; @@ -186,8 +186,8 @@ struct vhost_net *vhost_net_init(VhostNetOptions *optio= ns) net->dev.features &=3D ~(1ULL << VIRTIO_NET_F_MRG_RXBUF); } if (~net->dev.features & net->dev.backend_features) { - fprintf(stderr, "vhost lacks feature mask %" PRIu64 - " for backend\n", + error_report("vhost lacks feature mask %" PRIu64 + " for backend", (uint64_t)(~net->dev.features & net->dev.backend_featur= es)); goto fail; } @@ -197,8 +197,8 @@ struct vhost_net *vhost_net_init(VhostNetOptions *optio= ns) if (net->nc->info->type =3D=3D NET_CLIENT_DRIVER_VHOST_USER) { features =3D vhost_user_get_acked_features(net->nc); if (~net->dev.features & features) { - fprintf(stderr, "vhost lacks feature mask %" PRIu64 - " for backend\n", + error_report("vhost lacks feature mask %" PRIu64 + " for backend", (uint64_t)(~net->dev.features & features)); goto fail; } @@ -349,7 +349,7 @@ err_start: } e =3D k->set_guest_notifiers(qbus->parent, total_queues * 2, false); if (e < 0) { - fprintf(stderr, "vhost guest notifier cleanup failed: %d\n", e); + error_report("vhost guest notifier cleanup failed: %d", e); fflush(stderr); } err: @@ -370,7 +370,7 @@ void vhost_net_stop(VirtIODevice *dev, NetClientState *= ncs, =20 r =3D k->set_guest_notifiers(qbus->parent, total_queues * 2, false); if (r < 0) { - fprintf(stderr, "vhost guest notifier cleanup failed: %d\n", r); + error_report("vhost guest notifier cleanup failed: %d", r); fflush(stderr); } assert(r >=3D 0); diff --git a/hw/nios2/boot.c b/hw/nios2/boot.c index 2b31f5b844..c896e8007b 100644 --- a/hw/nios2/boot.c +++ b/hw/nios2/boot.c @@ -96,7 +96,7 @@ static int nios2_load_dtb(struct nios2_boot_info bi, cons= t uint32_t ramsize, r =3D qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", kernel_cmdline); if (r < 0) { - fprintf(stderr, "couldn't set /chosen/bootargs\n"); + error_report("couldn't set /chosen/bootargs"); } } =20 diff --git a/hw/nvram/eeprom93xx.c b/hw/nvram/eeprom93xx.c index 2fd0e3c29f..5cad031eba 100644 --- a/hw/nvram/eeprom93xx.c +++ b/hw/nvram/eeprom93xx.c @@ -36,6 +36,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/nvram/eeprom93xx.h" =20 @@ -105,8 +106,8 @@ static int get_uint16_from_uint8(QEMUFile *f, void *pv,= size_t size, static int put_unused(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld, QJSON *vmdesc) { - fprintf(stderr, "uint16_from_uint8 is used only for backwards compatib= ility.\n"); - fprintf(stderr, "Never should be used to write a new state.\n"); + error_report("uint16_from_uint8 is used only for backwards compatibili= ty."); + error_report("Never should be used to write a new state."); exit(0); =20 return 0; diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index e3bd626b8c..cf9a816c0e 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -515,8 +515,8 @@ static int get_uint32_as_uint16(QEMUFile *f, void *pv, = size_t size, static int put_unused(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld, QJSON *vmdesc) { - fprintf(stderr, "uint32_as_uint16 is only used for backward compatibil= ity.\n"); - fprintf(stderr, "This functions shouldn't be called.\n"); + error_report("uint32_as_uint16 is only used for backward compatibility= ."); + error_report("This functions shouldn't be called."); =20 return 0; } diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c index 86bf2849c4..44a6d115dd 100644 --- a/hw/openrisc/openrisc_sim.c +++ b/hw/openrisc/openrisc_sim.c @@ -19,6 +19,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -87,7 +88,7 @@ static void cpu_openrisc_load_kernel(ram_addr_t ram_size, } =20 if (kernel_size < 0) { - fprintf(stderr, "QEMU: couldn't load the kernel '%s'\n", + error_report("QEMU: couldn't load the kernel '%s'", kernel_filename); exit(1); } diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c index 1767d2af61..48fef86c05 100644 --- a/hw/pci-host/bonito.c +++ b/hw/pci-host/bonito.c @@ -38,7 +38,7 @@ */ =20 #include "qemu/osdep.h" - +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/pci/pci.h" #include "hw/i386/pc.h" @@ -449,8 +449,8 @@ static uint32_t bonito_sbridge_pciaddr(void *opaque, hw= addr addr) regno =3D (cfgaddr & BONITO_PCICONF_REG_MASK) >> BONITO_PCICONF_REG_OF= FSET; =20 if (idsel =3D=3D 0) { - fprintf(stderr, "error in bonito pci config address " TARGET_FMT_p= lx - ",pcimap_cfg=3D%x\n", addr, s->regs[BONITO_PCIMAP_CFG]); + error_report("error in bonito pci config address " TARGET_FMT_plx + ",pcimap_cfg=3D%x", addr, s->regs[BONITO_PCIMAP_CFG]); exit(1); } pciaddr =3D PCI_ADDR(pci_bus_num(phb->bus), devno, funno, regno); diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 1e6fb88eba..1c8395d319 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -515,7 +515,7 @@ static int get_pci_irq_state(QEMUFile *f, void *pv, siz= e_t size, for (i =3D 0; i < PCI_NUM_PINS; ++i) { irq_state[i] =3D qemu_get_be32(f); if (irq_state[i] !=3D 0x1 && irq_state[i] !=3D 0) { - fprintf(stderr, "irq state %d: must be 0 or 1.\n", + error_report("irq state %d: must be 0 or 1.", irq_state[i]); return -EINVAL; } @@ -678,7 +678,7 @@ static PCIBus *pci_get_bus_devfn(int *devfnp, PCIBus *r= oot, unsigned slot; =20 if (!root) { - fprintf(stderr, "No primary PCI bus\n"); + error_report("No primary PCI bus"); return NULL; } =20 @@ -694,7 +694,7 @@ static PCIBus *pci_get_bus_devfn(int *devfnp, PCIBus *r= oot, } =20 if (dom !=3D 0) { - fprintf(stderr, "No support for non-zero PCI domains\n"); + error_report("No support for non-zero PCI domains"); return NULL; } =20 @@ -1118,8 +1118,8 @@ void pci_register_bar(PCIDevice *pci_dev, int region_= num, assert(region_num >=3D 0); assert(region_num < PCI_NUM_REGIONS); if (size & (size-1)) { - fprintf(stderr, "ERROR: PCI region size must be pow2 " - "type=3D0x%x, size=3D0x%"FMT_PCIBUS"\n", type, size); + error_report("ERROR: PCI region size must be pow2 " + "type=3D0x%x, size=3D0x%"FMT_PCIBUS"", type, size); exit(1); } =20 diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index db0e49ab8f..8a5350161f 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -333,13 +333,13 @@ static int ppce500_load_device_tree(MachineState *mac= hine, ret =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-start", initrd_base); if (ret < 0) { - fprintf(stderr, "couldn't set /chosen/linux,initrd-start\n"); + error_report("couldn't set /chosen/linux,initrd-start"); } =20 ret =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", (initrd_base + initrd_size)); if (ret < 0) { - fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n"); + error_report("couldn't set /chosen/linux,initrd-end"); } =20 } @@ -353,7 +353,7 @@ static int ppce500_load_device_tree(MachineState *machi= ne, ret =3D qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", machine->kernel_cmdline); if (ret < 0) - fprintf(stderr, "couldn't set /chosen/bootargs\n"); + error_report("couldn't set /chosen/bootargs"); =20 if (kvm_enabled()) { /* Read out host's frequencies */ @@ -720,7 +720,7 @@ static DeviceState *ppce500_init_mpic_kvm(PPCE500Params= *params, =20 CPU_FOREACH(cs) { if (kvm_openpic_connect_vcpu(dev, cs)) { - fprintf(stderr, "%s: failed to connect vcpu to irqchip\n", + error_report("%s: failed to connect vcpu to irqchip", __func__); abort(); } @@ -821,7 +821,7 @@ void ppce500_init(MachineState *machine, PPCE500Params = *params) cs =3D CPU(cpu); =20 if (env->mmu_model !=3D POWERPC_MMU_BOOKE206) { - fprintf(stderr, "MMU model %i not supported by this machine.\n= ", + error_report("MMU model %i not supported by this machine.", env->mmu_model); exit(1); } @@ -967,7 +967,7 @@ void ppce500_init(MachineState *machine, PPCE500Params = *params) cur_base, ram_size - cur_base); if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", machine->kernel_filename); exit(1); } @@ -982,8 +982,8 @@ void ppce500_init(MachineState *machine, PPCE500Params = *params) ram_size - initrd_base); =20 if (initrd_size < 0) { - fprintf(stderr, "qemu: could not load initial ram disk '%s'\n", - machine->initrd_filename); + error_report("qemu: could not load initial ram disk '%s'", + machine->initrd_filename); exit(1); } =20 @@ -1024,7 +1024,7 @@ void ppce500_init(MachineState *machine, PPCE500Param= s *params) kernel_size =3D load_uimage(filename, &bios_entry, &loadaddr, NULL, NULL, NULL); if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load firmware '%s'\n", filena= me); + error_report("qemu: could not load firmware '%s'", filename); exit(1); } } @@ -1037,7 +1037,7 @@ void ppce500_init(MachineState *machine, PPCE500Param= s *params) initrd_base, initrd_size, kernel_base, kernel_size); if (dt_size < 0) { - fprintf(stderr, "couldn't load device tree\n"); + error_report("couldn't load device tree"); exit(1); } assert(dt_size < DTB_MAX_SIZE); diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c index 33b46cb50b..c0edf22352 100644 --- a/hw/ppc/mac_newworld.c +++ b/hw/ppc/mac_newworld.c @@ -283,7 +283,7 @@ static void ppc_core99_init(MachineState *machine) } } if (ppc_boot_device =3D=3D '\0') { - fprintf(stderr, "No valid boot device for Mac99 machine\n"); + error_report("No valid boot device for Mac99 machine"); exit(1); } } diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c index 193b9047d9..02f03650af 100644 --- a/hw/ppc/mac_oldworld.c +++ b/hw/ppc/mac_oldworld.c @@ -226,7 +226,7 @@ static void ppc_heathrow_init(MachineState *machine) #endif } if (ppc_boot_device =3D=3D '\0') { - fprintf(stderr, "No valid boot device for G3 Beige machine\n"); + error_report("No valid boot device for G3 Beige machine"); exit(1); } } diff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c index ce1254b5d4..3a2c49e3fd 100644 --- a/hw/ppc/mpc8544_guts.c +++ b/hw/ppc/mpc8544_guts.c @@ -18,6 +18,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "cpu.h" #include "hw/hw.h" @@ -83,7 +84,7 @@ static uint64_t mpc8544_guts_read(void *opaque, hwaddr ad= dr, value =3D env->spr[SPR_E500_SVR]; break; default: - fprintf(stderr, "guts: Unknown register read: %x\n", (int)addr); + error_report("guts: Unknown register read: %x", (int)addr); break; } =20 @@ -102,7 +103,7 @@ static void mpc8544_guts_write(void *opaque, hwaddr add= r, } break; default: - fprintf(stderr, "guts: Unknown register write: %x =3D %x\n", + error_report("guts: Unknown register write: %x =3D %x", (int)addr, (unsigned)value); break; } diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index e92db2c66a..0a31a1c116 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -324,7 +324,7 @@ static void ref405ep_init(MachineState *machine) kernel_size =3D load_image_targphys(kernel_filename, kernel_base, ram_size - kernel_base); if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } @@ -336,8 +336,8 @@ static void ref405ep_init(MachineState *machine) initrd_size =3D load_image_targphys(initrd_filename, initrd_ba= se, ram_size - initrd_base); if (initrd_size < 0) { - fprintf(stderr, "qemu: could not load initial ram disk '%s= '\n", - initrd_filename); + error_report("qemu: could not load initial ram disk '%s'", + initrd_filename); exit(1); } } else { @@ -607,7 +607,7 @@ static void taihu_405ep_init(MachineState *machine) kernel_size =3D load_image_targphys(kernel_filename, kernel_base, ram_size - kernel_base); if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index f92d47f28d..77b74dfe9e 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -12,6 +12,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "net/net.h" #include "hw/hw.h" @@ -80,22 +81,22 @@ static int bamboo_load_device_tree(hwaddr addr, ret =3D qemu_fdt_setprop(fdt, "/memory", "reg", mem_reg_property, sizeof(mem_reg_property)); if (ret < 0) - fprintf(stderr, "couldn't set /memory/reg\n"); + error_report("couldn't set /memory/reg"); =20 ret =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-start", initrd_base); if (ret < 0) - fprintf(stderr, "couldn't set /chosen/linux,initrd-start\n"); + error_report("couldn't set /chosen/linux,initrd-start"); =20 ret =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", (initrd_base + initrd_size)); if (ret < 0) - fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n"); + error_report("couldn't set /chosen/linux,initrd-end"); =20 ret =3D qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", kernel_cmdline); if (ret < 0) - fprintf(stderr, "couldn't set /chosen/bootargs\n"); + error_report("couldn't set /chosen/bootargs"); =20 /* Copy data from the host device tree into the guest. Since the guest= can * directly access the timebase without host involvement, we must expo= se @@ -190,7 +191,7 @@ static void bamboo_init(MachineState *machine) env =3D &cpu->env; =20 if (env->mmu_model !=3D POWERPC_MMU_BOOKE) { - fprintf(stderr, "MMU model %i not supported by this machine.\n", + error_report("MMU model %i not supported by this machine.", env->mmu_model); exit(1); } @@ -224,7 +225,7 @@ static void bamboo_init(MachineState *machine) NULL); pcibus =3D (PCIBus *)qdev_get_child_bus(dev, "pci.0"); if (!pcibus) { - fprintf(stderr, "couldn't create PCI controller!\n"); + error_report("couldn't create PCI controller!"); exit(1); } =20 @@ -265,7 +266,7 @@ static void bamboo_init(MachineState *machine) } /* XXX try again as binary */ if (success < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } @@ -277,7 +278,7 @@ static void bamboo_init(MachineState *machine) ram_size - RAMDISK_ADDR); =20 if (initrd_size < 0) { - fprintf(stderr, "qemu: could not load ram disk '%s' at %x\n", + error_report("qemu: could not load ram disk '%s' at %x", initrd_filename, RAMDISK_ADDR); exit(1); } @@ -287,7 +288,7 @@ static void bamboo_init(MachineState *machine) if (kernel_filename) { if (bamboo_load_device_tree(FDT_ADDR, ram_size, RAMDISK_ADDR, initrd_size, kernel_cmdline) < 0) { - fprintf(stderr, "couldn't load device tree\n"); + error_report("couldn't load device tree"); exit(1); } } diff --git a/hw/ppc/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c index 6953f8b9ac..0b91d22253 100644 --- a/hw/ppc/ppc4xx_pci.c +++ b/hw/ppc/ppc4xx_pci.c @@ -20,6 +20,7 @@ * 4xx SoCs, such as the 440EP. */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/ppc/ppc.h" #include "hw/ppc/ppc4xx.h" @@ -254,7 +255,7 @@ static void ppc4xx_pci_set_irq(void *opaque, int irq_nu= m, int level) =20 trace_ppc4xx_pci_set_irq(irq_num); if (irq_num < 0) { - fprintf(stderr, "%s: PCI irq %d\n", __func__, irq_num); + error_report("%s: PCI irq %d", __func__, irq_num); return; } qemu_set_irq(pci_irqs[irq_num], level); diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index 94138a4e8c..7551d53fa5 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -576,7 +576,7 @@ static void ppc_prep_init(MachineState *machine) } } if (ppc_boot_device =3D=3D '\0') { - fprintf(stderr, "No valid boot device for Mac99 machine\n"); + error_report("No valid boot device for Mac99 machine"); exit(1); } } @@ -597,7 +597,7 @@ static void ppc_prep_init(MachineState *machine) qdev_init_nofail(dev); pci_bus =3D (PCIBus *)qdev_get_child_bus(dev, "pci.0"); if (pci_bus =3D=3D NULL) { - fprintf(stderr, "Couldn't create PCI host controller.\n"); + error_report("Couldn't create PCI host controller."); exit(1); } sysctrl->contiguous_map_irq =3D qdev_get_gpio_in(dev, 0); diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c index ed9b406fd3..7641737f81 100644 --- a/hw/ppc/virtex_ml507.c +++ b/hw/ppc/virtex_ml507.c @@ -187,7 +187,7 @@ static int xilinx_load_device_tree(hwaddr addr, =20 r =3D qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", kernel_cmdli= ne); if (r < 0) - fprintf(stderr, "couldn't set /chosen/bootargs\n"); + error_report("couldn't set /chosen/bootargs"); cpu_physical_memory_write(addr, fdt, fdt_size); return fdt_size; } @@ -219,7 +219,7 @@ static void virtex_init(MachineState *machine) env =3D &cpu->env; =20 if (env->mmu_model !=3D POWERPC_MMU_BOOKE) { - fprintf(stderr, "MMU model %i not supported by this machine.\n", + error_report("MMU model %i not supported by this machine.", env->mmu_model); exit(1); } diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index ff1bb1534c..d3c46bc01f 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -466,7 +466,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw) * passes us zeroes for those we don't support. */ if (features.features) { - fprintf(stderr, "Guest bug: features[%i]=3D%x (expecte= d 0)\n", + error_report("Guest bug: features[%i]=3D%x (expected 0= )", features.index, features.features); /* XXX: do a unit check here? */ } diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c index 3e56ab267c..3e2b24e67d 100644 --- a/hw/scsi/lsi53c895a.c +++ b/hw/scsi/lsi53c895a.c @@ -14,7 +14,7 @@ */ =20 #include "qemu/osdep.h" - +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/pci/pci.h" #include "hw/scsi/scsi.h" @@ -1501,7 +1501,7 @@ again: This is apparently sufficient to beat the drivers into submissi= on. */ if (!(s->sien0 & LSI_SIST0_UDC)) - fprintf(stderr, "inf. loop with UDC masked\n"); + error_report("inf. loop with UDC masked"); lsi_script_scsi_interrupt(s, LSI_SIST0_UDC, 0); lsi_disconnect(s); } else if (s->istat1 & LSI_ISTAT1_SRUN && !s->waiting) { diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 360db53ac8..8c4eabcf3d 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -32,6 +32,7 @@ * - Maybe do autosense (PAPR seems to mandate it, linux doesn't care) */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "cpu.h" #include "hw/hw.h" @@ -179,7 +180,7 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req, rc =3D spapr_vio_dma_write(&s->vdev, req->crq.s.IU_data_ptr, &req->iu, length); if (rc) { - fprintf(stderr, "vscsi_send_iu: DMA write failure !\n"); + error_report("vscsi_send_iu: DMA write failure !"); } =20 req->crq.s.valid =3D 0x80; @@ -197,7 +198,7 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req, =20 rc1 =3D spapr_vio_send_crq(&s->vdev, req->crq.raw); if (rc1) { - fprintf(stderr, "vscsi_send_iu: Error sending response\n"); + error_report("vscsi_send_iu: Error sending response"); return rc1; } =20 @@ -330,7 +331,7 @@ static int vscsi_fetch_desc(VSCSIState *s, struct vscsi= _req *req, break; } default: - fprintf(stderr, "VSCSI: Unknown format %x\n", req->dma_fmt); + error_report("VSCSI: Unknown format %x", req->dma_fmt); return -1; } =20 @@ -518,7 +519,7 @@ static void vscsi_transfer_data(SCSIRequest *sreq, uint= 32_t len) =20 trace_spapr_vscsi_transfer_data(sreq->tag, len, req); if (req =3D=3D NULL) { - fprintf(stderr, "VSCSI: Can't find request for tag 0x%x\n", sreq->= tag); + error_report("VSCSI: Can't find request for tag 0x%x", sreq->tag); return; } =20 @@ -527,7 +528,7 @@ static void vscsi_transfer_data(SCSIRequest *sreq, uint= 32_t len) rc =3D vscsi_srp_transfer_data(s, req, req->writing, buf, len); } if (rc < 0) { - fprintf(stderr, "VSCSI: RDMA error rc=3D%d!\n", rc); + error_report("VSCSI: RDMA error rc=3D%d!", rc); req->dma_error =3D true; scsi_req_cancel(req->sreq); return; @@ -547,7 +548,7 @@ static void vscsi_command_complete(SCSIRequest *sreq, u= int32_t status, size_t re =20 trace_spapr_vscsi_command_complete(sreq->tag, status, req); if (req =3D=3D NULL) { - fprintf(stderr, "VSCSI: Can't find request for tag 0x%x\n", sreq->= tag); + error_report("VSCSI: Can't find request for tag 0x%x", sreq->tag); return; } =20 @@ -639,7 +640,7 @@ static void *vscsi_load_request(QEMUFile *f, SCSIReques= t *sreq) memset(req, 0, sizeof(*req)); rc =3D vmstate_load_state(f, &vmstate_spapr_vscsi_req, req, 1); if (rc) { - fprintf(stderr, "VSCSI: failed loading request tag#%u\n", sreq->ta= g); + error_report("VSCSI: failed loading request tag#%u", sreq->tag); return NULL; } assert(req->active); @@ -827,7 +828,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_= req *req) uint64_t tag =3D iu->srp.rsp.tag; uint8_t sol_not =3D iu->srp.cmd.sol_not; =20 - fprintf(stderr, "vscsi_process_tsk_mgmt %02x\n", + error_report("vscsi_process_tsk_mgmt %02x", iu->srp.tsk_mgmt.tsk_mgmt_func); =20 d =3D vscsi_device_find(&s->bus, be64_to_cpu(req->iu.srp.tsk_mgmt.lun)= , &lun); @@ -932,10 +933,10 @@ static int vscsi_handle_srp_req(VSCSIState *s, vscsi_= req *req) case SRP_CRED_RSP: case SRP_AER_REQ: case SRP_AER_RSP: - fprintf(stderr, "VSCSI: Unsupported opcode %02x\n", opcode); + error_report("VSCSI: Unsupported opcode %02x", opcode); break; default: - fprintf(stderr, "VSCSI: Unknown type %02x\n", opcode); + error_report("VSCSI: Unknown type %02x", opcode); } =20 return done; @@ -953,7 +954,7 @@ static int vscsi_send_adapter_info(VSCSIState *s, vscsi= _req *req) rc =3D spapr_vio_dma_read(&s->vdev, be64_to_cpu(sinfo->buffer), &info, be16_to_cpu(sinfo->common.length)); if (rc) { - fprintf(stderr, "vscsi_send_adapter_info: DMA read failure !\n"); + error_report("vscsi_send_adapter_info: DMA read failure !"); } #endif memset(&info, 0, sizeof(info)); @@ -967,7 +968,7 @@ static int vscsi_send_adapter_info(VSCSIState *s, vscsi= _req *req) rc =3D spapr_vio_dma_write(&s->vdev, be64_to_cpu(sinfo->buffer), &info, be16_to_cpu(sinfo->common.length)); if (rc) { - fprintf(stderr, "vscsi_send_adapter_info: DMA write failure !\n"); + error_report("vscsi_send_adapter_info: DMA write failure !"); } =20 sinfo->common.status =3D rc ? cpu_to_be32(1) : 0; @@ -987,7 +988,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi= _req *req) req_len =3D len =3D be16_to_cpu(vcap->common.length); buffer =3D be64_to_cpu(vcap->buffer); if (len > sizeof(cap)) { - fprintf(stderr, "vscsi_send_capabilities: capabilities size mismat= ch !\n"); + error_report("vscsi_send_capabilities: capabilities size mismatch = !"); =20 /* * Just read and populate the structure that is known. @@ -997,7 +998,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi= _req *req) } rc =3D spapr_vio_dma_read(&s->vdev, buffer, &cap, len); if (rc) { - fprintf(stderr, "vscsi_send_capabilities: DMA read failure !\n"); + error_report("vscsi_send_capabilities: DMA read failure !"); } =20 /* @@ -1013,7 +1014,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vsc= si_req *req) =20 rc =3D spapr_vio_dma_write(&s->vdev, buffer, &cap, len); if (rc) { - fprintf(stderr, "vscsi_send_capabilities: DMA write failure !\n"); + error_report("vscsi_send_capabilities: DMA write failure !"); } if (req_len > len) { /* @@ -1034,11 +1035,11 @@ static int vscsi_handle_mad_req(VSCSIState *s, vscs= i_req *req) =20 switch (be32_to_cpu(mad->empty_iu.common.type)) { case VIOSRP_EMPTY_IU_TYPE: - fprintf(stderr, "Unsupported EMPTY MAD IU\n"); + error_report("Unsupported EMPTY MAD IU"); retlen =3D sizeof(mad->empty_iu); break; case VIOSRP_ERROR_LOG_TYPE: - fprintf(stderr, "Unsupported ERROR LOG MAD IU\n"); + error_report("Unsupported ERROR LOG MAD IU"); retlen =3D sizeof(mad->error_log); break; case VIOSRP_ADAPTER_INFO_TYPE: @@ -1053,7 +1054,7 @@ static int vscsi_handle_mad_req(VSCSIState *s, vscsi_= req *req) request_handled =3D true; break; default: - fprintf(stderr, "VSCSI: Unknown MAD type %02x\n", + error_report("VSCSI: Unknown MAD type %02x", be32_to_cpu(mad->empty_iu.common.type)); /* * PAPR+ says that "The length field is set to the length @@ -1078,7 +1079,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_cr= q *crq) =20 req =3D vscsi_get_req(s); if (req =3D=3D NULL) { - fprintf(stderr, "VSCSI: Failed to get a request !\n"); + error_report("VSCSI: Failed to get a request !"); return; } =20 @@ -1088,7 +1089,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_cr= q *crq) * of the structure. */ if (crq->s.IU_length > sizeof(union viosrp_iu)) { - fprintf(stderr, "VSCSI: SRP IU too long (%d bytes) !\n", + error_report("VSCSI: SRP IU too long (%d bytes) !", crq->s.IU_length); vscsi_put_req(req); return; @@ -1097,7 +1098,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_cr= q *crq) /* XXX Handle failure differently ? */ if (spapr_vio_dma_read(&s->vdev, crq->s.IU_data_ptr, &req->iu, crq->s.IU_length)) { - fprintf(stderr, "vscsi_got_payload: DMA read failure !\n"); + error_report("vscsi_got_payload: DMA read failure !"); vscsi_put_req(req); return; } @@ -1158,16 +1159,16 @@ static int vscsi_do_crq(struct VIOsPAPRDevice *dev,= uint8_t *crq_data) case VIOSRP_AIX_FORMAT: case VIOSRP_LINUX_FORMAT: case VIOSRP_INLINE_FORMAT: - fprintf(stderr, "vscsi_do_srq: Unsupported payload format %02x= \n", + error_report("vscsi_do_srq: Unsupported payload format %02x", crq.s.format); break; default: - fprintf(stderr, "vscsi_do_srq: Unknown payload format %02x\n", + error_report("vscsi_do_srq: Unknown payload format %02x", crq.s.format); } break; default: - fprintf(stderr, "vscsi_do_crq: unknown CRQ %02x %02x ...\n", + error_report("vscsi_do_crq: unknown CRQ %02x %02x ...", crq.raw[0], crq.raw[1]); }; =20 diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplan= e.c index add4b3f4a4..e047361310 100644 --- a/hw/scsi/virtio-scsi-dataplane.c +++ b/hw/scsi/virtio-scsi-dataplane.c @@ -97,7 +97,7 @@ static int virtio_scsi_vring_init(VirtIOSCSI *s, VirtQueu= e *vq, int n, /* Set up virtqueue notify */ rc =3D virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), n, true); if (rc !=3D 0) { - fprintf(stderr, "virtio-scsi: Failed to set host notifier (%d)\n", + error_report("virtio-scsi: Failed to set host notifier (%d)", rc); s->dataplane_fenced =3D true; return rc; @@ -141,8 +141,8 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev) /* Set up guest notifier (irq) */ rc =3D k->set_guest_notifiers(qbus->parent, vs->conf.num_queues + 2, t= rue); if (rc !=3D 0) { - fprintf(stderr, "virtio-scsi: Failed to set guest notifiers (%d), " - "ensure -enable-kvm is set\n", rc); + error_report("virtio-scsi: Failed to set guest notifiers (%d), " + "ensure -enable-kvm is set", rc); goto fail_guest_notifiers; } =20 diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c index 55c8098ecd..2b878a0c5e 100644 --- a/hw/sd/pl181.c +++ b/hw/sd/pl181.c @@ -8,6 +8,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "hw/sysbus.h" @@ -146,7 +147,7 @@ static void pl181_fifo_push(PL181State *s, uint32_t val= ue) int n; =20 if (s->fifo_len =3D=3D PL181_FIFO_LEN) { - fprintf(stderr, "pl181: FIFO overflow\n"); + error_report("pl181: FIFO overflow"); return; } n =3D (s->fifo_pos + s->fifo_len) & (PL181_FIFO_LEN - 1); @@ -160,7 +161,7 @@ static uint32_t pl181_fifo_pop(PL181State *s) uint32_t value; =20 if (s->fifo_len =3D=3D 0) { - fprintf(stderr, "pl181: FIFO underflow\n"); + error_report("pl181: FIFO underflow"); return 0; } value =3D s->fifo[s->fifo_pos]; diff --git a/hw/sd/sd.c b/hw/sd/sd.c index ba47bff4db..e467d74fc8 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -700,7 +700,7 @@ static void sd_lock_command(SDState *sd) sd->card_status &=3D ~CARD_IS_LOCKED; sd->pwd_len =3D 0; /* Erasing the entire card here! */ - fprintf(stderr, "SD: Card force-erased by CMD42\n"); + error_report("SD: Card force-erased by CMD42"); return; } =20 @@ -1282,7 +1282,7 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, return sd_r1; =20 case 56: /* CMD56: GEN_CMD */ - fprintf(stderr, "SD: GEN_CMD 0x%08x\n", req.arg); + error_report("SD: GEN_CMD 0x%08x", req.arg); =20 switch (sd->state) { case sd_transfer_state: @@ -1565,10 +1565,10 @@ send_response: int i; DPRINTF("Response:"); for (i =3D 0; i < rsplen; i++) - fprintf(stderr, " %02x", response[i]); - fprintf(stderr, " state %d\n", sd->state); + error_report(" %02x", response[i]); + error_report(" state %d", sd->state); } else { - DPRINTF("No response %d\n", sd->state); + DPRINTF("No response %d", sd->state); } #endif =20 @@ -1580,14 +1580,14 @@ static void sd_blk_read(SDState *sd, uint64_t addr,= uint32_t len) DPRINTF("sd_blk_read: addr =3D 0x%08llx, len =3D %d\n", (unsigned long long) addr, len); if (!sd->blk || blk_pread(sd->blk, addr, sd->data, len) < 0) { - fprintf(stderr, "sd_blk_read: read error on host side\n"); + error_report("sd_blk_read: read error on host side"); } } =20 static void sd_blk_write(SDState *sd, uint64_t addr, uint32_t len) { if (!sd->blk || blk_pwrite(sd->blk, addr, sd->data, len, 0) < 0) { - fprintf(stderr, "sd_blk_write: write error on host side\n"); + error_report("sd_blk_write: write error on host side"); } } =20 diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c index 16b9ed2db2..a010f559e2 100644 --- a/hw/sh4/r2d.c +++ b/hw/sh4/r2d.c @@ -24,6 +24,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -319,8 +320,8 @@ static void r2d_init(MachineState *machine) SDRAM_BASE + LINUX_LOAD_OFFSET, INITRD_LOAD_OFFSET - LINUX_LOAD_= OFFSET); if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", kernel_fil= ename); - exit(1); + error_report("qemu: could not load kernel '%s'", kernel_filena= me); + exit(1); } =20 /* initialization which should be done by firmware */ @@ -339,8 +340,8 @@ static void r2d_init(MachineState *machine) SDRAM_SIZE - INITRD_LOAD_OFFSET); =20 if (initrd_size < 0) { - fprintf(stderr, "qemu: could not load initrd '%s'\n", initrd_fil= ename); - exit(1); + error_report("qemu: could not load initrd '%s'", initrd_filena= me); + exit(1); } =20 /* initialization which should be done by firmware */ diff --git a/hw/sh4/sh7750.c b/hw/sh4/sh7750.c index 166e4bd947..64ffc4c1d2 100644 --- a/hw/sh4/sh7750.c +++ b/hw/sh4/sh7750.c @@ -23,6 +23,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/sh4/sh.h" #include "sysemu/sysemu.h" @@ -147,9 +148,9 @@ static void porta_changed(SH7750State * s, uint16_t pre= v) int i, r =3D 0; =20 #if 0 - fprintf(stderr, "porta changed from 0x%04x to 0x%04x\n", + error_report("porta changed from 0x%04x to 0x%04x", prev, porta_lines(s)); - fprintf(stderr, "pdtra=3D0x%04x, pctra=3D0x%08x\n", s->pdtra, s->pctra= ); + error_report("pdtra=3D0x%04x, pctra=3D0x%08x", s->pdtra, s->pctra); #endif currenta =3D porta_lines(s); if (currenta =3D=3D prev) @@ -200,13 +201,13 @@ static void portb_changed(SH7750State * s, uint16_t p= rev) =20 static void error_access(const char *kind, hwaddr addr) { - fprintf(stderr, "%s to %s (0x" TARGET_FMT_plx ") not supported\n", + error_report("%s to %s (0x" TARGET_FMT_plx ") not supported", kind, regname(addr), addr); } =20 static void ignore_access(const char *kind, hwaddr addr) { - fprintf(stderr, "%s to %s (0x" TARGET_FMT_plx ") ignored\n", + error_report("%s to %s (0x" TARGET_FMT_plx ") ignored", kind, regname(addr), addr); } =20 @@ -326,47 +327,48 @@ static void sh7750_mem_writew(void *opaque, hwaddr ad= dr, uint16_t temp; =20 switch (addr) { - /* SDRAM controller */ + /* SDRAM controller */ case SH7750_BCR2_A7: s->bcr2 =3D mem_value; return; case SH7750_BCR3_A7: - if(!has_bcr3_and_bcr4(s)) - error_access("word write", addr); - s->bcr3 =3D mem_value; - return; + if (!has_bcr3_and_bcr4(s)) { + error_access("word write", addr); + } + s->bcr3 =3D mem_value; + return; case SH7750_PCR_A7: - s->pcr =3D mem_value; - return; + s->pcr =3D mem_value; + return; case SH7750_RTCNT_A7: case SH7750_RTCOR_A7: case SH7750_RTCSR_A7: - ignore_access("word write", addr); - return; - /* IO ports */ + ignore_access("word write", addr); + return; + /* IO ports */ case SH7750_PDTRA_A7: - temp =3D porta_lines(s); - s->pdtra =3D mem_value; - porta_changed(s, temp); - return; + temp =3D porta_lines(s); + s->pdtra =3D mem_value; + porta_changed(s, temp); + return; case SH7750_PDTRB_A7: - temp =3D portb_lines(s); - s->pdtrb =3D mem_value; - portb_changed(s, temp); - return; + temp =3D portb_lines(s); + s->pdtrb =3D mem_value; + portb_changed(s, temp); + return; case SH7750_RFCR_A7: - fprintf(stderr, "Write access to refresh count register\n"); - s->rfcr =3D mem_value; - return; + error_report("Write access to refresh count register"); + s->rfcr =3D mem_value; + return; case SH7750_GPIOIC_A7: - s->gpioic =3D mem_value; - if (mem_value !=3D 0) { - fprintf(stderr, "I/O interrupts not implemented\n"); + s->gpioic =3D mem_value; + if (mem_value !=3D 0) { + error_report("I/O interrupts not implemented"); abort(); - } - return; + } + return; default: - error_access("word write", addr); + error_access("word write", addr); abort(); } } diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c index ec2816bf94..d434edec92 100644 --- a/hw/sparc/leon3.c +++ b/hw/sparc/leon3.c @@ -22,6 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -172,7 +173,7 @@ static void leon3_generic_hw_init(MachineState *machine) } =20 if (bios_size > prom_size) { - fprintf(stderr, "qemu: could not load prom '%s': file too big\n", + error_report("qemu: could not load prom '%s': file too big", filename); exit(1); } @@ -180,11 +181,11 @@ static void leon3_generic_hw_init(MachineState *machi= ne) if (bios_size > 0) { ret =3D load_image_targphys(filename, 0x00000000, bios_size); if (ret < 0 || ret > prom_size) { - fprintf(stderr, "qemu: could not load prom '%s'\n", filename); + error_report("qemu: could not load prom '%s'", filename); exit(1); } } else if (kernel_filename =3D=3D NULL && !qtest_enabled()) { - fprintf(stderr, "Can't read bios image %s\n", filename); + error_report("Can't read bios image %s", filename); exit(1); } g_free(filename); @@ -197,7 +198,7 @@ static void leon3_generic_hw_init(MachineState *machine) kernel_size =3D load_elf(kernel_filename, NULL, NULL, &entry, NULL= , NULL, 1 /* big endian */, EM_SPARC, 0, 0); if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index e1bdd4828d..7a2812aaa4 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -261,7 +261,7 @@ static unsigned long sun4m_load_kernel(const char *kern= el_filename, KERNEL_LOAD_ADDR, RAM_size - KERNEL_LOAD_ADDR); if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } @@ -273,8 +273,8 @@ static unsigned long sun4m_load_kernel(const char *kern= el_filename, INITRD_LOAD_ADDR, RAM_size - INITRD_LOAD_ADDR); if (initrd_size < 0) { - fprintf(stderr, "qemu: could not load initial ram disk '%s= '\n", - initrd_filename); + error_report("qemu: could not load initial ram disk '%s'", + initrd_filename); exit(1); } } @@ -688,7 +688,7 @@ static void prom_init(hwaddr addr, const char *bios_nam= e) ret =3D -1; } if (ret < 0 || ret > PROM_SIZE_MAX) { - fprintf(stderr, "qemu: could not load prom '%s'\n", bios_name); + error_report("qemu: could not load prom '%s'", bios_name); exit(1); } } diff --git a/hw/sparc64/niagara.c b/hw/sparc64/niagara.c index 9a8d6109d4..60799220f3 100644 --- a/hw/sparc64/niagara.c +++ b/hw/sparc64/niagara.c @@ -153,7 +153,7 @@ static void niagara_init(MachineState *machine) dinfo->is_default =3D 1; rom_add_file_fixed(blk_bs(blk)->filename, NIAGARA_VDISK_BASE, = -1); } else { - fprintf(stderr, "qemu: could not load ram disk '%s'\n", + error_report("qemu: could not load ram disk '%s'", blk_bs(blk)->filename); exit(1); } diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index c3280aaf38..070d9b94f9 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -22,6 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -165,7 +166,7 @@ static uint64_t sun4u_load_kernel(const char *kernel_fi= lename, RAM_size - KERNEL_LOAD_ADDR); } if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } @@ -178,8 +179,8 @@ static uint64_t sun4u_load_kernel(const char *kernel_fi= lename, *initrd_addr, RAM_size - *initrd_addr); if ((int)*initrd_size < 0) { - fprintf(stderr, "qemu: could not load initial ram disk '%s= '\n", - initrd_filename); + error_report("qemu: could not load initial ram disk '%s'", + initrd_filename); exit(1); } } @@ -322,7 +323,7 @@ static void prom_init(hwaddr addr, const char *bios_nam= e) ret =3D -1; } if (ret < 0 || ret > PROM_SIZE_MAX) { - fprintf(stderr, "qemu: could not load prom '%s'\n", bios_name); + error_report("qemu: could not load prom '%s'", bios_name); exit(1); } } diff --git a/hw/ssi/omap_spi.c b/hw/ssi/omap_spi.c index 34163e5646..98242d1e8b 100644 --- a/hw/ssi/omap_spi.c +++ b/hw/ssi/omap_spi.c @@ -20,6 +20,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/arm/omap.h" =20 @@ -295,9 +296,9 @@ static void omap_mcspi_write(void *opaque, hwaddr addr, if ((value ^ s->ch[ch].config) & (3 << 14)) /* DMAR | DMAW */ omap_mcspi_dmarequest_update(s->ch + ch); if (((value >> 12) & 3) =3D=3D 3) /* TRM */ - fprintf(stderr, "%s: invalid TRM value (3)\n", __func__); + error_report("%s: invalid TRM value (3)", __func__); if (((value >> 7) & 0x1f) < 3) /* WL */ - fprintf(stderr, "%s: invalid WL value (%" PRIx64 ")\n", + error_report("%s: invalid WL value (%" PRIx64 ")", __func__, (value >> 7) & 0x1f); s->ch[ch].config =3D value & 0x7fffff; break; diff --git a/hw/timer/omap_gptimer.c b/hw/timer/omap_gptimer.c index ae2dc99832..0f064241d3 100644 --- a/hw/timer/omap_gptimer.c +++ b/hw/timer/omap_gptimer.c @@ -18,6 +18,7 @@ * with this program; if not, see . */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "qemu/timer.h" #include "hw/arm/omap.h" @@ -356,7 +357,7 @@ static void omap_gp_timer_write(void *opaque, hwaddr ad= dr, case 0x10: /* TIOCP_CFG */ s->config =3D value & 0x33d; if (((value >> 3) & 3) =3D=3D 3) /* IDLEMODE */ - fprintf(stderr, "%s: illegal IDLEMODE value in TIOCP_CFG\n", + error_report("%s: illegal IDLEMODE value in TIOCP_CFG", __func__); if (value & 2) /* SOFTRESET */ omap_gp_timer_reset(s); @@ -394,11 +395,11 @@ static void omap_gp_timer_write(void *opaque, hwaddr = addr, s->ar =3D (value >> 1) & 1; s->st =3D (value >> 0) & 1; if (s->inout && s->trigger !=3D gpt_trigger_none) - fprintf(stderr, "%s: GP timer pin must be an output " - "for this trigger mode\n", __func__); + error_report("%s: GP timer pin must be an output " + "for this trigger mode", __func__); if (!s->inout && s->capture !=3D gpt_capture_none) - fprintf(stderr, "%s: GP timer pin must be an input " - "for this capture mode\n", __func__); + error_report("%s: GP timer pin must be an input " + "for this capture mode", __func__); if (s->trigger =3D=3D gpt_trigger_none) omap_gp_timer_out(s, s->scpwm); /* TODO: make sure this doesn't overflow 32-bits */ diff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c index 87e334af24..3ade0ba929 100644 --- a/hw/timer/twl92230.c +++ b/hw/timer/twl92230.c @@ -614,7 +614,7 @@ static void menelaus_write(void *opaque, uint8_t addr, = uint8_t value) break; rtc_badness: default: - fprintf(stderr, "%s: bad RTC_UPDATE value %02x\n", + error_report("%s: bad RTC_UPDATE value %02x", __func__, value); s->status |=3D 1 << 10; /* RTCERR */ menelaus_update(s); diff --git a/hw/timer/xilinx_timer.c b/hw/timer/xilinx_timer.c index 59439c05be..a80bba846b 100644 --- a/hw/timer/xilinx_timer.c +++ b/hw/timer/xilinx_timer.c @@ -127,7 +127,7 @@ timer_read(void *opaque, hwaddr addr, unsigned int size) break; =20 } - D(fprintf(stderr, "%s timer=3D%d %x=3D%x\n", __func__, timer, addr * 4= , r)); + D(error_report("%s timer=3D%d %x=3D%x", __func__, timer, addr * 4, r)); return r; } =20 @@ -135,7 +135,7 @@ static void timer_enable(struct xlx_timer *xt) { uint64_t count; =20 - D(fprintf(stderr, "%s timer=3D%d down=3D%d\n", __func__, + D(error_report("%s timer=3D%d down=3D%d", __func__, xt->nr, xt->regs[R_TCSR] & TCSR_UDT)); =20 ptimer_stop(xt->ptimer); @@ -160,7 +160,7 @@ timer_write(void *opaque, hwaddr addr, addr >>=3D 2; timer =3D timer_from_addr(addr); xt =3D &t->timers[timer]; - D(fprintf(stderr, "%s addr=3D%x val=3D%x (timer=3D%d off=3D%d)\n", + D(error_report("%s addr=3D%x val=3D%x (timer=3D%d off=3D%d)", __func__, addr * 4, value, timer, addr & 3)); /* Further decoding to address a specific timers reg. */ addr &=3D 3; @@ -197,7 +197,7 @@ static void timer_hit(void *opaque) { struct xlx_timer *xt =3D opaque; struct timerblock *t =3D xt->parent; - D(fprintf(stderr, "%s %d\n", __func__, xt->nr)); + D(error_report("%s %d", __func__, xt->nr)); xt->regs[R_TCSR] |=3D TCSR_TINT; =20 if (xt->regs[R_TCSR] & TCSR_ARHT) diff --git a/hw/usb/core.c b/hw/usb/core.c index 241ae66b15..9ffdef055c 100644 --- a/hw/usb/core.c +++ b/hw/usb/core.c @@ -24,6 +24,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "hw/usb.h" #include "qemu/iov.h" @@ -599,7 +600,7 @@ void usb_packet_copy(USBPacket *p, void *ptr, size_t by= tes) iov_from_buf(iov->iov, iov->niov, p->actual_length, ptr, bytes); break; default: - fprintf(stderr, "%s: invalid pid: %x\n", __func__, p->pid); + error_report("%s: invalid pid: %x", __func__, p->pid); abort(); } p->actual_length +=3D bytes; @@ -681,7 +682,7 @@ void usb_ep_dump(USBDevice *dev) }; int ifnum, ep, first; =20 - fprintf(stderr, "Device \"%s\", config %d\n", + error_report("Device \"%s\", config %d", dev->product_desc, dev->configuration); for (ifnum =3D 0; ifnum < 16; ifnum++) { first =3D 1; @@ -690,10 +691,10 @@ void usb_ep_dump(USBDevice *dev) dev->ep_in[ep].ifnum =3D=3D ifnum) { if (first) { first =3D 0; - fprintf(stderr, " Interface %d, alternative %d\n", + error_report(" Interface %d, alternative %d", ifnum, dev->altsetting[ifnum]); } - fprintf(stderr, " Endpoint %d, IN, %s, %d max\n", ep, + error_report(" Endpoint %d, IN, %s, %d max", ep, tname[dev->ep_in[ep].type], dev->ep_in[ep].max_packet_size); } @@ -701,16 +702,16 @@ void usb_ep_dump(USBDevice *dev) dev->ep_out[ep].ifnum =3D=3D ifnum) { if (first) { first =3D 0; - fprintf(stderr, " Interface %d, alternative %d\n", + error_report(" Interface %d, alternative %d", ifnum, dev->altsetting[ifnum]); } - fprintf(stderr, " Endpoint %d, OUT, %s, %d max\n", ep, + error_report(" Endpoint %d, OUT, %s, %d max", ep, tname[dev->ep_out[ep].type], dev->ep_out[ep].max_packet_size); } } } - fprintf(stderr, "--\n"); + error_report("--"); } =20 struct USBEndpoint *usb_ep_get(USBDevice *dev, int pid, int ep) diff --git a/hw/usb/desc.c b/hw/usb/desc.c index 85c15addc5..afae910f8e 100644 --- a/hw/usb/desc.c +++ b/hw/usb/desc.c @@ -1,5 +1,5 @@ #include "qemu/osdep.h" - +#include "qemu/error-report.h" #include "hw/usb.h" #include "hw/usb/desc.h" #include "trace.h" @@ -688,7 +688,7 @@ int usb_desc_get_descriptor(USBDevice *dev, USBPacket *= p, break; =20 default: - fprintf(stderr, "%s: %d unknown type %d (len %zd)\n", __func__, + error_report("%s: %d unknown type %d (len %zd)", __func__, dev->addr, type, len); break; } diff --git a/hw/usb/dev-audio.c b/hw/usb/dev-audio.c index 343345235c..43fc20469a 100644 --- a/hw/usb/dev-audio.c +++ b/hw/usb/dev-audio.c @@ -30,6 +30,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "hw/usb.h" #include "hw/usb/desc.h" @@ -398,7 +399,7 @@ static int usb_audio_set_output_altset(USBAudioState *s= , int altset) } =20 if (s->debug) { - fprintf(stderr, "usb-audio: set interface %d\n", altset); + error_report("usb-audio: set interface %d", altset); } s->out.altset =3D altset; return 0; @@ -478,7 +479,7 @@ static int usb_audio_set_control(USBAudioState *s, uint= 8_t attrib, uint16_t vol =3D data[0] + (data[1] << 8); =20 if (s->debug) { - fprintf(stderr, "usb-audio: vol %04x\n", (uint16_t)vol); + error_report("usb-audio: vol %04x", (uint16_t)vol); } =20 vol -=3D 0x8000; @@ -496,7 +497,7 @@ static int usb_audio_set_control(USBAudioState *s, uint= 8_t attrib, =20 if (set_vol) { if (s->debug) { - fprintf(stderr, "usb-audio: mute %d, lvol %3d, rvol %3d\n", + error_report("usb-audio: mute %d, lvol %3d, rvol %3d", s->out.mute, s->out.vol[0], s->out.vol[1]); } AUD_set_volume_out(s->out.voice, s->out.mute, @@ -514,8 +515,8 @@ static void usb_audio_handle_control(USBDevice *dev, US= BPacket *p, int ret =3D 0; =20 if (s->debug) { - fprintf(stderr, "usb-audio: control transaction: " - "request 0x%04x value 0x%04x index 0x%04x length 0x%04x\n", + error_report("usb-audio: control transaction: " + "request 0x%04x value 0x%04x index 0x%04x length 0x%04x", request, value, index, length); } =20 @@ -533,7 +534,7 @@ static void usb_audio_handle_control(USBDevice *dev, US= BPacket *p, length, data); if (ret < 0) { if (s->debug) { - fprintf(stderr, "usb-audio: fail: get control\n"); + error_report("usb-audio: fail: get control"); } goto fail; } @@ -548,7 +549,7 @@ static void usb_audio_handle_control(USBDevice *dev, US= BPacket *p, length, data); if (ret < 0) { if (s->debug) { - fprintf(stderr, "usb-audio: fail: set control\n"); + error_report("usb-audio: fail: set control"); } goto fail; } @@ -557,8 +558,8 @@ static void usb_audio_handle_control(USBDevice *dev, US= BPacket *p, default: fail: if (s->debug) { - fprintf(stderr, "usb-audio: failed control transaction: " - "request 0x%04x value 0x%04x index 0x%04x length 0x%04= x\n", + error_report("usb-audio: failed control transaction: " + "request 0x%04x value 0x%04x index 0x%04x length 0x%04= x", request, value, index, length); } p->status =3D USB_RET_STALL; @@ -581,7 +582,7 @@ static void usb_audio_handle_reset(USBDevice *dev) USBAudioState *s =3D USB_AUDIO(dev); =20 if (s->debug) { - fprintf(stderr, "usb-audio: reset\n"); + error_report("usb-audio: reset"); } usb_audio_set_output_altset(s, ALTSET_OFF); } @@ -595,7 +596,7 @@ static void usb_audio_handle_dataout(USBAudioState *s, = USBPacket *p) =20 streambuf_put(&s->out.buf, p); if (p->actual_length < p->iov.size && s->debug > 1) { - fprintf(stderr, "usb-audio: output overrun (%zd bytes)\n", + error_report("usb-audio: output overrun (%zd bytes)", p->iov.size - p->actual_length); } } @@ -611,8 +612,8 @@ static void usb_audio_handle_data(USBDevice *dev, USBPa= cket *p) =20 p->status =3D USB_RET_STALL; if (s->debug) { - fprintf(stderr, "usb-audio: failed data transaction: " - "pid 0x%x ep 0x%x len 0x%zx\n", + error_report("usb-audio: failed data transaction: " + "pid 0x%x ep 0x%x len 0x%zx", p->pid, p->ep->nr, p->iov.size); } } @@ -622,7 +623,7 @@ static void usb_audio_unrealize(USBDevice *dev, Error *= *errp) USBAudioState *s =3D USB_AUDIO(dev); =20 if (s->debug) { - fprintf(stderr, "usb-audio: destroy\n"); + error_report("usb-audio: destroy"); } =20 usb_audio_set_output_altset(s, ALTSET_OFF); diff --git a/hw/usb/dev-bluetooth.c b/hw/usb/dev-bluetooth.c index 0bbceaea0b..dfef258dca 100644 --- a/hw/usb/dev-bluetooth.c +++ b/hw/usb/dev-bluetooth.c @@ -274,13 +274,13 @@ static void usb_bt_fifo_enqueue(struct usb_hci_in_fif= o_s *fifo, if (off <=3D DFIFO_LEN_MASK) { if (off + len > DFIFO_LEN_MASK + 1 && (fifo->dsize =3D off + len) > (DFIFO_LEN_MASK + 1)= * 2) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); + error_report("%s: can't alloc %i bytes", __func__, len); exit(-1); } buf =3D fifo->data + off; } else { if (fifo->dlen > fifo->dsize) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); + error_report("%s: can't alloc %i bytes", __func__, len); exit(-1); } buf =3D fifo->data + off - fifo->dsize; diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c index 94c2e94f10..7e1782b8fc 100644 --- a/hw/usb/dev-mtp.c +++ b/hw/usb/dev-mtp.c @@ -10,6 +10,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include #include @@ -546,7 +547,7 @@ static void inotify_watchfn(void *arg) break; =20 default: - fprintf(stderr, "usb-mtp: failed to parse inotify event\n"= ); + error_report("usb-mtp: failed to parse inotify event"); continue; } =20 @@ -617,7 +618,7 @@ static void usb_mtp_object_readdir(MTPState *s, MTPObje= ct *o) #ifdef CONFIG_INOTIFY1 int watchfd =3D usb_mtp_add_watch(s->inotifyfd, o->path); if (watchfd =3D=3D -1) { - fprintf(stderr, "usb-mtp: failed to add watch for %s\n", o->path); + error_report("usb-mtp: failed to add watch for %s", o->path); } else { trace_usb_mtp_inotify_event(s->dev.addr, o->path, 0, "Watch Added"); @@ -1144,7 +1145,7 @@ static void usb_mtp_command(MTPState *s, MTPControl *= c) usb_mtp_object_alloc(s, s->next_handle++, NULL, s->root); #ifdef CONFIG_INOTIFY1 if (usb_mtp_inotify_init(s)) { - fprintf(stderr, "usb-mtp: file monitoring init failed\n"); + error_report("usb-mtp: file monitoring init failed"); } #endif break; @@ -1348,7 +1349,7 @@ static void usb_mtp_handle_control(USBDevice *dev, US= BPacket *p, static void usb_mtp_cancel_packet(USBDevice *dev, USBPacket *p) { /* we don't use async packets, so this should never be called */ - fprintf(stderr, "%s\n", __func__); + error_report("%s", __func__); } =20 static void usb_mtp_handle_data(USBDevice *dev, USBPacket *p) diff --git a/hw/usb/dev-network.c b/hw/usb/dev-network.c index 85fc81bf43..9dd4af5e34 100644 --- a/hw/usb/dev-network.c +++ b/hw/usb/dev-network.c @@ -815,7 +815,7 @@ static int ndis_query(USBNetState *s, uint32_t oid, return sizeof(le32); =20 default: - fprintf(stderr, "usbnet: unknown OID 0x%08x\n", oid); + error_report("usbnet: unknown OID 0x%08x", oid); return 0; } return -1; @@ -1084,9 +1084,9 @@ static void usb_net_handle_control(USBDevice *dev, US= BPacket *p, for (i =3D 0; i < length; i++) { if (!(i & 15)) fprintf(stderr, "\n%04x:", i); - fprintf(stderr, " %02x", data[i]); + error_report(" %02x", data[i]); } - fprintf(stderr, "\n\n"); + fprintf(stderr, "\n"); } #endif ret =3D rndis_parse(s, data, length); @@ -1111,17 +1111,17 @@ static void usb_net_handle_control(USBDevice *dev, = USBPacket *p, for (i =3D 0; i < p->actual_length; i++) { if (!(i & 15)) fprintf(stderr, "\n%04x:", i); - fprintf(stderr, " %02x", data[i]); + error_report(" %02x", data[i]); } - fprintf(stderr, "\n\n"); + fprintf(stderr, "\n"); } #endif break; =20 default: fail: - fprintf(stderr, "usbnet: failed control transaction: " - "request 0x%x value 0x%x index 0x%x length 0x%x\n", + error_report("usbnet: failed control transaction: " + "request 0x%x value 0x%x index 0x%x length 0x%x", request, value, index, length); p->status =3D USB_RET_STALL; break; @@ -1190,7 +1190,7 @@ static void usb_net_handle_dataout(USBNetState *s, US= BPacket *p) uint32_t len; =20 #ifdef TRAFFIC_DEBUG - fprintf(stderr, "usbnet: data out len %zu\n", p->iov.size); + error_report("usbnet: data out len %zu", p->iov.size); iov_hexdump(p->iov.iov, p->iov.niov, stderr, "usbnet", p->iov.size); #endif =20 @@ -1260,8 +1260,8 @@ static void usb_net_handle_data(USBDevice *dev, USBPa= cket *p) } =20 if (p->status =3D=3D USB_RET_STALL) { - fprintf(stderr, "usbnet: failed data transaction: " - "pid 0x%x ep 0x%x len 0x%zx\n", + error_report("usbnet: failed data transaction: " + "pid 0x%x ep 0x%x len 0x%zx", p->pid, p->ep->nr, p->iov.size); } } diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index 46fd30b075..d6c8a56aec 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -419,7 +419,7 @@ static int ehci_get_pid(EHCIqtd *qtd) case 2: return USB_TOKEN_SETUP; default: - fprintf(stderr, "bad token\n"); + error_report("bad token"); return 0; } } @@ -1033,7 +1033,7 @@ static void ehci_opreg_write(void *ptr, hwaddr addr, =20 /* not supporting dynamic frame list size at the moment */ if ((val & USBCMD_FLS) && !(s->usbcmd & USBCMD_FLS)) { - fprintf(stderr, "attempt to set frame list size -- value %d\n", + error_report("attempt to set frame list size -- value %d", (int)val & USBCMD_FLS); val &=3D ~USBCMD_FLS; } @@ -1190,7 +1190,7 @@ static int ehci_init_transfer(EHCIPacket *p) =20 while (bytes > 0) { if (cpage > 4) { - fprintf(stderr, "cpage out of range (%d)\n", cpage); + error_report("cpage out of range (%d)", cpage); qemu_sglist_destroy(&p->sgl); return -1; } @@ -1296,7 +1296,7 @@ static void ehci_execute_complete(EHCIQueue *q) break; default: /* should not be triggerable */ - fprintf(stderr, "USB invalid response %d\n", p->packet.status); + error_report("USB invalid response %d", p->packet.status); g_assert_not_reached(); break; } @@ -1345,7 +1345,7 @@ static int ehci_execute(EHCIPacket *p, const char *ac= tion) p->async =3D=3D EHCI_ASYNC_INITIALIZED); =20 if (!(p->qtd.token & QTD_TOKEN_ACTIVE)) { - fprintf(stderr, "Attempting to execute inactive qtd\n"); + error_report("Attempting to execute inactive qtd"); return -1; } =20 @@ -1383,7 +1383,7 @@ static int ehci_execute(EHCIPacket *p, const char *ac= tion) p->packet.actual_length); =20 if (p->packet.actual_length > BUFF_SIZE) { - fprintf(stderr, "ret from usb_handle_packet > BUFF_SIZE\n"); + error_report("ret from usb_handle_packet > BUFF_SIZE"); return -1; } =20 @@ -1461,7 +1461,7 @@ static int ehci_process_itd(EHCIState *ehci, case USB_RET_SUCCESS: break; default: - fprintf(stderr, "Unexpected iso usb result: %d\n", + error_report("Unexpected iso usb result: %d", ehci->ipacket.status); /* Fall through */ case USB_RET_IOERROR: @@ -1564,7 +1564,7 @@ static int ehci_state_fetchentry(EHCIState *ehci, int= async) =20 /* section 4.8, only QH in async schedule */ if (async && (NLPTR_TYPE_GET(entry) !=3D NLPTR_TYPE_QH)) { - fprintf(stderr, "non queue head request in async schedule\n"); + error_report("non queue head request in async schedule"); return -1; } =20 @@ -1586,8 +1586,8 @@ static int ehci_state_fetchentry(EHCIState *ehci, int= async) =20 default: /* TODO: handle FSTN type */ - fprintf(stderr, "FETCHENTRY: entry at %X is of type %d " - "which is not supported yet\n", entry, NLPTR_TYPE_GET(entr= y)); + error_report("FETCHENTRY: entry at %X is of type %d " + "which is not supported yet", entry, NLPTR_TYPE_GET(entry)= ); return -1; } =20 @@ -2086,7 +2086,7 @@ static void ehci_advance_state(EHCIState *ehci, int a= sync) break; =20 default: - fprintf(stderr, "Bad state!\n"); + error_report("Bad state!"); again =3D -1; g_assert_not_reached(); break; @@ -2094,7 +2094,7 @@ static void ehci_advance_state(EHCIState *ehci, int a= sync) =20 if (again < 0 || itd_count > 16) { /* TODO: notify guest (raise HSE irq?) */ - fprintf(stderr, "processing error - resetting ehci HC\n"); + error_report("processing error - resetting ehci HC"); ehci_reset(ehci); again =3D 0; } @@ -2151,8 +2151,8 @@ static void ehci_advance_async_state(EHCIState *ehci) =20 default: /* this should only be due to a developer mistake */ - fprintf(stderr, "ehci: Bad asynchronous state %d. " - "Resetting to active\n", ehci->astate); + error_report("ehci: Bad asynchronous state %d. " + "Resetting to active", ehci->astate); g_assert_not_reached(); } } @@ -2201,8 +2201,8 @@ static void ehci_advance_periodic_state(EHCIState *eh= ci) =20 default: /* this should only be due to a developer mistake */ - fprintf(stderr, "ehci: Bad periodic state %d. " - "Resetting to active\n", ehci->pstate); + error_report("ehci: Bad periodic state %d. " + "Resetting to active", ehci->pstate); g_assert_not_reached(); } } diff --git a/hw/usb/hcd-musb.c b/hw/usb/hcd-musb.c index d70a91a58c..4729926124 100644 --- a/hw/usb/hcd-musb.c +++ b/hw/usb/hcd-musb.c @@ -253,8 +253,8 @@ /* #define MUSB_DEBUG */ =20 #ifdef MUSB_DEBUG -#define TRACE(fmt, ...) fprintf(stderr, "%s@%d: " fmt "\n", __func__, \ - __LINE__, ##__VA_ARGS__) +#define TRACE(fmt, ...) error_report("%s@%d: " fmt "", __func__, \ + __LINE__, ##__VA_ARGS__) #else #define TRACE(...) #endif diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index d75c085d94..6cc1be09a2 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -19,6 +19,7 @@ * License along with this library; if not, see . */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "qemu/timer.h" #include "qemu/queue.h" @@ -39,7 +40,7 @@ #else #define DPRINTF(...) do {} while (0) #endif -#define FIXME(_msg) do { fprintf(stderr, "FIXME %s:%d %s\n", \ +#define FIXME(_msg) do { error_report("FIXME %s:%d %s", \ __func__, __LINE__, _msg); abort(); } whi= le (0) =20 #define TRB_LINK_LIMIT 32 diff --git a/hw/usb/host-legacy.c b/hw/usb/host-legacy.c index 3b57e21b52..f0c81e5309 100644 --- a/hw/usb/host-legacy.c +++ b/hw/usb/host-legacy.c @@ -86,7 +86,7 @@ static int parse_filter(const char *spec, struct USBAutoF= ilter *f) } =20 if (i < DEV) { - fprintf(stderr, "husb: invalid auto filter spec %s\n", spec); + error_report("husb: invalid auto filter spec %s", spec); return -1; } =20 diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c index 0c5c9cde1c..76ae5d2fe5 100644 --- a/hw/watchdog/watchdog.c +++ b/hw/watchdog/watchdog.c @@ -20,6 +20,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu/option.h" #include "qemu/config-file.h" #include "qemu/queue.h" @@ -51,7 +52,7 @@ int select_watchdog(const char *p) /* -watchdog ? lists available devices and exits cleanly. */ if (is_help_option(p)) { QLIST_FOREACH(model, &watchdog_list, entry) { - fprintf(stderr, "\t%s\t%s\n", + error_report("\t%s\t%s", model->wdt_name, model->wdt_description); } return 2; @@ -67,9 +68,9 @@ int select_watchdog(const char *p) } } =20 - fprintf(stderr, "Unknown -watchdog device. Supported devices are:\n"); + error_report("Unknown -watchdog device. Supported devices are:"); QLIST_FOREACH(model, &watchdog_list, entry) { - fprintf(stderr, "\t%s\t%s\n", + error_report("\t%s\t%s", model->wdt_name, model->wdt_description); } return 1; @@ -133,7 +134,7 @@ void watchdog_perform_action(void) =20 case WDT_DEBUG: qapi_event_send_watchdog(WATCHDOG_EXPIRATION_ACTION_DEBUG, &error_= abort); - fprintf(stderr, "watchdog: timer fired\n"); + error_report("watchdog: timer fired"); break; =20 case WDT_NONE: diff --git a/hw/watchdog/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c index 49b3cd188a..f596f70a3b 100644 --- a/hw/watchdog/wdt_i6300esb.c +++ b/hw/watchdog/wdt_i6300esb.c @@ -20,7 +20,7 @@ */ =20 #include "qemu/osdep.h" - +#include "qemu/error-report.h" #include "qemu-common.h" #include "qemu/timer.h" #include "sysemu/watchdog.h" @@ -186,10 +186,12 @@ static void i6300esb_timer_expired(void *vp) /* What to do at the end of stage 1? */ switch (d->int_type) { case INT_TYPE_IRQ: - fprintf(stderr, "i6300esb_timer_expired: I would send APIC 1 I= NT 10 here if I knew how (XXX)\n"); + error_report("i6300esb_timer_expired: I would send APIC 1 INT = 10" + "here if I knew how (XXX)"); break; case INT_TYPE_SMI: - fprintf(stderr, "i6300esb_timer_expired: I would send SMI here= if I knew how (XXX)\n"); + error_report("i6300esb_timer_expired: I would send SMI here if= I" + "knew how (XXX)"); break; } =20 diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c index 632a938dcc..a7c821cfcf 100644 --- a/hw/xen/xen-common.c +++ b/hw/xen/xen-common.c @@ -47,19 +47,19 @@ static int store_dev_info(int domid, Chardev *cs, const= char *string) /* We now have everything we need to set the xenstore entry. */ xs =3D xs_open(0); if (xs =3D=3D NULL) { - fprintf(stderr, "Could not contact XenStore\n"); + error_report("Could not contact XenStore"); goto out; } =20 path =3D xs_get_domain_path(xs, domid); if (path =3D=3D NULL) { - fprintf(stderr, "xs_get_domain_path() error\n"); + error_report("xs_get_domain_path() error"); goto out; } newpath =3D realloc(path, (strlen(path) + strlen(string) + strlen("/tty") + 1)); if (newpath =3D=3D NULL) { - fprintf(stderr, "realloc error\n"); + error_report("realloc error"); goto out; } path =3D newpath; @@ -96,13 +96,13 @@ static void xenstore_record_dm_state(struct xs_handle *= xs, const char *state) char path[50]; =20 if (xs =3D=3D NULL) { - fprintf(stderr, "xenstore connection not initialized\n"); + error_report("xenstore connection not initialized"); exit(1); } =20 snprintf(path, sizeof (path), "device-model/%u/state", xen_domid); if (!xs_write(xs, XBT_NULL, path, state, strlen(state))) { - fprintf(stderr, "error recording dm state\n"); + error_report("error recording dm state"); exit(1); } } diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c index 375efa68f6..e86d380d02 100644 --- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -73,7 +73,7 @@ void xen_pt_log(const PCIDevice *d, const char *f, ...) =20 va_start(ap, f); if (d) { - fprintf(stderr, "[%02x:%02x.%d] ", pci_bus_num(d->bus), + error_report("[%02x:%02x.%d] ", pci_bus_num(d->bus), PCI_SLOT(d->devfn), PCI_FUNC(d->devfn)); } vfprintf(stderr, f, ap); @@ -87,7 +87,7 @@ static int xen_pt_pci_config_access_check(PCIDevice *d, u= int32_t addr, int len) /* check offset range */ if (addr > 0xFF) { XEN_PT_ERR(d, "Failed to access register with offset exceeding 0xF= F. " - "(addr: 0x%02x, len: %d)\n", addr, len); + "(addr: 0x%02x, len: %d)", addr, len); return -1; } =20 diff --git a/hw/xenpv/xen_domainbuild.c b/hw/xenpv/xen_domainbuild.c index 027f76fad1..f5514ffec2 100644 --- a/hw/xenpv/xen_domainbuild.c +++ b/hw/xenpv/xen_domainbuild.c @@ -25,22 +25,22 @@ static int xenstore_domain_mkdir(char *path) int i; =20 if (!xs_mkdir(xenstore, 0, path)) { - fprintf(stderr, "%s: xs_mkdir %s: failed\n", __func__, path); - return -1; + error_report("%s: xs_mkdir %s: failed", __func__, path); + return -1; } if (!xs_set_permissions(xenstore, 0, path, perms_ro, 2)) { - fprintf(stderr, "%s: xs_set_permissions failed\n", __func__); - return -1; + error_report("%s: xs_set_permissions failed", __func__); + return -1; } =20 for (i =3D 0; writable[i]; i++) { snprintf(subpath, sizeof(subpath), "%s/%s", path, writable[i]); if (!xs_mkdir(xenstore, 0, subpath)) { - fprintf(stderr, "%s: xs_mkdir %s: failed\n", __func__, subpath= ); + error_report("%s: xs_mkdir %s: failed", __func__, subpath); return -1; } if (!xs_set_permissions(xenstore, 0, subpath, perms_rw, 2)) { - fprintf(stderr, "%s: xs_set_permissions failed\n", __func__); + error_report("%s: xs_set_permissions failed", __func__); return -1; } } @@ -235,7 +235,7 @@ int xen_domain_build_pv(const char *kernel, const char = *ramdisk, memcpy(uuid, &qemu_uuid, sizeof(uuid)); rc =3D xen_domain_create(xen_xc, ssidref, uuid, flags, &xen_domid); if (rc < 0) { - fprintf(stderr, "xen: xc_domain_create() failed\n"); + error_report("xen: xc_domain_create() failed"); goto err; } qemu_log("xen: created domain %d\n", xen_domid); @@ -248,21 +248,21 @@ int xen_domain_build_pv(const char *kernel, const cha= r *ramdisk, =20 rc =3D xc_domain_max_vcpus(xen_xc, xen_domid, smp_cpus); if (rc < 0) { - fprintf(stderr, "xen: xc_domain_max_vcpus() failed\n"); + error_report("xen: xc_domain_max_vcpus() failed"); goto err; } =20 #if 0 rc =3D xc_domain_setcpuweight(xen_xc, xen_domid, 256); if (rc < 0) { - fprintf(stderr, "xen: xc_domain_setcpuweight() failed\n"); + error_report("xen: xc_domain_setcpuweight() failed"); goto err; } #endif =20 rc =3D xc_domain_setmaxmem(xen_xc, xen_domid, ram_size >> 10); if (rc < 0) { - fprintf(stderr, "xen: xc_domain_setmaxmem() failed\n"); + error_report("xen: xc_domain_setmaxmem() failed"); goto err; } =20 @@ -275,7 +275,7 @@ int xen_domain_build_pv(const char *kernel, const char = *ramdisk, xenstore_port, &xenstore_mfn, console_port, &console_mfn); if (rc < 0) { - fprintf(stderr, "xen: xc_linux_build() failed\n"); + error_report("xen: xc_linux_build() failed"); goto err; } =20 @@ -285,7 +285,7 @@ int xen_domain_build_pv(const char *kernel, const char = *ramdisk, qemu_log("xen: unpausing domain %d\n", xen_domid); rc =3D xc_domain_unpause(xen_xc, xen_domid); if (rc < 0) { - fprintf(stderr, "xen: xc_domain_unpause() failed\n"); + error_report("xen: xc_domain_unpause() failed"); goto err; } =20 diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c index 69a52a9f93..ac419e164b 100644 --- a/hw/xenpv/xen_machine_pv.c +++ b/hw/xenpv/xen_machine_pv.c @@ -36,7 +36,7 @@ static void xen_init_pv(MachineState *machine) =20 /* Initialize backend core & drivers */ if (xen_be_init() !=3D 0) { - fprintf(stderr, "%s: xen backend core setup failed\n", __func__); + error_report("%s: xen backend core setup failed", __func__); exit(1); } =20 @@ -51,18 +51,18 @@ static void xen_init_pv(MachineState *machine) const char *initrd_filename =3D machine->initrd_filename; if (xen_domain_build_pv(kernel_filename, initrd_filename, kernel_cmdline) < 0) { - fprintf(stderr, "xen pv domain creation failed\n"); + error_report("xen pv domain creation failed"); exit(1); } break; } #endif case XEN_EMULATE: - fprintf(stderr, "xen emulation not implemented (yet)\n"); + error_report("xen emulation not implemented (yet)"); exit(1); break; default: - fprintf(stderr, "unhandled xen_mode %d\n", xen_mode); + error_report("unhandled xen_mode %d", xen_mode); exit(1); break; } --=20 2.11.0 From nobody Sun Apr 28 07:58:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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 (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1506384920704643.7261573035165; Mon, 25 Sep 2017 17:15:20 -0700 (PDT) Received: from localhost ([::1]:44898 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdWp-0004BK-Lg for importer@patchew.org; Mon, 25 Sep 2017 20:15:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55601) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdUj-0002wE-L6 for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwdUf-0005cp-HR for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:01 -0400 Received: from mail-by2nam01on0084.outbound.protection.outlook.com ([104.47.34.84]:12258 helo=NAM01-BY2-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 1dwdUW-0005Vm-L2; Mon, 25 Sep 2017 20:12:49 -0400 Received: from MWHPR0201CA0026.namprd02.prod.outlook.com (10.167.160.167) by CY4PR02MB2696.namprd02.prod.outlook.com (10.175.59.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 26 Sep 2017 00:12:44 +0000 Received: from SN1NAM02FT047.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::201) by MWHPR0201CA0026.outlook.office365.com (2603:10b6:301:74::39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.9 via Frontend Transport; Tue, 26 Sep 2017 00:12:44 +0000 Received: from xsj-pvapsmtpgw02 (149.199.60.100) by SN1NAM02FT047.mail.protection.outlook.com (10.152.72.201) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14 via Frontend Transport; Tue, 26 Sep 2017 00:12:43 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:49822 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUQ-0001o4-V2; Mon, 25 Sep 2017 17:12:42 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dwdUQ-0008Uu-S0; Mon, 25 Sep 2017 17:12:42 -0700 Received: from xsj-pvapsmtp01 (mailhub.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v8Q0Cbx1007369; Mon, 25 Sep 2017 17:12:37 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUK-0008UQ-Vw; Mon, 25 Sep 2017 17:12:37 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=WUOGvSpGM57v1mKZwP7G9BsyJeSxN6ZG7D+t6COUCvg=; b=jOVqA+XaPKlc+qMSymh95+y2hNY3ZEcgfJ5CNF7Ogg0dkI+3aUDCjKcp006hG0jG6K1xfkJ/OYMB067v8ZL1DIilEyjQsv3LBs+DnRTAMkBEQ81okwhu3dkVnuIf0+2ipm1qy6M4alKnPgbvjQCEGZa7Fd45dIpLI5gwb3KupgY= Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=bestguesspass action=none header.from=xilinx.com; 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; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; From: Alistair Francis To: Date: Mon, 25 Sep 2017 17:08:55 -0700 Message-ID: <32420d254357de5d661b1af400b27924cbd71282.1506384414.git.alistair.francis@xilinx.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23350.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(376002)(346002)(2980300002)(438002)(199003)(189002)(81156014)(9786002)(8936002)(36756003)(7416002)(50466002)(33646002)(76176999)(54906003)(2906002)(50986999)(16586007)(47776003)(316002)(106466001)(50226002)(48376002)(63266004)(36386004)(2351001)(478600001)(305945005)(2950100002)(81166006)(8676002)(6916009)(39060400002)(356003)(5660300001)(53946003)(77096006)(118296001)(5003940100001)(6666003)(4326008)(189998001)(107986001)(5001870100001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR02MB2696; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT047; 1:V0OPTeT6qgUsz26KESEF+rta2KWbbAvRjgIOgz26O2gZIafm75DHb9vwM15+phtElVZSE48BXI8OcyqKwG4fOeF/mzNiEITriX++TOOs2I4fXggl8RkfhFBhpcdq4DRe MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5788c450-3d74-4279-d667-08d504734f61 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(8251501002)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:CY4PR02MB2696; X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2696; 3:UNBa3oaYNxDSgzdh9epgoGtoSRtp7lTGZdykAHb0aVE8vK2XyMLeDacYDCWKtYcQne71jWim3oaT9e5oKIR8L5GAtUKyg6KPpMcmUjJTM522dm1ocX53nabiJw0+AohcRLx2PVQnD0uxVX9pQFhAkNEONMLSd/aNAA9bA++s2BxVIL5sySqKSYQ4CdUy/vAnUjz54UALDNSQ06PAKSPSjnbP+lqZk+Q06P0L8juiUEDQk+M4deEAmt1LhoS74mYD8IgTMpj2GMMcZUVP3N7Zebn62dg0eWarFD7CUQeuzhniWp4S5DHkr23g3AsuYdmx7zoQGC2FLP2PknRS7MlJEAOrZKTLmAYnlM/NVGS/j6c=; 25:c+KuG6NuhdSMrGIXZPFRoluDTLSgfw0VTmgx7tcjp5ahSMpubHmsLiuui42Y4gaLVyEelCGZtULTtaMwsyLvKInA1UOXxhqBTJg/NlZlE6t9SR78TjccAh/eHIFwlp2igDe/fKk3u0n+LUkb3PPb4fvlckR1cEBkX7JmIMh+R6oyA4iaftu+DSDKx8ZY5sXigSc7GwG50/u/Fr3xkXmFBvagE2WjTUhY/81HYDwOI3zgPpB/zyxBbjKUruAHt/wkOTo9GaZC/4JoNB4OOOVG8ZNc1vmi1dQaKDNsCh6ems/E/EurqkBGwGqbFsPjkbbXFYq2LHKtDrfp9BeztoIoEw== X-MS-TrafficTypeDiagnostic: CY4PR02MB2696: X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2696; 31:hRagjKPiWD65c7/KQLQ10aUEmwzZC+eKfNCyzB/Jo9OgOcUt6wxmRpVD66wXcgDdizglSxcNk311XznUBXiaT3C1aXxwVzZrOyxDZuOD37hTsjfvRekT2wVLaDZ0XkMLyb2Zs/+w0ZGsz3Z/J/1J+zVv/yylbsyhL4Aghx+mA936WGo08v+RtvIh44wl4dUQWlvz2kSmLObmPu5SJl8zhhv7aFm1vQXchJ3cfXCQfmg=; 20:pVb/o0rqVv7CZgCx19TtQHlXX2ARmYair+XGtBnJSPZplTm76kxUvBGPOTY5O6R0Y5oMVhCUBU/OXzQdLvnR6ZZWkkmMlorMxRrsSCsD65Bn6mIDvn5QCUJeZH4k3khyjunzwbLcx6ZeJ98RpB3DixqPr1iJFAE5PuNtsGIflr3Ef4QySZz3j3sSHXQ4FcKCLcS6RvVSGzzZqVTfMI934B8UAoXAXq69SrI26Maq34jGPzlBHgMPmeKAC9u2OHcC3skAgPEQxRpvclnYlt1ZH7rsBq4nYtZQn48uFv0+D769xrwamdQMqf7GF77whbbP/zrvyZ0vWUMzA5fap3ZqByLbKJw0A5X5WQaV2Q8ki++a9mZfXYTq6GW2TsHr1Oxq5hFnKom6bOeQxH6ts6U2yNhndtaN9Y8aYansX7yoCJwGO2j7tVzNPG6H7UJJTtGa0VmrUq6/E1lYuFVFOuC2NO20q9UsOCUPuefSs1Cb36/5bMY6FRzquAI0PkyX/LlM X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(192813158149592); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93004095)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR02MB2696; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR02MB2696; X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2696; 4:6plnwkuCJ3Kioe6BS6vtp9bmFZ8Fbd0FM6RXzs+QvLePz/1BJ4KIfwH2PcNFTq6JbJDu+MItcWFgNGdwlDo2SuL4aDrQqmZn1eg0fHwg3jHEr6WAxcfqvYftAcUtpo0KTtlz2g6KGnX85umKb0GVNB3J3NXaCtIqmd1ZFn7F57wnDMJUZDKMby5ZYCz7WADZW5XpE+AKW/RPTxed6r1Vy2csYIivpzT2G9NkGSnC4nuIuhS2s7jMHJ2aPuac8aar5UJEkNOyBIKgvyovx/UnqYWHhZDNtslhUk84v2R3FyUWSrZpgvIjLUFTu6aqxVYiKpTi+QXcE0Dpcu8JVh0QDQ== X-Forefront-PRVS: 0442E569BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR02MB2696; 23:JEu0FFZ7mNBzxqHNpmZjvzUgCUPr/40VPz5TnDgSy?= =?us-ascii?Q?IvkBLjykWa+uiV0UdWG8+akTUmksbPjzMtroaqBtWjA0vAKwLzmT3AS0yNi/?= =?us-ascii?Q?vfigOQQdLkyuS98+D9INm3KY4PF1WfMTIZpvdl0fpHXlrj3n2Ni+ndqx+O5B?= =?us-ascii?Q?IKvuTO5qH/mcOwKjI6OEYWsT8QW3nLPMGLhGTFbWUo+RPrO7Z5jFYDkvqCVw?= =?us-ascii?Q?NxbTVXhYfRhqTgFvWj3rI89eYhGPQJYOpW+5Pj7ndR9eJN9DoAyU8OPtrRoU?= =?us-ascii?Q?uwk6yhMZGhXGYDRmQGeLZM9cbtbzsnI5tbs0RTVORF5jUTHG+19ibuOqQtqV?= =?us-ascii?Q?q5GxcD6berHhe5wsFgVzJTFA0UpartQOhfvuW2knwyQnvjIRqxU68/XUZrRg?= =?us-ascii?Q?RC/mEOvUGSH8YMj0+8YUSMM6XfP944LOCV2JOIGIwjqaIGsJCwknqwMwZ9Yp?= =?us-ascii?Q?R84Zlq7GXQzZOS8zj8kzXiLlOYwKtX+3gnNLLgYFrkd+/EqmGHNgUDVS53FT?= =?us-ascii?Q?rFottvS7cAAfv42o3cUoXGYuq519s1kg94TugNtM/nG3MPMSCDuP6QpowAcQ?= =?us-ascii?Q?sxJce6wGAilHUUYHN+99c8mGGOSHoI4mbm3IaMe4THvwj2dSK3CVIQKNogow?= =?us-ascii?Q?ICcG1X/DCR8JBKR4zHICaHij6fvHBdyK5QtjJGSUPycM6aXS5Bb3bnWd+lmE?= =?us-ascii?Q?S7Nw57o2WstX/fjCuqYqFeRBUk4hGnGrm3wS6s3kF0qT5/QeYsAXIEyJLs/v?= =?us-ascii?Q?UBygsIMoq9oR6LWKhjVyTjqLEe9BbejydC8IFLmx0YWGx2gsmgwvSkZreiBt?= =?us-ascii?Q?Ny1bfArLzjMYOQN3x11nS+MIdtuo6Q9kEBN2kd97gXXPklZike8TVLUZ0Ael?= =?us-ascii?Q?a4Ibk5Y0hZDS1TzvjEjHjkUqhHpl+E5QNn+F13W9caoGhFI2UM6CTiz2FjLZ?= =?us-ascii?Q?TurpzQmJhSQR9o185ZyT8bnwf1gV9FBbAZAboWyGqXhMNzczlRxKXD5cxIX2?= =?us-ascii?Q?SOtb3wunOY4TrTxkQpECHfXCcalKVtT6wfORG1HA6DPvwbRvp2RhnZq2z0mM?= =?us-ascii?Q?6KTrY7M0+ETcQbg4fwFZ4JyfdpHC27MpijGrYf4wYoSlExHjpvdHLWKcZbtb?= =?us-ascii?Q?99CwaOsIPo=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2696; 6:jTYnkjMTZBM1I4oZ5BX3aPZV0bXuDH/VV9HIuGPZU+W1iw+6PBo8qAw+SwBGqRoOoFOCdopL8P+ok3XfmZYltRC4m4ZKIYN1vkzC/1KeSvafoyPBkQokvpxIY0j90VZ1xJoFUdB6/J3gEmezFi+5Qk/oxy80rWERGGR6jY6Eja10M8INMlsNg+gPtoLs9pTRzj0/Hoj70WoEtvbrIo63fmLy0HrteS2ZrvhAN5WN55l8uO68BoKLw3C9DB35SCsjPJNuHhN5MiY6v29SU/raN7iVZyJtphF3SsKnbCGNlzveEhiyKZWTg7AA2davTMMh3oVITRPhklll3Lyfv+u8Rw==; 5:knirlL73j+EKBIe5sfcTnoijCkjfgf8vT4X08adqX8lZ6lpKrno3qElFW+Ixu3FjuucE9d7D7YwUBtmQBVGQCndAzcHr938Qp/tRXIXUSudjJlcuWj/njOC1nqCScft3chKHT9Brt8dzNE3AKWFJlA==; 24:4L58UXbb5BF6cGqB28Ej/kkYA3ObMP3Luhi4q361hMbO56xAbqFSiJEcL36LYWS4ux2st3dC/uStcBlHS+hxZwGbLQUkhKQoqHghPKuk1GI=; 7:W45cE9ReU5oMz4selL/ao3yw10FFishAJ/SewKqA71L2/UIQGWowdO4xpzZzptqYnnAj5ReIL65/EuPqdwBwQ4POYLmd27eWz63EXXJBQU1Q78AYXIa3fXHC8A7hhGH+eMDRMhH0dghlF7QBfyc9U2E8z5UiDVt5T1RiOO5CbPoh3RMVdwe6DZdX8reZmJej/Txma/o33tf4uFcBlZIyTKhQ9poKQNwJDq8wWWZDDsI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 00:12:43.7355 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR02MB2696 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.34.84 Subject: [Qemu-devel] [PATCH v1 4/8] block: Replace fprintf(stderr, "*\n" with error_report() 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: Alberto Garcia , qemu-block@nongnu.org, "Richard W.M. Jones" , Stefan Weil , Jeff Cody , armbru@redhat.com, alistair.francis@xilinx.com, Stefan Hajnoczi , alistair23@gmail.com, "Denis V. Lunev" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace a large number of the fprintf(stderr, "*\n" calls with error_report(). The functions were renamed with these commands and then compiler issues where manually fixed. find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_= report("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_re= port("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report= ("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("= \1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1= "\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\= 2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2)= ;|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|= Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig= }' \ {} + find ./* -type f -exec sed -i \ 'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}'= \ {} + find ./* -type f -exec sed -i \ 'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \ {} + Signed-off-by: Alistair Francis Cc: Stefan Weil Cc: Stefan Hajnoczi Cc: "Denis V. Lunev" Cc: Alberto Garcia Cc: "Richard W.M. Jones" Cc: Jeff Cody Cc: qemu-block@nongnu.org --- block/file-posix.c | 6 +-- block/file-win32.c | 3 +- block/linux-aio.c | 5 ++- block/parallels.c | 7 ++-- block/qcow2-cluster.c | 2 +- block/qcow2-refcount.c | 95 ++++++++++++++++++++++++----------------------= -- block/qcow2.c | 8 ++-- block/quorum.c | 5 ++- block/ssh.c | 4 +- block/vdi.c | 14 ++++--- block/vpc.c | 5 ++- block/vvfat.c | 99 ++++++++++++++++++++++++++++------------------= ---- 12 files changed, 136 insertions(+), 117 deletions(-) diff --git a/block/file-posix.c b/block/file-posix.c index ab12a2b591..2ea7a689cd 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -198,7 +198,7 @@ static int raw_normalize_devicepath(const char **filena= me) fname =3D *filename; dp =3D strrchr(fname, '/'); if (lstat(fname, &sb) < 0) { - fprintf(stderr, "%s: stat failed: %s\n", + error_report("%s: stat failed: %s", fname, strerror(errno)); return -errno; } @@ -215,7 +215,7 @@ static int raw_normalize_devicepath(const char **filena= me) } fprintf(stderr, "%s is a block device", fname); *filename =3D namebuf; - fprintf(stderr, ", using %s\n", *filename); + error_report(", using %s", *filename); =20 return 0; } @@ -1499,7 +1499,7 @@ static int aio_worker(void *arg) ret =3D handle_aiocb_write_zeroes(aiocb); break; default: - fprintf(stderr, "invalid aio request (0x%x)\n", aiocb->aio_type); + error_report("invalid aio request (0x%x)", aiocb->aio_type); ret =3D -EINVAL; break; } diff --git a/block/file-win32.c b/block/file-win32.c index 9e02214a69..a2ed9d2e55 100644 --- a/block/file-win32.c +++ b/block/file-win32.c @@ -22,6 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu/cutils.h" #include "block/block_int.h" @@ -131,7 +132,7 @@ static int aio_worker(void *arg) } break; default: - fprintf(stderr, "invalid aio request (0x%x)\n", aiocb->aio_type); + error_report("invalid aio request (0x%x)", aiocb->aio_type); ret =3D -EINVAL; break; } diff --git a/block/linux-aio.c b/block/linux-aio.c index 88b8d55ec7..435c2ae47e 100644 --- a/block/linux-aio.c +++ b/block/linux-aio.c @@ -8,6 +8,7 @@ * See the COPYING file in the top-level directory. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "block/aio.h" #include "qemu/queue.h" @@ -389,7 +390,7 @@ static int laio_do_submit(int fd, struct qemu_laiocb *l= aiocb, off_t offset, break; /* Currently Linux kernel does not support other operations */ default: - fprintf(stderr, "%s: invalid AIO request type 0x%x.\n", + error_report("%s: invalid AIO request type 0x%x.", __func__, type); return -EIO; } @@ -499,7 +500,7 @@ void laio_cleanup(LinuxAioState *s) event_notifier_cleanup(&s->e); =20 if (io_destroy(s->ctx) !=3D 0) { - fprintf(stderr, "%s: destroy AIO context %p failed\n", + error_report("%s: destroy AIO context %p failed", __func__, &s->ctx); } g_free(s); diff --git a/block/parallels.c b/block/parallels.c index 2b6c6e5709..30056f943a 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -28,6 +28,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "block/block_int.h" @@ -397,7 +398,7 @@ static int parallels_check(BlockDriverState *bs, BdrvCh= eckResult *res, } =20 if (s->header_unclean) { - fprintf(stderr, "%s image was not closed correctly\n", + error_report("%s image was not closed correctly", fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR"); res->corruptions++; if (fix & BDRV_FIX_ERRORS) { @@ -421,7 +422,7 @@ static int parallels_check(BlockDriverState *bs, BdrvCh= eckResult *res, =20 /* cluster outside the image */ if (off > size) { - fprintf(stderr, "%s cluster %u is outside image\n", + error_report("%s cluster %u is outside image", fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); res->corruptions++; if (fix & BDRV_FIX_ERRORS) { @@ -456,7 +457,7 @@ static int parallels_check(BlockDriverState *bs, BdrvCh= eckResult *res, if (size > res->image_end_offset) { int64_t count; count =3D DIV_ROUND_UP(size - res->image_end_offset, cluster_size); - fprintf(stderr, "%s space leaked at the end of the image %" PRId64= "\n", + error_report("%s space leaked at the end of the image %" PRId64 "", fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", size - res->image_end_offset); res->leaks +=3D count; diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c index 0d4824993c..894f57b4f9 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c @@ -71,7 +71,7 @@ int qcow2_grow_l1_table(BlockDriverState *bs, uint64_t mi= n_size, } =20 #ifdef DEBUG_ALLOC2 - fprintf(stderr, "grow l1_table from %d to %" PRId64 "\n", + error_report("grow l1_table from %d to %" PRId64 "", s->l1_size, new_l1_size); #endif =20 diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c index 168fc32e7b..2a8d1210c8 100644 --- a/block/qcow2-refcount.c +++ b/block/qcow2-refcount.c @@ -23,6 +23,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "block/block_int.h" @@ -367,8 +368,8 @@ static int alloc_refcount_block(BlockDriverState *bs, } =20 #ifdef DEBUG_ALLOC2 - fprintf(stderr, "qcow2: Allocate refcount block %d for %" PRIx64 - " at %" PRIx64 "\n", + error_report("qcow2: Allocate refcount block %d for %" PRIx64 + " at %" PRIx64 "", refcount_table_index, cluster_index << s->cluster_bits, new_block); #endif =20 @@ -800,8 +801,8 @@ static int QEMU_WARN_UNUSED_RESULT update_refcount(Bloc= kDriverState *bs, int ret; =20 #ifdef DEBUG_ALLOC2 - fprintf(stderr, "update_refcount: offset=3D%" PRId64 " size=3D%" PRId64 - " addend=3D%s%" PRIu64 "\n", offset, length, decrease ? "-" : = "", + error_report("update_refcount: offset=3D%" PRId64 " size=3D%" PRId64 + " addend=3D%s%" PRIu64 "", offset, length, decrease ? "-" : "", addend); #endif if (length < 0) { @@ -957,7 +958,7 @@ retry: } =20 #ifdef DEBUG_ALLOC2 - fprintf(stderr, "alloc_clusters: size=3D%" PRId64 " -> %" PRId64 "\n", + error_report("alloc_clusters: size=3D%" PRId64 " -> %" PRId64 "", size, (s->free_cluster_index - nb_clusters) << s->cluster_bits); #endif @@ -1097,7 +1098,7 @@ void qcow2_free_clusters(BlockDriverState *bs, BLKDBG_EVENT(bs->file, BLKDBG_CLUSTER_FREE); ret =3D update_refcount(bs, offset, size, 1, true, type); if (ret < 0) { - fprintf(stderr, "qcow2_free_clusters failed: %s\n", strerror(-ret)= ); + error_report("qcow2_free_clusters failed: %s", strerror(-ret)); /* TODO Remember the clusters to free them later and avoid leaking= */ } } @@ -1447,11 +1448,11 @@ int qcow2_inc_refcounts_imrt(BlockDriverState *bs, = BdrvCheckResult *res, =20 refcount =3D s->get_refcount(*refcount_table, k); if (refcount =3D=3D s->refcount_max) { - fprintf(stderr, "ERROR: overflow cluster offset=3D0x%" PRIx64 - "\n", cluster_offset); - fprintf(stderr, "Use qemu-img amend to increase the refcount e= ntry " + error_report("ERROR: overflow cluster offset=3D0x%" PRIx64 + "", cluster_offset); + error_report("Use qemu-img amend to increase the refcount entr= y " "width or qemu-img convert to create a clean copy if t= he " - "image cannot be opened for writing\n"); + "image cannot be opened for writing"); res->corruptions++; continue; } @@ -1490,7 +1491,7 @@ static int check_refcounts_l2(BlockDriverState *bs, B= drvCheckResult *res, =20 ret =3D bdrv_pread(bs->file, l2_offset, l2_table, l2_size); if (ret < 0) { - fprintf(stderr, "ERROR: I/O error in check_refcounts_l2\n"); + error_report("ERROR: I/O error in check_refcounts_l2"); res->check_errors++; goto fail; } @@ -1503,9 +1504,9 @@ static int check_refcounts_l2(BlockDriverState *bs, B= drvCheckResult *res, case QCOW2_CLUSTER_COMPRESSED: /* Compressed clusters don't have QCOW_OFLAG_COPIED */ if (l2_entry & QCOW_OFLAG_COPIED) { - fprintf(stderr, "ERROR: cluster %" PRId64 ": " + error_report("ERROR: cluster %" PRId64 ": " "copied flag must never be set for compressed " - "clusters\n", l2_entry >> s->cluster_bits); + "clusters", l2_entry >> s->cluster_bits); l2_entry &=3D ~QCOW_OFLAG_COPIED; res->corruptions++; } @@ -1558,8 +1559,8 @@ static int check_refcounts_l2(BlockDriverState *bs, B= drvCheckResult *res, =20 /* Correct offsets are cluster aligned */ if (offset_into_cluster(s, offset)) { - fprintf(stderr, "ERROR offset=3D%" PRIx64 ": Cluster is no= t " - "properly aligned; L2 entry corrupted.\n", offset); + error_report("ERROR offset=3D%" PRIx64 ": Cluster is not " + "properly aligned; L2 entry corrupted.", offset); res->corruptions++; } break; @@ -1620,7 +1621,7 @@ static int check_refcounts_l1(BlockDriverState *bs, } ret =3D bdrv_pread(bs->file, l1_table_offset, l1_table, l1_size2); if (ret < 0) { - fprintf(stderr, "ERROR: I/O error in check_refcounts_l1\n"); + error_report("ERROR: I/O error in check_refcounts_l1"); res->check_errors++; goto fail; } @@ -1643,8 +1644,8 @@ static int check_refcounts_l1(BlockDriverState *bs, =20 /* L2 tables are cluster aligned */ if (offset_into_cluster(s, l2_offset)) { - fprintf(stderr, "ERROR l2_offset=3D%" PRIx64 ": Table is n= ot " - "cluster aligned; L1 entry corrupted\n", l2_offset); + error_report("ERROR l2_offset=3D%" PRIx64 ": Table is not " + "cluster aligned; L1 entry corrupted", l2_offset); res->corruptions++; } =20 @@ -1697,8 +1698,8 @@ static int check_oflag_copied(BlockDriverState *bs, B= drvCheckResult *res, continue; } if ((refcount =3D=3D 1) !=3D ((l1_entry & QCOW_OFLAG_COPIED) !=3D = 0)) { - fprintf(stderr, "%s OFLAG_COPIED L2 cluster: l1_index=3D%d " - "l1_entry=3D%" PRIx64 " refcount=3D%" PRIu64 "\n", + error_report("%s OFLAG_COPIED L2 cluster: l1_index=3D%d " + "l1_entry=3D%" PRIx64 " refcount=3D%" PRIu64 "", fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i, l1_entry, refcount); @@ -1720,7 +1721,7 @@ static int check_oflag_copied(BlockDriverState *bs, B= drvCheckResult *res, ret =3D bdrv_pread(bs->file, l2_offset, l2_table, s->l2_size * sizeof(uint64_t)); if (ret < 0) { - fprintf(stderr, "ERROR: Could not read L2 table: %s\n", + error_report("ERROR: Could not read L2 table: %s", strerror(-ret)); res->check_errors++; goto fail; @@ -1741,8 +1742,8 @@ static int check_oflag_copied(BlockDriverState *bs, B= drvCheckResult *res, continue; } if ((refcount =3D=3D 1) !=3D ((l2_entry & QCOW_OFLAG_COPIE= D) !=3D 0)) { - fprintf(stderr, "%s OFLAG_COPIED data cluster: " - "l2_entry=3D%" PRIx64 " refcount=3D%" PRIu64 "= \n", + error_report("%s OFLAG_COPIED data cluster: " + "l2_entry=3D%" PRIx64 " refcount=3D%" PRIu64 "= ", fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", l2_entry, refcount); @@ -1763,8 +1764,8 @@ static int check_oflag_copied(BlockDriverState *bs, B= drvCheckResult *res, ret =3D qcow2_pre_write_overlap_check(bs, QCOW2_OL_ACTIVE_L2, l2_offset, s->cluster_size= ); if (ret < 0) { - fprintf(stderr, "ERROR: Could not write L2 table; metadata= " - "overlap check failed: %s\n", strerror(-ret)); + error_report("ERROR: Could not write L2 table; metadata " + "overlap check failed: %s", strerror(-ret)); res->check_errors++; goto fail; } @@ -1772,7 +1773,7 @@ static int check_oflag_copied(BlockDriverState *bs, B= drvCheckResult *res, ret =3D bdrv_pwrite(bs->file, l2_offset, l2_table, s->cluster_size); if (ret < 0) { - fprintf(stderr, "ERROR: Could not write L2 table: %s\n", + error_report("ERROR: Could not write L2 table: %s", strerror(-ret)); res->check_errors++; goto fail; @@ -1806,15 +1807,15 @@ static int check_refblocks(BlockDriverState *bs, Bd= rvCheckResult *res, =20 /* Refcount blocks are cluster aligned */ if (offset_into_cluster(s, offset)) { - fprintf(stderr, "ERROR refcount block %" PRId64 " is not " - "cluster aligned; refcount table entry corrupted\n", i); + error_report("ERROR refcount block %" PRId64 " is not " + "cluster aligned; refcount table entry corrupted", i); res->corruptions++; *rebuild =3D true; continue; } =20 if (cluster >=3D *nb_clusters) { - fprintf(stderr, "%s refcount block %" PRId64 " is outside imag= e\n", + error_report("%s refcount block %" PRId64 " is outside image", fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); =20 if (fix & BDRV_FIX_ERRORS) { @@ -1868,7 +1869,7 @@ static int check_refblocks(BlockDriverState *bs, Bdrv= CheckResult *res, resize_fail: res->corruptions++; *rebuild =3D true; - fprintf(stderr, "ERROR could not resize image: %s\n", + error_report("ERROR could not resize image: %s", strerror(-ret)); } else { res->corruptions++; @@ -1883,8 +1884,8 @@ resize_fail: return ret; } if (s->get_refcount(*refcount_table, cluster) !=3D 1) { - fprintf(stderr, "ERROR refcount block %" PRId64 - " refcount=3D%" PRIu64 "\n", i, + error_report("ERROR refcount block %" PRId64 + " refcount=3D%" PRIu64 "", i, s->get_refcount(*refcount_table, cluster)); res->corruptions++; *rebuild =3D true; @@ -1990,7 +1991,7 @@ static void compare_refcounts(BlockDriverState *bs, B= drvCheckResult *res, for (i =3D 0, *highest_cluster =3D 0; i < nb_clusters; i++) { ret =3D qcow2_get_refcount(bs, i, &refcount1); if (ret < 0) { - fprintf(stderr, "Can't get refcount for cluster %" PRId64 ": %= s\n", + error_report("Can't get refcount for cluster %" PRId64 ": %s", i, strerror(-ret)); res->check_errors++; continue; @@ -2013,8 +2014,8 @@ static void compare_refcounts(BlockDriverState *bs, B= drvCheckResult *res, num_fixed =3D &res->corruptions_fixed; } =20 - fprintf(stderr, "%s cluster %" PRId64 " refcount=3D%" PRIu64 - " reference=3D%" PRIu64 "\n", + error_report("%s cluster %" PRId64 " refcount=3D%" PRIu64 + " reference=3D%" PRIu64 "", num_fixed !=3D NULL ? "Repairing" : refcount1 < refcount2 ? "ERROR" : "Leaked", @@ -2159,7 +2160,7 @@ write_refblocks: refblock_offset =3D alloc_clusters_imrt(bs, 1, refcount_table, nb_clusters, &first_free_clu= ster); if (refblock_offset < 0) { - fprintf(stderr, "ERROR allocating refblock: %s\n", + error_report("ERROR allocating refblock: %s", strerror(-refblock_offset)); res->check_errors++; ret =3D refblock_offset; @@ -2205,7 +2206,7 @@ write_refblocks: refcount_table, nb_clust= ers, &first_free_cluster); if (reftable_offset < 0) { - fprintf(stderr, "ERROR allocating reftable: %s\n", + error_report("ERROR allocating reftable: %s", strerror(-reftable_offset)); res->check_errors++; ret =3D reftable_offset; @@ -2216,7 +2217,7 @@ write_refblocks: ret =3D qcow2_pre_write_overlap_check(bs, 0, refblock_offset, s->cluster_size); if (ret < 0) { - fprintf(stderr, "ERROR writing refblock: %s\n", strerror(-ret)= ); + error_report("ERROR writing refblock: %s", strerror(-ret)); goto fail; } =20 @@ -2228,7 +2229,7 @@ write_refblocks: ret =3D bdrv_write(bs->file, refblock_offset / BDRV_SECTOR_SIZE, on_disk_refblock, s->cluster_sectors); if (ret < 0) { - fprintf(stderr, "ERROR writing refblock: %s\n", strerror(-ret)= ); + error_report("ERROR writing refblock: %s", strerror(-ret)); goto fail; } =20 @@ -2250,7 +2251,7 @@ write_refblocks: refcount_table, nb_clusters, &first_free_cluster); if (reftable_offset < 0) { - fprintf(stderr, "ERROR allocating reftable: %s\n", + error_report("ERROR allocating reftable: %s", strerror(-reftable_offset)); res->check_errors++; ret =3D reftable_offset; @@ -2267,7 +2268,7 @@ write_refblocks: ret =3D qcow2_pre_write_overlap_check(bs, 0, reftable_offset, reftable_size * sizeof(uint64_t)); if (ret < 0) { - fprintf(stderr, "ERROR writing reftable: %s\n", strerror(-ret)); + error_report("ERROR writing reftable: %s", strerror(-ret)); goto fail; } =20 @@ -2275,7 +2276,7 @@ write_refblocks: ret =3D bdrv_pwrite(bs->file, reftable_offset, on_disk_reftable, reftable_size * sizeof(uint64_t)); if (ret < 0) { - fprintf(stderr, "ERROR writing reftable: %s\n", strerror(-ret)); + error_report("ERROR writing reftable: %s", strerror(-ret)); goto fail; } =20 @@ -2288,7 +2289,7 @@ write_refblocks: &reftable_offset_and_clusters, sizeof(reftable_offset_and_clusters)); if (ret < 0) { - fprintf(stderr, "ERROR setting reftable: %s\n", strerror(-ret)); + error_report("ERROR setting reftable: %s", strerror(-ret)); goto fail; } =20 @@ -2355,7 +2356,7 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvC= heckResult *res, BdrvCheckResult old_res =3D *res; int fresh_leaks =3D 0; =20 - fprintf(stderr, "Rebuilding refcount structure\n"); + error_report("Rebuilding refcount structure"); ret =3D rebuild_refcount_structure(bs, res, &refcount_table, &nb_clusters); if (ret < 0) { @@ -2385,8 +2386,8 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvC= heckResult *res, compare_refcounts(bs, res, BDRV_FIX_LEAKS, &rebuild, &highest_cluster, refcount_table, nb_cluster= s); if (rebuild) { - fprintf(stderr, "ERROR rebuilt refcount structure is still= " - "broken\n"); + error_report("ERROR rebuilt refcount structure is still " + "broken"); } =20 /* Any leaks accounted for here were introduced by @@ -2405,7 +2406,7 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvC= heckResult *res, res->leaks +=3D fresh_leaks; } else if (fix) { if (rebuild) { - fprintf(stderr, "ERROR need to rebuild refcount structures\n"); + error_report("ERROR need to rebuild refcount structures"); res->check_errors++; ret =3D -EIO; goto fail; diff --git a/block/qcow2.c b/block/qcow2.c index d33fb3ecdd..06a131d287 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -4162,11 +4162,11 @@ void qcow2_signal_corruption(BlockDriverState *bs, = bool fatal, int64_t offset, va_end(ap); =20 if (fatal) { - fprintf(stderr, "qcow2: Marking image as corrupt: %s; further " - "corruption events will be suppressed\n", message); + error_report("qcow2: Marking image as corrupt: %s; further " + "corruption events will be suppressed", message); } else { - fprintf(stderr, "qcow2: Image is corrupt: %s; further non-fatal " - "corruption events will be suppressed\n", message); + error_report("qcow2: Image is corrupt: %s; further non-fatal " + "corruption events will be suppressed", message); } =20 node_name =3D bdrv_get_node_name(bs); diff --git a/block/quorum.c b/block/quorum.c index 272f9a5b77..a55f1fe6a0 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -14,6 +14,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu/cutils.h" #include "block/block_int.h" #include "qapi/qmp/qbool.h" @@ -927,8 +928,8 @@ static int quorum_open(BlockDriverState *bs, QDict *opt= ions, int flags, s->num_children =3D=3D 2 && s->threshold =3D=3D 2) { s->is_blkverify =3D true; } else if (qemu_opt_get_bool(opts, QUORUM_OPT_BLKVERIFY, false)) { - fprintf(stderr, "blkverify mode is set by setting blkverify=3D= on " - "and using two files with vote_threshold=3D2\n"); + error_report("blkverify mode is set by setting blkverify=3Don " + "and using two files with vote_threshold=3D2"); } =20 s->rewrite_corrupted =3D qemu_opt_get_bool(opts, QUORUM_OPT_REWRIT= E, diff --git a/block/ssh.c b/block/ssh.c index b049a16eb9..903b797a55 100644 --- a/block/ssh.c +++ b/block/ssh.c @@ -53,7 +53,7 @@ #define DPRINTF(fmt, ...) \ do { \ if (DEBUG_SSH) { \ - fprintf(stderr, "ssh: %-15s " fmt "\n", \ + error_report("ssh: %-15s " fmt "", \ __func__, ##__VA_ARGS__); \ } \ } while (0) @@ -1217,7 +1217,7 @@ static void bdrv_ssh_init(void) =20 r =3D libssh2_init(0); if (r !=3D 0) { - fprintf(stderr, "libssh2 initialization failed, %d\n", r); + error_report("libssh2 initialization failed, %d", r); exit(EXIT_FAILURE); } =20 diff --git a/block/vdi.c b/block/vdi.c index 8da5dfc897..0d9440d36e 100644 --- a/block/vdi.c +++ b/block/vdi.c @@ -50,6 +50,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "block/block_int.h" #include "sysemu/block-backend.h" @@ -289,20 +290,21 @@ static int vdi_check(BlockDriverState *bs, BdrvCheckR= esult *res, if (!VDI_IS_ALLOCATED(bmap[bmap_entry])) { bmap[bmap_entry] =3D bmap_entry; } else { - fprintf(stderr, "ERROR: block index %" PRIu32 - " also used by %" PRIu32 "\n", bmap[bmap_entry= ], bmap_entry); + error_report("block index %" PRIu32 + " also used by %" PRIu32 "", + bmap[bmap_entry], bmap_entry); res->corruptions++; } } else { - fprintf(stderr, "ERROR: block index %" PRIu32 - " too large, is %" PRIu32 "\n", block, bmap_entry); + error_report("block index %" PRIu32 + " too large, is %" PRIu32 "", block, bmap_ent= ry); res->corruptions++; } } } if (blocks_allocated !=3D s->header.blocks_allocated) { - fprintf(stderr, "ERROR: allocated blocks mismatch, is %" PRIu32 - ", should be %" PRIu32 "\n", + error_report("allocated blocks mismatch, is %" PRIu32 + ", should be %" PRIu32 "", blocks_allocated, s->header.blocks_allocated); res->corruptions++; } diff --git a/block/vpc.c b/block/vpc.c index 1576d7b595..f033bde29e 100644 --- a/block/vpc.c +++ b/block/vpc.c @@ -23,6 +23,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "block/block_int.h" @@ -278,8 +279,8 @@ static int vpc_open(BlockDriverState *bs, QDict *option= s, int flags, checksum =3D be32_to_cpu(footer->checksum); footer->checksum =3D 0; if (vpc_checksum(s->footer_buf, HEADER_SIZE) !=3D checksum) - fprintf(stderr, "block-vpc: The header checksum of '%s' is " - "incorrect.\n", bs->filename); + error_report("block-vpc: The header checksum of '%s' is " + "incorrect.", bs->filename); =20 /* Write 'checksum' back to footer, or else will leave it with zero. */ footer->checksum =3D cpu_to_be32(checksum); diff --git a/block/vvfat.c b/block/vvfat.c index cbabb36f62..e339e1f97e 100644 --- a/block/vvfat.c +++ b/block/vvfat.c @@ -59,7 +59,7 @@ static void checkpoint(void); =20 #ifdef __MINGW32__ void nonono(const char* file, int line, const char* msg) { - fprintf(stderr, "Nonono! %s:%d %s\n", file, line, msg); + error_report("Nonono! %s:%d %s", file, line, msg); exit(-5); } #undef assert @@ -446,7 +446,7 @@ static direntry_t *create_long_filename(BDRVVVFATState = *s, const char *filename) =20 gunichar2 *longname =3D g_utf8_to_utf16(filename, -1, NULL, &length, N= ULL); if (!longname) { - fprintf(stderr, "vvfat: invalid UTF-8 name: %s\n", filename); + error_report("vvfat: invalid UTF-8 name: %s", filename); return NULL; } =20 @@ -803,7 +803,7 @@ static int read_directory(BDRVVVFATState* s, int mappin= g_index) int is_dotdot=3D!strcmp(entry->d_name,".."); =20 if (first_cluster =3D=3D 0 && s->directory.next >=3D s->root_entri= es - 1) { - fprintf(stderr, "Too many entries in root directory\n"); + error_report("Too many entries in root directory"); closedir(dir); return -2; } @@ -840,7 +840,7 @@ static int read_directory(BDRVVVFATState* s, int mappin= g_index) else direntry->begin=3D0; /* do that later */ if (st.st_size > 0x7fffffff) { - fprintf(stderr, "File %s is larger than 2GB\n", buffer); + error_report("File %s is larger than 2GB", buffer); g_free(buffer); closedir(dir); return -2; @@ -1251,8 +1251,7 @@ static int vvfat_open(BlockDriverState *bs, QDict *op= tions, int flags, s->fat2 =3D NULL; s->downcase_short_names =3D 1; =20 - fprintf(stderr, "vvfat %s chs %d,%d,%d\n", - dirname, cyls, heads, secs); + error_report("vvfat %s chs %d,%d,%d", dirname, cyls, heads, secs); =20 s->sector_count =3D cyls * heads * secs - s->offset_to_bootsector; =20 @@ -1458,7 +1457,7 @@ static void print_direntry(const direntry_t* direntry) for(i=3D28;i<32 && c[i] && c[i]!=3D0xff;i+=3D2) ADD_CHAR(c[i]); buffer[j] =3D 0; - fprintf(stderr, "%s\n", buffer); + error_report("%s", buffer); } else { int i; for(i=3D0;i<11;i++) @@ -1479,9 +1478,11 @@ static void print_mapping(const mapping_t* mapping) mapping->first_mapping_index, mapping->path, mapping->mode); =20 if (mapping->mode & MODE_DIRECTORY) - fprintf(stderr, "parent_mapping_index =3D %d, first_dir_index =3D = %d\n", mapping->info.dir.parent_mapping_index, mapping->info.dir.first_dir_= index); + error_report("parent_mapping_index =3D %d, first_dir_index =3D %d", + mapping->info.dir.parent_mapping_index, + mapping->info.dir.first_dir_index); else - fprintf(stderr, "offset =3D %d\n", mapping->info.file.offset); + error_report("offset =3D %d", mapping->info.file.offset); } #endif =20 @@ -1503,9 +1504,9 @@ static int vvfat_read(BlockDriverState *bs, int64_t s= ector_num, return ret; } if (ret) { - DLOG(fprintf(stderr, "sectors %" PRId64 "+%" PRId64 - " allocated\n", sector_num, - n >> BDRV_SECTOR_BITS)); + DLOG(error_report("sectors %" PRId64 "+%" PRId64 + " allocated", sector_num, + n >> BDRV_SECTOR_BITS)); if (bdrv_read(s->qcow, sector_num, buf + i * 0x200, n >> BDRV_SECTOR_BITS)) { return -1; @@ -1514,8 +1515,8 @@ static int vvfat_read(BlockDriverState *bs, int64_t s= ector_num, sector_num +=3D (n >> BDRV_SECTOR_BITS) - 1; continue; } - DLOG(fprintf(stderr, "sector %" PRId64 " not allocated\n", - sector_num)); + DLOG(error_report("sector %" PRId64 " not allocated", + sector_num)); } if (sector_num < s->offset_to_root_dir) { if (sector_num < s->offset_to_fat) { @@ -1615,7 +1616,7 @@ typedef struct commit_t { static void clear_commits(BDRVVVFATState* s) { int i; -DLOG(fprintf(stderr, "clear_commits (%d commits)\n", s->commits.next)); +DLOG(error_report("clear_commits (%d commits)", s->commits.next)); for (i =3D 0; i < s->commits.next; i++) { commit_t* commit =3D array_get(&(s->commits), i); assert(commit->path || commit->action =3D=3D ACTION_WRITEOUT); @@ -2065,16 +2066,17 @@ static int check_directory_consistency(BDRVVVFATSta= te *s, ret++; =20 if (s->used_clusters[cluster_num] & USED_ANY) { - fprintf(stderr, "cluster %d used more than once\n", (int)clust= er_num); + error_report("cluster %d used more than once", (int)cluster_nu= m); goto fail; } s->used_clusters[cluster_num] =3D USED_DIRECTORY; =20 -DLOG(fprintf(stderr, "read cluster %d (sector %d)\n", (int)cluster_num, (i= nt)cluster2sector(s, cluster_num))); +DLOG(error_report("read cluster %d (sector %d)", + (int)cluster_num, (int)cluster2sector(s, cluster_num))); subret =3D vvfat_read(s->bs, cluster2sector(s, cluster_num), clust= er, s->sectors_per_cluster); if (subret) { - fprintf(stderr, "Error fetching direntries\n"); + error_report("Error fetching direntries"); fail: g_free(cluster); return 0; @@ -2083,14 +2085,14 @@ DLOG(fprintf(stderr, "read cluster %d (sector %d)\n= ", (int)cluster_num, (int)clu for (i =3D 0; i < 0x10 * s->sectors_per_cluster; i++) { int cluster_count =3D 0; =20 -DLOG(fprintf(stderr, "check direntry %d:\n", i); print_direntry(direntries= + i)); +DLOG(error_report("check direntry %d:", i); print_direntry(direntries + i)= ); if (is_volume_label(direntries + i) || is_dot(direntries + i) = || is_free(direntries + i)) continue; =20 subret =3D parse_long_name(&lfn, direntries + i); if (subret < 0) { - fprintf(stderr, "Error in long name\n"); + error_report("Error in long name"); goto fail; } if (subret =3D=3D 0 || is_free(direntries + i)) @@ -2099,7 +2101,7 @@ DLOG(fprintf(stderr, "check direntry %d:\n", i); prin= t_direntry(direntries + i)) if (fat_chksum(direntries+i) !=3D lfn.checksum) { subret =3D parse_short_name(s, &lfn, direntries + i); if (subret < 0) { - fprintf(stderr, "Error in short name (%d)\n", subret); + error_report("Error in short name (%d)", subret); goto fail; } if (subret > 0 || !strcmp((char*)lfn.name, ".") @@ -2109,7 +2111,7 @@ DLOG(fprintf(stderr, "check direntry %d:\n", i); prin= t_direntry(direntries + i)) lfn.checksum =3D 0x100; /* cannot use long name twice */ =20 if (path_len + 1 + lfn.len >=3D PATH_MAX) { - fprintf(stderr, "Name too long: %s/%s\n", path, lfn.name); + error_report("Name too long: %s/%s", path, lfn.name); goto fail; } pstrcpy(path2 + path_len + 1, sizeof(path2) - path_len - 1, @@ -2117,13 +2119,15 @@ DLOG(fprintf(stderr, "check direntry %d:\n", i); pr= int_direntry(direntries + i)) =20 if (is_directory(direntries + i)) { if (begin_of_direntry(direntries + i) =3D=3D 0) { - DLOG(fprintf(stderr, "invalid begin for directory: %s\= n", path2); print_direntry(direntries + i)); + DLOG(error_report("invalid begin for directory: %s", p= ath2); + print_direntry(direntries + i)); goto fail; } cluster_count =3D check_directory_consistency(s, begin_of_direntry(direntries + i), path2); if (cluster_count =3D=3D 0) { - DLOG(fprintf(stderr, "problem in directory %s:\n", pat= h2); print_direntry(direntries + i)); + DLOG(error_report("problem in directory %s:", path2); + print_direntry(direntries + i)); goto fail; } } else if (is_file(direntries + i)) { @@ -2131,7 +2135,7 @@ DLOG(fprintf(stderr, "check direntry %d:\n", i); prin= t_direntry(direntries + i)) cluster_count =3D get_cluster_count_for_direntry(s, dirent= ries + i, path2); if (cluster_count !=3D DIV_ROUND_UP(le32_to_cpu(direntries[i].size), s->cluster_size)= ) { - DLOG(fprintf(stderr, "Cluster count mismatch\n")); + DLOG(error_report("Cluster count mismatch")); goto fail; } } else @@ -2175,7 +2179,7 @@ DLOG(checkpoint()); check =3D vvfat_read(s->bs, s->offset_to_fat, s->fat2, s->sectors_per_fat); if (check) { - fprintf(stderr, "Could not copy fat\n"); + error_report("Could not copy fat"); return 0; } assert (s->used_clusters); @@ -2195,7 +2199,7 @@ DLOG(checkpoint()); =20 used_clusters_count =3D check_directory_consistency(s, 0, s->path); if (used_clusters_count <=3D 0) { - DLOG(fprintf(stderr, "problem in directory\n")); + DLOG(error_report("problem in directory")); return 0; } =20 @@ -2203,7 +2207,8 @@ DLOG(checkpoint()); for (i =3D check; i < sector2cluster(s, s->sector_count); i++) { if (modified_fat_get(s, i)) { if(!s->used_clusters[i]) { - DLOG(fprintf(stderr, "FAT was modified (%d), but cluster i= s not used?\n", i)); + DLOG(error_report("FAT was modified (%d), but cluster" + " is not used?", i)); return 0; } check++; @@ -2211,7 +2216,7 @@ DLOG(checkpoint()); =20 if (s->used_clusters[i] =3D=3D USED_ALLOCATED) { /* allocated, but not used... */ - DLOG(fprintf(stderr, "unused, modified cluster: %d\n", i)); + DLOG(error_report("unused, modified cluster: %d", i)); return 0; } } @@ -2438,7 +2443,8 @@ static int commit_direntries(BDRVVVFATState* s, int ret, i; uint32_t c; =20 -DLOG(fprintf(stderr, "commit_direntries for %s, parent_mapping_index %d\n"= , mapping->path, parent_mapping_index)); +DLOG(error_report("commit_direntries for %s, parent_mapping_index %d", + mapping->path, parent_mapping_index)); =20 assert(direntry); assert(mapping); @@ -2529,8 +2535,8 @@ static int commit_one_file(BDRVVVFATState* s, =20 fd =3D qemu_open(mapping->path, O_RDWR | O_CREAT | O_BINARY, 0666); if (fd < 0) { - fprintf(stderr, "Could not open %s... (%s, %d)\n", mapping->path, - strerror(errno), errno); + error_report("Could not open %s... (%s, %d)", mapping->path, + strerror(errno), errno); g_free(cluster); return fd; } @@ -2592,7 +2598,7 @@ static void check1(BDRVVVFATState* s) for (i =3D 0; i < s->mapping.next; i++) { mapping_t* mapping =3D array_get(&(s->mapping), i); if (mapping->mode & MODE_DELETED) { - fprintf(stderr, "deleted\n"); + error_report("deleted"); continue; } assert(mapping->dir_index < s->directory.next); @@ -2658,10 +2664,12 @@ static int handle_renames_and_mkdirs(BDRVVVFATState= * s) int i; =20 #ifdef DEBUG - fprintf(stderr, "handle_renames\n"); + error_report("handle_renames"); for (i =3D 0; i < s->commits.next; i++) { commit_t* commit =3D array_get(&(s->commits), i); - fprintf(stderr, "%d, %s (%d, %d)\n", i, commit->path ? commit->pat= h : "(null)", commit->param.rename.cluster, commit->action); + error_report("%d, %s (%d, %d)", i, + commit->path ? commit->path : "(null)", + commit->param.rename.cluster, commit->action); } #endif =20 @@ -2893,7 +2901,9 @@ static int handle_deletes(BDRVVVFATState* s) return -4; deleted++; } - DLOG(fprintf(stderr, "DELETE (%d)\n", i); print_mapping(ma= pping); print_direntry(entry)); + DLOG(error_report("DELETE (%d)", i); + print_mapping(mapping); + print_direntry(entry)); remove_mapping(s, i); } } @@ -2922,7 +2932,7 @@ static int do_commit(BDRVVVFATState* s) =20 ret =3D handle_renames_and_mkdirs(s); if (ret) { - fprintf(stderr, "Error handling renames (%d)\n", ret); + error_report("Error handling renames (%d)", ret); abort(); return ret; } @@ -2933,21 +2943,21 @@ static int do_commit(BDRVVVFATState* s) /* recurse direntries from root (using bs->bdrv_read) */ ret =3D commit_direntries(s, 0, -1); if (ret) { - fprintf(stderr, "Fatal: error while committing (%d)\n", ret); + error_report("Fatal: error while committing (%d)", ret); abort(); return ret; } =20 ret =3D handle_commits(s); if (ret) { - fprintf(stderr, "Error handling commits (%d)\n", ret); + error_report("Error handling commits (%d)", ret); abort(); return ret; } =20 ret =3D handle_deletes(s); if (ret) { - fprintf(stderr, "Error deleting\n"); + error_report("Error deleting"); abort(); return ret; } @@ -2999,7 +3009,7 @@ DLOG(checkpoint()); mapping_t* mapping =3D find_mapping_for_cluster(s, i); if (mapping) { if (mapping->read_only) { - fprintf(stderr, "Tried to write to write-protected file %s= \n", + error_report("Tried to write to write-protected file %s", mapping->path); return -1; } @@ -3043,10 +3053,11 @@ DLOG(checkpoint()); /* * Use qcow backend. Commit later. */ -DLOG(fprintf(stderr, "Write to qcow backend: %d + %d\n", (int)sector_num, = nb_sectors)); +DLOG(error_report("Write to qcow backend: %d + %d", + (int)sector_num, nb_sectors)); ret =3D bdrv_write(s->qcow, sector_num, buf, nb_sectors); if (ret < 0) { - fprintf(stderr, "Error writing to qcow backend\n"); + error_report("Error writing to qcow backend"); return ret; } =20 @@ -3277,7 +3288,7 @@ static void checkpoint(void) { assert(!vvv->current_mapping || vvv->current_fd || (vvv->current_mappi= ng->mode & MODE_DIRECTORY)); #if 0 if (((direntry_t*)vvv->directory.pointer)[1].attributes !=3D 0xf) - fprintf(stderr, "Nonono!\n"); + error_report("Nonono!"); mapping_t* mapping; direntry_t* direntry; assert(vvv->mapping.size >=3D vvv->mapping.item_size * vvv->mapping.ne= xt); --=20 2.11.0 From nobody Sun Apr 28 07:58:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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 1506385014465621.8338678568471; Mon, 25 Sep 2017 17:16:54 -0700 (PDT) Received: from localhost ([::1]:44912 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdYR-0005cO-JI for importer@patchew.org; Mon, 25 Sep 2017 20:16:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdUe-0002s8-10 for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:12:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwdUc-0005ZB-6W for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:12:55 -0400 Received: from mail-bn3nam01on0084.outbound.protection.outlook.com ([104.47.33.84]:17328 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 1dwdUV-0005Vg-T7; Mon, 25 Sep 2017 20:12:48 -0400 Received: from BN6PR02CA0089.namprd02.prod.outlook.com (10.161.158.30) by CY1PR02MB1134.namprd02.prod.outlook.com (10.163.15.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 26 Sep 2017 00:12:44 +0000 Received: from SN1NAM02FT004.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::205) by BN6PR02CA0089.outlook.office365.com (2603:10b6:405:60::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.9 via Frontend Transport; Tue, 26 Sep 2017 00:12:44 +0000 Received: from xsj-pvapsmtpgw01 (149.199.60.83) by SN1NAM02FT004.mail.protection.outlook.com (10.152.72.175) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14 via Frontend Transport; Tue, 26 Sep 2017 00:12:43 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUR-0007Az-1w; Mon, 25 Sep 2017 17:12:43 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dwdUQ-0008Uu-Tn; Mon, 25 Sep 2017 17:12:42 -0700 Received: from xsj-pvapsmtp01 (mailhost.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v8Q0Ce53021944; Mon, 25 Sep 2017 17:12:40 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUO-0008Uh-6Q; Mon, 25 Sep 2017 17:12:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=3C4oOzTJJjHF3lZuxi1/TvAkg/sLRR51xeSZnKDnWpA=; b=b1kWVmTnwHF7Z6MORRPrs/13VfeuobwV8LlTw1ROmkhl7p30Bku+btpX4cGPDR1ATY1p+ekPvPWoVvlPvRD2uYZsbC4jyoucRdZNBbNz9bE7ih3OzqpfqpusX0lHJZReUdXyojkzYd6Es4andxxbSHbBb8T5MIdU9NDfKgwyH70= Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=bestguesspass action=none header.from=xilinx.com; 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; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; From: Alistair Francis To: Date: Mon, 25 Sep 2017 17:09:00 -0700 Message-ID: X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23350.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(2980300002)(438002)(189002)(199003)(478600001)(36386004)(33646002)(39060400002)(8676002)(4326008)(76176999)(50986999)(50226002)(36756003)(2906002)(118296001)(48376002)(8936002)(81156014)(106466001)(81166006)(575784001)(5660300001)(54906003)(16586007)(5003940100001)(2351001)(9786002)(189998001)(47776003)(305945005)(50466002)(63266004)(2950100002)(356003)(6916009)(77096006)(316002)(6666003)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR02MB1134; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT004; 1:N4dyIZxjFlEDgbgALfG3JKyr2VFA0dx6/LHYL+spiebf+QP+p7GtuPEhsHroM4iIpcdAoL9dbAQ2kWhat3CDwjxbWJ+jfawWohT3lqUjBRW0X7+WEkOd2pXeguncK/3C MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f347566a-10cb-4d0c-fb9e-08d504734f57 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(8251501002)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:CY1PR02MB1134; X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1134; 3:T6sngrlq6GGBqZ48WmpBp2lEVtSPNQiqOjJgthxqyM/B2sgiF42iUjBnbV/tJCTpur4HgZKWCQWpdmzjiDcyPjHZICZBl6DDvCqVFdmeULxTC8VXMKuWeSaWuGclz2aVdZrjrgWSvn7RdcIT1icppGLEfvjzHCn8vtR7kWTB6h4+nKvJQ2wmCX7tsP79TOYLI/JF0CdgwgunbMe0UEh0b78mw7BnZ1QWR5gAfX0+IhDBpt14uD5UnOm/CW46wyDnnHAPqc7JKzHyTAa31yI1h6cZomkEmCkV/icA5MlqmQdD9Gw4VkBNDS4DrCFrCnn5Nj7jx7GE+9/JnWucumVNovGCaBv8c6UmklxRc8uyb+M=; 25:a2InCc+xRUoDW/R1qRAVuUSihIHr8tHdauBpbkIj8NG3WdkgdUA1FMDfPajoUZfaFZu3SYM/Nf93Xgwu+wqZzu9wG2HNTpDZ5j7P20/qtdLcPz6dezS//6P68ZMIACV37vyGOXui/MxEpU+N+Pj0L9gaFa7v6DPAWYdGIZhWWQFgoFv2ii9f0k0grUkDvPx0DJy7fih29CyC87rmbfK6VYn1CaAJKHWRh9tDF7B832gx9fsEaHfFtGmz1C3KyeNpSYXeMN1uFuybG35GaJfIT5CfjOVvQtJK3/0VCSG3Y/Il7eAHNLtAAjavfplIXxTnfOU/1uM3TR7g+wvpjvlQsA== X-MS-TrafficTypeDiagnostic: CY1PR02MB1134: X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1134; 31:JdZq3Xcg+y9oLjXTO1Y+SxVIpeoaWDTUuaJZ4vZhnN8uxCnbKXgQ+UebrrFaeoLVB9aucRGM0Jfc8F80DhHAH/prvoegWWQvUnpBaZbs2WoAuibr16QmU3rwxN08Dltbu6Z3JwFXTW3LC2pYpZxNjfbqvyOUjzmbn2vUAXevqWLEX4YuRQUr1T/MHOeoppk/VVSJcpozNsMfHlfsYnXU5snsCXK1MrGq1IIhAXOu5sM=; 20:r6QkvL/Dhba5wB8TwsUhXAuT9UpMFbUHRKWkqy3pUvq3sBtrqCkNq1fzfQb+ySi5/lrueCj3T1IBifIso1KbR71hi4qtdWj3oABXY5qCWcXWQmrw4jJXwI+oWTaaDGEyEeW1pVXhKFP4GCOMVexQYGnTMGiSUjwHolGAwbJ0CE7jofqhVOJHLOp9A/gfxMjgn5eql2n525v2ysXF7g1PnmUlQ3n9Tl/mHykK7bCBOc0DgbYMreabkm6Ti/eoONZCRJJR5xYXaGcjCoXC+IoOlZG/LM1H5G5BfvsTS0d/2RJ5X5LDlxpIPtqgw0HhBzjUXA+S0ea08dXgIxreedLX5VeT4A0J3W1FS7VxcOAQJY3VzvsFvTLq0LmkuXUxSx/AtNgg5qym9lw6lvceudpyTXnsCc8E4b7r+EHsaFJc+7zcuutBGJxI2Rx+Iqkk4fwI2U0E6uCyclO1eWCZso0JuqJMx8imO3V9UZEU7Ck0h/QHk1VsJ5gDMXPz51w5Dr/l X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(192813158149592); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(93006095)(93004095)(3002001)(10201501046)(6055026)(6041248)(20161123558100)(20161123564025)(20161123560025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR02MB1134; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR02MB1134; X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1134; 4:vdGIoEdYPhuds36UbpeD6ygQWHSCdsR/GmEN5uxtR2YBNvBCXJtmNIowViNTFxpIXj9wiWbwJbZFhigso1uS2TcekGdQJUFaTv6SStT9eHldRc+rRS83+dz+8IJjTALpdvIryFKRJ5DY7qiTTjXU71GUge8BX1mUuo0bTtFbLK2JWXvyqtTJaLx83DziAWYg9uZQ6Io2vidM0vgbg7CJz1hb7ey76ML9nN5IhuKlbG3B+rwM5MavuHOsuSUyZ3XAZAQ5qjhMSUEh58Vhi7ihGChbfraZwAjG7jlw9NfEb56NtdGUcS9q+GrdmL3BQZFH1Y8terpE1JnMkrdLRwRubA== X-Forefront-PRVS: 0442E569BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR02MB1134; 23:4Awxav3SVFWLBD9xRtANnl8fq+y+84Z0piTEk6Xuj?= =?us-ascii?Q?Epru5VhqvhBqmH9S4+3i/yrvJomlBQY1Qv7kyXmcG7lWD8uV/5qJxgw5ZlaD?= =?us-ascii?Q?ndkkTcXeFCQUbuV0JZcANbrmrurnwm144ETQvg6bleuVh/tWpAHBlp7Gy9ss?= =?us-ascii?Q?Fc9jqsyteZ9LQ55CdKv/gavmInJ/eyRZMqEzZO3xEFfIWp62W+ke3KyvIN22?= =?us-ascii?Q?N0PkxQtYuSKEv8ZJ3uyi6r5D7xs0QSA9BE76Pbf0uHgguNegVTJsrFtjHxNO?= =?us-ascii?Q?wERDcm7MZ3DpE88G4to8DCh6yrjdUvJ4fyH+lagy2JW2CKCuqENmdyIjGq2S?= =?us-ascii?Q?0xG5cXheWM8mkaMQVltFJVNsk67sjgBdebeYB7zzX1ZMnfC7Ka/8bIC7dmPj?= =?us-ascii?Q?ekSjSLta78GEqeaCgOBKLCW6Q7sm8rUf3Aw+rAMedC9oqnkaG3NfMtoQfgqg?= =?us-ascii?Q?tDK5Q+tQeCVhBYHdFMKwTSgz68uQWx9bBgxJT/RGIUKt3pji7gv7/EASTqnr?= =?us-ascii?Q?B9kdmPlUVUvgzDv8CDEifClI0fM3qBOjhyX8AAHGJK3JHnpqAFZuVXWixKtB?= =?us-ascii?Q?fnb7z3gIzpTGiR0wWlO+24/+rRBi6/md5WaBOxsksetAKMmiulAHtXLF1lA4?= =?us-ascii?Q?l82+/B5ftirShK5MOapNNS+zA/Ms3aWyydzTw1jxIiy/IGaHTMxgLSKTShT4?= =?us-ascii?Q?EiIa7OXcygKOE0WjZpQFWsJbIhIWKUWsVFb4LUHNeuORMaAzuqqPWyhJoN18?= =?us-ascii?Q?gbFb9R2mX5b8rHXf9Afk3+PSZq8KVjczzo32dI1fDyyqQ2rgxtaihV3f5KPs?= =?us-ascii?Q?iVpl6iMZJm741MHg71y4/UiC8T7kNi/jTPHwGMa+CLZLrPIP/KVOvnE0DY4e?= =?us-ascii?Q?1THeZtpbPm2T0tqIxhRWAd1a+Oaino9kpnkSjwR4dT4jubIqDnKoD5dc/d0d?= =?us-ascii?Q?H+WW5+2i1cGfmibPvqkPdNchj9Me+yAGfuk4NCvN0Ju2oRfXyEAuJLVLUU00?= =?us-ascii?Q?ascUX91eXMd//vG0UPNV4qxMBcfgR9xTIp7jDM1hEwlzQ3srfTc0fo6NuatS?= =?us-ascii?Q?lPRik8=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1134; 6:aF/L2Iznf+IhxL5giBHYMJi23NZHAwYwOyEo34xaUbPboOh1s4MhEMtO7/srQ7pZrt2/cPxBsDUjmnnDRePZhoS1iXnxsotbR3ru65YZ92ZCLFlORQYpcyPcQV0ZvXYNJWKuieI45uuzOhSPe3Y06w0UDAJeJgbV7Hbbyu7x30Y/0fjEbubqBqkqFYRohy3YWZSAyxEDWkp0uaP1UJdmQz9c30CVAtGFc7wlBDV4PRqQylnUtvV8nq7+In+vo954fbKt6nQ67oENX8dI91yoX29Q20wovMyG6WoGtbLO7ocPJRQfsKzCRmuf8mVubCQsPvF69hT/twjH8sA5Kes7FQ==; 5:LY/29A9MXsh6g3M0LY7w2mtQfyISVYMfpx6fzYb+QdZOfFbrNH0idtIaV7rURyHQFQn8patkNHhfRMrBMUQNqgMBkgwPHyrVRZSFU+PIsyyeWcW5KSNfZhfnDBwzpMSAmSNX35KzigIIupxgks2+fQ==; 24:mZI9GkRFl4BxQjsuJvZfhAp8L6wjEBAewsBc4rvyVcqeJNnFSrs10S1bhDr2oUrvO9xCQZsm2jSdYYJaHv6EldvHNjXvrvAAKmCIPL5ZXUo=; 7:Y1rjCQnwhRg8oHqUFJwr+VrtjXRcechoPvM7TyPIoGkNpACZWRotx36XwxyABMo4KX+pwNk6ukSB7mzHAa6QJdZVVgafSOkMnTadrt3OROja/SvokYN9182APLmEDsY/8bv5UO302F8/sEoSxGjLwnWv+gD43BNNmhakePkIdZtMHDIVC9EAA/pR8Xq3Zgkc5jBsAxzzc676E4ddZOotMqXGV2Zktspq0ftNtCar4OY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 00:12:43.4990 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR02MB1134 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.84 Subject: [Qemu-devel] [PATCH v1 5/8] util: Replace fprintf(stderr, "*\n" with error_report() 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: Kevin Wolf , qemu-block@nongnu.org, Stefan Weil , armbru@redhat.com, alistair.francis@xilinx.com, Paolo Bonzini , alistair23@gmail.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace a large number of the fprintf(stderr, "*\n" calls with error_report(). The functions were renamed with these commands and then compiler issues where manually fixed. find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_= report("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_re= port("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report= ("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("= \1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1= "\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\= 2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2)= ;|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|= Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig= }' \ {} + find ./* -type f -exec sed -i \ 'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}'= \ {} + find ./* -type f -exec sed -i \ 'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \ {} + Signed-off-by: Alistair Francis Cc: Kevin Wolf Cc: Markus Armbruster Cc: Paolo Bonzini Cc: Stefan Weil Cc: qemu-block@nongnu.org --- util/aio-posix.c | 5 +++-- util/coroutine-sigaltstack.c | 2 +- util/error.c | 2 +- util/main-loop.c | 2 +- util/mmap-alloc.c | 3 ++- util/module.c | 6 +++--- util/osdep.c | 4 ++-- util/oslib-posix.c | 3 ++- util/oslib-win32.c | 3 ++- util/qemu-coroutine.c | 5 +++-- util/qemu-progress.c | 3 ++- util/qemu-thread-posix.c | 5 +++-- util/qemu-thread-win32.c | 5 +++-- util/qemu-timer-common.c | 3 ++- util/qht.c | 2 +- 15 files changed, 31 insertions(+), 22 deletions(-) diff --git a/util/aio-posix.c b/util/aio-posix.c index 2d51239ec6..fe4772b4a9 100644 --- a/util/aio-posix.c +++ b/util/aio-posix.c @@ -15,6 +15,7 @@ =20 #include "qemu/osdep.h" #include "qemu-common.h" +#include "qemu/error-report.h" #include "block/block.h" #include "qemu/rcu_queue.h" #include "qemu/sockets.h" @@ -696,8 +697,8 @@ void aio_context_setup(AioContext *ctx) { /* TODO remove this in final patch submission */ if (getenv("QEMU_AIO_POLL_MAX_NS")) { - fprintf(stderr, "The QEMU_AIO_POLL_MAX_NS environment variable has= " - "been replaced with -object iothread,poll-max-ns=3DNUM\n"); + error_report("The QEMU_AIO_POLL_MAX_NS environment variable has " + "been replaced with -object iothread,poll-max-ns=3DNUM"); exit(1); } =20 diff --git a/util/coroutine-sigaltstack.c b/util/coroutine-sigaltstack.c index f6fc49a0e5..96a01c2c88 100644 --- a/util/coroutine-sigaltstack.c +++ b/util/coroutine-sigaltstack.c @@ -80,7 +80,7 @@ static void __attribute__((constructor)) coroutine_init(v= oid) =20 ret =3D pthread_key_create(&thread_state_key, qemu_coroutine_thread_cl= eanup); if (ret !=3D 0) { - fprintf(stderr, "unable to create leader key: %s\n", strerror(errn= o)); + error_report("unable to create leader key: %s", strerror(errno)); abort(); } } diff --git a/util/error.c b/util/error.c index 3efdd69162..e423368ca0 100644 --- a/util/error.c +++ b/util/error.c @@ -32,7 +32,7 @@ Error *error_fatal; static void error_handle_fatal(Error **errp, Error *err) { if (errp =3D=3D &error_abort) { - fprintf(stderr, "Unexpected error in %s() at %s:%d:\n", + error_report("Unexpected error in %s() at %s:%d:", err->func, err->src, err->line); error_report_err(err); abort(); diff --git a/util/main-loop.c b/util/main-loop.c index 7558eb5f53..d8369716b2 100644 --- a/util/main-loop.c +++ b/util/main-loop.c @@ -95,7 +95,7 @@ static int qemu_signal_init(void) sigdelset(&set, SIG_IPI); sigfd =3D qemu_signalfd(&set); if (sigfd =3D=3D -1) { - fprintf(stderr, "failed to create signalfd\n"); + error_report("failed to create signalfd"); return -errno; } =20 diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c index 3ec029a9ea..11887aac69 100644 --- a/util/mmap-alloc.c +++ b/util/mmap-alloc.c @@ -11,6 +11,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu/mmap-alloc.h" #include "qemu/host-utils.h" =20 @@ -51,7 +52,7 @@ size_t qemu_mempath_getpagesize(const char *mem_path) } while (ret !=3D 0 && errno =3D=3D EINTR); =20 if (ret !=3D 0) { - fprintf(stderr, "Couldn't statfs() memory path: %s\n", + error_report("Couldn't statfs() memory path: %s", strerror(errno)); exit(1); } diff --git a/util/module.c b/util/module.c index c90973721f..1153e3ebb0 100644 --- a/util/module.c +++ b/util/module.c @@ -124,13 +124,13 @@ static int module_load_file(const char *fname) =20 g_module =3D g_module_open(fname, G_MODULE_BIND_LAZY | G_MODULE_BIND_L= OCAL); if (!g_module) { - fprintf(stderr, "Failed to open module: %s\n", + error_report("Failed to open module: %s", g_module_error()); ret =3D -EINVAL; goto out; } if (!g_module_symbol(g_module, DSO_STAMP_FUN_STR, (gpointer *)&sym)) { - fprintf(stderr, "Failed to initialize module: %s\n", + error_report("Failed to initialize module: %s", fname); /* Print some info if this is a QEMU module (but from different bu= ild), * this will make debugging user problems easier. */ @@ -169,7 +169,7 @@ void module_load_one(const char *prefix, const char *li= b_name) static GHashTable *loaded_modules; =20 if (!g_module_supported()) { - fprintf(stderr, "Module is not supported by system.\n"); + error_report("Module is not supported by system."); return; } =20 diff --git a/util/osdep.c b/util/osdep.c index a479fedc4a..62d92c9560 100644 --- a/util/osdep.c +++ b/util/osdep.c @@ -425,7 +425,7 @@ void fips_set_state(bool requested) #endif /* __linux__ */ =20 #ifdef _FIPS_DEBUG - fprintf(stderr, "FIPS mode %s (requested %s)\n", + error_report("FIPS mode %s (requested %s)", (fips_enabled ? "enabled" : "disabled"), (requested ? "enabled" : "disabled")); #endif @@ -452,7 +452,7 @@ int socket_init(void) ret =3D WSAStartup(MAKEWORD(2, 2), &Data); if (ret !=3D 0) { err =3D WSAGetLastError(); - fprintf(stderr, "WSAStartup: %d\n", err); + error_report("WSAStartup: %d", err); return -1; } atexit(socket_cleanup); diff --git a/util/oslib-posix.c b/util/oslib-posix.c index 80086c549f..d840692dd7 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -34,6 +34,7 @@ #include "sysemu/sysemu.h" #include "trace.h" #include "qapi/error.h" +#include "qemu/error-report.h" #include "qemu/sockets.h" #include #include @@ -87,7 +88,7 @@ int qemu_daemon(int nochdir, int noclose) void *qemu_oom_check(void *ptr) { if (ptr =3D=3D NULL) { - fprintf(stderr, "Failed to allocate memory: %s\n", strerror(errno)= ); + error_report("Failed to allocate memory: %s", strerror(errno)); abort(); } return ptr; diff --git a/util/oslib-win32.c b/util/oslib-win32.c index 69a6286d50..2197a6a4fc 100644 --- a/util/oslib-win32.c +++ b/util/oslib-win32.c @@ -30,6 +30,7 @@ * see the license comment there. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include #include "qapi/error.h" #include "sysemu/sysemu.h" @@ -44,7 +45,7 @@ void *qemu_oom_check(void *ptr) { if (ptr =3D=3D NULL) { - fprintf(stderr, "Failed to allocate memory: %lu\n", GetLastError()= ); + error_report("Failed to allocate memory: %lu", GetLastError()); abort(); } return ptr; diff --git a/util/qemu-coroutine.c b/util/qemu-coroutine.c index d6095c1d5a..1f7cce6706 100644 --- a/util/qemu-coroutine.c +++ b/util/qemu-coroutine.c @@ -13,6 +13,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "trace.h" #include "qemu-common.h" #include "qemu/thread.h" @@ -110,7 +111,7 @@ void qemu_aio_coroutine_enter(AioContext *ctx, Coroutin= e *co) trace_qemu_aio_coroutine_enter(ctx, self, co, co->entry_arg); =20 if (co->caller) { - fprintf(stderr, "Co-routine re-entered recursively\n"); + error_report("Co-routine re-entered recursively"); abort(); } =20 @@ -164,7 +165,7 @@ void coroutine_fn qemu_coroutine_yield(void) trace_qemu_coroutine_yield(self, to); =20 if (!to) { - fprintf(stderr, "Co-routine is yielding to no one\n"); + error_report("Co-routine is yielding to no one"); abort(); } =20 diff --git a/util/qemu-progress.c b/util/qemu-progress.c index 3c2223c1a2..84598f0fbb 100644 --- a/util/qemu-progress.c +++ b/util/qemu-progress.c @@ -23,6 +23,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" =20 struct progress_state { @@ -68,7 +69,7 @@ static void sigusr_print(int signal) static void progress_dummy_print(void) { if (print_pending) { - fprintf(stderr, " (%3.2f/100%%)\n", state.current); + error_report(" (%3.2f/100%%)", state.current); print_pending =3D 0; } } diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c index 4e95d272dc..4861b1fefc 100644 --- a/util/qemu-thread-posix.c +++ b/util/qemu-thread-posix.c @@ -11,6 +11,7 @@ * */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu/thread.h" #include "qemu/atomic.h" #include "qemu/notify.h" @@ -25,14 +26,14 @@ void qemu_thread_naming(bool enable) #ifndef CONFIG_THREAD_SETNAME_BYTHREAD /* This is a debugging option, not fatal */ if (enable) { - fprintf(stderr, "qemu: thread naming not supported on this host\n"= ); + error_report("qemu: thread naming not supported on this host"); } #endif } =20 static void error_exit(int err, const char *msg) { - fprintf(stderr, "qemu: %s: %s\n", msg, strerror(err)); + error_report("qemu: %s: %s", msg, strerror(err)); abort(); } =20 diff --git a/util/qemu-thread-win32.c b/util/qemu-thread-win32.c index 94f3491a87..46b5dac159 100644 --- a/util/qemu-thread-win32.c +++ b/util/qemu-thread-win32.c @@ -16,6 +16,7 @@ #endif =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" #include "qemu/thread.h" #include "qemu/notify.h" @@ -29,7 +30,7 @@ void qemu_thread_naming(bool enable) /* But note we don't actually name them on Windows yet */ name_threads =3D enable; =20 - fprintf(stderr, "qemu: thread naming not supported on this host\n"); + error_report("qemu: thread naming not supported on this host"); } =20 static void error_exit(int err, const char *msg) @@ -38,7 +39,7 @@ static void error_exit(int err, const char *msg) =20 FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUF= FER, NULL, err, 0, (LPTSTR)&pstr, 2, NULL); - fprintf(stderr, "qemu: %s: %s\n", msg, pstr); + error_report("qemu: %s: %s", msg, pstr); LocalFree(pstr); abort(); } diff --git a/util/qemu-timer-common.c b/util/qemu-timer-common.c index 06d084d364..ab7b702c4f 100644 --- a/util/qemu-timer-common.c +++ b/util/qemu-timer-common.c @@ -22,6 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu/timer.h" =20 /***********************************************************/ @@ -37,7 +38,7 @@ static void __attribute__((constructor)) init_get_clock(v= oid) int ret; ret =3D QueryPerformanceFrequency(&freq); if (ret =3D=3D 0) { - fprintf(stderr, "Could not calibrate ticks\n"); + error_report("Could not calibrate ticks"); exit(1); } clock_freq =3D freq.QuadPart; diff --git a/util/qht.c b/util/qht.c index ff4d2e6974..bfab5c7e5e 100644 --- a/util/qht.c +++ b/util/qht.c @@ -154,7 +154,7 @@ static void qht_bucket_debug__locked(struct qht_bucket = *b) continue; } if (seen_empty) { - fprintf(stderr, "%s: b: %p, pos: %i, hash: 0x%x, p: %p\n", + error_report("%s: b: %p, pos: %i, hash: 0x%x, p: %p", __func__, b, i, b->hashes[i], b->pointers[i]); corrupt =3D true; } --=20 2.11.0 From nobody Sun Apr 28 07:58:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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 150638515934868.08456273231411; Mon, 25 Sep 2017 17:19:19 -0700 (PDT) Received: from localhost ([::1]:44933 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdak-0007Po-El for importer@patchew.org; Mon, 25 Sep 2017 20:19:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55667) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdUr-00030b-De for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwdUn-0005ic-Fx for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:09 -0400 Received: from mail-sn1nam01on0051.outbound.protection.outlook.com ([104.47.32.51]:10976 helo=NAM01-SN1-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 1dwdUn-0005hp-59 for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:05 -0400 Received: from MWHPR02CA0050.namprd02.prod.outlook.com (10.164.133.39) by BLUPR02MB1122.namprd02.prod.outlook.com (10.163.79.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 26 Sep 2017 00:12:55 +0000 Received: from SN1NAM02FT043.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::209) by MWHPR02CA0050.outlook.office365.com (2603:10b6:301:60::39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.56.11 via Frontend Transport; Tue, 26 Sep 2017 00:12:54 +0000 Received: from xsj-pvapsmtpgw01 (149.199.60.83) by SN1NAM02FT043.mail.protection.outlook.com (10.152.72.184) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14 via Frontend Transport; Tue, 26 Sep 2017 00:12:53 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUb-0007BB-74; Mon, 25 Sep 2017 17:12:53 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dwdUb-0008Vj-2u; Mon, 25 Sep 2017 17:12:53 -0700 Received: from xsj-pvapsmtp01 (xsj-mail.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v8Q0Ch44023049; Mon, 25 Sep 2017 17:12:44 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUR-0008V4-RD; Mon, 25 Sep 2017 17:12:43 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=2JrqJ4pgsVddS+P1MB3YSHkRGOUdJRPRozNIscjfoe4=; b=VoZBaFhLFf9olRj/0p9DuRorAajgnpoZ5O4lWcfym+2AOeIwU+hqWryHeK0IFsA8CzrM3CHI5WOgwZ+b6VXpNGDxmYfyhBw7Qf08dEoDODOSdbEXgfCnNWHSbaAJGXueyM0wWBw+Jn/VJc2MLIgbGa8WY7zWpXLSszOn6qd4778= Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=bestguesspass action=none header.from=xilinx.com; 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; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; From: Alistair Francis To: Date: Mon, 25 Sep 2017 17:09:03 -0700 Message-ID: X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23350.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(39860400002)(2980300002)(438002)(199003)(189002)(189998001)(36756003)(2950100002)(6916009)(478600001)(16586007)(36386004)(50986999)(316002)(54906003)(77096006)(48376002)(76176999)(50466002)(9786002)(106466001)(2906002)(8936002)(81156014)(8676002)(81166006)(356003)(6666003)(5660300001)(4326008)(33646002)(47776003)(2351001)(63266004)(39060400002)(118296001)(5003940100001)(575784001)(50226002)(305945005)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR02MB1122; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT043; 1:7G0vlT7qwdzc4zfaIB8Sg5dDU3MvjOK9rJGUFyjHrlN79kMM61vXIjIj+8G+CzQXnlH1V2GC8oCmS7mpCN0s9sLtv6s9xatYJGpFOxWobVZJTrT6yIVWzO2p8sG4SmyP MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0da41518-b63b-4f0c-6cce-08d504735549 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(8251501002)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:BLUPR02MB1122; X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB1122; 3:GecsHYh2SyrZH1bcdcv3oru08ZNB7Cod7CLaFEFLQ9yb567Xi/OfZmjrY4usf3TyI/8k19mrjTmWP5RrSdnvv7Frx5PnqUp08g5nhZvsttePQqeeJtrzz2pWnaVtfom6IamnfCY3tz+Zivm5xmkl3BotI6JrRa27rqKcd3MOXMNFaIVmGrXaAOEBWm4AjWd/BXJO5g9i76myvfbf7L5SefBPDBu4PF2KTbvjNA5qjGiS7JHkoJUQ8EW+jHOWIq7BrgW4FZ/WsaRUihmJXux8pWG08pKA643c2yRhQr2WjYskI3KAk8xqdNUtHr0cAVYlUvDeZbzswM3mGNSpAAKfH9MF4SQrGsiCHaUKL13xV50=; 25:sOaI7RgNDcE6y7Rjfg1rhM83zTNODLYtJsCHB4HLJX4exXALHC5BJsCEvVnqnGS0pm1I6ScIGI94j3XZcY4Qn1zx/1o/+BBLO6a91WJIZr2u4k7C0Ia0/IxeckvEFzH025lKQSD+ojPk3sQn+pxNMwafpayuHJSjevqhRqrwwWPsSFXPtf0XiaQWuqAT9w/DAI3Wh/fEMLKTYG4y2R8McqxCa6z0376iu1ZFf6bI2vzXAPb/2AHamXbdmZ8SsED6lot04f1tVFa3uKW3HgcBLXH0+SQ9SNPGhXnOgLTryPfRwolVK0qh4OAPj4m07y1Oqc6rWx8ohNy8FBRCWuhZRw== X-MS-TrafficTypeDiagnostic: BLUPR02MB1122: X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB1122; 31:UqVFJxMVImD2U458sBzEbgs5aiCq5Obbu8bVwj7ugouZVdi03aU2p4Vdb4gNs6KecGAvsaFDKc/DIJxJQDXLh5339204UqQZ3P0NHccX1V9e1MA8nsKK5/rpYXBuX8F2VUCO3OVBvzOdmDQigoZYhM+6mTo2nXKNYsNB/06OHYABUf0nPHBXDl/covzsJ55rNF/FSWucC+zxvzlHldl8+9+ds8kERbi4r+pHI/k5S8c=; 20:b8gqnaNhZ9Fzt1LTIGPGY0mfVIRNeTaifg5pYEXboN0zx321gs3N7zpcSX5PN/2kEtMlYV/GwDtV+qw5LFOMxBlcxvWlJEi0Sm6VshoAnu7XH17VKHOduZgjaU0da8pg8aFxok0lto77Et1WMm1YVBpXggTZ/PMN05f430X8xQvSIX7EfSvelcd7MQ+2BQpzj/gmzLwowduEA6U+sMIEiWpD2TN+h7a3V0qnM0eZHpJPuAlb/DYCbQ8s+il3vtRF/FV8uVJCBBs0BMqnCvD6yXh4EZvmFsaEJ1drufN96WUtK22Cl4cc7CcCkVI/DrM2JMcB6HTgnD4g0fuht+NKvUsznyj4stoCM0tPAx82YdFB2bs5D5DgAfXfx2Z5vAGbPxuLBKRqvs4UBl7jqL+1OQ/ZXeGMPqJsaTCqj0yd5Io9aPo42vA7Y8Hhr5uI2OKi37yL+9LBqbzkq79y8iJvjcpoaYasHAYh+JVlW7lR968lyc+6P7wH1t3ZbD4oRvvO X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(192813158149592); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93004095)(3002001)(6055026)(6041248)(20161123558100)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR02MB1122; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR02MB1122; X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB1122; 4:lXIFd3Vl7/7EIFaYFWOQ0CW4DXGbn4l2D2ak0dAGmasA/ysZj5joOn26mHa9vyoGZWr5Lzp1ZuiqdND47F552UBJ5z8he/mii+/ERS03KxVSS5Wn1b2I4QU7xAADhfa5VUmsx+I7GVCJtzD1UFFwNAVYyo7c2k25aBIKsdQEkKI/pm+tbwNGPWYBZrwGItkIuu0+HixgRUXyehPjwkwVzmXypJ7MGKY6NGavyW4EVQOPeQhHnlMYyatcOSygI9Y8w1GukdV9nhx6iga3TQE4Z/UVWN/z2lnxR3GY10u42niZejxOGFrn01vrkXM+V+KhWm64VIrmuLeiFI3oGEf09A== X-Forefront-PRVS: 0442E569BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR02MB1122; 23:ubUADmbpVgeNJHrJXs9Nuf1h7QxtsCGkCEKUrHPOf?= =?us-ascii?Q?veVwCtAcyTqTut+IoDPSNTOadfM2g5v8QC8ZuQ/EpyWdJ/o5jAklV66+pjbP?= =?us-ascii?Q?caxUTdrAL9sbiwmF2mdDPyaGK0U7k6D0bQsmdULuTwYlbHxq6lZQCCHVN0mb?= =?us-ascii?Q?dkhX92xWPGmj3iPvkXPqNTLN/52/r3UmuG9jqw4L2w8mpJvdfNXA5/XWEjev?= =?us-ascii?Q?PUJugPIrO9YU5tYAdmNmGd4ERhnBKiOPiqeg56W272MtfWkVJwhfaKcCqQ8b?= =?us-ascii?Q?vqPX4zU4tfJ5jqkW3xbMmBLq4EH8YO2weGOGbhsiuXo/3SUOgE4X++b7m7Yp?= =?us-ascii?Q?v3tPL/kofuy35IZd9gSlAH0e+Kpe4MmVJ7zywo03SlaK9hRPd9BXtWxQaEGu?= =?us-ascii?Q?s6dl7mxmkwlNvBAoQ1/NFGVoxN3wVZ51AFf5K+nViQXV7fsAehGoF0rs/hqe?= =?us-ascii?Q?tZ9lTzjcEKy2SN8j8xiSRLvY2eUUrjM4o8FZ+asKQBftrNRz7JYHA/jaogvU?= =?us-ascii?Q?gfYDRF60BzFJUHRc1KG6ITwboSycySpgg7dwa+5cSAq5sBoZJ0bef6OjLysS?= =?us-ascii?Q?59wiZqv/UcuszJX1yDF3aR1OPofOVpi9iJSorQBx8O6PHIk62xXMWENDWUox?= =?us-ascii?Q?f1OhFMv82zc/rF3TFaQ0dLY/yMspz2Km9c+yE3G8neuqQ7/IVdSoSOTmDXFc?= =?us-ascii?Q?GP+dDhYO8W1Tnb0Bsl5cDGvSzhLh36afvqQjWAhgleV0YsvRYep7+47OQslb?= =?us-ascii?Q?bdB+txNQtB4rEtef6QVDSr0UAKEJvt/7IU3di3ljLszWZIJQuFBbgpPv8VVX?= =?us-ascii?Q?nzfa3RArF2mMn3RbErCZkMYWOySihGfAW9mSYEvFoe4UKacFLHUDXUfqVjOE?= =?us-ascii?Q?jVjfhu8FH6J+Mxonv7wdvxGgAvRB0hef9XAb8LSt8Dea89V132da6LY5b1dk?= =?us-ascii?Q?45FwJVIvKIMNFb/Dd63jt6reSUQJFUeX+bYRgM8M90+mVCmjuu0M3f8TjUwO?= =?us-ascii?Q?WdBDkPd+ayP+W52g/7MRujTQ4N5yCF69+yc002KQ2L1zwTWjeJs+npF/jYo1?= =?us-ascii?Q?m5NgH8=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR02MB1122; 6:XgA28IuBUeXUXMch/0FlmYpd2XXUc8+7BeWd/60BRHTTpUPxNwoa2hFp5MmDOQvFHB0QvUN7hLcUyYZKCpx9OAVscVlgJHmfiONNh9IC9tD9QQ31riJMNvmW9KQ+1o5Ye0k+XU6cAUeyHlIxRyI54omTNRLcilcrquLYN03Q3GZn3zg8VWPzGLk9WsFy5nAl/0U2BBN1WPhBYWJcykxryMVtiD2PksHDHQUHoEE1IUcMZR9BbH4mFZumbN1H0hkiNeQJiyD9yZsNFlyoBoPv26hpzzYbaqtOjZuR+zXvyhOh5jJIC0yU44waEYh+L+Py0Ni+tLMrbQU0YESS+xQ5aA==; 5:rkUcS+kb9AaxHsf7Vd2LmKvU/TyX2PtbBGsUB1UdXrN4mLOChPDvDhPH5nxEdEGPGIwexN2U2reGQljXjp3kBjMKg0t9Fr9I3+kCsay5ShlkKeIh3vhWaaakIvm2j2zJvzL4PFx8Tb/gnK6O0QpQnA==; 24:awn7dVoFAQKvZpPc6EpQvSgIygmfYf62qo1rZ2d2cLjKJ4qzoOoBBLNekqcd8bXDlSRFf0ieDPbvFIb+UDd3su6RI2tI5/YMQjCfQEnvBvk=; 7:g1ftVPTr3BNrStv78YKeO20EVMw5+rqefUo+MAE+xjwaQKSid/6p9tgQJu+c/H031Cm08JrohpiSC48gpY1ERFzXmxP1hyZX1IlgEzTq5GVG8rsL4LcOp3Yxtr5xymullyp4Xoq4fOkD8hcbqLkc6tytPYukDCVPoyuKxNt0cH6/dIWkshBBeVp2C04H09KSgEdwzvB3Qs2AunFlu/YNdWRcYJl1wy/+vGjatOyNeHk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 00:12:53.7043 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR02MB1122 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.51 Subject: [Qemu-devel] [PATCH v1 6/8] ui: Replace fprintf(stderr, "*\n" with error_report() 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: Peter Maydell , alistair23@gmail.com, Gerd Hoffmann , armbru@redhat.com, alistair.francis@xilinx.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace a large number of the fprintf(stderr, "*\n" calls with error_report(). The functions were renamed with these commands and then compiler issues where manually fixed. find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_= report("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_re= port("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report= ("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("= \1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1= "\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\= 2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2)= ;|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|= Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig= }' \ {} + find ./* -type f -exec sed -i \ 'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}'= \ {} + find ./* -type f -exec sed -i \ 'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \ {} + Signed-off-by: Alistair Francis Cc: Peter Maydell Cc: Gerd Hoffmann --- ui/cocoa.m | 6 +++--- ui/console.c | 2 +- ui/curses.c | 2 +- ui/cursor.c | 10 +++++----- ui/gtk.c | 10 +++++----- ui/input-linux.c | 3 ++- ui/keymaps.c | 4 ++-- ui/sdl.c | 14 +++++++------- ui/sdl2.c | 8 ++++---- ui/sdl_zoom.c | 3 ++- ui/shader.c | 8 ++++---- ui/spice-display.c | 10 +++++----- ui/vnc-enc-tight.c | 4 ++-- ui/vnc-enc-zlib.c | 4 ++-- ui/vnc-enc-zrle.c | 4 ++-- ui/vnc.c | 2 +- 16 files changed, 48 insertions(+), 46 deletions(-) diff --git a/ui/cocoa.m b/ui/cocoa.m index 93e56d0518..62c021c5d3 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -235,7 +235,7 @@ const int mac_to_qkeycode_map[] =3D { static int cocoa_keycode_to_qemu(int keycode) { if (ARRAY_SIZE(mac_to_qkeycode_map) <=3D keycode) { - fprintf(stderr, "(cocoa) warning unknown keycode 0x%x\n", keycode); + error_report("(cocoa) warning unknown keycode 0x%x", keycode); return 0; } return mac_to_qkeycode_map[keycode]; @@ -908,7 +908,7 @@ QemuCocoaView *cocoaView; // create a view and add it to the window cocoaView =3D [[QemuCocoaView alloc] initWithFrame:NSMakeRect(0.0,= 0.0, 640.0, 480.0)]; if(!cocoaView) { - fprintf(stderr, "(cocoa) can't create a view\n"); + error_report("(cocoa) can't create a view"); exit(1); } =20 @@ -917,7 +917,7 @@ QemuCocoaView *cocoaView; styleMask:NSWindowStyleMaskTitled|NSWindowStyleMaskMiniaturiza= ble|NSWindowStyleMaskClosable backing:NSBackingStoreBuffered defer:NO]; if(!normalWindow) { - fprintf(stderr, "(cocoa) can't create window\n"); + error_report("(cocoa) can't create window"); exit(1); } [normalWindow setAcceptsMouseMovedEvents:YES]; diff --git a/ui/console.c b/ui/console.c index b82c27960a..56d0ebcb50 100644 --- a/ui/console.c +++ b/ui/console.c @@ -1417,7 +1417,7 @@ void register_displaychangelistener(DisplayChangeList= ener *dcl) /* display has opengl support */ assert(dcl->con); if (dcl->con->gl) { - fprintf(stderr, "can't register two opengl displays (%s, %s)\n= ", + error_report("can't register two opengl displays (%s, %s)", dcl->ops->dpy_name, dcl->con->gl->ops->dpy_name); exit(1); } diff --git a/ui/curses.c b/ui/curses.c index 03cefdf470..06784ec7f0 100644 --- a/ui/curses.c +++ b/ui/curses.c @@ -423,7 +423,7 @@ void curses_display_init(DisplayState *ds, int full_scr= een) { #ifndef _WIN32 if (!isatty(1)) { - fprintf(stderr, "We need a terminal output\n"); + error_report("We need a terminal output"); exit(1); } #endif diff --git a/ui/cursor.c b/ui/cursor.c index f3da0cee79..9d847031ec 100644 --- a/ui/cursor.c +++ b/ui/cursor.c @@ -18,12 +18,12 @@ static QEMUCursor *cursor_parse_xpm(const char *xpm[]) /* parse header line: width, height, #colors, #chars */ if (sscanf(xpm[line], "%u %u %u %u", &width, &height, &colors, &chars) !=3D 4) { - fprintf(stderr, "%s: header parse error: \"%s\"\n", - __func__, xpm[line]); + error_report("%s: header parse error: \"%s\"", + __func__, xpm[line]); return NULL; } if (chars !=3D 1) { - fprintf(stderr, "%s: chars !=3D 1 not supported\n", __func__); + error_report("%s: chars !=3D 1 not supported", __func__); return NULL; } line++; @@ -40,7 +40,7 @@ static QEMUCursor *cursor_parse_xpm(const char *xpm[]) continue; } } - fprintf(stderr, "%s: color parse error: \"%s\"\n", + error_report("%s: color parse error: \"%s\"", __func__, xpm[line]); return NULL; } @@ -75,7 +75,7 @@ void cursor_print_ascii_art(QEMUCursor *c, const char *pr= efix) fprintf(stderr, "o"); /* other */ } } - fprintf(stderr, "|\n"); + error_report("|"); } } =20 diff --git a/ui/gtk.c b/ui/gtk.c index 5bd87c265a..99477ea6e6 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -1254,7 +1254,7 @@ static gboolean gd_win_grab(void *opaque) { VirtualConsole *vc =3D opaque; =20 - fprintf(stderr, "%s: %s\n", __func__, vc->label); + error_report("%s: %s", __func__, vc->label); if (vc->s->ptr_owner) { gd_ungrab_pointer(vc->s); } else { @@ -2210,12 +2210,12 @@ static void gd_set_keycode_type(GtkDisplayState *s) keycodes =3D XGetAtomName(x11_display, desc->names->keycodes); } if (keycodes =3D=3D NULL) { - fprintf(stderr, "could not lookup keycode name\n"); + error_report("could not lookup keycode name"); } else if (strstart(keycodes, "evdev", NULL)) { s->has_evdev =3D true; } else if (!strstart(keycodes, "xfree86", NULL)) { - fprintf(stderr, "unknown keycodes `%s', please report to " - "qemu-devel@nongnu.org\n", keycodes); + error_report("unknown keycodes `%s', please report to " + "qemu-devel@nongnu.org", keycodes); } =20 if (desc) { @@ -2239,7 +2239,7 @@ void gtk_display_init(DisplayState *ds, bool full_scr= een, bool grab_on_hover) GdkDisplay *window_display; =20 if (!gtkinit) { - fprintf(stderr, "gtk initialization failed\n"); + error_report("gtk initialization failed"); exit(1); } =20 diff --git a/ui/input-linux.c b/ui/input-linux.c index 9720333b2c..edc5273476 100644 --- a/ui/input-linux.c +++ b/ui/input-linux.c @@ -5,6 +5,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "qemu/config-file.h" @@ -241,7 +242,7 @@ static void input_linux_event(void *opaque) rc =3D read(il->fd, &p[il->read_offset], read_size); if (rc !=3D read_size) { if (rc < 0 && errno !=3D EAGAIN) { - fprintf(stderr, "%s: read: %s\n", __func__, strerror(errno= )); + error_report("%s: read: %s", __func__, strerror(errno)); qemu_set_fd_handler(il->fd, NULL, NULL, NULL); close(il->fd); } else if (rc > 0) { diff --git a/ui/keymaps.c b/ui/keymaps.c index f9762d1497..41c5e42553 100644 --- a/ui/keymaps.c +++ b/ui/keymaps.c @@ -105,7 +105,7 @@ static kbd_layout_t *parse_keyboard_layout(const name2k= eysym_t *table, f =3D filename ? fopen(filename, "r") : NULL; g_free(filename); if (!f) { - fprintf(stderr, "Could not read keymap file: '%s'\n", language); + error_report("Could not read keymap file: '%s'", language); return NULL; } =20 @@ -150,7 +150,7 @@ static kbd_layout_t *parse_keyboard_layout(const name2k= eysym_t *table, if (strstr(rest, "numlock")) { add_to_key_range(&k->keypad_range, keycode); add_to_key_range(&k->numlock_range, keysym); - /* fprintf(stderr, "keypad keysym %04x keycode %d\= n", + /* error_report("keypad keysym %04x keycode %d", keysym, keycode); */ } =20 diff --git a/ui/sdl.c b/ui/sdl.c index 7b71a9ac58..29db4c68ad 100644 --- a/ui/sdl.c +++ b/ui/sdl.c @@ -91,7 +91,7 @@ static void sdl_update(DisplayChangeListener *dcl, SDL_BlitSurface(guest_screen, &rec, real_screen, &rec); } else { if (sdl_zoom_blit(guest_screen, real_screen, SMOOTHING_ON, &re= c) < 0) { - fprintf(stderr, "Zoom blit failed\n"); + error_report("Zoom blit failed"); exit(1); } } @@ -120,7 +120,7 @@ static void do_sdl_resize(int width, int height, int bp= p) tmp_screen =3D SDL_SetVideoMode(width, height, bpp, flags); if (!real_screen) { if (!tmp_screen) { - fprintf(stderr, "Could not open SDL display (%dx%dx%d): %s\n", + error_report("Could not open SDL display (%dx%dx%d): %s", width, height, bpp, SDL_GetError()); exit(1); } @@ -130,7 +130,7 @@ static void do_sdl_resize(int width, int height, int bp= p) * resolution failed. */ if (!tmp_screen) { - fprintf(stderr, "Failed to set SDL display (%dx%dx%d): %s\n", + error_report("Failed to set SDL display (%dx%dx%d): %s", width, height, bpp, SDL_GetError()); return; } @@ -241,12 +241,12 @@ static int check_for_evdev(void) XkbKeycodesNameMask, desc) =3D=3D Success)) { keycodes =3D XGetAtomName(info.info.x11.display, desc->names->keyc= odes); if (keycodes =3D=3D NULL) { - fprintf(stderr, "could not lookup keycode name\n"); + error_report("could not lookup keycode name"); } else if (strstart(keycodes, "evdev", NULL)) { has_evdev =3D 1; } else if (!strstart(keycodes, "xfree86", NULL)) { - fprintf(stderr, "unknown keycodes `%s', please report to " - "qemu-devel@nongnu.org\n", keycodes); + error_report("unknown keycodes `%s', please report to " + "qemu-devel@nongnu.org", keycodes); } } =20 @@ -988,7 +988,7 @@ void sdl_display_init(DisplayState *ds, int full_screen= , int no_frame) =20 flags =3D SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE; if (SDL_Init (flags)) { - fprintf(stderr, "Could not initialize SDL(%s) - exiting\n", + error_report("Could not initialize SDL(%s) - exiting", SDL_GetError()); exit(1); } diff --git a/ui/sdl2.c b/ui/sdl2.c index 53dd447fd2..f6700e70f5 100644 --- a/ui/sdl2.c +++ b/ui/sdl2.c @@ -400,7 +400,7 @@ static void handle_keydown(SDL_Event *ev) 160); height =3D (surface_height(scon->surface) * width) / surface_width(scon->surface); - fprintf(stderr, "%s: scale to %dx%d\n", + error_report("%s: scale to %dx%d", __func__, width, height); sdl_scale(scon, width, height); sdl2_redraw(scon); @@ -686,13 +686,13 @@ static void sdl_mouse_define(DisplayChangeListener *d= cl, 0xff0000, 0x00ff00, 0xff, 0xff000000); =20 if (!guest_sprite_surface) { - fprintf(stderr, "Failed to make rgb surface from %p\n", c); + error_report("Failed to make rgb surface from %p", c); return; } guest_sprite =3D SDL_CreateColorCursor(guest_sprite_surface, c->hot_x, c->hot_y); if (!guest_sprite) { - fprintf(stderr, "Failed to make color cursor from %p\n", c); + error_report("Failed to make color cursor from %p", c); return; } if (guest_cursor && @@ -783,7 +783,7 @@ void sdl_display_init(DisplayState *ds, int full_screen= , int no_frame) =20 flags =3D SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE; if (SDL_Init(flags)) { - fprintf(stderr, "Could not initialize SDL(%s) - exiting\n", + error_report("Could not initialize SDL(%s) - exiting", SDL_GetError()); exit(1); } diff --git a/ui/sdl_zoom.c b/ui/sdl_zoom.c index b96196bac5..bf73d1f1f9 100644 --- a/ui/sdl_zoom.c +++ b/ui/sdl_zoom.c @@ -12,6 +12,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "sdl_zoom.h" =20 static void sdl_zoom_rgb16(SDL_Surface *src, SDL_Surface *dst, int smooth, @@ -81,7 +82,7 @@ int sdl_zoom_blit(SDL_Surface *src_sfc, SDL_Surface *dst_= sfc, int smooth, else if (src_sfc->format->BitsPerPixel =3D=3D 16) sdl_zoom_rgb16(src_sfc, dst_sfc, smooth, &zoom); else { - fprintf(stderr, "pixel format not supported\n"); + error_report("pixel format not supported"); return -1; } =20 diff --git a/ui/shader.c b/ui/shader.c index 1ffddbef3b..5c6fafe55d 100644 --- a/ui/shader.c +++ b/ui/shader.c @@ -85,9 +85,9 @@ GLuint qemu_gl_create_compile_shader(GLenum type, const G= Lchar *src) glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length); errmsg =3D g_malloc(length); glGetShaderInfoLog(shader, length, &length, errmsg); - fprintf(stderr, "%s: compile %s error\n%s\n", __func__, - (type =3D=3D GL_VERTEX_SHADER) ? "vertex" : "fragment", - errmsg); + error_report("%s: compile %s error: %s", __func__, + (type =3D=3D GL_VERTEX_SHADER) ? "vertex" : "fragment= ", + errmsg); g_free(errmsg); return 0; } @@ -110,7 +110,7 @@ GLuint qemu_gl_create_link_program(GLuint vert, GLuint = frag) glGetProgramiv(program, GL_INFO_LOG_LENGTH, &length); errmsg =3D g_malloc(length); glGetProgramInfoLog(program, length, &length, errmsg); - fprintf(stderr, "%s: link program: %s\n", __func__, errmsg); + error_report("%s: link program: %s", __func__, errmsg); g_free(errmsg); return 0; } diff --git a/ui/spice-display.c b/ui/spice-display.c index 346fff44f4..8cf126e7b0 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -630,13 +630,13 @@ static int interface_req_cursor_notification(QXLInsta= nce *sin) =20 static void interface_notify_update(QXLInstance *sin, uint32_t update_id) { - fprintf(stderr, "%s: abort()\n", __func__); + error_report("%s: abort()", __func__); abort(); } =20 static int interface_flush_resources(QXLInstance *sin) { - fprintf(stderr, "%s: abort()\n", __func__); + error_report("%s: abort()", __func__); abort(); return 0; } @@ -646,7 +646,7 @@ static void interface_update_area_complete(QXLInstance = *sin, QXLRect *dirty, uint32_t num_updated_rects) { /* should never be called, used in qxl native mode only */ - fprintf(stderr, "%s: abort()\n", __func__); + error_report("%s: abort()", __func__); abort(); } =20 @@ -671,7 +671,7 @@ static void interface_async_complete(QXLInstance *sin, = uint64_t cookie_token) #endif default: /* should never be called, used in qxl native mode only */ - fprintf(stderr, "%s: abort()\n", __func__); + error_report("%s: abort()", __func__); abort(); } g_free(cookie); @@ -955,7 +955,7 @@ static void qemu_spice_gl_scanout_texture(DisplayChange= Listener *dcl, assert(tex_id); fd =3D egl_get_fd_for_texture(tex_id, &stride, &fourcc); if (fd < 0) { - fprintf(stderr, "%s: failed to get fd for texture\n", __func__); + error_report("%s: failed to get fd for texture", __func__); return; } dprint(1, "%s: %dx%d (stride %d, fourcc 0x%x)\n", __func__, diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c index f38aceb4da..7ac957057d 100644 --- a/ui/vnc-enc-tight.c +++ b/ui/vnc-enc-tight.c @@ -800,7 +800,7 @@ static int tight_init_stream(VncState *vs, int stream_i= d, MAX_MEM_LEVEL, strategy); =20 if (err !=3D Z_OK) { - fprintf(stderr, "VNC: error initializing zlib\n"); + error_report("VNC: error initializing zlib"); return -1; } =20 @@ -865,7 +865,7 @@ static int tight_compress_data(VncState *vs, int stream= _id, size_t bytes, =20 /* start encoding */ if (deflate(zstream, Z_SYNC_FLUSH) !=3D Z_OK) { - fprintf(stderr, "VNC: error during tight compression\n"); + error_report("VNC: error during tight compression"); return -1; } =20 diff --git a/ui/vnc-enc-zlib.c b/ui/vnc-enc-zlib.c index 33e9df2f6a..437cfb1307 100644 --- a/ui/vnc-enc-zlib.c +++ b/ui/vnc-enc-zlib.c @@ -80,7 +80,7 @@ static int vnc_zlib_stop(VncState *vs) MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY); =20 if (err !=3D Z_OK) { - fprintf(stderr, "VNC: error initializing zlib\n"); + error_report("VNC: error initializing zlib"); return -1; } =20 @@ -109,7 +109,7 @@ static int vnc_zlib_stop(VncState *vs) =20 // start encoding if (deflate(zstream, Z_SYNC_FLUSH) !=3D Z_OK) { - fprintf(stderr, "VNC: error during zlib compression\n"); + error_report("VNC: error during zlib compression"); return -1; } =20 diff --git a/ui/vnc-enc-zrle.c b/ui/vnc-enc-zrle.c index fd63d4f688..a3af8a1c5d 100644 --- a/ui/vnc-enc-zrle.c +++ b/ui/vnc-enc-zrle.c @@ -85,7 +85,7 @@ static int zrle_compress_data(VncState *vs, int level) MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY); =20 if (err !=3D Z_OK) { - fprintf(stderr, "VNC: error initializing zlib\n"); + error_report("VNC: error initializing zlib"); return -1; } =20 @@ -104,7 +104,7 @@ static int zrle_compress_data(VncState *vs, int level) =20 /* start encoding */ if (deflate(zstream, Z_SYNC_FLUSH) !=3D Z_OK) { - fprintf(stderr, "VNC: error during zrle compression\n"); + error_report("VNC: error during zrle compression"); return -1; } =20 diff --git a/ui/vnc.c b/ui/vnc.c index 0b5dbc62e4..2bad9ab971 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -71,7 +71,7 @@ static void vnc_set_share_mode(VncState *vs, VncShareMode= mode) [VNC_SHARE_MODE_EXCLUSIVE] =3D "exclusive", [VNC_SHARE_MODE_DISCONNECTED] =3D "disconnected", }; - fprintf(stderr, "%s/%p: %s -> %s\n", __func__, + error_report("%s/%p: %s -> %s", __func__, vs->ioc, mn[vs->share_mode], mn[mode]); #endif =20 --=20 2.11.0 From nobody Sun Apr 28 07:58:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1506384918916502.41754313995534; Mon, 25 Sep 2017 17:15:18 -0700 (PDT) Received: from localhost ([::1]:44896 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdWe-00045U-0d for importer@patchew.org; Mon, 25 Sep 2017 20:15:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55603) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdUk-0002wV-0t for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwdUg-0005dA-4l for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:01 -0400 Received: from mail-bn3nam01on0063.outbound.protection.outlook.com ([104.47.33.63]:15136 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 1dwdUf-0005cm-TN for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:12:58 -0400 Received: from BLUPR0201CA0020.namprd02.prod.outlook.com (10.163.116.30) by CY1PR02MB1134.namprd02.prod.outlook.com (10.163.15.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 26 Sep 2017 00:12:55 +0000 Received: from SN1NAM02FT032.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::207) by BLUPR0201CA0020.outlook.office365.com (2a01:111:e400:52e7::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.56.11 via Frontend Transport; Tue, 26 Sep 2017 00:12:54 +0000 Received: from xsj-pvapsmtpgw02 (149.199.60.100) by SN1NAM02FT032.mail.protection.outlook.com (10.152.72.126) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14 via Frontend Transport; Tue, 26 Sep 2017 00:12:53 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:49881 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUb-0001oA-44; Mon, 25 Sep 2017 17:12:53 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dwdUb-0008Vj-16; Mon, 25 Sep 2017 17:12:53 -0700 Received: from xsj-pvapsmtp01 (xsj-smtp1.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v8Q0ClAg007393; Mon, 25 Sep 2017 17:12:47 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUV-0008VQ-0O; Mon, 25 Sep 2017 17:12:47 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=IxJ7szBWmzPEZM+nnrbljpAeWSJ3sunfP7gcYLWajBQ=; b=cckwurIGexAnjG5RR4A4RjQP2g9wrEnNke3doBY8TgRRFU4SoCNSCHGY7qaHQkuEGu33rZ+BZTuMLuMGGqLCeQwaVYxrLfaovK72mnQliALQ4PoxsTvnFJi+dYpQAV2+ilOicT8HQqf0zOlQGHwQGKxKl+NUyj6tf4q/XJNn8XM= Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; weilnetz.de; dkim=none (message not signed) header.d=none;weilnetz.de; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; From: Alistair Francis To: Date: Mon, 25 Sep 2017 17:09:07 -0700 Message-ID: X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23350.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(2980300002)(438002)(189002)(199003)(478600001)(36386004)(33646002)(39060400002)(8676002)(4326008)(76176999)(50986999)(50226002)(36756003)(2906002)(118296001)(48376002)(8936002)(81156014)(106466001)(81166006)(575784001)(5660300001)(54906003)(16586007)(5003940100001)(2351001)(9786002)(189998001)(47776003)(305945005)(50466002)(63266004)(2950100002)(356003)(6916009)(77096006)(316002)(6666003)(107986001)(5001870100001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR02MB1134; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT032; 1:CYUEwrI4cuGuCYXhnIpRKeGyqxkvG2trpiEqrsJTfHEUeHDbCKJIfxNlx+GhVM2uMNQagm3hrkz2J363SBD13wlkIbJD2mx3AOIR9u6ZQGGuYvl20qiL/37cskt1nGWI MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1cd79f27-0190-4ee4-2271-08d50473555c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(8251501002)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:CY1PR02MB1134; X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1134; 3:LX3igBWaa0J7BopMogI8yqBfJCJqjFaltaqY3DVyVWeEHDqCKkWF2galj4gpJ31knORlLOPft+72bvnX/yb0icw8IbmNG2i6MuopgaT8m5h/geOIfbD0/GAl73rqwC5drmssNWSntDGgrJtrx6ZiRvou7CsuH1MpHKim+C6qmMZZBpV4eKog599wBeP4Gkvzeh/d7NX2gKNY1lmbdCw9nHvqTb014cIVfjzCMDsQWuxPPwmXuCKqM2P5Tajrfw+GsbYTSa5veZwlFQqgZe3oNNXIMhIwDCeju76HyhNMpZso/4cWrwtpzfIB0SASu7BOGQgofy/kNRsHO7R9sh83yHT3d0TECmHjFZ4zNYXWgaQ=; 25:LExQwqpFukxwowg2VAIMPwEEGN4894J9QNZGFrRv28qBD3cgOZ6ZFZbsO2ODibMfmgUzkhijw4qZoPOBAIkGlG/ASZH0ZpExQ/8Deajt6GDbD6ExaPJ3G8/lfiQ+/SMUt1Leo/EkHOx+7aT/78TgK3g4I1XQ6mC6+dvlfDb54vGgJBo/SU2rp3MZ9sswzBPx8WQm9yx3SAF450FoEH4SPAVWfRL7RfvKkT5bVvrZ5zvwH4q6yEm5k/DzRTxJvSEtUKAPCmhlTH/IZCCjwEDnGhEGNx/iJLkakMAzoid4MinUFwfqJGVnH0T6eR8+makIckBLkONJZd6U5S3tBb/S0g== X-MS-TrafficTypeDiagnostic: CY1PR02MB1134: X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1134; 31:h55eNfYYRzPzU9Koei+2Dr6mZWoSFLHcq/m5F9WQ6WsuhBjSTVvkqMIZZm0sH3H7fYF6/kix2WKAzdoZbe6DCsaZbMZcpLAP5nbfpmsxIiR5ewgka4YH80t7zQzab6tunlOF5BKshI5m0f+x3JDe3sOQFwI1jznkyINYQTX+f7qVJD558MRNaTew9+3cY3VZvLV6nZvmv6+1JLmX8EVDaA0U2TQfZ9C2jfVP9qSI4mI=; 20:EfJZjx12TpFZOLaqaaHhHQBfLl1q9BjexaDf6n/AGvJ5U1ZgnbErs+Ss1LTYBxGQBklKcj7a7voUvtefE7KrsPLxKRCUq0qVzaqN29GD5ed0ma3Kf4fQxlyAfUw2oW6MHfRa/3UFH9wRx9tVXvTA24ISH12fet1vm7MDtUfMazlGMVQwpAUnykyyZDrV4H75VhULNYXboKIey1oR8GNwmcE1+aTPhysTk1hYjL8L7oH6eeIxM6SANEW2bqJK+NUZVjm+nLL/Dd3CRQf7AEzDIqz5hHOzAv2kVKe/v79qccapVyKvbUlXfsqVjcKRL470bw91Z8JOunkpqU6G6HTwXlGQ1VTqUL53tPU9Ds0MhYtCcoTubmTZAmk/CSkcL7M9CeyPRn3U92J3rxE+oAzXrvs/1VlqbrUxjIKfE2EHy0v/DcgRAgKmR5lHx4qlKUs6KXmg1KJBx66H48W0asdYM/+M4JA8bCsXsxCIg/U2PDGLxfmYXdRMj0Kw/ykdbCP9 X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(192813158149592); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(93006095)(93004095)(3002001)(10201501046)(6055026)(6041248)(20161123558100)(20161123564025)(20161123560025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR02MB1134; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR02MB1134; X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1134; 4:lNcLSfRP/6pKzFiIMfuQYvSum5LpKp9hn8Ro6i4dORzu1iR3XZXAvz/ePINCHEwkNqOe+z5setikPIjiBxdXY35hXcQOlrg5bT0zor7HXFlq6sZB1S7jmwyySaf8ZAZJHHj8SqmSRLh5hbCCrEypsBNsxRQRRPip4bfbv5ALdOZzTenysFaOm3//zHVkzyFrk12BiBgwnL3aTE/5YHaFGKDcimcMPoPp+PlLokuJtZ8tKY1m8NBCy67VaKEvl/kDw5qNE96ZUWSwbzF1q6e64fH5ZzVSFN21ShA7gG2sUeHkD/YrkFnl0eITYngNA/g6/0bl6VeAgBghywU1NifuzQ== X-Forefront-PRVS: 0442E569BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR02MB1134; 23:IhbZStmTN6v0N0xbQ8VG2lEfVfpyAyQWD9Bsyhqom?= =?us-ascii?Q?HkUWrfgosx2H2PqLbFviTdgvd1DoyxxKHojrgxALA2d1qMcebkcb+0j6VfF0?= =?us-ascii?Q?4VGUNfBqrioUzv8vqdzvwIUkJLGSj8JjO4oWscno3jNYyIbQ6byx6OGTKeFB?= =?us-ascii?Q?zKYoywav5f+aYyn8jLclXMYJpquN6zAbSA3Z5+ytom3LV5RxKg8o5+WD8Srx?= =?us-ascii?Q?rzjrnl/b6/uIzjmlZcf1JVH2zZWfBBGmt8lwF1PYs7X8mcWDY9CneWaI9cbK?= =?us-ascii?Q?tludqFQS6M7dpHYKC+fSR1a0ovzbFXig9CMOvipaaFK0m/JkaLjAWPSH7KBP?= =?us-ascii?Q?C/sizvd0maB6CPtZTDLCEmxFHDNTnqS1i5QkzHq0TfOEkGvc3J2Z+WAylKVZ?= =?us-ascii?Q?q9vu5Zu3YeNmnE+kDaPxNpGXXQyPqMJaJKNJtbZPcayYb/BfuwXIocaM5hyn?= =?us-ascii?Q?xlB6+F1IZqdoA1QGb4A5yzVgDtxrmh1IYgn3QeMGGuTiEJU09LM2UzNE3QjK?= =?us-ascii?Q?cKaB4oifhhrJf0zW4E1NIJLdM0CNmgHfEVgS8Ah2CB99BDWbfZu6e9PFaEV3?= =?us-ascii?Q?cE7sdmi3dKpXNC00W4DCIV7LFevLZkbpgDCHizb7B48ZAaBhfbXwmQ51huMz?= =?us-ascii?Q?/4EfpQFDHhKsCTeQ3V+Hd5N1fLyP/Cp5WTaTZg2kh4JxeyK6xaG3UBRRdMPv?= =?us-ascii?Q?VKWmAOf4zD2CoNi4oU1GASkZbCs5dpRpDTNsGgLCfgbFgejR+5bJD1WzXiR5?= =?us-ascii?Q?M7whvLfEAHnXHBPrr0DiE6cqiilAmLLMRX5EtGwy2TXfAt1MeNy+rIc79vDn?= =?us-ascii?Q?hL/EvyutEJHgyddUzTww4T6svgWqIdim1/Ct5+RULnmXeiAbZaWLwhQruSha?= =?us-ascii?Q?BjTm64hY4xjPHuciUTLSSX1ol0i/SI4klD8XUO9gyl1OpCev9jlqFZfKbMZY?= =?us-ascii?Q?qkAuQWnSyqkw259bZyVgK3AbW/pVTz/ixwNDZn3mguvQ/ge94+Hwm2/1JJa3?= =?us-ascii?Q?Mvb24F04FOOMb0h0wOVAASRonEdJu6/tMSlsDm3OaJ1zOx8by06f1P7Kam0C?= =?us-ascii?Q?wtp1tLHfe6VHT60RDC5MqsGTWp0DaJkvIFBFJlxqi5LcjKYfQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1134; 6:iy/eU/zb7JIfoPPU4yLxsE30i6T+MP9d1XYPw/8ZJwvPz6lzK6VfjhM1z+ulTr9MGKKjb8bXuE5puBu/eUFW6+BPKpiMeSM6vHJolcsyiUfTlkTaOBlAV9AvttRZKvrex30tnpiNrjPWBNNmscSCLgHP1KyMnuGT9roD7et7n1oM2LOoP3b3+k8pIUwe+MxrsSRgchYVH8PGdIwhQWNOqCPeRn/8HmKVOzHhYDJbIVdtAQVYXm7SOoSQWMIaBuPTZ98tlvUywOvNZFWyfRhFe2N/RMNHJ5y9pAtCl3exMIglE+ag1LnzFUXL0yuIx9N8LNzmgFcBBI3ODKLxkDb6pw==; 5:KGzXA6XPb2LC1V8pyY/Fm3jInl5tlNTCOlKOJwd4EqIG8TLkFroXCA3iYLdhlduQYp/VFhZhf+k8cKpoCzyM6XalEGre9ac2qdkChRTe9sNzujfxB6FvcRR7EzA6IgekFrs+alu2FsfbpwOpr8g/vQ==; 24:4hsnpwZqa0DmPpZy6AhpGwFoFpcqb9pRDGnxtSBGtvsrBNg4F8H3nD0TVk6JU9d9xEtbdE2k2saleqYQ1DXhgjMQoaaBdOmJHyLui/qCgsM=; 7:siX3eZspFF8YYtrjNxgdUrrBJ8qCk7LbMV9FRhxouR1NLoWmBHT+KARi3g3m6/9CAKyPwxn3Fh6uDcQUNdBvp0WcIScga4aHwmyMlsnW/215wPZdupyPE8+fyf67HAu8LDIjc1QURwpquast3Ta8mAW+sYYVVaW3gZmTIGRaM4J5AkzZ6nIxMc0eEjImQ2P2nYtiJMi8gLqWjj6AomBlaX561E+ogasmzFSaFNx+L/Y= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 00:12:53.8426 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR02MB1134 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.63 Subject: [Qemu-devel] [PATCH v1 7/8] tcg: Replace fprintf(stderr, "*\n" with error_report() 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: Peter Crosthwaite , Stefan Weil , armbru@redhat.com, alistair.francis@xilinx.com, Paolo Bonzini , alistair23@gmail.com, Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_6 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace a large number of the fprintf(stderr, "*\n" calls with error_report(). The functions were renamed with these commands and then compiler issues where manually fixed. find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_= report("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_re= port("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report= ("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("= \1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1= "\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\= 2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2)= ;|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|= Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig= }' \ {} + find ./* -type f -exec sed -i \ 'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}'= \ {} + find ./* -type f -exec sed -i \ 'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \ {} + Signed-off-by: Alistair Francis Cc: Paolo Bonzini Cc: Peter Crosthwaite Cc: Richard Henderson Cc: Stefan Weil --- cpus.c | 8 ++++---- exec.c | 14 +++++++------- tcg/optimize.c | 8 ++++---- tcg/tcg.c | 2 +- tcg/tcg.h | 3 ++- tcg/tci.c | 2 +- tcg/tci/tcg-target.inc.c | 4 ++-- vl.c | 2 +- 8 files changed, 22 insertions(+), 21 deletions(-) diff --git a/cpus.c b/cpus.c index c9a624003a..784cee4848 100644 --- a/cpus.c +++ b/cpus.c @@ -258,7 +258,7 @@ int64_t cpu_get_icount_raw(void) =20 if (cpu && cpu->running) { if (!cpu->can_do_io) { - fprintf(stderr, "Bad icount read\n"); + error_report("Bad icount read"); exit(1); } /* Take into account what has run */ @@ -1113,7 +1113,7 @@ static void *qemu_kvm_cpu_thread_fn(void *arg) =20 r =3D kvm_init_vcpu(cpu); if (r < 0) { - fprintf(stderr, "kvm_init_vcpu failed: %s\n", strerror(-r)); + error_report("kvm_init_vcpu failed: %s", strerror(-r)); exit(1); } =20 @@ -1143,7 +1143,7 @@ static void *qemu_kvm_cpu_thread_fn(void *arg) static void *qemu_dummy_cpu_thread_fn(void *arg) { #ifdef _WIN32 - fprintf(stderr, "qtest is not supported under Windows\n"); + error_report("qtest is not supported under Windows"); exit(1); #else CPUState *cpu =3D arg; @@ -1525,7 +1525,7 @@ static void qemu_cpu_kick_thread(CPUState *cpu) #else /* _WIN32 */ if (!qemu_cpu_is_self(cpu)) { if (!QueueUserAPC(dummy_apc_func, cpu->hThread, 0)) { - fprintf(stderr, "%s: QueueUserAPC failed with error %lu\n", + error_report("%s: QueueUserAPC failed with error %lu", __func__, GetLastError()); exit(1); } diff --git a/exec.c b/exec.c index 7a80460725..f71b714b10 100644 --- a/exec.c +++ b/exec.c @@ -1045,7 +1045,7 @@ static RAMBlock *qemu_get_ram_block(ram_addr_t addr) } } =20 - fprintf(stderr, "Bad ram offset %" PRIx64 "\n", (uint64_t)addr); + error_report("Bad ram offset %" PRIx64 "", (uint64_t)addr); abort(); =20 found: @@ -1658,7 +1658,7 @@ static ram_addr_t find_ram_offset(ram_addr_t size) } =20 if (offset =3D=3D RAM_ADDR_MAX) { - fprintf(stderr, "Failed to find gap of requested size: %" PRIu64 "= \n", + error_report("Failed to find gap of requested size: %" PRIu64 "", (uint64_t)size); abort(); } @@ -1688,8 +1688,8 @@ static void qemu_ram_setup_dump(void *addr, ram_addr_= t size) ret =3D qemu_madvise(addr, size, QEMU_MADV_DONTDUMP); if (ret) { perror("qemu_madvise"); - fprintf(stderr, "madvise doesn't support MADV_DONTDUMP, " - "but dump_guest_core=3Doff specified\n"); + error_report("madvise doesn't support MADV_DONTDUMP, " + "but dump_guest_core=3Doff specified"); } } } @@ -1725,7 +1725,7 @@ void qemu_ram_set_idstr(RAMBlock *new_block, const ch= ar *name, DeviceState *dev) RAMBLOCK_FOREACH(block) { if (block !=3D new_block && !strcmp(block->idstr, new_block->idstr)) { - fprintf(stderr, "RAMBlock \"%s\" already registered, abort!\n", + error_report("RAMBlock \"%s\" already registered, abort!", new_block->idstr); abort(); } @@ -2153,8 +2153,8 @@ void qemu_ram_remap(ram_addr_t addr, ram_addr_t lengt= h) flags, -1, 0); } if (area !=3D vaddr) { - fprintf(stderr, "Could not remap addr: " - RAM_ADDR_FMT "@" RAM_ADDR_FMT "\n", + error_report("Could not remap addr: " + RAM_ADDR_FMT "@" RAM_ADDR_FMT "", length, addr); exit(1); } diff --git a/tcg/optimize.c b/tcg/optimize.c index adfc56ce62..31b15b508d 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -96,8 +96,8 @@ static TCGOpcode op_to_mov(TCGOpcode op) case 64: return INDEX_op_mov_i64; default: - fprintf(stderr, "op_to_mov: unexpected return value of " - "function op_bits.\n"); + error_report("op_to_mov: unexpected return value of " + "function op_bits."); tcg_abort(); } } @@ -110,8 +110,8 @@ static TCGOpcode op_to_movi(TCGOpcode op) case 64: return INDEX_op_movi_i64; default: - fprintf(stderr, "op_to_movi: unexpected return value of " - "function op_bits.\n"); + error_report("op_to_movi: unexpected return value of " + "function op_bits."); tcg_abort(); } } diff --git a/tcg/tcg.c b/tcg/tcg.c index dff9999bc6..2bbd20fc28 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -673,7 +673,7 @@ static void tcg_temp_free_internal(int idx) #if defined(CONFIG_DEBUG_TCG) s->temps_in_use--; if (s->temps_in_use < 0) { - fprintf(stderr, "More temporaries freed than allocated!\n"); + error_report("More temporaries freed than allocated!"); } #endif =20 diff --git a/tcg/tcg.h b/tcg/tcg.h index 25662c36d4..1ac0f817bc 100644 --- a/tcg/tcg.h +++ b/tcg/tcg.h @@ -29,6 +29,7 @@ #include "cpu.h" #include "exec/tb-context.h" #include "qemu/bitops.h" +#include "qemu/error-report.h" #include "tcg-mo.h" #include "tcg-target.h" =20 @@ -897,7 +898,7 @@ typedef struct TCGTargetOpDef { =20 #define tcg_abort() \ do {\ - fprintf(stderr, "%s:%d: tcg fatal error\n", __FILE__, __LINE__);\ + error_report("%s:%d: tcg fatal error", __FILE__, __LINE__);\ abort();\ } while (0) =20 diff --git a/tcg/tci.c b/tcg/tci.c index f39bfb95c0..10b88f7308 100644 --- a/tcg/tci.c +++ b/tcg/tci.c @@ -35,7 +35,7 @@ /* Marker for missing code. */ #define TODO() \ do { \ - fprintf(stderr, "TODO %s:%u: %s()\n", \ + error_report("TODO %s:%u: %s()", \ __FILE__, __LINE__, __func__); \ tcg_abort(); \ } while (0) diff --git a/tcg/tci/tcg-target.inc.c b/tcg/tci/tcg-target.inc.c index 913c3802a3..2f4b56d3ba 100644 --- a/tcg/tci/tcg-target.inc.c +++ b/tcg/tci/tcg-target.inc.c @@ -29,7 +29,7 @@ /* Marker for missing code. */ #define TODO() \ do { \ - fprintf(stderr, "TODO %s:%u: %s()\n", \ + error_report("TODO %s:%u: %s()", \ __FILE__, __LINE__, __func__); \ tcg_abort(); \ } while (0) @@ -403,7 +403,7 @@ static const char *target_parse_constraint(TCGArgConstr= aint *ct, void tci_disas(uint8_t opc) { const TCGOpDef *def =3D &tcg_op_defs[opc]; - fprintf(stderr, "TCG %s %u, %u, %u\n", + error_report("TCG %s %u, %u, %u", def->name, def->nb_oargs, def->nb_iargs, def->nb_cargs); } #endif diff --git a/vl.c b/vl.c index 4fd01fda91..c9d28bf79e 100644 --- a/vl.c +++ b/vl.c @@ -2232,7 +2232,7 @@ static DisplayType select_display(const char *p) display_opengl =3D 1; display =3D DT_EGL; #else - fprintf(stderr, "egl support is disabled\n"); + error_report("egl support is disabled"); exit(1); #endif } else if (strstart(p, "curses", &opts)) { --=20 2.11.0 From nobody Sun Apr 28 07:58:36 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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 1506385127281997.8447444699096; Mon, 25 Sep 2017 17:18:47 -0700 (PDT) Received: from localhost ([::1]:44928 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdaB-0006yq-5X for importer@patchew.org; Mon, 25 Sep 2017 20:18:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55854) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdVH-0003NP-Vo for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwdVB-00061N-82 for qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:13:35 -0400 Received: from mail-dm3nam03on0053.outbound.protection.outlook.com ([104.47.41.53]:15184 helo=NAM03-DM3-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 1dwdUm-0005hB-Cq; Mon, 25 Sep 2017 20:13:04 -0400 Received: from BN6PR02CA0097.namprd02.prod.outlook.com (10.161.158.38) by CY1PR0201MB1931.namprd02.prod.outlook.com (10.163.56.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Tue, 26 Sep 2017 00:13:00 +0000 Received: from SN1NAM02FT030.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::206) by BN6PR02CA0097.outlook.office365.com (2603:10b6:405:60::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.9 via Frontend Transport; Tue, 26 Sep 2017 00:13:00 +0000 Received: from xsj-pvapsmtpgw01 (149.199.60.83) by SN1NAM02FT030.mail.protection.outlook.com (10.152.72.114) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14 via Frontend Transport; Tue, 26 Sep 2017 00:12:59 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUg-0007BH-UG; Mon, 25 Sep 2017 17:12:58 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dwdUg-0008WQ-Rc; Mon, 25 Sep 2017 17:12:58 -0700 Received: from xsj-pvapsmtp01 (smtp.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v8Q0Co1I023644; Mon, 25 Sep 2017 17:12:50 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dwdUY-0008Vf-5l; Mon, 25 Sep 2017 17:12:50 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=2geKn/izkLRVtN9RnSTYUj4qEWyON0ESlYf0WluNHMc=; b=ZgzfkQBBaASa60UF6q/qlyuEsSf7CJE4qQtHd2ggMk7GatQXl3F5o9yRA53QC1Z39tkajCRXDqOZnV+rBunAh8T9s7d3I1NVOyuQJ4QCfpGNkXLbcipc9AOunTZX5O2XZ81rlKIHWUJi26jzPpTa3yoej1a6zY4tswGeBfBwDAY= Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=bestguesspass action=none header.from=xilinx.com; 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; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; From: Alistair Francis To: Date: Mon, 25 Sep 2017 17:09:10 -0700 Message-ID: <5ad72536402da2879d49b58753cc709a8ff22de9.1506384415.git.alistair.francis@xilinx.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23350.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(376002)(39860400002)(346002)(2980300002)(438002)(189002)(199003)(8676002)(53946003)(50226002)(16200700003)(54906003)(2351001)(551934003)(316002)(478600001)(50986999)(76176999)(118296001)(48376002)(50466002)(305945005)(4326008)(5003940100001)(81166006)(47776003)(5660300001)(39060400002)(575784001)(356003)(33646002)(189998001)(6916009)(2906002)(7416002)(9786002)(6666003)(36756003)(2950100002)(81156014)(77096006)(36386004)(16586007)(8936002)(106466001)(63266004)(21314002)(107986001)(579004)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0201MB1931; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT030; 1:RKeD792DdvLBMqjHP2oIqLfQr8Ktk5wRddRf/SgpWP9u6JlL1IeliMmwjjFZgPcnGPHDbKos/luXH0MTOjHueFdXxrd3OzbGP4hIx2RggH8JL5oqpgTnMt2JwST5FMKH MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 39f2f2c0-09e3-4792-015a-08d50473590c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(8251501002)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:CY1PR0201MB1931; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1931; 3:D1Dh6rNwc1njTGB8J9IA21zKR4XaFLCyfTQ9oiShedj385WY2/c3wvWqzWrqTzd1K6ceSyMx0ZyO3s20MDk9OKab5LIDlblhlDtvhhKSXkivqqipZooaFoNVjhNXJ3NIIr0vmbtBagXSlA5HwJZZoVhQniVxqBwTtd5VPJyKWGwAAF1TKt83NReCpq7yBt7/haushwgS6xfBxVpiM7q2rRJxEq5v8dgCs3JS+yKy0vgMnggPq/YLVI9aWljlniz9SK5HONON9GLIOrvGqKOyphr5j79MbimZoRiDNGHbV9blkKUu39BDogJvLozlm0FTiJsBCcYlZ02EXd6LXAOfJHIQp783rIr8OFlBcDf1C2M=; 25:65efDwxCYy0K4Cu4BxMU1QMC0EZzkUFKQkUeh/Xd/jSlI2Ynm9uhigLIcFtzeG+LqcPOj1XGkOm0yTrpSCrqXHfXjqwSDJYlJ2SzGbt1tL5vNxkK7aJcRXlLY2aI1Z/Jhihd5dl/ppadV7Vq/Ae/Ygim5kQTgJ7yc2f/xPZzL40Uv715mRD8uGNOZ2/Vd9sVTFBhdRdfonSB0cV+9TnKBzvSC1c5QPF9BS/xmP+BpIZLhRmV2FrXWm6LZlIrBvmbh0aDATVCBzKuj1SB0XC5rwQ/DP9KNR/ahy7ullEELp7Ro2XYhUQxfpn4J3q2AIC9YB9/TqNsRvl57gRSXvoBNA== X-MS-TrafficTypeDiagnostic: CY1PR0201MB1931: X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1931; 31:PTZZ92G+xedlI2eJsamf8U0A+Sg49ReTu9yJcFABwnK11LosJQYfREZtEGcF1dW+lUioScpFVfrmPqsNp6VdmDf0PYiqPUUvIIIX3RHj5sBGceKjsePH5qdXkdku3gOkclCatAwnDtuVOLaHqBUNcj7Rsty0faAM36Ky81cfJZame58jhHe/ICbXnCdbq4oUtemr+X2fVGo+RunHUL8X1Xytu0qyv+I1IPcdQz8mBiY=; 20:021iCoCmWA2kDelx/cIWidJTCDkTLJiIF36xhNol2vJ8W4HCZIPOQApIvNhRAs1Ht7jxCwzcNEFHx2LcYddtLj85YveT+LRbzVn5ZsrBwduKddxXNVmDKaa5MOSHYAFtjPoBnGE6P5WjocGYVPwmLyYI1PUEyKuL+xuoKPHV/wSJm+i/pith8SVnnlApkZktTygKBNLcqk+ke4rFtSIMwvJXYTYJoA+BmCMLwWZai/pLz2Hdfw0w0sSEaApoSUg99O1ifvbWrTjcv+ektFhVsguTZGgenac888KGstL1y4h9ueYWRpRfwxJmIpFF36HQTq566dkM0//GbHVjPPpuBi9Sha8xQ54b9Vg8e5StTVl65roHMYjdtO/XHqHiEm3JvifvzJY/w/GkFAtrEgMyElyWHSExqYwpM1JMF2wB6wAXbKOESFgI8LaBtC8U5tYMh3LNHMgeuhbcMap6J2Jq5UreuuSojcqR4lr23cPClpZmu3QcgzlzKETxgdo6kdw3 X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(190383065149520)(192813158149592)(104084551191319)(21532816269658); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(93004095)(3002001)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(20161123564025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR0201MB1931; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR0201MB1931; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1931; 4:hAEiQvAh6qnMlQgP0/fHzYcbbBUWOdTN7WZtvVBPXZzptmJ126OCfXndwc6PnvRFkf2QgkLxA3auGpc086QIbP93zP7Lo+wT4gE12Zm+4ql2EkpcGGAkROtl2BkTYIWnCt/tLFjR1vAO9LTJvilE67Q3HhN6Je35sKZpLycXBXNZTz80N3Vfc1rAUTNr/H+CK3j4zXFIfmwfDcT9glaN0LuLfR/nkkdKEi3ThaXE0XrwgRX1IcrbjBaoDED22qEMYMTo7KqVTfGi8AJ0qEeL7WHnvDtxCrNnVsP/wGrIRcLYnHA6Lgk25sQjz/5K1j3NUSQPi08XI5/XPCrVuwzGVDSZuSVvmdqwIodhKeV2yuvgV0arS3Co3mjS4KaDzpGNrxYo8DBYyGyg3fXRmUp5ArafunMndhTbqcOHquUiMKZ0ytTzf/9uHfdXFUD689b0 X-Forefront-PRVS: 0442E569BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0201MB1931; 23:VE1deprnrzks32GnAoQuT10bcam9YhLkvj0y+AD?= =?us-ascii?Q?wqNHEGXOz5pnzadOWZTD4XsgBRAypz9yt2+24LmziKV7nBPZbvY3t06NvFvu?= =?us-ascii?Q?s6wlRTQ5Qc7TkRuQFNkkzMaO0Air6MhVV2mnwwFpwzCBHV3272I4GGtgdBCV?= =?us-ascii?Q?A4UsZW+balpACxXF02xkysuhPLoLGWXDpCbSQuKwFkfOsil6Zxv+LqnlUTZh?= =?us-ascii?Q?zW5TqnmIRKH/eDGLGuD4WY4qplCH5eF2fEICaUz8rcMeO1DSK4etA6lq92ce?= =?us-ascii?Q?5xgl4DG8e/qJrY6hsZjSlvdCi/kaHL3ttjcieRFIYQQ90jUxTHqld18hULIx?= =?us-ascii?Q?FwgyoG4I0FxsGdl+Kgfq3Q7RiBcxPp67uYDp7s0jP1iaFxaOi+U51HnzL8tk?= =?us-ascii?Q?Gto17rPRzudNplHRhs29lZZAs5uALkuZIsqLl2h9THGz5oX4MXvA5RJK17Aa?= =?us-ascii?Q?Q8IPDN5GertQyfGC6vcAo5hJoN2j6OxRZM9YnabpMwnjqIdCY7jl846UoQTI?= =?us-ascii?Q?XGVF8bGwoWIIzS2slj9hmaU+tBEWPCMonBbTzF7pp5Ku0DzaHAp+zz8vAM/G?= =?us-ascii?Q?/MSwrvQC/CfKrQJpHVQjQ9jBYxEFGxfBgU6l36Meci6BWbO65rOLrtqkqgXO?= =?us-ascii?Q?YT2kYGRzDRcrFh/ORzHZfFEBUD3BBjLjYUPcfaGhW2v+EOg9OFROpwxswLfe?= =?us-ascii?Q?re+mw7aL02O86SeiuU1MJu2oQyqf6GD2Ly2e+c7A1Q1a1BcyLrk2wzQxTvG4?= =?us-ascii?Q?GWzlQX4SfF+BNDh86Za5vwP87sYRQ9HF+IQlJRixwfKseDulRxnECIGabATc?= =?us-ascii?Q?CexhLhHEBAriyZbKkjpHrykah8u8c2iaIdENAOnHEchGAzOAjX733KLWk7s2?= =?us-ascii?Q?vfm+Y0o6lQZKI9BQLh12gt3re5kD8XSCrwprtkhx0fIdVjDBZmfisiJyQHif?= =?us-ascii?Q?ZDlWcEOytezxqQjO7sXLsim0GE2gl0YTkLhDsa9iFK0tKGbFyvFKJOZVfEkW?= =?us-ascii?Q?ps2cwK8xRl78DJOvWloesmNlc5LSvUhHvrgwC80dt4jW3vWO6ClWtILzNhKx?= =?us-ascii?Q?bc6DsFg8hjBqellKox/aaPEz6nk5B5EhClPNzrvq2vnAmC67pVyJy0IDxxSR?= =?us-ascii?Q?A7yM5ni9uaG5B2QLRbLEVcDnjNFC2auXPusnm+eDceEXXkNUYPmtx+2pFFPn?= =?us-ascii?Q?dTQGH8pYcBqXJIcnZ7NpGumppk3DMRBEn3MMD?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1931; 6:AedPvF4qVHhEDq/HF4RCGgkJmG77hPIriRjs9ARRTD9PIKwfPQVHjWL7MzMM4wIxHwtrCRqHPXqLMmGLUvpdP241ntn+aTptJ2lkoOSepfwCfHDVgjpawiAbym3hKvgZ4DR2QMfPkyPDwFf7rs+fTBE3XxQJVCwThKcVnvKuYoyYsg+cm5QDLi2sxQvVuBMs9mzwrdqfR2Q3FCorRvkvzI9E6a/vG1CZFrAKW7/rT5/p46i0BShzgJBBZzmfRbZsNMtSEwyHqrEmRDb01iHkpMiVU1aCa+icWG2PXhsdQ5SIyGAfaq1pj2lluMAocG2jia1DXOKnW296tSgbzW2IGw==; 5:pAHoPrKEsftAKWJydgk15PWvOAdU/gEl73cKg0IQNWlUoT/HxRhK0j9DtY623QCRhBBgcg8fEHg8psz3eD3N0bRDHH5J5bFXjrrKh1QPORgQdwSEIRqdSWLqBECUj/R7mXw94pvA2lUiSiY2fbxxPQ==; 24:dP+zlHQ0vTZZglST34kV1EkuvQZhUXU/DNBjbpAp+RGfhc/JafC/3IrWBRPSgP2so2XpUnIwPrKhLT9ax7BQ0yEpPT+PszTXJSZQod7nyVs=; 7:9cccN803ciRWUPkzj2v4Mdaj1twkftrXVDwwvm85QJPGlhbF69uTHDH4+AYfWe/YmcfhSMmHY+kCUPcWeRx5veUozNSTlGO0ejkXA1jo59zy1WQuw+eTcbRare3IsCy0WWw3doQg4pQn2GWyYzu4q9RYZbdUiH/86HHj7+xOKW3naJjTya7kBwq1321r256YT5HivmoDJ3DWB/8kuUcpAaeqmpEJztZbIc4A7ioznjk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 00:12:59.7158 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0201MB1931 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.53 Subject: [Qemu-devel] [PATCH v1 8/8] target: Replace fprintf(stderr, "*\n" with error_report() 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: Cornelia Huck , Eduardo Habkost , Marcelo Tosatti , "Edgar E. Iglesias" , armbru@redhat.com, alistair.francis@xilinx.com, Christian Borntraeger , Michael Walle , qemu-arm@nongnu.org, qemu-ppc@nongnu.org, Paolo Bonzini , Yongbok Kim , alistair23@gmail.com, Guan Xuetao , Aurelien Jarno , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace a large number of the fprintf(stderr, "*\n" calls with error_report(). The functions were renamed with these commands and then compiler issues where manually fixed. find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_= report("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_re= port("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report= ("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("= \1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1= "\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\= 2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2)= ;|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|= Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig= }' \ {} + find ./* -type f -exec sed -i \ 'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}'= \ {} + find ./* -type f -exec sed -i \ 'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \ {} + Some lines where then manually tweaked to pass checkpatch. Signed-off-by: Alistair Francis Cc: "Edgar E. Iglesias" Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Cc: Marcelo Tosatti Cc: Michael Walle Cc: Aurelien Jarno Cc: Yongbok Kim Cc: Christian Borntraeger Cc: Cornelia Huck Cc: Guan Xuetao Cc: qemu-arm@nongnu.org Cc: qemu-ppc@nongnu.org --- target/arm/arm-powerctl.c | 5 +++-- target/arm/arm-semi.c | 3 ++- target/arm/helper.c | 4 ++-- target/arm/kvm.c | 16 ++++++------- target/arm/kvm32.c | 2 +- target/arm/kvm64.c | 2 +- target/arm/translate-a64.c | 4 ++-- target/arm/translate.c | 2 +- target/cris/helper.c | 2 +- target/cris/translate.c | 2 +- target/i386/hax-all.c | 52 +++++++++++++++++++++-------------------= --- target/i386/hax-darwin.c | 26 +++++++++++----------- target/i386/hax-mem.c | 4 ++-- target/i386/hax-windows.c | 42 +++++++++++++++++------------------ target/i386/kvm.c | 38 +++++++++++++++---------------- target/i386/misc_helper.c | 12 +++++----- target/lm32/op_helper.c | 4 ++-- target/mips/mips-semi.c | 3 ++- target/mips/translate.c | 2 +- target/ppc/excp_helper.c | 4 ++-- target/ppc/kvm.c | 36 +++++++++++++++--------------- target/ppc/mmu-hash64.c | 2 +- target/ppc/mmu_helper.c | 2 +- target/ppc/translate.c | 20 ++++++++--------- target/ppc/translate_init.c | 53 ++++++++++++++++++++++------------------= ---- target/s390x/kvm.c | 20 ++++++++--------- target/s390x/misc_helper.c | 2 +- target/sh4/translate.c | 4 ++-- target/unicore32/translate.c | 4 ++-- 29 files changed, 188 insertions(+), 184 deletions(-) diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c index 25207cb850..2d56d5d579 100644 --- a/target/arm/arm-powerctl.c +++ b/target/arm/arm-powerctl.c @@ -9,6 +9,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "cpu.h" #include "cpu-qom.h" #include "internals.h" @@ -24,7 +25,7 @@ #define DPRINTF(fmt, args...) \ do { \ if (DEBUG_ARM_POWERCTL) { \ - fprintf(stderr, "[ARM]%s: " fmt , __func__, ##args); \ + error_report("[ARM]%s: " fmt , __func__, ##args); \ } \ } while (0) =20 @@ -32,7 +33,7 @@ CPUState *arm_get_cpu_by_id(uint64_t id) { CPUState *cpu; =20 - DPRINTF("cpu %" PRId64 "\n", id); + DPRINTF("cpu %" PRId64 "", id); =20 CPU_FOREACH(cpu) { ARMCPU *armcpu =3D ARM_CPU(cpu); diff --git a/target/arm/arm-semi.c b/target/arm/arm-semi.c index 7cac8734c7..f8f12102f1 100644 --- a/target/arm/arm-semi.c +++ b/target/arm/arm-semi.c @@ -19,6 +19,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" =20 #include "cpu.h" #include "exec/semihost.h" @@ -649,7 +650,7 @@ target_ulong do_arm_semihosting(CPUARMState *env) } /* fall through -- invalid for A32/T32 */ default: - fprintf(stderr, "qemu: Unsupported SemiHosting SWI 0x%02x\n", nr); + error_report("qemu: Unsupported SemiHosting SWI 0x%02x", nr); cpu_dump_state(cs, stderr, fprintf, 0); abort(); } diff --git a/target/arm/helper.c b/target/arm/helper.c index 8be78ea2f8..881afc3382 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -5460,9 +5460,9 @@ static void add_cpreg_to_hashtable(ARMCPU *cpu, const= ARMCPRegInfo *r, ARMCPRegInfo *oldreg; oldreg =3D g_hash_table_lookup(cpu->cp_regs, key); if (oldreg && !(oldreg->type & ARM_CP_OVERRIDE)) { - fprintf(stderr, "Register redefined: cp=3D%d %d bit " + error_report("Register redefined: cp=3D%d %d bit " "crn=3D%d crm=3D%d opc1=3D%d opc2=3D%d, " - "was %s, now %s\n", r2->cp, 32 + 32 * is64, + "was %s, now %s", r2->cp, 32 + 32 * is64, r2->crn, r2->crm, r2->opc1, r2->opc2, oldreg->name, r2->name); g_assert_not_reached(); diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 211a7bf7be..0165960405 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -139,7 +139,7 @@ static void kvm_arm_host_cpu_class_init(ObjectClass *oc= , void *data) * TCG CPUs. */ if (!kvm_arm_get_host_cpu_features(ahcc)) { - fprintf(stderr, "Failed to retrieve host CPU features!\n"); + error_report("Failed to retrieve host CPU features!"); abort(); } } @@ -256,7 +256,7 @@ static void kvm_arm_set_device_addr(KVMDevice *kd) } =20 if (ret < 0) { - fprintf(stderr, "Failed to set device address: %s\n", + error_report("Failed to set device address: %s", strerror(-ret)); abort(); } @@ -352,7 +352,7 @@ int kvm_arm_init_cpreg_list(ARMCPU *cpu) case KVM_REG_SIZE_U64: break; default: - fprintf(stderr, "Can't handle size of register in kernel list\= n"); + error_report("Can't handle size of register in kernel list"); ret =3D -EINVAL; goto out; } @@ -383,7 +383,7 @@ int kvm_arm_init_cpreg_list(ARMCPU *cpu) /* Shouldn't happen unless kernel is inconsistent about * what registers exist. */ - fprintf(stderr, "Initial read of kernel register state failed\n"); + error_report("Initial read of kernel register state failed"); ret =3D -EINVAL; goto out; } @@ -478,11 +478,11 @@ void kvm_arm_reset_vcpu(ARMCPU *cpu) */ ret =3D kvm_arm_vcpu_init(CPU(cpu)); if (ret < 0) { - fprintf(stderr, "kvm_arm_vcpu_init failed: %s\n", strerror(-ret)); + error_report("kvm_arm_vcpu_init failed: %s", strerror(-ret)); abort(); } if (!write_kvmstate_to_list(cpu)) { - fprintf(stderr, "write_kvmstate_to_list failed\n"); + error_report("write_kvmstate_to_list failed"); abort(); } } @@ -499,7 +499,7 @@ int kvm_arm_sync_mpstate_to_kvm(ARMCPU *cpu) }; int ret =3D kvm_vcpu_ioctl(CPU(cpu), KVM_SET_MP_STATE, &mp_state); if (ret) { - fprintf(stderr, "%s: failed to set MP_STATE %d/%s\n", + error_report("%s: failed to set MP_STATE %d/%s", __func__, ret, strerror(-ret)); return -1; } @@ -517,7 +517,7 @@ int kvm_arm_sync_mpstate_to_qemu(ARMCPU *cpu) struct kvm_mp_state mp_state; int ret =3D kvm_vcpu_ioctl(CPU(cpu), KVM_GET_MP_STATE, &mp_state); if (ret) { - fprintf(stderr, "%s: failed to get MP_STATE %d/%s\n", + error_report("%s: failed to get MP_STATE %d/%s", __func__, ret, strerror(-ret)); abort(); } diff --git a/target/arm/kvm32.c b/target/arm/kvm32.c index f925a21481..97d36a174d 100644 --- a/target/arm/kvm32.c +++ b/target/arm/kvm32.c @@ -191,7 +191,7 @@ int kvm_arch_init_vcpu(CPUState *cs) ARMCPU *cpu =3D ARM_CPU(cs); =20 if (cpu->kvm_target =3D=3D QEMU_KVM_ARM_TARGET_NONE) { - fprintf(stderr, "KVM is not supported for this guest CPU type\n"); + error_report("KVM is not supported for this guest CPU type"); return -EINVAL; } =20 diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c index 6554c30007..b3e1484069 100644 --- a/target/arm/kvm64.c +++ b/target/arm/kvm64.c @@ -502,7 +502,7 @@ int kvm_arch_init_vcpu(CPUState *cs) =20 if (cpu->kvm_target =3D=3D QEMU_KVM_ARM_TARGET_NONE || !object_dynamic_cast(OBJECT(cpu), TYPE_AARCH64_CPU)) { - fprintf(stderr, "KVM is not supported for this guest CPU type\n"); + error_report("KVM is not supported for this guest CPU type"); return -EINVAL; } =20 diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 899ffb96fc..eac76a0747 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -505,8 +505,8 @@ static inline void assert_fp_access_checked(DisasContex= t *s) { #ifdef CONFIG_DEBUG_TCG if (unlikely(!s->fp_access_checked || s->fp_excp_el)) { - fprintf(stderr, "target-arm: FP access check missing for " - "instruction 0x%08x\n", s->insn); + error_report("target-arm: FP access check missing for " + "instruction 0x%08x", s->insn); abort(); } #endif diff --git a/target/arm/translate.c b/target/arm/translate.c index ab1a12a1b8..d484381aef 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -857,7 +857,7 @@ void arm_test_cc(DisasCompare *cmp, int cc) goto no_invert; =20 default: - fprintf(stderr, "Bad condition code 0x%x\n", cc); + error_report("Bad condition code 0x%x", cc); abort(); } =20 diff --git a/target/cris/helper.c b/target/cris/helper.c index af78cca8b9..ba9ce538c3 100644 --- a/target/cris/helper.c +++ b/target/cris/helper.c @@ -282,7 +282,7 @@ hwaddr cris_cpu_get_phys_page_debug(CPUState *cs, vaddr= addr) if (!miss) { phy =3D res.phy; } - D(fprintf(stderr, "%s %x -> %x\n", __func__, addr, phy)); + D(error_report("%s %x -> %x", __func__, addr, phy)); return phy; } #endif diff --git a/target/cris/translate.c b/target/cris/translate.c index 38a999e6f1..8847005984 100644 --- a/target/cris/translate.c +++ b/target/cris/translate.c @@ -138,7 +138,7 @@ typedef struct DisasContext { =20 static void gen_BUG(DisasContext *dc, const char *file, int line) { - fprintf(stderr, "BUG: pc=3D%x %s %d\n", dc->pc, file, line); + error_report("BUG: pc=3D%x %s %d", dc->pc, file, line); if (qemu_log_separate()) { qemu_log("BUG: pc=3D%x %s %d\n", dc->pc, file, line); } diff --git a/target/i386/hax-all.c b/target/i386/hax-all.c index 3ce6950296..b0462c8b4c 100644 --- a/target/i386/hax-all.c +++ b/target/i386/hax-all.c @@ -100,13 +100,13 @@ static int hax_get_capability(struct hax_state *hax) } =20 if (!(cap->winfo & HAX_CAP_UG)) { - fprintf(stderr, "UG mode is not supported by the hardware.\n"); + error_report("UG mode is not supported by the hardware."); return -ENOTSUP; } =20 if (cap->wstatus & HAX_CAP_MEMQUOTA) { if (cap->mem_quota < hax->mem_quota) { - fprintf(stderr, "The VM memory needed exceeds the driver limit= .\n"); + error_report("The VM memory needed exceeds the driver limit."); return -ENOSPC; } } @@ -126,13 +126,13 @@ static int hax_version_support(struct hax_state *hax) if (hax_min_version > version.cur_version) { fprintf(stderr, "Incompatible HAX module version %d,", version.cur_version); - fprintf(stderr, "requires minimum version %d\n", hax_min_version); + error_report("requires minimum version %d", hax_min_version); return 0; } if (hax_cur_version < version.compat_version) { fprintf(stderr, "Incompatible QEMU HAX API version %x,", hax_cur_version); - fprintf(stderr, "requires minimum HAX API version %x\n", + error_report("requires minimum HAX API version %x", version.compat_version); return 0; } @@ -146,18 +146,18 @@ int hax_vcpu_create(int id) int ret; =20 if (!hax_global.vm) { - fprintf(stderr, "vcpu %x created failed, vm is null\n", id); + error_report("vcpu %x created failed, vm is null", id); return -1; } =20 if (hax_global.vm->vcpus[id]) { - fprintf(stderr, "vcpu %x allocated already\n", id); + error_report("vcpu %x allocated already", id); return 0; } =20 vcpu =3D g_malloc(sizeof(struct hax_vcpu_state)); if (!vcpu) { - fprintf(stderr, "Failed to alloc vcpu state\n"); + error_report("Failed to alloc vcpu state"); return -ENOMEM; } =20 @@ -165,14 +165,14 @@ int hax_vcpu_create(int id) =20 ret =3D hax_host_create_vcpu(hax_global.vm->fd, id); if (ret) { - fprintf(stderr, "Failed to create vcpu %x\n", id); + error_report("Failed to create vcpu %x", id); goto error; } =20 vcpu->vcpu_id =3D id; vcpu->fd =3D hax_host_open_vcpu(hax_global.vm->id, id); if (hax_invalid_fd(vcpu->fd)) { - fprintf(stderr, "Failed to open the vcpu\n"); + error_report("Failed to open the vcpu"); ret =3D -ENODEV; goto error; } @@ -181,7 +181,7 @@ int hax_vcpu_create(int id) =20 ret =3D hax_host_setup_vcpu_channel(vcpu); if (ret) { - fprintf(stderr, "Invalid hax tunnel size\n"); + error_report("Invalid hax tunnel size"); ret =3D -EINVAL; goto error; } @@ -203,7 +203,7 @@ int hax_vcpu_destroy(CPUState *cpu) struct hax_vcpu_state *vcpu =3D cpu->hax_vcpu; =20 if (!hax_global.vm) { - fprintf(stderr, "vcpu %x destroy failed, vm is null\n", vcpu->vcpu= _id); + error_report("vcpu %x destroy failed, vm is null", vcpu->vcpu_id); return -1; } =20 @@ -227,7 +227,7 @@ int hax_init_vcpu(CPUState *cpu) =20 ret =3D hax_vcpu_create(cpu->cpu_index); if (ret < 0) { - fprintf(stderr, "Failed to create HAX vcpu\n"); + error_report("Failed to create HAX vcpu"); exit(-1); } =20 @@ -258,13 +258,13 @@ struct hax_vm *hax_vm_create(struct hax_state *hax) memset(vm, 0, sizeof(struct hax_vm)); ret =3D hax_host_create_vm(hax, &vm_id); if (ret) { - fprintf(stderr, "Failed to create vm %x\n", ret); + error_report("Failed to create vm %x", ret); goto error; } vm->id =3D vm_id; vm->fd =3D hax_host_open_vm(hax, vm_id); if (hax_invalid_fd(vm->fd)) { - fprintf(stderr, "Failed to open vm %d\n", vm_id); + error_report("Failed to open vm %d", vm_id); goto error; } =20 @@ -283,7 +283,7 @@ int hax_vm_destroy(struct hax_vm *vm) =20 for (i =3D 0; i < HAX_MAX_VCPU; i++) if (vm->vcpus[i]) { - fprintf(stderr, "VCPU should be cleaned before vm clean\n"); + error_report("VCPU should be cleaned before vm clean"); return -1; } hax_close_fd(vm->fd); @@ -335,7 +335,7 @@ static int hax_init(ram_addr_t ram_size) =20 hax->vm =3D hax_vm_create(hax); if (!hax->vm) { - fprintf(stderr, "Failed to create HAX VM\n"); + error_report("Failed to create HAX VM"); ret =3D -EINVAL; goto error; } @@ -364,7 +364,7 @@ static int hax_accel_init(MachineState *ms) int ret =3D hax_init(ms->ram_size); =20 if (ret && (ret !=3D -ENOSPC)) { - fprintf(stderr, "No accelerator found.\n"); + error_report("No accelerator found."); } else { fprintf(stdout, "HAX is %s and emulator runs in %s mode.\n", !ret ? "working" : "not working", @@ -526,7 +526,7 @@ static int hax_vcpu_hax_exec(CPUArchState *env) } =20 if (hax_ret < 0) { - fprintf(stderr, "vcpu run failed for vcpu %x\n", vcpu->vcpu_i= d); + error_report("vcpu run failed for vcpu %x", vcpu->vcpu_id); abort(); } switch (ht->_exit_status) { @@ -546,7 +546,7 @@ static int hax_vcpu_hax_exec(CPUArchState *env) ret =3D 1; break; case HAX_EXIT_UNKNOWN_VMEXIT: - fprintf(stderr, "Unknown VMX exit %x from guest\n", + error_report("Unknown VMX exit %x from guest", ht->_exit_reason); qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); hax_vcpu_sync_state(env, 0); @@ -569,16 +569,16 @@ static int hax_vcpu_hax_exec(CPUArchState *env) break; case HAX_EXIT_MMIO: /* Should not happen on UG system */ - fprintf(stderr, "HAX: unsupported MMIO emulation\n"); + error_report("HAX: unsupported MMIO emulation"); ret =3D -1; break; case HAX_EXIT_REAL: /* Should not happen on UG system */ - fprintf(stderr, "HAX: unimplemented real mode emulation\n"); + error_report("HAX: unimplemented real mode emulation"); ret =3D -1; break; default: - fprintf(stderr, "Unknown exit %x from HAX\n", ht->_exit_status= ); + error_report("Unknown exit %x from HAX", ht->_exit_status); qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); hax_vcpu_sync_state(env, 0); cpu_dump_state(cpu, stderr, fprintf, 0); @@ -662,7 +662,7 @@ int hax_smp_cpu_exec(CPUState *cpu) fatal =3D hax_vcpu_hax_exec(env); =20 if (fatal) { - fprintf(stderr, "Unsupported HAX vcpu return\n"); + error_report("Unsupported HAX vcpu return"); abort(); } } @@ -1079,17 +1079,17 @@ static int hax_arch_set_registers(CPUArchState *env) ret =3D hax_sync_vcpu_register(env, 1); =20 if (ret < 0) { - fprintf(stderr, "Failed to sync vcpu reg\n"); + error_report("Failed to sync vcpu reg"); return ret; } ret =3D hax_set_fpu(env); if (ret < 0) { - fprintf(stderr, "FPU failed\n"); + error_report("FPU failed"); return ret; } ret =3D hax_set_msrs(env); if (ret < 0) { - fprintf(stderr, "MSR failed\n"); + error_report("MSR failed"); return ret; } =20 diff --git a/target/i386/hax-darwin.c b/target/i386/hax-darwin.c index 1c5bbd0a2d..768521b6d0 100644 --- a/target/i386/hax-darwin.c +++ b/target/i386/hax-darwin.c @@ -24,7 +24,7 @@ hax_fd hax_mod_open(void) { int fd =3D open("/dev/HAX", O_RDWR); if (fd =3D=3D -1) { - fprintf(stderr, "Failed to open the hax module\n"); + error_report("Failed to open the hax module"); } =20 fcntl(fd, F_SETFD, FD_CLOEXEC); @@ -38,7 +38,7 @@ int hax_populate_ram(uint64_t va, uint32_t size) struct hax_alloc_ram_info info; =20 if (!hax_global.vm || !hax_global.vm->fd) { - fprintf(stderr, "Allocate memory before vm create?\n"); + error_report("Allocate memory before vm create?"); return -EINVAL; } =20 @@ -46,7 +46,7 @@ int hax_populate_ram(uint64_t va, uint32_t size) info.va =3D va; ret =3D ioctl(hax_global.vm->fd, HAX_VM_IOCTL_ALLOC_RAM, &info); if (ret < 0) { - fprintf(stderr, "Failed to allocate %x memory\n", size); + error_report("Failed to allocate %x memory", size); return ret; } return 0; @@ -75,7 +75,7 @@ int hax_capability(struct hax_state *hax, struct hax_capa= bilityinfo *cap) =20 ret =3D ioctl(hax->fd, HAX_IOCTL_CAPABILITY, cap); if (ret =3D=3D -1) { - fprintf(stderr, "Failed to get HAX capability\n"); + error_report("Failed to get HAX capability"); return -errno; } =20 @@ -88,7 +88,7 @@ int hax_mod_version(struct hax_state *hax, struct hax_mod= ule_version *version) =20 ret =3D ioctl(hax->fd, HAX_IOCTL_VERSION, version); if (ret =3D=3D -1) { - fprintf(stderr, "Failed to get HAX version\n"); + error_report("Failed to get HAX version"); return -errno; } =20 @@ -100,7 +100,7 @@ static char *hax_vm_devfs_string(int vm_id) char *name; =20 if (vm_id > MAX_VM_ID) { - fprintf(stderr, "Too big VM id\n"); + error_report("Too big VM id"); return NULL; } =20 @@ -119,7 +119,7 @@ static char *hax_vcpu_devfs_string(int vm_id, int vcpu_= id) char *name; =20 if (vm_id > MAX_VM_ID || vcpu_id > MAX_VCPU_ID) { - fprintf(stderr, "Too big vm id %x or vcpu id %x\n", vm_id, vcpu_id= ); + error_report("Too big vm id %x or vcpu id %x", vm_id, vcpu_id); return NULL; } =20 @@ -181,7 +181,7 @@ int hax_notify_qemu_version(hax_fd vm_fd, struct hax_qe= mu_version *qversion) ret =3D ioctl(vm_fd, HAX_VM_IOCTL_NOTIFY_QEMU_VERSION, qversion); =20 if (ret < 0) { - fprintf(stderr, "Failed to notify qemu API version\n"); + error_report("Failed to notify qemu API version"); return ret; } return 0; @@ -196,7 +196,7 @@ int hax_host_create_vcpu(hax_fd vm_fd, int vcpuid) =20 ret =3D ioctl(vm_fd, HAX_VM_IOCTL_VCPU_CREATE, &vcpuid); if (ret < 0) { - fprintf(stderr, "Failed to create vcpu %x\n", vcpuid); + error_report("Failed to create vcpu %x", vcpuid); } =20 return ret; @@ -209,14 +209,14 @@ hax_fd hax_host_open_vcpu(int vmid, int vcpuid) =20 devfs_path =3D hax_vcpu_devfs_string(vmid, vcpuid); if (!devfs_path) { - fprintf(stderr, "Failed to get the devfs\n"); + error_report("Failed to get the devfs"); return -EINVAL; } =20 fd =3D open(devfs_path, O_RDWR); g_free(devfs_path); if (fd < 0) { - fprintf(stderr, "Failed to open the vcpu devfs\n"); + error_report("Failed to open the vcpu devfs"); } fcntl(fd, F_SETFD, FD_CLOEXEC); return fd; @@ -229,12 +229,12 @@ int hax_host_setup_vcpu_channel(struct hax_vcpu_state= *vcpu) =20 ret =3D ioctl(vcpu->fd, HAX_VCPU_IOCTL_SETUP_TUNNEL, &info); if (ret) { - fprintf(stderr, "Failed to setup the hax tunnel\n"); + error_report("Failed to setup the hax tunnel"); return ret; } =20 if (!valid_hax_tunnel_size(info.size)) { - fprintf(stderr, "Invalid hax tunnel size %x\n", info.size); + error_report("Invalid hax tunnel size %x", info.size); ret =3D -EINVAL; return ret; } diff --git a/target/i386/hax-mem.c b/target/i386/hax-mem.c index 27a0d214f2..e1388bb003 100644 --- a/target/i386/hax-mem.c +++ b/target/i386/hax-mem.c @@ -247,8 +247,8 @@ static void hax_transaction_commit(MemoryListener *list= ener) } if (hax_set_ram(entry->start_pa, entry->size, entry->host_va, entry->flags)) { - fprintf(stderr, "%s: Failed mapping @0x%016" PRIx64 "+0x%" - PRIx32 " flags %02x\n", __func__, entry->start_pa, + error_report("%s: Failed mapping @0x%016" PRIx64 "+0x%" + PRIx32 " flags %02x", __func__, entry->start_pa, entry->size, entry->flags); } QTAILQ_REMOVE(&mappings, entry, entry); diff --git a/target/i386/hax-windows.c b/target/i386/hax-windows.c index 15a180b646..8d724d21ad 100644 --- a/target/i386/hax-windows.c +++ b/target/i386/hax-windows.c @@ -33,7 +33,7 @@ static int hax_open_device(hax_fd *fd) 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NU= LL); =20 if (hDevice =3D=3D INVALID_HANDLE_VALUE) { - fprintf(stderr, "Failed to open the HAX device!\n"); + error_report("Failed to open the HAX device!"); errNum =3D GetLastError(); if (errNum =3D=3D ERROR_FILE_NOT_FOUND) { return -1; @@ -52,7 +52,7 @@ static int hax_open_device(hax_fd *fd) =20 ret =3D hax_open_device(&fd); if (ret !=3D 0) { - fprintf(stderr, "Open HAX device failed\n"); + error_report("Open HAX device failed"); } =20 return fd; @@ -66,7 +66,7 @@ int hax_populate_ram(uint64_t va, uint32_t size) DWORD dSize =3D 0; =20 if (!hax_global.vm || !hax_global.vm->fd) { - fprintf(stderr, "Allocate memory before vm create?\n"); + error_report("Allocate memory before vm create?"); return -EINVAL; } =20 @@ -81,7 +81,7 @@ int hax_populate_ram(uint64_t va, uint32_t size) (LPOVERLAPPED) NULL); =20 if (!ret) { - fprintf(stderr, "Failed to allocate %x memory\n", size); + error_report("Failed to allocate %x memory", size); return ret; } =20 @@ -119,7 +119,7 @@ int hax_capability(struct hax_state *hax, struct hax_ca= pabilityinfo *cap) DWORD err =3D 0; =20 if (hax_invalid_fd(hDevice)) { - fprintf(stderr, "Invalid fd for hax device!\n"); + error_report("Invalid fd for hax device!"); return -ENODEV; } =20 @@ -129,9 +129,9 @@ int hax_capability(struct hax_state *hax, struct hax_ca= pabilityinfo *cap) if (!ret) { err =3D GetLastError(); if (err =3D=3D ERROR_INSUFFICIENT_BUFFER || err =3D=3D ERROR_MORE_= DATA) { - fprintf(stderr, "hax capability is too long to hold.\n"); + error_report("hax capability is too long to hold."); } - fprintf(stderr, "Failed to get Hax capability:%luu\n", err); + error_report("Failed to get Hax capability:%luu", err); return -EFAULT; } else { return 0; @@ -146,7 +146,7 @@ int hax_mod_version(struct hax_state *hax, struct hax_m= odule_version *version) DWORD err =3D 0; =20 if (hax_invalid_fd(hDevice)) { - fprintf(stderr, "Invalid fd for hax device!\n"); + error_report("Invalid fd for hax device!"); return -ENODEV; } =20 @@ -159,9 +159,9 @@ int hax_mod_version(struct hax_state *hax, struct hax_m= odule_version *version) if (!ret) { err =3D GetLastError(); if (err =3D=3D ERROR_INSUFFICIENT_BUFFER || err =3D=3D ERROR_MORE_= DATA) { - fprintf(stderr, "hax module verion is too long to hold.\n"); + error_report("hax module verion is too long to hold."); } - fprintf(stderr, "Failed to get Hax module version:%lu\n", err); + error_report("Failed to get Hax module version:%lu", err); return -EFAULT; } else { return 0; @@ -173,7 +173,7 @@ static char *hax_vm_devfs_string(int vm_id) char *name; =20 if (vm_id > MAX_VM_ID) { - fprintf(stderr, "Too big VM id\n"); + error_report("Too big VM id"); return NULL; } =20 @@ -192,7 +192,7 @@ static char *hax_vcpu_devfs_string(int vm_id, int vcpu_= id) char *name; =20 if (vm_id > MAX_VM_ID || vcpu_id > MAX_VCPU_ID) { - fprintf(stderr, "Too big vm id %x or vcpu id %x\n", vm_id, vcpu_id= ); + error_report("Too big vm id %x or vcpu id %x", vm_id, vcpu_id); return NULL; } =20 @@ -226,7 +226,7 @@ int hax_host_create_vm(struct hax_state *hax, int *vmid) NULL, 0, &vm_id, sizeof(vm_id), &dSize, (LPOVERLAPPED) NULL); if (!ret) { - fprintf(stderr, "Failed to create VM. Error code: %lu\n", + error_report("Failed to create VM. Error code: %lu", GetLastError()); return -1; } @@ -241,7 +241,7 @@ hax_fd hax_host_open_vm(struct hax_state *hax, int vm_i= d) =20 vm_name =3D hax_vm_devfs_string(vm_id); if (!vm_name) { - fprintf(stderr, "Failed to open VM. VM name is null\n"); + error_report("Failed to open VM. VM name is null"); return INVALID_HANDLE_VALUE; } =20 @@ -249,7 +249,7 @@ hax_fd hax_host_open_vm(struct hax_state *hax, int vm_i= d) GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, = NULL); if (hDeviceVM =3D=3D INVALID_HANDLE_VALUE) { - fprintf(stderr, "Open the vm device error:%s, ec:%lu\n", + error_report("Open the vm device error:%s, ec:%lu", vm_name, GetLastError()); } =20 @@ -269,7 +269,7 @@ int hax_notify_qemu_version(hax_fd vm_fd, struct hax_qe= mu_version *qversion) qversion, sizeof(struct hax_qemu_version), NULL, 0, &dSize, (LPOVERLAPPED) NULL); if (!ret) { - fprintf(stderr, "Failed to notify qemu API version\n"); + error_report("Failed to notify qemu API version"); return -1; } return 0; @@ -285,7 +285,7 @@ int hax_host_create_vcpu(hax_fd vm_fd, int vcpuid) &vcpuid, sizeof(vcpuid), NULL, 0, &dSize, (LPOVERLAPPED) NULL); if (!ret) { - fprintf(stderr, "Failed to create vcpu %x\n", vcpuid); + error_report("Failed to create vcpu %x", vcpuid); return -1; } =20 @@ -299,7 +299,7 @@ hax_fd hax_host_open_vcpu(int vmid, int vcpuid) =20 devfs_path =3D hax_vcpu_devfs_string(vmid, vcpuid); if (!devfs_path) { - fprintf(stderr, "Failed to get the devfs\n"); + error_report("Failed to get the devfs"); return INVALID_HANDLE_VALUE; } =20 @@ -309,7 +309,7 @@ hax_fd hax_host_open_vcpu(int vmid, int vcpuid) NULL); =20 if (hDeviceVCPU =3D=3D INVALID_HANDLE_VALUE) { - fprintf(stderr, "Failed to open the vcpu devfs\n"); + error_report("Failed to open the vcpu devfs"); } g_free(devfs_path); return hDeviceVCPU; @@ -327,12 +327,12 @@ int hax_host_setup_vcpu_channel(struct hax_vcpu_state= *vcpu) NULL, 0, &info, sizeof(info), &dSize, (LPOVERLAPPED) NULL); if (!ret) { - fprintf(stderr, "Failed to setup the hax tunnel\n"); + error_report("Failed to setup the hax tunnel"); return -1; } =20 if (!valid_hax_tunnel_size(info.size)) { - fprintf(stderr, "Invalid hax tunnel size %x\n", info.size); + error_report("Invalid hax tunnel size %x", info.size); ret =3D -EINVAL; return ret; } diff --git a/target/i386/kvm.c b/target/i386/kvm.c index b1e32e95d3..d7cf10ae11 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -219,7 +219,7 @@ static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, in= t max) g_free(cpuid); return NULL; } else { - fprintf(stderr, "KVM_GET_SUPPORTED_CPUID failed: %s\n", + error_report("KVM_GET_SUPPORTED_CPUID failed: %s", strerror(-r)); exit(1); } @@ -470,7 +470,7 @@ static void kvm_mce_inject(X86CPU *cpu, hwaddr paddr, i= nt code) =20 static void hardware_memory_error(void) { - fprintf(stderr, "Hardware memory error!\n"); + error_report("Hardware memory error!"); exit(1); } =20 @@ -497,8 +497,8 @@ void kvm_arch_on_sigbus_vcpu(CPUState *c, int code, voi= d *addr) return; } =20 - fprintf(stderr, "Hardware memory error for memory used by " - "QEMU itself instead of guest system!\n"); + error_report("Hardware memory error for memory used by " + "QEMU itself instead of guest system!"); } =20 if (code =3D=3D BUS_MCEERR_AR) { @@ -666,7 +666,7 @@ static int hyperv_handle_properties(CPUState *cs) =20 if (!has_msr_hv_synic || kvm_vcpu_enable_cap(cs, KVM_CAP_HYPERV_SYNIC, 0)) { - fprintf(stderr, "Hyper-V SynIC is not supported by kernel\n"); + error_report("Hyper-V SynIC is not supported by kernel"); return -ENOSYS; } =20 @@ -678,7 +678,7 @@ static int hyperv_handle_properties(CPUState *cs) } if (cpu->hyperv_stimer) { if (!has_msr_hv_stimer) { - fprintf(stderr, "Hyper-V timers aren't supported by kernel\n"); + error_report("Hyper-V timers aren't supported by kernel"); return -ENOSYS; } env->features[FEAT_HYPERV_EAX] |=3D HV_SYNTIMERS_AVAILABLE; @@ -811,7 +811,7 @@ int kvm_arch_init_vcpu(CPUState *cs) =20 for (i =3D 0; i <=3D limit; i++) { if (cpuid_i =3D=3D KVM_MAX_CPUID_ENTRIES) { - fprintf(stderr, "unsupported level value: 0x%x\n", limit); + error_report("unsupported level value: 0x%x", limit); abort(); } c =3D &cpuid_data.entries[cpuid_i++]; @@ -829,8 +829,8 @@ int kvm_arch_init_vcpu(CPUState *cs) =20 for (j =3D 1; j < times; ++j) { if (cpuid_i =3D=3D KVM_MAX_CPUID_ENTRIES) { - fprintf(stderr, "cpuid_data is full, no space for " - "cpuid(eax:2):eax & 0xf =3D 0x%x\n", times); + error_report("cpuid_data is full, no space for " + "cpuid(eax:2):eax & 0xf =3D 0x%x", times); abort(); } c =3D &cpuid_data.entries[cpuid_i++]; @@ -862,8 +862,8 @@ int kvm_arch_init_vcpu(CPUState *cs) continue; } if (cpuid_i =3D=3D KVM_MAX_CPUID_ENTRIES) { - fprintf(stderr, "cpuid_data is full, no space for " - "cpuid(eax:0x%x,ecx:0x%x)\n", i, j); + error_report("cpuid_data is full, no space for " + "cpuid(eax:0x%x,ecx:0x%x)", i, j); abort(); } c =3D &cpuid_data.entries[cpuid_i++]; @@ -899,7 +899,7 @@ int kvm_arch_init_vcpu(CPUState *cs) =20 for (i =3D 0x80000000; i <=3D limit; i++) { if (cpuid_i =3D=3D KVM_MAX_CPUID_ENTRIES) { - fprintf(stderr, "unsupported xlevel value: 0x%x\n", limit); + error_report("unsupported xlevel value: 0x%x", limit); abort(); } c =3D &cpuid_data.entries[cpuid_i++]; @@ -915,7 +915,7 @@ int kvm_arch_init_vcpu(CPUState *cs) =20 for (i =3D 0xC0000000; i <=3D limit; i++) { if (cpuid_i =3D=3D KVM_MAX_CPUID_ENTRIES) { - fprintf(stderr, "unsupported xlevel2 value: 0x%x\n", limit= ); + error_report("unsupported xlevel2 value: 0x%x", limit); abort(); } c =3D &cpuid_data.entries[cpuid_i++]; @@ -1245,7 +1245,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) /* Tell fw_cfg to notify the BIOS to reserve the range. */ ret =3D e820_add_entry(identity_base, 0x4000, E820_RESERVED); if (ret < 0) { - fprintf(stderr, "e820_add_entry() table is full\n"); + error_report("e820_add_entry() table is full"); return ret; } qemu_register_reset(kvm_unpoison_all, NULL); @@ -2733,7 +2733,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *= run) DPRINTF("injected NMI\n"); ret =3D kvm_vcpu_ioctl(cpu, KVM_NMI); if (ret < 0) { - fprintf(stderr, "KVM: injection failed, NMI lost (%s)\n", + error_report("KVM: injection failed, NMI lost (%s)", strerror(-ret)); } } @@ -2744,7 +2744,7 @@ void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *= run) DPRINTF("injected SMI\n"); ret =3D kvm_vcpu_ioctl(cpu, KVM_SMI); if (ret < 0) { - fprintf(stderr, "KVM: injection failed, SMI lost (%s)\n", + error_report("KVM: injection failed, SMI lost (%s)", strerror(-ret)); } } @@ -3141,7 +3141,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run= *run) break; case KVM_EXIT_FAIL_ENTRY: code =3D run->fail_entry.hardware_entry_failure_reason; - fprintf(stderr, "KVM: entry failed, hardware error 0x%" PRIx64 "\n= ", + error_report("KVM: entry failed, hardware error 0x%" PRIx64 "", code); if (host_supports_vmx() && code =3D=3D VMX_INVALID_GUEST_STATE) { fprintf(stderr, @@ -3157,7 +3157,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run= *run) ret =3D -1; break; case KVM_EXIT_EXCEPTION: - fprintf(stderr, "KVM: exception %d exit (error code 0x%x)\n", + error_report("KVM: exception %d exit (error code 0x%x)", run->ex.exception, run->ex.error_code); ret =3D -1; break; @@ -3175,7 +3175,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run= *run) ret =3D 0; break; default: - fprintf(stderr, "KVM: unknown exit reason %d\n", run->exit_reason); + error_report("KVM: unknown exit reason %d", run->exit_reason); ret =3D -1; break; } diff --git a/target/i386/misc_helper.c b/target/i386/misc_helper.c index 628f64aad5..115e80217e 100644 --- a/target/i386/misc_helper.c +++ b/target/i386/misc_helper.c @@ -28,7 +28,7 @@ void helper_outb(CPUX86State *env, uint32_t port, uint32_t data) { #ifdef CONFIG_USER_ONLY - fprintf(stderr, "outb: port=3D0x%04x, data=3D%02x\n", port, data); + error_report("outb: port=3D0x%04x, data=3D%02x", port, data); #else address_space_stb(&address_space_io, port, data, cpu_get_mem_attrs(env), NULL); @@ -38,7 +38,7 @@ void helper_outb(CPUX86State *env, uint32_t port, uint32_= t data) target_ulong helper_inb(CPUX86State *env, uint32_t port) { #ifdef CONFIG_USER_ONLY - fprintf(stderr, "inb: port=3D0x%04x\n", port); + error_report("inb: port=3D0x%04x", port); return 0; #else return address_space_ldub(&address_space_io, port, @@ -49,7 +49,7 @@ target_ulong helper_inb(CPUX86State *env, uint32_t port) void helper_outw(CPUX86State *env, uint32_t port, uint32_t data) { #ifdef CONFIG_USER_ONLY - fprintf(stderr, "outw: port=3D0x%04x, data=3D%04x\n", port, data); + error_report("outw: port=3D0x%04x, data=3D%04x", port, data); #else address_space_stw(&address_space_io, port, data, cpu_get_mem_attrs(env), NULL); @@ -59,7 +59,7 @@ void helper_outw(CPUX86State *env, uint32_t port, uint32_= t data) target_ulong helper_inw(CPUX86State *env, uint32_t port) { #ifdef CONFIG_USER_ONLY - fprintf(stderr, "inw: port=3D0x%04x\n", port); + error_report("inw: port=3D0x%04x", port); return 0; #else return address_space_lduw(&address_space_io, port, @@ -70,7 +70,7 @@ target_ulong helper_inw(CPUX86State *env, uint32_t port) void helper_outl(CPUX86State *env, uint32_t port, uint32_t data) { #ifdef CONFIG_USER_ONLY - fprintf(stderr, "outw: port=3D0x%04x, data=3D%08x\n", port, data); + error_report("outw: port=3D0x%04x, data=3D%08x", port, data); #else address_space_stl(&address_space_io, port, data, cpu_get_mem_attrs(env), NULL); @@ -80,7 +80,7 @@ void helper_outl(CPUX86State *env, uint32_t port, uint32_= t data) target_ulong helper_inl(CPUX86State *env, uint32_t port) { #ifdef CONFIG_USER_ONLY - fprintf(stderr, "inl: port=3D0x%04x\n", port); + error_report("inl: port=3D0x%04x", port); return 0; #else return address_space_ldl(&address_space_io, port, diff --git a/target/lm32/op_helper.c b/target/lm32/op_helper.c index 2177c8ad12..34bfc3fb3b 100644 --- a/target/lm32/op_helper.c +++ b/target/lm32/op_helper.c @@ -40,9 +40,9 @@ void HELPER(ill)(CPULM32State *env) { #ifndef CONFIG_USER_ONLY CPUState *cs =3D CPU(lm32_env_get_cpu(env)); - fprintf(stderr, "VM paused due to illegal instruction. " + error_report("VM paused due to illegal instruction. " "Connect a debugger or switch to the monitor console " - "to find out more.\n"); + "to find out more."); vm_stop(RUN_STATE_PAUSED); cs->halted =3D 1; raise_exception(env, EXCP_HALTED); diff --git a/target/mips/mips-semi.c b/target/mips/mips-semi.c index a7aefbaefc..c1f35f8f5a 100644 --- a/target/mips/mips-semi.c +++ b/target/mips/mips-semi.c @@ -18,6 +18,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "cpu.h" #include "qemu/log.h" #include "exec/helper-proto.h" @@ -366,7 +367,7 @@ void helper_do_semihosting(CPUMIPSState *env) break; #endif default: - fprintf(stderr, "Unknown UHI operation %d\n", op); + error_report("Unknown UHI operation %d", op); abort(); } uhi_done: diff --git a/target/mips/translate.c b/target/mips/translate.c index d16d879df7..32a5920259 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -10886,7 +10886,7 @@ static void gen_branch(DisasContext *ctx, int insn_= bytes) tcg_gen_lookup_and_goto_ptr(cpu_PC); break; default: - fprintf(stderr, "unknown branch 0x%x\n", proc_hflags); + error_report("unknown branch 0x%x", proc_hflags); abort(); } } diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index e6009e70e5..a142e81a0f 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -200,8 +200,8 @@ static inline void powerpc_excp(PowerPCCPU *cpu, int ex= cp_model, int excp) /* Machine check exception is not enabled. * Enter checkstop state. */ - fprintf(stderr, "Machine check while not allowed. " - "Entering checkstop state\n"); + error_report("Machine check while not allowed. " + "Entering checkstop state"); if (qemu_log_separate()) { qemu_log("Machine check while not allowed. " "Entering checkstop state\n"); diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index 1deaf106d2..136b5a0c69 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -159,8 +159,8 @@ int kvm_arch_init(MachineState *ms, KVMState *s) cap_ppc_pvr_compat =3D false; =20 if (!cap_interrupt_level) { - fprintf(stderr, "KVM: Couldn't find level irq capability. Expect t= he " - "VM to stall at times!\n"); + error_report("KVM: Couldn't find level irq capability. Expect the " + "VM to stall at times!"); } =20 kvm_ppc_register_host_cpu_type(); @@ -188,7 +188,7 @@ static int kvm_arch_sync_sregs(PowerPCCPU *cpu) return 0; } else { if (!cap_segstate) { - fprintf(stderr, "kvm error: missing PVR setting capability\n"); + error_report("kvm error: missing PVR setting capability"); return -ENOSYS; } } @@ -237,7 +237,7 @@ static int kvm_booke206_tlb_init(PowerPCCPU *cpu) =20 ret =3D kvm_vcpu_enable_cap(cs, KVM_CAP_SW_TLB, 0, (uintptr_t)&cfg); if (ret < 0) { - fprintf(stderr, "%s: couldn't enable KVM_CAP_SW_TLB: %s\n", + error_report("%s: couldn't enable KVM_CAP_SW_TLB: %s", __func__, strerror(-ret)); return ret; } @@ -552,7 +552,7 @@ static void kvmppc_hw_debug_points_init(CPUPPCState *ce= nv) } =20 if ((max_hw_breakpoint + max_hw_watchpoint) > MAX_HW_BKPTS) { - fprintf(stderr, "Error initializing h/w breakpoints\n"); + error_report("Error initializing h/w breakpoints"); return; } } @@ -623,7 +623,7 @@ static void kvm_sw_tlb_put(PowerPCCPU *cpu) =20 ret =3D kvm_vcpu_ioctl(cs, KVM_DIRTY_TLB, &dirty_tlb); if (ret) { - fprintf(stderr, "%s: KVM_DIRTY_TLB: %s\n", + error_report("%s: KVM_DIRTY_TLB: %s", __func__, strerror(-ret)); } =20 @@ -1474,7 +1474,7 @@ static int kvmppc_handle_halt(PowerPCCPU *cpu) static int kvmppc_handle_dcr_read(CPUPPCState *env, uint32_t dcrn, uint32_= t *data) { if (ppc_dcr_read(env->dcr_env, dcrn, data) < 0) - fprintf(stderr, "Read to unhandled DCR (0x%x)\n", dcrn); + error_report("Read to unhandled DCR (0x%x)", dcrn); =20 return 0; } @@ -1482,7 +1482,7 @@ static int kvmppc_handle_dcr_read(CPUPPCState *env, u= int32_t dcrn, uint32_t *dat static int kvmppc_handle_dcr_write(CPUPPCState *env, uint32_t dcrn, uint32= _t data) { if (ppc_dcr_write(env->dcr_env, dcrn, data) < 0) - fprintf(stderr, "Write to unhandled DCR (0x%x)\n", dcrn); + error_report("Write to unhandled DCR (0x%x)", dcrn); =20 return 0; } @@ -1793,7 +1793,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run= *run) break; =20 default: - fprintf(stderr, "KVM: unknown exit reason %d\n", run->exit_reason); + error_report("KVM: unknown exit reason %d", run->exit_reason); ret =3D -1; break; } @@ -1857,7 +1857,7 @@ int kvmppc_booke_watchdog_enable(PowerPCCPU *cpu) =20 ret =3D kvm_vcpu_enable_cap(cs, KVM_CAP_PPC_BOOKE_WATCHDOG, 0); if (ret < 0) { - fprintf(stderr, "%s: couldn't enable KVM_CAP_PPC_BOOKE_WATCHDOG: %= s\n", + error_report("%s: couldn't enable KVM_CAP_PPC_BOOKE_WATCHDOG: %s", __func__, strerror(-ret)); return ret; } @@ -2192,7 +2192,7 @@ off_t kvmppc_alloc_rma(void **rma) =20 fd =3D kvm_vm_ioctl(kvm_state, KVM_ALLOCATE_RMA, &ret); if (fd < 0) { - fprintf(stderr, "KVM: Error on KVM_ALLOCATE_RMA: %s\n", + error_report("KVM: Error on KVM_ALLOCATE_RMA: %s", strerror(errno)); return -1; } @@ -2201,7 +2201,7 @@ off_t kvmppc_alloc_rma(void **rma) =20 *rma =3D mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); if (*rma =3D=3D MAP_FAILED) { - fprintf(stderr, "KVM: Error mapping RMA: %s\n", strerror(errno)); + error_report("KVM: Error mapping RMA: %s", strerror(errno)); return -1; }; =20 @@ -2303,7 +2303,7 @@ void *kvmppc_create_spapr_tce(uint32_t liobn, uint32_= t page_shift, } fd =3D kvm_vm_ioctl(kvm_state, KVM_CREATE_SPAPR_TCE, &args); if (fd < 0) { - fprintf(stderr, "KVM: Failed to create TCE table for liobn 0x%= x\n", + error_report("KVM: Failed to create TCE table for liobn 0x%x", liobn); return NULL; } @@ -2316,7 +2316,7 @@ void *kvmppc_create_spapr_tce(uint32_t liobn, uint32_= t page_shift, =20 table =3D mmap(NULL, len, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); if (table =3D=3D MAP_FAILED) { - fprintf(stderr, "KVM: Failed to map TCE table for liobn 0x%x\n", + error_report("KVM: Failed to map TCE table for liobn 0x%x", liobn); close(fd); return NULL; @@ -2563,7 +2563,7 @@ int kvmppc_get_htab_fd(bool write) }; =20 if (!cap_htab_fd) { - fprintf(stderr, "KVM version doesn't support saving the hash table= \n"); + error_report("KVM version doesn't support saving the hash table"); return -1; } =20 @@ -2579,7 +2579,7 @@ int kvmppc_save_htab(QEMUFile *f, int fd, size_t bufs= ize, int64_t max_ns) do { rc =3D read(fd, buf, bufsize); if (rc < 0) { - fprintf(stderr, "Error reading data from KVM HTAB fd: %s\n", + error_report("Error reading data from KVM HTAB fd: %s", strerror(errno)); return rc; } else if (rc) { @@ -2624,13 +2624,13 @@ int kvmppc_load_htab_chunk(QEMUFile *f, int fd, uin= t32_t index, =20 rc =3D write(fd, buf, chunksize); if (rc < 0) { - fprintf(stderr, "Error writing KVM hash table: %s\n", + error_report("Error writing KVM hash table: %s", strerror(errno)); return rc; } if (rc !=3D chunksize) { /* We should never get a short write on a single chunk */ - fprintf(stderr, "Short write, restoring KVM hash table\n"); + error_report("Short write, restoring KVM hash table"); return -1; } return 0; diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c index 14d34e512f..8713ed6682 100644 --- a/target/ppc/mmu-hash64.c +++ b/target/ppc/mmu-hash64.c @@ -377,7 +377,7 @@ static int ppc_hash64_amr_prot(PowerPCCPU *cpu, ppc_has= h_pte64_t pte) key =3D HPTE64_R_KEY(pte.pte1); amrbits =3D (env->spr[SPR_AMR] >> 2*(31 - key)) & 0x3; =20 - /* fprintf(stderr, "AMR protection: key=3D%d AMR=3D0x%" PRIx64 "\n", k= ey, */ + /* error_report("AMR protection: key=3D%d AMR=3D0x%" PRIx64 "", key, */ /* env->spr[SPR_AMR]); */ =20 /* diff --git a/target/ppc/mmu_helper.c b/target/ppc/mmu_helper.c index 2a1f9902c9..cbf5187ff8 100644 --- a/target/ppc/mmu_helper.c +++ b/target/ppc/mmu_helper.c @@ -2600,7 +2600,7 @@ void helper_booke206_tlbwe(CPUPPCState *env) if (((env->spr[SPR_BOOKE_MAS0] & MAS0_ATSEL) =3D=3D MAS0_ATSEL_LRAT) && !msr_gs) { /* XXX we don't support direct LRAT setting yet */ - fprintf(stderr, "cpu: don't support LRAT setting yet\n"); + error_report("cpu: don't support LRAT setting yet"); return; } =20 diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 606b605ba0..a3da22580e 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -3943,8 +3943,8 @@ static inline void gen_op_mfspr(DisasContext *ctx) * allowing userland application to read the PVR */ if (sprn !=3D SPR_PVR) { - fprintf(stderr, "Trying to read privileged spr %d (0x%03x)= at " - TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4); + error_report("Trying to read privileged spr %d (0x%03x) at= " + TARGET_FMT_lx "", sprn, sprn, ctx->nip - 4); if (qemu_log_separate()) { qemu_log("Trying to read privileged spr %d (0x%03x) at= " TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4); @@ -3960,8 +3960,8 @@ static inline void gen_op_mfspr(DisasContext *ctx) return; } /* Not defined */ - fprintf(stderr, "Trying to read invalid spr %d (0x%03x) at " - TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4); + error_report("Trying to read invalid spr %d (0x%03x) at " + TARGET_FMT_lx "", sprn, sprn, ctx->nip - 4); if (qemu_log_separate()) { qemu_log("Trying to read invalid spr %d (0x%03x) at " TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4); @@ -4106,8 +4106,8 @@ static void gen_mtspr(DisasContext *ctx) (*write_cb)(ctx, sprn, rS(ctx->opcode)); } else { /* Privilege exception */ - fprintf(stderr, "Trying to write privileged spr %d (0x%03x) at= " - TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4); + error_report("Trying to write privileged spr %d (0x%03x) at " + TARGET_FMT_lx "", sprn, sprn, ctx->nip - 4); if (qemu_log_separate()) { qemu_log("Trying to write privileged spr %d (0x%03x) at " TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4); @@ -4127,8 +4127,8 @@ static void gen_mtspr(DisasContext *ctx) qemu_log("Trying to write invalid spr %d (0x%03x) at " TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4); } - fprintf(stderr, "Trying to write invalid spr %d (0x%03x) at " - TARGET_FMT_lx "\n", sprn, sprn, ctx->nip - 4); + error_report("Trying to write invalid spr %d (0x%03x) at " + TARGET_FMT_lx "", sprn, sprn, ctx->nip - 4); =20 =20 /* The behaviour depends on MSR:PR and SPR# bit 0x10, @@ -7370,8 +7370,8 @@ void gen_intermediate_code(CPUState *cs, struct Trans= lationBlock *tb) break; } if (tcg_check_temp_count()) { - fprintf(stderr, "Opcode %02x %02x %02x %02x (%08x) leaked " - "temporaries\n", opc1(ctx.opcode), opc2(ctx.opcode), + error_report("Opcode %02x %02x %02x %02x (%08x) leaked " + "temporaries", opc1(ctx.opcode), opc2(ctx.opcode), opc3(ctx.opcode), opc4(ctx.opcode), ctx.opcode); exit(1); } diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index 466bf97347..a44444ebc9 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -1778,7 +1778,7 @@ static void gen_spr_BookE(CPUPPCState *env, uint64_t = ivor_mask) for (i =3D 0; i < 64; i++) { if (ivor_mask & (1ULL << i)) { if (ivor_sprn[i] =3D=3D SPR_BOOKE_IVORxx) { - fprintf(stderr, "ERROR: IVOR %d SPR is not defined\n", i); + error_report("ERROR: IVOR %d SPR is not defined", i); exit(1); } spr_register(env, ivor_sprn[i], ivor_names[i], @@ -9216,13 +9216,13 @@ static void init_ppc_proc(PowerPCCPU *cpu) case POWERPC_FLAG_VRE: break; default: - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should define POWERPC_FLAG_SPE or POWERPC_FLAG_VRE\n"= ); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should define POWERPC_FLAG_SPE or POWERPC_FLAG_V= RE"); exit(1); } } else if (env->flags & (POWERPC_FLAG_SPE | POWERPC_FLAG_VRE)) { - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should not define POWERPC_FLAG_SPE nor POWERPC_FLAG_VRE\n= "); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should not define POWERPC_FLAG_SPE nor POWERPC_FLAG_= VRE"); exit(1); } if (env->msr_mask & (1 << 17)) { @@ -9231,13 +9231,13 @@ static void init_ppc_proc(PowerPCCPU *cpu) case POWERPC_FLAG_CE: break; default: - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should define POWERPC_FLAG_TGPR or POWERPC_FLAG_CE\n"= ); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should define POWERPC_FLAG_TGPR or POWERPC_FLAG_= CE"); exit(1); } } else if (env->flags & (POWERPC_FLAG_TGPR | POWERPC_FLAG_CE)) { - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should not define POWERPC_FLAG_TGPR nor POWERPC_FLAG_CE\n= "); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should not define POWERPC_FLAG_TGPR nor POWERPC_FLAG= _CE"); exit(1); } if (env->msr_mask & (1 << 10)) { @@ -9248,16 +9248,16 @@ static void init_ppc_proc(PowerPCCPU *cpu) case POWERPC_FLAG_UBLE: break; default: - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should define POWERPC_FLAG_SE or POWERPC_FLAG_DWE or " - "POWERPC_FLAG_UBLE\n"); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should define POWERPC_FLAG_SE or POWERPC_FLAG_DW= E or " + "POWERPC_FLAG_UBLE"); exit(1); } } else if (env->flags & (POWERPC_FLAG_SE | POWERPC_FLAG_DWE | POWERPC_FLAG_UBLE)) { - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should not define POWERPC_FLAG_SE nor POWERPC_FLAG_DWE no= r " - "POWERPC_FLAG_UBLE\n"); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should not define POWERPC_FLAG_SE nor POWERPC_FLAG_D= WE" + " nor POWERPC_FLAG_UBLE"); exit(1); } if (env->msr_mask & (1 << 9)) { @@ -9266,13 +9266,13 @@ static void init_ppc_proc(PowerPCCPU *cpu) case POWERPC_FLAG_DE: break; default: - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should define POWERPC_FLAG_BE or POWERPC_FLAG_DE\n"); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should define POWERPC_FLAG_BE or POWERPC_FLAG_DE= "); exit(1); } } else if (env->flags & (POWERPC_FLAG_BE | POWERPC_FLAG_DE)) { - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should not define POWERPC_FLAG_BE nor POWERPC_FLAG_DE\n"); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should not define POWERPC_FLAG_BE nor POWERPC_FLAG_D= E"); exit(1); } if (env->msr_mask & (1 << 2)) { @@ -9281,18 +9281,19 @@ static void init_ppc_proc(PowerPCCPU *cpu) case POWERPC_FLAG_PMM: break; default: - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should define POWERPC_FLAG_PX or POWERPC_FLAG_PMM\n"); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should define POWERPC_FLAG_PX or POWERPC_FLAG_PM= M"); exit(1); } } else if (env->flags & (POWERPC_FLAG_PX | POWERPC_FLAG_PMM)) { - fprintf(stderr, "PowerPC MSR definition inconsistency\n" - "Should not define POWERPC_FLAG_PX nor POWERPC_FLAG_PMM\n"= ); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should not define POWERPC_FLAG_PX nor POWERPC_FLAG_P= MM"); exit(1); } if ((env->flags & (POWERPC_FLAG_RTC_CLK | POWERPC_FLAG_BUS_CLK)) =3D= =3D 0) { - fprintf(stderr, "PowerPC flags inconsistency\n" - "Should define the time-base and decrementer clock source\= n"); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should define the time-base and decrementer clock" + " source"); exit(1); } /* Allocate TLBs buffer when needed */ @@ -10496,7 +10497,7 @@ static void ppc_cpu_reset(CPUState *s) #if !defined(TARGET_WORDS_BIGENDIAN) msr |=3D (target_ulong)1 << MSR_LE; /* Little-endian user mode */ if (!((env->msr_mask >> MSR_LE) & 1)) { - fprintf(stderr, "Selected CPU does not support little-endian.\n"); + error_report("Selected CPU does not support little-endian."); exit(1); } #endif diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index ebb75cafaa..6f7ebd1c98 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -967,13 +967,13 @@ static void inject_vcpu_irq_legacy(CPUState *cs, stru= ct kvm_s390_irq *irq) =20 r =3D s390_kvm_irq_to_interrupt(irq, &kvmint); if (r < 0) { - fprintf(stderr, "%s called with bogus interrupt\n", __func__); + error_report("%s called with bogus interrupt", __func__); exit(1); } =20 r =3D kvm_vcpu_ioctl(cs, KVM_S390_INTERRUPT, &kvmint); if (r < 0) { - fprintf(stderr, "KVM failed to inject interrupt\n"); + error_report("KVM failed to inject interrupt"); exit(1); } } @@ -1002,13 +1002,13 @@ static void __kvm_s390_floating_interrupt(struct kv= m_s390_irq *irq) =20 r =3D s390_kvm_irq_to_interrupt(irq, &kvmint); if (r < 0) { - fprintf(stderr, "%s called with bogus interrupt\n", __func__); + error_report("%s called with bogus interrupt", __func__); exit(1); } =20 r =3D kvm_vm_ioctl(kvm_state, KVM_S390_INTERRUPT, &kvmint); if (r < 0) { - fprintf(stderr, "KVM failed to inject interrupt\n"); + error_report("KVM failed to inject interrupt"); exit(1); } } @@ -1116,14 +1116,14 @@ static int handle_b2(S390CPU *cpu, struct kvm_run *= run, uint8_t ipa1) break; case PRIV_B2_TSCH: /* We should only get tsch via KVM_EXIT_S390_TSCH. */ - fprintf(stderr, "Spurious tsch intercept\n"); + error_report("Spurious tsch intercept"); break; case PRIV_B2_CHSC: ioinst_handle_chsc(cpu, run->s390_sieic.ipb); break; case PRIV_B2_TPI: /* This should have been handled by kvm already. */ - fprintf(stderr, "Spurious tpi intercept\n"); + error_report("Spurious tpi intercept"); break; case PRIV_B2_SCHM: ioinst_handle_schm(cpu, env->regs[1], env->regs[2], @@ -2050,15 +2050,15 @@ static int handle_intercept(S390CPU *cpu) } break; case ICPT_SOFT_INTERCEPT: - fprintf(stderr, "KVM unimplemented icpt SOFT\n"); + error_report("KVM unimplemented icpt SOFT"); exit(1); break; case ICPT_IO: - fprintf(stderr, "KVM unimplemented icpt IO\n"); + error_report("KVM unimplemented icpt IO"); exit(1); break; default: - fprintf(stderr, "Unknown intercept code: %d\n", icpt_code); + error_report("Unknown intercept code: %d", icpt_code); exit(1); break; } @@ -2215,7 +2215,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run= *run) ret =3D kvm_arch_handle_debug_exit(cpu); break; default: - fprintf(stderr, "Unknown KVM exit: %d\n", run->exit_reason); + error_report("Unknown KVM exit: %d", run->exit_reason); break; } qemu_mutex_unlock_iothread(); diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c index 293fc8428a..395872af45 100644 --- a/target/s390x/misc_helper.c +++ b/target/s390x/misc_helper.c @@ -354,7 +354,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t orde= r_code, uint32_t r1, #endif default: /* unknown sigp */ - fprintf(stderr, "XXX unknown sigp: 0x%" PRIx64 "\n", order_code); + error_report("XXX unknown sigp: 0x%" PRIx64 "", order_code); cc =3D SIGP_CC_NOT_OPERATIONAL; } =20 diff --git a/target/sh4/translate.c b/target/sh4/translate.c index 10191073b2..9f95410e53 100644 --- a/target/sh4/translate.c +++ b/target/sh4/translate.c @@ -438,7 +438,7 @@ static void _decode_opc(DisasContext * ctx) } =20 #if 0 - fprintf(stderr, "Translating opcode 0x%04x\n", ctx->opcode); + error_report("Translating opcode 0x%04x", ctx->opcode); #endif =20 switch (ctx->opcode) { @@ -1799,7 +1799,7 @@ static void _decode_opc(DisasContext * ctx) break; } #if 0 - fprintf(stderr, "unknown instruction 0x%04x at pc 0x%08x\n", + error_report("unknown instruction 0x%04x at pc 0x%08x", ctx->opcode, ctx->pc); fflush(stderr); #endif diff --git a/target/unicore32/translate.c b/target/unicore32/translate.c index 6c094d59d7..a74d5d12a3 100644 --- a/target/unicore32/translate.c +++ b/target/unicore32/translate.c @@ -515,7 +515,7 @@ static void gen_test_cc(int cc, TCGLabel *label) tcg_gen_brcondi_i32(TCG_COND_LT, tmp, 0, label); break; default: - fprintf(stderr, "Bad condition code 0x%x\n", cc); + error_report("Bad condition code 0x%x", cc); abort(); } dead_tmp(tmp); @@ -1940,7 +1940,7 @@ void gen_intermediate_code(CPUState *cs, TranslationB= lock *tb) disas_uc32_insn(env, dc); =20 if (num_temps) { - fprintf(stderr, "Internal resource leak before %08x\n", dc->pc= ); + error_report("Internal resource leak before %08x", dc->pc); num_temps =3D 0; } =20 --=20 2.11.0