Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/818412/?format=api
{ "id": 818412, "url": "http://patchwork.ozlabs.org/api/patches/818412/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/bf3dd056ce55cbea81ca762c3c40d22683a542e7.1506384414.git.alistair.francis@xilinx.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<bf3dd056ce55cbea81ca762c3c40d22683a542e7.1506384414.git.alistair.francis@xilinx.com>", "list_archive_url": null, "date": "2017-09-26T00:08:52", "name": "[v1,3/8] hw: Replace fprintf(stderr, \"*\\n\" with error_report()", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "6dbd312a3d9cbaa358b1ec96221689e112fe1bc2", "submitter": { "id": 47878, "url": "http://patchwork.ozlabs.org/api/people/47878/?format=api", "name": "Alistair Francis", "email": "alistair.francis@xilinx.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/bf3dd056ce55cbea81ca762c3c40d22683a542e7.1506384414.git.alistair.francis@xilinx.com/mbox/", "series": [ { "id": 5037, "url": "http://patchwork.ozlabs.org/api/series/5037/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=5037", "date": "2017-09-26T00:08:34", "name": "Remove some of the fprintf(stderr, \"*", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/5037/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/818412/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/818412/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=xilinx.onmicrosoft.com\n\theader.i=@xilinx.onmicrosoft.com header.b=\"jrVMjL/N\"; \n\tdkim-atps=neutral", "spf=pass (sender IP is 149.199.60.83)\n\tsmtp.mailfrom=xilinx.com; nongnu.org; dkim=none (message not signed)\n\theader.d=none;nongnu.org; dmarc=bestguesspass action=none\n\theader.from=xilinx.com;" ], "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y1M5Y4Cg0z9sDB\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 26 Sep 2017 10:19:29 +1000 (AEST)", "from localhost ([::1]:44932 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dwdax-0007Lb-Jv\n\tfor incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:19:27 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:56481)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <alistai@xilinx.com>) id 1dwdX2-0004lu-CB\n\tfor qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:15:49 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <alistai@xilinx.com>) id 1dwdWg-00004s-B9\n\tfor qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:15:24 -0400", "from mail-dm3nam03on0079.outbound.protection.outlook.com\n\t([104.47.41.79]:36736\n\thelo=NAM03-DM3-obe.outbound.protection.outlook.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <alistai@xilinx.com>)\n\tid 1dwdUh-0005dY-7C; Mon, 25 Sep 2017 20:12:59 -0400", "from BY2PR02CA0098.namprd02.prod.outlook.com (10.163.44.152) by\n\tCY1PR0201MB1931.namprd02.prod.outlook.com (10.163.56.29) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.20.77.7; Tue, 26 Sep 2017 00:12:51 +0000", "from BL2NAM02FT038.eop-nam02.prod.protection.outlook.com\n\t(2a01:111:f400:7e46::208) by BY2PR02CA0098.outlook.office365.com\n\t(2a01:111:e400:5261::24) with Microsoft SMTP Server (version=TLS1_2, \n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.56.9 via\n\tFrontend Transport; Tue, 26 Sep 2017 00:12:50 +0000", "from xsj-pvapsmtpgw01 (149.199.60.83) by\n\tBL2NAM02FT038.mail.protection.outlook.com (10.152.77.25) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14\n\tvia Frontend Transport; Tue, 26 Sep 2017 00:12:49 +0000", "from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01)\n\tby xsj-pvapsmtpgw01 with esmtp (Exim 4.63)\n\t(envelope-from <alistair.francis@xilinx.com>)\n\tid 1dwdUW-0007B5-Qt; Mon, 25 Sep 2017 17:12:48 -0700", "from [127.0.0.1] (helo=localhost)\n\tby xsj-pvapsmtp01 with smtp (Exim 4.63)\n\t(envelope-from <alistair.francis@xilinx.com>)\n\tid 1dwdUW-0008VZ-OY; Mon, 25 Sep 2017 17:12:48 -0700", "from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66])\n\tby xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id\n\tv8Q0CW1C007357; Mon, 25 Sep 2017 17:12:32 -0700", "from [172.19.2.220] (helo=localhost.localdomain)\n\tby xsj-pvapsmtp01 with esmtp (Exim 4.63)\n\t(envelope-from <alistair.francis@xilinx.com>)\n\tid 1dwdUG-0008U7-6M; Mon, 25 Sep 2017 17:12:32 -0700" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=xilinx.onmicrosoft.com; s=selector1-xilinx-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=0JTkhBN/MPIfjGf0MDP5kiNuMG2F915lASxs1b9lIfE=;\n\tb=jrVMjL/N3fllgf2z0IKMYAOCPZgFCUfDeGkSrzdxsq83aNpWA1Mhah/POlcqEYLlN/mMlnXrU1UCdgIZ5us9zz3cRqyZJTn7WluSdFQLZ/wmJarqYtot2FA548V9Zd+LjvoYP3W8saHqOWCgwbb2tJUaYf54afPgojkKvDu+vA0=", "Received-SPF": "Pass (protection.outlook.com: domain of xilinx.com designates\n\t149.199.60.83 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=149.199.60.83; helo=xsj-pvapsmtpgw01;", "From": "Alistair Francis <alistair.francis@xilinx.com>", "To": "<qemu-devel@nongnu.org>", "Date": "Mon, 25 Sep 2017 17:08:52 -0700", "Message-ID": "<bf3dd056ce55cbea81ca762c3c40d22683a542e7.1506384414.git.alistair.francis@xilinx.com>", "X-Mailer": "git-send-email 2.11.0", "In-Reply-To": "<cover.1506384414.git.alistair.francis@xilinx.com>", "References": "<cover.1506384414.git.alistair.francis@xilinx.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"UTF-8\"", "Content-Transfer-Encoding": "quoted-printable", "X-RCIS-Action": "ALLOW", "X-TM-AS-Product-Ver": "IMSS-7.1.0.1224-8.1.0.1062-23350.005", "X-TM-AS-User-Approved-Sender": "Yes;Yes", "X-EOPAttributedMessage": "0", "X-MS-Office365-Filtering-HT": "Tenant", "X-Forefront-Antispam-Report": "CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(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);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0201MB1931;\n\tH:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com;\n\tMX:1; A:1; LANG:en; ", "X-Microsoft-Exchange-Diagnostics": [ "1; BL2NAM02FT038;\n\t1:ze3NFSOsovELHF3Q1H8FT8/tOrDnVJBDv0PG0kZJeCEAYjG4b4diWTrje1ZoFRd78cbu99zWIALYUFPb8QEh9YkUnqXretn35fPQYio3dZ9A1MD08KUFxcvp/O7jvPW/", "1; CY1PR0201MB1931;\n\t3:rdD6Kr+B9+1hqU4tuoeP4/PwfPjIcq62CYes5oR9QCqr4rULAUcikoON5I9gndRzgjNPKPMdOlCnfLM4g89rJb3urFXVvKgA58KZJA2aUdRmElXI3YW4JHcz8QKI00sOPMmGKPRHMGrwGaK05ykhKTD/J9Y3QroEA6RklQHDX20vnAnNwCH+w3lOltVlmO6H8QodhCA3SAPzSDZgWQWLFn2wmO4H8XJdYAjLOEBVRQW9AMxkxM4WVtqxD0VXM6ZE2Y2/m+lNtKZDVTDX8wvvclRxmJy4eBrzmupOIRRISLigv1WPPuNi3F6HWSDbfFJhmYsLD8ElPiX1SEVmK2Me9vNCuA2GG1U+9m+aKrmeVM4=;\n\t25:AerXj/6KloArXe9jer8Gy6w2xI2SAjoQJeF3Wvr4qagnpdjmHzTiGQut5DNm3GV+cypnnNZKaotbBn+XpSBDv3aW/LmEPXtDUaikA/SSzzZX+7T0qSx6OVwYhzSMnZ5zwvA1X/g3cw9qyljFGGVVkHKo4YVwWRrfbRWA3o3Ua4nJtg4S6tQO+/NREBRfwSmkU9ZV9c38mrfQPA+JERm16LGYiHitgdqVIALsVeOaSZFo7JFlP6+9SCE/paycAKKorn2q5c+434qgY6WzOuZFk8jfIreoWjrYqo6SCJjIUM1hX//CdZ+IgvASdKszhioMlmxBf+TJxBwt3rRl1gct0w==", "1; CY1PR0201MB1931;\n\t31:H6Flvj2+gV5A6JQdh0Zz4iPu8yQcyDepdU6fEsRkoF71535hK7Pi2ogZw+hnRNMFwPOe7O0/MZCQN3x3cIR1YRMY85nre0Iu5Eu5yAHOYZFQjeYiFNJTv27DYFH6gLe7Wzlr229K/GKSDOojDnkOQUB/6akSenPZnLbnPk/ll5fqFTjszZj3HQmO0ZmmYcioMvvMaMuoI4qajeAYxsefWj69wKuHWqYtr89D8b2BBKs=;\n\t20:FmVKal1eJ81kVlYVZJc3Y04GRWfPDCt5vGYP5Bbgg8sd2K01MWd7VFjLhQAWv+ubwvU02/1heb57rKLWURAzddvADlJvD+H8mYomsIgyJsD6jO03fb3dehCrqAo8vHcdfOmxtyHF4j+JAlqnUWbWU4q6hIm/T2X5RM/zt8yZgDiPxr++veLxWrytI+i0N9f3H83X7Xa/hRwkP0Vik3GVDM/f0GatcQP+Gbuo/eABW3vHEoz5nxolupyjRy8bGB2tlvA9lyppg9ZF5WYEZp8GNCHUTMLDoZsKKqrkF7utHfKAzPczS5MiuBEncp/M5NK5K8M9qZ7zLGlb8G18zkdAvHRV3o+dklmWrENZzXbj1OmHOBfQGZ5mutMn8FS8/Lcn8rZDnTl32mbRWWw3b96b0W7xcBzDaITKVe2M18XXkrx8eghU/A7mHZ4SS2Yab2BqyMZbrt5tQtodI0ZztQ/RoCrxNpyEU47HvfqtJMnqIGOrFvEU50NFy0nJu+RhM/P9", "1; CY1PR0201MB1931;\n\t4:cVEFDCbW1wRzlkDOJYBwW0/Fuxx4i6WFITmceadNvKjl7mbi6TYtzyj3HQkxDEeNf19u85d1WxcROm/RlgiMKHBf3cqlYzZQg3KtY43qGFJXrzseg8mkH7ARWqX+qv5N/CKwYCeLnkAOzrl855acCNjg8NIEDP31AN1alTknKjwFP0mOMkRpWgg9B7mq6ZbNKHqDNYPZadFCminFIrR1mOvB/HwSW5MNQKr1kTK0s77DhUWG7+RM445k5P/aSwe2/KVrZfbytYjFEjagRmiHqk5hvKAaoAdsEy1XiwNJaKJYu6IemCaCLqFd+RrCR+7CL8nbDjvL2T9pkIfTEb7jnRbHUlfbKgSnqkWBOWXBwLSOFVVKz0630eVU3XH7XGkJ3A8ROs54arbIB0mPG3w3wTEByFMHagR6E9TMIZNVm8E3uoVcnRu8/g284fKk6Vv6EVizINdyLtXg6OEs9WV64i9jir9fpXEH2JyU6PlUp1+Nz77TxmLXp5rzo6TZshl+YaJCrk7CFemwB9aPeg5ZW5XZR/IyQeKP+8zvI9dMu/d2rcbWWCK0G2eKPLsVjkl4eZpMzmrQvqdn68PwXIqIg/eqWlNk56J7jFbt30JdrCw=", "=?us-ascii?Q?1; CY1PR0201MB1931;\n\t23:PugbQgukwf/tXl6c7yZ9MlS35iOWqvx89bKgM3U?=\n\tbJ5vuvmWcqwueR9nGf6uVLv02xJc2e2ZHeF2ab6ke78Oer+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==", "1; CY1PR0201MB1931;\n\t6:vClvaIFNPfNOm46PeuHA/gxAjQEC2iBmT4ubj2uM2mDnwWbSsSC4O4clMkZgN3XIxkgJEeVPjJUQUnHwLMDZiVRDtX4BLleopZ+wcqd42HY7SGtf4ZtWLtQIhct/m9Wki5v15Bg3UYmyesU+mbZVy+XbnVZPzvbl5ARo9zEubU8muOkaLS1ZzYp7+ODyFKEHnvpuZNyuM20K3rk86MoSR6UFKKxCSqMbbpmxMoBiulA5iaEelaMqbYfo1WwMGrDZCzp9gCdjr9U0IByG+XunWYsW76+HP1UiVjRZepaA2W572iyrrygYD2dAyUOwHKI7wFIoY8gC7rkvnaKFpe03Yw==;\n\t5:otLoKd6h7fHBS1L21zdMlHRSCGIGAGhZhBW0/jtnnD1liJmv9zzh0n4nLxCl1iFssGw8KmpJZmvq4+z+K5griAk/N4K1bNTXpp0S3Il4D+Zwj5oq30gHVTWxtU4l2hLqPoSJZ6YMbwVUcepHBReqnA==;\n\t24:HJessilumlYO4K2mAa18ZNLs4B4GNgHr0DaESFYWQ4oOscwN1V8TUQ9VtmUVhEdah3bd6dx9Z1JTzL7NNdcC2SdozGu1ogmYOddfNh1O9Mo=;\n\t7:KjBmRTEiTagY94OVY9mOBYXjCf9uW476BtEJfyNME6ar6l5rOxtDZmMwJuA6cvSIO2nOxcyksOQvfi9jft4zow1Uqm6uvmIuKhJ+yYAFdNFNZpT7NB6Wp8PnTDMqgyD2DcLc1M+Kixx39ZRtpCZdW5pSU2WPe6QiO++P16fP3KniMQxQPA/01NHtJxpNnlrt0GAhAsnnXoBQTwno6mwBBOaZc7Kp1Xf2ISakMlGB9W4=" ], "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id": "711ec752-9c30-44af-2674-08d5047352fb", "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(2017030254152)(8251501002)(2017052603199)(201703131423075)(201703031133081)(201702281549075);\n\tSRVR:CY1PR0201MB1931; ", "X-MS-TrafficTypeDiagnostic": "CY1PR0201MB1931:", "X-Exchange-Antispam-Report-Test": "UriScan:(250305191791016)(158342451672863)(142945433499172)(72170088055959)(22074186197030)(788757137089)(190383065149520)(245156298449039)(192813158149592)(70601490899591);", "X-Microsoft-Antispam-PRVS": "<CY1PR0201MB1931327C1369545591E967CFDC7B0@CY1PR0201MB1931.namprd02.prod.outlook.com>", "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(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);\n\tSRVR:CY1PR0201MB1931; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY1PR0201MB1931; ", "X-Forefront-PRVS": "0442E569BC", "SpamDiagnosticOutput": "1:99", "SpamDiagnosticMetadata": "NSPM", "X-OriginatorOrg": "xilinx.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "26 Sep 2017 00:12:49.6327\n\t(UTC)", "X-MS-Exchange-CrossTenant-Id": "657af505-d5df-48d0-8300-c31994686c5c", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=657af505-d5df-48d0-8300-c31994686c5c; \n\tIp=[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\t\"*\\n\" with error_report()", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "Chris Wulff <crwulff@gmail.com>, \"Michael S. Tsirkin\" <mst@redhat.com>,\n\tAnthony Green <green@moxielogic.com>, Mark Cave-Ayland\n\t<mark.cave-ayland@ilande.co.uk>, armbru@redhat.com,\n\tGerd Hoffmann <kraxel@redhat.com>, Marek Vasut <marex@denx.de>,\n\tStefano Stabellini <sstabellini@kernel.org>, Jia Liu <proljc@gmail.com>,\n\tqemu-block@nongnu.org, Magnus Damm <magnus.damm@gmail.com>,\n\tAlexander Graf <agraf@suse.de>, Christian Borntraeger\n\t<borntraeger@de.ibm.com>, =?utf-8?q?Herv=C3=A9_Poussineau?=\n\t<hpoussin@reactos.org>, \tAnthony Perard <anthony.perard@citrix.com>,\n\txen-devel@lists.xenproject.org, Jason Wang <jasowang@redhat.com>, \n\tArtyom Tarasenko <atar4qemu@gmail.com>, Eduardo Habkost\n\t<ehabkost@redhat.com>, Fabien Chouteau <chouteau@adacore.com>,\n\talistair.francis@xilinx.com, Marcel Apfelbaum <marcel@redhat.com>,\n\tqemu-arm@nongnu.org, Jan Kiszka <jan.kiszka@web.de>,\n\tStefan Hajnoczi <stefanha@redhat.com>, Yongbok Kim\n\t<yongbok.kim@imgtec.com>, alistair23@gmail.com, Stafford Horne\n\t<shorne@gmail.com>, John Snow <jsnow@redhat.com>, Richard Henderson\n\t<rth@twiddle.net>, Paul Burton <paul.burton@imgtec.com>, Thomas Huth\n\t<huth@tuxfamily.org>, Cornelia Huck <cohuck@redhat.com>, Michael Walle\n\t<michael@walle.cc>, qemu-ppc@nongnu.org, Paolo Bonzini\n\t<pbonzini@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "Replace a large number of the fprintf(stderr, \"*\\n\" calls with\nerror_report(). The functions were renamed with these commands and then\ncompiler issues where manually fixed.\n\nfind ./* -type f -exec sed -i \\\n 'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\nfind ./* -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}' \\\n {} +\nfind ./* -type f -exec sed -i \\\n 'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\nfind ./* -type f -exec sed -i \\\n 'N;N;N;N;N;N;N;N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\nfind ./* -type f -exec sed -i \\\n 'N;N;N;N;N;N;N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\nfind ./* -type f -exec sed -i \\\n 'N;N;N;N;N;N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\nfind ./* -type f -exec sed -i \\\n 'N;N;N;N;N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\nfind ./* -type f -exec sed -i \\\n 'N;N;N;N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\nfind ./* -type f -exec sed -i \\\n 'N;N;N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\nfind ./* -type f -exec sed -i \\\n 'N;N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\nfind ./* -type f -exec sed -i \\\n 'N; {s|fprintf(stderr, \"\\(.*\\)\\\\n\"\\(.*\\));|error_report(\"\\1\"\\2);|Ig}' \\\n {} +\n\nSome lines where then manually tweaked to pass checkpatch.\n\nSigned-off-by: Alistair Francis <alistair.francis@xilinx.com>\nCc: Andrzej Zaborowski <balrogg@gmail.com>\nCc: Jan Kiszka <jan.kiszka@web.de>\nCc: Stefan Hajnoczi <stefanha@redhat.com>\nCc: Paolo Bonzini <pbonzini@redhat.com>\nCc: Thomas Huth <huth@tuxfamily.org>\nCc: Gerd Hoffmann <kraxel@redhat.com>\nCc: \"Michael S. Tsirkin\" <mst@redhat.com>\nCc: Richard Henderson <rth@twiddle.net>\nCc: Eduardo Habkost <ehabkost@redhat.com>\nCc: Stefano Stabellini <sstabellini@kernel.org>\nCc: Anthony Perard <anthony.perard@citrix.com>\nCc: John Snow <jsnow@redhat.com>\nCc: Christian Borntraeger <borntraeger@de.ibm.com>\nCc: Cornelia Huck <cohuck@redhat.com>\nCc: Alexander Graf <agraf@suse.de>\nCc: Michael Walle <michael@walle.cc>\nCc: Paul Burton <paul.burton@imgtec.com>\nCc: Aurelien Jarno <aurelien@aurel32.net>\nCc: Yongbok Kim <yongbok.kim@imgtec.com>\nCc: \"Hervé Poussineau\" <hpoussin@reactos.org>\nCc: Anthony Green <green@moxielogic.com>\nCc: Jason Wang <jasowang@redhat.com>\nCc: Chris Wulff <crwulff@gmail.com>\nCc: Marek Vasut <marex@denx.de>\nCc: Jia Liu <proljc@gmail.com>\nCc: Stafford Horne <shorne@gmail.com>\nCc: Marcel Apfelbaum <marcel@redhat.com>\nCc: Magnus Damm <magnus.damm@gmail.com>\nCc: Fabien Chouteau <chouteau@adacore.com>\nCc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>\nCc: Artyom Tarasenko <atar4qemu@gmail.com>\nCc: qemu-arm@nongnu.org\nCc: qemu-block@nongnu.org\nCc: xen-devel@lists.xenproject.org\nCc: qemu-ppc@nongnu.org\n---\n\n hw/arm/armv7m.c | 2 +-\n hw/arm/boot.c | 34 +++++++++----------\n hw/arm/gumstix.c | 13 ++++----\n hw/arm/mainstone.c | 7 ++--\n hw/arm/musicpal.c | 2 +-\n hw/arm/omap1.c | 5 +--\n hw/arm/omap2.c | 21 ++++++------\n hw/arm/omap_sx1.c | 6 ++--\n hw/arm/palm.c | 10 +++---\n hw/arm/pxa2xx.c | 7 ++--\n hw/arm/stellaris.c | 3 +-\n hw/arm/tosa.c | 17 +++++-----\n hw/arm/versatilepb.c | 2 +-\n hw/arm/vexpress.c | 8 ++---\n hw/arm/z2.c | 6 ++--\n hw/block/dataplane/virtio-blk.c | 6 ++--\n hw/block/onenand.c | 8 ++---\n hw/block/tc58128.c | 44 ++++++++++++-------------\n hw/bt/core.c | 15 +++++----\n hw/bt/hci-csr.c | 17 +++++-----\n hw/bt/hci.c | 30 ++++++++---------\n hw/bt/hid.c | 2 +-\n hw/bt/l2cap.c | 47 ++++++++++++++-------------\n hw/bt/sdp.c | 7 ++--\n hw/char/exynos4210_uart.c | 6 ++--\n hw/char/mcf_uart.c | 5 +--\n hw/char/sh_serial.c | 9 +++---\n hw/core/loader.c | 31 +++++++++---------\n hw/core/ptimer.c | 7 ++--\n hw/cris/axis_dev88.c | 3 +-\n hw/cris/boot.c | 5 +--\n hw/display/blizzard.c | 20 ++++++------\n hw/display/omap_dss.c | 14 ++++----\n hw/display/pl110.c | 2 +-\n hw/display/pxa2xx_lcd.c | 2 +-\n hw/display/qxl-render.c | 7 ++--\n hw/display/qxl.c | 10 +++---\n hw/display/tc6393xb.c | 36 ++++++++++++---------\n hw/display/virtio-gpu-3d.c | 4 +--\n hw/display/vmware_vga.c | 22 ++++++-------\n hw/dma/omap_dma.c | 26 ++++++++-------\n hw/dma/soc_dma.c | 37 ++++++++++-----------\n hw/gpio/omap_gpio.c | 2 +-\n hw/i2c/omap_i2c.c | 10 +++---\n hw/i386/kvm/apic.c | 9 +++---\n hw/i386/kvm/clock.c | 7 ++--\n hw/i386/kvm/i8254.c | 7 ++--\n hw/i386/kvm/i8259.c | 5 +--\n hw/i386/kvm/ioapic.c | 5 +--\n hw/i386/multiboot.c | 21 ++++++------\n hw/i386/pc.c | 18 +++++------\n hw/i386/pc_piix.c | 2 +-\n hw/i386/pc_sysfw.c | 5 +--\n hw/i386/xen/xen-hvm.c | 32 +++++++++---------\n hw/i386/xen/xen-mapcache.c | 12 +++----\n hw/i386/xen/xen_apic.c | 2 +-\n hw/ide/ahci.c | 6 ++--\n hw/ide/core.c | 2 +-\n hw/input/lm832x.c | 6 ++--\n hw/input/pckbd.c | 3 +-\n hw/input/pxa2xx_keypad.c | 2 +-\n hw/input/tsc2005.c | 17 +++++-----\n hw/input/tsc210x.c | 72 ++++++++++++++++++++---------------------\n hw/input/virtio-input-hid.c | 14 ++++----\n hw/input/virtio-input.c | 5 +--\n hw/intc/arm_gic_kvm.c | 12 +++----\n hw/intc/omap_intc.c | 4 +--\n hw/intc/openpic.c | 7 ++--\n hw/intc/openpic_kvm.c | 8 ++---\n hw/intc/s390_flic_kvm.c | 4 +--\n hw/ipmi/ipmi.c | 1 +\n hw/ipmi/ipmi_bmc_extern.c | 5 +--\n hw/isa/isa-bus.c | 7 ++--\n hw/lm32/lm32_boards.c | 5 +--\n hw/lm32/milkymist.c | 5 +--\n hw/m68k/an5206.c | 4 +--\n hw/m68k/mcf5206.c | 3 +-\n hw/m68k/mcf5208.c | 7 ++--\n hw/microblaze/boot.c | 2 +-\n hw/mips/boston.c | 4 +--\n hw/mips/mips_fulong2e.c | 4 +--\n hw/mips/mips_jazz.c | 4 +--\n hw/mips/mips_malta.c | 4 +--\n hw/mips/mips_mipssim.c | 4 +--\n hw/mips/mips_r4k.c | 6 ++--\n hw/misc/a9scu.c | 3 +-\n hw/misc/omap_gpmc.c | 11 ++++---\n hw/misc/omap_l4.c | 5 +--\n hw/misc/omap_sdrc.c | 3 +-\n hw/misc/vmport.c | 2 +-\n hw/moxie/moxiesim.c | 7 ++--\n hw/net/fsl_etsec/etsec.c | 2 +-\n hw/net/pcnet.c | 2 +-\n hw/net/smc91c111.c | 5 +--\n hw/net/vhost_net.c | 16 ++++-----\n hw/nios2/boot.c | 2 +-\n hw/nvram/eeprom93xx.c | 5 +--\n hw/nvram/fw_cfg.c | 4 +--\n hw/openrisc/openrisc_sim.c | 3 +-\n hw/pci-host/bonito.c | 6 ++--\n hw/pci/pci.c | 10 +++---\n hw/ppc/e500.c | 20 ++++++------\n hw/ppc/mac_newworld.c | 2 +-\n hw/ppc/mac_oldworld.c | 2 +-\n hw/ppc/mpc8544_guts.c | 5 +--\n hw/ppc/ppc405_boards.c | 8 ++---\n hw/ppc/ppc440_bamboo.c | 19 +++++------\n hw/ppc/ppc4xx_pci.c | 3 +-\n hw/ppc/prep.c | 4 +--\n hw/ppc/virtex_ml507.c | 4 +--\n hw/s390x/virtio-ccw.c | 2 +-\n hw/scsi/lsi53c895a.c | 4 +--\n hw/scsi/spapr_vscsi.c | 49 ++++++++++++++--------------\n hw/scsi/virtio-scsi-dataplane.c | 6 ++--\n hw/sd/pl181.c | 5 +--\n hw/sd/sd.c | 14 ++++----\n hw/sh4/r2d.c | 9 +++---\n hw/sh4/sh7750.c | 64 ++++++++++++++++++------------------\n hw/sparc/leon3.c | 9 +++---\n hw/sparc/sun4m.c | 8 ++---\n hw/sparc64/niagara.c | 2 +-\n hw/sparc64/sun4u.c | 9 +++---\n hw/ssi/omap_spi.c | 5 +--\n hw/timer/omap_gptimer.c | 11 ++++---\n hw/timer/twl92230.c | 2 +-\n hw/timer/xilinx_timer.c | 8 ++---\n hw/usb/core.c | 15 +++++----\n hw/usb/desc.c | 4 +--\n hw/usb/dev-audio.c | 29 +++++++++--------\n hw/usb/dev-bluetooth.c | 4 +--\n hw/usb/dev-mtp.c | 9 +++---\n hw/usb/dev-network.c | 20 ++++++------\n hw/usb/hcd-ehci.c | 32 +++++++++---------\n hw/usb/hcd-musb.c | 4 +--\n hw/usb/hcd-xhci.c | 3 +-\n hw/usb/host-legacy.c | 2 +-\n hw/watchdog/watchdog.c | 9 +++---\n hw/watchdog/wdt_i6300esb.c | 8 +++--\n hw/xen/xen-common.c | 10 +++---\n hw/xen/xen_pt.c | 4 +--\n hw/xenpv/xen_domainbuild.c | 24 +++++++-------\n hw/xenpv/xen_machine_pv.c | 8 ++---\n 142 files changed, 769 insertions(+), 705 deletions(-)", "diff": "diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c\nindex bb2dfc942b..56770a7048 100644\n--- a/hw/arm/armv7m.c\n+++ b/hw/arm/armv7m.c\n@@ -278,7 +278,7 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)\n #endif\n \n if (!kernel_filename && !qtest_enabled()) {\n- fprintf(stderr, \"Guest image must be specified (using -kernel)\\n\");\n+ error_report(\"Guest image must be specified (using -kernel)\");\n exit(1);\n }\n \ndiff --git a/hw/arm/boot.c b/hw/arm/boot.c\nindex c2720c8046..5b2d17f08a 100644\n--- a/hw/arm/boot.c\n+++ b/hw/arm/boot.c\n@@ -8,6 +8,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include <libfdt.h>\n #include \"hw/hw.h\"\n@@ -418,13 +419,13 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo,\n char *filename;\n filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, binfo->dtb_filename);\n if (!filename) {\n- fprintf(stderr, \"Couldn't open dtb file %s\\n\", binfo->dtb_filename);\n+ error_report(\"Couldn't open dtb file %s\", binfo->dtb_filename);\n goto fail;\n }\n \n fdt = load_device_tree(filename, &size);\n if (!fdt) {\n- fprintf(stderr, \"Couldn't open dtb file %s\\n\", filename);\n+ error_report(\"Couldn't open dtb file %s\", filename);\n g_free(filename);\n goto fail;\n }\n@@ -432,7 +433,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo,\n } else {\n fdt = binfo->get_dtb(binfo, &size);\n if (!fdt) {\n- fprintf(stderr, \"Board was unable to create a dtb blob\\n\");\n+ error_report(\"Board was unable to create a dtb blob\");\n goto fail;\n }\n }\n@@ -451,7 +452,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo,\n scells = qemu_fdt_getprop_cell(fdt, \"/\", \"#size-cells\",\n NULL, &error_fatal);\n if (acells == 0 || scells == 0) {\n- fprintf(stderr, \"dtb file invalid (#address-cells or #size-cells 0)\\n\");\n+ error_report(\"dtb file invalid (#address-cells or #size-cells 0)\");\n goto fail;\n }\n \n@@ -459,8 +460,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo,\n /* This is user error so deserves a friendlier error message\n * than the failure of setprop_sized_cells would provide\n */\n- fprintf(stderr, \"qemu: dtb file not compatible with \"\n- \"RAM size > 4GB\\n\");\n+ error_report(\"qemu: dtb file not compatible with RAM size > 4GB\");\n goto fail;\n }\n \n@@ -480,7 +480,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo,\n acells, mem_base,\n scells, mem_len);\n if (rc < 0) {\n- fprintf(stderr, \"couldn't set %s/reg for node %d\\n\", nodename,\n+ error_report(\"couldn't set %s/reg for node %d\", nodename,\n i);\n goto fail;\n }\n@@ -505,7 +505,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo,\n acells, binfo->loader_start,\n scells, binfo->ram_size);\n if (rc < 0) {\n- fprintf(stderr, \"couldn't set /memory/reg\\n\");\n+ error_report(\"couldn't set /memory/reg\");\n goto fail;\n }\n }\n@@ -519,7 +519,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo,\n rc = qemu_fdt_setprop_string(fdt, \"/chosen\", \"bootargs\",\n binfo->kernel_cmdline);\n if (rc < 0) {\n- fprintf(stderr, \"couldn't set /chosen/bootargs\\n\");\n+ error_report(\"couldn't set /chosen/bootargs\");\n goto fail;\n }\n }\n@@ -528,14 +528,14 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo,\n rc = qemu_fdt_setprop_cell(fdt, \"/chosen\", \"linux,initrd-start\",\n binfo->initrd_start);\n if (rc < 0) {\n- fprintf(stderr, \"couldn't set /chosen/linux,initrd-start\\n\");\n+ error_report(\"couldn't set /chosen/linux,initrd-start\");\n goto fail;\n }\n \n rc = qemu_fdt_setprop_cell(fdt, \"/chosen\", \"linux,initrd-end\",\n binfo->initrd_start + binfo->initrd_size);\n if (rc < 0) {\n- fprintf(stderr, \"couldn't set /chosen/linux,initrd-end\\n\");\n+ error_report(\"couldn't set /chosen/linux,initrd-end\");\n goto fail;\n }\n }\n@@ -690,7 +690,7 @@ static void load_image_to_fw_cfg(FWCfgState *fw_cfg, uint16_t size_key,\n gsize length;\n \n if (!g_file_get_contents(image_name, &contents, &length, NULL)) {\n- fprintf(stderr, \"failed to load \\\"%s\\\"\\n\", image_name);\n+ error_report(\"failed to load \\\"%s\\\"\", image_name);\n exit(1);\n }\n size = length;\n@@ -956,7 +956,7 @@ static void arm_load_kernel_notify(Notifier *notifier, void *data)\n is_linux = 1;\n }\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n info->kernel_filename);\n exit(1);\n }\n@@ -976,7 +976,7 @@ static void arm_load_kernel_notify(Notifier *notifier, void *data)\n info->initrd_start);\n }\n if (initrd_size < 0) {\n- fprintf(stderr, \"qemu: could not load initrd '%s'\\n\",\n+ error_report(\"qemu: could not load initrd '%s'\",\n info->initrd_filename);\n exit(1);\n }\n@@ -1021,9 +1021,9 @@ static void arm_load_kernel_notify(Notifier *notifier, void *data)\n } else {\n fixupcontext[FIXUP_ARGPTR] = info->loader_start + KERNEL_ARGS_ADDR;\n if (info->ram_size >= (1ULL << 32)) {\n- fprintf(stderr, \"qemu: RAM size must be less than 4GB to boot\"\n- \" Linux kernel using ATAGS (try passing a device tree\"\n- \" using -dtb)\\n\");\n+ error_report(\"qemu: RAM size must be less than 4GB to boot\"\n+ \" Linux kernel using ATAGS (try passing a device tree\"\n+ \" using -dtb)\");\n exit(1);\n }\n }\ndiff --git a/hw/arm/gumstix.c b/hw/arm/gumstix.c\nindex bba9e9f57a..8bd34956b7 100644\n--- a/hw/arm/gumstix.c\n+++ b/hw/arm/gumstix.c\n@@ -35,6 +35,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/arm/pxa.h\"\n #include \"net/net.h\"\n@@ -62,8 +63,8 @@ static void connex_init(MachineState *machine)\n \n dinfo = drive_get(IF_PFLASH, 0, 0);\n if (!dinfo && !qtest_enabled()) {\n- fprintf(stderr, \"A flash image must be given with the \"\n- \"'pflash' parameter\\n\");\n+ error_report(\"A flash image must be given with the \"\n+ \"'pflash' parameter\");\n exit(1);\n }\n \n@@ -76,7 +77,7 @@ static void connex_init(MachineState *machine)\n dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,\n sector_len, connex_rom / sector_len,\n 2, 0, 0, 0, 0, be)) {\n- fprintf(stderr, \"qemu: Error registering flash memory.\\n\");\n+ error_report(\"qemu: Error registering flash memory.\");\n exit(1);\n }\n \n@@ -99,8 +100,8 @@ static void verdex_init(MachineState *machine)\n \n dinfo = drive_get(IF_PFLASH, 0, 0);\n if (!dinfo && !qtest_enabled()) {\n- fprintf(stderr, \"A flash image must be given with the \"\n- \"'pflash' parameter\\n\");\n+ error_report(\"A flash image must be given with the \"\n+ \"'pflash' parameter\");\n exit(1);\n }\n \n@@ -113,7 +114,7 @@ static void verdex_init(MachineState *machine)\n dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,\n sector_len, verdex_rom / sector_len,\n 2, 0, 0, 0, 0, be)) {\n- fprintf(stderr, \"qemu: Error registering flash memory.\\n\");\n+ error_report(\"qemu: Error registering flash memory.\");\n exit(1);\n }\n \ndiff --git a/hw/arm/mainstone.c b/hw/arm/mainstone.c\nindex d07972a966..5c454c7109 100644\n--- a/hw/arm/mainstone.c\n+++ b/hw/arm/mainstone.c\n@@ -12,6 +12,7 @@\n * GNU GPL, version 2 or (at your option) any later version.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"hw/hw.h\"\n #include \"hw/arm/pxa.h\"\n@@ -143,8 +144,8 @@ static void mainstone_common_init(MemoryRegion *address_space_mem,\n if (qtest_enabled()) {\n break;\n }\n- fprintf(stderr, \"Two flash images must be given with the \"\n- \"'pflash' parameter\\n\");\n+ error_report(\"Two flash images must be given with the \"\n+ \"'pflash' parameter\");\n exit(1);\n }\n \n@@ -154,7 +155,7 @@ static void mainstone_common_init(MemoryRegion *address_space_mem,\n blk_by_legacy_dinfo(dinfo),\n sector_len, MAINSTONE_FLASH / sector_len,\n 4, 0, 0, 0, 0, be)) {\n- fprintf(stderr, \"qemu: Error registering flash memory.\\n\");\n+ error_report(\"qemu: Error registering flash memory.\");\n exit(1);\n }\n }\ndiff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c\nindex b648770882..06127a873d 100644\n--- a/hw/arm/musicpal.c\n+++ b/hw/arm/musicpal.c\n@@ -1626,7 +1626,7 @@ static void musicpal_init(MachineState *machine)\n flash_size = blk_getlength(blk);\n if (flash_size != 8*1024*1024 && flash_size != 16*1024*1024 &&\n flash_size != 32*1024*1024) {\n- fprintf(stderr, \"Invalid flash image size\\n\");\n+ error_report(\"Invalid flash image size\");\n exit(1);\n }\n \ndiff --git a/hw/arm/omap1.c b/hw/arm/omap1.c\nindex 1388200191..821ee69441 100644\n--- a/hw/arm/omap1.c\n+++ b/hw/arm/omap1.c\n@@ -18,6 +18,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -2313,7 +2314,7 @@ void omap_uwire_attach(struct omap_uwire_s *s,\n uWireSlave *slave, int chipselect)\n {\n if (chipselect < 0 || chipselect > 3) {\n- fprintf(stderr, \"%s: Bad chipselect %i\\n\", __func__, chipselect);\n+ error_report(\"%s: Bad chipselect %i\", __func__, chipselect);\n exit(-1);\n }\n \n@@ -3989,7 +3990,7 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,\n \n dinfo = drive_get(IF_SD, 0, 0);\n if (!dinfo) {\n- fprintf(stderr, \"qemu: missing SecureDigital device\\n\");\n+ error_report(\"qemu: missing SecureDigital device\");\n exit(1);\n }\n s->mmc = omap_mmc_init(0xfffb7800, system_memory,\ndiff --git a/hw/arm/omap2.c b/hw/arm/omap2.c\nindex b53878b8b9..cbbb3ec05f 100644\n--- a/hw/arm/omap2.c\n+++ b/hw/arm/omap2.c\n@@ -19,6 +19,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -1311,7 +1312,7 @@ static void omap_prcm_apll_update(struct omap_prcm_s *s)\n /* TODO: update clocks */\n \n if (mode[0] == 1 || mode[0] == 2 || mode[1] == 1 || mode[1] == 2)\n- fprintf(stderr, \"%s: bad EN_54M_PLL or bad EN_96M_PLL\\n\",\n+ error_report(\"%s: bad EN_54M_PLL or bad EN_96M_PLL\",\n __func__);\n }\n \n@@ -1331,7 +1332,7 @@ static void omap_prcm_dpll_update(struct omap_prcm_s *s)\n s->dpll_lock = 0;\n switch (mode) {\n case 0:\n- fprintf(stderr, \"%s: bad EN_DPLL\\n\", __func__);\n+ error_report(\"%s: bad EN_DPLL\", __func__);\n break;\n case 1:\t/* Low-power bypass mode (Default) */\n case 2:\t/* Fast-relock bypass mode */\n@@ -1358,7 +1359,7 @@ static void omap_prcm_dpll_update(struct omap_prcm_s *s)\n omap_clk_reparent(core, dpll_x2);\n break;\n case 3:\n- fprintf(stderr, \"%s: bad CORE_CLK_SRC\\n\", __func__);\n+ error_report(\"%s: bad CORE_CLK_SRC\", __func__);\n break;\n }\n }\n@@ -1627,8 +1628,8 @@ static void omap_prcm_write(void *opaque, hwaddr addr,\n \n case 0x500:\t/* CM_CLKEN_PLL */\n if (value & 0xffffff30)\n- fprintf(stderr, \"%s: write 0s in CM_CLKEN_PLL for \"\n- \"future compatibility\\n\", __func__);\n+ error_report(\"%s: write 0s in CM_CLKEN_PLL for \"\n+ \"future compatibility\", __func__);\n if ((s->clken[9] ^ value) & 0xcc) {\n s->clken[9] &= ~0xcc;\n s->clken[9] |= value & 0xcc;\n@@ -1646,8 +1647,8 @@ static void omap_prcm_write(void *opaque, hwaddr addr,\n break;\n case 0x540:\t/* CM_CLKSEL1_PLL */\n if (value & 0xfc4000d7)\n- fprintf(stderr, \"%s: write 0s in CM_CLKSEL1_PLL for \"\n- \"future compatibility\\n\", __func__);\n+ error_report(\"%s: write 0s in CM_CLKSEL1_PLL for \"\n+ \"future compatibility\", __func__);\n if ((s->clksel[5] ^ value) & 0x003fff00) {\n s->clksel[5] = value & 0x03bfff28;\n omap_prcm_dpll_update(s);\n@@ -1658,8 +1659,8 @@ static void omap_prcm_write(void *opaque, hwaddr addr,\n break;\n case 0x544:\t/* CM_CLKSEL2_PLL */\n if (value & ~3)\n- fprintf(stderr, \"%s: write 0s in CM_CLKSEL2_PLL[31:2] for \"\n- \"future compatibility\\n\", __func__);\n+ error_report(\"%s: write 0s in CM_CLKSEL2_PLL[31:2] for \"\n+ \"future compatibility\", __func__);\n if (s->clksel[6] != (value & 3)) {\n s->clksel[6] = value & 3;\n omap_prcm_dpll_update(s);\n@@ -2486,7 +2487,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegion *sysmem,\n \n dinfo = drive_get(IF_SD, 0, 0);\n if (!dinfo) {\n- fprintf(stderr, \"qemu: missing SecureDigital device\\n\");\n+ error_report(\"qemu: missing SecureDigital device\");\n exit(1);\n }\n s->mmc = omap2_mmc_init(omap_l4tao(s->l4, 9),\ndiff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c\nindex 9a14270795..6eb56ae744 100644\n--- a/hw/arm/omap_sx1.c\n+++ b/hw/arm/omap_sx1.c\n@@ -158,7 +158,7 @@ static void sx1_init(MachineState *machine, const int version)\n blk_by_legacy_dinfo(dinfo),\n sector_size, flash_size / sector_size,\n 4, 0, 0, 0, 0, be)) {\n- fprintf(stderr, \"qemu: Error registering flash memory %d.\\n\",\n+ error_report(\"qemu: Error registering flash memory %d.\",\n fl_idx);\n }\n fl_idx++;\n@@ -182,7 +182,7 @@ static void sx1_init(MachineState *machine, const int version)\n blk_by_legacy_dinfo(dinfo),\n sector_size, flash1_size / sector_size,\n 4, 0, 0, 0, 0, be)) {\n- fprintf(stderr, \"qemu: Error registering flash memory %d.\\n\",\n+ error_report(\"qemu: Error registering flash memory %d.\",\n fl_idx);\n }\n fl_idx++;\n@@ -194,7 +194,7 @@ static void sx1_init(MachineState *machine, const int version)\n }\n \n if (!machine->kernel_filename && !fl_idx && !qtest_enabled()) {\n- fprintf(stderr, \"Kernel or Flash image must be specified\\n\");\n+ error_report(\"Kernel or Flash image must be specified\");\n exit(1);\n }\n \ndiff --git a/hw/arm/palm.c b/hw/arm/palm.c\nindex 285f43709d..7f3637041a 100644\n--- a/hw/arm/palm.c\n+++ b/hw/arm/palm.c\n@@ -233,8 +233,8 @@ static void palmte_init(MachineState *machine)\n if (nb_option_roms) {\n rom_size = get_image_size(option_rom[0].name);\n if (rom_size > flash_size) {\n- fprintf(stderr, \"%s: ROM image too big (%x > %x)\\n\",\n- __func__, rom_size, flash_size);\n+ error_report(\"%s: ROM image too big (%x > %x)\",\n+ __func__, rom_size, flash_size);\n rom_size = 0;\n }\n if (rom_size > 0) {\n@@ -243,13 +243,13 @@ static void palmte_init(MachineState *machine)\n rom_loaded = 1;\n }\n if (rom_size < 0) {\n- fprintf(stderr, \"%s: error loading '%s'\\n\",\n- __func__, option_rom[0].name);\n+ error_report(\"%s: error loading '%s'\",\n+ __func__, option_rom[0].name);\n }\n }\n \n if (!rom_loaded && !kernel_filename && !qtest_enabled()) {\n- fprintf(stderr, \"Kernel or ROM image must be specified\\n\");\n+ fprintf(stderr, \"Kernel or ROM image must be specified\");\n exit(1);\n }\n \ndiff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c\nindex 078006f390..c46b65d5d2 100644\n--- a/hw/arm/pxa2xx.c\n+++ b/hw/arm/pxa2xx.c\n@@ -8,6 +8,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -2060,7 +2061,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space,\n s = g_new0(PXA2xxState, 1);\n \n if (strncmp(cpu_type, \"pxa27\", 5)) {\n- fprintf(stderr, \"Machine requires a PXA27x processor.\\n\");\n+ error_report(\"Machine requires a PXA27x processor.\");\n exit(1);\n }\n \n@@ -2093,7 +2094,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space,\n \n dinfo = drive_get(IF_SD, 0, 0);\n if (!dinfo) {\n- fprintf(stderr, \"qemu: missing SecureDigital device\\n\");\n+ error_report(\"qemu: missing SecureDigital device\");\n exit(1);\n }\n s->mmc = pxa2xx_mmci_init(address_space, 0x41100000,\n@@ -2218,7 +2219,7 @@ PXA2xxState *pxa255_init(MemoryRegion *address_space, unsigned int sdram_size)\n \n dinfo = drive_get(IF_SD, 0, 0);\n if (!dinfo) {\n- fprintf(stderr, \"qemu: missing SecureDigital device\\n\");\n+ error_report(\"qemu: missing SecureDigital device\");\n exit(1);\n }\n s->mmc = pxa2xx_mmci_init(address_space, 0x41100000,\ndiff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c\nindex de7c0fc4a6..f6f295b363 100644\n--- a/hw/arm/stellaris.c\n+++ b/hw/arm/stellaris.c\n@@ -8,6 +8,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"hw/sysbus.h\"\n #include \"hw/ssi/ssi.h\"\n@@ -559,7 +560,7 @@ static void ssys_write(void *opaque, hwaddr offset,\n case 0x040: /* SRCR0 */\n case 0x044: /* SRCR1 */\n case 0x048: /* SRCR2 */\n- fprintf(stderr, \"Peripheral reset not implemented\\n\");\n+ error_report(\"Peripheral reset not implemented\");\n break;\n case 0x054: /* IMC */\n s->int_mask = value & 0x7f;\ndiff --git a/hw/arm/tosa.c b/hw/arm/tosa.c\nindex a55b1a369c..a069c95f1c 100644\n--- a/hw/arm/tosa.c\n+++ b/hw/arm/tosa.c\n@@ -12,6 +12,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"hw/hw.h\"\n #include \"hw/arm/pxa.h\"\n@@ -70,19 +71,19 @@ static void tosa_out_switch(void *opaque, int line, int level)\n {\n switch (line) {\n case 0:\n- fprintf(stderr, \"blue LED %s.\\n\", level ? \"on\" : \"off\");\n+ error_report(\"blue LED %s.\", level ? \"on\" : \"off\");\n break;\n case 1:\n- fprintf(stderr, \"green LED %s.\\n\", level ? \"on\" : \"off\");\n+ error_report(\"green LED %s.\", level ? \"on\" : \"off\");\n break;\n case 2:\n- fprintf(stderr, \"amber LED %s.\\n\", level ? \"on\" : \"off\");\n+ error_report(\"amber LED %s.\", level ? \"on\" : \"off\");\n break;\n case 3:\n- fprintf(stderr, \"wlan LED %s.\\n\", level ? \"on\" : \"off\");\n+ fprintf(stderr, \"wlan LED %s.\", level ? \"on\" : \"off\");\n break;\n default:\n- fprintf(stderr, \"Uhandled out event: %d = %d\\n\", line, level);\n+ fprintf(stderr, \"Uhandled out event: %d = %d\", line, level);\n break;\n }\n }\n@@ -133,7 +134,7 @@ static void tosa_gpio_setup(PXA2xxState *cpu,\n \n static uint32_t tosa_ssp_tansfer(SSISlave *dev, uint32_t value)\n {\n- fprintf(stderr, \"TG: %d %02x\\n\", value >> 5, value & 0x1f);\n+ error_report(\"TG: %d %02x\", value >> 5, value & 0x1f);\n return 0;\n }\n \n@@ -159,13 +160,13 @@ static int tosa_dac_send(I2CSlave *i2c, uint8_t data)\n s->buf[s->len] = data;\n if (s->len ++ > 2) {\n #ifdef VERBOSE\n- fprintf(stderr, \"%s: message too long (%i bytes)\\n\", __func__, s->len);\n+ error_report(\"%s: message too long (%i bytes)\", __func__, s->len);\n #endif\n return 1;\n }\n \n if (s->len == 2) {\n- fprintf(stderr, \"dac: channel %d value 0x%02x\\n\",\n+ error_report(\"dac: channel %d value 0x%02x\",\n s->buf[0], s->buf[1]);\n }\n \ndiff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c\nindex 418792cd02..f0ae069172 100644\n--- a/hw/arm/versatilepb.c\n+++ b/hw/arm/versatilepb.c\n@@ -364,7 +364,7 @@ static void versatile_init(MachineState *machine, int board_id)\n VERSATILE_FLASH_SECT_SIZE,\n VERSATILE_FLASH_SIZE / VERSATILE_FLASH_SECT_SIZE,\n 4, 0x0089, 0x0018, 0x0000, 0x0, 0)) {\n- fprintf(stderr, \"qemu: Error registering flash memory.\\n\");\n+ error_report(\"qemu: Error registering flash memory.\");\n }\n \n versatile_binfo.ram_size = machine->ram_size;\ndiff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c\nindex efb5a29475..508629dfe9 100644\n--- a/hw/arm/vexpress.c\n+++ b/hw/arm/vexpress.c\n@@ -266,7 +266,7 @@ static void a9_daughterboard_init(const VexpressMachineState *vms,\n \n if (ram_size > 0x40000000) {\n /* 1GB is the maximum the address space permits */\n- fprintf(stderr, \"vexpress-a9: cannot model more than 1GB RAM\\n\");\n+ error_report(\"vexpress-a9: cannot model more than 1GB RAM\");\n exit(1);\n }\n \n@@ -355,7 +355,7 @@ static void a15_daughterboard_init(const VexpressMachineState *vms,\n */\n uint64_t rsz = ram_size;\n if (rsz > (30ULL * 1024 * 1024 * 1024)) {\n- fprintf(stderr, \"vexpress-a15: cannot model more than 30GB RAM\\n\");\n+ error_report(\"vexpress-a15: cannot model more than 30GB RAM\");\n exit(1);\n }\n }\n@@ -640,7 +640,7 @@ static void vexpress_common_init(MachineState *machine)\n pflash0 = ve_pflash_cfi01_register(map[VE_NORFLASH0], \"vexpress.flash0\",\n dinfo);\n if (!pflash0) {\n- fprintf(stderr, \"vexpress: error registering flash 0.\\n\");\n+ error_report(\"vexpress: error registering flash 0.\");\n exit(1);\n }\n \n@@ -655,7 +655,7 @@ static void vexpress_common_init(MachineState *machine)\n dinfo = drive_get_next(IF_PFLASH);\n if (!ve_pflash_cfi01_register(map[VE_NORFLASH1], \"vexpress.flash1\",\n dinfo)) {\n- fprintf(stderr, \"vexpress: error registering flash 1.\\n\");\n+ error_report(\"vexpress: error registering flash 1.\");\n exit(1);\n }\n \ndiff --git a/hw/arm/z2.c b/hw/arm/z2.c\nindex 60561c7b7c..5048439799 100644\n--- a/hw/arm/z2.c\n+++ b/hw/arm/z2.c\n@@ -319,8 +319,8 @@ static void z2_init(MachineState *machine)\n #endif\n dinfo = drive_get(IF_PFLASH, 0, 0);\n if (!dinfo && !qtest_enabled()) {\n- fprintf(stderr, \"Flash image must be given with the \"\n- \"'pflash' parameter\\n\");\n+ error_report(\"Flash image must be given with the \"\n+ \"'pflash' parameter\");\n exit(1);\n }\n \n@@ -329,7 +329,7 @@ static void z2_init(MachineState *machine)\n dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,\n sector_len, Z2_FLASH_SIZE / sector_len,\n 4, 0, 0, 0, 0, be)) {\n- fprintf(stderr, \"qemu: Error registering flash memory.\\n\");\n+ error_report(\"qemu: Error registering flash memory.\");\n exit(1);\n }\n \ndiff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c\nindex 5556f0e64e..69dfd49191 100644\n--- a/hw/block/dataplane/virtio-blk.c\n+++ b/hw/block/dataplane/virtio-blk.c\n@@ -178,8 +178,8 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)\n /* Set up guest notifier (irq) */\n r = k->set_guest_notifiers(qbus->parent, nvqs, true);\n if (r != 0) {\n- fprintf(stderr, \"virtio-blk failed to set guest notifier (%d), \"\n- \"ensure -enable-kvm is set\\n\", r);\n+ error_report(\"virtio-blk failed to set guest notifier (%d), \"\n+ \"ensure -enable-kvm is set\", r);\n goto fail_guest_notifiers;\n }\n \n@@ -187,7 +187,7 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)\n for (i = 0; i < nvqs; i++) {\n r = virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, true);\n if (r != 0) {\n- fprintf(stderr, \"virtio-blk failed to set host notifier (%d)\\n\", r);\n+ error_report(\"virtio-blk failed to set host notifier (%d)\", r);\n while (i--) {\n virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);\n }\ndiff --git a/hw/block/onenand.c b/hw/block/onenand.c\nindex 224daf7ccf..8bcd67688b 100644\n--- a/hw/block/onenand.c\n+++ b/hw/block/onenand.c\n@@ -598,7 +598,7 @@ static void onenand_command(OneNANDState *s)\n default:\n s->status |= ONEN_ERR_CMD;\n s->intstatus |= ONEN_INT;\n- fprintf(stderr, \"%s: unknown OneNAND command %x\\n\",\n+ error_report(\"%s: unknown OneNAND command %x\",\n __func__, s->command);\n }\n \n@@ -665,7 +665,7 @@ static uint64_t onenand_read(void *opaque, hwaddr addr,\n return 0x0000;\n }\n \n- fprintf(stderr, \"%s: unknown OneNAND register %x\\n\",\n+ error_report(\"%s: unknown OneNAND register %x\",\n __func__, offset);\n return 0;\n }\n@@ -710,7 +710,7 @@ static void onenand_write(void *opaque, hwaddr addr,\n break;\n \n default:\n- fprintf(stderr, \"%s: unknown OneNAND boot command %\"PRIx64\"\\n\",\n+ error_report(\"%s: unknown OneNAND boot command %\"PRIx64\"\",\n __func__, value);\n }\n break;\n@@ -761,7 +761,7 @@ static void onenand_write(void *opaque, hwaddr addr,\n break;\n \n default:\n- fprintf(stderr, \"%s: unknown OneNAND register %x\\n\",\n+ error_report(\"%s: unknown OneNAND register %x\",\n __func__, offset);\n }\n }\ndiff --git a/hw/block/tc58128.c b/hw/block/tc58128.c\nindex 1d9f7ee000..d274c9aafe 100644\n--- a/hw/block/tc58128.c\n+++ b/hw/block/tc58128.c\n@@ -50,8 +50,8 @@ static void init_dev(tc58128_dev * dev, const char *filename)\n \t dev->flash_contents[1] = (blocks >> 8) & 0xff;\n \t dev->flash_contents[2] = (blocks >> 16) & 0xff;\n \t dev->flash_contents[3] = (blocks >> 24) & 0xff;\n-\t fprintf(stderr, \"loaded %d bytes for %s into flash\\n\", ret,\n-\t\t filename);\n+ error_report(\"loaded %d bytes for %s into flash\", ret,\n+ filename);\n \t}\n }\n }\n@@ -60,26 +60,26 @@ static void handle_command(tc58128_dev * dev, uint8_t command)\n {\n switch (command) {\n case 0xff:\n-\tfprintf(stderr, \"reset flash device\\n\");\n-\tdev->state = WAIT;\n-\tbreak;\n+ error_report(\"reset flash device\");\n+ dev->state = WAIT;\n+ break;\n case 0x00:\n-\tfprintf(stderr, \"read mode 1\\n\");\n-\tdev->state = READ1;\n-\tdev->address_cycle = 0;\n-\tbreak;\n+ error_report(\"read mode 1\");\n+ dev->state = READ1;\n+ dev->address_cycle = 0;\n+ break;\n case 0x01:\n-\tfprintf(stderr, \"read mode 2\\n\");\n-\tdev->state = READ2;\n-\tdev->address_cycle = 0;\n-\tbreak;\n+ error_report(\"read mode 2\");\n+ dev->state = READ2;\n+ dev->address_cycle = 0;\n+ break;\n case 0x50:\n-\tfprintf(stderr, \"read mode 3\\n\");\n-\tdev->state = READ3;\n-\tdev->address_cycle = 0;\n-\tbreak;\n+ error_report(\"read mode 3\");\n+ dev->state = READ3;\n+ dev->address_cycle = 0;\n+ break;\n default:\n-\tfprintf(stderr, \"unknown flash command 0x%02x\\n\", command);\n+ error_report(\"unknown flash command 0x%02x\", command);\n abort();\n }\n }\n@@ -103,8 +103,8 @@ static void handle_address(tc58128_dev * dev, uint8_t data)\n \t break;\n \tcase 2:\n \t dev->address += data * 528;\n-\t fprintf(stderr, \"address pointer in flash: 0x%08x\\n\",\n-\t\t dev->address);\n+ error_report(\"address pointer in flash: 0x%08x\",\n+ dev->address);\n \t break;\n \tdefault:\n \t /* Invalid data */\n@@ -119,10 +119,6 @@ static void handle_address(tc58128_dev * dev, uint8_t data)\n \n static uint8_t handle_read(tc58128_dev * dev)\n {\n-#if 0\n- if (dev->address % 0x100000 == 0)\n-\tfprintf(stderr, \"reading flash at address 0x%08x\\n\", dev->address);\n-#endif\n return dev->flash_contents[dev->address++];\n }\n \ndiff --git a/hw/bt/core.c b/hw/bt/core.c\nindex c1806b71a3..a6e9bf2a3e 100644\n--- a/hw/bt/core.c\n+++ b/hw/bt/core.c\n@@ -18,6 +18,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"sysemu/bt.h\"\n #include \"hw/bt.h\"\n@@ -31,24 +32,24 @@ static void bt_dummy_lmp_mode_change(struct bt_link_s *link)\n static void bt_dummy_lmp_connection_complete(struct bt_link_s *link)\n {\n if (link->slave->reject_reason)\n- fprintf(stderr, \"%s: stray LMP_not_accepted received, fixme\\n\",\n- __func__);\n+ error_report(\"%s: stray LMP_not_accepted received, fixme\",\n+ __func__);\n else\n- fprintf(stderr, \"%s: stray LMP_accepted received, fixme\\n\",\n- __func__);\n+ error_report(\"%s: stray LMP_accepted received, fixme\",\n+ __func__);\n exit(-1);\n }\n \n static void bt_dummy_lmp_disconnect_master(struct bt_link_s *link)\n {\n- fprintf(stderr, \"%s: stray LMP_detach received, fixme\\n\", __func__);\n+ fprintf(stderr, \"%s: stray LMP_detach received, fixme\", __func__);\n exit(-1);\n }\n \n static void bt_dummy_lmp_acl_resp(struct bt_link_s *link,\n const uint8_t *data, int start, int len)\n {\n- fprintf(stderr, \"%s: stray ACL response PDU, fixme\\n\", __func__);\n+ error_report(\"%s: stray ACL response PDU, fixme\", __func__);\n exit(-1);\n }\n \n@@ -113,7 +114,7 @@ void bt_device_done(struct bt_device_s *dev)\n while (*p && *p != dev)\n p = &(*p)->next;\n if (*p != dev) {\n- fprintf(stderr, \"%s: bad bt device \\\"%s\\\"\\n\", __func__,\n+ error_report(\"%s: bad bt device \\\"%s\\\"\", __func__,\n dev->lmp_name ?: \"(null)\");\n exit(-1);\n }\ndiff --git a/hw/bt/hci-csr.c b/hw/bt/hci-csr.c\nindex ac067b81f6..6a171a54b7 100644\n--- a/hw/bt/hci-csr.c\n+++ b/hw/bt/hci-csr.c\n@@ -19,6 +19,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"chardev/char-serial.h\"\n #include \"qemu/timer.h\"\n@@ -111,14 +112,14 @@ static uint8_t *csrhci_out_packet(struct csrhci_s *s, int len)\n \n if (off < FIFO_LEN) {\n if (off + len > FIFO_LEN && (s->out_size = off + len) > FIFO_LEN * 2) {\n- fprintf(stderr, \"%s: can't alloc %i bytes\\n\", __func__, len);\n+ error_report(\"%s: can't alloc %i bytes\", __func__, len);\n exit(-1);\n }\n return s->outfifo + off;\n }\n \n if (s->out_len > s->out_size) {\n- fprintf(stderr, \"%s: can't alloc %i bytes\\n\", __func__, len);\n+ error_report(\"%s: can't alloc %i bytes\", __func__, len);\n exit(-1);\n }\n \n@@ -168,8 +169,8 @@ static void csrhci_in_packet_vendor(struct csrhci_s *s, int ocf,\n s->bd_addr.b[5] = data[offset + 2];\n \n s->hci->bdaddr_set(s->hci, s->bd_addr.b);\n- fprintf(stderr, \"%s: bd_address loaded from firmware: \"\n- \"%02x:%02x:%02x:%02x:%02x:%02x\\n\", __func__,\n+ error_report(\"%s: bd_address loaded from firmware: \"\n+ \"%02x:%02x:%02x:%02x:%02x:%02x\", __func__,\n s->bd_addr.b[0], s->bd_addr.b[1], s->bd_addr.b[2],\n s->bd_addr.b[3], s->bd_addr.b[4], s->bd_addr.b[5]);\n }\n@@ -181,7 +182,7 @@ static void csrhci_in_packet_vendor(struct csrhci_s *s, int ocf,\n break;\n \n default:\n- fprintf(stderr, \"%s: got a bad CMD packet\\n\", __func__);\n+ error_report(\"%s: got a bad CMD packet\", __func__);\n return;\n }\n \n@@ -226,7 +227,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_t *pkt)\n case H4_NEG_PKT:\n if (s->in_hdr != sizeof(csrhci_neg_packet) ||\n memcmp(pkt - 1, csrhci_neg_packet, s->in_hdr)) {\n- fprintf(stderr, \"%s: got a bad NEG packet\\n\", __func__);\n+ error_report(\"%s: got a bad NEG packet\", __func__);\n return;\n }\n pkt += 2;\n@@ -241,7 +242,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_t *pkt)\n \n case H4_ALIVE_PKT:\n if (s->in_hdr != 4 || pkt[1] != 0x55 || pkt[2] != 0x00) {\n- fprintf(stderr, \"%s: got a bad ALIVE packet\\n\", __func__);\n+ error_report(\"%s: got a bad ALIVE packet\", __func__);\n return;\n }\n \n@@ -254,7 +255,7 @@ static void csrhci_in_packet(struct csrhci_s *s, uint8_t *pkt)\n default:\n bad_pkt:\n /* TODO: error out */\n- fprintf(stderr, \"%s: got a bad packet\\n\", __func__);\n+ error_report(\"%s: got a bad packet\", __func__);\n break;\n }\n \ndiff --git a/hw/bt/hci.c b/hw/bt/hci.c\nindex df05f07887..ac9394daf0 100644\n--- a/hw/bt/hci.c\n+++ b/hw/bt/hci.c\n@@ -19,6 +19,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"qemu/timer.h\"\n@@ -457,7 +458,7 @@ static inline uint8_t *bt_hci_event_start(struct bt_hci_s *hci,\n int mask_byte;\n \n if (len > 255) {\n- fprintf(stderr, \"%s: HCI event params too long (%ib)\\n\",\n+ error_report(\"%s: HCI event params too long (%ib)\",\n __func__, len);\n exit(-1);\n }\n@@ -589,7 +590,7 @@ static void bt_hci_inquiry_result(struct bt_hci_s *hci,\n bt_hci_inquiry_result_with_rssi(hci, slave);\n return;\n default:\n- fprintf(stderr, \"%s: bad inquiry mode %02x\\n\", __func__,\n+ error_report(\"%s: bad inquiry mode %02x\", __func__,\n hci->lm.inquiry_mode);\n exit(-1);\n }\n@@ -1971,7 +1972,7 @@ static void bt_submit_hci(struct HCIInfo *info,\n break;\n \n short_hci:\n- fprintf(stderr, \"%s: HCI packet too short (%iB)\\n\",\n+ error_report(\"%s: HCI packet too short (%iB)\",\n __func__, length);\n bt_hci_event_status(hci, HCI_INVALID_PARAMETERS);\n break;\n@@ -1991,7 +1992,7 @@ static inline void bt_hci_lmp_acl_data(struct bt_hci_s *hci, uint16_t handle,\n /* TODO: avoid memcpy'ing */\n \n if (len + HCI_ACL_HDR_SIZE > sizeof(hci->acl_buf)) {\n- fprintf(stderr, \"%s: can't take ACL packets %i bytes long\\n\",\n+ error_report(\"%s: can't take ACL packets %i bytes long\",\n __func__, len);\n return;\n }\n@@ -2029,7 +2030,7 @@ static void bt_submit_acl(struct HCIInfo *info,\n struct bt_link_s *link;\n \n if (length < HCI_ACL_HDR_SIZE) {\n- fprintf(stderr, \"%s: ACL packet too short (%iB)\\n\",\n+ error_report(\"%s: ACL packet too short (%iB)\",\n __func__, length);\n return;\n }\n@@ -2041,15 +2042,15 @@ static void bt_submit_acl(struct HCIInfo *info,\n length -= HCI_ACL_HDR_SIZE;\n \n if (bt_hci_handle_bad(hci, handle)) {\n- fprintf(stderr, \"%s: invalid ACL handle %03x\\n\",\n- __func__, handle);\n+ error_report(\"%s: invalid ACL handle %03x\",\n+ __func__, handle);\n /* TODO: signal an error */\n return;\n }\n handle &= ~HCI_HANDLE_OFFSET;\n \n if (datalen > length) {\n- fprintf(stderr, \"%s: ACL packet too short (%iB < %iB)\\n\",\n+ fprintf(stderr, \"%s: ACL packet too short (%iB < %iB)\",\n __func__, length, datalen);\n return;\n }\n@@ -2060,7 +2061,7 @@ static void bt_submit_acl(struct HCIInfo *info,\n if (!hci->asb_handle)\n hci->asb_handle = handle;\n else if (handle != hci->asb_handle) {\n- fprintf(stderr, \"%s: Bad handle %03x in Active Slave Broadcast\\n\",\n+ error_report(\"%s: Bad handle %03x in Active Slave Broadcast\",\n __func__, handle);\n /* TODO: signal an error */\n return;\n@@ -2073,7 +2074,7 @@ static void bt_submit_acl(struct HCIInfo *info,\n if (!hci->psb_handle)\n hci->psb_handle = handle;\n else if (handle != hci->psb_handle) {\n- fprintf(stderr, \"%s: Bad handle %03x in Parked Slave Broadcast\\n\",\n+ error_report(\"%s: Bad handle %03x in Parked Slave Broadcast\",\n __func__, handle);\n /* TODO: signal an error */\n return;\n@@ -2105,14 +2106,13 @@ static void bt_submit_sco(struct HCIInfo *info,\n length -= 3;\n \n if (bt_hci_handle_bad(hci, handle)) {\n- fprintf(stderr, \"%s: invalid SCO handle %03x\\n\",\n- __func__, handle);\n+ error_report(\"%s: invalid SCO handle %03x\", __func__, handle);\n return;\n }\n \n if (datalen > length) {\n- fprintf(stderr, \"%s: SCO packet too short (%iB < %iB)\\n\",\n- __func__, length, datalen);\n+ error_report(\"%s: SCO packet too short (%iB < %iB)\",\n+ __func__, length, datalen);\n return;\n }\n \n@@ -2223,7 +2223,7 @@ struct HCIInfo *hci_init(const char *str)\n return bt_new_hci(vlan);\n }\n \n- fprintf(stderr, \"qemu: Unknown bluetooth HCI `%s'.\\n\", str);\n+ error_report(\"qemu: Unknown bluetooth HCI `%s'.\", str);\n \n return 0;\n }\ndiff --git a/hw/bt/hid.c b/hw/bt/hid.c\nindex 09d17322e4..056291f9b5 100644\n--- a/hw/bt/hid.c\n+++ b/hw/bt/hid.c\n@@ -419,7 +419,7 @@ static void bt_hid_interrupt_sdu(void *opaque, const uint8_t *data, int len)\n \n return;\n bad:\n- fprintf(stderr, \"%s: bad transaction on Interrupt channel.\\n\",\n+ error_report(\"%s: bad transaction on Interrupt channel.\",\n __func__);\n }\n \ndiff --git a/hw/bt/l2cap.c b/hw/bt/l2cap.c\nindex 3e53dd082d..9cf27f0df6 100644\n--- a/hw/bt/l2cap.c\n+++ b/hw/bt/l2cap.c\n@@ -18,6 +18,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"qemu/timer.h\"\n #include \"qemu/bswap.h\"\n@@ -467,8 +468,8 @@ static void l2cap_channel_close(struct l2cap_instance_s *l2cap,\n \n if (likely(ch)) {\n if (ch->remote_cid != source_cid) {\n- fprintf(stderr, \"%s: Ignoring a Disconnection Request with the \"\n- \"invalid SCID %04x.\\n\", __func__, source_cid);\n+ error_report(\"%s: Ignoring a Disconnection Request with the \"\n+ \"invalid SCID %04x.\", __func__, source_cid);\n return;\n }\n \n@@ -790,7 +791,7 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id,\n #if 0\n /* TODO: do the IDs really have to be in sequence? */\n if (!id || (id != l2cap->last_id && id != l2cap->next_id)) {\n- fprintf(stderr, \"%s: out of sequence command packet ignored.\\n\",\n+ error_report(\"%s: out of sequence command packet ignored.\",\n __func__);\n return;\n }\n@@ -813,9 +814,9 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id,\n }\n \n /* We never issue commands other than Command Reject currently. */\n- fprintf(stderr, \"%s: stray Command Reject (%02x, %04x) \"\n- \"packet, ignoring.\\n\", __func__, id,\n- le16_to_cpu(((l2cap_cmd_rej *) params)->reason));\n+ error_report(\"%s: stray Command Reject (%02x, %04x) \"\n+ \"packet, ignoring.\", __func__, id,\n+ le16_to_cpu(((l2cap_cmd_rej *) params)->reason));\n break;\n \n case L2CAP_CONN_REQ:\n@@ -836,8 +837,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id,\n }\n \n /* We never issue Connection Requests currently. TODO */\n- fprintf(stderr, \"%s: unexpected Connection Response (%02x) \"\n- \"packet, ignoring.\\n\", __func__, id);\n+ error_report(\"%s: unexpected Connection Response (%02x) \"\n+ \"packet, ignoring.\", __func__, id);\n break;\n \n case L2CAP_CONF_REQ:\n@@ -865,8 +866,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id,\n le16_to_cpu(((l2cap_conf_rsp *) params)->scid),\n ((l2cap_conf_rsp *) params)->data,\n len - L2CAP_CONF_RSP_SIZE(0)))\n- fprintf(stderr, \"%s: unexpected Configure Response (%02x) \"\n- \"packet, ignoring.\\n\", __func__, id);\n+ error_report(\"%s: unexpected Configure Response (%02x) \"\n+ \"packet, ignoring.\", __func__, id);\n break;\n \n case L2CAP_DISCONN_REQ:\n@@ -887,8 +888,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id,\n }\n \n /* We never issue Disconnection Requests currently. TODO */\n- fprintf(stderr, \"%s: unexpected Disconnection Response (%02x) \"\n- \"packet, ignoring.\\n\", __func__, id);\n+ error_report(\"%s: unexpected Disconnection Response (%02x) \"\n+ \"packet, ignoring.\", __func__, id);\n break;\n \n case L2CAP_ECHO_REQ:\n@@ -897,8 +898,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id,\n \n case L2CAP_ECHO_RSP:\n /* We never issue Echo Requests currently. TODO */\n- fprintf(stderr, \"%s: unexpected Echo Response (%02x) \"\n- \"packet, ignoring.\\n\", __func__, id);\n+ error_report(\"%s: unexpected Echo Response (%02x) \"\n+ \"packet, ignoring.\", __func__, id);\n break;\n \n case L2CAP_INFO_REQ:\n@@ -917,8 +918,8 @@ static void l2cap_command(struct l2cap_instance_s *l2cap, int code, int id,\n }\n \n /* We never issue Information Requests currently. TODO */\n- fprintf(stderr, \"%s: unexpected Information Response (%02x) \"\n- \"packet, ignoring.\\n\", __func__, id);\n+ error_report(\"%s: unexpected Information Response (%02x) \"\n+ \"packet, ignoring.\", __func__, id);\n break;\n \n default:\n@@ -1066,8 +1067,8 @@ static void l2cap_frame_in(struct l2cap_instance_s *l2cap,\n uint16_t len = le16_to_cpu(frame->len);\n \n if (unlikely(cid >= L2CAP_CID_MAX || !l2cap->cid[cid])) {\n- fprintf(stderr, \"%s: frame addressed to a non-existent L2CAP \"\n- \"channel %04x received.\\n\", __func__, cid);\n+ error_report(\"%s: frame addressed to a non-existent L2CAP \"\n+ \"channel %04x received.\", __func__, cid);\n return;\n }\n \n@@ -1128,9 +1129,9 @@ static uint8_t *l2cap_bframe_out(struct bt_l2cap_conn_params_s *parm, int len)\n struct l2cap_chan_s *chan = (struct l2cap_chan_s *) parm;\n \n if (len > chan->params.remote_mtu) {\n- fprintf(stderr, \"%s: B-Frame for CID %04x longer than %i octets.\\n\",\n- __func__,\n- chan->remote_cid, chan->params.remote_mtu);\n+ error_report(\"%s: B-Frame for CID %04x longer than %i octets.\",\n+ __func__,\n+ chan->remote_cid, chan->params.remote_mtu);\n exit(-1);\n }\n \n@@ -1353,8 +1354,8 @@ void bt_l2cap_psm_register(struct bt_l2cap_device_s *dev, int psm, int min_mtu,\n struct bt_l2cap_psm_s *new_psm = l2cap_psm(dev, psm);\n \n if (new_psm) {\n- fprintf(stderr, \"%s: PSM %04x already registered for device `%s'.\\n\",\n- __func__, psm, dev->device.lmp_name);\n+ error_report(\"%s: PSM %04x already registered for device `%s'.\",\n+ __func__, psm, dev->device.lmp_name);\n exit(-1);\n }\n \ndiff --git a/hw/bt/sdp.c b/hw/bt/sdp.c\nindex 7c0d38b504..f4aba9d74f 100644\n--- a/hw/bt/sdp.c\n+++ b/hw/bt/sdp.c\n@@ -18,6 +18,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"qemu/host-utils.h\"\n #include \"hw/bt.h\"\n@@ -506,7 +507,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uint8_t *data, int len)\n int rsp_len = 0;\n \n if (len < 5) {\n- fprintf(stderr, \"%s: short SDP PDU (%iB).\\n\", __func__, len);\n+ error_report(\"%s: short SDP PDU (%iB).\", __func__, len);\n return;\n }\n \n@@ -517,7 +518,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uint8_t *data, int len)\n len -= 5;\n \n if (len != plen) {\n- fprintf(stderr, \"%s: wrong SDP PDU length (%iB != %iB).\\n\",\n+ error_report(\"%s: wrong SDP PDU length (%iB != %iB).\",\n __func__, plen, len);\n err = SDP_INVALID_PDU_SIZE;\n goto respond;\n@@ -544,7 +545,7 @@ static void bt_l2cap_sdp_sdu_in(void *opaque, const uint8_t *data, int len)\n case SDP_SVC_SEARCH_RSP:\n case SDP_SVC_SEARCH_ATTR_RSP:\n default:\n- fprintf(stderr, \"%s: unexpected SDP PDU ID %02x.\\n\",\n+ error_report(\"%s: unexpected SDP PDU ID %02x.\",\n __func__, pdu_id);\n err = SDP_INVALID_SYNTAX;\n break;\ndiff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c\nindex 3957e78abf..a388f01a23 100644\n--- a/hw/char/exynos4210_uart.c\n+++ b/hw/char/exynos4210_uart.c\n@@ -296,7 +296,7 @@ static void exynos4210_uart_update_irq(Exynos4210UartState *s)\n qemu_irq_raise(s->irq);\n \n #if DEBUG_IRQ\n- fprintf(stderr, \"UART%d: IRQ has been raised: %08x\\n\",\n+ error_report(\"UART%d: IRQ has been raised: %08x\",\n s->channel, s->reg[I_(UINTP)]);\n #endif\n \n@@ -388,7 +388,7 @@ static void exynos4210_uart_write(void *opaque, hwaddr offset,\n * qemu_chr_fe_write and background I/O callbacks */\n qemu_chr_fe_write_all(&s->chr, &ch, 1);\n #if DEBUG_Tx_DATA\n- fprintf(stderr, \"%c\", ch);\n+ error_report(\"%c\", ch);\n #endif\n s->reg[I_(UTRSTAT)] |= UTRSTAT_TRANSMITTER_EMPTY |\n UTRSTAT_Tx_BUFFER_EMPTY;\n@@ -400,7 +400,7 @@ static void exynos4210_uart_write(void *opaque, hwaddr offset,\n case UINTP:\n s->reg[I_(UINTP)] &= ~val;\n s->reg[I_(UINTSP)] &= ~val;\n- PRINT_DEBUG(\"UART%d: UINTP [%04x] have been cleared: %08x\\n\",\n+ PRINT_DEBUG(\"UART%d: UINTP [%04x] have been cleared: %08x\",\n s->channel, offset, s->reg[I_(UINTP)]);\n exynos4210_uart_update_irq(s);\n break;\ndiff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c\nindex 56fa402b58..14cb051be9 100644\n--- a/hw/char/mcf_uart.c\n+++ b/hw/char/mcf_uart.c\n@@ -6,6 +6,7 @@\n * This code is licensed under the GPL\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/sysbus.h\"\n #include \"hw/m68k/mcf.h\"\n@@ -174,7 +175,7 @@ static void mcf_do_command(mcf_uart_state *s, uint8_t cmd)\n mcf_uart_do_tx(s);\n break;\n case 3: /* Reserved. */\n- fprintf(stderr, \"mcf_uart: Bad TX command\\n\");\n+ error_report(\"mcf_uart: Bad TX command\");\n break;\n }\n \n@@ -189,7 +190,7 @@ static void mcf_do_command(mcf_uart_state *s, uint8_t cmd)\n s->rx_enabled = 0;\n break;\n case 3: /* Reserved. */\n- fprintf(stderr, \"mcf_uart: Bad RX command\\n\");\n+ error_report(\"mcf_uart: Bad RX command\");\n break;\n }\n }\ndiff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c\nindex 835b5378a0..7bb3f3c70b 100644\n--- a/hw/char/sh_serial.c\n+++ b/hw/char/sh_serial.c\n@@ -25,6 +25,7 @@\n * THE SOFTWARE.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/sh4/sh.h\"\n #include \"chardev/char-fe.h\"\n@@ -190,8 +191,8 @@ static void sh_serial_write(void *opaque, hwaddr offs,\n }\n }\n \n- fprintf(stderr, \"sh_serial: unsupported write to 0x%02\"\n- HWADDR_PRIx \"\\n\", offs);\n+ error_report(\"sh_serial: unsupported write to 0x%02\"\n+ HWADDR_PRIx \"\", offs);\n abort();\n }\n \n@@ -290,8 +291,8 @@ static uint64_t sh_serial_read(void *opaque, hwaddr offs,\n #endif\n \n if (ret & ~((1 << 16) - 1)) {\n- fprintf(stderr, \"sh_serial: unsupported read from 0x%02\"\n- HWADDR_PRIx \"\\n\", offs);\n+ error_report(\"sh_serial: unsupported read from 0x%02\"\n+ HWADDR_PRIx \"\", offs);\n abort();\n }\n \ndiff --git a/hw/core/loader.c b/hw/core/loader.c\nindex 4593061445..95bdcbbe36 100644\n--- a/hw/core/loader.c\n+++ b/hw/core/loader.c\n@@ -43,6 +43,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"hw/hw.h\"\n #include \"disas/disas.h\"\n@@ -82,7 +83,7 @@ int load_image(const char *filename, uint8_t *addr)\n return -1;\n size = lseek(fd, 0, SEEK_END);\n if (size == -1) {\n- fprintf(stderr, \"file %-20s: get size error: %s\\n\",\n+ error_report(\"file %-20s: get size error: %s\",\n filename, strerror(errno));\n close(fd);\n return -1;\n@@ -623,7 +624,7 @@ static int load_uboot_image(const char *filename, hwaddr *ep, hwaddr *loadaddr,\n goto out;\n \n if (hdr->ih_type != image_type) {\n- fprintf(stderr, \"Wrong image type %d, expected %d\\n\", hdr->ih_type,\n+ error_report(\"Wrong image type %d, expected %d\", hdr->ih_type,\n image_type);\n goto out;\n }\n@@ -670,14 +671,14 @@ static int load_uboot_image(const char *filename, hwaddr *ep, hwaddr *loadaddr,\n address = *loadaddr;\n break;\n default:\n- fprintf(stderr, \"Unsupported u-boot image type %d\\n\", hdr->ih_type);\n+ error_report(\"Unsupported u-boot image type %d\", hdr->ih_type);\n goto out;\n }\n \n data = g_malloc(hdr->ih_size);\n \n if (read(fd, data, hdr->ih_size) != hdr->ih_size) {\n- fprintf(stderr, \"Error reading file\\n\");\n+ error_report(\"Error reading file\");\n goto out;\n }\n \n@@ -693,7 +694,7 @@ static int load_uboot_image(const char *filename, hwaddr *ep, hwaddr *loadaddr,\n bytes = gunzip(data, max_bytes, compressed_data, hdr->ih_size);\n g_free(compressed_data);\n if (bytes < 0) {\n- fprintf(stderr, \"Unable to decompress gzipped image!\\n\");\n+ error_report(\"Unable to decompress gzipped image!\");\n goto out;\n }\n hdr->ih_size = bytes;\n@@ -763,7 +764,7 @@ int load_image_gzipped_buffer(const char *filename, uint64_t max_sz,\n data = g_malloc(max_sz);\n bytes = gunzip(data, max_sz, compressed_data, len);\n if (bytes < 0) {\n- fprintf(stderr, \"%s: unable to decompress gzipped kernel file\\n\",\n+ error_report(\"%s: unable to decompress gzipped kernel file\",\n filename);\n goto out;\n }\n@@ -893,8 +894,8 @@ int rom_add_file(const char *file, const char *fw_dir,\n char devpath[100];\n \n if (as && mr) {\n- fprintf(stderr, \"Specifying an Address Space and Memory Region is \" \\\n- \"not valid when loading a rom\\n\");\n+ error_report(\"Specifying an Address Space and Memory Region is \" \\\n+ \"not valid when loading a rom\");\n /* We haven't allocated anything so we don't need any cleanup */\n return -1;\n }\n@@ -909,7 +910,7 @@ int rom_add_file(const char *file, const char *fw_dir,\n \n fd = open(rom->path, O_RDONLY | O_BINARY);\n if (fd == -1) {\n- fprintf(stderr, \"Could not open option rom '%s': %s\\n\",\n+ error_report(\"Could not open option rom '%s': %s\",\n rom->path, strerror(errno));\n goto err;\n }\n@@ -921,7 +922,7 @@ int rom_add_file(const char *file, const char *fw_dir,\n rom->addr = addr;\n rom->romsize = lseek(fd, 0, SEEK_END);\n if (rom->romsize == -1) {\n- fprintf(stderr, \"rom: file %-20s: get size error: %s\\n\",\n+ error_report(\"rom: file %-20s: get size error: %s\",\n rom->name, strerror(errno));\n goto err;\n }\n@@ -931,7 +932,7 @@ int rom_add_file(const char *file, const char *fw_dir,\n lseek(fd, 0, SEEK_SET);\n rc = read(fd, rom->data, rom->datasize);\n if (rc != rom->datasize) {\n- fprintf(stderr, \"rom: file %-20s: read error: rc=%d (expected %zd)\\n\",\n+ error_report(\"rom: file %-20s: read error: rc=%d (expected %zd)\",\n rom->name, rc, rom->datasize);\n goto err;\n }\n@@ -1105,10 +1106,10 @@ int rom_check_and_register_reset(void)\n continue;\n }\n if ((addr > rom->addr) && (as == rom->as)) {\n- fprintf(stderr, \"rom: requested regions overlap \"\n- \"(rom %s. free=0x\" TARGET_FMT_plx\n- \", addr=0x\" TARGET_FMT_plx \")\\n\",\n- rom->name, addr, rom->addr);\n+ error_report(\"rom: requested regions overlap \"\n+ \"(rom %s. free=0x\" TARGET_FMT_plx\n+ \", addr=0x\" TARGET_FMT_plx \")\",\n+ rom->name, addr, rom->addr);\n return -1;\n }\n addr = rom->addr;\ndiff --git a/hw/core/ptimer.c b/hw/core/ptimer.c\nindex 7221c68a98..514e177de2 100644\n--- a/hw/core/ptimer.c\n+++ b/hw/core/ptimer.c\n@@ -6,6 +6,7 @@\n * This code is licensed under the GNU LGPL.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"qemu/timer.h\"\n #include \"hw/ptimer.h\"\n@@ -56,7 +57,7 @@ static void ptimer_reload(ptimer_state *s, int delta_adjust)\n \n if (s->period == 0) {\n if (!qtest_enabled()) {\n- fprintf(stderr, \"Timer with period zero, disabling\\n\");\n+ error_report(\"Timer with period zero, disabling\");\n }\n timer_del(s->timer);\n s->enabled = 0;\n@@ -89,7 +90,7 @@ static void ptimer_reload(ptimer_state *s, int delta_adjust)\n \n if (delta == 0) {\n if (!qtest_enabled()) {\n- fprintf(stderr, \"Timer with delta zero, disabling\\n\");\n+ error_report(\"Timer with delta zero, disabling\");\n }\n timer_del(s->timer);\n s->enabled = 0;\n@@ -263,7 +264,7 @@ void ptimer_run(ptimer_state *s, int oneshot)\n \n if (was_disabled && s->period == 0) {\n if (!qtest_enabled()) {\n- fprintf(stderr, \"Timer with period zero, disabling\\n\");\n+ error_report(\"Timer with period zero, disabling\");\n }\n return;\n }\ndiff --git a/hw/cris/axis_dev88.c b/hw/cris/axis_dev88.c\nindex 5eb552bce2..d121836b69 100644\n--- a/hw/cris/axis_dev88.c\n+++ b/hw/cris/axis_dev88.c\n@@ -23,6 +23,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -349,7 +350,7 @@ void axisdev88_init(MachineState *machine)\n li.cmdline = kernel_cmdline;\n cris_load_image(cpu, &li);\n } else if (!qtest_enabled()) {\n- fprintf(stderr, \"Kernel image must be specified\\n\");\n+ error_report(\"Kernel image must be specified\");\n exit(1);\n }\n }\ndiff --git a/hw/cris/boot.c b/hw/cris/boot.c\nindex f896ed7f86..f199a13a82 100644\n--- a/hw/cris/boot.c\n+++ b/hw/cris/boot.c\n@@ -23,6 +23,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n #include \"hw/hw.h\"\n@@ -86,14 +87,14 @@ void cris_load_image(CRISCPU *cpu, struct cris_load_info *li)\n }\n \n if (image_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n li->image_filename);\n exit(1);\n }\n \n if (li->cmdline && (kcmdline_len = strlen(li->cmdline))) {\n if (kcmdline_len > 256) {\n- fprintf(stderr, \"Too long CRIS kernel cmdline (max 256)\\n\");\n+ error_report(\"Too long CRIS kernel cmdline (max 256)\");\n exit(1);\n }\n pstrcpy_targphys(\"cmdline\", 0x40000000, 256, li->cmdline);\ndiff --git a/hw/display/blizzard.c b/hw/display/blizzard.c\nindex 291abe6fca..0d12e078c4 100644\n--- a/hw/display/blizzard.c\n+++ b/hw/display/blizzard.c\n@@ -474,7 +474,7 @@ static uint16_t blizzard_reg_read(void *opaque, uint8_t reg)\n return s->gpio_pdown;\n \n default:\n- fprintf(stderr, \"%s: unknown register %02x\\n\", __func__, reg);\n+ error_report(\"%s: unknown register %02x\", __func__, reg);\n return 0;\n }\n }\n@@ -501,7 +501,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value)\n case 0x0c:\t/* PLL Mode Control 0 */\n s->pll_mode = value & 0x77;\n if ((value & 3) == 0 || (value & 3) == 3)\n- fprintf(stderr, \"%s: wrong PLL Control bits (%i)\\n\",\n+ error_report(\"%s: wrong PLL Control bits (%i)\",\n __func__, value & 3);\n break;\n \n@@ -541,7 +541,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value)\n case 0x28:\t/* LCD Panel Configuration */\n s->lcd_config = value & 0xff;\n if (value & (1 << 7))\n- fprintf(stderr, \"%s: data swap not supported!\\n\", __func__);\n+ error_report(\"%s: data swap not supported!\", __func__);\n break;\n \n case 0x2a:\t/* LCD Horizontal Display Width */\n@@ -585,7 +585,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value)\n case 0x40:\t/* High-speed Serial Interface Tx Configuration Port 1 */\n s->hssi_config[1] = value;\n if (((value >> 4) & 3) == 3)\n- fprintf(stderr, \"%s: Illegal active-data-links value\\n\",\n+ error_report(\"%s: Illegal active-data-links value\",\n __func__);\n break;\n case 0x42:\t/* High-speed Serial Interface Tx Mode */\n@@ -641,7 +641,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value)\n s->enable = value & 1;\n s->blank = (value >> 1) & 1;\n if (value & (1 << 4))\n- fprintf(stderr, \"%s: Macrovision enable attempt!\\n\", __func__);\n+ error_report(\"%s: Macrovision enable attempt!\", __func__);\n break;\n \n case 0x6a:\t/* Special Effects */\n@@ -717,7 +717,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value)\n s->iformat = value & 0xf;\n s->bpp = blizzard_iformat_bpp[s->iformat];\n if (!s->bpp)\n- fprintf(stderr, \"%s: Illegal or unsupported input format %x\\n\",\n+ error_report(\"%s: Illegal or unsupported input format %x\",\n __func__, s->iformat);\n break;\n case 0x8e:\t/* Data Source Select */\n@@ -729,7 +729,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value)\n s->iy[1] != s->oy[1])) ||\n !((s->ix[1] - s->ix[0]) & (s->iy[1] - s->iy[0]) &\n (s->ox[1] - s->ox[0]) & (s->oy[1] - s->oy[0]) & 1))\n- fprintf(stderr, \"%s: Illegal input/output window positions\\n\",\n+ error_report(\"%s: Illegal input/output window positions\",\n __func__);\n \n blizzard_transfer_setup(s);\n@@ -783,8 +783,8 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value)\n case 0xe6:\t/* Power-save */\n s->pm = value & 0x83;\n if (value & s->mode & 1)\n- fprintf(stderr, \"%s: The display must be disabled before entering \"\n- \"Standby Mode\\n\", __func__);\n+ error_report(\"%s: The display must be disabled before entering \"\n+ \"Standby Mode\", __func__);\n break;\n case 0xe8:\t/* Non-display Period Control / Status */\n s->status = value & 0x1b;\n@@ -815,7 +815,7 @@ static void blizzard_reg_write(void *opaque, uint8_t reg, uint16_t value)\n break;\n \n default:\n- fprintf(stderr, \"%s: unknown register %02x\\n\", __func__, reg);\n+ error_report(\"%s: unknown register %02x\", __func__, reg);\n break;\n }\n }\ndiff --git a/hw/display/omap_dss.c b/hw/display/omap_dss.c\nindex 601f178fdd..52d6e753d3 100644\n--- a/hw/display/omap_dss.c\n+++ b/hw/display/omap_dss.c\n@@ -406,10 +406,10 @@ static void omap_disc_write(void *opaque, hwaddr addr,\n s->lcd.enable = (value >> 0) & 1;\n if (value & (1 << 12))\t\t\t/* OVERLAY_OPTIMIZATION */\n if (!((s->dispc.l[1].attr | s->dispc.l[2].attr) & 1)) {\n- fprintf(stderr, \"%s: Overlay Optimization when no overlay \"\n- \"region effectively exists leads to \"\n- \"unpredictable behaviour!\\n\", __func__);\n- }\n+ error_report(\"%s: Overlay Optimization when no overlay \"\n+ \"region effectively exists leads to \"\n+ \"unpredictable behaviour!\", __func__);\n+ }\n if (value & (1 << 6)) {\t\t\t\t/* GODIGITAL */\n /* XXX: Shadowed fields are:\n * s->dispc.config\n@@ -525,8 +525,8 @@ static void omap_disc_write(void *opaque, hwaddr addr,\n case 0x0a0:\t/* DISPC_GFX_ATTRIBUTES */\n s->dispc.l[0].attr = value & 0x7ff;\n if (value & (3 << 9))\n- fprintf(stderr, \"%s: Big-endian pixel format not supported\\n\",\n- __func__);\n+ error_report(\"%s: Big-endian pixel format not supported\",\n+ __func__);\n s->dispc.l[0].enable = value & 1;\n s->dispc.l[0].bpp = (value >> 1) & 0xf;\n s->dispc.invalidate = 1;\n@@ -617,7 +617,7 @@ static void omap_rfbi_transfer_start(struct omap_dss_s *s)\n if (s->rfbi.control & (1 << 1)) {\t\t\t\t/* BYPASS */\n /* TODO: in non-Bypass mode we probably need to just assert the\n * DRQ and wait for DMA to write the pixels. */\n- fprintf(stderr, \"%s: Bypass mode unimplemented\\n\", __func__);\n+ error_report(\"%s: Bypass mode unimplemented\", __func__);\n return;\n }\n \ndiff --git a/hw/display/pl110.c b/hw/display/pl110.c\nindex 8c7dcc6f0a..b8b7903d36 100644\n--- a/hw/display/pl110.c\n+++ b/hw/display/pl110.c\n@@ -174,7 +174,7 @@ static void pl110_update_display(void *opaque)\n dest_width = 4;\n break;\n default:\n- fprintf(stderr, \"pl110: Bad color depth\\n\");\n+ error_report(\"pl110: Bad color depth\");\n exit(1);\n }\n if (s->cr & PL110_CR_BGR)\ndiff --git a/hw/display/pxa2xx_lcd.c b/hw/display/pxa2xx_lcd.c\nindex b83f80753a..ae3a365849 100644\n--- a/hw/display/pxa2xx_lcd.c\n+++ b/hw/display/pxa2xx_lcd.c\n@@ -1050,7 +1050,7 @@ PXA2xxLCDState *pxa2xx_lcdc_init(MemoryRegion *sysmem,\n s->dest_width = 4;\n break;\n default:\n- fprintf(stderr, \"%s: Bad color depth\\n\", __func__);\n+ error_report(\"%s: Bad color depth\", __func__);\n exit(1);\n }\n \ndiff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c\nindex e7ac4f8789..0cd07028a4 100644\n--- a/hw/display/qxl-render.c\n+++ b/hw/display/qxl-render.c\n@@ -78,7 +78,7 @@ void qxl_render_resize(PCIQXLDevice *qxl)\n qxl->guest_primary.bits_pp = 32;\n break;\n default:\n- fprintf(stderr, \"%s: unhandled format: %x\\n\", __func__,\n+ error_report(\"%s: unhandled format: %x\", __func__,\n qxl->guest_primary.surface.format);\n qxl->guest_primary.bytes_pp = 4;\n qxl->guest_primary.bits_pp = 32;\n@@ -247,7 +247,7 @@ static QEMUCursor *qxl_cursor(PCIQXLDevice *qxl, QXLCursor *cursor,\n }\n break;\n default:\n- fprintf(stderr, \"%s: not implemented: type %d\\n\",\n+ error_report(\"%s: not implemented: type %d\",\n __func__, cursor->header.type);\n goto fail;\n }\n@@ -275,9 +275,8 @@ int qxl_render_cursor(PCIQXLDevice *qxl, QXLCommandExt *ext)\n }\n \n if (qxl->debug > 1 && cmd->type != QXL_CURSOR_MOVE) {\n- fprintf(stderr, \"%s\", __func__);\n+ error_report(\"%s\", __func__);\n qxl_log_cmd_cursor(qxl, cmd, ext->group_id);\n- fprintf(stderr, \"\\n\");\n }\n switch (cmd->type) {\n case QXL_CURSOR_SET:\ndiff --git a/hw/display/qxl.c b/hw/display/qxl.c\nindex ae3677fd1e..0163a18bbb 100644\n--- a/hw/display/qxl.c\n+++ b/hw/display/qxl.c\n@@ -875,7 +875,7 @@ static void interface_notify_update(QXLInstance *sin, uint32_t update_id)\n * Probably was at some earlier version that is prior to git start (2009),\n * and is still guest trigerrable.\n */\n- fprintf(stderr, \"%s: deprecated\\n\", __func__);\n+ error_report(\"%s: deprecated\", __func__);\n }\n \n /* called from spice server thread context only */\n@@ -905,7 +905,7 @@ static void interface_async_complete_io(PCIQXLDevice *qxl, QXLCookie *cookie)\n \n trace_qxl_interface_async_complete_io(qxl->id, current_async, cookie);\n if (!cookie) {\n- fprintf(stderr, \"qxl: %s: error, cookie is NULL\\n\", __func__);\n+ error_report(\"qxl: %s: error, cookie is NULL\", __func__);\n return;\n }\n if (cookie && current_async != cookie->io) {\n@@ -930,7 +930,7 @@ static void interface_async_complete_io(PCIQXLDevice *qxl, QXLCookie *cookie)\n qxl_spice_destroy_surface_wait_complete(qxl, cookie->u.surface_id);\n break;\n default:\n- fprintf(stderr, \"qxl: %s: unexpected current_async %d\\n\", __func__,\n+ error_report(\"qxl: %s: unexpected current_async %d\", __func__,\n current_async);\n }\n qxl_send_events(qxl, QXL_INTERRUPT_IO_CMD);\n@@ -998,7 +998,7 @@ static void interface_async_complete(QXLInstance *sin, uint64_t cookie_token)\n case QXL_COOKIE_TYPE_POST_LOAD_MONITORS_CONFIG:\n break;\n default:\n- fprintf(stderr, \"qxl: %s: unexpected cookie type %d\\n\",\n+ error_report(\"qxl: %s: unexpected cookie type %d\",\n __func__, cookie->type);\n g_free(cookie);\n }\n@@ -1875,7 +1875,7 @@ static void qxl_send_events(PCIQXLDevice *d, uint32_t events)\n trace_qxl_send_events(d->id, events);\n if (!qemu_spice_display_is_running(&d->ssd)) {\n /* spice-server tracks guest running state and should not do this */\n- fprintf(stderr, \"%s: spice-server bug: guest stopped, ignoring\\n\",\n+ error_report(\"%s: spice-server bug: guest stopped, ignoring\",\n __func__);\n trace_qxl_send_events_vm_stopped(d->id, events);\n return;\ndiff --git a/hw/display/tc6393xb.c b/hw/display/tc6393xb.c\nindex 79f161740a..8b708a858b 100644\n--- a/hw/display/tc6393xb.c\n+++ b/hw/display/tc6393xb.c\n@@ -159,7 +159,7 @@ void tc6393xb_gpio_out_set(TC6393xbState *s, int line,\n qemu_irq handler)\n {\n if (line >= TC6393XB_GPIOS) {\n- fprintf(stderr, \"TC6393xb: no GPIO pin %d\\n\", line);\n+ error_report(\"TC6393xb: no GPIO pin %d\", line);\n return;\n }\n \n@@ -190,7 +190,7 @@ static void tc6393xb_l3v(void *opaque, int line, int level)\n {\n TC6393xbState *s = opaque;\n s->blank = !level;\n- fprintf(stderr, \"L3V: %d\\n\", level);\n+ error_report(\"L3V: %d\", level);\n }\n \n static void tc6393xb_sub_irq(void *opaque, int line, int level) {\n@@ -257,7 +257,7 @@ static uint32_t tc6393xb_scr_readb(TC6393xbState *s, hwaddr addr)\n SCR_REG_B(CONFIG);\n SCR_REG_B(DEBUG);\n }\n- fprintf(stderr, \"tc6393xb_scr: unhandled read at %08x\\n\", (uint32_t) addr);\n+ error_report(\"tc6393xb_scr: unhandled read at %08x\", (uint32_t) addr);\n return 0;\n }\n #undef SCR_REG_B\n@@ -318,8 +318,8 @@ static void tc6393xb_scr_writeb(TC6393xbState *s, hwaddr addr, uint32_t value)\n SCR_REG_B(CONFIG);\n SCR_REG_B(DEBUG);\n }\n- fprintf(stderr, \"tc6393xb_scr: unhandled write at %08x: %02x\\n\",\n-\t\t\t\t\t(uint32_t) addr, value & 0xff);\n+ error_report(\"tc6393xb_scr: unhandled write at %08x: %02x\",\n+ (uint32_t) addr, value & 0xff);\n }\n #undef SCR_REG_B\n #undef SCR_REG_W\n@@ -341,7 +341,7 @@ static uint32_t tc6393xb_nand_cfg_readb(TC6393xbState *s, hwaddr addr) {\n case NAND_CFG_BASE + 3:\n return s->nand_phys >> (addr - NAND_CFG_BASE);\n }\n- fprintf(stderr, \"tc6393xb_nand_cfg: unhandled read at %08x\\n\", (uint32_t) addr);\n+ error_report(\"tc6393xb_nand_cfg: unhandled read at %08x\", (uint32_t) addr);\n return 0;\n }\n static void tc6393xb_nand_cfg_writeb(TC6393xbState *s, hwaddr addr, uint32_t value) {\n@@ -357,7 +357,7 @@ static void tc6393xb_nand_cfg_writeb(TC6393xbState *s, hwaddr addr, uint32_t val\n s->nand_phys |= (value & 0xff) << ((addr - NAND_CFG_BASE) * 8);\n return;\n }\n- fprintf(stderr, \"tc6393xb_nand_cfg: unhandled write at %08x: %02x\\n\",\n+ error_report(\"tc6393xb_nand_cfg: unhandled write at %08x: %02x\",\n \t\t\t\t\t(uint32_t) addr, value & 0xff);\n }\n \n@@ -377,12 +377,14 @@ static uint32_t tc6393xb_nand_readb(TC6393xbState *s, hwaddr addr) {\n case NAND_IMR:\n return s->nand.imr;\n }\n- fprintf(stderr, \"tc6393xb_nand: unhandled read at %08x\\n\", (uint32_t) addr);\n+ error_report(\"tc6393xb_nand: unhandled read at %08x\", (uint32_t) addr);\n return 0;\n }\n-static void tc6393xb_nand_writeb(TC6393xbState *s, hwaddr addr, uint32_t value) {\n-// fprintf(stderr, \"tc6393xb_nand: write at %08x: %02x\\n\",\n-//\t\t\t\t\t(uint32_t) addr, value & 0xff);\n+static void tc6393xb_nand_writeb(TC6393xbState *s, hwaddr addr, uint32_t value)\n+{\n+ /* error_report(\"tc6393xb_nand: write at %08x: %02x\",\n+ * (uint32_t) addr, value & 0xff);\n+ */\n switch (addr) {\n case NAND_DATA + 0:\n case NAND_DATA + 1:\n@@ -420,7 +422,7 @@ static void tc6393xb_nand_writeb(TC6393xbState *s, hwaddr addr, uint32_t value)\n tc6393xb_nand_irq(s);\n return;\n }\n- fprintf(stderr, \"tc6393xb_nand: unhandled write at %08x: %02x\\n\",\n+ error_report(\"tc6393xb_nand: unhandled write at %08x: %02x\",\n \t\t\t\t\t(uint32_t) addr, value & 0xff);\n }\n \n@@ -522,13 +524,15 @@ static uint64_t tc6393xb_readb(void *opaque, hwaddr addr,\n };\n \n if ((addr &~0xff) == s->nand_phys && s->nand_enable) {\n-// return tc6393xb_nand_readb(s, addr & 0xff);\n+ /* return tc6393xb_nand_readb(s, addr & 0xff); */\n uint8_t d = tc6393xb_nand_readb(s, addr & 0xff);\n-// fprintf(stderr, \"tc6393xb_nand: read at %08x: %02hhx\\n\", (uint32_t) addr, d);\n+ /* error_report(\"tc6393xb_nand: read at %08x: %02hhx\",\n+ * (uint32_t) addr, d);\n+ */\n return d;\n }\n \n-// fprintf(stderr, \"tc6393xb: unhandled read at %08x\\n\", (uint32_t) addr);\n+ /* error_report(\"tc6393xb: unhandled read at %08x\", (uint32_t) addr); */\n return 0;\n }\n \n@@ -548,7 +552,7 @@ static void tc6393xb_writeb(void *opaque, hwaddr addr,\n if ((addr &~0xff) == s->nand_phys && s->nand_enable)\n tc6393xb_nand_writeb(s, addr & 0xff, value);\n else\n- fprintf(stderr, \"tc6393xb: unhandled write at %08x: %02x\\n\",\n+ error_report(\"tc6393xb: unhandled write at %08x: %02x\",\n (uint32_t) addr, (int)value & 0xff);\n }\n \ndiff --git a/hw/display/virtio-gpu-3d.c b/hw/display/virtio-gpu-3d.c\nindex 8c106a662d..88bc1c84a6 100644\n--- a/hw/display/virtio-gpu-3d.c\n+++ b/hw/display/virtio-gpu-3d.c\n@@ -473,7 +473,7 @@ void virtio_gpu_virgl_process_cmd(VirtIOGPU *g,\n return;\n }\n if (cmd->error) {\n- fprintf(stderr, \"%s: ctrl 0x%x, error 0x%x\\n\", __func__,\n+ error_report(\"%s: ctrl 0x%x, error 0x%x\", __func__,\n cmd->cmd_hdr.type, cmd->error);\n virtio_gpu_ctrl_response_nodata(g, cmd, cmd->error);\n return;\n@@ -556,7 +556,7 @@ static void virtio_gpu_print_stats(void *opaque)\n VirtIOGPU *g = opaque;\n \n if (g->stats.requests) {\n- fprintf(stderr, \"stats: vq req %4d, %3d -- 3D %4d (%5d)\\n\",\n+ error_report(\"stats: vq req %4d, %3d -- 3D %4d (%5d)\",\n g->stats.requests,\n g->stats.max_inflight,\n g->stats.req_3d,\ndiff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c\nindex 4a64b41259..44d425e1f6 100644\n--- a/hw/display/vmware_vga.c\n+++ b/hw/display/vmware_vga.c\n@@ -293,45 +293,45 @@ static inline bool vmsvga_verify_rect(DisplaySurface *surface,\n int x, int y, int w, int h)\n {\n if (x < 0) {\n- fprintf(stderr, \"%s: x was < 0 (%d)\\n\", name, x);\n+ error_report(\"%s: x was < 0 (%d)\", name, x);\n return false;\n }\n if (x > SVGA_MAX_WIDTH) {\n- fprintf(stderr, \"%s: x was > %d (%d)\\n\", name, SVGA_MAX_WIDTH, x);\n+ error_report(\"%s: x was > %d (%d)\", name, SVGA_MAX_WIDTH, x);\n return false;\n }\n if (w < 0) {\n- fprintf(stderr, \"%s: w was < 0 (%d)\\n\", name, w);\n+ error_report(\"%s: w was < 0 (%d)\", name, w);\n return false;\n }\n if (w > SVGA_MAX_WIDTH) {\n- fprintf(stderr, \"%s: w was > %d (%d)\\n\", name, SVGA_MAX_WIDTH, w);\n+ error_report(\"%s: w was > %d (%d)\", name, SVGA_MAX_WIDTH, w);\n return false;\n }\n if (x + w > surface_width(surface)) {\n- fprintf(stderr, \"%s: width was > %d (x: %d, w: %d)\\n\",\n+ error_report(\"%s: width was > %d (x: %d, w: %d)\",\n name, surface_width(surface), x, w);\n return false;\n }\n \n if (y < 0) {\n- fprintf(stderr, \"%s: y was < 0 (%d)\\n\", name, y);\n+ error_report(\"%s: y was < 0 (%d)\", name, y);\n return false;\n }\n if (y > SVGA_MAX_HEIGHT) {\n- fprintf(stderr, \"%s: y was > %d (%d)\\n\", name, SVGA_MAX_HEIGHT, y);\n+ error_report(\"%s: y was > %d (%d)\", name, SVGA_MAX_HEIGHT, y);\n return false;\n }\n if (h < 0) {\n- fprintf(stderr, \"%s: h was < 0 (%d)\\n\", name, h);\n+ error_report(\"%s: h was < 0 (%d)\", name, h);\n return false;\n }\n if (h > SVGA_MAX_HEIGHT) {\n- fprintf(stderr, \"%s: h was > %d (%d)\\n\", name, SVGA_MAX_HEIGHT, h);\n+ error_report(\"%s: h was > %d (%d)\", name, SVGA_MAX_HEIGHT, h);\n return false;\n }\n if (y + h > surface_height(surface)) {\n- fprintf(stderr, \"%s: update height > %d (y: %d, h: %d)\\n\",\n+ error_report(\"%s: update height > %d (y: %d, h: %d)\",\n name, surface_height(surface), y, h);\n return false;\n }\n@@ -529,7 +529,7 @@ static inline void vmsvga_cursor_define(struct vmsvga_state_s *s,\n #endif\n break;\n default:\n- fprintf(stderr, \"%s: unhandled bpp %d, using fallback cursor\\n\",\n+ error_report(\"%s: unhandled bpp %d, using fallback cursor\",\n __func__, c->bpp);\n cursor_put(qc);\n qc = cursor_builtin_left_ptr();\ndiff --git a/hw/dma/omap_dma.c b/hw/dma/omap_dma.c\nindex abd18c67ea..5d7fe06d98 100644\n--- a/hw/dma/omap_dma.c\n+++ b/hw/dma/omap_dma.c\n@@ -18,6 +18,7 @@\n * with this program; if not, see <http://www.gnu.org/licenses/>.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"qemu/timer.h\"\n #include \"hw/arm/omap.h\"\n@@ -1898,13 +1899,13 @@ static void omap_dma4_write(void *opaque, hwaddr addr,\n omap_dma_reset(s->dma);\n s->ocp = value & 0x3321;\n if (((s->ocp >> 12) & 3) == 3)\t\t\t\t/* MIDLEMODE */\n- fprintf(stderr, \"%s: invalid DMA power mode\\n\", __func__);\n+ error_report(\"%s: invalid DMA power mode\", __func__);\n return;\n \n case 0x78:\t/* DMA4_GCR */\n s->gcr = value & 0x00ff00ff;\n \tif ((value & 0xff) == 0x00)\t\t/* MAX_CHANNEL_FIFO_DEPTH */\n- fprintf(stderr, \"%s: wrong FIFO depth in GCR\\n\", __func__);\n+ error_report(\"%s: wrong FIFO depth in GCR\", __func__);\n return;\n \n case 0x80 ... 0xfff:\n@@ -1934,8 +1935,8 @@ static void omap_dma4_write(void *opaque, hwaddr addr,\n ch->buf_disable = (value >> 25) & 1;\n ch->src_sync = (value >> 24) & 1;\t/* XXX For CamDMA must be 1 */\n if (ch->buf_disable && !ch->src_sync)\n- fprintf(stderr, \"%s: Buffering disable is not allowed in \"\n- \"destination synchronised mode\\n\", __func__);\n+ error_report(\"%s: Buffering disable is not allowed in \"\n+ \"destination synchronised mode\", __func__);\n ch->prefetch = (value >> 23) & 1;\n ch->bs = (value >> 18) & 1;\n ch->transparent_copy = (value >> 17) & 1;\n@@ -1946,8 +1947,8 @@ static void omap_dma4_write(void *opaque, hwaddr addr,\n ch->priority = (value & 0x0040) >> 6;\n ch->fs = (value & 0x0020) >> 5;\n if (ch->fs && ch->bs && ch->mode[0] && ch->mode[1])\n- fprintf(stderr, \"%s: For a packet transfer at least one port \"\n- \"must be constant-addressed\\n\", __func__);\n+ error_report(\"%s: For a packet transfer at least one port \"\n+ \"must be constant-addressed\", __func__);\n ch->sync = (value & 0x001f) | ((value >> 14) & 0x0060);\n /* XXX must be 0x01 for CamDMA */\n \n@@ -1977,8 +1978,8 @@ static void omap_dma4_write(void *opaque, hwaddr addr,\n ch->endian[1] =(value >> 19) & 1;\n ch->endian_lock[1] =(value >> 18) & 1;\n if (ch->endian[0] != ch->endian[1])\n- fprintf(stderr, \"%s: DMA endianness conversion enable attempt\\n\",\n- __func__);\n+ error_report(\"%s: DMA endianness conversion enable attempt\",\n+ __func__);\n ch->write_mode = (value >> 16) & 3;\n ch->burst[1] = (value & 0xc000) >> 14;\n ch->pack[1] = (value & 0x2000) >> 13;\n@@ -1986,12 +1987,13 @@ static void omap_dma4_write(void *opaque, hwaddr addr,\n ch->burst[0] = (value & 0x0180) >> 7;\n ch->pack[0] = (value & 0x0040) >> 6;\n ch->translate[0] = (value & 0x003c) >> 2;\n- if (ch->translate[0] | ch->translate[1])\n- fprintf(stderr, \"%s: bad MReqAddressTranslate sideband signal\\n\",\n- __func__);\n+ if (ch->translate[0] | ch->translate[1]) {\n+ error_report(\"%s: bad MReqAddressTranslate sideband signal\",\n+ __func__);\n+ }\n ch->data_type = 1 << (value & 3);\n if ((value & 3) == 3) {\n- printf(\"%s: bad data_type for DMA channel\\n\", __func__);\n+ error_report(\"%s: bad data_type for DMA channel\", __func__);\n ch->data_type >>= 1;\n }\n break;\ndiff --git a/hw/dma/soc_dma.c b/hw/dma/soc_dma.c\nindex 9bb499bf9c..7339a3ec95 100644\n--- a/hw/dma/soc_dma.c\n+++ b/hw/dma/soc_dma.c\n@@ -18,6 +18,7 @@\n * with this program; if not, see <http://www.gnu.org/licenses/>.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"qemu/timer.h\"\n #include \"hw/arm/soc_dma.h\"\n@@ -270,11 +271,11 @@ void soc_dma_port_add_fifo(struct soc_dma_s *soc, hwaddr virt_base,\n if (entry->type == soc_dma_port_mem) {\n if (entry->addr <= virt_base &&\n entry->addr + entry->u.mem.size > virt_base) {\n- fprintf(stderr, \"%s: FIFO at %\"PRIx64\n- \" collides with RAM region at %\"PRIx64\n- \"-%\"PRIx64 \"\\n\", __func__,\n- virt_base, entry->addr,\n- (entry->addr + entry->u.mem.size));\n+ error_report(\"%s: FIFO at %\"PRIx64\n+ \" collides with RAM region at %\"PRIx64\n+ \"-%\"PRIx64 \"\", __func__,\n+ virt_base, entry->addr,\n+ (entry->addr + entry->u.mem.size));\n exit(-1);\n }\n \n@@ -284,9 +285,9 @@ void soc_dma_port_add_fifo(struct soc_dma_s *soc, hwaddr virt_base,\n while (entry < dma->memmap + dma->memmap_size &&\n entry->addr <= virt_base) {\n if (entry->addr == virt_base && entry->u.fifo.out == out) {\n- fprintf(stderr, \"%s: FIFO at %\"PRIx64\n- \" collides FIFO at %\"PRIx64 \"\\n\",\n- __func__, virt_base, entry->addr);\n+ error_report(\"%s: FIFO at %\"PRIx64\n+ \" collides FIFO at %\"PRIx64 \"\",\n+ __func__, virt_base, entry->addr);\n exit(-1);\n }\n \n@@ -321,11 +322,11 @@ void soc_dma_port_add_mem(struct soc_dma_s *soc, uint8_t *phys_base,\n if ((entry->addr >= virt_base && entry->addr < virt_base + size) ||\n (entry->addr <= virt_base &&\n entry->addr + entry->u.mem.size > virt_base)) {\n- fprintf(stderr, \"%s: RAM at %\"PRIx64 \"-%\"PRIx64\n- \" collides with RAM region at %\"PRIx64\n- \"-%\"PRIx64 \"\\n\", __func__,\n- virt_base, virt_base + size,\n- entry->addr, entry->addr + entry->u.mem.size);\n+ error_report(\"%s: RAM at %\"PRIx64 \"-%\"PRIx64\n+ \" collides with RAM region at %\"PRIx64\n+ \"-%\"PRIx64 \"\", __func__,\n+ virt_base, virt_base + size,\n+ entry->addr, entry->addr + entry->u.mem.size);\n exit(-1);\n }\n \n@@ -334,11 +335,11 @@ void soc_dma_port_add_mem(struct soc_dma_s *soc, uint8_t *phys_base,\n } else {\n if (entry->addr >= virt_base &&\n entry->addr < virt_base + size) {\n- fprintf(stderr, \"%s: RAM at %\"PRIx64 \"-%\"PRIx64\n- \" collides with FIFO at %\"PRIx64\n- \"\\n\", __func__,\n- virt_base, virt_base + size,\n- entry->addr);\n+ error_report(\"%s: RAM at %\"PRIx64 \"-%\"PRIx64\n+ \" collides with FIFO at %\"PRIx64\n+ \"\", __func__,\n+ virt_base, virt_base + size,\n+ entry->addr);\n exit(-1);\n }\n \ndiff --git a/hw/gpio/omap_gpio.c b/hw/gpio/omap_gpio.c\nindex 08472193b5..57aa2e54f5 100644\n--- a/hw/gpio/omap_gpio.c\n+++ b/hw/gpio/omap_gpio.c\n@@ -399,7 +399,7 @@ static void omap2_gpio_module_write(void *opaque, hwaddr addr,\n \n case 0x10:\t/* GPIO_SYSCONFIG */\n if (((value >> 3) & 3) == 3)\n- fprintf(stderr, \"%s: bad IDLEMODE value\\n\", __func__);\n+ error_report(\"%s: bad IDLEMODE value\", __func__);\n if (value & 2)\n omap2_gpio_module_reset(s);\n s->config[0] = value & 0x1d;\ndiff --git a/hw/i2c/omap_i2c.c b/hw/i2c/omap_i2c.c\nindex 26e3e5ebf6..c89664f342 100644\n--- a/hw/i2c/omap_i2c.c\n+++ b/hw/i2c/omap_i2c.c\n@@ -340,13 +340,13 @@ static void omap_i2c_write(void *opaque, hwaddr addr,\n break;\n }\n if ((value & (1 << 15)) && !(value & (1 << 10))) {\t/* MST */\n- fprintf(stderr, \"%s: I^2C slave mode not supported\\n\",\n- __func__);\n+ error_report(\"%s: I^2C slave mode not supported\",\n+ __func__);\n break;\n }\n if ((value & (1 << 15)) && value & (1 << 8)) {\t\t/* XA */\n- fprintf(stderr, \"%s: 10-bit addressing mode not supported\\n\",\n- __func__);\n+ error_report(\"%s: 10-bit addressing mode not supported\",\n+ __func__);\n break;\n }\n if ((value & (1 << 15)) && value & (1 << 0)) {\t\t/* STT */\n@@ -393,7 +393,7 @@ static void omap_i2c_write(void *opaque, hwaddr addr,\n omap_i2c_interrupts_update(s);\n }\n if (value & (1 << 15))\t\t\t\t\t/* ST_EN */\n- fprintf(stderr, \"%s: System Test not supported\\n\", __func__);\n+ error_report(\"%s: System Test not supported\", __func__);\n break;\n \n default:\ndiff --git a/hw/i386/kvm/apic.c b/hw/i386/kvm/apic.c\nindex 1df6d26816..e90a1b9b3b 100644\n--- a/hw/i386/kvm/apic.c\n+++ b/hw/i386/kvm/apic.c\n@@ -10,6 +10,7 @@\n * See the COPYING file in the top-level directory.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n #include \"hw/i386/apic_internal.h\"\n@@ -128,7 +129,7 @@ static void kvm_apic_vapic_base_update(APICCommonState *s)\n \n ret = kvm_vcpu_ioctl(CPU(s->cpu), KVM_SET_VAPIC_ADDR, &vapid_addr);\n if (ret < 0) {\n- fprintf(stderr, \"KVM: setting VAPIC address failed (%s)\\n\",\n+ error_report(\"KVM: setting VAPIC address failed (%s)\",\n strerror(-ret));\n abort();\n }\n@@ -145,7 +146,7 @@ static void kvm_apic_put(CPUState *cs, run_on_cpu_data data)\n \n ret = kvm_vcpu_ioctl(CPU(s->cpu), KVM_SET_LAPIC, &kapic);\n if (ret < 0) {\n- fprintf(stderr, \"KVM_SET_LAPIC failed: %s\\n\", strerror(ret));\n+ error_report(\"KVM_SET_LAPIC failed: %s\", strerror(ret));\n abort();\n }\n }\n@@ -167,7 +168,7 @@ static void do_inject_external_nmi(CPUState *cpu, run_on_cpu_data data)\n if (!(lvt & APIC_LVT_MASKED) && ((lvt >> 8) & 7) == APIC_DM_NMI) {\n ret = kvm_vcpu_ioctl(cpu, KVM_NMI);\n if (ret < 0) {\n- fprintf(stderr, \"KVM: injection failed, NMI lost (%s)\\n\",\n+ error_report(\"KVM: injection failed, NMI lost (%s)\",\n strerror(-ret));\n }\n }\n@@ -184,7 +185,7 @@ static void kvm_send_msi(MSIMessage *msg)\n \n ret = kvm_irqchip_send_msi(kvm_state, *msg);\n if (ret < 0) {\n- fprintf(stderr, \"KVM: injection failed, MSI lost (%s)\\n\",\n+ error_report(\"KVM: injection failed, MSI lost (%s)\",\n strerror(-ret));\n }\n }\ndiff --git a/hw/i386/kvm/clock.c b/hw/i386/kvm/clock.c\nindex 363d1b5743..e05c1587ce 100644\n--- a/hw/i386/kvm/clock.c\n+++ b/hw/i386/kvm/clock.c\n@@ -14,6 +14,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n #include \"qemu/host-utils.h\"\n@@ -99,7 +100,7 @@ static void kvm_update_clock(KVMClockState *s)\n \n ret = kvm_vm_ioctl(kvm_state, KVM_GET_CLOCK, &data);\n if (ret < 0) {\n- fprintf(stderr, \"KVM_GET_CLOCK failed: %s\\n\", strerror(ret));\n+ error_report(\"KVM_GET_CLOCK failed: %s\", strerror(ret));\n abort();\n }\n s->clock = data.clock;\n@@ -174,7 +175,7 @@ static void kvmclock_vm_state_change(void *opaque, int running,\n data.clock = s->clock;\n ret = kvm_vm_ioctl(kvm_state, KVM_SET_CLOCK, &data);\n if (ret < 0) {\n- fprintf(stderr, \"KVM_SET_CLOCK failed: %s\\n\", strerror(ret));\n+ error_report(\"KVM_SET_CLOCK failed: %s\", strerror(ret));\n abort();\n }\n \n@@ -185,7 +186,7 @@ static void kvmclock_vm_state_change(void *opaque, int running,\n ret = kvm_vcpu_ioctl(cpu, KVM_KVMCLOCK_CTRL, 0);\n if (ret) {\n if (ret != -EINVAL) {\n- fprintf(stderr, \"%s: %s\\n\", __func__, strerror(-ret));\n+ error_report(\"%s: %s\", __func__, strerror(-ret));\n }\n return;\n }\ndiff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c\nindex 521a58498a..27f24b1090 100644\n--- a/hw/i386/kvm/i8254.c\n+++ b/hw/i386/kvm/i8254.c\n@@ -24,6 +24,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include <linux/kvm.h>\n #include \"qapi/error.h\"\n #include \"qemu/timer.h\"\n@@ -101,7 +102,7 @@ static void kvm_pit_get(PITCommonState *pit)\n if (kvm_has_pit_state2()) {\n ret = kvm_vm_ioctl(kvm_state, KVM_GET_PIT2, &kpit);\n if (ret < 0) {\n- fprintf(stderr, \"KVM_GET_PIT2 failed: %s\\n\", strerror(ret));\n+ error_report(\"KVM_GET_PIT2 failed: %s\", strerror(ret));\n abort();\n }\n pit->channels[0].irq_disabled = kpit.flags & KVM_PIT_FLAGS_HPET_LEGACY;\n@@ -112,7 +113,7 @@ static void kvm_pit_get(PITCommonState *pit)\n */\n ret = kvm_vm_ioctl(kvm_state, KVM_GET_PIT, &kpit);\n if (ret < 0) {\n- fprintf(stderr, \"KVM_GET_PIT failed: %s\\n\", strerror(ret));\n+ error_report(\"KVM_GET_PIT failed: %s\", strerror(ret));\n abort();\n }\n }\n@@ -175,7 +176,7 @@ static void kvm_pit_put(PITCommonState *pit)\n kvm_has_pit_state2() ? KVM_SET_PIT2 : KVM_SET_PIT,\n &kpit);\n if (ret < 0) {\n- fprintf(stderr, \"%s failed: %s\\n\",\n+ error_report(\"%s failed: %s\",\n kvm_has_pit_state2() ? \"KVM_SET_PIT2\" : \"KVM_SET_PIT\",\n strerror(ret));\n abort();\ndiff --git a/hw/i386/kvm/i8259.c b/hw/i386/kvm/i8259.c\nindex 11d1b726b6..770a934552 100644\n--- a/hw/i386/kvm/i8259.c\n+++ b/hw/i386/kvm/i8259.c\n@@ -10,6 +10,7 @@\n * See the COPYING file in the top-level directory.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/isa/i8259_internal.h\"\n #include \"hw/i386/apic_internal.h\"\n #include \"sysemu/kvm.h\"\n@@ -39,7 +40,7 @@ static void kvm_pic_get(PICCommonState *s)\n chip.chip_id = s->master ? KVM_IRQCHIP_PIC_MASTER : KVM_IRQCHIP_PIC_SLAVE;\n ret = kvm_vm_ioctl(kvm_state, KVM_GET_IRQCHIP, &chip);\n if (ret < 0) {\n- fprintf(stderr, \"KVM_GET_IRQCHIP failed: %s\\n\", strerror(ret));\n+ error_report(\"KVM_GET_IRQCHIP failed: %s\", strerror(ret));\n abort();\n }\n \n@@ -92,7 +93,7 @@ static void kvm_pic_put(PICCommonState *s)\n \n ret = kvm_vm_ioctl(kvm_state, KVM_SET_IRQCHIP, &chip);\n if (ret < 0) {\n- fprintf(stderr, \"KVM_SET_IRQCHIP failed: %s\\n\", strerror(ret));\n+ error_report(\"KVM_SET_IRQCHIP failed: %s\", strerror(ret));\n abort();\n }\n }\ndiff --git a/hw/i386/kvm/ioapic.c b/hw/i386/kvm/ioapic.c\nindex 98ca480792..a31bcd2658 100644\n--- a/hw/i386/kvm/ioapic.c\n+++ b/hw/i386/kvm/ioapic.c\n@@ -11,6 +11,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"monitor/monitor.h\"\n #include \"hw/i386/pc.h\"\n #include \"hw/i386/ioapic_internal.h\"\n@@ -74,7 +75,7 @@ static void kvm_ioapic_get(IOAPICCommonState *s)\n chip.chip_id = KVM_IRQCHIP_IOAPIC;\n ret = kvm_vm_ioctl(kvm_state, KVM_GET_IRQCHIP, &chip);\n if (ret < 0) {\n- fprintf(stderr, \"KVM_GET_IRQCHIP failed: %s\\n\", strerror(ret));\n+ error_report(\"KVM_GET_IRQCHIP failed: %s\", strerror(ret));\n abort();\n }\n \n@@ -107,7 +108,7 @@ static void kvm_ioapic_put(IOAPICCommonState *s)\n \n ret = kvm_vm_ioctl(kvm_state, KVM_SET_IRQCHIP, &chip);\n if (ret < 0) {\n- fprintf(stderr, \"KVM_GET_IRQCHIP failed: %s\\n\", strerror(ret));\n+ error_report(\"KVM_GET_IRQCHIP failed: %s\", strerror(ret));\n abort();\n }\n }\ndiff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c\nindex c7b70c91d5..d297a88f9d 100644\n--- a/hw/i386/multiboot.c\n+++ b/hw/i386/multiboot.c\n@@ -23,6 +23,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n #include \"hw/hw.h\"\n@@ -184,7 +185,7 @@ int load_multiboot(FWCfgState *fw_cfg,\n memset(&mbs, 0, sizeof(mbs));\n \n if (flags & 0x00000004) { /* MULTIBOOT_HEADER_HAS_VBE */\n- fprintf(stderr, \"qemu: multiboot knows VBE. we don't.\\n\");\n+ error_report(\"qemu: multiboot knows VBE. we don't.\");\n }\n if (!(flags & 0x00010000)) { /* MULTIBOOT_HEADER_HAS_ADDR */\n uint64_t elf_entry;\n@@ -193,7 +194,7 @@ int load_multiboot(FWCfgState *fw_cfg,\n fclose(f);\n \n if (((struct elf64_hdr*)header)->e_machine == EM_X86_64) {\n- fprintf(stderr, \"Cannot load x86-64 image, give a 32bit one.\\n\");\n+ error_report(\"Cannot load x86-64 image, give a 32bit one.\");\n exit(1);\n }\n \n@@ -201,7 +202,7 @@ int load_multiboot(FWCfgState *fw_cfg,\n &elf_low, &elf_high, 0, I386_ELF_MACHINE,\n 0, 0);\n if (kernel_size < 0) {\n- fprintf(stderr, \"Error while loading elf kernel\\n\");\n+ error_report(\"Error while loading elf kernel\");\n exit(1);\n }\n mh_load_addr = elf_low;\n@@ -210,7 +211,7 @@ int load_multiboot(FWCfgState *fw_cfg,\n \n mbs.mb_buf = g_malloc(mb_kernel_size);\n if (rom_copy(mbs.mb_buf, mh_load_addr, mb_kernel_size) != mb_kernel_size) {\n- fprintf(stderr, \"Error while fetching elf kernel from rom\\n\");\n+ error_report(\"Error while fetching elf kernel from rom\");\n exit(1);\n }\n \n@@ -224,7 +225,7 @@ int load_multiboot(FWCfgState *fw_cfg,\n \n mh_load_addr = ldl_p(header+i+16);\n if (mh_header_addr < mh_load_addr) {\n- fprintf(stderr, \"invalid mh_load_addr address\\n\");\n+ error_report(\"invalid mh_load_addr address\");\n exit(1);\n }\n \n@@ -234,19 +235,19 @@ int load_multiboot(FWCfgState *fw_cfg,\n \n if (mh_load_end_addr) {\n if (mh_bss_end_addr < mh_load_addr) {\n- fprintf(stderr, \"invalid mh_bss_end_addr address\\n\");\n+ error_report(\"invalid mh_bss_end_addr address\");\n exit(1);\n }\n mb_kernel_size = mh_bss_end_addr - mh_load_addr;\n \n if (mh_load_end_addr < mh_load_addr) {\n- fprintf(stderr, \"invalid mh_load_end_addr address\\n\");\n+ error_report(\"invalid mh_load_end_addr address\");\n exit(1);\n }\n mb_load_size = mh_load_end_addr - mh_load_addr;\n } else {\n if (kernel_file_size < mb_kernel_text_offset) {\n- fprintf(stderr, \"invalid kernel_file_size\\n\");\n+ error_report(\"invalid kernel_file_size\");\n exit(1);\n }\n mb_kernel_size = kernel_file_size - mb_kernel_text_offset;\n@@ -269,7 +270,7 @@ int load_multiboot(FWCfgState *fw_cfg,\n mbs.mb_buf = g_malloc(mb_kernel_size);\n fseek(f, mb_kernel_text_offset, SEEK_SET);\n if (fread(mbs.mb_buf, 1, mb_load_size, f) != mb_load_size) {\n- fprintf(stderr, \"fread() failed\\n\");\n+ error_report(\"fread() failed\");\n exit(1);\n }\n memset(mbs.mb_buf + mb_load_size, 0, mb_kernel_size - mb_load_size);\n@@ -326,7 +327,7 @@ int load_multiboot(FWCfgState *fw_cfg,\n mb_debug(\"multiboot loading module: %s\\n\", tmpbuf);\n mb_mod_length = get_image_size(tmpbuf);\n if (mb_mod_length < 0) {\n- fprintf(stderr, \"Failed to open file '%s'\\n\", tmpbuf);\n+ error_report(\"Failed to open file '%s'\", tmpbuf);\n exit(1);\n }\n \ndiff --git a/hw/i386/pc.c b/hw/i386/pc.c\nindex 05985d4927..ca25424c09 100644\n--- a/hw/i386/pc.c\n+++ b/hw/i386/pc.c\n@@ -856,14 +856,14 @@ static void load_linux(PCMachineState *pcms,\n if (!f || !(kernel_size = get_file_size(f)) ||\n fread(header, 1, MIN(ARRAY_SIZE(header), kernel_size), f) !=\n MIN(ARRAY_SIZE(header), kernel_size)) {\n- fprintf(stderr, \"qemu: could not load kernel '%s': %s\\n\",\n+ error_report(\"qemu: could not load kernel '%s': %s\",\n kernel_filename, strerror(errno));\n exit(1);\n }\n \n /* kernel protocol version */\n #if 0\n- fprintf(stderr, \"header magic: %#x\\n\", ldl_p(header+0x202));\n+ error_report(\"header magic: %#x\", ldl_p(header + 0x202));\n #endif\n if (ldl_p(header+0x202) == 0x53726448) {\n protocol = lduw_p(header+0x206);\n@@ -960,13 +960,13 @@ static void load_linux(PCMachineState *pcms,\n /* load initrd */\n if (initrd_filename) {\n if (protocol < 0x200) {\n- fprintf(stderr, \"qemu: linux kernel too old to load a ram disk\\n\");\n+ error_report(\"qemu: linux kernel too old to load a ram disk\");\n exit(1);\n }\n \n initrd_size = get_image_size(initrd_filename);\n if (initrd_size < 0) {\n- fprintf(stderr, \"qemu: error reading initrd %s: %s\\n\",\n+ error_report(\"qemu: error reading initrd %s: %s\",\n initrd_filename, strerror(errno));\n exit(1);\n }\n@@ -991,7 +991,7 @@ static void load_linux(PCMachineState *pcms,\n }\n setup_size = (setup_size+1)*512;\n if (setup_size > kernel_size) {\n- fprintf(stderr, \"qemu: invalid kernel header\\n\");\n+ error_report(\"qemu: invalid kernel header\");\n exit(1);\n }\n kernel_size -= setup_size;\n@@ -1000,11 +1000,11 @@ static void load_linux(PCMachineState *pcms,\n kernel = g_malloc(kernel_size);\n fseek(f, 0, SEEK_SET);\n if (fread(setup, 1, setup_size, f) != setup_size) {\n- fprintf(stderr, \"fread() failed\\n\");\n+ error_report(\"fread() failed\");\n exit(1);\n }\n if (fread(kernel, 1, kernel_size, f) != kernel_size) {\n- fprintf(stderr, \"fread() failed\\n\");\n+ error_report(\"fread() failed\");\n exit(1);\n }\n fclose(f);\n@@ -1012,13 +1012,13 @@ static void load_linux(PCMachineState *pcms,\n /* append dtb to kernel */\n if (dtb_filename) {\n if (protocol < 0x209) {\n- fprintf(stderr, \"qemu: Linux kernel too old to load a dtb\\n\");\n+ error_report(\"qemu: Linux kernel too old to load a dtb\");\n exit(1);\n }\n \n dtb_size = get_image_size(dtb_filename);\n if (dtb_size <= 0) {\n- fprintf(stderr, \"qemu: error reading dtb %s: %s\\n\",\n+ error_report(\"qemu: error reading dtb %s: %s\",\n dtb_filename, strerror(errno));\n exit(1);\n }\ndiff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c\nindex 9ff79b1fd9..1796db1e36 100644\n--- a/hw/i386/pc_piix.c\n+++ b/hw/i386/pc_piix.c\n@@ -1090,7 +1090,7 @@ void igd_passthrough_isa_bridge_create(PCIBus *bus, uint16_t gpu_dev_id)\n * Note that vendor id is always PCI_VENDOR_ID_INTEL.\n */\n if (!bridge_dev) {\n- fprintf(stderr, \"set igd-passthrough-isa-bridge failed!\\n\");\n+ error_report(\"set igd-passthrough-isa-bridge failed!\");\n return;\n }\n pci_config_set_device_id(bridge_dev->config, pch_dev_id);\ndiff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c\nindex 6b183747fc..b6c10a509f 100644\n--- a/hw/i386/pc_sysfw.c\n+++ b/hw/i386/pc_sysfw.c\n@@ -201,7 +201,7 @@ static void old_pc_system_rom_init(MemoryRegion *rom_memory, bool isapc_ram_fw)\n ret = rom_add_file_fixed(bios_name, (uint32_t)(-bios_size), -1);\n if (ret != 0) {\n bios_error:\n- fprintf(stderr, \"qemu: could not load PC BIOS '%s'\\n\", bios_name);\n+ error_report(\"qemu: could not load PC BIOS '%s'\", bios_name);\n exit(1);\n }\n g_free(filename);\n@@ -243,7 +243,8 @@ void pc_system_firmware_init(MemoryRegion *rom_memory, bool isapc_ram_fw)\n if (kvm_enabled() && !kvm_readonly_mem_enabled()) {\n /* Older KVM cannot execute from device memory. So, flash memory\n * cannot be used unless the readonly memory kvm capability is present. */\n- fprintf(stderr, \"qemu: pflash with kvm requires KVM readonly memory support\\n\");\n+ error_report(\"qemu: pflash with kvm requires KVM readonly memory\"\n+ \" support\");\n exit(1);\n }\n \ndiff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c\nindex d9ccd5d0d6..f8e3e0507b 100644\n--- a/hw/i386/xen/xen-hvm.c\n+++ b/hw/i386/xen/xen-hvm.c\n@@ -246,9 +246,10 @@ void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size, MemoryRegion *mr,\n \n if (runstate_check(RUN_STATE_INMIGRATE)) {\n /* RAM already populated in Xen */\n- fprintf(stderr, \"%s: do not alloc \"RAM_ADDR_FMT\n- \" bytes of ram at \"RAM_ADDR_FMT\" when runstate is INMIGRATE\\n\",\n- __func__, size, ram_addr); \n+ error_report(\"%s: do not alloc \"RAM_ADDR_FMT\n+ \" bytes of ram at \"RAM_ADDR_FMT\" when runstate is \"\n+ \" INMIGRATE\",\n+ __func__, size, ram_addr);\n return;\n }\n \n@@ -444,8 +445,9 @@ static int xen_remove_from_physmap(XenIOState *state,\n \n rc = xen_xc_domain_add_to_physmap(xen_xc, xen_domid, XENMAPSPACE_gmfn, idx, gpfn);\n if (rc) {\n- fprintf(stderr, \"add_to_physmap MFN %\"PRI_xen_pfn\" to PFN %\"\n- PRI_xen_pfn\" failed: %d (errno: %d)\\n\", idx, gpfn, rc, errno);\n+ error_report(\"add_to_physmap MFN %\"PRI_xen_pfn\" to PFN %\"\n+ PRI_xen_pfn\" failed: %d (errno: %d)\", idx,\n+ gpfn, rc, errno);\n return -rc;\n }\n }\n@@ -1090,11 +1092,11 @@ static void cpu_handle_ioreq(void *opaque)\n req->data = copy.data;\n \n if (req->state != STATE_IOREQ_INPROCESS) {\n- fprintf(stderr, \"Badness in I/O request ... not in service?!: \"\n- \"%x, ptr: %x, port: %\"PRIx64\", \"\n- \"data: %\"PRIx64\", count: %u, size: %u, type: %u\\n\",\n- req->state, req->data_is_ptr, req->addr,\n- req->data, req->count, req->size, req->type);\n+ error_report(\"Badness in I/O request ... not in service?!: \"\n+ \"%x, ptr: %x, port: %\"PRIx64\", \"\n+ \"data: %\"PRIx64\", count: %u, size: %u, type: %u\",\n+ req->state, req->data_is_ptr, req->addr,\n+ req->data, req->count, req->size, req->type);\n destroy_hvm_domain(false);\n return;\n }\n@@ -1397,16 +1399,16 @@ void destroy_hvm_domain(bool reboot)\n \n xc_handle = xc_interface_open(0, 0, 0);\n if (xc_handle == NULL) {\n- fprintf(stderr, \"Cannot acquire xenctrl handle\\n\");\n+ error_report(\"Cannot acquire xenctrl handle\");\n } else {\n sts = xc_domain_shutdown(xc_handle, xen_domid,\n reboot ? SHUTDOWN_reboot : SHUTDOWN_poweroff);\n if (sts != 0) {\n- fprintf(stderr, \"xc_domain_shutdown failed to issue %s, \"\n- \"sts %d, %s\\n\", reboot ? \"reboot\" : \"poweroff\",\n+ error_report(\"xc_domain_shutdown failed to issue %s, \"\n+ \"sts %d, %s\", reboot ? \"reboot\" : \"poweroff\",\n sts, strerror(errno));\n } else {\n- fprintf(stderr, \"Issued domain %d %s\\n\", xen_domid,\n+ error_report(\"Issued domain %d %s\", xen_domid,\n reboot ? \"reboot\" : \"poweroff\");\n }\n xc_interface_close(xc_handle);\n@@ -1425,7 +1427,7 @@ void xen_shutdown_fatal_error(const char *fmt, ...)\n va_start(ap, fmt);\n vfprintf(stderr, fmt, ap);\n va_end(ap);\n- fprintf(stderr, \"Will destroy the domain.\\n\");\n+ error_report(\"Will destroy the domain.\");\n /* destroy the domain */\n qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_ERROR);\n }\ndiff --git a/hw/i386/xen/xen-mapcache.c b/hw/i386/xen/xen-mapcache.c\nindex baab93b614..4062af0900 100644\n--- a/hw/i386/xen/xen-mapcache.c\n+++ b/hw/i386/xen/xen-mapcache.c\n@@ -377,7 +377,7 @@ ram_addr_t xen_ram_addr_from_mapcache(void *ptr)\n }\n }\n if (!found) {\n- fprintf(stderr, \"%s, could not find %p\\n\", __func__, ptr);\n+ error_report(\"%s, could not find %p\", __func__, ptr);\n QTAILQ_FOREACH(reventry, &mapcache->locked_entries, next) {\n DPRINTF(\" \"TARGET_FMT_plx\" -> %p is present\\n\", reventry->paddr_index,\n reventry->vaddr_req);\n@@ -477,9 +477,9 @@ void xen_invalidate_map_cache(void)\n if (!reventry->dma) {\n continue;\n }\n- fprintf(stderr, \"Locked DMA mapping while invalidating mapcache!\"\n- \" \"TARGET_FMT_plx\" -> %p is present\\n\",\n- reventry->paddr_index, reventry->vaddr_req);\n+ error_report(\"Locked DMA mapping while invalidating mapcache!\"\n+ \" \"TARGET_FMT_plx\" -> %p is present\",\n+ reventry->paddr_index, reventry->vaddr_req);\n }\n \n for (i = 0; i < mapcache->nr_buckets; i++) {\n@@ -545,8 +545,8 @@ static uint8_t *xen_replace_cache_entry_unlocked(hwaddr old_phys_addr,\n address_index = new_phys_addr >> MCACHE_BUCKET_SHIFT;\n address_offset = new_phys_addr & (MCACHE_BUCKET_SIZE - 1);\n \n- fprintf(stderr, \"Replacing a dummy mapcache entry for \"TARGET_FMT_plx \\\n- \" with \"TARGET_FMT_plx\"\\n\", old_phys_addr, new_phys_addr);\n+ error_report(\"Replacing a dummy mapcache entry for \"TARGET_FMT_plx \\\n+ \" with \"TARGET_FMT_plx\"\", old_phys_addr, new_phys_addr);\n \n xen_remap_bucket(entry, entry->vaddr_base,\n cache_size, address_index, false);\ndiff --git a/hw/i386/xen/xen_apic.c b/hw/i386/xen/xen_apic.c\nindex 55769eba7e..9e19ef94a2 100644\n--- a/hw/i386/xen/xen_apic.c\n+++ b/hw/i386/xen/xen_apic.c\n@@ -24,7 +24,7 @@ static void xen_apic_mem_write(void *opaque, hwaddr addr,\n uint64_t data, unsigned size)\n {\n if (size != sizeof(uint32_t)) {\n- fprintf(stderr, \"Xen: APIC write data size = %d, invalid\\n\", size);\n+ error_report(\"Xen: APIC write data size = %d, invalid\", size);\n return;\n }\n \ndiff --git a/hw/ide/ahci.c b/hw/ide/ahci.c\nindex c25e293d88..2ed015285a 100644\n--- a/hw/ide/ahci.c\n+++ b/hw/ide/ahci.c\n@@ -410,8 +410,8 @@ static void ahci_mem_write(void *opaque, hwaddr addr,\n \n /* Only aligned reads are allowed on AHCI */\n if (addr & 3) {\n- fprintf(stderr, \"ahci: Mis-aligned write to addr 0x\"\n- TARGET_FMT_plx \"\\n\", addr);\n+ error_report(\"ahci: Mis-aligned write to addr 0x\"\n+ TARGET_FMT_plx \"\", addr);\n return;\n }\n \n@@ -1053,7 +1053,7 @@ static void process_ncq_command(AHCIState *s, int port, uint8_t *cmd_fis,\n g_assert(is_ncq(ncq_fis->command));\n if (ncq_tfs->used) {\n /* error - already in use */\n- fprintf(stderr, \"%s: tag %d already used\\n\", __func__, tag);\n+ error_report(\"%s: tag %d already used\", __func__, tag);\n return;\n }\n \ndiff --git a/hw/ide/core.c b/hw/ide/core.c\nindex d63eb4a72e..d46936193a 100644\n--- a/hw/ide/core.c\n+++ b/hw/ide/core.c\n@@ -2762,7 +2762,7 @@ static void ide_drive_pio_pre_save(void *opaque)\n \n idx = transfer_end_table_idx(s->end_transfer_func);\n if (idx == -1) {\n- fprintf(stderr, \"%s: invalid end_transfer_func for DRQ_STAT\\n\",\n+ error_report(\"%s: invalid end_transfer_func for DRQ_STAT\",\n __func__);\n s->end_transfer_fn_idx = 2;\n } else {\ndiff --git a/hw/input/lm832x.c b/hw/input/lm832x.c\nindex d39953126b..caeeda47f2 100644\n--- a/hw/input/lm832x.c\n+++ b/hw/input/lm832x.c\n@@ -239,7 +239,7 @@ static uint8_t lm_kbd_read(LM823KbdState *s, int reg, int byte)\n \n default:\n lm_kbd_error(s, ERR_CMDUNK);\n- fprintf(stderr, \"%s: unknown command %02x\\n\", __func__, reg);\n+ error_report(\"%s: unknown command %02x\", __func__, reg);\n return 0x00;\n }\n \n@@ -330,7 +330,7 @@ static void lm_kbd_write(LM823KbdState *s, int reg, int byte, uint8_t value)\n s->reg = LM832x_GENERAL_ERROR;\n if ((value & 3) && (value & 3) != 3) {\n lm_kbd_error(s, ERR_BADPAR);\n- fprintf(stderr, \"%s: invalid clock setting in RCPWM\\n\",\n+ error_report(\"%s: invalid clock setting in RCPWM\",\n __func__);\n }\n /* TODO: Validate that the command is only issued once */\n@@ -378,7 +378,7 @@ static void lm_kbd_write(LM823KbdState *s, int reg, int byte, uint8_t value)\n break;\n default:\n lm_kbd_error(s, ERR_CMDUNK);\n- fprintf(stderr, \"%s: unknown command %02x\\n\", __func__, reg);\n+ error_report(\"%s: unknown command %02x\", __func__, reg);\n break;\n }\n }\ndiff --git a/hw/input/pckbd.c b/hw/input/pckbd.c\nindex c479f827b6..ff4f03e4c3 100644\n--- a/hw/input/pckbd.c\n+++ b/hw/input/pckbd.c\n@@ -22,6 +22,7 @@\n * THE SOFTWARE.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/isa/isa.h\"\n #include \"hw/i386/pc.h\"\n@@ -307,7 +308,7 @@ static void kbd_write_command(void *opaque, hwaddr addr,\n /* ignore that */\n break;\n default:\n- fprintf(stderr, \"qemu: unsupported keyboard cmd=0x%02x\\n\", (int)val);\n+ error_report(\"qemu: unsupported keyboard cmd=0x%02x\", (int)val);\n break;\n }\n }\ndiff --git a/hw/input/pxa2xx_keypad.c b/hw/input/pxa2xx_keypad.c\nindex 93db9ed25b..0a594c30fc 100644\n--- a/hw/input/pxa2xx_keypad.c\n+++ b/hw/input/pxa2xx_keypad.c\n@@ -326,7 +326,7 @@ void pxa27x_register_keypad(PXA2xxKeyPadState *kp,\n const struct keymap *map, int size)\n {\n if(!map || size < 0x80) {\n- fprintf(stderr, \"%s - No PXA keypad map defined\\n\", __func__);\n+ error_report(\"%s - No PXA keypad map defined\", __func__);\n exit(-1);\n }\n \ndiff --git a/hw/input/tsc2005.c b/hw/input/tsc2005.c\nindex 7990954b6c..f5057e8eeb 100644\n--- a/hw/input/tsc2005.c\n+++ b/hw/input/tsc2005.c\n@@ -200,17 +200,17 @@ static void tsc2005_write(TSC2005State *s, int reg, uint16_t data)\n s->host_mode = (data >> 15) != 0;\n if (s->enabled != !(data & 0x4000)) {\n s->enabled = !(data & 0x4000);\n- fprintf(stderr, \"%s: touchscreen sense %sabled\\n\",\n- __func__, s->enabled ? \"en\" : \"dis\");\n+ error_report(\"%s: touchscreen sense %sabled\",\n+ __func__, s->enabled ? \"en\" : \"dis\");\n if (s->busy && !s->enabled)\n timer_del(s->timer);\n s->busy = s->busy && s->enabled;\n }\n s->nextprecision = (data >> 13) & 1;\n s->timing[0] = data & 0x1fff;\n- if ((s->timing[0] >> 11) == 3)\n- fprintf(stderr, \"%s: illegal conversion clock setting\\n\",\n- __func__);\n+ if ((s->timing[0] >> 11) == 3) {\n+ error_report(\"%s: illegal conversion clock setting\", __func__);\n+ }\n break;\n case 0xd:\t/* CFR1 */\n s->timing[1] = data & 0xf07;\n@@ -221,8 +221,7 @@ static void tsc2005_write(TSC2005State *s, int reg, uint16_t data)\n break;\n \n default:\n- fprintf(stderr, \"%s: write into read-only register %x\\n\",\n- __func__, reg);\n+ error_report(\"%s: write into read-only register %x\", __func__, reg);\n }\n }\n \n@@ -337,8 +336,8 @@ static uint8_t tsc2005_txrx_word(void *opaque, uint8_t value)\n s->nextprecision = (value >> 2) & 1;\n if (s->enabled != !(value & 1)) {\n s->enabled = !(value & 1);\n- fprintf(stderr, \"%s: touchscreen sense %sabled\\n\",\n- __func__, s->enabled ? \"en\" : \"dis\");\n+ error_report(\"%s: touchscreen sense %sabled\",\n+ __func__, s->enabled ? \"en\" : \"dis\");\n if (s->busy && !s->enabled)\n timer_del(s->timer);\n s->busy = s->busy && s->enabled;\ndiff --git a/hw/input/tsc210x.c b/hw/input/tsc210x.c\nindex d4b19c1825..c685221842 100644\n--- a/hw/input/tsc210x.c\n+++ b/hw/input/tsc210x.c\n@@ -396,8 +396,8 @@ static uint16_t tsc2102_data_register_read(TSC210xState *s, int reg)\n \n default:\n #ifdef TSC_VERBOSE\n- fprintf(stderr, \"tsc2102_data_register_read: \"\n- \"no such register: 0x%02x\\n\", reg);\n+ error_report(\"tsc2102_data_register_read: \"\n+ \"no such register: 0x%02x\", reg);\n #endif\n return 0xffff;\n }\n@@ -447,8 +447,8 @@ static uint16_t tsc2102_control_register_read(\n default:\n bad_reg:\n #ifdef TSC_VERBOSE\n- fprintf(stderr, \"tsc2102_control_register_read: \"\n- \"no such register: 0x%02x\\n\", reg);\n+ error_report(\"tsc2102_control_register_read: \"\n+ \"no such register: 0x%02x\", reg);\n #endif\n return 0xffff;\n }\n@@ -528,8 +528,8 @@ static uint16_t tsc2102_audio_register_read(TSC210xState *s, int reg)\n \n default:\n #ifdef TSC_VERBOSE\n- fprintf(stderr, \"tsc2102_audio_register_read: \"\n- \"no such register: 0x%02x\\n\", reg);\n+ error_report(\"tsc2102_audio_register_read: \"\n+ \"no such register: 0x%02x\", reg);\n #endif\n return 0xffff;\n }\n@@ -553,8 +553,8 @@ static void tsc2102_data_register_write(\n \n default:\n #ifdef TSC_VERBOSE\n- fprintf(stderr, \"tsc2102_data_register_write: \"\n- \"no such register: 0x%02x\\n\", reg);\n+ error_report(\"tsc2102_data_register_write: \"\n+ \"no such register: 0x%02x\", reg);\n #endif\n }\n }\n@@ -606,8 +606,8 @@ static void tsc2102_control_register_write(\n tsc210x_reset(s);\n #ifdef TSC_VERBOSE\n } else {\n- fprintf(stderr, \"tsc2102_control_register_write: \"\n- \"wrong value written into RESET\\n\");\n+ error_report(\"tsc2102_control_register_write: \"\n+ \"wrong value written into RESET\");\n #endif\n }\n return;\n@@ -616,8 +616,8 @@ static void tsc2102_control_register_write(\n s->timing = value & 0x3f;\n #ifdef TSC_VERBOSE\n if (value & ~0x3f)\n- fprintf(stderr, \"tsc2102_control_register_write: \"\n- \"wrong value written into CONFIG\\n\");\n+ error_report(\"tsc2102_control_register_write: \"\n+ \"wrong value written into CONFIG\");\n #endif\n return;\n \n@@ -637,8 +637,8 @@ static void tsc2102_control_register_write(\n default:\n bad_reg:\n #ifdef TSC_VERBOSE\n- fprintf(stderr, \"tsc2102_control_register_write: \"\n- \"no such register: 0x%02x\\n\", reg);\n+ error_report(\"tsc2102_control_register_write: \"\n+ \"no such register: 0x%02x\", reg);\n #endif\n }\n }\n@@ -651,8 +651,8 @@ static void tsc2102_audio_register_write(\n s->audio_ctrl1 = value & 0x0f3f;\n #ifdef TSC_VERBOSE\n if ((value & ~0x0f3f) || ((value & 7) != ((value >> 3) & 7)))\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"wrong value written into Audio 1\\n\");\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"wrong value written into Audio 1\");\n #endif\n tsc2102_audio_rate_update(s);\n tsc2102_audio_output_update(s);\n@@ -661,8 +661,8 @@ static void tsc2102_audio_register_write(\n case 0x01:\n #ifdef TSC_VERBOSE\n if (value != 0xff00)\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"wrong value written into reg 0x01\\n\");\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"wrong value written into reg 0x01\");\n #endif\n return;\n \n@@ -674,8 +674,8 @@ static void tsc2102_audio_register_write(\n case 0x03:\n #ifdef TSC_VERBOSE\n if (value != 0x8b00)\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"wrong value written into reg 0x03\\n\");\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"wrong value written into reg 0x03\");\n #endif\n return;\n \n@@ -683,8 +683,8 @@ static void tsc2102_audio_register_write(\n s->audio_ctrl2 = value & 0xf7f2;\n #ifdef TSC_VERBOSE\n if (value & ~0xf7fd)\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"wrong value written into Audio 2\\n\");\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"wrong value written into Audio 2\");\n #endif\n return;\n \n@@ -695,8 +695,8 @@ static void tsc2102_audio_register_write(\n s->dac_power = value & 0x9543;\n #ifdef TSC_VERBOSE\n if ((value & ~0x9543) != 0x2aa0)\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"wrong value written into Power\\n\");\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"wrong value written into Power\");\n #endif\n tsc2102_audio_rate_update(s);\n tsc2102_audio_output_update(s);\n@@ -707,8 +707,8 @@ static void tsc2102_audio_register_write(\n s->audio_ctrl3 |= value & 0xf800;\n #ifdef TSC_VERBOSE\n if (value & ~0xf8c7)\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"wrong value written into Audio 3\\n\");\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"wrong value written into Audio 3\");\n #endif\n tsc2102_audio_output_update(s);\n return;\n@@ -740,8 +740,8 @@ static void tsc2102_audio_register_write(\n s->pll[0] = value & 0xfffc;\n #ifdef TSC_VERBOSE\n if (value & ~0xfffc)\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"wrong value written into PLL 1\\n\");\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"wrong value written into PLL 1\");\n #endif\n return;\n \n@@ -749,8 +749,8 @@ static void tsc2102_audio_register_write(\n s->pll[1] = value & 0xfffc;\n #ifdef TSC_VERBOSE\n if (value & ~0xfffc)\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"wrong value written into PLL 2\\n\");\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"wrong value written into PLL 2\");\n #endif\n return;\n \n@@ -758,15 +758,15 @@ static void tsc2102_audio_register_write(\n s->softstep = !(value & 0x4000);\n #ifdef TSC_VERBOSE\n if (value & ~0x4000)\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"wrong value written into Audio 4\\n\");\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"wrong value written into Audio 4\");\n #endif\n return;\n \n default:\n #ifdef TSC_VERBOSE\n- fprintf(stderr, \"tsc2102_audio_register_write: \"\n- \"no such register: 0x%02x\\n\", reg);\n+ error_report(\"tsc2102_audio_register_write: \"\n+ \"no such register: 0x%02x\", reg);\n #endif\n }\n }\n@@ -847,7 +847,7 @@ static uint16_t tsc210x_read(TSC210xState *s)\n uint16_t ret = 0x0000;\n \n if (!s->command)\n- fprintf(stderr, \"tsc210x_read: SPI underrun!\\n\");\n+ error_report(\"tsc210x_read: SPI underrun!\");\n \n switch (s->page) {\n case TSC_DATA_REGISTERS_PAGE:\n@@ -886,7 +886,7 @@ static void tsc210x_write(TSC210xState *s, uint16_t value)\n s->state = true;\n } else {\n if (s->command)\n- fprintf(stderr, \"tsc210x_write: SPI overrun!\\n\");\n+ error_report(\"tsc210x_write: SPI overrun!\");\n else\n switch (s->page) {\n case TSC_DATA_REGISTERS_PAGE:\ndiff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c\nindex 4d3afc1b14..bf1ed7b18e 100644\n--- a/hw/input/virtio-input-hid.c\n+++ b/hw/input/virtio-input-hid.c\n@@ -208,8 +208,8 @@ static void virtio_input_handle_event(DeviceState *dev, QemuConsole *src,\n virtio_input_send(vinput, &event);\n } else {\n if (key->down) {\n- fprintf(stderr, \"%s: unmapped key: %d [%s]\\n\", __func__,\n- qcode, QKeyCode_str(qcode));\n+ error_report(\"%s: unmapped key: %d [%s]\", __func__,\n+ qcode, QKeyCode_str(qcode));\n }\n }\n break;\n@@ -222,9 +222,9 @@ static void virtio_input_handle_event(DeviceState *dev, QemuConsole *src,\n virtio_input_send(vinput, &event);\n } else {\n if (btn->down) {\n- fprintf(stderr, \"%s: unmapped button: %d [%s]\\n\", __func__,\n- btn->button,\n- InputButton_str(btn->button));\n+ error_report(\"%s: unmapped button: %d [%s]\", __func__,\n+ btn->button,\n+ InputButton_str(btn->button));\n }\n }\n break;\n@@ -310,8 +310,8 @@ static void virtio_input_hid_handle_status(VirtIOInput *vinput,\n kbd_put_ledstate(vhid->ledstate);\n break;\n default:\n- fprintf(stderr, \"%s: unknown type %d\\n\", __func__,\n- le16_to_cpu(event->type));\n+ error_report(\"%s: unknown type %d\", __func__,\n+ le16_to_cpu(event->type));\n break;\n }\n }\ndiff --git a/hw/input/virtio-input.c b/hw/input/virtio-input.c\nindex 0e42f0d02c..fb5fa0a280 100644\n--- a/hw/input/virtio-input.c\n+++ b/hw/input/virtio-input.c\n@@ -5,6 +5,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu/iov.h\"\n #include \"trace.h\"\n@@ -121,8 +122,8 @@ void virtio_input_add_config(VirtIOInput *vinput,\n \n if (virtio_input_find_config(vinput, config->select, config->subsel)) {\n /* should not happen */\n- fprintf(stderr, \"%s: duplicate config: %d/%d\\n\",\n- __func__, config->select, config->subsel);\n+ error_report(\"%s: duplicate config: %d/%d\",\n+ __func__, config->select, config->subsel);\n abort();\n }\n \ndiff --git a/hw/intc/arm_gic_kvm.c b/hw/intc/arm_gic_kvm.c\nindex ae095d08a3..a5478d3e20 100644\n--- a/hw/intc/arm_gic_kvm.c\n+++ b/hw/intc/arm_gic_kvm.c\n@@ -316,12 +316,12 @@ static void kvm_arm_gic_put(GICState *s)\n num_cpu = ((reg & 0xe0) >> 5) + 1;\n \n if (num_irq < s->num_irq) {\n- fprintf(stderr, \"Restoring %u IRQs, but kernel supports max %d\\n\",\n- s->num_irq, num_irq);\n+ error_report(\"Restoring %u IRQs, but kernel supports max %d\",\n+ s->num_irq, num_irq);\n abort();\n } else if (num_cpu != s->num_cpu) {\n- fprintf(stderr, \"Restoring %u CPU interfaces, kernel only has %d\\n\",\n- s->num_cpu, num_cpu);\n+ error_report(\"Restoring %u CPU interfaces, kernel only has %d\",\n+ s->num_cpu, num_cpu);\n /* Did we not create the VCPUs in the kernel yet? */\n abort();\n }\n@@ -411,8 +411,8 @@ static void kvm_arm_gic_get(GICState *s)\n s->num_cpu = ((reg & 0xe0) >> 5) + 1;\n \n if (s->num_irq > GIC_MAXIRQ) {\n- fprintf(stderr, \"Too many IRQs reported from the kernel: %d\\n\",\n- s->num_irq);\n+ error_report(\"Too many IRQs reported from the kernel: %d\",\n+ s->num_irq);\n abort();\n }\n \ndiff --git a/hw/intc/omap_intc.c b/hw/intc/omap_intc.c\nindex 6844c1aa83..7fc239715a 100644\n--- a/hw/intc/omap_intc.c\n+++ b/hw/intc/omap_intc.c\n@@ -539,8 +539,8 @@ static void omap2_inth_write(void *opaque, hwaddr addr,\n /* TODO: Make a bitmap (or sizeof(char)map) of access privileges\n * for every register, see Chapter 3 and 4 for privileged mode. */\n if (value & 1)\n- fprintf(stderr, \"%s: protection mode enable attempt\\n\",\n- __func__);\n+ error_report(\"%s: protection mode enable attempt\",\n+ __func__);\n return;\n \n case 0x50:\t/* INTC_IDLE */\ndiff --git a/hw/intc/openpic.c b/hw/intc/openpic.c\nindex 9dd285b923..dfaefbf575 100644\n--- a/hw/intc/openpic.c\n+++ b/hw/intc/openpic.c\n@@ -34,6 +34,7 @@\n *\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/ppc/mac.h\"\n #include \"hw/pci/pci.h\"\n@@ -162,7 +163,7 @@ static int inttgt_to_output(int inttgt)\n }\n }\n \n- fprintf(stderr, \"%s: unsupported inttgt %d\\n\", __func__, inttgt);\n+ error_report(\"%s: unsupported inttgt %d\", __func__, inttgt);\n return OPENPIC_OUTPUT_INT;\n }\n \n@@ -534,7 +535,7 @@ static void openpic_set_irq(void *opaque, int n_IRQ, int level)\n IRQSource *src;\n \n if (n_IRQ >= OPENPIC_MAX_IRQ) {\n- fprintf(stderr, \"%s: IRQ %d out of range\\n\", __func__, n_IRQ);\n+ error_report(\"%s: IRQ %d out of range\", __func__, n_IRQ);\n abort();\n }\n \n@@ -1208,7 +1209,7 @@ static uint32_t openpic_iack(OpenPICState *opp, IRQDest *dst, int cpu)\n src = &opp->src[irq];\n if (!(src->ivpr & IVPR_ACTIVITY_MASK) ||\n !(IVPR_PRIORITY(src->ivpr) > dst->ctpr)) {\n- fprintf(stderr, \"%s: bad raised IRQ %d ctpr %d ivpr 0x%08x\\n\",\n+ error_report(\"%s: bad raised IRQ %d ctpr %d ivpr 0x%08x\",\n __func__, irq, dst->ctpr, src->ivpr);\n openpic_update_irq(opp, irq);\n retval = opp->spve;\ndiff --git a/hw/intc/openpic_kvm.c b/hw/intc/openpic_kvm.c\nindex fa83420254..60c784ae86 100644\n--- a/hw/intc/openpic_kvm.c\n+++ b/hw/intc/openpic_kvm.c\n@@ -150,8 +150,8 @@ static void kvm_openpic_region_add(MemoryListener *listener,\n \n ret = ioctl(opp->fd, KVM_SET_DEVICE_ATTR, &attr);\n if (ret < 0) {\n- fprintf(stderr, \"%s: %s %\" PRIx64 \"\\n\", __func__,\n- strerror(errno), reg_base);\n+ error_report(\"%s: %s %\" PRIx64 \"\", __func__,\n+ strerror(errno), reg_base);\n }\n }\n \n@@ -184,8 +184,8 @@ static void kvm_openpic_region_del(MemoryListener *listener,\n \n ret = ioctl(opp->fd, KVM_SET_DEVICE_ATTR, &attr);\n if (ret < 0) {\n- fprintf(stderr, \"%s: %s %\" PRIx64 \"\\n\", __func__,\n- strerror(errno), reg_base);\n+ error_report(\"%s: %s %\" PRIx64 \"\", __func__,\n+ strerror(errno), reg_base);\n }\n }\n \ndiff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c\nindex 7ead17ac3e..3774b1a2f0 100644\n--- a/hw/intc/s390_flic_kvm.c\n+++ b/hw/intc/s390_flic_kvm.c\n@@ -83,7 +83,7 @@ static void flic_enable_pfault(KVMS390FLICState *flic)\n rc = ioctl(flic->fd, KVM_SET_DEVICE_ATTR, &attr);\n \n if (rc) {\n- fprintf(stderr, \"flic: couldn't enable pfault\\n\");\n+ error_report(\"flic: couldn't enable pfault\");\n }\n }\n \n@@ -97,7 +97,7 @@ static void flic_disable_wait_pfault(KVMS390FLICState *flic)\n rc = ioctl(flic->fd, KVM_SET_DEVICE_ATTR, &attr);\n \n if (rc) {\n- fprintf(stderr, \"flic: couldn't disable pfault\\n\");\n+ error_report(\"flic: couldn't disable pfault\");\n }\n }\n \ndiff --git a/hw/ipmi/ipmi.c b/hw/ipmi/ipmi.c\nindex b27babd504..81c62920de 100644\n--- a/hw/ipmi/ipmi.c\n+++ b/hw/ipmi/ipmi.c\n@@ -23,6 +23,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/ipmi/ipmi.h\"\n #include \"sysemu/sysemu.h\"\ndiff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c\nindex abab3bba4f..8c0535d3dd 100644\n--- a/hw/ipmi/ipmi_bmc_extern.c\n+++ b/hw/ipmi/ipmi_bmc_extern.c\n@@ -28,6 +28,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu/timer.h\"\n #include \"chardev/char-fe.h\"\n@@ -194,8 +195,8 @@ static void ipmi_bmc_extern_handle_command(IPMIBmc *b,\n \n if (ibe->outlen) {\n /* We already have a command queued. Shouldn't ever happen. */\n- fprintf(stderr, \"IPMI KCS: Got command when not finished with the\"\n- \" previous command\\n\");\n+ error_report(\"IPMI KCS: Got command when not finished with the\"\n+ \" previous command\");\n abort();\n }\n \ndiff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c\nindex 348e0eab9d..0f2e426d02 100644\n--- a/hw/isa/isa-bus.c\n+++ b/hw/isa/isa-bus.c\n@@ -17,6 +17,7 @@\n * License along with this library; if not, see <http://www.gnu.org/licenses/>.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"hw/hw.h\"\n #include \"monitor/monitor.h\"\n@@ -186,15 +187,15 @@ ISADevice *isa_vga_init(ISABus *bus)\n case VGA_CIRRUS:\n return isa_create_simple(bus, \"isa-cirrus-vga\");\n case VGA_QXL:\n- fprintf(stderr, \"%s: qxl: no PCI bus\\n\", __func__);\n+ error_report(\"%s: qxl: no PCI bus\", __func__);\n return NULL;\n case VGA_STD:\n return isa_create_simple(bus, \"isa-vga\");\n case VGA_VMWARE:\n- fprintf(stderr, \"%s: vmware_vga: no PCI bus\\n\", __func__);\n+ error_report(\"%s: vmware_vga: no PCI bus\", __func__);\n return NULL;\n case VGA_VIRTIO:\n- fprintf(stderr, \"%s: virtio-vga: no PCI bus\\n\", __func__);\n+ error_report(\"%s: virtio-vga: no PCI bus\", __func__);\n return NULL;\n case VGA_NONE:\n default:\ndiff --git a/hw/lm32/lm32_boards.c b/hw/lm32/lm32_boards.c\nindex b0bb3ef58a..d739acf476 100644\n--- a/hw/lm32/lm32_boards.c\n+++ b/hw/lm32/lm32_boards.c\n@@ -18,6 +18,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n #include \"hw/sysbus.h\"\n@@ -152,7 +153,7 @@ static void lm32_evr_init(MachineState *machine)\n }\n \n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n kernel_filename);\n exit(1);\n }\n@@ -250,7 +251,7 @@ static void lm32_uclinux_init(MachineState *machine)\n }\n \n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n kernel_filename);\n exit(1);\n }\ndiff --git a/hw/lm32/milkymist.c b/hw/lm32/milkymist.c\nindex 4db4d2d533..caa6cf4e0f 100644\n--- a/hw/lm32/milkymist.c\n+++ b/hw/lm32/milkymist.c\n@@ -18,6 +18,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n #include \"hw/sysbus.h\"\n@@ -149,7 +150,7 @@ milkymist_init(MachineState *machine)\n \n /* if no kernel is given no valid bios rom is a fatal error */\n if (!kernel_filename && !dinfo && !bios_filename && !qtest_enabled()) {\n- fprintf(stderr, \"qemu: could not load Milkymist One bios '%s'\\n\",\n+ error_report(\"qemu: could not load Milkymist One bios '%s'\",\n bios_name);\n exit(1);\n }\n@@ -188,7 +189,7 @@ milkymist_init(MachineState *machine)\n }\n \n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n kernel_filename);\n exit(1);\n }\ndiff --git a/hw/m68k/an5206.c b/hw/m68k/an5206.c\nindex 9002c460e5..bdab620a02 100644\n--- a/hw/m68k/an5206.c\n+++ b/hw/m68k/an5206.c\n@@ -66,7 +66,7 @@ static void an5206_init(MachineState *machine)\n if (qtest_enabled()) {\n return;\n }\n- fprintf(stderr, \"Kernel image must be specified\\n\");\n+ error_report(\"Kernel image must be specified\");\n exit(1);\n }\n \n@@ -83,7 +83,7 @@ static void an5206_init(MachineState *machine)\n entry = KERNEL_LOAD_ADDR;\n }\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\", kernel_filename);\n+ error_report(\"qemu: could not load kernel '%s'\", kernel_filename);\n exit(1);\n }\n \ndiff --git a/hw/m68k/mcf5206.c b/hw/m68k/mcf5206.c\nindex b81901fdfd..fbf3f0f074 100644\n--- a/hw/m68k/mcf5206.c\n+++ b/hw/m68k/mcf5206.c\n@@ -6,6 +6,7 @@\n * This code is licensed under the GPL\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n #include \"hw/hw.h\"\n@@ -220,7 +221,7 @@ static void m5206_mbar_update(m5206_mbar_state *s)\n break;\n default:\n /* Unknown vector. */\n- fprintf(stderr, \"Unhandled vector for IRQ %d\\n\", irq);\n+ error_report(\"Unhandled vector for IRQ %d\", irq);\n vector = 0xf;\n break;\n }\ndiff --git a/hw/m68k/mcf5208.c b/hw/m68k/mcf5208.c\nindex b9dde75106..2fb5037b72 100644\n--- a/hw/m68k/mcf5208.c\n+++ b/hw/m68k/mcf5208.c\n@@ -6,6 +6,7 @@\n * This code is licensed under the GPL\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -257,7 +258,7 @@ static void mcf5208evb_init(MachineState *machine)\n mcf5208_sys_init(address_space_mem, pic);\n \n if (nb_nics > 1) {\n- fprintf(stderr, \"Too many NICs\\n\");\n+ error_report(\"Too many NICs\");\n exit(1);\n }\n if (nd_table[0].used) {\n@@ -292,7 +293,7 @@ static void mcf5208evb_init(MachineState *machine)\n if (qtest_enabled()) {\n return;\n }\n- fprintf(stderr, \"Kernel image must be specified\\n\");\n+ error_report(\"Kernel image must be specified\");\n exit(1);\n }\n \n@@ -309,7 +310,7 @@ static void mcf5208evb_init(MachineState *machine)\n entry = 0x40000000;\n }\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\", kernel_filename);\n+ error_report(\"qemu: could not load kernel '%s'\", kernel_filename);\n exit(1);\n }\n \ndiff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c\nindex 457a08a2fe..31466050de 100644\n--- a/hw/microblaze/boot.c\n+++ b/hw/microblaze/boot.c\n@@ -86,7 +86,7 @@ static int microblaze_load_dtb(hwaddr addr,\n r = qemu_fdt_setprop_string(fdt, \"/chosen\", \"bootargs\",\n kernel_cmdline);\n if (r < 0) {\n- fprintf(stderr, \"couldn't set /chosen/bootargs\\n\");\n+ error_report(\"couldn't set /chosen/bootargs\");\n }\n }\n \ndiff --git a/hw/mips/boston.c b/hw/mips/boston.c\nindex 776ee283e1..ee82968ea7 100644\n--- a/hw/mips/boston.c\n+++ b/hw/mips/boston.c\n@@ -353,7 +353,7 @@ static const void *boston_fdt_filter(void *opaque, const void *fdt_orig,\n \n err = fdt_open_into(fdt_orig, fdt, fdt_sz);\n if (err) {\n- fprintf(stderr, \"unable to open FDT\\n\");\n+ error_report(\"unable to open FDT\");\n return NULL;\n }\n \n@@ -361,7 +361,7 @@ static const void *boston_fdt_filter(void *opaque, const void *fdt_orig,\n ? machine->kernel_cmdline : \" \";\n err = qemu_fdt_setprop_string(fdt, \"/chosen\", \"bootargs\", cmdline);\n if (err < 0) {\n- fprintf(stderr, \"couldn't set /chosen/bootargs\\n\");\n+ error_report(\"couldn't set /chosen/bootargs\");\n return NULL;\n }\n \ndiff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c\nindex 75318680e1..34710a466c 100644\n--- a/hw/mips/mips_fulong2e.c\n+++ b/hw/mips/mips_fulong2e.c\n@@ -143,7 +143,7 @@ static int64_t load_kernel (CPUMIPSState *env)\n initrd_offset, ram_size - initrd_offset);\n }\n if (initrd_size == (target_ulong) -1) {\n- fprintf(stderr, \"qemu: could not load initial ram disk '%s'\\n\",\n+ error_report(\"qemu: could not load initial ram disk '%s'\",\n loaderparams.initrd_filename);\n exit(1);\n }\n@@ -342,7 +342,7 @@ static void mips_fulong2e_init(MachineState *machine)\n \n isa_bus = vt82c686b_init(pci_bus, PCI_DEVFN(FULONG2E_VIA_SLOT, 0));\n if (!isa_bus) {\n- fprintf(stderr, \"vt82c686b_init error\\n\");\n+ error_report(\"vt82c686b_init error\");\n exit(1);\n }\n \ndiff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c\nindex 7e6626dc88..6c91a940be 100644\n--- a/hw/mips/mips_jazz.c\n+++ b/hw/mips/mips_jazz.c\n@@ -271,10 +271,10 @@ static void mips_jazz_init(MachineState *machine,\n sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(rc4030, 4));\n break;\n } else if (is_help_option(nd->model)) {\n- fprintf(stderr, \"qemu: Supported NICs: dp83932\\n\");\n+ error_report(\"qemu: Supported NICs: dp83932\");\n exit(1);\n } else {\n- fprintf(stderr, \"qemu: Unsupported NIC: %s\\n\", nd->model);\n+ error_report(\"qemu: Unsupported NIC: %s\", nd->model);\n exit(1);\n }\n }\ndiff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c\nindex 2adb9bcf89..d457adfa69 100644\n--- a/hw/mips/mips_malta.c\n+++ b/hw/mips/mips_malta.c\n@@ -856,8 +856,8 @@ static int64_t load_kernel (void)\n ram_size - initrd_offset);\n }\n if (initrd_size == (target_ulong) -1) {\n- fprintf(stderr, \"qemu: could not load initial ram disk '%s'\\n\",\n- loaderparams.initrd_filename);\n+ error_report(\"qemu: could not load initial ram disk '%s'\",\n+ loaderparams.initrd_filename);\n exit(1);\n }\n }\ndiff --git a/hw/mips/mips_mipssim.c b/hw/mips/mips_mipssim.c\nindex a092072e2a..a3d9406610 100644\n--- a/hw/mips/mips_mipssim.c\n+++ b/hw/mips/mips_mipssim.c\n@@ -101,8 +101,8 @@ static int64_t load_kernel(void)\n initrd_offset, loaderparams.ram_size - initrd_offset);\n }\n if (initrd_size == (target_ulong) -1) {\n- fprintf(stderr, \"qemu: could not load initial ram disk '%s'\\n\",\n- loaderparams.initrd_filename);\n+ error_report(\"qemu: could not load initial ram disk '%s'\",\n+ loaderparams.initrd_filename);\n exit(1);\n }\n }\ndiff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c\nindex 1272d4ef9d..e54ce918a7 100644\n--- a/hw/mips/mips_r4k.c\n+++ b/hw/mips/mips_r4k.c\n@@ -121,8 +121,8 @@ static int64_t load_kernel(void)\n ram_size - initrd_offset);\n }\n if (initrd_size == (target_ulong) -1) {\n- fprintf(stderr, \"qemu: could not load initial ram disk '%s'\\n\",\n- loaderparams.initrd_filename);\n+ error_report(\"qemu: could not load initial ram disk '%s'\",\n+ loaderparams.initrd_filename);\n exit(1);\n }\n }\n@@ -246,7 +246,7 @@ void mips_r4k_init(MachineState *machine)\n blk_by_legacy_dinfo(dinfo),\n sector_len, mips_rom / sector_len,\n 4, 0, 0, 0, 0, be)) {\n- fprintf(stderr, \"qemu: Error registering flash memory.\\n\");\n+ error_report(\"qemu: Error registering flash memory.\");\n \t}\n } else if (!qtest_enabled()) {\n /* not fatal */\ndiff --git a/hw/misc/a9scu.c b/hw/misc/a9scu.c\nindex 3e8ad8cd73..21b8e49b6c 100644\n--- a/hw/misc/a9scu.c\n+++ b/hw/misc/a9scu.c\n@@ -9,6 +9,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/misc/a9scu.h\"\n \n static uint64_t a9_scu_read(void *opaque, hwaddr offset,\n@@ -59,7 +60,7 @@ static void a9_scu_write(void *opaque, hwaddr offset,\n mask = 0xffffffff;\n break;\n default:\n- fprintf(stderr, \"Invalid size %u in write to a9 scu register %x\\n\",\n+ error_report(\"Invalid size %u in write to a9 scu register %x\",\n size, (unsigned)offset);\n return;\n }\ndiff --git a/hw/misc/omap_gpmc.c b/hw/misc/omap_gpmc.c\nindex 84f9e4c612..e3b30e90ea 100644\n--- a/hw/misc/omap_gpmc.c\n+++ b/hw/misc/omap_gpmc.c\n@@ -19,6 +19,7 @@\n * with this program; if not, see <http://www.gnu.org/licenses/>.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/block/flash.h\"\n #include \"hw/arm/omap.h\"\n@@ -408,7 +409,7 @@ static void omap_gpmc_cs_map(struct omap_gpmc_s *s, int cs)\n /* TODO: check for overlapping regions and report access errors */\n if (mask != 0x8 && mask != 0xc && mask != 0xe && mask != 0xf\n && !(s->accept_256 && !mask)) {\n- fprintf(stderr, \"%s: invalid chip-select mask address (0x%x)\\n\",\n+ error_report(\"%s: invalid chip-select mask address (0x%x)\",\n __func__, mask);\n }\n \n@@ -642,7 +643,7 @@ static void omap_gpmc_write(void *opaque, hwaddr addr,\n \n case 0x010:\t/* GPMC_SYSCONFIG */\n if ((value >> 3) == 0x3)\n- fprintf(stderr, \"%s: bad SDRAM idle mode %\"PRIi64\"\\n\",\n+ error_report(\"%s: bad SDRAM idle mode %\"PRIi64\"\",\n __func__, value >> 3);\n if (value & 2)\n omap_gpmc_reset(s);\n@@ -806,7 +807,7 @@ static void omap_gpmc_write(void *opaque, hwaddr addr,\n break;\n case 0x230:\t/* GPMC_TESTMODE_CTRL */\n if (value & 7)\n- fprintf(stderr, \"%s: test mode enable attempt\\n\", __func__);\n+ error_report(\"%s: test mode enable attempt\", __func__);\n break;\n \n default:\n@@ -864,7 +865,7 @@ void omap_gpmc_attach(struct omap_gpmc_s *s, int cs, MemoryRegion *iomem)\n assert(iomem);\n \n if (cs < 0 || cs >= 8) {\n- fprintf(stderr, \"%s: bad chip-select %i\\n\", __func__, cs);\n+ error_report(\"%s: bad chip-select %i\", __func__, cs);\n exit(-1);\n }\n f = &s->cs_file[cs];\n@@ -881,7 +882,7 @@ void omap_gpmc_attach_nand(struct omap_gpmc_s *s, int cs, DeviceState *nand)\n assert(nand);\n \n if (cs < 0 || cs >= 8) {\n- fprintf(stderr, \"%s: bad chip-select %i\\n\", __func__, cs);\n+ error_report(\"%s: bad chip-select %i\", __func__, cs);\n exit(-1);\n }\n f = &s->cs_file[cs];\ndiff --git a/hw/misc/omap_l4.c b/hw/misc/omap_l4.c\nindex 96fc057b4e..47d9c10aeb 100644\n--- a/hw/misc/omap_l4.c\n+++ b/hw/misc/omap_l4.c\n@@ -18,6 +18,7 @@\n * with this program; if not, see <http://www.gnu.org/licenses/>.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/arm/omap.h\"\n \n@@ -126,7 +127,7 @@ struct omap_target_agent_s *omap_l4ta_get(struct omap_l4_s *bus,\n break;\n }\n if (!ta) {\n- fprintf(stderr, \"%s: bad target agent (%i)\\n\", __func__, cs);\n+ error_report(\"%s: bad target agent (%i)\", __func__, cs);\n exit(-1);\n }\n \n@@ -151,7 +152,7 @@ hwaddr omap_l4_attach(struct omap_target_agent_s *ta,\n hwaddr base;\n \n if (region < 0 || region >= ta->regions) {\n- fprintf(stderr, \"%s: bad io region (%i)\\n\", __func__, region);\n+ error_report(\"%s: bad io region (%i)\", __func__, region);\n exit(-1);\n }\n \ndiff --git a/hw/misc/omap_sdrc.c b/hw/misc/omap_sdrc.c\nindex 7b38c5568c..3dcabc1e00 100644\n--- a/hw/misc/omap_sdrc.c\n+++ b/hw/misc/omap_sdrc.c\n@@ -18,6 +18,7 @@\n * with this program; if not, see <http://www.gnu.org/licenses/>.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/arm/omap.h\"\n \n@@ -108,7 +109,7 @@ static void omap_sdrc_write(void *opaque, hwaddr addr,\n \n case 0x10:\t/* SDRC_SYSCONFIG */\n if ((value >> 3) != 0x2)\n- fprintf(stderr, \"%s: bad SDRAM idle mode %i\\n\",\n+ error_report(\"%s: bad SDRAM idle mode %i\",\n __func__, (unsigned)value >> 3);\n if (value & 2)\n omap_sdrc_reset(s);\ndiff --git a/hw/misc/vmport.c b/hw/misc/vmport.c\nindex 165500223f..55369bd180 100644\n--- a/hw/misc/vmport.c\n+++ b/hw/misc/vmport.c\n@@ -80,7 +80,7 @@ static uint64_t vmport_ioport_read(void *opaque, hwaddr addr,\n if (!s->func[command])\n {\n #ifdef VMPORT_DEBUG\n- fprintf(stderr, \"vmport: unknown command %x\\n\", command);\n+ error_report(\"vmport: unknown command %x\", command);\n #endif\n return eax;\n }\ndiff --git a/hw/moxie/moxiesim.c b/hw/moxie/moxiesim.c\nindex 5ea8dd3a93..5916f86c68 100644\n--- a/hw/moxie/moxiesim.c\n+++ b/hw/moxie/moxiesim.c\n@@ -25,6 +25,7 @@\n * THE SOFTWARE.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -61,7 +62,7 @@ static void load_kernel(MoxieCPU *cpu, LoaderParams *loader_params)\n 0, 0);\n \n if (kernel_size <= 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n loader_params->kernel_filename);\n exit(1);\n }\n@@ -85,8 +86,8 @@ static void load_kernel(MoxieCPU *cpu, LoaderParams *loader_params)\n ram_size);\n }\n if (initrd_size == (target_ulong)-1) {\n- fprintf(stderr, \"qemu: could not load initial ram disk '%s'\\n\",\n- loader_params->initrd_filename);\n+ error_report(\"qemu: could not load initial ram disk '%s'\",\n+ loader_params->initrd_filename);\n exit(1);\n }\n }\ndiff --git a/hw/net/fsl_etsec/etsec.c b/hw/net/fsl_etsec/etsec.c\nindex 9da1932970..965effa314 100644\n--- a/hw/net/fsl_etsec/etsec.c\n+++ b/hw/net/fsl_etsec/etsec.c\n@@ -347,7 +347,7 @@ static ssize_t etsec_receive(NetClientState *nc,\n eTSEC *etsec = qemu_get_nic_opaque(nc);\n \n #if defined(HEX_DUMP)\n- fprintf(stderr, \"%s receive size:%zd\\n\", nc->name, size);\n+ error_report(\"%s receive size:%zd\", nc->name, size);\n qemu_hexdump((void *)buf, stderr, \"\", size);\n #endif\n /* Flush is unnecessary as are already in receiving path */\ndiff --git a/hw/net/pcnet.c b/hw/net/pcnet.c\nindex 654455355f..5f2b5fe046 100644\n--- a/hw/net/pcnet.c\n+++ b/hw/net/pcnet.c\n@@ -1070,7 +1070,7 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_)\n if (!s->looptest) {\n if (size > 4092) {\n #ifdef PCNET_DEBUG_RMD\n- fprintf(stderr, \"pcnet: truncates rx packet.\\n\");\n+ error_report(\"pcnet: truncates rx packet.\");\n #endif\n size = 4092;\n }\ndiff --git a/hw/net/smc91c111.c b/hw/net/smc91c111.c\nindex 3b16dcf5a1..ae40fd6e6e 100644\n--- a/hw/net/smc91c111.c\n+++ b/hw/net/smc91c111.c\n@@ -8,6 +8,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/sysbus.h\"\n #include \"net/net.h\"\n #include \"hw/devices.h\"\n@@ -362,9 +363,9 @@ static void smc91c111_writeb(void *opaque, hwaddr offset,\n return;\n case 12: /* Control */\n if (value & 1)\n- fprintf(stderr, \"smc91c111:EEPROM store not implemented\\n\");\n+ error_report(\"smc91c111:EEPROM store not implemented\");\n if (value & 2)\n- fprintf(stderr, \"smc91c111:EEPROM reload not implemented\\n\");\n+ error_report(\"smc91c111:EEPROM reload not implemented\");\n value &= ~3;\n SET_LOW(ctr, value);\n return;\ndiff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c\nindex e037db63a3..37d0cce560 100644\n--- a/hw/net/vhost_net.c\n+++ b/hw/net/vhost_net.c\n@@ -135,7 +135,7 @@ static int vhost_net_get_fd(NetClientState *backend)\n case NET_CLIENT_DRIVER_TAP:\n return tap_get_fd(backend);\n default:\n- fprintf(stderr, \"vhost-net requires tap backend\\n\");\n+ error_report(\"vhost-net requires tap backend\");\n return -EBADFD;\n }\n }\n@@ -148,7 +148,7 @@ struct vhost_net *vhost_net_init(VhostNetOptions *options)\n uint64_t features = 0;\n \n if (!options->net_backend) {\n- fprintf(stderr, \"vhost-net requires net backend to be setup\\n\");\n+ error_report(\"vhost-net requires net backend to be setup\");\n goto fail;\n }\n net->nc = options->net_backend;\n@@ -186,8 +186,8 @@ struct vhost_net *vhost_net_init(VhostNetOptions *options)\n net->dev.features &= ~(1ULL << VIRTIO_NET_F_MRG_RXBUF);\n }\n if (~net->dev.features & net->dev.backend_features) {\n- fprintf(stderr, \"vhost lacks feature mask %\" PRIu64\n- \" for backend\\n\",\n+ error_report(\"vhost lacks feature mask %\" PRIu64\n+ \" for backend\",\n (uint64_t)(~net->dev.features & net->dev.backend_features));\n goto fail;\n }\n@@ -197,8 +197,8 @@ struct vhost_net *vhost_net_init(VhostNetOptions *options)\n if (net->nc->info->type == NET_CLIENT_DRIVER_VHOST_USER) {\n features = vhost_user_get_acked_features(net->nc);\n if (~net->dev.features & features) {\n- fprintf(stderr, \"vhost lacks feature mask %\" PRIu64\n- \" for backend\\n\",\n+ error_report(\"vhost lacks feature mask %\" PRIu64\n+ \" for backend\",\n (uint64_t)(~net->dev.features & features));\n goto fail;\n }\n@@ -349,7 +349,7 @@ err_start:\n }\n e = k->set_guest_notifiers(qbus->parent, total_queues * 2, false);\n if (e < 0) {\n- fprintf(stderr, \"vhost guest notifier cleanup failed: %d\\n\", e);\n+ error_report(\"vhost guest notifier cleanup failed: %d\", e);\n fflush(stderr);\n }\n err:\n@@ -370,7 +370,7 @@ void vhost_net_stop(VirtIODevice *dev, NetClientState *ncs,\n \n r = k->set_guest_notifiers(qbus->parent, total_queues * 2, false);\n if (r < 0) {\n- fprintf(stderr, \"vhost guest notifier cleanup failed: %d\\n\", r);\n+ error_report(\"vhost guest notifier cleanup failed: %d\", r);\n fflush(stderr);\n }\n assert(r >= 0);\ndiff --git a/hw/nios2/boot.c b/hw/nios2/boot.c\nindex 2b31f5b844..c896e8007b 100644\n--- a/hw/nios2/boot.c\n+++ b/hw/nios2/boot.c\n@@ -96,7 +96,7 @@ static int nios2_load_dtb(struct nios2_boot_info bi, const uint32_t ramsize,\n r = qemu_fdt_setprop_string(fdt, \"/chosen\", \"bootargs\",\n kernel_cmdline);\n if (r < 0) {\n- fprintf(stderr, \"couldn't set /chosen/bootargs\\n\");\n+ error_report(\"couldn't set /chosen/bootargs\");\n }\n }\n \ndiff --git a/hw/nvram/eeprom93xx.c b/hw/nvram/eeprom93xx.c\nindex 2fd0e3c29f..5cad031eba 100644\n--- a/hw/nvram/eeprom93xx.c\n+++ b/hw/nvram/eeprom93xx.c\n@@ -36,6 +36,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/nvram/eeprom93xx.h\"\n \n@@ -105,8 +106,8 @@ static int get_uint16_from_uint8(QEMUFile *f, void *pv, size_t size,\n static int put_unused(QEMUFile *f, void *pv, size_t size, VMStateField *field,\n QJSON *vmdesc)\n {\n- fprintf(stderr, \"uint16_from_uint8 is used only for backwards compatibility.\\n\");\n- fprintf(stderr, \"Never should be used to write a new state.\\n\");\n+ error_report(\"uint16_from_uint8 is used only for backwards compatibility.\");\n+ error_report(\"Never should be used to write a new state.\");\n exit(0);\n \n return 0;\ndiff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c\nindex e3bd626b8c..cf9a816c0e 100644\n--- a/hw/nvram/fw_cfg.c\n+++ b/hw/nvram/fw_cfg.c\n@@ -515,8 +515,8 @@ static int get_uint32_as_uint16(QEMUFile *f, void *pv, size_t size,\n static int put_unused(QEMUFile *f, void *pv, size_t size, VMStateField *field,\n QJSON *vmdesc)\n {\n- fprintf(stderr, \"uint32_as_uint16 is only used for backward compatibility.\\n\");\n- fprintf(stderr, \"This functions shouldn't be called.\\n\");\n+ error_report(\"uint32_as_uint16 is only used for backward compatibility.\");\n+ error_report(\"This functions shouldn't be called.\");\n \n return 0;\n }\ndiff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c\nindex 86bf2849c4..44a6d115dd 100644\n--- a/hw/openrisc/openrisc_sim.c\n+++ b/hw/openrisc/openrisc_sim.c\n@@ -19,6 +19,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -87,7 +88,7 @@ static void cpu_openrisc_load_kernel(ram_addr_t ram_size,\n }\n \n if (kernel_size < 0) {\n- fprintf(stderr, \"QEMU: couldn't load the kernel '%s'\\n\",\n+ error_report(\"QEMU: couldn't load the kernel '%s'\",\n kernel_filename);\n exit(1);\n }\ndiff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c\nindex 1767d2af61..48fef86c05 100644\n--- a/hw/pci-host/bonito.c\n+++ b/hw/pci-host/bonito.c\n@@ -38,7 +38,7 @@\n */\n \n #include \"qemu/osdep.h\"\n-\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/pci/pci.h\"\n #include \"hw/i386/pc.h\"\n@@ -449,8 +449,8 @@ static uint32_t bonito_sbridge_pciaddr(void *opaque, hwaddr addr)\n regno = (cfgaddr & BONITO_PCICONF_REG_MASK) >> BONITO_PCICONF_REG_OFFSET;\n \n if (idsel == 0) {\n- fprintf(stderr, \"error in bonito pci config address \" TARGET_FMT_plx\n- \",pcimap_cfg=%x\\n\", addr, s->regs[BONITO_PCIMAP_CFG]);\n+ error_report(\"error in bonito pci config address \" TARGET_FMT_plx\n+ \",pcimap_cfg=%x\", addr, s->regs[BONITO_PCIMAP_CFG]);\n exit(1);\n }\n pciaddr = PCI_ADDR(pci_bus_num(phb->bus), devno, funno, regno);\ndiff --git a/hw/pci/pci.c b/hw/pci/pci.c\nindex 1e6fb88eba..1c8395d319 100644\n--- a/hw/pci/pci.c\n+++ b/hw/pci/pci.c\n@@ -515,7 +515,7 @@ static int get_pci_irq_state(QEMUFile *f, void *pv, size_t size,\n for (i = 0; i < PCI_NUM_PINS; ++i) {\n irq_state[i] = qemu_get_be32(f);\n if (irq_state[i] != 0x1 && irq_state[i] != 0) {\n- fprintf(stderr, \"irq state %d: must be 0 or 1.\\n\",\n+ error_report(\"irq state %d: must be 0 or 1.\",\n irq_state[i]);\n return -EINVAL;\n }\n@@ -678,7 +678,7 @@ static PCIBus *pci_get_bus_devfn(int *devfnp, PCIBus *root,\n unsigned slot;\n \n if (!root) {\n- fprintf(stderr, \"No primary PCI bus\\n\");\n+ error_report(\"No primary PCI bus\");\n return NULL;\n }\n \n@@ -694,7 +694,7 @@ static PCIBus *pci_get_bus_devfn(int *devfnp, PCIBus *root,\n }\n \n if (dom != 0) {\n- fprintf(stderr, \"No support for non-zero PCI domains\\n\");\n+ error_report(\"No support for non-zero PCI domains\");\n return NULL;\n }\n \n@@ -1118,8 +1118,8 @@ void pci_register_bar(PCIDevice *pci_dev, int region_num,\n assert(region_num >= 0);\n assert(region_num < PCI_NUM_REGIONS);\n if (size & (size-1)) {\n- fprintf(stderr, \"ERROR: PCI region size must be pow2 \"\n- \"type=0x%x, size=0x%\"FMT_PCIBUS\"\\n\", type, size);\n+ error_report(\"ERROR: PCI region size must be pow2 \"\n+ \"type=0x%x, size=0x%\"FMT_PCIBUS\"\", type, size);\n exit(1);\n }\n \ndiff --git a/hw/ppc/e500.c b/hw/ppc/e500.c\nindex db0e49ab8f..8a5350161f 100644\n--- a/hw/ppc/e500.c\n+++ b/hw/ppc/e500.c\n@@ -333,13 +333,13 @@ static int ppce500_load_device_tree(MachineState *machine,\n ret = qemu_fdt_setprop_cell(fdt, \"/chosen\", \"linux,initrd-start\",\n initrd_base);\n if (ret < 0) {\n- fprintf(stderr, \"couldn't set /chosen/linux,initrd-start\\n\");\n+ error_report(\"couldn't set /chosen/linux,initrd-start\");\n }\n \n ret = qemu_fdt_setprop_cell(fdt, \"/chosen\", \"linux,initrd-end\",\n (initrd_base + initrd_size));\n if (ret < 0) {\n- fprintf(stderr, \"couldn't set /chosen/linux,initrd-end\\n\");\n+ error_report(\"couldn't set /chosen/linux,initrd-end\");\n }\n \n }\n@@ -353,7 +353,7 @@ static int ppce500_load_device_tree(MachineState *machine,\n ret = qemu_fdt_setprop_string(fdt, \"/chosen\", \"bootargs\",\n machine->kernel_cmdline);\n if (ret < 0)\n- fprintf(stderr, \"couldn't set /chosen/bootargs\\n\");\n+ error_report(\"couldn't set /chosen/bootargs\");\n \n if (kvm_enabled()) {\n /* Read out host's frequencies */\n@@ -720,7 +720,7 @@ static DeviceState *ppce500_init_mpic_kvm(PPCE500Params *params,\n \n CPU_FOREACH(cs) {\n if (kvm_openpic_connect_vcpu(dev, cs)) {\n- fprintf(stderr, \"%s: failed to connect vcpu to irqchip\\n\",\n+ error_report(\"%s: failed to connect vcpu to irqchip\",\n __func__);\n abort();\n }\n@@ -821,7 +821,7 @@ void ppce500_init(MachineState *machine, PPCE500Params *params)\n cs = CPU(cpu);\n \n if (env->mmu_model != POWERPC_MMU_BOOKE206) {\n- fprintf(stderr, \"MMU model %i not supported by this machine.\\n\",\n+ error_report(\"MMU model %i not supported by this machine.\",\n env->mmu_model);\n exit(1);\n }\n@@ -967,7 +967,7 @@ void ppce500_init(MachineState *machine, PPCE500Params *params)\n cur_base,\n ram_size - cur_base);\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n machine->kernel_filename);\n exit(1);\n }\n@@ -982,8 +982,8 @@ void ppce500_init(MachineState *machine, PPCE500Params *params)\n ram_size - initrd_base);\n \n if (initrd_size < 0) {\n- fprintf(stderr, \"qemu: could not load initial ram disk '%s'\\n\",\n- machine->initrd_filename);\n+ error_report(\"qemu: could not load initial ram disk '%s'\",\n+ machine->initrd_filename);\n exit(1);\n }\n \n@@ -1024,7 +1024,7 @@ void ppce500_init(MachineState *machine, PPCE500Params *params)\n kernel_size = load_uimage(filename, &bios_entry, &loadaddr, NULL,\n NULL, NULL);\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load firmware '%s'\\n\", filename);\n+ error_report(\"qemu: could not load firmware '%s'\", filename);\n exit(1);\n }\n }\n@@ -1037,7 +1037,7 @@ void ppce500_init(MachineState *machine, PPCE500Params *params)\n initrd_base, initrd_size,\n kernel_base, kernel_size);\n if (dt_size < 0) {\n- fprintf(stderr, \"couldn't load device tree\\n\");\n+ error_report(\"couldn't load device tree\");\n exit(1);\n }\n assert(dt_size < DTB_MAX_SIZE);\ndiff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c\nindex 33b46cb50b..c0edf22352 100644\n--- a/hw/ppc/mac_newworld.c\n+++ b/hw/ppc/mac_newworld.c\n@@ -283,7 +283,7 @@ static void ppc_core99_init(MachineState *machine)\n }\n }\n if (ppc_boot_device == '\\0') {\n- fprintf(stderr, \"No valid boot device for Mac99 machine\\n\");\n+ error_report(\"No valid boot device for Mac99 machine\");\n exit(1);\n }\n }\ndiff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c\nindex 193b9047d9..02f03650af 100644\n--- a/hw/ppc/mac_oldworld.c\n+++ b/hw/ppc/mac_oldworld.c\n@@ -226,7 +226,7 @@ static void ppc_heathrow_init(MachineState *machine)\n #endif\n }\n if (ppc_boot_device == '\\0') {\n- fprintf(stderr, \"No valid boot device for G3 Beige machine\\n\");\n+ error_report(\"No valid boot device for G3 Beige machine\");\n exit(1);\n }\n }\ndiff --git a/hw/ppc/mpc8544_guts.c b/hw/ppc/mpc8544_guts.c\nindex ce1254b5d4..3a2c49e3fd 100644\n--- a/hw/ppc/mpc8544_guts.c\n+++ b/hw/ppc/mpc8544_guts.c\n@@ -18,6 +18,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n #include \"hw/hw.h\"\n@@ -83,7 +84,7 @@ static uint64_t mpc8544_guts_read(void *opaque, hwaddr addr,\n value = env->spr[SPR_E500_SVR];\n break;\n default:\n- fprintf(stderr, \"guts: Unknown register read: %x\\n\", (int)addr);\n+ error_report(\"guts: Unknown register read: %x\", (int)addr);\n break;\n }\n \n@@ -102,7 +103,7 @@ static void mpc8544_guts_write(void *opaque, hwaddr addr,\n }\n break;\n default:\n- fprintf(stderr, \"guts: Unknown register write: %x = %x\\n\",\n+ error_report(\"guts: Unknown register write: %x = %x\",\n (int)addr, (unsigned)value);\n break;\n }\ndiff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c\nindex e92db2c66a..0a31a1c116 100644\n--- a/hw/ppc/ppc405_boards.c\n+++ b/hw/ppc/ppc405_boards.c\n@@ -324,7 +324,7 @@ static void ref405ep_init(MachineState *machine)\n kernel_size = load_image_targphys(kernel_filename, kernel_base,\n ram_size - kernel_base);\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n kernel_filename);\n exit(1);\n }\n@@ -336,8 +336,8 @@ static void ref405ep_init(MachineState *machine)\n initrd_size = load_image_targphys(initrd_filename, initrd_base,\n ram_size - initrd_base);\n if (initrd_size < 0) {\n- fprintf(stderr, \"qemu: could not load initial ram disk '%s'\\n\",\n- initrd_filename);\n+ error_report(\"qemu: could not load initial ram disk '%s'\",\n+ initrd_filename);\n exit(1);\n }\n } else {\n@@ -607,7 +607,7 @@ static void taihu_405ep_init(MachineState *machine)\n kernel_size = load_image_targphys(kernel_filename, kernel_base,\n ram_size - kernel_base);\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n kernel_filename);\n exit(1);\n }\ndiff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c\nindex f92d47f28d..77b74dfe9e 100644\n--- a/hw/ppc/ppc440_bamboo.c\n+++ b/hw/ppc/ppc440_bamboo.c\n@@ -12,6 +12,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"net/net.h\"\n #include \"hw/hw.h\"\n@@ -80,22 +81,22 @@ static int bamboo_load_device_tree(hwaddr addr,\n ret = qemu_fdt_setprop(fdt, \"/memory\", \"reg\", mem_reg_property,\n sizeof(mem_reg_property));\n if (ret < 0)\n- fprintf(stderr, \"couldn't set /memory/reg\\n\");\n+ error_report(\"couldn't set /memory/reg\");\n \n ret = qemu_fdt_setprop_cell(fdt, \"/chosen\", \"linux,initrd-start\",\n initrd_base);\n if (ret < 0)\n- fprintf(stderr, \"couldn't set /chosen/linux,initrd-start\\n\");\n+ error_report(\"couldn't set /chosen/linux,initrd-start\");\n \n ret = qemu_fdt_setprop_cell(fdt, \"/chosen\", \"linux,initrd-end\",\n (initrd_base + initrd_size));\n if (ret < 0)\n- fprintf(stderr, \"couldn't set /chosen/linux,initrd-end\\n\");\n+ error_report(\"couldn't set /chosen/linux,initrd-end\");\n \n ret = qemu_fdt_setprop_string(fdt, \"/chosen\", \"bootargs\",\n kernel_cmdline);\n if (ret < 0)\n- fprintf(stderr, \"couldn't set /chosen/bootargs\\n\");\n+ error_report(\"couldn't set /chosen/bootargs\");\n \n /* Copy data from the host device tree into the guest. Since the guest can\n * directly access the timebase without host involvement, we must expose\n@@ -190,7 +191,7 @@ static void bamboo_init(MachineState *machine)\n env = &cpu->env;\n \n if (env->mmu_model != POWERPC_MMU_BOOKE) {\n- fprintf(stderr, \"MMU model %i not supported by this machine.\\n\",\n+ error_report(\"MMU model %i not supported by this machine.\",\n env->mmu_model);\n exit(1);\n }\n@@ -224,7 +225,7 @@ static void bamboo_init(MachineState *machine)\n NULL);\n pcibus = (PCIBus *)qdev_get_child_bus(dev, \"pci.0\");\n if (!pcibus) {\n- fprintf(stderr, \"couldn't create PCI controller!\\n\");\n+ error_report(\"couldn't create PCI controller!\");\n exit(1);\n }\n \n@@ -265,7 +266,7 @@ static void bamboo_init(MachineState *machine)\n }\n /* XXX try again as binary */\n if (success < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n kernel_filename);\n exit(1);\n }\n@@ -277,7 +278,7 @@ static void bamboo_init(MachineState *machine)\n ram_size - RAMDISK_ADDR);\n \n if (initrd_size < 0) {\n- fprintf(stderr, \"qemu: could not load ram disk '%s' at %x\\n\",\n+ error_report(\"qemu: could not load ram disk '%s' at %x\",\n initrd_filename, RAMDISK_ADDR);\n exit(1);\n }\n@@ -287,7 +288,7 @@ static void bamboo_init(MachineState *machine)\n if (kernel_filename) {\n if (bamboo_load_device_tree(FDT_ADDR, ram_size, RAMDISK_ADDR,\n initrd_size, kernel_cmdline) < 0) {\n- fprintf(stderr, \"couldn't load device tree\\n\");\n+ error_report(\"couldn't load device tree\");\n exit(1);\n }\n }\ndiff --git a/hw/ppc/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c\nindex 6953f8b9ac..0b91d22253 100644\n--- a/hw/ppc/ppc4xx_pci.c\n+++ b/hw/ppc/ppc4xx_pci.c\n@@ -20,6 +20,7 @@\n * 4xx SoCs, such as the 440EP. */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/ppc/ppc.h\"\n #include \"hw/ppc/ppc4xx.h\"\n@@ -254,7 +255,7 @@ static void ppc4xx_pci_set_irq(void *opaque, int irq_num, int level)\n \n trace_ppc4xx_pci_set_irq(irq_num);\n if (irq_num < 0) {\n- fprintf(stderr, \"%s: PCI irq %d\\n\", __func__, irq_num);\n+ error_report(\"%s: PCI irq %d\", __func__, irq_num);\n return;\n }\n qemu_set_irq(pci_irqs[irq_num], level);\ndiff --git a/hw/ppc/prep.c b/hw/ppc/prep.c\nindex 94138a4e8c..7551d53fa5 100644\n--- a/hw/ppc/prep.c\n+++ b/hw/ppc/prep.c\n@@ -576,7 +576,7 @@ static void ppc_prep_init(MachineState *machine)\n }\n }\n if (ppc_boot_device == '\\0') {\n- fprintf(stderr, \"No valid boot device for Mac99 machine\\n\");\n+ error_report(\"No valid boot device for Mac99 machine\");\n exit(1);\n }\n }\n@@ -597,7 +597,7 @@ static void ppc_prep_init(MachineState *machine)\n qdev_init_nofail(dev);\n pci_bus = (PCIBus *)qdev_get_child_bus(dev, \"pci.0\");\n if (pci_bus == NULL) {\n- fprintf(stderr, \"Couldn't create PCI host controller.\\n\");\n+ error_report(\"Couldn't create PCI host controller.\");\n exit(1);\n }\n sysctrl->contiguous_map_irq = qdev_get_gpio_in(dev, 0);\ndiff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c\nindex ed9b406fd3..7641737f81 100644\n--- a/hw/ppc/virtex_ml507.c\n+++ b/hw/ppc/virtex_ml507.c\n@@ -187,7 +187,7 @@ static int xilinx_load_device_tree(hwaddr addr,\n \n r = qemu_fdt_setprop_string(fdt, \"/chosen\", \"bootargs\", kernel_cmdline);\n if (r < 0)\n- fprintf(stderr, \"couldn't set /chosen/bootargs\\n\");\n+ error_report(\"couldn't set /chosen/bootargs\");\n cpu_physical_memory_write(addr, fdt, fdt_size);\n return fdt_size;\n }\n@@ -219,7 +219,7 @@ static void virtex_init(MachineState *machine)\n env = &cpu->env;\n \n if (env->mmu_model != POWERPC_MMU_BOOKE) {\n- fprintf(stderr, \"MMU model %i not supported by this machine.\\n\",\n+ error_report(\"MMU model %i not supported by this machine.\",\n env->mmu_model);\n exit(1);\n }\ndiff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c\nindex ff1bb1534c..d3c46bc01f 100644\n--- a/hw/s390x/virtio-ccw.c\n+++ b/hw/s390x/virtio-ccw.c\n@@ -466,7 +466,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)\n * passes us zeroes for those we don't support.\n */\n if (features.features) {\n- fprintf(stderr, \"Guest bug: features[%i]=%x (expected 0)\\n\",\n+ error_report(\"Guest bug: features[%i]=%x (expected 0)\",\n features.index, features.features);\n /* XXX: do a unit check here? */\n }\ndiff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c\nindex 3e56ab267c..3e2b24e67d 100644\n--- a/hw/scsi/lsi53c895a.c\n+++ b/hw/scsi/lsi53c895a.c\n@@ -14,7 +14,7 @@\n */\n \n #include \"qemu/osdep.h\"\n-\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/pci/pci.h\"\n #include \"hw/scsi/scsi.h\"\n@@ -1501,7 +1501,7 @@ again:\n This is apparently sufficient to beat the drivers into submission.\n */\n if (!(s->sien0 & LSI_SIST0_UDC))\n- fprintf(stderr, \"inf. loop with UDC masked\\n\");\n+ error_report(\"inf. loop with UDC masked\");\n lsi_script_scsi_interrupt(s, LSI_SIST0_UDC, 0);\n lsi_disconnect(s);\n } else if (s->istat1 & LSI_ISTAT1_SRUN && !s->waiting) {\ndiff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c\nindex 360db53ac8..8c4eabcf3d 100644\n--- a/hw/scsi/spapr_vscsi.c\n+++ b/hw/scsi/spapr_vscsi.c\n@@ -32,6 +32,7 @@\n * - Maybe do autosense (PAPR seems to mandate it, linux doesn't care)\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n #include \"hw/hw.h\"\n@@ -179,7 +180,7 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req,\n rc = spapr_vio_dma_write(&s->vdev, req->crq.s.IU_data_ptr,\n &req->iu, length);\n if (rc) {\n- fprintf(stderr, \"vscsi_send_iu: DMA write failure !\\n\");\n+ error_report(\"vscsi_send_iu: DMA write failure !\");\n }\n \n req->crq.s.valid = 0x80;\n@@ -197,7 +198,7 @@ static int vscsi_send_iu(VSCSIState *s, vscsi_req *req,\n \n rc1 = spapr_vio_send_crq(&s->vdev, req->crq.raw);\n if (rc1) {\n- fprintf(stderr, \"vscsi_send_iu: Error sending response\\n\");\n+ error_report(\"vscsi_send_iu: Error sending response\");\n return rc1;\n }\n \n@@ -330,7 +331,7 @@ static int vscsi_fetch_desc(VSCSIState *s, struct vscsi_req *req,\n break;\n }\n default:\n- fprintf(stderr, \"VSCSI: Unknown format %x\\n\", req->dma_fmt);\n+ error_report(\"VSCSI: Unknown format %x\", req->dma_fmt);\n return -1;\n }\n \n@@ -518,7 +519,7 @@ static void vscsi_transfer_data(SCSIRequest *sreq, uint32_t len)\n \n trace_spapr_vscsi_transfer_data(sreq->tag, len, req);\n if (req == NULL) {\n- fprintf(stderr, \"VSCSI: Can't find request for tag 0x%x\\n\", sreq->tag);\n+ error_report(\"VSCSI: Can't find request for tag 0x%x\", sreq->tag);\n return;\n }\n \n@@ -527,7 +528,7 @@ static void vscsi_transfer_data(SCSIRequest *sreq, uint32_t len)\n rc = vscsi_srp_transfer_data(s, req, req->writing, buf, len);\n }\n if (rc < 0) {\n- fprintf(stderr, \"VSCSI: RDMA error rc=%d!\\n\", rc);\n+ error_report(\"VSCSI: RDMA error rc=%d!\", rc);\n req->dma_error = true;\n scsi_req_cancel(req->sreq);\n return;\n@@ -547,7 +548,7 @@ static void vscsi_command_complete(SCSIRequest *sreq, uint32_t status, size_t re\n \n trace_spapr_vscsi_command_complete(sreq->tag, status, req);\n if (req == NULL) {\n- fprintf(stderr, \"VSCSI: Can't find request for tag 0x%x\\n\", sreq->tag);\n+ error_report(\"VSCSI: Can't find request for tag 0x%x\", sreq->tag);\n return;\n }\n \n@@ -639,7 +640,7 @@ static void *vscsi_load_request(QEMUFile *f, SCSIRequest *sreq)\n memset(req, 0, sizeof(*req));\n rc = vmstate_load_state(f, &vmstate_spapr_vscsi_req, req, 1);\n if (rc) {\n- fprintf(stderr, \"VSCSI: failed loading request tag#%u\\n\", sreq->tag);\n+ error_report(\"VSCSI: failed loading request tag#%u\", sreq->tag);\n return NULL;\n }\n assert(req->active);\n@@ -827,7 +828,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req)\n uint64_t tag = iu->srp.rsp.tag;\n uint8_t sol_not = iu->srp.cmd.sol_not;\n \n- fprintf(stderr, \"vscsi_process_tsk_mgmt %02x\\n\",\n+ error_report(\"vscsi_process_tsk_mgmt %02x\",\n iu->srp.tsk_mgmt.tsk_mgmt_func);\n \n d = vscsi_device_find(&s->bus, be64_to_cpu(req->iu.srp.tsk_mgmt.lun), &lun);\n@@ -932,10 +933,10 @@ static int vscsi_handle_srp_req(VSCSIState *s, vscsi_req *req)\n case SRP_CRED_RSP:\n case SRP_AER_REQ:\n case SRP_AER_RSP:\n- fprintf(stderr, \"VSCSI: Unsupported opcode %02x\\n\", opcode);\n+ error_report(\"VSCSI: Unsupported opcode %02x\", opcode);\n break;\n default:\n- fprintf(stderr, \"VSCSI: Unknown type %02x\\n\", opcode);\n+ error_report(\"VSCSI: Unknown type %02x\", opcode);\n }\n \n return done;\n@@ -953,7 +954,7 @@ static int vscsi_send_adapter_info(VSCSIState *s, vscsi_req *req)\n rc = spapr_vio_dma_read(&s->vdev, be64_to_cpu(sinfo->buffer),\n &info, be16_to_cpu(sinfo->common.length));\n if (rc) {\n- fprintf(stderr, \"vscsi_send_adapter_info: DMA read failure !\\n\");\n+ error_report(\"vscsi_send_adapter_info: DMA read failure !\");\n }\n #endif\n memset(&info, 0, sizeof(info));\n@@ -967,7 +968,7 @@ static int vscsi_send_adapter_info(VSCSIState *s, vscsi_req *req)\n rc = spapr_vio_dma_write(&s->vdev, be64_to_cpu(sinfo->buffer),\n &info, be16_to_cpu(sinfo->common.length));\n if (rc) {\n- fprintf(stderr, \"vscsi_send_adapter_info: DMA write failure !\\n\");\n+ error_report(\"vscsi_send_adapter_info: DMA write failure !\");\n }\n \n sinfo->common.status = rc ? cpu_to_be32(1) : 0;\n@@ -987,7 +988,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req)\n req_len = len = be16_to_cpu(vcap->common.length);\n buffer = be64_to_cpu(vcap->buffer);\n if (len > sizeof(cap)) {\n- fprintf(stderr, \"vscsi_send_capabilities: capabilities size mismatch !\\n\");\n+ error_report(\"vscsi_send_capabilities: capabilities size mismatch !\");\n \n /*\n * Just read and populate the structure that is known.\n@@ -997,7 +998,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req)\n }\n rc = spapr_vio_dma_read(&s->vdev, buffer, &cap, len);\n if (rc) {\n- fprintf(stderr, \"vscsi_send_capabilities: DMA read failure !\\n\");\n+ error_report(\"vscsi_send_capabilities: DMA read failure !\");\n }\n \n /*\n@@ -1013,7 +1014,7 @@ static int vscsi_send_capabilities(VSCSIState *s, vscsi_req *req)\n \n rc = spapr_vio_dma_write(&s->vdev, buffer, &cap, len);\n if (rc) {\n- fprintf(stderr, \"vscsi_send_capabilities: DMA write failure !\\n\");\n+ error_report(\"vscsi_send_capabilities: DMA write failure !\");\n }\n if (req_len > len) {\n /*\n@@ -1034,11 +1035,11 @@ static int vscsi_handle_mad_req(VSCSIState *s, vscsi_req *req)\n \n switch (be32_to_cpu(mad->empty_iu.common.type)) {\n case VIOSRP_EMPTY_IU_TYPE:\n- fprintf(stderr, \"Unsupported EMPTY MAD IU\\n\");\n+ error_report(\"Unsupported EMPTY MAD IU\");\n retlen = sizeof(mad->empty_iu);\n break;\n case VIOSRP_ERROR_LOG_TYPE:\n- fprintf(stderr, \"Unsupported ERROR LOG MAD IU\\n\");\n+ error_report(\"Unsupported ERROR LOG MAD IU\");\n retlen = sizeof(mad->error_log);\n break;\n case VIOSRP_ADAPTER_INFO_TYPE:\n@@ -1053,7 +1054,7 @@ static int vscsi_handle_mad_req(VSCSIState *s, vscsi_req *req)\n request_handled = true;\n break;\n default:\n- fprintf(stderr, \"VSCSI: Unknown MAD type %02x\\n\",\n+ error_report(\"VSCSI: Unknown MAD type %02x\",\n be32_to_cpu(mad->empty_iu.common.type));\n /*\n * PAPR+ says that \"The length field is set to the length\n@@ -1078,7 +1079,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_crq *crq)\n \n req = vscsi_get_req(s);\n if (req == NULL) {\n- fprintf(stderr, \"VSCSI: Failed to get a request !\\n\");\n+ error_report(\"VSCSI: Failed to get a request !\");\n return;\n }\n \n@@ -1088,7 +1089,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_crq *crq)\n * of the structure.\n */\n if (crq->s.IU_length > sizeof(union viosrp_iu)) {\n- fprintf(stderr, \"VSCSI: SRP IU too long (%d bytes) !\\n\",\n+ error_report(\"VSCSI: SRP IU too long (%d bytes) !\",\n crq->s.IU_length);\n vscsi_put_req(req);\n return;\n@@ -1097,7 +1098,7 @@ static void vscsi_got_payload(VSCSIState *s, vscsi_crq *crq)\n /* XXX Handle failure differently ? */\n if (spapr_vio_dma_read(&s->vdev, crq->s.IU_data_ptr, &req->iu,\n crq->s.IU_length)) {\n- fprintf(stderr, \"vscsi_got_payload: DMA read failure !\\n\");\n+ error_report(\"vscsi_got_payload: DMA read failure !\");\n vscsi_put_req(req);\n return;\n }\n@@ -1158,16 +1159,16 @@ static int vscsi_do_crq(struct VIOsPAPRDevice *dev, uint8_t *crq_data)\n case VIOSRP_AIX_FORMAT:\n case VIOSRP_LINUX_FORMAT:\n case VIOSRP_INLINE_FORMAT:\n- fprintf(stderr, \"vscsi_do_srq: Unsupported payload format %02x\\n\",\n+ error_report(\"vscsi_do_srq: Unsupported payload format %02x\",\n crq.s.format);\n break;\n default:\n- fprintf(stderr, \"vscsi_do_srq: Unknown payload format %02x\\n\",\n+ error_report(\"vscsi_do_srq: Unknown payload format %02x\",\n crq.s.format);\n }\n break;\n default:\n- fprintf(stderr, \"vscsi_do_crq: unknown CRQ %02x %02x ...\\n\",\n+ error_report(\"vscsi_do_crq: unknown CRQ %02x %02x ...\",\n crq.raw[0], crq.raw[1]);\n };\n \ndiff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplane.c\nindex add4b3f4a4..e047361310 100644\n--- a/hw/scsi/virtio-scsi-dataplane.c\n+++ b/hw/scsi/virtio-scsi-dataplane.c\n@@ -97,7 +97,7 @@ static int virtio_scsi_vring_init(VirtIOSCSI *s, VirtQueue *vq, int n,\n /* Set up virtqueue notify */\n rc = virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), n, true);\n if (rc != 0) {\n- fprintf(stderr, \"virtio-scsi: Failed to set host notifier (%d)\\n\",\n+ error_report(\"virtio-scsi: Failed to set host notifier (%d)\",\n rc);\n s->dataplane_fenced = true;\n return rc;\n@@ -141,8 +141,8 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev)\n /* Set up guest notifier (irq) */\n rc = k->set_guest_notifiers(qbus->parent, vs->conf.num_queues + 2, true);\n if (rc != 0) {\n- fprintf(stderr, \"virtio-scsi: Failed to set guest notifiers (%d), \"\n- \"ensure -enable-kvm is set\\n\", rc);\n+ error_report(\"virtio-scsi: Failed to set guest notifiers (%d), \"\n+ \"ensure -enable-kvm is set\", rc);\n goto fail_guest_notifiers;\n }\n \ndiff --git a/hw/sd/pl181.c b/hw/sd/pl181.c\nindex 55c8098ecd..2b878a0c5e 100644\n--- a/hw/sd/pl181.c\n+++ b/hw/sd/pl181.c\n@@ -8,6 +8,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"sysemu/block-backend.h\"\n #include \"sysemu/blockdev.h\"\n #include \"hw/sysbus.h\"\n@@ -146,7 +147,7 @@ static void pl181_fifo_push(PL181State *s, uint32_t value)\n int n;\n \n if (s->fifo_len == PL181_FIFO_LEN) {\n- fprintf(stderr, \"pl181: FIFO overflow\\n\");\n+ error_report(\"pl181: FIFO overflow\");\n return;\n }\n n = (s->fifo_pos + s->fifo_len) & (PL181_FIFO_LEN - 1);\n@@ -160,7 +161,7 @@ static uint32_t pl181_fifo_pop(PL181State *s)\n uint32_t value;\n \n if (s->fifo_len == 0) {\n- fprintf(stderr, \"pl181: FIFO underflow\\n\");\n+ error_report(\"pl181: FIFO underflow\");\n return 0;\n }\n value = s->fifo[s->fifo_pos];\ndiff --git a/hw/sd/sd.c b/hw/sd/sd.c\nindex ba47bff4db..e467d74fc8 100644\n--- a/hw/sd/sd.c\n+++ b/hw/sd/sd.c\n@@ -700,7 +700,7 @@ static void sd_lock_command(SDState *sd)\n sd->card_status &= ~CARD_IS_LOCKED;\n sd->pwd_len = 0;\n /* Erasing the entire card here! */\n- fprintf(stderr, \"SD: Card force-erased by CMD42\\n\");\n+ error_report(\"SD: Card force-erased by CMD42\");\n return;\n }\n \n@@ -1282,7 +1282,7 @@ static sd_rsp_type_t sd_normal_command(SDState *sd,\n return sd_r1;\n \n case 56:\t/* CMD56: GEN_CMD */\n- fprintf(stderr, \"SD: GEN_CMD 0x%08x\\n\", req.arg);\n+ error_report(\"SD: GEN_CMD 0x%08x\", req.arg);\n \n switch (sd->state) {\n case sd_transfer_state:\n@@ -1565,10 +1565,10 @@ send_response:\n int i;\n DPRINTF(\"Response:\");\n for (i = 0; i < rsplen; i++)\n- fprintf(stderr, \" %02x\", response[i]);\n- fprintf(stderr, \" state %d\\n\", sd->state);\n+ error_report(\" %02x\", response[i]);\n+ error_report(\" state %d\", sd->state);\n } else {\n- DPRINTF(\"No response %d\\n\", sd->state);\n+ DPRINTF(\"No response %d\", sd->state);\n }\n #endif\n \n@@ -1580,14 +1580,14 @@ static void sd_blk_read(SDState *sd, uint64_t addr, uint32_t len)\n DPRINTF(\"sd_blk_read: addr = 0x%08llx, len = %d\\n\",\n (unsigned long long) addr, len);\n if (!sd->blk || blk_pread(sd->blk, addr, sd->data, len) < 0) {\n- fprintf(stderr, \"sd_blk_read: read error on host side\\n\");\n+ error_report(\"sd_blk_read: read error on host side\");\n }\n }\n \n static void sd_blk_write(SDState *sd, uint64_t addr, uint32_t len)\n {\n if (!sd->blk || blk_pwrite(sd->blk, addr, sd->data, len, 0) < 0) {\n- fprintf(stderr, \"sd_blk_write: write error on host side\\n\");\n+ error_report(\"sd_blk_write: write error on host side\");\n }\n }\n \ndiff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c\nindex 16b9ed2db2..a010f559e2 100644\n--- a/hw/sh4/r2d.c\n+++ b/hw/sh4/r2d.c\n@@ -24,6 +24,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -319,8 +320,8 @@ static void r2d_init(MachineState *machine)\n SDRAM_BASE + LINUX_LOAD_OFFSET,\n INITRD_LOAD_OFFSET - LINUX_LOAD_OFFSET);\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\", kernel_filename);\n- exit(1);\n+ error_report(\"qemu: could not load kernel '%s'\", kernel_filename);\n+ exit(1);\n }\n \n /* initialization which should be done by firmware */\n@@ -339,8 +340,8 @@ static void r2d_init(MachineState *machine)\n SDRAM_SIZE - INITRD_LOAD_OFFSET);\n \n if (initrd_size < 0) {\n- fprintf(stderr, \"qemu: could not load initrd '%s'\\n\", initrd_filename);\n- exit(1);\n+ error_report(\"qemu: could not load initrd '%s'\", initrd_filename);\n+ exit(1);\n }\n \n /* initialization which should be done by firmware */\ndiff --git a/hw/sh4/sh7750.c b/hw/sh4/sh7750.c\nindex 166e4bd947..64ffc4c1d2 100644\n--- a/hw/sh4/sh7750.c\n+++ b/hw/sh4/sh7750.c\n@@ -23,6 +23,7 @@\n * THE SOFTWARE.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/sh4/sh.h\"\n #include \"sysemu/sysemu.h\"\n@@ -147,9 +148,9 @@ static void porta_changed(SH7750State * s, uint16_t prev)\n int i, r = 0;\n \n #if 0\n- fprintf(stderr, \"porta changed from 0x%04x to 0x%04x\\n\",\n+ error_report(\"porta changed from 0x%04x to 0x%04x\",\n \t prev, porta_lines(s));\n- fprintf(stderr, \"pdtra=0x%04x, pctra=0x%08x\\n\", s->pdtra, s->pctra);\n+ error_report(\"pdtra=0x%04x, pctra=0x%08x\", s->pdtra, s->pctra);\n #endif\n currenta = porta_lines(s);\n if (currenta == prev)\n@@ -200,13 +201,13 @@ static void portb_changed(SH7750State * s, uint16_t prev)\n \n static void error_access(const char *kind, hwaddr addr)\n {\n- fprintf(stderr, \"%s to %s (0x\" TARGET_FMT_plx \") not supported\\n\",\n+ error_report(\"%s to %s (0x\" TARGET_FMT_plx \") not supported\",\n \t kind, regname(addr), addr);\n }\n \n static void ignore_access(const char *kind, hwaddr addr)\n {\n- fprintf(stderr, \"%s to %s (0x\" TARGET_FMT_plx \") ignored\\n\",\n+ error_report(\"%s to %s (0x\" TARGET_FMT_plx \") ignored\",\n \t kind, regname(addr), addr);\n }\n \n@@ -326,47 +327,48 @@ static void sh7750_mem_writew(void *opaque, hwaddr addr,\n uint16_t temp;\n \n switch (addr) {\n-\t/* SDRAM controller */\n+ /* SDRAM controller */\n case SH7750_BCR2_A7:\n s->bcr2 = mem_value;\n return;\n case SH7750_BCR3_A7:\n-\tif(!has_bcr3_and_bcr4(s))\n-\t error_access(\"word write\", addr);\n-\ts->bcr3 = mem_value;\n-\treturn;\n+ if (!has_bcr3_and_bcr4(s)) {\n+ error_access(\"word write\", addr);\n+ }\n+ s->bcr3 = mem_value;\n+ return;\n case SH7750_PCR_A7:\n-\ts->pcr = mem_value;\n-\treturn;\n+ s->pcr = mem_value;\n+ return;\n case SH7750_RTCNT_A7:\n case SH7750_RTCOR_A7:\n case SH7750_RTCSR_A7:\n-\tignore_access(\"word write\", addr);\n-\treturn;\n-\t/* IO ports */\n+ ignore_access(\"word write\", addr);\n+ return;\n+ /* IO ports */\n case SH7750_PDTRA_A7:\n-\ttemp = porta_lines(s);\n-\ts->pdtra = mem_value;\n-\tporta_changed(s, temp);\n-\treturn;\n+ temp = porta_lines(s);\n+ s->pdtra = mem_value;\n+ porta_changed(s, temp);\n+ return;\n case SH7750_PDTRB_A7:\n-\ttemp = portb_lines(s);\n-\ts->pdtrb = mem_value;\n-\tportb_changed(s, temp);\n-\treturn;\n+ temp = portb_lines(s);\n+ s->pdtrb = mem_value;\n+ portb_changed(s, temp);\n+ return;\n case SH7750_RFCR_A7:\n-\tfprintf(stderr, \"Write access to refresh count register\\n\");\n-\ts->rfcr = mem_value;\n-\treturn;\n+ error_report(\"Write access to refresh count register\");\n+ s->rfcr = mem_value;\n+ return;\n case SH7750_GPIOIC_A7:\n-\ts->gpioic = mem_value;\n-\tif (mem_value != 0) {\n-\t fprintf(stderr, \"I/O interrupts not implemented\\n\");\n+ s->gpioic = mem_value;\n+ if (mem_value != 0) {\n+ error_report(\"I/O interrupts not implemented\");\n abort();\n-\t}\n-\treturn;\n+ }\n+ return;\n default:\n-\terror_access(\"word write\", addr);\n+ error_access(\"word write\", addr);\n abort();\n }\n }\ndiff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c\nindex ec2816bf94..d434edec92 100644\n--- a/hw/sparc/leon3.c\n+++ b/hw/sparc/leon3.c\n@@ -22,6 +22,7 @@\n * THE SOFTWARE.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -172,7 +173,7 @@ static void leon3_generic_hw_init(MachineState *machine)\n }\n \n if (bios_size > prom_size) {\n- fprintf(stderr, \"qemu: could not load prom '%s': file too big\\n\",\n+ error_report(\"qemu: could not load prom '%s': file too big\",\n filename);\n exit(1);\n }\n@@ -180,11 +181,11 @@ static void leon3_generic_hw_init(MachineState *machine)\n if (bios_size > 0) {\n ret = load_image_targphys(filename, 0x00000000, bios_size);\n if (ret < 0 || ret > prom_size) {\n- fprintf(stderr, \"qemu: could not load prom '%s'\\n\", filename);\n+ error_report(\"qemu: could not load prom '%s'\", filename);\n exit(1);\n }\n } else if (kernel_filename == NULL && !qtest_enabled()) {\n- fprintf(stderr, \"Can't read bios image %s\\n\", filename);\n+ error_report(\"Can't read bios image %s\", filename);\n exit(1);\n }\n g_free(filename);\n@@ -197,7 +198,7 @@ static void leon3_generic_hw_init(MachineState *machine)\n kernel_size = load_elf(kernel_filename, NULL, NULL, &entry, NULL, NULL,\n 1 /* big endian */, EM_SPARC, 0, 0);\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n kernel_filename);\n exit(1);\n }\ndiff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c\nindex e1bdd4828d..7a2812aaa4 100644\n--- a/hw/sparc/sun4m.c\n+++ b/hw/sparc/sun4m.c\n@@ -261,7 +261,7 @@ static unsigned long sun4m_load_kernel(const char *kernel_filename,\n KERNEL_LOAD_ADDR,\n RAM_size - KERNEL_LOAD_ADDR);\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n kernel_filename);\n exit(1);\n }\n@@ -273,8 +273,8 @@ static unsigned long sun4m_load_kernel(const char *kernel_filename,\n INITRD_LOAD_ADDR,\n RAM_size - INITRD_LOAD_ADDR);\n if (initrd_size < 0) {\n- fprintf(stderr, \"qemu: could not load initial ram disk '%s'\\n\",\n- initrd_filename);\n+ error_report(\"qemu: could not load initial ram disk '%s'\",\n+ initrd_filename);\n exit(1);\n }\n }\n@@ -688,7 +688,7 @@ static void prom_init(hwaddr addr, const char *bios_name)\n ret = -1;\n }\n if (ret < 0 || ret > PROM_SIZE_MAX) {\n- fprintf(stderr, \"qemu: could not load prom '%s'\\n\", bios_name);\n+ error_report(\"qemu: could not load prom '%s'\", bios_name);\n exit(1);\n }\n }\ndiff --git a/hw/sparc64/niagara.c b/hw/sparc64/niagara.c\nindex 9a8d6109d4..60799220f3 100644\n--- a/hw/sparc64/niagara.c\n+++ b/hw/sparc64/niagara.c\n@@ -153,7 +153,7 @@ static void niagara_init(MachineState *machine)\n dinfo->is_default = 1;\n rom_add_file_fixed(blk_bs(blk)->filename, NIAGARA_VDISK_BASE, -1);\n } else {\n- fprintf(stderr, \"qemu: could not load ram disk '%s'\\n\",\n+ error_report(\"qemu: could not load ram disk '%s'\",\n blk_bs(blk)->filename);\n exit(1);\n }\ndiff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c\nindex c3280aaf38..070d9b94f9 100644\n--- a/hw/sparc64/sun4u.c\n+++ b/hw/sparc64/sun4u.c\n@@ -22,6 +22,7 @@\n * THE SOFTWARE.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include \"qemu-common.h\"\n #include \"cpu.h\"\n@@ -165,7 +166,7 @@ static uint64_t sun4u_load_kernel(const char *kernel_filename,\n RAM_size - KERNEL_LOAD_ADDR);\n }\n if (kernel_size < 0) {\n- fprintf(stderr, \"qemu: could not load kernel '%s'\\n\",\n+ error_report(\"qemu: could not load kernel '%s'\",\n kernel_filename);\n exit(1);\n }\n@@ -178,8 +179,8 @@ static uint64_t sun4u_load_kernel(const char *kernel_filename,\n *initrd_addr,\n RAM_size - *initrd_addr);\n if ((int)*initrd_size < 0) {\n- fprintf(stderr, \"qemu: could not load initial ram disk '%s'\\n\",\n- initrd_filename);\n+ error_report(\"qemu: could not load initial ram disk '%s'\",\n+ initrd_filename);\n exit(1);\n }\n }\n@@ -322,7 +323,7 @@ static void prom_init(hwaddr addr, const char *bios_name)\n ret = -1;\n }\n if (ret < 0 || ret > PROM_SIZE_MAX) {\n- fprintf(stderr, \"qemu: could not load prom '%s'\\n\", bios_name);\n+ error_report(\"qemu: could not load prom '%s'\", bios_name);\n exit(1);\n }\n }\ndiff --git a/hw/ssi/omap_spi.c b/hw/ssi/omap_spi.c\nindex 34163e5646..98242d1e8b 100644\n--- a/hw/ssi/omap_spi.c\n+++ b/hw/ssi/omap_spi.c\n@@ -20,6 +20,7 @@\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"hw/arm/omap.h\"\n \n@@ -295,9 +296,9 @@ static void omap_mcspi_write(void *opaque, hwaddr addr,\n if ((value ^ s->ch[ch].config) & (3 << 14))\t/* DMAR | DMAW */\n omap_mcspi_dmarequest_update(s->ch + ch);\n if (((value >> 12) & 3) == 3)\t\t\t/* TRM */\n- fprintf(stderr, \"%s: invalid TRM value (3)\\n\", __func__);\n+ error_report(\"%s: invalid TRM value (3)\", __func__);\n if (((value >> 7) & 0x1f) < 3)\t\t\t/* WL */\n- fprintf(stderr, \"%s: invalid WL value (%\" PRIx64 \")\\n\",\n+ error_report(\"%s: invalid WL value (%\" PRIx64 \")\",\n __func__, (value >> 7) & 0x1f);\n s->ch[ch].config = value & 0x7fffff;\n break;\ndiff --git a/hw/timer/omap_gptimer.c b/hw/timer/omap_gptimer.c\nindex ae2dc99832..0f064241d3 100644\n--- a/hw/timer/omap_gptimer.c\n+++ b/hw/timer/omap_gptimer.c\n@@ -18,6 +18,7 @@\n * with this program; if not, see <http://www.gnu.org/licenses/>.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"qemu/timer.h\"\n #include \"hw/arm/omap.h\"\n@@ -356,7 +357,7 @@ static void omap_gp_timer_write(void *opaque, hwaddr addr,\n case 0x10:\t/* TIOCP_CFG */\n s->config = value & 0x33d;\n if (((value >> 3) & 3) == 3)\t\t\t\t/* IDLEMODE */\n- fprintf(stderr, \"%s: illegal IDLEMODE value in TIOCP_CFG\\n\",\n+ error_report(\"%s: illegal IDLEMODE value in TIOCP_CFG\",\n __func__);\n if (value & 2)\t\t\t\t\t\t/* SOFTRESET */\n omap_gp_timer_reset(s);\n@@ -394,11 +395,11 @@ static void omap_gp_timer_write(void *opaque, hwaddr addr,\n s->ar = (value >> 1) & 1;\n s->st = (value >> 0) & 1;\n if (s->inout && s->trigger != gpt_trigger_none)\n- fprintf(stderr, \"%s: GP timer pin must be an output \"\n- \"for this trigger mode\\n\", __func__);\n+ error_report(\"%s: GP timer pin must be an output \"\n+ \"for this trigger mode\", __func__);\n if (!s->inout && s->capture != gpt_capture_none)\n- fprintf(stderr, \"%s: GP timer pin must be an input \"\n- \"for this capture mode\\n\", __func__);\n+ error_report(\"%s: GP timer pin must be an input \"\n+ \"for this capture mode\", __func__);\n if (s->trigger == gpt_trigger_none)\n omap_gp_timer_out(s, s->scpwm);\n /* TODO: make sure this doesn't overflow 32-bits */\ndiff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c\nindex 87e334af24..3ade0ba929 100644\n--- a/hw/timer/twl92230.c\n+++ b/hw/timer/twl92230.c\n@@ -614,7 +614,7 @@ static void menelaus_write(void *opaque, uint8_t addr, uint8_t value)\n break;\n rtc_badness:\n default:\n- fprintf(stderr, \"%s: bad RTC_UPDATE value %02x\\n\",\n+ error_report(\"%s: bad RTC_UPDATE value %02x\",\n __func__, value);\n s->status |= 1 << 10;\t\t\t\t/* RTCERR */\n menelaus_update(s);\ndiff --git a/hw/timer/xilinx_timer.c b/hw/timer/xilinx_timer.c\nindex 59439c05be..a80bba846b 100644\n--- a/hw/timer/xilinx_timer.c\n+++ b/hw/timer/xilinx_timer.c\n@@ -127,7 +127,7 @@ timer_read(void *opaque, hwaddr addr, unsigned int size)\n break;\n \n }\n- D(fprintf(stderr, \"%s timer=%d %x=%x\\n\", __func__, timer, addr * 4, r));\n+ D(error_report(\"%s timer=%d %x=%x\", __func__, timer, addr * 4, r));\n return r;\n }\n \n@@ -135,7 +135,7 @@ static void timer_enable(struct xlx_timer *xt)\n {\n uint64_t count;\n \n- D(fprintf(stderr, \"%s timer=%d down=%d\\n\", __func__,\n+ D(error_report(\"%s timer=%d down=%d\", __func__,\n xt->nr, xt->regs[R_TCSR] & TCSR_UDT));\n \n ptimer_stop(xt->ptimer);\n@@ -160,7 +160,7 @@ timer_write(void *opaque, hwaddr addr,\n addr >>= 2;\n timer = timer_from_addr(addr);\n xt = &t->timers[timer];\n- D(fprintf(stderr, \"%s addr=%x val=%x (timer=%d off=%d)\\n\",\n+ D(error_report(\"%s addr=%x val=%x (timer=%d off=%d)\",\n __func__, addr * 4, value, timer, addr & 3));\n /* Further decoding to address a specific timers reg. */\n addr &= 3;\n@@ -197,7 +197,7 @@ static void timer_hit(void *opaque)\n {\n struct xlx_timer *xt = opaque;\n struct timerblock *t = xt->parent;\n- D(fprintf(stderr, \"%s %d\\n\", __func__, xt->nr));\n+ D(error_report(\"%s %d\", __func__, xt->nr));\n xt->regs[R_TCSR] |= TCSR_TINT;\n \n if (xt->regs[R_TCSR] & TCSR_ARHT)\ndiff --git a/hw/usb/core.c b/hw/usb/core.c\nindex 241ae66b15..9ffdef055c 100644\n--- a/hw/usb/core.c\n+++ b/hw/usb/core.c\n@@ -24,6 +24,7 @@\n * THE SOFTWARE.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"hw/usb.h\"\n #include \"qemu/iov.h\"\n@@ -599,7 +600,7 @@ void usb_packet_copy(USBPacket *p, void *ptr, size_t bytes)\n iov_from_buf(iov->iov, iov->niov, p->actual_length, ptr, bytes);\n break;\n default:\n- fprintf(stderr, \"%s: invalid pid: %x\\n\", __func__, p->pid);\n+ error_report(\"%s: invalid pid: %x\", __func__, p->pid);\n abort();\n }\n p->actual_length += bytes;\n@@ -681,7 +682,7 @@ void usb_ep_dump(USBDevice *dev)\n };\n int ifnum, ep, first;\n \n- fprintf(stderr, \"Device \\\"%s\\\", config %d\\n\",\n+ error_report(\"Device \\\"%s\\\", config %d\",\n dev->product_desc, dev->configuration);\n for (ifnum = 0; ifnum < 16; ifnum++) {\n first = 1;\n@@ -690,10 +691,10 @@ void usb_ep_dump(USBDevice *dev)\n dev->ep_in[ep].ifnum == ifnum) {\n if (first) {\n first = 0;\n- fprintf(stderr, \" Interface %d, alternative %d\\n\",\n+ error_report(\" Interface %d, alternative %d\",\n ifnum, dev->altsetting[ifnum]);\n }\n- fprintf(stderr, \" Endpoint %d, IN, %s, %d max\\n\", ep,\n+ error_report(\" Endpoint %d, IN, %s, %d max\", ep,\n tname[dev->ep_in[ep].type],\n dev->ep_in[ep].max_packet_size);\n }\n@@ -701,16 +702,16 @@ void usb_ep_dump(USBDevice *dev)\n dev->ep_out[ep].ifnum == ifnum) {\n if (first) {\n first = 0;\n- fprintf(stderr, \" Interface %d, alternative %d\\n\",\n+ error_report(\" Interface %d, alternative %d\",\n ifnum, dev->altsetting[ifnum]);\n }\n- fprintf(stderr, \" Endpoint %d, OUT, %s, %d max\\n\", ep,\n+ error_report(\" Endpoint %d, OUT, %s, %d max\", ep,\n tname[dev->ep_out[ep].type],\n dev->ep_out[ep].max_packet_size);\n }\n }\n }\n- fprintf(stderr, \"--\\n\");\n+ error_report(\"--\");\n }\n \n struct USBEndpoint *usb_ep_get(USBDevice *dev, int pid, int ep)\ndiff --git a/hw/usb/desc.c b/hw/usb/desc.c\nindex 85c15addc5..afae910f8e 100644\n--- a/hw/usb/desc.c\n+++ b/hw/usb/desc.c\n@@ -1,5 +1,5 @@\n #include \"qemu/osdep.h\"\n-\n+#include \"qemu/error-report.h\"\n #include \"hw/usb.h\"\n #include \"hw/usb/desc.h\"\n #include \"trace.h\"\n@@ -688,7 +688,7 @@ int usb_desc_get_descriptor(USBDevice *dev, USBPacket *p,\n break;\n \n default:\n- fprintf(stderr, \"%s: %d unknown type %d (len %zd)\\n\", __func__,\n+ error_report(\"%s: %d unknown type %d (len %zd)\", __func__,\n dev->addr, type, len);\n break;\n }\ndiff --git a/hw/usb/dev-audio.c b/hw/usb/dev-audio.c\nindex 343345235c..43fc20469a 100644\n--- a/hw/usb/dev-audio.c\n+++ b/hw/usb/dev-audio.c\n@@ -30,6 +30,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"hw/usb.h\"\n #include \"hw/usb/desc.h\"\n@@ -398,7 +399,7 @@ static int usb_audio_set_output_altset(USBAudioState *s, int altset)\n }\n \n if (s->debug) {\n- fprintf(stderr, \"usb-audio: set interface %d\\n\", altset);\n+ error_report(\"usb-audio: set interface %d\", altset);\n }\n s->out.altset = altset;\n return 0;\n@@ -478,7 +479,7 @@ static int usb_audio_set_control(USBAudioState *s, uint8_t attrib,\n uint16_t vol = data[0] + (data[1] << 8);\n \n if (s->debug) {\n- fprintf(stderr, \"usb-audio: vol %04x\\n\", (uint16_t)vol);\n+ error_report(\"usb-audio: vol %04x\", (uint16_t)vol);\n }\n \n vol -= 0x8000;\n@@ -496,7 +497,7 @@ static int usb_audio_set_control(USBAudioState *s, uint8_t attrib,\n \n if (set_vol) {\n if (s->debug) {\n- fprintf(stderr, \"usb-audio: mute %d, lvol %3d, rvol %3d\\n\",\n+ error_report(\"usb-audio: mute %d, lvol %3d, rvol %3d\",\n s->out.mute, s->out.vol[0], s->out.vol[1]);\n }\n AUD_set_volume_out(s->out.voice, s->out.mute,\n@@ -514,8 +515,8 @@ static void usb_audio_handle_control(USBDevice *dev, USBPacket *p,\n int ret = 0;\n \n if (s->debug) {\n- fprintf(stderr, \"usb-audio: control transaction: \"\n- \"request 0x%04x value 0x%04x index 0x%04x length 0x%04x\\n\",\n+ error_report(\"usb-audio: control transaction: \"\n+ \"request 0x%04x value 0x%04x index 0x%04x length 0x%04x\",\n request, value, index, length);\n }\n \n@@ -533,7 +534,7 @@ static void usb_audio_handle_control(USBDevice *dev, USBPacket *p,\n length, data);\n if (ret < 0) {\n if (s->debug) {\n- fprintf(stderr, \"usb-audio: fail: get control\\n\");\n+ error_report(\"usb-audio: fail: get control\");\n }\n goto fail;\n }\n@@ -548,7 +549,7 @@ static void usb_audio_handle_control(USBDevice *dev, USBPacket *p,\n length, data);\n if (ret < 0) {\n if (s->debug) {\n- fprintf(stderr, \"usb-audio: fail: set control\\n\");\n+ error_report(\"usb-audio: fail: set control\");\n }\n goto fail;\n }\n@@ -557,8 +558,8 @@ static void usb_audio_handle_control(USBDevice *dev, USBPacket *p,\n default:\n fail:\n if (s->debug) {\n- fprintf(stderr, \"usb-audio: failed control transaction: \"\n- \"request 0x%04x value 0x%04x index 0x%04x length 0x%04x\\n\",\n+ error_report(\"usb-audio: failed control transaction: \"\n+ \"request 0x%04x value 0x%04x index 0x%04x length 0x%04x\",\n request, value, index, length);\n }\n p->status = USB_RET_STALL;\n@@ -581,7 +582,7 @@ static void usb_audio_handle_reset(USBDevice *dev)\n USBAudioState *s = USB_AUDIO(dev);\n \n if (s->debug) {\n- fprintf(stderr, \"usb-audio: reset\\n\");\n+ error_report(\"usb-audio: reset\");\n }\n usb_audio_set_output_altset(s, ALTSET_OFF);\n }\n@@ -595,7 +596,7 @@ static void usb_audio_handle_dataout(USBAudioState *s, USBPacket *p)\n \n streambuf_put(&s->out.buf, p);\n if (p->actual_length < p->iov.size && s->debug > 1) {\n- fprintf(stderr, \"usb-audio: output overrun (%zd bytes)\\n\",\n+ error_report(\"usb-audio: output overrun (%zd bytes)\",\n p->iov.size - p->actual_length);\n }\n }\n@@ -611,8 +612,8 @@ static void usb_audio_handle_data(USBDevice *dev, USBPacket *p)\n \n p->status = USB_RET_STALL;\n if (s->debug) {\n- fprintf(stderr, \"usb-audio: failed data transaction: \"\n- \"pid 0x%x ep 0x%x len 0x%zx\\n\",\n+ error_report(\"usb-audio: failed data transaction: \"\n+ \"pid 0x%x ep 0x%x len 0x%zx\",\n p->pid, p->ep->nr, p->iov.size);\n }\n }\n@@ -622,7 +623,7 @@ static void usb_audio_unrealize(USBDevice *dev, Error **errp)\n USBAudioState *s = USB_AUDIO(dev);\n \n if (s->debug) {\n- fprintf(stderr, \"usb-audio: destroy\\n\");\n+ error_report(\"usb-audio: destroy\");\n }\n \n usb_audio_set_output_altset(s, ALTSET_OFF);\ndiff --git a/hw/usb/dev-bluetooth.c b/hw/usb/dev-bluetooth.c\nindex 0bbceaea0b..dfef258dca 100644\n--- a/hw/usb/dev-bluetooth.c\n+++ b/hw/usb/dev-bluetooth.c\n@@ -274,13 +274,13 @@ static void usb_bt_fifo_enqueue(struct usb_hci_in_fifo_s *fifo,\n if (off <= DFIFO_LEN_MASK) {\n if (off + len > DFIFO_LEN_MASK + 1 &&\n (fifo->dsize = off + len) > (DFIFO_LEN_MASK + 1) * 2) {\n- fprintf(stderr, \"%s: can't alloc %i bytes\\n\", __func__, len);\n+ error_report(\"%s: can't alloc %i bytes\", __func__, len);\n exit(-1);\n }\n buf = fifo->data + off;\n } else {\n if (fifo->dlen > fifo->dsize) {\n- fprintf(stderr, \"%s: can't alloc %i bytes\\n\", __func__, len);\n+ error_report(\"%s: can't alloc %i bytes\", __func__, len);\n exit(-1);\n }\n buf = fifo->data + off - fifo->dsize;\ndiff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c\nindex 94c2e94f10..7e1782b8fc 100644\n--- a/hw/usb/dev-mtp.c\n+++ b/hw/usb/dev-mtp.c\n@@ -10,6 +10,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qapi/error.h\"\n #include <wchar.h>\n #include <dirent.h>\n@@ -546,7 +547,7 @@ static void inotify_watchfn(void *arg)\n break;\n \n default:\n- fprintf(stderr, \"usb-mtp: failed to parse inotify event\\n\");\n+ error_report(\"usb-mtp: failed to parse inotify event\");\n continue;\n }\n \n@@ -617,7 +618,7 @@ static void usb_mtp_object_readdir(MTPState *s, MTPObject *o)\n #ifdef CONFIG_INOTIFY1\n int watchfd = usb_mtp_add_watch(s->inotifyfd, o->path);\n if (watchfd == -1) {\n- fprintf(stderr, \"usb-mtp: failed to add watch for %s\\n\", o->path);\n+ error_report(\"usb-mtp: failed to add watch for %s\", o->path);\n } else {\n trace_usb_mtp_inotify_event(s->dev.addr, o->path,\n 0, \"Watch Added\");\n@@ -1144,7 +1145,7 @@ static void usb_mtp_command(MTPState *s, MTPControl *c)\n usb_mtp_object_alloc(s, s->next_handle++, NULL, s->root);\n #ifdef CONFIG_INOTIFY1\n if (usb_mtp_inotify_init(s)) {\n- fprintf(stderr, \"usb-mtp: file monitoring init failed\\n\");\n+ error_report(\"usb-mtp: file monitoring init failed\");\n }\n #endif\n break;\n@@ -1348,7 +1349,7 @@ static void usb_mtp_handle_control(USBDevice *dev, USBPacket *p,\n static void usb_mtp_cancel_packet(USBDevice *dev, USBPacket *p)\n {\n /* we don't use async packets, so this should never be called */\n- fprintf(stderr, \"%s\\n\", __func__);\n+ error_report(\"%s\", __func__);\n }\n \n static void usb_mtp_handle_data(USBDevice *dev, USBPacket *p)\ndiff --git a/hw/usb/dev-network.c b/hw/usb/dev-network.c\nindex 85fc81bf43..9dd4af5e34 100644\n--- a/hw/usb/dev-network.c\n+++ b/hw/usb/dev-network.c\n@@ -815,7 +815,7 @@ static int ndis_query(USBNetState *s, uint32_t oid,\n return sizeof(le32);\n \n default:\n- fprintf(stderr, \"usbnet: unknown OID 0x%08x\\n\", oid);\n+ error_report(\"usbnet: unknown OID 0x%08x\", oid);\n return 0;\n }\n return -1;\n@@ -1084,9 +1084,9 @@ static void usb_net_handle_control(USBDevice *dev, USBPacket *p,\n for (i = 0; i < length; i++) {\n if (!(i & 15))\n fprintf(stderr, \"\\n%04x:\", i);\n- fprintf(stderr, \" %02x\", data[i]);\n+ error_report(\" %02x\", data[i]);\n }\n- fprintf(stderr, \"\\n\\n\");\n+ fprintf(stderr, \"\\n\");\n }\n #endif\n ret = rndis_parse(s, data, length);\n@@ -1111,17 +1111,17 @@ static void usb_net_handle_control(USBDevice *dev, USBPacket *p,\n for (i = 0; i < p->actual_length; i++) {\n if (!(i & 15))\n fprintf(stderr, \"\\n%04x:\", i);\n- fprintf(stderr, \" %02x\", data[i]);\n+ error_report(\" %02x\", data[i]);\n }\n- fprintf(stderr, \"\\n\\n\");\n+ fprintf(stderr, \"\\n\");\n }\n #endif\n break;\n \n default:\n fail:\n- fprintf(stderr, \"usbnet: failed control transaction: \"\n- \"request 0x%x value 0x%x index 0x%x length 0x%x\\n\",\n+ error_report(\"usbnet: failed control transaction: \"\n+ \"request 0x%x value 0x%x index 0x%x length 0x%x\",\n request, value, index, length);\n p->status = USB_RET_STALL;\n break;\n@@ -1190,7 +1190,7 @@ static void usb_net_handle_dataout(USBNetState *s, USBPacket *p)\n uint32_t len;\n \n #ifdef TRAFFIC_DEBUG\n- fprintf(stderr, \"usbnet: data out len %zu\\n\", p->iov.size);\n+ error_report(\"usbnet: data out len %zu\", p->iov.size);\n iov_hexdump(p->iov.iov, p->iov.niov, stderr, \"usbnet\", p->iov.size);\n #endif\n \n@@ -1260,8 +1260,8 @@ static void usb_net_handle_data(USBDevice *dev, USBPacket *p)\n }\n \n if (p->status == USB_RET_STALL) {\n- fprintf(stderr, \"usbnet: failed data transaction: \"\n- \"pid 0x%x ep 0x%x len 0x%zx\\n\",\n+ error_report(\"usbnet: failed data transaction: \"\n+ \"pid 0x%x ep 0x%x len 0x%zx\",\n p->pid, p->ep->nr, p->iov.size);\n }\n }\ndiff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c\nindex 46fd30b075..d6c8a56aec 100644\n--- a/hw/usb/hcd-ehci.c\n+++ b/hw/usb/hcd-ehci.c\n@@ -419,7 +419,7 @@ static int ehci_get_pid(EHCIqtd *qtd)\n case 2:\n return USB_TOKEN_SETUP;\n default:\n- fprintf(stderr, \"bad token\\n\");\n+ error_report(\"bad token\");\n return 0;\n }\n }\n@@ -1033,7 +1033,7 @@ static void ehci_opreg_write(void *ptr, hwaddr addr,\n \n /* not supporting dynamic frame list size at the moment */\n if ((val & USBCMD_FLS) && !(s->usbcmd & USBCMD_FLS)) {\n- fprintf(stderr, \"attempt to set frame list size -- value %d\\n\",\n+ error_report(\"attempt to set frame list size -- value %d\",\n (int)val & USBCMD_FLS);\n val &= ~USBCMD_FLS;\n }\n@@ -1190,7 +1190,7 @@ static int ehci_init_transfer(EHCIPacket *p)\n \n while (bytes > 0) {\n if (cpage > 4) {\n- fprintf(stderr, \"cpage out of range (%d)\\n\", cpage);\n+ error_report(\"cpage out of range (%d)\", cpage);\n qemu_sglist_destroy(&p->sgl);\n return -1;\n }\n@@ -1296,7 +1296,7 @@ static void ehci_execute_complete(EHCIQueue *q)\n break;\n default:\n /* should not be triggerable */\n- fprintf(stderr, \"USB invalid response %d\\n\", p->packet.status);\n+ error_report(\"USB invalid response %d\", p->packet.status);\n g_assert_not_reached();\n break;\n }\n@@ -1345,7 +1345,7 @@ static int ehci_execute(EHCIPacket *p, const char *action)\n p->async == EHCI_ASYNC_INITIALIZED);\n \n if (!(p->qtd.token & QTD_TOKEN_ACTIVE)) {\n- fprintf(stderr, \"Attempting to execute inactive qtd\\n\");\n+ error_report(\"Attempting to execute inactive qtd\");\n return -1;\n }\n \n@@ -1383,7 +1383,7 @@ static int ehci_execute(EHCIPacket *p, const char *action)\n p->packet.actual_length);\n \n if (p->packet.actual_length > BUFF_SIZE) {\n- fprintf(stderr, \"ret from usb_handle_packet > BUFF_SIZE\\n\");\n+ error_report(\"ret from usb_handle_packet > BUFF_SIZE\");\n return -1;\n }\n \n@@ -1461,7 +1461,7 @@ static int ehci_process_itd(EHCIState *ehci,\n case USB_RET_SUCCESS:\n break;\n default:\n- fprintf(stderr, \"Unexpected iso usb result: %d\\n\",\n+ error_report(\"Unexpected iso usb result: %d\",\n ehci->ipacket.status);\n /* Fall through */\n case USB_RET_IOERROR:\n@@ -1564,7 +1564,7 @@ static int ehci_state_fetchentry(EHCIState *ehci, int async)\n \n /* section 4.8, only QH in async schedule */\n if (async && (NLPTR_TYPE_GET(entry) != NLPTR_TYPE_QH)) {\n- fprintf(stderr, \"non queue head request in async schedule\\n\");\n+ error_report(\"non queue head request in async schedule\");\n return -1;\n }\n \n@@ -1586,8 +1586,8 @@ static int ehci_state_fetchentry(EHCIState *ehci, int async)\n \n default:\n /* TODO: handle FSTN type */\n- fprintf(stderr, \"FETCHENTRY: entry at %X is of type %d \"\n- \"which is not supported yet\\n\", entry, NLPTR_TYPE_GET(entry));\n+ error_report(\"FETCHENTRY: entry at %X is of type %d \"\n+ \"which is not supported yet\", entry, NLPTR_TYPE_GET(entry));\n return -1;\n }\n \n@@ -2086,7 +2086,7 @@ static void ehci_advance_state(EHCIState *ehci, int async)\n break;\n \n default:\n- fprintf(stderr, \"Bad state!\\n\");\n+ error_report(\"Bad state!\");\n again = -1;\n g_assert_not_reached();\n break;\n@@ -2094,7 +2094,7 @@ static void ehci_advance_state(EHCIState *ehci, int async)\n \n if (again < 0 || itd_count > 16) {\n /* TODO: notify guest (raise HSE irq?) */\n- fprintf(stderr, \"processing error - resetting ehci HC\\n\");\n+ error_report(\"processing error - resetting ehci HC\");\n ehci_reset(ehci);\n again = 0;\n }\n@@ -2151,8 +2151,8 @@ static void ehci_advance_async_state(EHCIState *ehci)\n \n default:\n /* this should only be due to a developer mistake */\n- fprintf(stderr, \"ehci: Bad asynchronous state %d. \"\n- \"Resetting to active\\n\", ehci->astate);\n+ error_report(\"ehci: Bad asynchronous state %d. \"\n+ \"Resetting to active\", ehci->astate);\n g_assert_not_reached();\n }\n }\n@@ -2201,8 +2201,8 @@ static void ehci_advance_periodic_state(EHCIState *ehci)\n \n default:\n /* this should only be due to a developer mistake */\n- fprintf(stderr, \"ehci: Bad periodic state %d. \"\n- \"Resetting to active\\n\", ehci->pstate);\n+ error_report(\"ehci: Bad periodic state %d. \"\n+ \"Resetting to active\", ehci->pstate);\n g_assert_not_reached();\n }\n }\ndiff --git a/hw/usb/hcd-musb.c b/hw/usb/hcd-musb.c\nindex d70a91a58c..4729926124 100644\n--- a/hw/usb/hcd-musb.c\n+++ b/hw/usb/hcd-musb.c\n@@ -253,8 +253,8 @@\n /* #define MUSB_DEBUG */\n \n #ifdef MUSB_DEBUG\n-#define TRACE(fmt, ...) fprintf(stderr, \"%s@%d: \" fmt \"\\n\", __func__, \\\n- __LINE__, ##__VA_ARGS__)\n+#define TRACE(fmt, ...) error_report(\"%s@%d: \" fmt \"\", __func__, \\\n+ __LINE__, ##__VA_ARGS__)\n #else\n #define TRACE(...)\n #endif\ndiff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c\nindex d75c085d94..6cc1be09a2 100644\n--- a/hw/usb/hcd-xhci.c\n+++ b/hw/usb/hcd-xhci.c\n@@ -19,6 +19,7 @@\n * License along with this library; if not, see <http://www.gnu.org/licenses/>.\n */\n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"hw/hw.h\"\n #include \"qemu/timer.h\"\n #include \"qemu/queue.h\"\n@@ -39,7 +40,7 @@\n #else\n #define DPRINTF(...) do {} while (0)\n #endif\n-#define FIXME(_msg) do { fprintf(stderr, \"FIXME %s:%d %s\\n\", \\\n+#define FIXME(_msg) do { error_report(\"FIXME %s:%d %s\", \\\n __func__, __LINE__, _msg); abort(); } while (0)\n \n #define TRB_LINK_LIMIT 32\ndiff --git a/hw/usb/host-legacy.c b/hw/usb/host-legacy.c\nindex 3b57e21b52..f0c81e5309 100644\n--- a/hw/usb/host-legacy.c\n+++ b/hw/usb/host-legacy.c\n@@ -86,7 +86,7 @@ static int parse_filter(const char *spec, struct USBAutoFilter *f)\n }\n \n if (i < DEV) {\n- fprintf(stderr, \"husb: invalid auto filter spec %s\\n\", spec);\n+ error_report(\"husb: invalid auto filter spec %s\", spec);\n return -1;\n }\n \ndiff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c\nindex 0c5c9cde1c..76ae5d2fe5 100644\n--- a/hw/watchdog/watchdog.c\n+++ b/hw/watchdog/watchdog.c\n@@ -20,6 +20,7 @@\n */\n \n #include \"qemu/osdep.h\"\n+#include \"qemu/error-report.h\"\n #include \"qemu/option.h\"\n #include \"qemu/config-file.h\"\n #include \"qemu/queue.h\"\n@@ -51,7 +52,7 @@ int select_watchdog(const char *p)\n /* -watchdog ? lists available devices and exits cleanly. */\n if (is_help_option(p)) {\n QLIST_FOREACH(model, &watchdog_list, entry) {\n- fprintf(stderr, \"\\t%s\\t%s\\n\",\n+ error_report(\"\\t%s\\t%s\",\n model->wdt_name, model->wdt_description);\n }\n return 2;\n@@ -67,9 +68,9 @@ int select_watchdog(const char *p)\n }\n }\n \n- fprintf(stderr, \"Unknown -watchdog device. Supported devices are:\\n\");\n+ error_report(\"Unknown -watchdog device. Supported devices are:\");\n QLIST_FOREACH(model, &watchdog_list, entry) {\n- fprintf(stderr, \"\\t%s\\t%s\\n\",\n+ error_report(\"\\t%s\\t%s\",\n model->wdt_name, model->wdt_description);\n }\n return 1;\n@@ -133,7 +134,7 @@ void watchdog_perform_action(void)\n \n case WDT_DEBUG:\n qapi_event_send_watchdog(WATCHDOG_EXPIRATION_ACTION_DEBUG, &error_abort);\n- fprintf(stderr, \"watchdog: timer fired\\n\");\n+ error_report(\"watchdog: timer fired\");\n break;\n \n case WDT_NONE:\ndiff --git a/hw/watchdog/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c\nindex 49b3cd188a..f596f70a3b 100644\n--- a/hw/watchdog/wdt_i6300esb.c\n+++ b/hw/watchdog/wdt_i6300esb.c\n@@ -20,7 +20,7 @@\n */\n \n #include \"qemu/osdep.h\"\n-\n+#include \"qemu/error-report.h\"\n #include \"qemu-common.h\"\n #include \"qemu/timer.h\"\n #include \"sysemu/watchdog.h\"\n@@ -186,10 +186,12 @@ static void i6300esb_timer_expired(void *vp)\n /* What to do at the end of stage 1? */\n switch (d->int_type) {\n case INT_TYPE_IRQ:\n- fprintf(stderr, \"i6300esb_timer_expired: I would send APIC 1 INT 10 here if I knew how (XXX)\\n\");\n+ error_report(\"i6300esb_timer_expired: I would send APIC 1 INT 10\"\n+ \"here if I knew how (XXX)\");\n break;\n case INT_TYPE_SMI:\n- fprintf(stderr, \"i6300esb_timer_expired: I would send SMI here if I knew how (XXX)\\n\");\n+ error_report(\"i6300esb_timer_expired: I would send SMI here if I\"\n+ \"knew how (XXX)\");\n break;\n }\n \ndiff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c\nindex 632a938dcc..a7c821cfcf 100644\n--- a/hw/xen/xen-common.c\n+++ b/hw/xen/xen-common.c\n@@ -47,19 +47,19 @@ static int store_dev_info(int domid, Chardev *cs, const char *string)\n /* We now have everything we need to set the xenstore entry. */\n xs = xs_open(0);\n if (xs == NULL) {\n- fprintf(stderr, \"Could not contact XenStore\\n\");\n+ error_report(\"Could not contact XenStore\");\n goto out;\n }\n \n path = xs_get_domain_path(xs, domid);\n if (path == NULL) {\n- fprintf(stderr, \"xs_get_domain_path() error\\n\");\n+ error_report(\"xs_get_domain_path() error\");\n goto out;\n }\n newpath = realloc(path, (strlen(path) + strlen(string) +\n strlen(\"/tty\") + 1));\n if (newpath == NULL) {\n- fprintf(stderr, \"realloc error\\n\");\n+ error_report(\"realloc error\");\n goto out;\n }\n path = newpath;\n@@ -96,13 +96,13 @@ static void xenstore_record_dm_state(struct xs_handle *xs, const char *state)\n char path[50];\n \n if (xs == NULL) {\n- fprintf(stderr, \"xenstore connection not initialized\\n\");\n+ error_report(\"xenstore connection not initialized\");\n exit(1);\n }\n \n snprintf(path, sizeof (path), \"device-model/%u/state\", xen_domid);\n if (!xs_write(xs, XBT_NULL, path, state, strlen(state))) {\n- fprintf(stderr, \"error recording dm state\\n\");\n+ error_report(\"error recording dm state\");\n exit(1);\n }\n }\ndiff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c\nindex 375efa68f6..e86d380d02 100644\n--- a/hw/xen/xen_pt.c\n+++ b/hw/xen/xen_pt.c\n@@ -73,7 +73,7 @@ void xen_pt_log(const PCIDevice *d, const char *f, ...)\n \n va_start(ap, f);\n if (d) {\n- fprintf(stderr, \"[%02x:%02x.%d] \", pci_bus_num(d->bus),\n+ error_report(\"[%02x:%02x.%d] \", pci_bus_num(d->bus),\n PCI_SLOT(d->devfn), PCI_FUNC(d->devfn));\n }\n vfprintf(stderr, f, ap);\n@@ -87,7 +87,7 @@ static int xen_pt_pci_config_access_check(PCIDevice *d, uint32_t addr, int len)\n /* check offset range */\n if (addr > 0xFF) {\n XEN_PT_ERR(d, \"Failed to access register with offset exceeding 0xFF. \"\n- \"(addr: 0x%02x, len: %d)\\n\", addr, len);\n+ \"(addr: 0x%02x, len: %d)\", addr, len);\n return -1;\n }\n \ndiff --git a/hw/xenpv/xen_domainbuild.c b/hw/xenpv/xen_domainbuild.c\nindex 027f76fad1..f5514ffec2 100644\n--- a/hw/xenpv/xen_domainbuild.c\n+++ b/hw/xenpv/xen_domainbuild.c\n@@ -25,22 +25,22 @@ static int xenstore_domain_mkdir(char *path)\n int i;\n \n if (!xs_mkdir(xenstore, 0, path)) {\n- fprintf(stderr, \"%s: xs_mkdir %s: failed\\n\", __func__, path);\n-\treturn -1;\n+ error_report(\"%s: xs_mkdir %s: failed\", __func__, path);\n+ return -1;\n }\n if (!xs_set_permissions(xenstore, 0, path, perms_ro, 2)) {\n- fprintf(stderr, \"%s: xs_set_permissions failed\\n\", __func__);\n-\treturn -1;\n+ error_report(\"%s: xs_set_permissions failed\", __func__);\n+ return -1;\n }\n \n for (i = 0; writable[i]; i++) {\n snprintf(subpath, sizeof(subpath), \"%s/%s\", path, writable[i]);\n if (!xs_mkdir(xenstore, 0, subpath)) {\n- fprintf(stderr, \"%s: xs_mkdir %s: failed\\n\", __func__, subpath);\n+ error_report(\"%s: xs_mkdir %s: failed\", __func__, subpath);\n return -1;\n }\n if (!xs_set_permissions(xenstore, 0, subpath, perms_rw, 2)) {\n- fprintf(stderr, \"%s: xs_set_permissions failed\\n\", __func__);\n+ error_report(\"%s: xs_set_permissions failed\", __func__);\n return -1;\n }\n }\n@@ -235,7 +235,7 @@ int xen_domain_build_pv(const char *kernel, const char *ramdisk,\n memcpy(uuid, &qemu_uuid, sizeof(uuid));\n rc = xen_domain_create(xen_xc, ssidref, uuid, flags, &xen_domid);\n if (rc < 0) {\n- fprintf(stderr, \"xen: xc_domain_create() failed\\n\");\n+ error_report(\"xen: xc_domain_create() failed\");\n goto err;\n }\n qemu_log(\"xen: created domain %d\\n\", xen_domid);\n@@ -248,21 +248,21 @@ int xen_domain_build_pv(const char *kernel, const char *ramdisk,\n \n rc = xc_domain_max_vcpus(xen_xc, xen_domid, smp_cpus);\n if (rc < 0) {\n- fprintf(stderr, \"xen: xc_domain_max_vcpus() failed\\n\");\n+ error_report(\"xen: xc_domain_max_vcpus() failed\");\n goto err;\n }\n \n #if 0\n rc = xc_domain_setcpuweight(xen_xc, xen_domid, 256);\n if (rc < 0) {\n- fprintf(stderr, \"xen: xc_domain_setcpuweight() failed\\n\");\n+ error_report(\"xen: xc_domain_setcpuweight() failed\");\n goto err;\n }\n #endif\n \n rc = xc_domain_setmaxmem(xen_xc, xen_domid, ram_size >> 10);\n if (rc < 0) {\n- fprintf(stderr, \"xen: xc_domain_setmaxmem() failed\\n\");\n+ error_report(\"xen: xc_domain_setmaxmem() failed\");\n goto err;\n }\n \n@@ -275,7 +275,7 @@ int xen_domain_build_pv(const char *kernel, const char *ramdisk,\n xenstore_port, &xenstore_mfn,\n console_port, &console_mfn);\n if (rc < 0) {\n- fprintf(stderr, \"xen: xc_linux_build() failed\\n\");\n+ error_report(\"xen: xc_linux_build() failed\");\n goto err;\n }\n \n@@ -285,7 +285,7 @@ int xen_domain_build_pv(const char *kernel, const char *ramdisk,\n qemu_log(\"xen: unpausing domain %d\\n\", xen_domid);\n rc = xc_domain_unpause(xen_xc, xen_domid);\n if (rc < 0) {\n- fprintf(stderr, \"xen: xc_domain_unpause() failed\\n\");\n+ error_report(\"xen: xc_domain_unpause() failed\");\n goto err;\n }\n \ndiff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c\nindex 69a52a9f93..ac419e164b 100644\n--- a/hw/xenpv/xen_machine_pv.c\n+++ b/hw/xenpv/xen_machine_pv.c\n@@ -36,7 +36,7 @@ static void xen_init_pv(MachineState *machine)\n \n /* Initialize backend core & drivers */\n if (xen_be_init() != 0) {\n- fprintf(stderr, \"%s: xen backend core setup failed\\n\", __func__);\n+ error_report(\"%s: xen backend core setup failed\", __func__);\n exit(1);\n }\n \n@@ -51,18 +51,18 @@ static void xen_init_pv(MachineState *machine)\n const char *initrd_filename = machine->initrd_filename;\n if (xen_domain_build_pv(kernel_filename, initrd_filename,\n kernel_cmdline) < 0) {\n- fprintf(stderr, \"xen pv domain creation failed\\n\");\n+ error_report(\"xen pv domain creation failed\");\n exit(1);\n }\n break;\n }\n #endif\n case XEN_EMULATE:\n- fprintf(stderr, \"xen emulation not implemented (yet)\\n\");\n+ error_report(\"xen emulation not implemented (yet)\");\n exit(1);\n break;\n default:\n- fprintf(stderr, \"unhandled xen_mode %d\\n\", xen_mode);\n+ error_report(\"unhandled xen_mode %d\", xen_mode);\n exit(1);\n break;\n }\n", "prefixes": [ "v1", "3/8" ] }