From patchwork Tue Sep 26 00:08:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 818413 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="wqfBRnCc"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3y1M764tWTz9t1t for ; Tue, 26 Sep 2017 10:20:50 +1000 (AEST) Received: from localhost ([::1]:44938 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdcG-0008LV-Pr for incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:20:48 -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 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= 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 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: 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; 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 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?= HSqr2bmMfHEZzLQyZMPyLrfYwf/Sa5uIhtmINca6AxQzq7cIO0bv+gn1PQ8vHYH4SyJYdsR0XBpPglM9NGK71gzJntGkxPuvDw9isr/VkAk0jbnVEEzaep5kAAvpKJgpDzp0aaXwDu7iJN5BlMgA7YynrXrpvFvpxTDwWDtKb8gx0TjYwHwXuUmvr5SNio3CYTNpOtrBBbP2scCfM7M9oM0wRRWvk+qaqLjMeE5itai5jt5Vtu1ZuJhe50wN7llXpg4X8KRx9tg25SqLhBKexyOufYNIwXwAvabCCma79J7kKv966kP3TeoosH50w83d4TcZwaQXVy5mdKQud+cP13OyGsx6gzNMd3UBpaWadvxtwU2D2yOO8KUDYTi4nClJzrZM5ApF800KwPoDG33eV6FsUYykaitu4YxrDOzu3lZnV9UzLZG+vAMoZPY9DDAeR0/DARYdlUfD+Ypkdmw2OWgReakfoINRdnJ89PS4V6ZDy2589JeOehrVcvumw+u/rXmps1ebN2tHyfMWWzNlKZ3qH8YEHMmHozYvLIQt1gIIQAblUyvZCwLaw6Qd2ang7v0K0zaob7ik9PryoJw7pebrZ4+7pWa7VzW6YLcN5i81GYMI29KP6AXjNPaknM2cDbHsJ45CNrqxel/t0rdCsAjBBYsEPbt+hRmFTtNkKotHggMbmoZIiCeDG/I+IlXHQKZc2CrL2ZM8Ew/zugZvTNRNX7x5lEEKr6swRUnmhxk4qkdtTUtP4dZ7PO8WOYkuGsQ4VbbJTfkhuTCBvLmhsWStpSPkJ0Mxv7er7SbW1Z5vbavp30yqroE8DxpdXj/5m+aDqIZRcJiJsNQT2l0KsFrIgs/Cno2mplALah5SFroslRDNs5MOMxuaj8szGetQ2DYZbKhvoLmdykW/LDS0QkZlmgd3IHaR9zUseokEIqF6JdQ/C+qK1x5/uvJyukMCbg587oT+mMZ3ZOW0BRC/sXyESEIWH1EOVht34jbRmXuC8Q/5LDZfIdzLdEH09klhy2zbyPNAeZ3kjjbVMvZ9vTIkK+k0M0751qUR0aas8rDmN9+CfsL8lIMGgHWcJIZO7vGljpJs0gTGvqOKmMv/yDpt4qYADB4fmjI4h2She+dEfnnNZ9abZjQC069ggDg3/UFq/eTHP4SabWmgV/51OaLiK2fB7PkHtgXcGQhdSR6cLSL2AsodUNbp2L/APTpb0GyFa0gpQz7fiFSAeEhkkMeOqoTVLTJhbb2y8iVWC4w9A== 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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, int len) #define AUDIO_STRINGIFY(n) AUDIO_STRINGIFY_(n) #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; 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); } if (s->p >= 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; @@ -1010,7 +1010,7 @@ static uint64_t omap_id_read(void *opaque, hwaddr addr, 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 = (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 &= 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 >= 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] = handler; } void omap_mpuio_key(struct omap_mpuio_s *s, int row, int col, int down) { if (row >= 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); if (down) s->buttons[row] |= 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__, chipselect); + fprintf(stderr, "%s: Bad chipselect %i\n", __func__, chipselect); exit(-1); } @@ -2335,7 +2335,7 @@ static void omap_pwl_update(struct omap_pwl_s *s) if (output != s->output) { s->output = output; - printf("%s: Backlight now at %i/256\n", __FUNCTION__, output); + printf("%s: Backlight now at %i/256\n", __func__, output); } } @@ -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 = value & 0x7f; break; @@ -2562,7 +2562,7 @@ static void omap_rtc_alarm_update(struct omap_rtc_s *s) { s->alarm_ti = mktimegm(&s->alarm_tm); if (s->alarm_ti == -1) - printf("%s: conversion failed\n", __FUNCTION__); + printf("%s: conversion failed\n", __func__); } 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__); s->rx_req = s->rx_rate << bps[(s->rcr[0] >> 5) & 7]; @@ -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__); s->tx_req = s->tx_rate << bps[(s->xcr[0] >> 5) & 7]; @@ -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 -= 2; @@ -3282,7 +3282,7 @@ static void omap_mcbsp_writeh(void *opaque, hwaddr addr, 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; case 0x08: /* SPCR2 */ @@ -3297,7 +3297,7 @@ static void omap_mcbsp_writeh(void *opaque, hwaddr addr, s->spcr[0] &= 0x0006; s->spcr[0] |= 0xf8f9 & value; if (value & (1 << 15)) /* DLB */ - printf("%s: Digital Loopback mode enable attempt\n", __FUNCTION__); + printf("%s: Digital Loopback mode enable attempt\n", __func__); if (~value & 1) { /* RRST */ s->spcr[0] &= ~6; s->rx_req = 0; @@ -3330,13 +3330,13 @@ static void omap_mcbsp_writeh(void *opaque, hwaddr addr, s->mcr[1] = value & 0x03e3; if (value & 3) /* XMCM */ printf("%s: Tx channel selection mode enable attempt\n", - __FUNCTION__); + __func__); return; case 0x1a: /* MCR1 */ s->mcr[0] = value & 0x03e1; if (value & 1) /* RMCM */ printf("%s: Rx channel selection mode enable attempt\n", - __FUNCTION__); + __func__); return; case 0x1c: /* RCERA */ s->rcer[0] = value & 0xffff; @@ -3418,7 +3418,7 @@ static void omap_mcbsp_writew(void *opaque, hwaddr addr, 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; } @@ -3536,7 +3536,7 @@ static void omap_lpg_tick(void *opaque) timer_mod(s->tm, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + s->on); s->cycle = !s->cycle; - printf("%s: LED is %s\n", __FUNCTION__, s->cycle ? "on" : "off"); + printf("%s: LED is %s\n", __func__, s->cycle ? "on" : "off"); } static void omap_lpg_update(struct omap_lpg_s *s) @@ -3557,9 +3557,9 @@ static void omap_lpg_update(struct omap_lpg_s *s) timer_del(s->tm); if (on == period && s->on < s->period) - printf("%s: LED is on\n", __FUNCTION__); + printf("%s: LED is on\n", __func__); else if (on == 0 && s->on) - printf("%s: LED is off\n", __FUNCTION__); + printf("%s: LED is off\n", __func__); else if (on && (on != s->on || period != s->period)) { s->cycle = 0; s->on = 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) if (mode[0] == 1 || mode[0] == 2 || mode[1] == 1 || mode[1] == 2) fprintf(stderr, "%s: bad EN_54M_PLL or bad EN_96M_PLL\n", - __FUNCTION__); + __func__); } 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 = 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] &= ~0xcc; s->clken[9] |= 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] = 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] != (value & 3)) { s->clksel[6] = 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, uint64_t value, { #ifdef SPY printf("%s: value %08lx written at " PA_FMT "\n", - __FUNCTION__, value, offset); + __func__, value, offset); #endif } @@ -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; /* 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 = 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 = 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); } } 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 addr, 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; } - 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 addr, return s->cm_regs[CCCR >> 2] | (3 << 28); 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; 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 addr, return s->mm_regs[addr >> 2]; 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, } 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 addr, 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 addr, 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] = value & 0xc7ffffff; s->enable = 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 = 0; @@ -668,7 +668,7 @@ static void pxa2xx_ssp_write(void *opaque, hwaddr addr, case SSCR1: s->sscr[1] = 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; @@ -728,7 +728,7 @@ static void pxa2xx_ssp_write(void *opaque, hwaddr addr, break; 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 addr, 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 addr, break; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); } } @@ -1342,7 +1342,7 @@ static uint64_t pxa2xx_i2c_read(void *opaque, hwaddr addr, s->ibmr = 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 addr, break; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); } } @@ -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 addr, s->status &= ~(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 = (value & 9) == 1; /* ENB && !RST*/ pxa2xx_i2s_update(s); break; case SACR1: s->control[1] = 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 = 0; pxa2xx_i2s_update(s); @@ -1673,7 +1673,7 @@ static void pxa2xx_i2s_write(void *opaque, hwaddr addr, } break; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); } } @@ -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 addr, case ICFOR: break; default: - printf("%s: Bad register " REG_FMT "\n", __FUNCTION__, addr); + printf("%s: Bad register " REG_FMT "\n", __func__, addr); } } 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; if (line >= s->lines) { - printf("%s: No GPIO pin %i\n", __FUNCTION__, line); + printf("%s: No GPIO pin %i\n", __func__, line); return; } @@ -195,7 +195,7 @@ static uint64_t pxa2xx_gpio_read(void *opaque, hwaddr offset, return s->status[bank]; default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } return 0; @@ -248,7 +248,7 @@ static void pxa2xx_gpio_write(void *opaque, hwaddr offset, break; default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } } 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, hwaddr offset, case ICHP: /* Highest Priority register */ return pxa2xx_pic_highest(s); default: - printf("%s: Bad register offset " REG_FMT "\n", __FUNCTION__, offset); + 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 offset, s->priority[32 + ((offset - IPR32) >> 2)] = value & 0x8000003f; break; default: - printf("%s: Bad register offset " REG_FMT "\n", __FUNCTION__, offset); + 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] = 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_event 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) static int tosa_dac_recv(I2CSlave *s) { - printf("%s: recv not supported!!!\n", __FUNCTION__); + printf("%s: recv not supported!!!\n", __func__); return -1; } 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, uint32_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); switch (verb) { /* all nodes */ @@ -449,7 +449,7 @@ static void hda_audio_command(HDACodecDevice *hda, uint32_t nid, uint32_t data) 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); } @@ -484,7 +484,7 @@ static int hda_audio_init(HDACodecDevice *hda, const struct desc_codec *desc) a->desc = desc; a->name = 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); AUD_register_card("hda", &a->card); for (i = 0; i < a->desc->nnodes; i++) { @@ -526,7 +526,7 @@ static void hda_audio_exit(HDACodecDevice *hda) HDAAudioStream *st; int i; - dprint(a, 1, "%s\n", __FUNCTION__); + dprint(a, 1, "%s\n", __func__); for (i = 0; i < ARRAY_SIZE(a->st); i++) { st = a->st + i; if (st->node == NULL) { @@ -547,7 +547,7 @@ static int hda_audio_post_load(void *opaque, int version) HDAAudioStream *st; int i; - dprint(a, 1, "%s\n", __FUNCTION__); + dprint(a, 1, "%s\n", __func__); if (version == 1) { /* assume running_compat[] is for output streams */ for (i = 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 = 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, uint32_t verb) cad = (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", __FUNCTION__); + dprint(d, 1, "%s: indirect node addressing (guest bug?)\n", __func__); return -1; } nid = (verb >> 20) & 0x7f; @@ -293,7 +293,7 @@ static int intel_hda_send_command(IntelHDAState *d, uint32_t verb) codec = hda_codec_find(&d->codecs, cad); if (codec == NULL) { - dprint(d, 1, "%s: addressed non-existing codec\n", __FUNCTION__); + dprint(d, 1, "%s: addressed non-existing codec\n", __func__); return -1; } cdc = HDA_CODEC_DEVICE_GET_CLASS(codec); @@ -307,22 +307,22 @@ static void intel_hda_corb_run(IntelHDAState *d) uint32_t rp, verb; 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; } 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) == 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 == d->rirb_cnt) { - dprint(d, 2, "%s: rirb count reached\n", __FUNCTION__); + dprint(d, 2, "%s: rirb count reached\n", __func__); return; } @@ -331,7 +331,7 @@ static void intel_hda_corb_run(IntelHDAState *d) verb = ldl_le_pci_dma(&d->pci, addr + 4*rp); d->corb_rp = rp; - 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, bool solicited, uint32_t res 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 = response; d->ics &= ~(ICH6_IRS_BUSY | 0xf0); d->ics |= (ICH6_IRS_VALID | (dev->cad << 4)); @@ -353,7 +353,7 @@ static void intel_hda_response(HDACodecDevice *dev, bool solicited, uint32_t res } if (!(d->rirb_ctl & ICH6_RBCTL_DMA_EN)) { - dprint(d, 1, "%s: rirb dma disabled, drop codec response\n", __FUNCTION__); + dprint(d, 1, "%s: rirb dma disabled, drop codec response\n", __func__); return; } @@ -365,17 +365,17 @@ static void intel_hda_response(HDACodecDevice *dev, bool solicited, uint32_t res d->rirb_wp = wp; dprint(d, 2, "%s: [wp 0x%x] response 0x%x, extra 0x%x\n", - __FUNCTION__, wp, response, ex); + __func__, wp, response, ex); d->rirb_count++; if (d->rirb_count == d->rirb_cnt) { - dprint(d, 2, "%s: rirb count reached (%d)\n", __FUNCTION__, d->rirb_count); + dprint(d, 2, "%s: rirb count reached (%d)\n", __func__, d->rirb_count); if (d->rirb_ctl & ICH6_RBCTL_IRQ_EN) { d->rirb_sts |= ICH6_RBSTS_IRQ; intel_hda_update_irq(d); } } else if ((d->corb_rp & 0xff) == 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 |= ICH6_RBSTS_IRQ; @@ -1144,7 +1144,7 @@ static int intel_hda_post_load(void *opaque, int version) IntelHDAState* d = opaque; int i; - dprint(d, 1, "%s\n", __FUNCTION__); + dprint(d, 1, "%s\n", __func__); for (i = 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 event) #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) #ifdef VERBOSE default: - printf("%s: unknown register %02x\n", __FUNCTION__, cmd); + printf("%s: unknown register %02x\n", __func__, cmd); #endif } 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; default: - printf("%s: Unknown NAND command 0x%02x\n", __FUNCTION__, s->cmd); + printf("%s: Unknown NAND command 0x%02x\n", __func__, s->cmd); } } @@ -638,7 +638,7 @@ DeviceState *nand_init(BlockBackend *blk, int manf_id, int chip_id) DeviceState *dev; if (nand_flash_ids[chip_id].size == 0) { - hw_error("%s: Unsupported NAND chip ID.\n", __FUNCTION__); + hw_error("%s: Unsupported NAND chip ID.\n", __func__); } dev = 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 addr, 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; } fprintf(stderr, "%s: unknown OneNAND register %x\n", - __FUNCTION__, offset); + __func__, offset); return 0; } @@ -711,7 +711,7 @@ static void onenand_write(void *opaque, hwaddr addr, default: fprintf(stderr, "%s: unknown OneNAND boot command %"PRIx64"\n", - __FUNCTION__, value); + __func__, value); } break; @@ -762,7 +762,7 @@ static void onenand_write(void *opaque, hwaddr addr, default: fprintf(stderr, "%s: unknown OneNAND register %x\n", - __FUNCTION__, offset); + __func__, offset); } } 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); } 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); } 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); } @@ -113,7 +113,7 @@ void bt_device_done(struct bt_device_s *dev) while (*p && *p != dev) p = &(*p)->next; if (*p != 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) if (off < FIFO_LEN) { if (off + len > FIFO_LEN && (s->out_size = off + len) > FIFO_LEN * 2) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __FUNCTION__, len); + fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); exit(-1); } return s->outfifo + off; } 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); } @@ -169,7 +169,7 @@ static void csrhci_in_packet_vendor(struct csrhci_s *s, int ocf, 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; default: - fprintf(stderr, "%s: got a bad CMD packet\n", __FUNCTION__); + fprintf(stderr, "%s: got a bad CMD packet\n", __func__); return; } @@ -226,7 +226,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_t *pkt) case H4_NEG_PKT: if (s->in_hdr != 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 += 2; @@ -241,7 +241,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_t *pkt) case H4_ALIVE_PKT: if (s->in_hdr != 4 || pkt[1] != 0x55 || pkt[2] != 0x00) { - fprintf(stderr, "%s: got a bad ALIVE packet\n", __FUNCTION__); + fprintf(stderr, "%s: got a bad ALIVE packet\n", __func__); return; } @@ -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; } 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, if (len > 255) { fprintf(stderr, "%s: HCI event params too long (%ib)\n", - __FUNCTION__, len); + __func__, len); exit(-1); } @@ -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 Command " "Status event has been received for the Inquiry " "command, and before the Inquiry Complete event " - "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 Command " "Status event has been received for the Inquiry " "command, and before the Inquiry Complete event " - "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, 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, 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, if (length < HCI_ACL_HDR_SIZE) { fprintf(stderr, "%s: ACL packet too short (%iB)\n", - __FUNCTION__, length); + __func__, length); return; } @@ -2042,7 +2042,7 @@ static void bt_submit_acl(struct HCIInfo *info, 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, if (datalen > length) { fprintf(stderr, "%s: ACL packet too short (%iB < %iB)\n", - __FUNCTION__, length, datalen); + __func__, length, datalen); return; } @@ -2061,7 +2061,7 @@ static void bt_submit_acl(struct HCIInfo *info, hci->asb_handle = handle; else if (handle != 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 = handle; else if (handle != 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, if (bt_hci_handle_bad(hci, handle)) { fprintf(stderr, "%s: invalid SCO handle %03x\n", - __FUNCTION__, handle); + __func__, handle); return; } if (datalen > length) { fprintf(stderr, "%s: SCO packet too short (%iB < %iB)\n", - __FUNCTION__, length, datalen); + __func__, length, datalen); return; } 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 uint8_t *data, int len) return; bad: fprintf(stderr, "%s: bad transaction on Interrupt channel.\n", - __FUNCTION__); + __func__); } /* "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 != source_cid) { fprintf(stderr, "%s: Ignoring a Disconnection Request with the " - "invalid SCID %04x.\n", __FUNCTION__, source_cid); + "invalid SCID %04x.\n", __func__, source_cid); return; } @@ -791,7 +791,7 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id, /* TODO: do the IDs really have to be in sequence? */ if (!id || (id != l2cap->last_id && id != 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 *l2cap, int code, int id, /* 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; @@ -837,7 +837,7 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id, /* 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; case L2CAP_CONF_REQ: @@ -866,7 +866,7 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, 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; case L2CAP_DISCONN_REQ: @@ -888,7 +888,7 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id, /* 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; case L2CAP_ECHO_REQ: @@ -898,7 +898,7 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, 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; case L2CAP_INFO_REQ: @@ -918,7 +918,7 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id, /* 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; default: @@ -1067,7 +1067,7 @@ static void l2cap_frame_in(struct l2cap_instance_s *l2cap, if (unlikely(cid >= 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; } @@ -1129,7 +1129,7 @@ static uint8_t *l2cap_bframe_out(struct bt_l2cap_conn_params_s *parm, int len) 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, 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); } 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 uint8_t *data, int len) int rsp_len = 0; if (len < 5) { - fprintf(stderr, "%s: short SDP PDU (%iB).\n", __FUNCTION__, len); + fprintf(stderr, "%s: short SDP PDU (%iB).\n", __func__, len); return; } @@ -518,7 +518,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uint8_t *data, int len) if (len != plen) { fprintf(stderr, "%s: wrong SDP PDU length (%iB != %iB).\n", - __FUNCTION__, plen, len); + __func__, plen, len); err = SDP_INVALID_PDU_SIZE; goto respond; } @@ -545,7 +545,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uint8_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 = 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; 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 reg, uint16_t value) s->pll_mode = value & 0x77; if ((value & 3) == 0 || (value & 3) == 3) fprintf(stderr, "%s: wrong PLL Control bits (%i)\n", - __FUNCTION__, value & 3); + __func__, value & 3); break; case 0x0e: /* Clock-Source Select */ @@ -541,7 +541,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) case 0x28: /* LCD Panel Configuration */ s->lcd_config = 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; case 0x2a: /* LCD Horizontal Display Width */ @@ -586,7 +586,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) s->hssi_config[1] = value; if (((value >> 4) & 3) == 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] = value & 0xbd; @@ -641,7 +641,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) s->enable = value & 1; s->blank = (value >> 1) & 1; if (value & (1 << 4)) - fprintf(stderr, "%s: Macrovision enable attempt!\n", __FUNCTION__); + fprintf(stderr, "%s: Macrovision enable attempt!\n", __func__); break; case 0x6a: /* Special Effects */ @@ -718,7 +718,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) s->bpp = 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 = value & 7; @@ -730,7 +730,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, 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__); blizzard_transfer_setup(s); break; @@ -784,7 +784,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) s->pm = value & 0x83; if (value & s->mode & 1) fprintf(stderr, "%s: The display must be disabled before entering " - "Standby Mode\n", __FUNCTION__); + "Standby Mode\n", __func__); break; case 0xe8: /* Non-display Period Control / Status */ s->status = value & 0x1b; @@ -815,7 +815,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) break; 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 = value & 0x7ff; if (value & (3 << 9)) fprintf(stderr, "%s: Big-endian pixel format not supported\n", - __FUNCTION__); + __func__); s->dispc.l[0].enable = value & 1; s->dispc.l[0].bpp = (value >> 1) & 0xf; s->dispc.invalidate = 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; } @@ -1086,6 +1086,6 @@ struct omap_dss_s *omap_dss_init(struct omap_target_agent_s *ta, void omap_rfbi_attach(struct omap_dss_s *s, int cs, struct rfbi_chip_s *chip) { 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] = 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 offset, default: fail: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } return 0; @@ -424,7 +424,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offset, s->status[0] |= LCSR0_QD; 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__); if ((s->control[3] & LCCR3_API) && (value & LCCR0_ENB) && !(value & LCCR0_LCDT)) @@ -460,7 +460,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offset, 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__); s->ovl1c[0] = value & 0x80ffffff; s->dma_ch[1].up = (value & OVLC1_EN) || (s->control[0] & LCCR0_SDS); @@ -472,7 +472,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offset, 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__); s->ovl2c[0] = value & 0x80ffffff; s->dma_ch[2].up = !!(value & OVLC1_EN); @@ -486,7 +486,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offset, case CCR: if (!(s->ccr & CCR_CEN) && (value & CCR_CEN)) - printf("%s: Hardware cursor unimplemented\n", __FUNCTION__); + printf("%s: Hardware cursor unimplemented\n", __func__); s->ccr = value & 0x81ffffe7; s->dma_ch[5].up = !!(value & CCR_CEN); @@ -560,7 +560,7 @@ static void pxa2xx_lcdc_write(void *opaque, hwaddr offset, default: fail: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } } @@ -1050,7 +1050,7 @@ PXA2xxLCDState *pxa2xx_lcdc_init(MemoryRegion *sysmem, s->dest_width = 4; break; default: - fprintf(stderr, "%s: Bad color depth\n", __FUNCTION__); + fprintf(stderr, "%s: Bad color depth\n", __func__); exit(1); } 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 = 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 = 4; qxl->guest_primary.bits_pp = 32; @@ -248,7 +248,7 @@ static QEMUCursor *qxl_cursor(PCIQXLDevice *qxl, QXLCursor *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) } if (qxl->debug > 1 && cmd->type != 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) #define PANIC_ON(x) if ((x)) { \ - printf("%s: PANIC %s failed\n", __FUNCTION__, #x); \ + printf("%s: PANIC %s failed\n", __func__, #x); \ abort(); \ } 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, int level) // TC6393xbState *s = opaque; if (line > TC6393XB_GPIOS) { - printf("%s: No GPIO pin %i\n", __FUNCTION__, line); + printf("%s: No GPIO pin %i\n", __func__, line); return; } 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); 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_channel_s *ch) a->pck_element = 0; if (unlikely(!ch->elements || !ch->frames)) { - printf("%s: bad DMA request\n", __FUNCTION__); + printf("%s: bad DMA request\n", __func__); return; } @@ -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); } min_elems = INT_MAX; @@ -879,14 +879,14 @@ static int omap_dma_ch_reg_write(struct omap_dma_s *s, ch->pack[0] = (value & 0x0040) >> 6; ch->port[0] = (enum omap_dma_port) ((value & 0x003c) >> 2); if (ch->port[0] >= __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] >= __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 = 1 << (value & 3); if ((value & 3) == 3) { - printf("%s: bad data_type for DMA channel\n", __FUNCTION__); + printf("%s: bad data_type for DMA channel\n", __func__); ch->data_type >>= 1; } break; @@ -1440,7 +1440,7 @@ static int omap_dma_sys_read(struct omap_dma_s *s, int offset, case 0x482: /* DMA_PCh1_SR */ case 0x4c0: /* DMA_PChD_SR_0 */ printf("%s: Physical Channel Status Registers not implemented.\n", - __FUNCTION__); + __func__); *ret = 0xff; break; @@ -1898,13 +1898,13 @@ static void omap_dma4_write(void *opaque, hwaddr addr, omap_dma_reset(s->dma); s->ocp = value & 0x3321; if (((s->ocp >> 12) & 3) == 3) /* MIDLEMODE */ - fprintf(stderr, "%s: invalid DMA power mode\n", __FUNCTION__); + fprintf(stderr, "%s: invalid DMA power mode\n", __func__); return; case 0x78: /* DMA4_GCR */ s->gcr = value & 0x00ff00ff; if ((value & 0xff) == 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; case 0x80 ... 0xfff: @@ -1935,7 +1935,7 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->src_sync = (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 = (value >> 23) & 1; ch->bs = (value >> 18) & 1; ch->transparent_copy = (value >> 17) & 1; @@ -1947,7 +1947,7 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->fs = (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 = (value & 0x001f) | ((value >> 14) & 0x0060); /* XXX must be 0x01 for CamDMA */ @@ -1978,7 +1978,7 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->endian_lock[1] =(value >> 18) & 1; if (ch->endian[0] != ch->endian[1]) fprintf(stderr, "%s: DMA endianness conversion enable attempt\n", - __FUNCTION__); + __func__); ch->write_mode = (value >> 16) & 3; ch->burst[1] = (value & 0xc000) >> 14; ch->pack[1] = (value & 0x2000) >> 13; @@ -1988,10 +1988,10 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->translate[0] = (value & 0x003c) >> 2; if (ch->translate[0] | ch->translate[1]) fprintf(stderr, "%s: bad MReqAddressTranslate sideband signal\n", - __FUNCTION__); + __func__); ch->data_type = 1 << (value & 3); if ((value & 3) == 3) { - printf("%s: bad data_type for DMA channel\n", __FUNCTION__); + printf("%s: bad data_type for DMA channel\n", __func__); ch->data_type >>= 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 &= ~3; 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); if (s->chan[ch].cmd & DCMD_STARTIRQEN) s->chan[ch].state |= DCSR_STARTINTR; @@ -264,7 +264,7 @@ static uint64_t pxa2xx_dma_read(void *opaque, hwaddr offset, unsigned int channel; if (size != 4) { - hw_error("%s: Bad access width\n", __FUNCTION__); + hw_error("%s: Bad access width\n", __func__); return 5; } @@ -312,7 +312,7 @@ static uint64_t pxa2xx_dma_read(void *opaque, hwaddr offset, } } - 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; } @@ -323,7 +323,7 @@ static void pxa2xx_dma_write(void *opaque, hwaddr offset, unsigned int channel; if (size != 4) { - hw_error("%s: Bad access width\n", __FUNCTION__); + hw_error("%s: Bad access width\n", __func__); return; } @@ -337,7 +337,7 @@ static void pxa2xx_dma_write(void *opaque, hwaddr offset, 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); s->req[channel] = value; break; @@ -416,7 +416,7 @@ static void pxa2xx_dma_write(void *opaque, hwaddr offset, break; } fail: - hw_error("%s: Bad offset " TARGET_FMT_plx "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " TARGET_FMT_plx "\n", __func__, offset); } } @@ -431,7 +431,7 @@ static void pxa2xx_dma_request(void *opaque, int req_num, int on) PXA2xxDMAState *s = opaque; int ch; if (req_num < 0 || req_num >= 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); 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) 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) 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 == 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, hwaddr addr, case 0x10: /* GPIO_SYSCONFIG */ if (((value >> 3) & 3) == 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] = 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; 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 port, 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; } 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, uint32_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 } @@ -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); } } 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, int byte) 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; } @@ -331,7 +331,7 @@ static void lm_kbd_write(LM823KbdState *s, int reg, int byte, uint8_t value) if ((value & 3) && (value & 3) != 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); } return 0; @@ -278,7 +278,7 @@ static void pxa2xx_keypad_write(void *opaque, hwaddr offset, break; default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } } @@ -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); } 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, uint16_t data) if (s->enabled != !(data & 0x4000)) { s->enabled = !(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 = s->busy && s->enabled; @@ -210,7 +210,7 @@ static void tsc2005_write(TSC2005State *s, int reg, uint16_t data) s->timing[0] = data & 0x1fff; if ((s->timing[0] >> 11) == 3) fprintf(stderr, "%s: illegal conversion clock setting\n", - __FUNCTION__); + __func__); break; case 0xd: /* CFR1 */ s->timing[1] = data & 0xf07; @@ -222,7 +222,7 @@ static void tsc2005_write(TSC2005State *s, int reg, uint16_t data) default: fprintf(stderr, "%s: write into read-only register %x\n", - __FUNCTION__, reg); + __func__, reg); } } @@ -338,7 +338,7 @@ static uint8_t tsc2005_txrx_word(void *opaque, uint8_t value) if (s->enabled != !(value & 1)) { s->enabled = !(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 = 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 == ((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; } @@ -913,7 +913,7 @@ uint32_t tsc210x_txrx(void *opaque, uint32_t value, int len) uint32_t ret = 0; if (len != 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); /* 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; 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 #ifdef DEBUG_VT82C686B -#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __FUNCTION__, ##__VA_ARGS__) +#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __func__, ##__VA_ARGS__) #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 #ifdef DEBUG -#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __FUNCTION__, ##__VA_ARGS__) +#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __func__, ##__VA_ARGS__) #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); } static void cbus_cycle(CBusPriv *s) @@ -299,7 +299,7 @@ static inline uint16_t retu_read(CBusRetu *s, int reg) return 0x0000; default: - hw_error("%s: bad register %02x\n", __FUNCTION__, reg); + hw_error("%s: bad register %02x\n", __func__, reg); } } @@ -372,7 +372,7 @@ static inline void retu_write(CBusRetu *s, int reg, uint16_t val) break; default: - hw_error("%s: bad register %02x\n", __FUNCTION__, reg); + hw_error("%s: bad register %02x\n", __func__, reg); } } @@ -538,7 +538,7 @@ static inline uint16_t tahvo_read(CBusTahvo *s, int reg) return 0x0000; default: - hw_error("%s: bad register %02x\n", __FUNCTION__, reg); + hw_error("%s: bad register %02x\n", __func__, reg); } } @@ -567,7 +567,7 @@ static inline void tahvo_write(CBusTahvo *s, int reg, uint16_t val) if (s->backlight != (val & 0x7f)) { s->backlight = val & 0x7f; printf("%s: LCD backlight now at %i / 127\n", - __FUNCTION__, s->backlight); + __func__, s->backlight); } break; @@ -588,7 +588,7 @@ static inline void tahvo_write(CBusTahvo *s, int reg, uint16_t val) break; default: - hw_error("%s: bad register %02x\n", __FUNCTION__, reg); + hw_error("%s: bad register %02x\n", __func__, reg); } } 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 = 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); } 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); } 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) == 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 = 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; default: @@ -864,7 +864,7 @@ void omap_gpmc_attach(struct omap_gpmc_s *s, int cs, MemoryRegion *iomem) assert(iomem); if (cs < 0 || cs >= 8) { - fprintf(stderr, "%s: bad chip-select %i\n", __FUNCTION__, cs); + fprintf(stderr, "%s: bad chip-select %i\n", __func__, cs); exit(-1); } f = &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_l4_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); } @@ -151,7 +151,7 @@ hwaddr omap_l4_attach(struct omap_target_agent_s *ta, hwaddr base; if (region < 0 || region >= ta->regions) { - fprintf(stderr, "%s: bad io region (%i)\n", __FUNCTION__, region); + fprintf(stderr, "%s: bad io region (%i)\n", __func__, region); exit(-1); } 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) != 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 = 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__); } 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__); } 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__); } 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) 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 = s->buf[0]; s->faults = 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 #ifdef DEBUG_BONITO -#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __FUNCTION__, ##__VA_ARGS__) +#define DPRINTF(fmt, ...) fprintf(stderr, "%s: " fmt, __func__, ##__VA_ARGS__) #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 offset, 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); } return 0; @@ -369,7 +369,7 @@ static void pxa2xx_mmci_write(void *opaque, case MMC_SPI: s->spi = 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; case MMC_CMDAT: @@ -442,7 +442,7 @@ static void pxa2xx_mmci_write(void *opaque, break; default: - hw_error("%s: Bad offset " REG_FMT "\n", __FUNCTION__, offset); + hw_error("%s: Bad offset " REG_FMT "\n", __func__, offset); } } 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 addr, if ((value ^ s->ch[ch].config) & (3 << 14)) /* DMAR | DMAW */ omap_mcspi_dmarequest_update(s->ch + ch); if (((value >> 12) & 3) == 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 = value & 0x7fffff; break; @@ -367,7 +367,7 @@ void omap_mcspi_attach(struct omap_mcspi_s *s, int chipselect) { if (chipselect < 0 || chipselect >= s->chnum) - hw_error("%s: Bad chipselect %i\n", __FUNCTION__, chipselect); + hw_error("%s: Bad chipselect %i\n", __func__, chipselect); s->ch[chipselect].txrx = txrx; s->ch[chipselect].opaque = 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 addr, s->config = value & 0x33d; if (((value >> 3) & 3) == 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 = (value >> 0) & 1; if (s->inout && s->trigger != 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 != 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 == 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) 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 |= 1 << 10; /* RTCERR */ menelaus_update(s); } @@ -708,7 +708,7 @@ static void menelaus_write(void *opaque, uint8_t addr, uint8_t value) 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; 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_fifo_s *fifo, if (off <= DFIFO_LEN_MASK) { if (off + len > DFIFO_LEN_MASK + 1 && (fifo->dsize = off + len) > (DFIFO_LEN_MASK + 1) * 2) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __FUNCTION__, len); + fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); exit(-1); } buf = fifo->data + off; } else { if (fifo->dlen > fifo->dsize) { - fprintf(stderr, "%s: can't alloc %i bytes\n", __FUNCTION__, len); + fprintf(stderr, "%s: can't alloc %i bytes\n", __func__, len); exit(-1); } buf = 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 */ #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 addr) } printf("%s: unknown register at %03x\n", - __FUNCTION__, (int) (addr & 0xfff)); + __func__, (int) (addr & 0xfff)); return 0; } @@ -313,7 +313,7 @@ static uint32_t tusb_async_readh(void *opaque, hwaddr addr) } printf("%s: unknown register at %03x\n", - __FUNCTION__, (int) (addr & 0xfff)); + __func__, (int) (addr & 0xfff)); return 0; } @@ -436,7 +436,7 @@ static uint32_t tusb_async_readw(void *opaque, hwaddr addr) return 0x54059adf; } - printf("%s: unknown register at %03x\n", __FUNCTION__, offset); + printf("%s: unknown register at %03x\n", __func__, offset); return 0; } @@ -456,7 +456,7 @@ static void tusb_async_writeb(void *opaque, hwaddr addr, 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, 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 = value; s->host_mode = (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; case TUSB_PHY_OTG_CTRL_ENABLE: @@ -636,7 +636,7 @@ static void tusb_async_writew(void *opaque, hwaddr addr, break; 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; 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; } for (i = 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__, subpath); + 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; if (pipe(fd) != 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() != 0) @@ -190,7 +190,7 @@ static int xen_domain_watcher(void) case -1: if (errno == EINTR) continue; - qemu_log("%s: Huh? read error: %s\n", __FUNCTION__, strerror(errno)); + qemu_log("%s: Huh? read error: %s\n", __func__, strerror(errno)); qemu_running = 0; break; case 0: @@ -198,13 +198,13 @@ static int xen_domain_watcher(void) qemu_running = 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; } } /* 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) /* Initialize backend core & drivers */ if (xen_be_init() != 0) { - fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__); + fprintf(stderr, "%s: xen backend core setup failed\n", __func__); exit(1); } 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); # 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) /* 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 #define zaurus_printf(format, ...) \ - fprintf(stderr, "%s: " format, __FUNCTION__, ##__VA_ARGS__) + fprintf(stderr, "%s: " format, __func__, ##__VA_ARGS__) /* zaurus.c */ 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, #ifdef DEBUG_GUEST_PHYS_REGION_ADD fprintf(stderr, "%s: target_start=" TARGET_FMT_plx " target_end=" - TARGET_FMT_plx ": %s (count: %u)\n", __FUNCTION__, target_start, + 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 = 0; 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); blk_mig_lock(); @@ -648,7 +648,7 @@ static int flush_blks(QEMUFile *f) } blk_mig_unlock(); - DPRINTF("%s Exit submitted %d read_done %d transferred %d\n", __FUNCTION__, + 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) != 4) { fprintf(stderr, "%s: header parse error: \"%s\"\n", - __FUNCTION__, xpm[line]); + __func__, xpm[line]); return NULL; } if (chars != 1) { - fprintf(stderr, "%s: chars != 1 not supported\n", __FUNCTION__); + fprintf(stderr, "%s: chars != 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; } 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(QXLInstance *sin) static void interface_notify_update(QXLInstance *sin, uint32_t update_id) { - fprintf(stderr, "%s: abort()\n", __FUNCTION__); + fprintf(stderr, "%s: abort()\n", __func__); abort(); } static int interface_flush_resources(QXLInstance *sin) { - fprintf(stderr, "%s: abort()\n", __FUNCTION__); + fprintf(stderr, "%s: abort()\n", __func__); abort(); return 0; } From patchwork Tue Sep 26 00:08:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 818405 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="z8findqI"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3y1M0X0jSNz9s7C for ; Tue, 26 Sep 2017 10:15:08 +1000 (AEST) Received: from localhost ([::1]:44894 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdWk-0003p1-3O for incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:15:06 -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 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= 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 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 (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; 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 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?= e0PEZyJif7ouwOObldnknINzMdQ79A3ohhTY5M5AZv/bIL8b9ppPYJCj8XfY4pNP7ZgGIpK2KeCYDWeJw98bqRIxTqbk55/SbpurZ3kzcdHuXoLYOhg67dczEe//SpvJyTH4lrwnhXc16bzYXSjkr99FAIq2ox15ZZlEapsIZEVaU1FG1L6xrxkhw2s9UQ1+nNUovpJ8XiRpq5gGrL5gxf+74UdG8frQJeWAfGISJwF6AqRY7k2nRUjrHDJAHNKTM1qbCTDYmjaNLqPMrIlkX//Fn7mjs46T8h/C1cVHhqkQPuawtXJcDg9K/Ref+02O3YOIfiIVGqEKoWqBNZJ8jFq+vqDXe5fI/Bu5tYWy7yVtunTkPAaDVJStv+7W2BsGJ9nLxKFkH6dPwjKtFOGi37MP0gc3zZQ7K/Svu2qB2/xwZuGeLqCkBSPE+fNTefE9OmY7LpQZDH/msZ3bxv+MAKSGnCBSpx/U3JjkdGOYLP0RsEIO4Sq8w3Nzs1ZHZd8FF6q/PH5AsWAUTFH+Xetq13MpE7B3mAowY5EiSkVnTXETPnVxI4KWij6kzHL8WUf8HScfjESIbuKL8oh+LshmYDNpCZIu2avOIOudEU1bPybdl7c7i/ZFMqygpFC0579WBNHoO+unuRgbhS4jtq9UN4vAg6hmcfATMpiQUNMnomnNFy7Aptfbm77Ct9DG4jqIYMIIjr6yrtQC//4H7yvFL7fvVO0Eif9rkVJNIrEtjQaxMu5udwEJxYjZdIlBSIG6oMBBSQqmieqLlSBq7t53q+85dBWafRO7WF84TOz2PRXoXF9w3p80RmNEj3YpTH8qoOkewW8JIvCl9ymPEJZQsKHLTl5wz0tXiGHWJWHV6YOSSysRb2zoBklDMbPzA0KIZcBDjpUsSSOR23+m8IxEHGI1SKwasTQhKBZiRP5GnAYHtECF4JQnWCSxIY4FnWWo3R46KtccM1cPNyKoE6M49H+zNiBVaQjKcv7DZ4r3DZIyMEYku06fdIWIBGBQUzNS0apU8wtz+wUGfGJLMtIeCIz4KdQsBFqwg6H6YfGgfMHJQj3U3YFP8v84ZD7YmZm8i5HxbrA71VvBQ65B76dREOeGCZ4mdv75Hc3odFk97P+FOew== 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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_report("\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) tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y) @@ -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_scm_helper.o +tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_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-block-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 @@ */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include #include "libqtest.h" @@ -1859,7 +1860,7 @@ int main(int argc, char **argv) ahci_pedantic = 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[] = 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); } /* 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 @@ */ #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 = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine, (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 = 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 = 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..950429524e3eb07e6daed1fe01caad0f5d554809 GIT binary patch literal 272776 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 + error_report("unable to create blob file: %s", error->message); g_error_free(error); } else { if (ftruncate(fd, BLOB_SIZE) == -1) { - fprintf(stderr, "ftruncate(\"%s\", %zu): %s\n", pathname, + error_report("ftruncate(\"%s\", %zu): %s", pathname, BLOB_SIZE, strerror(errno)); } else { void *buf; buf = mmap(NULL, BLOB_SIZE, PROT_WRITE, MAP_SHARED, fd, 0); if (buf == 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 @@ */ #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, uint64_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_size " - "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 #include "libqtest.h" @@ -155,7 +156,7 @@ void migrate(QOSState *from, QOSState *to, const char *uri) continue; } - fprintf(stderr, "Migration did not complete, status: %s\n", st); + error_report("Migration did not complete, status: %s", st); g_assert_not_reached(); } @@ -199,7 +200,7 @@ void mkimg(const char *file, const char *fmt, unsigned size_mb) fmt, file, size_mb); ret = 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); 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 @@ */ #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) node = 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 addr) node = 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) == mask) { if ((node->addr != allocator->start) || (node->size != 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" #include @@ -89,7 +90,7 @@ static int socket_accept(int sock) ret = accept(sock, (struct sockaddr *)&addr, &addrlen); } while (ret == -1 && errno == EINTR); if (ret == -1) { - fprintf(stderr, "%s failed: %s\n", __func__, strerror(errno)); + error_report("%s failed: %s", __func__, strerror(errno)); } close(sock); @@ -155,7 +156,7 @@ static const char *qtest_qemu_binary(void) qemu_bin = 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); } @@ -312,7 +313,7 @@ static GString *qtest_recv_line(QTestState *s) } if (len == -1 || len == 0) { - fprintf(stderr, "Broken pipe\n"); + error_report("Broken pipe"); exit(1); } @@ -397,7 +398,7 @@ static void qmp_response(JSONMessageParser *parser, GQueue *tokens) obj = json_parser_parse(tokens, NULL); if (!obj) { - fprintf(stderr, "QMP JSON response parsing failed\n"); + error_report("QMP JSON response parsing failed"); exit(1); } @@ -423,7 +424,7 @@ QDict *qmp_fd_receive(int fd) } if (len == -1 || len == 0) { - fprintf(stderr, "Broken pipe\n"); + error_report("Broken pipe"); exit(1); } @@ -880,7 +881,7 @@ void qtest_bufread(QTestState *s, uint64_t addr, void *data, size_t size) g_base64_decode_inplace(args[1], &len); if (size != 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 = 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() == 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() == 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; if (fp == 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; } 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 += strlen(name); if (*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/cmdline", + argv0, gettid(), name); } start++; @@ -106,8 +106,8 @@ static int get_command_arg_str(const char *name, end = strstr(start, "\n"); if (end == 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/cmdline", + argv0, gettid(), name); return -1; } @@ -132,7 +132,7 @@ static int get_command_arg_ull(const char *name, errno = 0; *val = 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) fd = 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; } if (read(fd, buf, len) != 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; 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 ncpus) static int mount_misc(const char *fstype, const char *dir) { if (mkdir(dir, 0755) < 0 && errno != 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; } 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 = 0; ramsizeGB = strtoll(optarg, &end, 10); if (errno != 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 = 0; ncpus = strtoll(optarg, &end, 10); if (errno != 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) case '?': case 'h': - fprintf(stderr, "%s: [--help][--ramsize GB][--cpus N]\n", argv0); + 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 @@ */ #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; default: - fprintf(stderr, "Unexpected %d on %s serial\n", readvalue, side); + 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 = true; } else { - fprintf(stderr, "Memory content inconsistency at %x" + error_report("Memory content inconsistency at %x" " first_byte = %x last_byte = %x current = %x" - " hit_edge = %x\n", + " hit_edge = %x", address, first_byte, last_byte, b, hit_edge); bad = true; } diff --git a/tests/qemu-iotests/socket_scm_helper.c b/tests/qemu-iotests/socket_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 @@ */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include #include @@ -53,7 +54,7 @@ static int send_fd(int fd, int fd_to_send) } while (ret < 0 && errno == EINTR); if (ret < 0) { - fprintf(stderr, "Failed to send msg, reason: %s\n", strerror(errno)); + error_report("Failed to send msg, reason: %s", strerror(errno)); } return ret; @@ -69,14 +70,14 @@ static int get_fd_num(const char *fd_str, bool silent) sock = 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 = 0; i < argc; i++) { - fprintf(stderr, "Parameter %d: %s\n", i, argv[i]); + error_report("Parameter %d: %s", i, argv[i]); } #endif @@ -120,7 +121,7 @@ int main(int argc, char **argv, char **envp) is supposed to fork and exec this program. */ fd = 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[] = 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); } @@ -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); } static void add_stats(struct thread_stats *s, struct thread_info *info, int 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 @@ */ #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 >= 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) 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); } 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 *fmt, ...) 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=%d\n", sig); + error_report("alarm signal=%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) } } - fprintf(stderr, "test-i386-fprem: tested %llu cases\n", count); + error_report("test-i386-fprem: tested %llu cases", count); } 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 = 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 @@ */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "libqtest.h" static int verbose; @@ -79,7 +80,7 @@ static void test_commands(void) for (i = 0; hmp_cmds[i] != NULL; i++) { if (verbose) { - fprintf(stderr, "\t%s\n", hmp_cmds[i]); + error_report("\t%s", hmp_cmds[i]); } response = hmp("%s", hmp_cmds[i]); g_free(response); @@ -102,7 +103,7 @@ static void test_info_commands(void) *endp = '\0'; /* Now run the info command */ if (verbose) { - fprintf(stderr, "\t%s\n", info); + error_report("\t%s", info); } resp = 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 @@ */ #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 >= 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, int nreaders) 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); } 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, uint32_t expect) uint16_t mask = ~(PORTSC_CSC | PORTSC_PEDC | PORTSC_OCC); #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) == (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 = elem->out_num; out_sg = 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) } if (elem->in_num < 1) { - fprintf(stderr, "virtio-net contains no in buffers\n"); + error_report("virtio-net contains no in buffers"); break; } @@ -363,7 +363,7 @@ vubr_receive_cb(int sock, void *ctx) VubrDev *vubr = (VubrDev *)ctx; if (!vu_dispatch(&vubr->vudev)) { - fprintf(stderr, "Error while dispatching\n"); + error_report("Error while dispatching"); } } @@ -460,7 +460,7 @@ vubr_panic(VuDev *dev, const char *msg) { VubrDev *vubr = container_of(dev, VubrDev, vudev); - fprintf(stderr, "PANIC: %s\n", msg); + error_report("PANIC: %s", msg); dispatcher_remove(&vubr->dispatcher, dev->sock); vubr->quit = 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 = gethostbyname(host); if (!he) { - fprintf(stderr, "gethostbyname() failed.\n"); + error_report("gethostbyname() failed."); exit(1); } saddr->sin_addr = *(struct in_addr *)he->h_addr; @@ -589,13 +589,13 @@ vubr_backend_udp_setup(VubrDev *dev, lport = strtol(local_port, (char **)&r, 0); if (r == local_port) { - fprintf(stderr, "lport parsing failed.\n"); + error_report("lport parsing failed."); exit(1); } rport = strtol(remote_port, (char **)&r, 0); if (r == remote_port) { - fprintf(stderr, "rport parsing failed.\n"); + error_report("rport parsing failed."); exit(1); } @@ -713,15 +713,15 @@ main(int argc, char *argv[]) return 0; out: - fprintf(stderr, "Usage: %s ", argv[0]); - fprintf(stderr, "[-c] [-u ud_socket_path] [-l lhost:lport] [-r rhost:rport]\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:rport]"); + 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"); return 1; } From patchwork Tue Sep 26 00:08:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 818412 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="jrVMjL/N"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3y1M5Y4Cg0z9sDB for ; Tue, 26 Sep 2017 10:19:29 +1000 (AEST) Received: from localhost ([::1]:44932 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdax-0007Lb-Jv for incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:19:27 -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 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= 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 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 (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; 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 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 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?= bJ5vuvmWcqwueR9nGf6uVLv02xJc2e2ZHeF2ab6ke78Oer+d+aNrPwx0OfSZGvqoULVLrPjw1aihqbB3t1C2imoJAGKP7Bd1LEAXZ24Vib4O21sd4mvHBJaxUSvvJuXJRyK08yEVwp6ds6VeCnDJCgvLcW+kJDA2+BxIoeDNUIDXiBIscVI5fBh6NQWaAb3mkUVcMFvGxpJY2/vKgEF5MEgwIt2sLbgmqy3kgVJ6IQiZ360ocpMz61FuBZCZ6du7Ch3S4lA6mR1vDctKnx5+VY32ebJZTljPrQpXnJd4LbgteGGlotV9bkEB9raiKOnUYqqTdcAujd1cg+Dvf/IBmLwoEBG8Z7h6LB/90pHPnMY6y4X4Mz+ADFnRjr8+/axKtNa/KqZXfn1AFyypHX/mxH5msE4cMiQljPWJgwucKeaj+rgJVgVXt6QJdWQo0+FRkbo7FWy5tJH4VgbmkrcozZpedGy06qjwOomHyKV6846JXv26fpbAh+vsnSseYielPMnoo3gigXUIQtusOmj8hMUt0qkJXedceJ6da9JuuxxjVShUu0MVjm6Eb64APlqEO3nN48rrN5cJg0oQrYnT3/+6DNF12ObrVwpDFtQHfkzwuksWbVoHXBBO9/VsgYYlcGGU0CIHl4GnF2qRkR4ZXNRly/LDK5a5WaYNK1cH870o+O2G9Gh+w/50dR2jNZL2jlcpJBrydSxqrdQwW01Uho58x+1X0FQT+1fRYsHs+f9mLE4zCPiEfSUpq4tCIeuidAJynR3evPvEu5kEKzDi5y1euKAjPdHVpuc3HDhud3kYVoAIesUXpSNxczYA13IlMPljwcHIZzAYes9WKJYlwby2Vw0B/6AFYVRnbkMdrw6QrIoLbPiQXhjP7TgblbJgV80RH2q9cXVrlY3Uk5mYXI5QRSKZYy2IuQjfX9g9GMCq9Vmsb2Ut6T0xlkE4NUatZacTf3RdN8v/QB8LCKnHU3fYVKXHeqMpk7vik47is/XUq6f0jFDyztvyeGBTw67/WYHXGELYn5/7nEaKnq5tQsgkRoRFI7l7BshjR+Ytfecwtb3hjy5esX7QSPLisnv/uxI4cu1kVrGZXOGIS2biUXir+FviXY3AC1IlcY47f5SKiux9pYgxN3WVOFF/4pxLn2Ssax4u6uI80qTOQ3a3s9uGSOZCnSamz6r2l8WuskHv0MVKom3X2oAakwLgIGGq/IGDnqbeSUMU8VmARbKSqNQ+GZp7Fp70RyyI/3tG+P0imAw== 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_Poussineau?= , 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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_report("\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é 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 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); } 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 @@ */ #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_boot_info *binfo, char *filename; filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, binfo->dtb_filename); if (!filename) { - fprintf(stderr, "Couldn't open dtb file %s\n", binfo->dtb_filename); + error_report("Couldn't open dtb file %s", binfo->dtb_filename); goto fail; } fdt = 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 = 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 = qemu_fdt_getprop_cell(fdt, "/", "#size-cells", NULL, &error_fatal); if (acells == 0 || scells == 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; } @@ -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; } @@ -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", nodename, + 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 = 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_boot_info *binfo, rc = 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; } rc = qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", binfo->initrd_start + binfo->initrd_size); 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, uint16_t size_key, gsize length; 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 = length; @@ -956,7 +956,7 @@ static void arm_load_kernel_notify(Notifier *notifier, void *data) is_linux = 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] = info->loader_start + KERNEL_ARGS_ADDR; if (info->ram_size >= (1ULL << 32)) { - fprintf(stderr, "qemu: RAM size must be less than 4GB to boot" - " Linux kernel using ATAGS (try passing a device tree" - " using -dtb)\n"); + error_report("qemu: RAM size must be less than 4GB to boot" + " Linux kernel using ATAGS (try passing a device 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 @@ */ #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) dinfo = 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); } @@ -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); } @@ -99,8 +100,8 @@ static void verdex_init(MachineState *machine) dinfo = 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); } @@ -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); } 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); } @@ -154,7 +155,7 @@ static void mainstone_common_init(MemoryRegion *address_space_mem, blk_by_legacy_dinfo(dinfo), sector_len, MAINSTONE_FLASH / 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); } } 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 = blk_getlength(blk); if (flash_size != 8*1024*1024 && flash_size != 16*1024*1024 && flash_size != 32*1024*1024) { - fprintf(stderr, "Invalid flash image size\n"); + error_report("Invalid flash image size"); exit(1); } 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 @@ */ #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); } @@ -3989,7 +3990,7 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory, dinfo = 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 = 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 @@ */ #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 */ if (mode[0] == 1 || mode[0] == 2 || mode[1] == 1 || mode[1] == 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__); } @@ -1331,7 +1332,7 @@ static void omap_prcm_dpll_update(struct omap_prcm_s *s) s->dpll_lock = 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, 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] &= ~0xcc; s->clken[9] |= 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] = 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] != (value & 3)) { s->clksel[6] = value & 3; omap_prcm_dpll_update(s); @@ -2486,7 +2487,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegion *sysmem, dinfo = 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 = 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 version) 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 version) 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 version) } 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); } 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 = 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 = 0; } if (rom_size > 0) { @@ -243,13 +243,13 @@ static void palmte_init(MachineState *machine) rom_loaded = 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); } } 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); } 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 @@ */ #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 = g_new0(PXA2xxState, 1); if (strncmp(cpu_type, "pxa27", 5)) { - fprintf(stderr, "Machine requires a PXA27x processor.\n"); + error_report("Machine requires a PXA27x processor."); exit(1); } @@ -2093,7 +2094,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space, dinfo = 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 = pxa2xx_mmci_init(address_space, 0x41100000, @@ -2218,7 +2219,7 @@ PXA2xxState *pxa255_init(MemoryRegion *address_space, unsigned int sdram_size) dinfo = 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 = 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 @@ */ #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 = 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 @@ */ #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 = %d\n", line, level); + fprintf(stderr, "Uhandled out event: %d = %d", line, level); break; } } @@ -133,7 +134,7 @@ static void tosa_gpio_setup(PXA2xxState *cpu, 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; } @@ -159,13 +160,13 @@ static int tosa_dac_send(I2CSlave *i2c, uint8_t data) s->buf[s->len] = 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; } if (s->len == 2) { - fprintf(stderr, "dac: channel %d value 0x%02x\n", + error_report("dac: channel %d value 0x%02x", s->buf[0], s->buf[1]); } 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 board_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."); } versatile_binfo.ram_size = 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 VexpressMachineState *vms, 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); } @@ -355,7 +355,7 @@ static void a15_daughterboard_init(const VexpressMachineState *vms, */ uint64_t rsz = 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 = ve_pflash_cfi01_register(map[VE_NORFLASH0], "vexpress.flash0", dinfo); if (!pflash0) { - fprintf(stderr, "vexpress: error registering flash 0.\n"); + error_report("vexpress: error registering flash 0."); exit(1); } @@ -655,7 +655,7 @@ static void vexpress_common_init(MachineState *machine) dinfo = 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); } 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 = 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); } @@ -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); } diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.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 = k->set_guest_notifiers(qbus->parent, nvqs, true); if (r != 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; } @@ -187,7 +187,7 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev) for (i = 0; i < nvqs; i++) { r = virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, true); if (r != 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 |= ONEN_ERR_CMD; s->intstatus |= ONEN_INT; - fprintf(stderr, "%s: unknown OneNAND command %x\n", + error_report("%s: unknown OneNAND command %x", __func__, s->command); } @@ -665,7 +665,7 @@ static uint64_t onenand_read(void *opaque, hwaddr addr, return 0x0000; } - 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; 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; 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 *filename) dev->flash_contents[1] = (blocks >> 8) & 0xff; dev->flash_contents[2] = (blocks >> 16) & 0xff; dev->flash_contents[3] = (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 command) { switch (command) { case 0xff: - fprintf(stderr, "reset flash device\n"); - dev->state = WAIT; - break; + error_report("reset flash device"); + dev->state = WAIT; + break; case 0x00: - fprintf(stderr, "read mode 1\n"); - dev->state = READ1; - dev->address_cycle = 0; - break; + error_report("read mode 1"); + dev->state = READ1; + dev->address_cycle = 0; + break; case 0x01: - fprintf(stderr, "read mode 2\n"); - dev->state = READ2; - dev->address_cycle = 0; - break; + error_report("read mode 2"); + dev->state = READ2; + dev->address_cycle = 0; + break; case 0x50: - fprintf(stderr, "read mode 3\n"); - dev->state = READ3; - dev->address_cycle = 0; - break; + error_report("read mode 3"); + dev->state = READ3; + dev->address_cycle = 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 data) break; case 2: dev->address += 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) static uint8_t handle_read(tc58128_dev * dev) { -#if 0 - if (dev->address % 0x100000 == 0) - fprintf(stderr, "reading flash at address 0x%08x\n", dev->address); -#endif return dev->flash_contents[dev->address++]; } 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 @@ */ #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); } 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); } 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); } @@ -113,7 +114,7 @@ void bt_device_done(struct bt_device_s *dev) while (*p && *p != dev) p = &(*p)->next; if (*p != 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 @@ */ #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) if (off < FIFO_LEN) { if (off + len > FIFO_LEN && (s->out_size = 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; } 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); } @@ -168,8 +169,8 @@ static void csrhci_in_packet_vendor(struct csrhci_s *s, int ocf, s->bd_addr.b[5] = data[offset + 2]; 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; default: - fprintf(stderr, "%s: got a bad CMD packet\n", __func__); + error_report("%s: got a bad CMD packet", __func__); return; } @@ -226,7 +227,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_t *pkt) case H4_NEG_PKT: if (s->in_hdr != 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 += 2; @@ -241,7 +242,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_t *pkt) case H4_ALIVE_PKT: if (s->in_hdr != 4 || pkt[1] != 0x55 || pkt[2] != 0x00) { - fprintf(stderr, "%s: got a bad ALIVE packet\n", __func__); + error_report("%s: got a bad ALIVE packet", __func__); return; } @@ -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; } 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 @@ */ #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; 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; 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 */ 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; 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 -= HCI_ACL_HDR_SIZE; 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 &= ~HCI_HANDLE_OFFSET; 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 = handle; else if (handle != 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 = handle; else if (handle != 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 -= 3; 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; } 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; } @@ -2223,7 +2223,7 @@ struct HCIInfo *hci_init(const char *str) return bt_new_hci(vlan); } - fprintf(stderr, "qemu: Unknown bluetooth HCI `%s'.\n", str); + error_report("qemu: Unknown bluetooth HCI `%s'.", str); 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 uint8_t *data, int len) return; bad: - fprintf(stderr, "%s: bad transaction on Interrupt channel.\n", + error_report("%s: bad transaction on Interrupt channel.", __func__); } 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 @@ */ #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, if (likely(ch)) { if (ch->remote_cid != 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; } @@ -790,7 +791,7 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id, #if 0 /* TODO: do the IDs really have to be in sequence? */ if (!id || (id != l2cap->last_id && id != 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 *l2cap, int code, int id, } /* 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; case L2CAP_CONN_REQ: @@ -836,8 +837,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id, } /* 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; case L2CAP_CONF_REQ: @@ -865,8 +866,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, 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; case L2CAP_DISCONN_REQ: @@ -887,8 +888,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id, } /* 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; case L2CAP_ECHO_REQ: @@ -897,8 +898,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, 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", __func__, id); + error_report("%s: unexpected Echo Response (%02x) " + "packet, ignoring.", __func__, id); break; case L2CAP_INFO_REQ: @@ -917,8 +918,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id, } /* 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; default: @@ -1066,8 +1067,8 @@ static void l2cap_frame_in(struct l2cap_instance_s *l2cap, uint16_t len = le16_to_cpu(frame->len); if (unlikely(cid >= 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; } @@ -1128,9 +1129,9 @@ static uint8_t *l2cap_bframe_out(struct bt_l2cap_conn_params_s *parm, int len) struct l2cap_chan_s *chan = (struct l2cap_chan_s *) parm; 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); } @@ -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 = l2cap_psm(dev, psm); 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); } 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 @@ */ #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 uint8_t *data, int len) int rsp_len = 0; if (len < 5) { - fprintf(stderr, "%s: short SDP PDU (%iB).\n", __func__, len); + error_report("%s: short SDP PDU (%iB).", __func__, len); return; } @@ -517,7 +518,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uint8_t *data, int len) len -= 5; if (len != plen) { - fprintf(stderr, "%s: wrong SDP PDU length (%iB != %iB).\n", + error_report("%s: wrong SDP PDU length (%iB != %iB).", __func__, plen, len); err = SDP_INVALID_PDU_SIZE; goto respond; @@ -544,7 +545,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uint8_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 = 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(Exynos4210UartState *s) qemu_irq_raise(s->irq); #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 @@ -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)] |= 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)] &= ~val; s->reg[I_(UINTSP)] &= ~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 cmd) 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; } @@ -189,7 +190,7 @@ static void mcf_do_command(mcf_uart_state *s, uint8_t cmd) s->rx_enabled = 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, } } - 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(); } @@ -290,8 +291,8 @@ static uint64_t sh_serial_read(void *opaque, hwaddr offs, #endif 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(); } 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 @@ */ #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 = lseek(fd, 0, SEEK_END); if (size == -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, hwaddr *ep, hwaddr *loadaddr, goto out; if (hdr->ih_type != 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, hwaddr *ep, hwaddr *loadaddr, address = *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; } data = g_malloc(hdr->ih_size); if (read(fd, data, hdr->ih_size) != hdr->ih_size) { - fprintf(stderr, "Error reading file\n"); + error_report("Error reading file"); goto out; } @@ -693,7 +694,7 @@ static int load_uboot_image(const char *filename, hwaddr *ep, hwaddr *loadaddr, bytes = 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 = bytes; @@ -763,7 +764,7 @@ int load_image_gzipped_buffer(const char *filename, uint64_t max_sz, data = g_malloc(max_sz); bytes = 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]; 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, fd = open(rom->path, O_RDONLY | O_BINARY); if (fd == -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 = addr; rom->romsize = lseek(fd, 0, SEEK_END); if (rom->romsize == -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 = read(fd, rom->data, rom->datasize); if (rc != rom->datasize) { - fprintf(stderr, "rom: file %-20s: read error: rc=%d (expected %zd)\n", + error_report("rom: file %-20s: read error: rc=%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 == rom->as)) { - fprintf(stderr, "rom: requested regions overlap " - "(rom %s. free=0x" TARGET_FMT_plx - ", addr=0x" TARGET_FMT_plx ")\n", - rom->name, addr, rom->addr); + error_report("rom: requested regions overlap " + "(rom %s. free=0x" TARGET_FMT_plx + ", addr=0x" TARGET_FMT_plx ")", + rom->name, addr, rom->addr); return -1; } addr = 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_adjust) if (s->period == 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 = 0; @@ -89,7 +90,7 @@ static void ptimer_reload(ptimer_state *s, int delta_adjust) if (delta == 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 = 0; @@ -263,7 +264,7 @@ void ptimer_run(ptimer_state *s, int oneshot) if (was_disabled && s->period == 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 @@ */ #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 = 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 @@ */ #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_info *li) } 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); } if (li->cmdline && (kcmdline_len = 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; 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 reg, uint16_t value) case 0x0c: /* PLL Mode Control 0 */ s->pll_mode = value & 0x77; if ((value & 3) == 0 || (value & 3) == 3) - fprintf(stderr, "%s: wrong PLL Control bits (%i)\n", + error_report("%s: wrong PLL Control bits (%i)", __func__, value & 3); break; @@ -541,7 +541,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) case 0x28: /* LCD Panel Configuration */ s->lcd_config = value & 0xff; if (value & (1 << 7)) - fprintf(stderr, "%s: data swap not supported!\n", __func__); + error_report("%s: data swap not supported!", __func__); break; case 0x2a: /* LCD Horizontal Display Width */ @@ -585,7 +585,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) case 0x40: /* High-speed Serial Interface Tx Configuration Port 1 */ s->hssi_config[1] = value; if (((value >> 4) & 3) == 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 reg, uint16_t value) s->enable = value & 1; s->blank = (value >> 1) & 1; if (value & (1 << 4)) - fprintf(stderr, "%s: Macrovision enable attempt!\n", __func__); + error_report("%s: Macrovision enable attempt!", __func__); break; case 0x6a: /* Special Effects */ @@ -717,7 +717,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) s->iformat = value & 0xf; s->bpp = 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 reg, uint16_t value) s->iy[1] != 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__); blizzard_transfer_setup(s); @@ -783,8 +783,8 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) case 0xe6: /* Power-save */ s->pm = value & 0x83; if (value & s->mode & 1) - fprintf(stderr, "%s: The display must be disabled before entering " - "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 = value & 0x1b; @@ -815,7 +815,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value) break; 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 = (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 = 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 = value & 1; s->dispc.l[0].bpp = (value >> 1) & 0xf; s->dispc.invalidate = 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; } 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 = 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 = 4; break; default: - fprintf(stderr, "%s: Bad color depth\n", __func__); + error_report("%s: Bad color depth", __func__); exit(1); } 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 = 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 = 4; qxl->guest_primary.bits_pp = 32; @@ -247,7 +247,7 @@ static QEMUCursor *qxl_cursor(PCIQXLDevice *qxl, QXLCursor *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) } if (qxl->debug > 1 && cmd->type != 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, uint32_t update_id) * Probably was at some earlier version that is prior to git start (2009), * and is still guest trigerrable. */ - fprintf(stderr, "%s: deprecated\n", __func__); + error_report("%s: deprecated", __func__); } /* called from spice server thread context only */ @@ -905,7 +905,7 @@ static void interface_async_complete_io(PCIQXLDevice *qxl, QXLCookie *cookie) 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 != cookie->io) { @@ -930,7 +930,7 @@ static void interface_async_complete_io(PCIQXLDevice *qxl, 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 >= TC6393XB_GPIOS) { - fprintf(stderr, "TC6393xb: no GPIO pin %d\n", line); + error_report("TC6393xb: no GPIO pin %d", line); return; } @@ -190,7 +190,7 @@ static void tc6393xb_l3v(void *opaque, int line, int level) { TC6393xbState *s = opaque; s->blank = !level; - fprintf(stderr, "L3V: %d\n", level); + error_report("L3V: %d", level); } static void tc6393xb_sub_irq(void *opaque, int line, int level) { @@ -257,7 +257,7 @@ static uint32_t tc6393xb_scr_readb(TC6393xbState *s, hwaddr addr) SCR_REG_B(CONFIG); SCR_REG_B(DEBUG); } - fprintf(stderr, "tc6393xb_scr: unhandled read at %08x\n", (uint32_t) addr); + 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, hwaddr 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) addr); 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 |= (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); } @@ -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 value) { -// 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 value) +{ + /* 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, hwaddr 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); } @@ -522,13 +524,15 @@ static uint64_t tc6393xb_readb(void *opaque, hwaddr addr, }; if ((addr &~0xff) == s->nand_phys && s->nand_enable) { -// return tc6393xb_nand_readb(s, addr & 0xff); + /* return tc6393xb_nand_readb(s, addr & 0xff); */ uint8_t d = 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; } -// fprintf(stderr, "tc6393xb: unhandled read at %08x\n", (uint32_t) addr); + /* error_report("tc6393xb: unhandled read at %08x", (uint32_t) addr); */ return 0; } @@ -548,7 +552,7 @@ static void tc6393xb_writeb(void *opaque, hwaddr addr, if ((addr &~0xff) == 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); } 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 = opaque; 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; } 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_state_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 = 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 addr, omap_dma_reset(s->dma); s->ocp = value & 0x3321; if (((s->ocp >> 12) & 3) == 3) /* MIDLEMODE */ - fprintf(stderr, "%s: invalid DMA power mode\n", __func__); + error_report("%s: invalid DMA power mode", __func__); return; case 0x78: /* DMA4_GCR */ s->gcr = value & 0x00ff00ff; if ((value & 0xff) == 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; case 0x80 ... 0xfff: @@ -1934,8 +1935,8 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->buf_disable = (value >> 25) & 1; ch->src_sync = (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 = (value >> 23) & 1; ch->bs = (value >> 18) & 1; ch->transparent_copy = (value >> 17) & 1; @@ -1946,8 +1947,8 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->priority = (value & 0x0040) >> 6; ch->fs = (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 = (value & 0x001f) | ((value >> 14) & 0x0060); /* XXX must be 0x01 for CamDMA */ @@ -1977,8 +1978,8 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->endian[1] =(value >> 19) & 1; ch->endian_lock[1] =(value >> 18) & 1; if (ch->endian[0] != 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 = (value >> 16) & 3; ch->burst[1] = (value & 0xc000) >> 14; ch->pack[1] = (value & 0x2000) >> 13; @@ -1986,12 +1987,13 @@ static void omap_dma4_write(void *opaque, hwaddr addr, ch->burst[0] = (value & 0x0180) >> 7; ch->pack[0] = (value & 0x0040) >> 6; ch->translate[0] = (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 = 1 << (value & 3); if ((value & 3) == 3) { - printf("%s: bad data_type for DMA channel\n", __func__); + error_report("%s: bad data_type for DMA channel", __func__); ch->data_type >>= 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, hwaddr virt_base, if (entry->type == soc_dma_port_mem) { if (entry->addr <= 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); } @@ -284,9 +285,9 @@ void soc_dma_port_add_fifo(struct soc_dma_s *soc, hwaddr virt_base, while (entry < dma->memmap + dma->memmap_size && entry->addr <= virt_base) { if (entry->addr == virt_base && entry->u.fifo.out == 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); } @@ -321,11 +322,11 @@ void soc_dma_port_add_mem(struct soc_dma_s *soc, uint8_t *phys_base, if ((entry->addr >= virt_base && entry->addr < virt_base + size) || (entry->addr <= 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.size); + 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); } @@ -334,11 +335,11 @@ void soc_dma_port_add_mem(struct soc_dma_s *soc, uint8_t *phys_base, } else { if (entry->addr >= 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); } 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, hwaddr addr, case 0x10: /* GPIO_SYSCONFIG */ if (((value >> 3) & 3) == 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] = 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; 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) ret = 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) ret = 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_on_cpu_data data) if (!(lvt & APIC_LVT_MASKED) && ((lvt >> 8) & 7) == APIC_DM_NMI) { ret = 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) ret = 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 @@ */ #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) ret = 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 = data.clock; @@ -174,7 +175,7 @@ static void kvmclock_vm_state_change(void *opaque, int running, data.clock = s->clock; ret = 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(); } @@ -185,7 +186,7 @@ static void kvmclock_vm_state_change(void *opaque, int running, ret = kvm_vcpu_ioctl(cpu, KVM_KVMCLOCK_CTRL, 0); if (ret) { if (ret != -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 @@ */ #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 = 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 = kpit.flags & KVM_PIT_FLAGS_HPET_LEGACY; @@ -112,7 +113,7 @@ static void kvm_pit_get(PITCommonState *pit) */ ret = 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 = s->master ? KVM_IRQCHIP_PIC_MASTER : KVM_IRQCHIP_PIC_SLAVE; ret = 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(); } @@ -92,7 +93,7 @@ static void kvm_pic_put(PICCommonState *s) ret = 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 @@ */ #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 = KVM_IRQCHIP_IOAPIC; ret = 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(); } @@ -107,7 +108,7 @@ static void kvm_ioapic_put(IOAPICCommonState *s) ret = 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 @@ */ #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)); 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); if (((struct elf64_hdr*)header)->e_machine == 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); } @@ -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 = elf_low; @@ -210,7 +211,7 @@ int load_multiboot(FWCfgState *fw_cfg, mbs.mb_buf = g_malloc(mb_kernel_size); if (rom_copy(mbs.mb_buf, mh_load_addr, mb_kernel_size) != mb_kernel_size) { - fprintf(stderr, "Error while fetching elf kernel from rom\n"); + error_report("Error while fetching elf kernel from rom"); exit(1); } @@ -224,7 +225,7 @@ int load_multiboot(FWCfgState *fw_cfg, mh_load_addr = 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); } @@ -234,19 +235,19 @@ int load_multiboot(FWCfgState *fw_cfg, 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 = mh_bss_end_addr - mh_load_addr; 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 = 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 = kernel_file_size - mb_kernel_text_offset; @@ -269,7 +270,7 @@ int load_multiboot(FWCfgState *fw_cfg, mbs.mb_buf = g_malloc(mb_kernel_size); fseek(f, mb_kernel_text_offset, SEEK_SET); if (fread(mbs.mb_buf, 1, mb_load_size, f) != 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 = 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); } 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 = get_file_size(f)) || fread(header, 1, MIN(ARRAY_SIZE(header), kernel_size), f) != 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); } /* 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) == 0x53726448) { protocol = 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); } initrd_size = 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 = (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 -= setup_size; @@ -1000,11 +1000,11 @@ static void load_linux(PCMachineState *pcms, kernel = g_malloc(kernel_size); fseek(f, 0, SEEK_SET); if (fread(setup, 1, setup_size, f) != setup_size) { - fprintf(stderr, "fread() failed\n"); + error_report("fread() failed"); exit(1); } if (fread(kernel, 1, kernel_size, f) != 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); } dtb_size = get_image_size(dtb_filename); if (dtb_size <= 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, uint16_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_memory, bool isapc_ram_fw) ret = rom_add_file_fixed(bios_name, (uint32_t)(-bios_size), -1); if (ret != 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 present. */ - fprintf(stderr, "qemu: pflash with kvm requires KVM readonly memory support\n"); + error_report("qemu: pflash with kvm requires KVM readonly memory" + " support"); exit(1); } 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 size, MemoryRegion *mr, 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 INMIGRATE\n", - __func__, size, ram_addr); + 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; } @@ -444,8 +445,9 @@ static int xen_remove_from_physmap(XenIOState *state, rc = 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 = copy.data; if (req->state != 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) xc_handle = xc_interface_open(0, 0, 0); if (xc_handle == NULL) { - fprintf(stderr, "Cannot acquire xenctrl handle\n"); + error_report("Cannot acquire xenctrl handle"); } else { sts = xc_domain_shutdown(xc_handle, xen_domid, reboot ? SHUTDOWN_reboot : SHUTDOWN_poweroff); if (sts != 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->paddr_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); } for (i = 0; i < mapcache->nr_buckets; i++) { @@ -545,8 +545,8 @@ static uint8_t *xen_replace_cache_entry_unlocked(hwaddr old_phys_addr, address_index = new_phys_addr >> MCACHE_BUCKET_SHIFT; address_offset = new_phys_addr & (MCACHE_BUCKET_SIZE - 1); - 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); 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 != sizeof(uint32_t)) { - fprintf(stderr, "Xen: APIC write data size = %d, invalid\n", size); + error_report("Xen: APIC write data size = %d, invalid", size); return; } 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, /* 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; } @@ -1053,7 +1053,7 @@ static void process_ncq_command(AHCIState *s, int port, 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; } 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) idx = transfer_end_table_idx(s->end_transfer_func); if (idx == -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 = 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, int byte) 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; } @@ -330,7 +330,7 @@ static void lm_kbd_write(LM823KbdState *s, int reg, int byte, uint8_t value) s->reg = LM832x_GENERAL_ERROR; if ((value & 3) && (value & 3) != 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=0x%02x\n", (int)val); + error_report("qemu: unsupported keyboard cmd=0x%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); } 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, uint16_t data) s->host_mode = (data >> 15) != 0; if (s->enabled != !(data & 0x4000)) { s->enabled = !(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 = s->busy && s->enabled; } s->nextprecision = (data >> 13) & 1; s->timing[0] = data & 0x1fff; - if ((s->timing[0] >> 11) == 3) - fprintf(stderr, "%s: illegal conversion clock setting\n", - __func__); + if ((s->timing[0] >> 11) == 3) { + error_report("%s: illegal conversion clock setting", __func__); + } break; case 0xd: /* CFR1 */ s->timing[1] = data & 0xf07; @@ -221,8 +221,7 @@ static void tsc2005_write(TSC2005State *s, int reg, uint16_t data) break; default: - fprintf(stderr, "%s: write into read-only register %x\n", - __func__, reg); + error_report("%s: write into read-only register %x", __func__, reg); } } @@ -337,8 +336,8 @@ static uint8_t tsc2005_txrx_word(void *opaque, uint8_t value) s->nextprecision = (value >> 2) & 1; if (s->enabled != !(value & 1)) { s->enabled = !(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 = 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) 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(TSC210xState *s, int reg) 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( 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 = 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; @@ -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 = value & 0x0f3f; #ifdef TSC_VERBOSE if ((value & ~0x0f3f) || ((value & 7) != ((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 != 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; @@ -674,8 +674,8 @@ static void tsc2102_audio_register_write( case 0x03: #ifdef TSC_VERBOSE if (value != 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; @@ -683,8 +683,8 @@ static void tsc2102_audio_register_write( s->audio_ctrl2 = 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; @@ -695,8 +695,8 @@ static void tsc2102_audio_register_write( s->dac_power = value & 0x9543; #ifdef TSC_VERBOSE if ((value & ~0x9543) != 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 |= 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] = 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; @@ -749,8 +749,8 @@ static void tsc2102_audio_register_write( s->pll[1] = 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; @@ -758,15 +758,15 @@ static void tsc2102_audio_register_write( s->softstep = !(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; 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 = 0x0000; if (!s->command) - fprintf(stderr, "tsc210x_read: SPI underrun!\n"); + error_report("tsc210x_read: SPI underrun!"); switch (s->page) { case TSC_DATA_REGISTERS_PAGE: @@ -886,7 +886,7 @@ static void tsc210x_write(TSC210xState *s, uint16_t value) s->state = 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 @@ */ #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, 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(); } 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 = ((reg & 0xe0) >> 5) + 1; 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 != 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 = ((reg & 0xe0) >> 5) + 1; 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(); } 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; 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) } } - fprintf(stderr, "%s: unsupported inttgt %d\n", __func__, inttgt); + error_report("%s: unsupported inttgt %d", __func__, inttgt); return OPENPIC_OUTPUT_INT; } @@ -534,7 +535,7 @@ static void openpic_set_irq(void *opaque, int n_IRQ, int level) IRQSource *src; if (n_IRQ >= 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(); } @@ -1208,7 +1209,7 @@ static uint32_t openpic_iack(OpenPICState *opp, IRQDest *dst, int cpu) src = &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 = 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 *listener, ret = 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); } } @@ -184,8 +184,8 @@ static void kvm_openpic_region_del(MemoryListener *listener, ret = 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); } } 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 = ioctl(flic->fd, KVM_SET_DEVICE_ATTR, &attr); if (rc) { - fprintf(stderr, "flic: couldn't enable pfault\n"); + error_report("flic: couldn't enable pfault"); } } @@ -97,7 +97,7 @@ static void flic_disable_wait_pfault(KVMS390FLICState *flic) rc = ioctl(flic->fd, KVM_SET_DEVICE_ATTR, &attr); if (rc) { - fprintf(stderr, "flic: couldn't disable pfault\n"); + error_report("flic: couldn't disable pfault"); } } 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 @@ */ #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 @@ */ #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, 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(); } 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 @@ */ #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) } 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) } 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 @@ */ #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) /* 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) } 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); } @@ -83,7 +83,7 @@ static void an5206_init(MachineState *machine) entry = KERNEL_LOAD_ADDR; } if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", kernel_filename); + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } 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 = 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); 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); } @@ -309,7 +310,7 @@ static void mcf5208evb_init(MachineState *machine) entry = 0x40000000; } if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", kernel_filename); + error_report("qemu: could not load kernel '%s'", kernel_filename); exit(1); } 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 = 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"); } } 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, const void *fdt_orig, err = 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; } @@ -361,7 +361,7 @@ static const void *boston_fdt_filter(void *opaque, const void *fdt_orig, ? machine->kernel_cmdline : " "; err = 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; } 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_offset); } if (initrd_size == (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) isa_bus = 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); } 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 == (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 == (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 == (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 @@ */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/misc/a9scu.h" static uint64_t a9_scu_read(void *opaque, hwaddr offset, @@ -59,7 +60,7 @@ static void a9_scu_write(void *opaque, hwaddr offset, mask = 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 != 0x8 && mask != 0xc && mask != 0xe && mask != 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); } @@ -642,7 +643,7 @@ static void omap_gpmc_write(void *opaque, hwaddr addr, case 0x010: /* GPMC_SYSCONFIG */ if ((value >> 3) == 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; default: @@ -864,7 +865,7 @@ void omap_gpmc_attach(struct omap_gpmc_s *s, int cs, MemoryRegion *iomem) assert(iomem); if (cs < 0 || cs >= 8) { - fprintf(stderr, "%s: bad chip-select %i\n", __func__, cs); + error_report("%s: bad chip-select %i", __func__, cs); exit(-1); } f = &s->cs_file[cs]; @@ -881,7 +882,7 @@ void omap_gpmc_attach_nand(struct omap_gpmc_s *s, int cs, DeviceState *nand) assert(nand); if (cs < 0 || cs >= 8) { - fprintf(stderr, "%s: bad chip-select %i\n", __func__, cs); + error_report("%s: bad chip-select %i", __func__, cs); exit(-1); } f = &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" @@ -126,7 +127,7 @@ struct omap_target_agent_s *omap_l4ta_get(struct omap_l4_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); } @@ -151,7 +152,7 @@ hwaddr omap_l4_attach(struct omap_target_agent_s *ta, hwaddr base; if (region < 0 || region >= ta->regions) { - fprintf(stderr, "%s: bad io region (%i)\n", __func__, region); + error_report("%s: bad io region (%i)", __func__, region); exit(-1); } 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" @@ -108,7 +109,7 @@ static void omap_sdrc_write(void *opaque, hwaddr addr, case 0x10: /* SDRC_SYSCONFIG */ if ((value >> 3) != 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 addr, 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 *loader_params) 0, 0); if (kernel_size <= 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 *loader_params) ram_size); } if (initrd_size == (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 = qemu_get_nic_opaque(nc); #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 = 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 @@ */ #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 offset, 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 &= ~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 *options) uint64_t features = 0; 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 = options->net_backend; @@ -186,8 +186,8 @@ struct vhost_net *vhost_net_init(VhostNetOptions *options) net->dev.features &= ~(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_features)); goto fail; } @@ -197,8 +197,8 @@ struct vhost_net *vhost_net_init(VhostNetOptions *options) if (net->nc->info->type == NET_CLIENT_DRIVER_VHOST_USER) { features = 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 = 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, r = 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 >= 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, const uint32_t ramsize, r = 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"); } } 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 @@ */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/nvram/eeprom93xx.h" @@ -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 *field, QJSON *vmdesc) { - fprintf(stderr, "uint16_from_uint8 is used only for backwards compatibility.\n"); - fprintf(stderr, "Never should be used to write a new state.\n"); + error_report("uint16_from_uint8 is used only for backwards compatibility."); + error_report("Never should be used to write a new state."); exit(0); 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 *field, QJSON *vmdesc) { - fprintf(stderr, "uint32_as_uint16 is only used for backward compatibility.\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."); 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 @@ */ #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, } 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 @@ */ #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, hwaddr addr) regno = (cfgaddr & BONITO_PCICONF_REG_MASK) >> BONITO_PCICONF_REG_OFFSET; if (idsel == 0) { - fprintf(stderr, "error in bonito pci config address " TARGET_FMT_plx - ",pcimap_cfg=%x\n", addr, s->regs[BONITO_PCIMAP_CFG]); + error_report("error in bonito pci config address " TARGET_FMT_plx + ",pcimap_cfg=%x", addr, s->regs[BONITO_PCIMAP_CFG]); exit(1); } pciaddr = 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, size_t size, for (i = 0; i < PCI_NUM_PINS; ++i) { irq_state[i] = qemu_get_be32(f); if (irq_state[i] != 0x1 && irq_state[i] != 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 *root, unsigned slot; if (!root) { - fprintf(stderr, "No primary PCI bus\n"); + error_report("No primary PCI bus"); return NULL; } @@ -694,7 +694,7 @@ static PCIBus *pci_get_bus_devfn(int *devfnp, PCIBus *root, } if (dom != 0) { - fprintf(stderr, "No support for non-zero PCI domains\n"); + error_report("No support for non-zero PCI domains"); return NULL; } @@ -1118,8 +1118,8 @@ void pci_register_bar(PCIDevice *pci_dev, int region_num, assert(region_num >= 0); assert(region_num < PCI_NUM_REGIONS); if (size & (size-1)) { - fprintf(stderr, "ERROR: PCI region size must be pow2 " - "type=0x%x, size=0x%"FMT_PCIBUS"\n", type, size); + error_report("ERROR: PCI region size must be pow2 " + "type=0x%x, size=0x%"FMT_PCIBUS"", type, size); exit(1); } 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 *machine, ret = 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"); } ret = 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"); } } @@ -353,7 +353,7 @@ static int ppce500_load_device_tree(MachineState *machine, ret = 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"); if (kvm_enabled()) { /* Read out host's frequencies */ @@ -720,7 +720,7 @@ static DeviceState *ppce500_init_mpic_kvm(PPCE500Params *params, 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 = CPU(cpu); if (env->mmu_model != 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); 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); } @@ -1024,7 +1024,7 @@ void ppce500_init(MachineState *machine, PPCE500Params *params) kernel_size = load_uimage(filename, &bios_entry, &loadaddr, NULL, NULL, NULL); if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load firmware '%s'\n", filename); + error_report("qemu: could not load firmware '%s'", filename); exit(1); } } @@ -1037,7 +1037,7 @@ void ppce500_init(MachineState *machine, PPCE500Params *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 == '\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 == '\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 @@ */ #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 addr, value = 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; } @@ -102,7 +103,7 @@ static void mpc8544_guts_write(void *opaque, hwaddr addr, } break; default: - fprintf(stderr, "guts: Unknown register write: %x = %x\n", + error_report("guts: Unknown register write: %x = %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 = 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 = load_image_targphys(initrd_filename, initrd_base, 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 = 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 @@ */ #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 = 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"); ret = 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"); ret = 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"); ret = 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"); /* Copy data from the host device tree into the guest. Since the guest can * directly access the timebase without host involvement, we must expose @@ -190,7 +191,7 @@ static void bamboo_init(MachineState *machine) env = &cpu->env; if (env->mmu_model != 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 = (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); } @@ -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); 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. */ #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_num, int level) 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 == '\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 = (PCIBus *)qdev_get_child_bus(dev, "pci.0"); if (pci_bus == NULL) { - fprintf(stderr, "Couldn't create PCI host controller.\n"); + error_report("Couldn't create PCI host controller."); exit(1); } sysctrl->contiguous_map_irq = 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, r = 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"); cpu_physical_memory_write(addr, fdt, fdt_size); return fdt_size; } @@ -219,7 +219,7 @@ static void virtex_init(MachineState *machine) env = &cpu->env; if (env->mmu_model != 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]=%x (expected 0)\n", + error_report("Guest bug: features[%i]=%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 @@ */ #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 submission. */ 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 = 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 !"); } req->crq.s.valid = 0x80; @@ -197,7 +198,7 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req, rc1 = 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; } @@ -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; } @@ -518,7 +519,7 @@ static void vscsi_transfer_data(SCSIRequest *sreq, uint32_t len) trace_spapr_vscsi_transfer_data(sreq->tag, len, req); if (req == 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; } @@ -527,7 +528,7 @@ static void vscsi_transfer_data(SCSIRequest *sreq, uint32_t len) rc = vscsi_srp_transfer_data(s, req, req->writing, buf, len); } if (rc < 0) { - fprintf(stderr, "VSCSI: RDMA error rc=%d!\n", rc); + error_report("VSCSI: RDMA error rc=%d!", rc); req->dma_error = true; scsi_req_cancel(req->sreq); return; @@ -547,7 +548,7 @@ static void vscsi_command_complete(SCSIRequest *sreq, uint32_t status, size_t re trace_spapr_vscsi_command_complete(sreq->tag, status, req); if (req == 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; } @@ -639,7 +640,7 @@ static void *vscsi_load_request(QEMUFile *f, SCSIRequest *sreq) memset(req, 0, sizeof(*req)); rc = vmstate_load_state(f, &vmstate_spapr_vscsi_req, req, 1); if (rc) { - fprintf(stderr, "VSCSI: failed loading request tag#%u\n", sreq->tag); + 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 = iu->srp.rsp.tag; uint8_t sol_not = iu->srp.cmd.sol_not; - fprintf(stderr, "vscsi_process_tsk_mgmt %02x\n", + error_report("vscsi_process_tsk_mgmt %02x", iu->srp.tsk_mgmt.tsk_mgmt_func); d = 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); } return done; @@ -953,7 +954,7 @@ static int vscsi_send_adapter_info(VSCSIState *s, vscsi_req *req) rc = 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 = 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 !"); } sinfo->common.status = rc ? cpu_to_be32(1) : 0; @@ -987,7 +988,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req) req_len = len = be16_to_cpu(vcap->common.length); buffer = be64_to_cpu(vcap->buffer); if (len > sizeof(cap)) { - fprintf(stderr, "vscsi_send_capabilities: capabilities size mismatch !\n"); + error_report("vscsi_send_capabilities: capabilities size mismatch !"); /* * Just read and populate the structure that is known. @@ -997,7 +998,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req) } rc = 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 !"); } /* @@ -1013,7 +1014,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req) rc = 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, vscsi_req *req) 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 = 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 = 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 = 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_crq *crq) req = vscsi_get_req(s); if (req == NULL) { - fprintf(stderr, "VSCSI: Failed to get a request !\n"); + error_report("VSCSI: Failed to get a request !"); return; } @@ -1088,7 +1089,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_crq *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_crq *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]); }; diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplane.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, VirtQueue *vq, int n, /* Set up virtqueue notify */ rc = virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), n, true); if (rc != 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 = true; return rc; @@ -141,8 +141,8 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev) /* Set up guest notifier (irq) */ rc = k->set_guest_notifiers(qbus->parent, vs->conf.num_queues + 2, true); if (rc != 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; } 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 @@ */ #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 value) int n; if (s->fifo_len == PL181_FIFO_LEN) { - fprintf(stderr, "pl181: FIFO overflow\n"); + error_report("pl181: FIFO overflow"); return; } n = (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; if (s->fifo_len == 0) { - fprintf(stderr, "pl181: FIFO underflow\n"); + error_report("pl181: FIFO underflow"); return 0; } value = 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 &= ~CARD_IS_LOCKED; sd->pwd_len = 0; /* Erasing the entire card here! */ - fprintf(stderr, "SD: Card force-erased by CMD42\n"); + error_report("SD: Card force-erased by CMD42"); return; } @@ -1282,7 +1282,7 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, return sd_r1; case 56: /* CMD56: GEN_CMD */ - fprintf(stderr, "SD: GEN_CMD 0x%08x\n", req.arg); + error_report("SD: GEN_CMD 0x%08x", req.arg); switch (sd->state) { case sd_transfer_state: @@ -1565,10 +1565,10 @@ send_response: int i; DPRINTF("Response:"); for (i = 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 @@ -1580,14 +1580,14 @@ static void sd_blk_read(SDState *sd, uint64_t addr, uint32_t len) DPRINTF("sd_blk_read: addr = 0x%08llx, len = %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"); } } 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"); } } 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 @@ */ #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_filename); - exit(1); + error_report("qemu: could not load kernel '%s'", kernel_filename); + exit(1); } /* initialization which should be done by firmware */ @@ -339,8 +340,8 @@ static void r2d_init(MachineState *machine) SDRAM_SIZE - INITRD_LOAD_OFFSET); if (initrd_size < 0) { - fprintf(stderr, "qemu: could not load initrd '%s'\n", initrd_filename); - exit(1); + error_report("qemu: could not load initrd '%s'", initrd_filename); + exit(1); } /* 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 prev) int i, r = 0; #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=0x%04x, pctra=0x%08x\n", s->pdtra, s->pctra); + error_report("pdtra=0x%04x, pctra=0x%08x", s->pdtra, s->pctra); #endif currenta = porta_lines(s); if (currenta == prev) @@ -200,13 +201,13 @@ static void portb_changed(SH7750State * s, uint16_t prev) 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); } 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); } @@ -326,47 +327,48 @@ static void sh7750_mem_writew(void *opaque, hwaddr addr, uint16_t temp; switch (addr) { - /* SDRAM controller */ + /* SDRAM controller */ case SH7750_BCR2_A7: s->bcr2 = mem_value; return; case SH7750_BCR3_A7: - if(!has_bcr3_and_bcr4(s)) - error_access("word write", addr); - s->bcr3 = mem_value; - return; + if (!has_bcr3_and_bcr4(s)) { + error_access("word write", addr); + } + s->bcr3 = mem_value; + return; case SH7750_PCR_A7: - s->pcr = mem_value; - return; + s->pcr = 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 = porta_lines(s); - s->pdtra = mem_value; - porta_changed(s, temp); - return; + temp = porta_lines(s); + s->pdtra = mem_value; + porta_changed(s, temp); + return; case SH7750_PDTRB_A7: - temp = portb_lines(s); - s->pdtrb = mem_value; - portb_changed(s, temp); - return; + temp = portb_lines(s); + s->pdtrb = mem_value; + portb_changed(s, temp); + return; case SH7750_RFCR_A7: - fprintf(stderr, "Write access to refresh count register\n"); - s->rfcr = mem_value; - return; + error_report("Write access to refresh count register"); + s->rfcr = mem_value; + return; case SH7750_GPIOIC_A7: - s->gpioic = mem_value; - if (mem_value != 0) { - fprintf(stderr, "I/O interrupts not implemented\n"); + s->gpioic = mem_value; + if (mem_value != 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) } 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 *machine) if (bios_size > 0) { ret = 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 == 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 = 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 *kernel_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 *kernel_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_name) ret = -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 = 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_filename, 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_filename, *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_name) ret = -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" @@ -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) == 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 = 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 addr, case 0x10: /* TIOCP_CFG */ s->config = value & 0x33d; if (((value >> 3) & 3) == 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 = (value >> 1) & 1; s->st = (value >> 0) & 1; if (s->inout && s->trigger != 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 != 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 == 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 |= 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; } - D(fprintf(stderr, "%s timer=%d %x=%x\n", __func__, timer, addr * 4, r)); + D(error_report("%s timer=%d %x=%x", __func__, timer, addr * 4, r)); return r; } @@ -135,7 +135,7 @@ static void timer_enable(struct xlx_timer *xt) { uint64_t count; - D(fprintf(stderr, "%s timer=%d down=%d\n", __func__, + D(error_report("%s timer=%d down=%d", __func__, xt->nr, xt->regs[R_TCSR] & TCSR_UDT)); ptimer_stop(xt->ptimer); @@ -160,7 +160,7 @@ timer_write(void *opaque, hwaddr addr, addr >>= 2; timer = timer_from_addr(addr); xt = &t->timers[timer]; - D(fprintf(stderr, "%s addr=%x val=%x (timer=%d off=%d)\n", + D(error_report("%s addr=%x val=%x (timer=%d off=%d)", __func__, addr * 4, value, timer, addr & 3)); /* Further decoding to address a specific timers reg. */ addr &= 3; @@ -197,7 +197,7 @@ static void timer_hit(void *opaque) { struct xlx_timer *xt = opaque; struct timerblock *t = xt->parent; - D(fprintf(stderr, "%s %d\n", __func__, xt->nr)); + D(error_report("%s %d", __func__, xt->nr)); xt->regs[R_TCSR] |= TCSR_TINT; 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 bytes) 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 += bytes; @@ -681,7 +682,7 @@ void usb_ep_dump(USBDevice *dev) }; int ifnum, ep, first; - fprintf(stderr, "Device \"%s\", config %d\n", + error_report("Device \"%s\", config %d", dev->product_desc, dev->configuration); for (ifnum = 0; ifnum < 16; ifnum++) { first = 1; @@ -690,10 +691,10 @@ void usb_ep_dump(USBDevice *dev) dev->ep_in[ep].ifnum == ifnum) { if (first) { first = 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 == ifnum) { if (first) { first = 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("--"); } 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; 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 @@ */ #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) } if (s->debug) { - fprintf(stderr, "usb-audio: set interface %d\n", altset); + error_report("usb-audio: set interface %d", altset); } s->out.altset = altset; return 0; @@ -478,7 +479,7 @@ static int usb_audio_set_control(USBAudioState *s, uint8_t attrib, uint16_t vol = data[0] + (data[1] << 8); if (s->debug) { - fprintf(stderr, "usb-audio: vol %04x\n", (uint16_t)vol); + error_report("usb-audio: vol %04x", (uint16_t)vol); } vol -= 0x8000; @@ -496,7 +497,7 @@ static int usb_audio_set_control(USBAudioState *s, uint8_t attrib, 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, USBPacket *p, int ret = 0; 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); } @@ -533,7 +534,7 @@ static void usb_audio_handle_control(USBDevice *dev, USBPacket *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, USBPacket *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, USBPacket *p, default: fail: if (s->debug) { - fprintf(stderr, "usb-audio: failed control transaction: " - "request 0x%04x value 0x%04x index 0x%04x length 0x%04x\n", + error_report("usb-audio: failed control transaction: " + "request 0x%04x value 0x%04x index 0x%04x length 0x%04x", request, value, index, length); } p->status = USB_RET_STALL; @@ -581,7 +582,7 @@ static void usb_audio_handle_reset(USBDevice *dev) USBAudioState *s = USB_AUDIO(dev); 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) 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, USBPacket *p) p->status = 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 = USB_AUDIO(dev); if (s->debug) { - fprintf(stderr, "usb-audio: destroy\n"); + error_report("usb-audio: destroy"); } 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_fifo_s *fifo, if (off <= DFIFO_LEN_MASK) { if (off + len > DFIFO_LEN_MASK + 1 && (fifo->dsize = 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 = 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 = 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 @@ */ #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; default: - fprintf(stderr, "usb-mtp: failed to parse inotify event\n"); + error_report("usb-mtp: failed to parse inotify event"); continue; } @@ -617,7 +618,7 @@ static void usb_mtp_object_readdir(MTPState *s, MTPObject *o) #ifdef CONFIG_INOTIFY1 int watchfd = usb_mtp_add_watch(s->inotifyfd, o->path); if (watchfd == -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, USBPacket *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__); } 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); 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, USBPacket *p, for (i = 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 = rndis_parse(s, data, length); @@ -1111,17 +1111,17 @@ static void usb_net_handle_control(USBDevice *dev, USBPacket *p, for (i = 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; 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 = USB_RET_STALL; break; @@ -1190,7 +1190,7 @@ static void usb_net_handle_dataout(USBNetState *s, USBPacket *p) uint32_t len; #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 @@ -1260,8 +1260,8 @@ static void usb_net_handle_data(USBDevice *dev, USBPacket *p) } if (p->status == 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, /* 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 &= ~USBCMD_FLS; } @@ -1190,7 +1190,7 @@ static int ehci_init_transfer(EHCIPacket *p) 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 *action) p->async == EHCI_ASYNC_INITIALIZED); if (!(p->qtd.token & QTD_TOKEN_ACTIVE)) { - fprintf(stderr, "Attempting to execute inactive qtd\n"); + error_report("Attempting to execute inactive qtd"); return -1; } @@ -1383,7 +1383,7 @@ static int ehci_execute(EHCIPacket *p, const char *action) p->packet.actual_length); 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; } @@ -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) /* section 4.8, only QH in async schedule */ if (async && (NLPTR_TYPE_GET(entry) != NLPTR_TYPE_QH)) { - fprintf(stderr, "non queue head request in async schedule\n"); + error_report("non queue head request in async schedule"); return -1; } @@ -1586,8 +1586,8 @@ static int ehci_state_fetchentry(EHCIState *ehci, int async) 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(entry)); + error_report("FETCHENTRY: entry at %X is of type %d " + "which is not supported yet", entry, NLPTR_TYPE_GET(entry)); return -1; } @@ -2086,7 +2086,7 @@ static void ehci_advance_state(EHCIState *ehci, int async) break; default: - fprintf(stderr, "Bad state!\n"); + error_report("Bad state!"); again = -1; g_assert_not_reached(); break; @@ -2094,7 +2094,7 @@ static void ehci_advance_state(EHCIState *ehci, int async) 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 = 0; } @@ -2151,8 +2151,8 @@ static void ehci_advance_async_state(EHCIState *ehci) 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 *ehci) 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 */ #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(); } while (0) #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 USBAutoFilter *f) } if (i < DEV) { - fprintf(stderr, "husb: invalid auto filter spec %s\n", spec); + error_report("husb: invalid auto filter spec %s", spec); return -1; } 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 @@ */ #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) } } - 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) 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; 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 @@ */ #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 INT 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; } 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 = xs_open(0); if (xs == NULL) { - fprintf(stderr, "Could not contact XenStore\n"); + error_report("Could not contact XenStore"); goto out; } path = xs_get_domain_path(xs, domid); if (path == NULL) { - fprintf(stderr, "xs_get_domain_path() error\n"); + error_report("xs_get_domain_path() error"); goto out; } newpath = realloc(path, (strlen(path) + strlen(string) + strlen("/tty") + 1)); if (newpath == NULL) { - fprintf(stderr, "realloc error\n"); + error_report("realloc error"); goto out; } path = newpath; @@ -96,13 +96,13 @@ static void xenstore_record_dm_state(struct xs_handle *xs, const char *state) char path[50]; if (xs == NULL) { - fprintf(stderr, "xenstore connection not initialized\n"); + error_report("xenstore connection not initialized"); exit(1); } 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, ...) 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, uint32_t addr, int len) /* check offset range */ if (addr > 0xFF) { XEN_PT_ERR(d, "Failed to access register with offset exceeding 0xFF. " - "(addr: 0x%02x, len: %d)\n", addr, len); + "(addr: 0x%02x, len: %d)", addr, len); return -1; } 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; 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; } for (i = 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 = 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 char *ramdisk, rc = 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; } #if 0 rc = 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 rc = 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; } @@ -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; } @@ -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 = 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; } 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) /* Initialize backend core & drivers */ if (xen_be_init() != 0) { - fprintf(stderr, "%s: xen backend core setup failed\n", __func__); + error_report("%s: xen backend core setup failed", __func__); exit(1); } @@ -51,18 +51,18 @@ static void xen_init_pv(MachineState *machine) const char *initrd_filename = 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; } From patchwork Tue Sep 26 00:08:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 818404 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="jOVqA+Xa"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3y1LzC5L45z9s7C for ; Tue, 26 Sep 2017 10:13:59 +1000 (AEST) Received: from localhost ([::1]:44891 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdVd-00030j-Kx for incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:13:57 -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 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= 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 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 (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; 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 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?= IvkBLjykWa+uiV0UdWG8+akTUmksbPjzMtroaqBtWjA0vAKwLzmT3AS0yNi/vfigOQQdLkyuS98+D9INm3KY4PF1WfMTIZpvdl0fpHXlrj3n2Ni+ndqx+O5BIKvuTO5qH/mcOwKjI6OEYWsT8QW3nLPMGLhGTFbWUo+RPrO7Z5jFYDkvqCVwNxbTVXhYfRhqTgFvWj3rI89eYhGPQJYOpW+5Pj7ndR9eJN9DoAyU8OPtrRoUuwk6yhMZGhXGYDRmQGeLZM9cbtbzsnI5tbs0RTVORF5jUTHG+19ibuOqQtqVq5GxcD6berHhe5wsFgVzJTFA0UpartQOhfvuW2knwyQnvjIRqxU68/XUZrRgRC/mEOvUGSH8YMj0+8YUSMM6XfP944LOCV2JOIGIwjqaIGsJCwknqwMwZ9YpR84Zlq7GXQzZOS8zj8kzXiLlOYwKtX+3gnNLLgYFrkd+/EqmGHNgUDVS53FTrFottvS7cAAfv42o3cUoXGYuq519s1kg94TugNtM/nG3MPMSCDuP6QpowAcQsxJce6wGAilHUUYHN+99c8mGGOSHoI4mbm3IaMe4THvwj2dSK3CVIQKNogowICcG1X/DCR8JBKR4zHICaHij6fvHBdyK5QtjJGSUPycM6aXS5Bb3bnWd+lmES7Nw57o2WstX/fjCuqYqFeRBUk4hGnGrm3wS6s3kF0qT5/QeYsAXIEyJLs/vUBygsIMoq9oR6LWKhjVyTjqLEe9BbejydC8IFLmx0YWGx2gsmgwvSkZreiBtNy1bfArLzjMYOQN3x11nS+MIdtuo6Q9kEBN2kd97gXXPklZike8TVLUZ0Aela4Ibk5Y0hZDS1TzvjEjHjkUqhHpl+E5QNn+F13W9caoGhFI2UM6CTiz2FjLZTurpzQmJhSQR9o185ZyT8bnwf1gV9FBbAZAboWyGqXhMNzczlRxKXD5cxIX2SOtb3wunOY4TrTxkQpECHfXCcalKVtT6wfORG1HA6DPvwbRvp2RhnZq2z0mM6KTrY7M0+ETcQbg4fwFZ4JyfdpHC27MpijGrYf4wYoSlExHjpvdHLWKcZbtb99CwaOsIPo= 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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_report("\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 **filename) fname = *filename; dp = 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 **filename) } fprintf(stderr, "%s is a block device", fname); *filename = namebuf; - fprintf(stderr, ", using %s\n", *filename); + error_report(", using %s", *filename); return 0; } @@ -1499,7 +1499,7 @@ static int aio_worker(void *arg) ret = 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 = -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 = -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 *laiocb, 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); if (io_destroy(s->ctx) != 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, BdrvCheckResult *res, } 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, BdrvCheckResult *res, /* 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, BdrvCheckResult *res, if (size > res->image_end_offset) { int64_t count; count = 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 += 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 min_size, } #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 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 @@ */ #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, } #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 @@ -800,8 +801,8 @@ static int QEMU_WARN_UNUSED_RESULT update_refcount(BlockDriverState *bs, int ret; #ifdef DEBUG_ALLOC2 - fprintf(stderr, "update_refcount: offset=%" PRId64 " size=%" PRId64 - " addend=%s%" PRIu64 "\n", offset, length, decrease ? "-" : "", + error_report("update_refcount: offset=%" PRId64 " size=%" PRId64 + " addend=%s%" PRIu64 "", offset, length, decrease ? "-" : "", addend); #endif if (length < 0) { @@ -957,7 +958,7 @@ retry: } #ifdef DEBUG_ALLOC2 - fprintf(stderr, "alloc_clusters: size=%" PRId64 " -> %" PRId64 "\n", + error_report("alloc_clusters: size=%" 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 = 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, refcount = s->get_refcount(*refcount_table, k); if (refcount == s->refcount_max) { - fprintf(stderr, "ERROR: overflow cluster offset=0x%" PRIx64 - "\n", cluster_offset); - fprintf(stderr, "Use qemu-img amend to increase the refcount entry " + error_report("ERROR: overflow cluster offset=0x%" PRIx64 + "", cluster_offset); + error_report("Use qemu-img amend to increase the refcount entry " "width or qemu-img convert to create a clean copy if the " - "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, BdrvCheckResult *res, ret = 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, BdrvCheckResult *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 &= ~QCOW_OFLAG_COPIED; res->corruptions++; } @@ -1558,8 +1559,8 @@ static int check_refcounts_l2(BlockDriverState *bs, BdrvCheckResult *res, /* Correct offsets are cluster aligned */ if (offset_into_cluster(s, offset)) { - fprintf(stderr, "ERROR offset=%" PRIx64 ": Cluster is not " - "properly aligned; L2 entry corrupted.\n", offset); + error_report("ERROR offset=%" 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 = 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, /* L2 tables are cluster aligned */ if (offset_into_cluster(s, l2_offset)) { - fprintf(stderr, "ERROR l2_offset=%" PRIx64 ": Table is not " - "cluster aligned; L1 entry corrupted\n", l2_offset); + error_report("ERROR l2_offset=%" PRIx64 ": Table is not " + "cluster aligned; L1 entry corrupted", l2_offset); res->corruptions++; } @@ -1697,8 +1698,8 @@ static int check_oflag_copied(BlockDriverState *bs, BdrvCheckResult *res, continue; } if ((refcount == 1) != ((l1_entry & QCOW_OFLAG_COPIED) != 0)) { - fprintf(stderr, "%s OFLAG_COPIED L2 cluster: l1_index=%d " - "l1_entry=%" PRIx64 " refcount=%" PRIu64 "\n", + error_report("%s OFLAG_COPIED L2 cluster: l1_index=%d " + "l1_entry=%" PRIx64 " refcount=%" PRIu64 "", fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i, l1_entry, refcount); @@ -1720,7 +1721,7 @@ static int check_oflag_copied(BlockDriverState *bs, BdrvCheckResult *res, ret = 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, BdrvCheckResult *res, continue; } if ((refcount == 1) != ((l2_entry & QCOW_OFLAG_COPIED) != 0)) { - fprintf(stderr, "%s OFLAG_COPIED data cluster: " - "l2_entry=%" PRIx64 " refcount=%" PRIu64 "\n", + error_report("%s OFLAG_COPIED data cluster: " + "l2_entry=%" PRIx64 " refcount=%" PRIu64 "", fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", l2_entry, refcount); @@ -1763,8 +1764,8 @@ static int check_oflag_copied(BlockDriverState *bs, BdrvCheckResult *res, ret = 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, BdrvCheckResult *res, ret = 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, BdrvCheckResult *res, /* 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 = true; continue; } if (cluster >= *nb_clusters) { - fprintf(stderr, "%s refcount block %" PRId64 " is outside image\n", + error_report("%s refcount block %" PRId64 " is outside image", fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); if (fix & BDRV_FIX_ERRORS) { @@ -1868,7 +1869,7 @@ static int check_refblocks(BlockDriverState *bs, BdrvCheckResult *res, resize_fail: res->corruptions++; *rebuild = 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) != 1) { - fprintf(stderr, "ERROR refcount block %" PRId64 - " refcount=%" PRIu64 "\n", i, + error_report("ERROR refcount block %" PRId64 + " refcount=%" PRIu64 "", i, s->get_refcount(*refcount_table, cluster)); res->corruptions++; *rebuild = true; @@ -1990,7 +1991,7 @@ static void compare_refcounts(BlockDriverState *bs, BdrvCheckResult *res, for (i = 0, *highest_cluster = 0; i < nb_clusters; i++) { ret = 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, BdrvCheckResult *res, num_fixed = &res->corruptions_fixed; } - fprintf(stderr, "%s cluster %" PRId64 " refcount=%" PRIu64 - " reference=%" PRIu64 "\n", + error_report("%s cluster %" PRId64 " refcount=%" PRIu64 + " reference=%" PRIu64 "", num_fixed != NULL ? "Repairing" : refcount1 < refcount2 ? "ERROR" : "Leaked", @@ -2159,7 +2160,7 @@ write_refblocks: refblock_offset = alloc_clusters_imrt(bs, 1, refcount_table, nb_clusters, &first_free_cluster); if (refblock_offset < 0) { - fprintf(stderr, "ERROR allocating refblock: %s\n", + error_report("ERROR allocating refblock: %s", strerror(-refblock_offset)); res->check_errors++; ret = refblock_offset; @@ -2205,7 +2206,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 = reftable_offset; @@ -2216,7 +2217,7 @@ write_refblocks: ret = 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; } @@ -2228,7 +2229,7 @@ write_refblocks: ret = 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; } @@ -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 = reftable_offset; @@ -2267,7 +2268,7 @@ write_refblocks: ret = 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; } @@ -2275,7 +2276,7 @@ write_refblocks: ret = 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; } @@ -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; } @@ -2355,7 +2356,7 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvCheckResult *res, BdrvCheckResult old_res = *res; int fresh_leaks = 0; - fprintf(stderr, "Rebuilding refcount structure\n"); + error_report("Rebuilding refcount structure"); ret = rebuild_refcount_structure(bs, res, &refcount_table, &nb_clusters); if (ret < 0) { @@ -2385,8 +2386,8 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvCheckResult *res, compare_refcounts(bs, res, BDRV_FIX_LEAKS, &rebuild, &highest_cluster, refcount_table, nb_clusters); if (rebuild) { - fprintf(stderr, "ERROR rebuilt refcount structure is still " - "broken\n"); + error_report("ERROR rebuilt refcount structure is still " + "broken"); } /* Any leaks accounted for here were introduced by @@ -2405,7 +2406,7 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvCheckResult *res, res->leaks += 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 = -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); 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); } node_name = 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 @@ */ #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 *options, int flags, s->num_children == 2 && s->threshold == 2) { s->is_blkverify = true; } else if (qemu_opt_get_bool(opts, QUORUM_OPT_BLKVERIFY, false)) { - fprintf(stderr, "blkverify mode is set by setting blkverify=on " - "and using two files with vote_threshold=2\n"); + error_report("blkverify mode is set by setting blkverify=on " + "and using two files with vote_threshold=2"); } s->rewrite_corrupted = qemu_opt_get_bool(opts, QUORUM_OPT_REWRITE, 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) r = libssh2_init(0); if (r != 0) { - fprintf(stderr, "libssh2 initialization failed, %d\n", r); + error_report("libssh2 initialization failed, %d", r); exit(EXIT_FAILURE); } 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 @@ */ #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, BdrvCheckResult *res, if (!VDI_IS_ALLOCATED(bmap[bmap_entry])) { bmap[bmap_entry] = 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_entry); res->corruptions++; } } } if (blocks_allocated != 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 *options, int flags, checksum = be32_to_cpu(footer->checksum); footer->checksum = 0; if (vpc_checksum(s->footer_buf, HEADER_SIZE) != 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); /* Write 'checksum' back to footer, or else will leave it with zero. */ footer->checksum = 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); #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) gunichar2 *longname = g_utf8_to_utf16(filename, -1, NULL, &length, NULL); if (!longname) { - fprintf(stderr, "vvfat: invalid UTF-8 name: %s\n", filename); + error_report("vvfat: invalid UTF-8 name: %s", filename); return NULL; } @@ -803,7 +803,7 @@ static int read_directory(BDRVVVFATState* s, int mapping_index) int is_dotdot=!strcmp(entry->d_name,".."); if (first_cluster == 0 && s->directory.next >= s->root_entries - 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 mapping_index) else direntry->begin=0; /* 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 *options, int flags, s->fat2 = NULL; s->downcase_short_names = 1; - 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); s->sector_count = cyls * heads * secs - s->offset_to_bootsector; @@ -1458,7 +1457,7 @@ static void print_direntry(const direntry_t* direntry) for(i=28;i<32 && c[i] && c[i]!=0xff;i+=2) ADD_CHAR(c[i]); buffer[j] = 0; - fprintf(stderr, "%s\n", buffer); + error_report("%s", buffer); } else { int i; for(i=0;i<11;i++) @@ -1479,9 +1478,11 @@ static void print_mapping(const mapping_t* mapping) mapping->first_mapping_index, mapping->path, mapping->mode); if (mapping->mode & MODE_DIRECTORY) - fprintf(stderr, "parent_mapping_index = %d, first_dir_index = %d\n", mapping->info.dir.parent_mapping_index, mapping->info.dir.first_dir_index); + error_report("parent_mapping_index = %d, first_dir_index = %d", + mapping->info.dir.parent_mapping_index, + mapping->info.dir.first_dir_index); else - fprintf(stderr, "offset = %d\n", mapping->info.file.offset); + error_report("offset = %d", mapping->info.file.offset); } #endif @@ -1503,9 +1504,9 @@ static int vvfat_read(BlockDriverState *bs, int64_t sector_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 sector_num, sector_num += (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 = 0; i < s->commits.next; i++) { commit_t* commit = array_get(&(s->commits), i); assert(commit->path || commit->action == ACTION_WRITEOUT); @@ -2065,16 +2066,17 @@ static int check_directory_consistency(BDRVVVFATState *s, ret++; if (s->used_clusters[cluster_num] & USED_ANY) { - fprintf(stderr, "cluster %d used more than once\n", (int)cluster_num); + error_report("cluster %d used more than once", (int)cluster_num); goto fail; } s->used_clusters[cluster_num] = USED_DIRECTORY; -DLOG(fprintf(stderr, "read cluster %d (sector %d)\n", (int)cluster_num, (int)cluster2sector(s, cluster_num))); +DLOG(error_report("read cluster %d (sector %d)", + (int)cluster_num, (int)cluster2sector(s, cluster_num))); subret = vvfat_read(s->bs, cluster2sector(s, cluster_num), cluster, 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 = 0; i < 0x10 * s->sectors_per_cluster; i++) { int cluster_count = 0; -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; subret = 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 == 0 || is_free(direntries + i)) @@ -2099,7 +2101,7 @@ DLOG(fprintf(stderr, "check direntry %d:\n", i); print_direntry(direntries + i)) if (fat_chksum(direntries+i) != lfn.checksum) { subret = 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); print_direntry(direntries + i)) lfn.checksum = 0x100; /* cannot use long name twice */ if (path_len + 1 + lfn.len >= 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); print_direntry(direntries + i)) if (is_directory(direntries + i)) { if (begin_of_direntry(direntries + i) == 0) { - DLOG(fprintf(stderr, "invalid begin for directory: %s\n", path2); print_direntry(direntries + i)); + DLOG(error_report("invalid begin for directory: %s", path2); + print_direntry(direntries + i)); goto fail; } cluster_count = check_directory_consistency(s, begin_of_direntry(direntries + i), path2); if (cluster_count == 0) { - DLOG(fprintf(stderr, "problem in directory %s:\n", path2); 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); print_direntry(direntries + i)) cluster_count = get_cluster_count_for_direntry(s, direntries + i, path2); if (cluster_count != 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 = 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()); used_clusters_count = check_directory_consistency(s, 0, s->path); if (used_clusters_count <= 0) { - DLOG(fprintf(stderr, "problem in directory\n")); + DLOG(error_report("problem in directory")); return 0; } @@ -2203,7 +2207,8 @@ DLOG(checkpoint()); for (i = 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 is 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()); if (s->used_clusters[i] == 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; -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)); assert(direntry); assert(mapping); @@ -2529,8 +2535,8 @@ static int commit_one_file(BDRVVVFATState* s, fd = 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 = 0; i < s->mapping.next; i++) { mapping_t* mapping = 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; #ifdef DEBUG - fprintf(stderr, "handle_renames\n"); + error_report("handle_renames"); for (i = 0; i < s->commits.next; i++) { commit_t* commit = array_get(&(s->commits), i); - fprintf(stderr, "%d, %s (%d, %d)\n", i, commit->path ? commit->path : "(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 @@ -2893,7 +2901,9 @@ static int handle_deletes(BDRVVVFATState* s) return -4; deleted++; } - DLOG(fprintf(stderr, "DELETE (%d)\n", i); print_mapping(mapping); 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) ret = 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 = 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; } ret = handle_commits(s); if (ret) { - fprintf(stderr, "Error handling commits (%d)\n", ret); + error_report("Error handling commits (%d)", ret); abort(); return ret; } ret = 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 = 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 = 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; } @@ -3277,7 +3288,7 @@ static void checkpoint(void) { assert(!vvv->current_mapping || vvv->current_fd || (vvv->current_mapping->mode & MODE_DIRECTORY)); #if 0 if (((direntry_t*)vvv->directory.pointer)[1].attributes != 0xf) - fprintf(stderr, "Nonono!\n"); + error_report("Nonono!"); mapping_t* mapping; direntry_t* direntry; assert(vvv->mapping.size >= vvv->mapping.item_size * vvv->mapping.next); From patchwork Tue Sep 26 00:09:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 818408 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="b1kWVmTn"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3y1M1G5784z9s7C for ; Tue, 26 Sep 2017 10:15:46 +1000 (AEST) Received: from localhost ([::1]:44900 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdXM-0004Re-M2 for incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:15:44 -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 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= 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 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 (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; 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 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?= Epru5VhqvhBqmH9S4+3i/yrvJomlBQY1Qv7kyXmcG7lWD8uV/5qJxgw5ZlaDndkkTcXeFCQUbuV0JZcANbrmrurnwm144ETQvg6bleuVh/tWpAHBlp7Gy9ssFc9jqsyteZ9LQ55CdKv/gavmInJ/eyRZMqEzZO3xEFfIWp62W+ke3KyvIN22N0PkxQtYuSKEv8ZJ3uyi6r5D7xs0QSA9BE76Pbf0uHgguNegVTJsrFtjHxNOwERDcm7MZ3DpE88G4to8DCh6yrjdUvJ4fyH+lagy2JW2CKCuqENmdyIjGq2S0xG5cXheWM8mkaMQVltFJVNsk67sjgBdebeYB7zzX1ZMnfC7Ka/8bIC7dmPjekSjSLta78GEqeaCgOBKLCW6Q7sm8rUf3Aw+rAMedC9oqnkaG3NfMtoQfgqgtDK5Q+tQeCVhBYHdFMKwTSgz68uQWx9bBgxJT/RGIUKt3pji7gv7/EASTqnrB9kdmPlUVUvgzDv8CDEifClI0fM3qBOjhyX8AAHGJK3JHnpqAFZuVXWixKtBfnb7z3gIzpTGiR0wWlO+24/+rRBi6/md5WaBOxsksetAKMmiulAHtXLF1lA4l82+/B5ftirShK5MOapNNS+zA/Ms3aWyydzTw1jxIiy/IGaHTMxgLSKTShT4EiIa7OXcygKOE0WjZpQFWsJbIhIWKUWsVFb4LUHNeuORMaAzuqqPWyhJoN18gbFb9R2mX5b8rHXf9Afk3+PSZq8KVjczzo32dI1fDyyqQ2rgxtaihV3f5KPsiVpl6iMZJm741MHg71y4/UiC8T7kNi/jTPHwGMa+CLZLrPIP/KVOvnE0DY4e1THeZtpbPm2T0tqIxhRWAd1a+Oaino9kpnkSjwR4dT4jubIqDnKoD5dc/d0dH+WW5+2i1cGfmibPvqkPdNchj9Me+yAGfuk4NCvN0Ju2oRfXyEAuJLVLUU00ascUX91eXMd//vG0UPNV4qxMBcfgR9xTIp7jDM1hEwlzQ3srfTc0fo6NuatSlPRik8= 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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_report("\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 @@ #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=NUM\n"); + error_report("The QEMU_AIO_POLL_MAX_NS environment variable has " + "been replaced with -object iothread,poll-max-ns=NUM"); exit(1); } 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(void) ret = pthread_key_create(&thread_state_key, qemu_coroutine_thread_cleanup); if (ret != 0) { - fprintf(stderr, "unable to create leader key: %s\n", strerror(errno)); + 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 == &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 = qemu_signalfd(&set); if (sigfd == -1) { - fprintf(stderr, "failed to create signalfd\n"); + error_report("failed to create signalfd"); return -errno; } 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 @@ */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu/mmap-alloc.h" #include "qemu/host-utils.h" @@ -51,7 +52,7 @@ size_t qemu_mempath_getpagesize(const char *mem_path) } while (ret != 0 && errno == EINTR); if (ret != 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) g_module = g_module_open(fname, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); if (!g_module) { - fprintf(stderr, "Failed to open module: %s\n", + error_report("Failed to open module: %s", g_module_error()); ret = -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 build), * this will make debugging user problems easier. */ @@ -169,7 +169,7 @@ void module_load_one(const char *prefix, const char *lib_name) static GHashTable *loaded_modules; if (!g_module_supported()) { - fprintf(stderr, "Module is not supported by system.\n"); + error_report("Module is not supported by system."); return; } 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__ */ #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 = WSAStartup(MAKEWORD(2, 2), &Data); if (ret != 0) { err = 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 == 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 == 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 @@ */ #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, Coroutine *co) trace_qemu_aio_coroutine_enter(ctx, self, co, co->entry_arg); if (co->caller) { - fprintf(stderr, "Co-routine re-entered recursively\n"); + error_report("Co-routine re-entered recursively"); abort(); } @@ -164,7 +165,7 @@ void coroutine_fn qemu_coroutine_yield(void) trace_qemu_coroutine_yield(self, to); if (!to) { - fprintf(stderr, "Co-routine is yielding to no one\n"); + error_report("Co-routine is yielding to no one"); abort(); } 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 @@ */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qemu-common.h" 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 = 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 } 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(); } 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 #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 = enable; - fprintf(stderr, "qemu: thread naming not supported on this host\n"); + error_report("qemu: thread naming not supported on this host"); } static void error_exit(int err, const char *msg) @@ -38,7 +39,7 @@ static void error_exit(int err, const char *msg) FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, 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" /***********************************************************/ @@ -37,7 +38,7 @@ static void __attribute__((constructor)) init_get_clock(void) int ret; ret = QueryPerformanceFrequency(&freq); if (ret == 0) { - fprintf(stderr, "Could not calibrate ticks\n"); + error_report("Could not calibrate ticks"); exit(1); } clock_freq = 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 = true; } From patchwork Tue Sep 26 00:09:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 818411 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="VoZBaFhL"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3y1M483mDwz9sRm for ; Tue, 26 Sep 2017 10:18:16 +1000 (AEST) Received: from localhost ([::1]:44926 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdZm-0006dF-GW for incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:18: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 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= 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 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 (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; 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 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?= veVwCtAcyTqTut+IoDPSNTOadfM2g5v8QC8ZuQ/EpyWdJ/o5jAklV66+pjbPcaxUTdrAL9sbiwmF2mdDPyaGK0U7k6D0bQsmdULuTwYlbHxq6lZQCCHVN0mbdkhX92xWPGmj3iPvkXPqNTLN/52/r3UmuG9jqw4L2w8mpJvdfNXA5/XWEjevPUJugPIrO9YU5tYAdmNmGd4ERhnBKiOPiqeg56W272MtfWkVJwhfaKcCqQ8bvqPX4zU4tfJ5jqkW3xbMmBLq4EH8YO2weGOGbhsiuXo/3SUOgE4X++b7m7Ypv3tPL/kofuy35IZd9gSlAH0e+Kpe4MmVJ7zywo03SlaK9hRPd9BXtWxQaEGus6dl7mxmkwlNvBAoQ1/NFGVoxN3wVZ51AFf5K+nViQXV7fsAehGoF0rs/hqetZ9lTzjcEKy2SN8j8xiSRLvY2eUUrjM4o8FZ+asKQBftrNRz7JYHA/jaogvUgfYDRF60BzFJUHRc1KG6ITwboSycySpgg7dwa+5cSAq5sBoZJ0bef6OjLysS59wiZqv/UcuszJX1yDF3aR1OPofOVpi9iJSorQBx8O6PHIk62xXMWENDWUoxf1OhFMv82zc/rF3TFaQ0dLY/yMspz2Km9c+yE3G8neuqQ7/IVdSoSOTmDXFcGP+dDhYO8W1Tnb0Bsl5cDGvSzhLh36afvqQjWAhgleV0YsvRYep7+47OQslbbdB+txNQtB4rEtef6QVDSr0UAKEJvt/7IU3di3ljLszWZIJQuFBbgpPv8VVXnzfa3RArF2mMn3RbErCZkMYWOySihGfAW9mSYEvFoe4UKacFLHUDXUfqVjOEjVjfhu8FH6J+Mxonv7wdvxGgAvRB0hef9XAb8LSt8Dea89V132da6LY5b1dk45FwJVIvKIMNFb/Dd63jt6reSUQJFUeX+bYRgM8M90+mVCmjuu0M3f8TjUwOWdBDkPd+ayP+W52g/7MRujTQ4N5yCF69+yc002KQ2L1zwTWjeJs+npF/jYo1m5NgH8= 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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_report("\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[] = { static int cocoa_keycode_to_qemu(int keycode) { if (ARRAY_SIZE(mac_to_qkeycode_map) <= 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 = [[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); } @@ -917,7 +917,7 @@ QemuCocoaView *cocoaView; styleMask:NSWindowStyleMaskTitled|NSWindowStyleMaskMiniaturizable|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(DisplayChangeListener *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_screen) { #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) != 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 != 1) { - fprintf(stderr, "%s: chars != 1 not supported\n", __func__); + error_report("%s: chars != 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 *prefix) fprintf(stderr, "o"); /* other */ } } - fprintf(stderr, "|\n"); + error_report("|"); } } 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 = opaque; - 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 = XGetAtomName(x11_display, desc->names->keycodes); } if (keycodes == 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 = 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); } if (desc) { @@ -2239,7 +2239,7 @@ void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover) GdkDisplay *window_display; if (!gtkinit) { - fprintf(stderr, "gtk initialization failed\n"); + error_report("gtk initialization failed"); exit(1); } 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 @@ */ #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 = read(il->fd, &p[il->read_offset], read_size); if (rc != read_size) { if (rc < 0 && errno != 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 name2keysym_t *table, f = 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; } @@ -150,7 +150,7 @@ static kbd_layout_t *parse_keyboard_layout(const name2keysym_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); */ } 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, &rec) < 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 bpp) tmp_screen = 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 bpp) * 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) == Success)) { keycodes = XGetAtomName(info.info.x11.display, desc->names->keycodes); if (keycodes == NULL) { - fprintf(stderr, "could not lookup keycode name\n"); + error_report("could not lookup keycode name"); } else if (strstart(keycodes, "evdev", NULL)) { has_evdev = 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); } } @@ -988,7 +988,7 @@ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame) flags = 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 = (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 *dcl, 0xff0000, 0x00ff00, 0xff, 0xff000000); 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 = 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) flags = 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 @@ */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "sdl_zoom.h" 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 == 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; } 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 GLchar *src) glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length); errmsg = g_malloc(length); glGetShaderInfoLog(shader, length, &length, errmsg); - fprintf(stderr, "%s: compile %s error\n%s\n", __func__, - (type == GL_VERTEX_SHADER) ? "vertex" : "fragment", - errmsg); + error_report("%s: compile %s error: %s", __func__, + (type == 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 = 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(QXLInstance *sin) static void interface_notify_update(QXLInstance *sin, uint32_t update_id) { - fprintf(stderr, "%s: abort()\n", __func__); + error_report("%s: abort()", __func__); abort(); } 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(); } @@ -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(DisplayChangeListener *dcl, assert(tex_id); fd = 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_id, MAX_MEM_LEVEL, strategy); if (err != Z_OK) { - fprintf(stderr, "VNC: error initializing zlib\n"); + error_report("VNC: error initializing zlib"); return -1; } @@ -865,7 +865,7 @@ static int tight_compress_data(VncState *vs, int stream_id, size_t bytes, /* start encoding */ if (deflate(zstream, Z_SYNC_FLUSH) != Z_OK) { - fprintf(stderr, "VNC: error during tight compression\n"); + error_report("VNC: error during tight compression"); return -1; } 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); if (err != Z_OK) { - fprintf(stderr, "VNC: error initializing zlib\n"); + error_report("VNC: error initializing zlib"); return -1; } @@ -109,7 +109,7 @@ static int vnc_zlib_stop(VncState *vs) // start encoding if (deflate(zstream, Z_SYNC_FLUSH) != Z_OK) { - fprintf(stderr, "VNC: error during zlib compression\n"); + error_report("VNC: error during zlib compression"); return -1; } 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); if (err != Z_OK) { - fprintf(stderr, "VNC: error initializing zlib\n"); + error_report("VNC: error initializing zlib"); return -1; } @@ -104,7 +104,7 @@ static int zrle_compress_data(VncState *vs, int level) /* start encoding */ if (deflate(zstream, Z_SYNC_FLUSH) != Z_OK) { - fprintf(stderr, "VNC: error during zrle compression\n"); + error_report("VNC: error during zrle compression"); return -1; } 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] = "exclusive", [VNC_SHARE_MODE_DISCONNECTED] = "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 From patchwork Tue Sep 26 00:09:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 818403 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="cckwurIG"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3y1Lz612ycz9s7C for ; Tue, 26 Sep 2017 10:13:54 +1000 (AEST) Received: from localhost ([::1]:44890 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdVY-0002yL-7S for incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:13:52 -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 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= 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 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: 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; 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 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?= HkUWrfgosx2H2PqLbFviTdgvd1DoyxxKHojrgxALA2d1qMcebkcb+0j6VfF04VGUNfBqrioUzv8vqdzvwIUkJLGSj8JjO4oWscno3jNYyIbQ6byx6OGTKeFBzKYoywav5f+aYyn8jLclXMYJpquN6zAbSA3Z5+ytom3LV5RxKg8o5+WD8Srxrzjrnl/b6/uIzjmlZcf1JVH2zZWfBBGmt8lwF1PYs7X8mcWDY9CneWaI9cbKtludqFQS6M7dpHYKC+fSR1a0ovzbFXig9CMOvipaaFK0m/JkaLjAWPSH7KBPC/sizvd0maB6CPtZTDLCEmxFHDNTnqS1i5QkzHq0TfOEkGvc3J2Z+WAylKVZq9vu5Zu3YeNmnE+kDaPxNpGXXQyPqMJaJKNJtbZPcayYb/BfuwXIocaM5hynxlB6+F1IZqdoA1QGb4A5yzVgDtxrmh1IYgn3QeMGGuTiEJU09LM2UzNE3QjKcKaB4oifhhrJf0zW4E1NIJLdM0CNmgHfEVgS8Ah2CB99BDWbfZu6e9PFaEV3cE7sdmi3dKpXNC00W4DCIV7LFevLZkbpgDCHizb7B48ZAaBhfbXwmQ51huMz/4EfpQFDHhKsCTeQ3V+Hd5N1fLyP/Cp5WTaTZg2kh4JxeyK6xaG3UBRRdMPvVKWmAOf4zD2CoNi4oU1GASkZbCs5dpRpDTNsGgLCfgbFgejR+5bJD1WzXiR5M7whvLfEAHnXHBPrr0DiE6cqiilAmLLMRX5EtGwy2TXfAt1MeNy+rIc79vDnhL/EvyutEJHgyddUzTww4T6svgWqIdim1/Ct5+RULnmXeiAbZaWLwhQruShaBjTm64hY4xjPHuciUTLSSX1ol0i/SI4klD8XUO9gyl1OpCev9jlqFZfKbMZYqkAuQWnSyqkw259bZyVgK3AbW/pVTz/ixwNDZn3mguvQ/ge94+Hwm2/1JJa3Mvb24F04FOOMb0h0wOVAASRonEdJu6/tMSlsDm3OaJ1zOx8by06f1P7Kam0Cwtp1tLHfe6VHT60RDC5MqsGTWp0DaJkvIFBFJlxqi5LcjKYfQ== 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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_report("\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 Acked-by: Richard Henderson --- 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) 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) r = 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); } @@ -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 = 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) } } - fprintf(stderr, "Bad ram offset %" PRIx64 "\n", (uint64_t)addr); + error_report("Bad ram offset %" PRIx64 "", (uint64_t)addr); abort(); found: @@ -1658,7 +1658,7 @@ static ram_addr_t find_ram_offset(ram_addr_t size) } if (offset == 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 = qemu_madvise(addr, size, QEMU_MADV_DONTDUMP); if (ret) { perror("qemu_madvise"); - fprintf(stderr, "madvise doesn't support MADV_DONTDUMP, " - "but dump_guest_core=off specified\n"); + error_report("madvise doesn't support MADV_DONTDUMP, " + "but dump_guest_core=off specified"); } } } @@ -1725,7 +1725,7 @@ void qemu_ram_set_idstr(RAMBlock *new_block, const char *name, DeviceState *dev) RAMBLOCK_FOREACH(block) { if (block != 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 length) flags, -1, 0); } if (area != 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 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" @@ -897,7 +898,7 @@ typedef struct TCGTargetOpDef { #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) 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(TCGArgConstraint *ct, void tci_disas(uint8_t opc) { const TCGOpDef *def = &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 = 1; display = 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)) { From patchwork Tue Sep 26 00:09:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 818410 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="ZgzfkQBB"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3y1M3Q2127z9sRm for ; Tue, 26 Sep 2017 10:17:38 +1000 (AEST) Received: from localhost ([::1]:44919 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwdZA-0006BH-AP for incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:17:36 -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 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= 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 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 (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; 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 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?= wqNHEGXOz5pnzadOWZTD4XsgBRAypz9yt2+24LmziKV7nBPZbvY3t06NvFvus6wlRTQ5Qc7TkRuQFNkkzMaO0Air6MhVV2mnwwFpwzCBHV3272I4GGtgdBCVA4UsZW+balpACxXF02xkysuhPLoLGWXDpCbSQuKwFkfOsil6Zxv+LqnlUTZhzW5TqnmIRKH/eDGLGuD4WY4qplCH5eF2fEICaUz8rcMeO1DSK4etA6lq92ce5xgl4DG8e/qJrY6hsZjSlvdCi/kaHL3ttjcieRFIYQQ90jUxTHqld18hULIxFwgyoG4I0FxsGdl+Kgfq3Q7RiBcxPp67uYDp7s0jP1iaFxaOi+U51HnzL8tkGto17rPRzudNplHRhs29lZZAs5uALkuZIsqLl2h9THGz5oX4MXvA5RJK17AaQ8IPDN5GertQyfGC6vcAo5hJoN2j6OxRZM9YnabpMwnjqIdCY7jl846UoQTIXGVF8bGwoWIIzS2slj9hmaU+tBEWPCMonBbTzF7pp5Ku0DzaHAp+zz8vAM/G/MSwrvQC/CfKrQJpHVQjQ9jBYxEFGxfBgU6l36Meci6BWbO65rOLrtqkqgXOYT2kYGRzDRcrFh/ORzHZfFEBUD3BBjLjYUPcfaGhW2v+EOg9OFROpwxswLfere+mw7aL02O86SeiuU1MJu2oQyqf6GD2Ly2e+c7A1Q1a1BcyLrk2wzQxTvG4GWzlQX4SfF+BNDh86Za5vwP87sYRQ9HF+IQlJRixwfKseDulRxnECIGabATcCexhLhHEBAriyZbKkjpHrykah8u8c2iaIdENAOnHEchGAzOAjX733KLWk7s2vfm+Y0o6lQZKI9BQLh12gt3re5kD8XSCrwprtkhx0fIdVjDBZmfisiJyQHifZDlWcEOytezxqQjO7sXLsim0GE2gl0YTkLhDsa9iFK0tKGbFyvFKJOZVfEkWps2cwK8xRl78DJOvWloesmNlc5LSvUhHvrgwC80dt4jW3vWO6ClWtILzNhKxbc6DsFg8hjBqellKox/aaPEz6nk5B5EhClPNzrvq2vnAmC67pVyJy0IDxxSRA7yM5ni9uaG5B2QLRbLEVcDnjNFC2auXPusnm+eDceEXXkNUYPmtx+2pFFPndTQGH8pYcBqXJIcnZ7NpGumppk3DMRBEn3MMD 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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_report("\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 @@ */ #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) @@ -32,7 +33,7 @@ CPUState *arm_get_cpu_by_id(uint64_t id) { CPUState *cpu; - DPRINTF("cpu %" PRId64 "\n", id); + DPRINTF("cpu %" PRId64 "", id); CPU_FOREACH(cpu) { ARMCPU *armcpu = 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 @@ */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #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 = g_hash_table_lookup(cpu->cp_regs, key); if (oldreg && !(oldreg->type & ARM_CP_OVERRIDE)) { - fprintf(stderr, "Register redefined: cp=%d %d bit " + error_report("Register redefined: cp=%d %d bit " "crn=%d crm=%d opc1=%d opc2=%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) } 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 = -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 = -EINVAL; goto out; } @@ -478,11 +478,11 @@ void kvm_arm_reset_vcpu(ARMCPU *cpu) */ ret = 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 = 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 = 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 = ARM_CPU(cs); if (cpu->kvm_target == 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; } 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) if (cpu->kvm_target == 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; } 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(DisasContext *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; default: - fprintf(stderr, "Bad condition code 0x%x\n", cc); + error_report("Bad condition code 0x%x", cc); abort(); } 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 = 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 { static void gen_BUG(DisasContext *dc, const char *file, int line) { - fprintf(stderr, "BUG: pc=%x %s %d\n", dc->pc, file, line); + error_report("BUG: pc=%x %s %d", dc->pc, file, line); if (qemu_log_separate()) { qemu_log("BUG: pc=%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) } 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; } 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; 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; } if (hax_global.vm->vcpus[id]) { - fprintf(stderr, "vcpu %x allocated already\n", id); + error_report("vcpu %x allocated already", id); return 0; } vcpu = 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; } @@ -165,14 +165,14 @@ int hax_vcpu_create(int id) ret = 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; } vcpu->vcpu_id = id; vcpu->fd = 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 = -ENODEV; goto error; } @@ -181,7 +181,7 @@ int hax_vcpu_create(int id) ret = hax_host_setup_vcpu_channel(vcpu); if (ret) { - fprintf(stderr, "Invalid hax tunnel size\n"); + error_report("Invalid hax tunnel size"); ret = -EINVAL; goto error; } @@ -203,7 +203,7 @@ int hax_vcpu_destroy(CPUState *cpu) struct hax_vcpu_state *vcpu = cpu->hax_vcpu; 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; } @@ -227,7 +227,7 @@ int hax_init_vcpu(CPUState *cpu) ret = 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); } @@ -258,13 +258,13 @@ struct hax_vm *hax_vm_create(struct hax_state *hax) memset(vm, 0, sizeof(struct hax_vm)); ret = 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 = vm_id; vm->fd = 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; } @@ -283,7 +283,7 @@ int hax_vm_destroy(struct hax_vm *vm) for (i = 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) hax->vm = hax_vm_create(hax); if (!hax->vm) { - fprintf(stderr, "Failed to create HAX VM\n"); + error_report("Failed to create HAX VM"); ret = -EINVAL; goto error; } @@ -364,7 +364,7 @@ static int hax_accel_init(MachineState *ms) int ret = hax_init(ms->ram_size); if (ret && (ret != -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) } if (hax_ret < 0) { - fprintf(stderr, "vcpu run failed for vcpu %x\n", vcpu->vcpu_id); + 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 = 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 = -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 = -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 = hax_vcpu_hax_exec(env); 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 = hax_sync_vcpu_register(env, 1); if (ret < 0) { - fprintf(stderr, "Failed to sync vcpu reg\n"); + error_report("Failed to sync vcpu reg"); return ret; } ret = hax_set_fpu(env); if (ret < 0) { - fprintf(stderr, "FPU failed\n"); + error_report("FPU failed"); return ret; } ret = hax_set_msrs(env); if (ret < 0) { - fprintf(stderr, "MSR failed\n"); + error_report("MSR failed"); return ret; } 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 = open("/dev/HAX", O_RDWR); if (fd == -1) { - fprintf(stderr, "Failed to open the hax module\n"); + error_report("Failed to open the hax module"); } 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; 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; } @@ -46,7 +46,7 @@ int hax_populate_ram(uint64_t va, uint32_t size) info.va = va; ret = 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_capabilityinfo *cap) ret = ioctl(hax->fd, HAX_IOCTL_CAPABILITY, cap); if (ret == -1) { - fprintf(stderr, "Failed to get HAX capability\n"); + error_report("Failed to get HAX capability"); return -errno; } @@ -88,7 +88,7 @@ int hax_mod_version(struct hax_state *hax, struct hax_module_version *version) ret = ioctl(hax->fd, HAX_IOCTL_VERSION, version); if (ret == -1) { - fprintf(stderr, "Failed to get HAX version\n"); + error_report("Failed to get HAX version"); return -errno; } @@ -100,7 +100,7 @@ static char *hax_vm_devfs_string(int vm_id) char *name; if (vm_id > MAX_VM_ID) { - fprintf(stderr, "Too big VM id\n"); + error_report("Too big VM id"); return NULL; } @@ -119,7 +119,7 @@ static char *hax_vcpu_devfs_string(int vm_id, int vcpu_id) char *name; 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; } @@ -181,7 +181,7 @@ int hax_notify_qemu_version(hax_fd vm_fd, struct hax_qemu_version *qversion) ret = ioctl(vm_fd, HAX_VM_IOCTL_NOTIFY_QEMU_VERSION, qversion); 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) ret = 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); } return ret; @@ -209,14 +209,14 @@ hax_fd hax_host_open_vcpu(int vmid, int vcpuid) devfs_path = 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; } fd = 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) ret = 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; } 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 = -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 *listener) } 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, NULL); if (hDevice == INVALID_HANDLE_VALUE) { - fprintf(stderr, "Failed to open the HAX device!\n"); + error_report("Failed to open the HAX device!"); errNum = GetLastError(); if (errNum == ERROR_FILE_NOT_FOUND) { return -1; @@ -52,7 +52,7 @@ static int hax_open_device(hax_fd *fd) ret = hax_open_device(&fd); if (ret != 0) { - fprintf(stderr, "Open HAX device failed\n"); + error_report("Open HAX device failed"); } return fd; @@ -66,7 +66,7 @@ int hax_populate_ram(uint64_t va, uint32_t size) DWORD dSize = 0; 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; } @@ -81,7 +81,7 @@ int hax_populate_ram(uint64_t va, uint32_t size) (LPOVERLAPPED) NULL); if (!ret) { - fprintf(stderr, "Failed to allocate %x memory\n", size); + error_report("Failed to allocate %x memory", size); return ret; } @@ -119,7 +119,7 @@ int hax_capability(struct hax_state *hax, struct hax_capabilityinfo *cap) DWORD err = 0; if (hax_invalid_fd(hDevice)) { - fprintf(stderr, "Invalid fd for hax device!\n"); + error_report("Invalid fd for hax device!"); return -ENODEV; } @@ -129,9 +129,9 @@ int hax_capability(struct hax_state *hax, struct hax_capabilityinfo *cap) if (!ret) { err = GetLastError(); if (err == ERROR_INSUFFICIENT_BUFFER || err == 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_module_version *version) DWORD err = 0; if (hax_invalid_fd(hDevice)) { - fprintf(stderr, "Invalid fd for hax device!\n"); + error_report("Invalid fd for hax device!"); return -ENODEV; } @@ -159,9 +159,9 @@ int hax_mod_version(struct hax_state *hax, struct hax_module_version *version) if (!ret) { err = GetLastError(); if (err == ERROR_INSUFFICIENT_BUFFER || err == 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; if (vm_id > MAX_VM_ID) { - fprintf(stderr, "Too big VM id\n"); + error_report("Too big VM id"); return NULL; } @@ -192,7 +192,7 @@ static char *hax_vcpu_devfs_string(int vm_id, int vcpu_id) char *name; 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; } @@ -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_id) vm_name = 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; } @@ -249,7 +249,7 @@ hax_fd hax_host_open_vm(struct hax_state *hax, int vm_id) GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hDeviceVM == 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()); } @@ -269,7 +269,7 @@ int hax_notify_qemu_version(hax_fd vm_fd, struct hax_qemu_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; } @@ -299,7 +299,7 @@ hax_fd hax_host_open_vcpu(int vmid, int vcpuid) devfs_path = 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; } @@ -309,7 +309,7 @@ hax_fd hax_host_open_vcpu(int vmid, int vcpuid) NULL); if (hDeviceVCPU == 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; } 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 = -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, int 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, int code) static void hardware_memory_error(void) { - fprintf(stderr, "Hardware memory error!\n"); + error_report("Hardware memory error!"); exit(1); } @@ -497,8 +497,8 @@ void kvm_arch_on_sigbus_vcpu(CPUState *c, int code, void *addr) return; } - 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!"); } if (code == BUS_MCEERR_AR) { @@ -666,7 +666,7 @@ static int hyperv_handle_properties(CPUState *cs) 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; } @@ -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] |= HV_SYNTIMERS_AVAILABLE; @@ -811,7 +811,7 @@ int kvm_arch_init_vcpu(CPUState *cs) for (i = 0; i <= limit; i++) { if (cpuid_i == KVM_MAX_CPUID_ENTRIES) { - fprintf(stderr, "unsupported level value: 0x%x\n", limit); + error_report("unsupported level value: 0x%x", limit); abort(); } c = &cpuid_data.entries[cpuid_i++]; @@ -829,8 +829,8 @@ int kvm_arch_init_vcpu(CPUState *cs) for (j = 1; j < times; ++j) { if (cpuid_i == KVM_MAX_CPUID_ENTRIES) { - fprintf(stderr, "cpuid_data is full, no space for " - "cpuid(eax:2):eax & 0xf = 0x%x\n", times); + error_report("cpuid_data is full, no space for " + "cpuid(eax:2):eax & 0xf = 0x%x", times); abort(); } c = &cpuid_data.entries[cpuid_i++]; @@ -862,8 +862,8 @@ int kvm_arch_init_vcpu(CPUState *cs) continue; } if (cpuid_i == 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 = &cpuid_data.entries[cpuid_i++]; @@ -899,7 +899,7 @@ int kvm_arch_init_vcpu(CPUState *cs) for (i = 0x80000000; i <= limit; i++) { if (cpuid_i == KVM_MAX_CPUID_ENTRIES) { - fprintf(stderr, "unsupported xlevel value: 0x%x\n", limit); + error_report("unsupported xlevel value: 0x%x", limit); abort(); } c = &cpuid_data.entries[cpuid_i++]; @@ -915,7 +915,7 @@ int kvm_arch_init_vcpu(CPUState *cs) for (i = 0xC0000000; i <= limit; i++) { if (cpuid_i == KVM_MAX_CPUID_ENTRIES) { - fprintf(stderr, "unsupported xlevel2 value: 0x%x\n", limit); + error_report("unsupported xlevel2 value: 0x%x", limit); abort(); } c = &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 = 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 = 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 = 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 = 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 == VMX_INVALID_GUEST_STATE) { fprintf(stderr, @@ -3157,7 +3157,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) ret = -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 = -1; break; @@ -3175,7 +3175,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) ret = 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 = -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=0x%04x, data=%02x\n", port, data); + error_report("outb: port=0x%04x, data=%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=0x%04x\n", port); + error_report("inb: port=0x%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=0x%04x, data=%04x\n", port, data); + error_report("outw: port=0x%04x, data=%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=0x%04x\n", port); + error_report("inw: port=0x%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=0x%04x, data=%08x\n", port, data); + error_report("outw: port=0x%04x, data=%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=0x%04x\n", port); + error_report("inl: port=0x%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 = 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 = 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 @@ */ #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 excp_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 = false; if (!cap_interrupt_level) { - fprintf(stderr, "KVM: Couldn't find level irq capability. Expect the " - "VM to stall at times!\n"); + error_report("KVM: Couldn't find level irq capability. Expect the " + "VM to stall at times!"); } 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) ret = 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 *cenv) } 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) ret = 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)); } @@ -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); return 0; } @@ -1482,7 +1482,7 @@ static int kvmppc_handle_dcr_read(CPUPPCState *env, uint32_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); return 0; } @@ -1793,7 +1793,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) break; default: - fprintf(stderr, "KVM: unknown exit reason %d\n", run->exit_reason); + error_report("KVM: unknown exit reason %d", run->exit_reason); ret = -1; break; } @@ -1857,7 +1857,7 @@ int kvmppc_booke_watchdog_enable(PowerPCCPU *cpu) ret = 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) fd = 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) *rma = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); if (*rma == MAP_FAILED) { - fprintf(stderr, "KVM: Error mapping RMA: %s\n", strerror(errno)); + error_report("KVM: Error mapping RMA: %s", strerror(errno)); return -1; }; @@ -2303,7 +2303,7 @@ void *kvmppc_create_spapr_tce(uint32_t liobn, uint32_t page_shift, } fd = 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, table = mmap(NULL, len, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); if (table == 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) }; 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; } @@ -2579,7 +2579,7 @@ int kvmppc_save_htab(QEMUFile *f, int fd, size_t bufsize, int64_t max_ns) do { rc = 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, uint32_t index, rc = 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 != 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_hash_pte64_t pte) key = HPTE64_R_KEY(pte.pte1); amrbits = (env->spr[SPR_AMR] >> 2*(31 - key)) & 0x3; - /* fprintf(stderr, "AMR protection: key=%d AMR=0x%" PRIx64 "\n", key, */ + /* error_report("AMR protection: key=%d AMR=0x%" PRIx64 "", key, */ /* env->spr[SPR_AMR]); */ /* 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) == 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; } 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 != 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); /* The behaviour depends on MSR:PR and SPR# bit 0x10, @@ -7370,8 +7370,8 @@ void gen_intermediate_code(CPUState *cs, struct TranslationBlock *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 = 0; i < 64; i++) { if (ivor_mask & (1ULL << i)) { if (ivor_sprn[i] == 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_VRE"); 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_DWE 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 nor " - "POWERPC_FLAG_UBLE\n"); + error_report("PowerPC MSR definition inconsistency"); + error_printf("Should not define POWERPC_FLAG_SE nor POWERPC_FLAG_DWE" + " 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_DE"); 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_PMM"); 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_PMM"); exit(1); } if ((env->flags & (POWERPC_FLAG_RTC_CLK | POWERPC_FLAG_BUS_CLK)) == 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 |= (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, struct kvm_s390_irq *irq) r = 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); } r = 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 kvm_s390_irq *irq) r = 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); } r = 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 = 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 order_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 = SIGP_CC_NOT_OPERATIONAL; } 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) } #if 0 - fprintf(stderr, "Translating opcode 0x%04x\n", ctx->opcode); + error_report("Translating opcode 0x%04x", ctx->opcode); #endif 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, TranslationBlock *tb) disas_uc32_insn(env, dc); if (num_temps) { - fprintf(stderr, "Internal resource leak before %08x\n", dc->pc); + error_report("Internal resource leak before %08x", dc->pc); num_temps = 0; }