From nobody Mon Feb 9 07:43:03 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1513793442541580.6244096971518; Wed, 20 Dec 2017 10:10:42 -0800 (PST) Received: from localhost ([::1]:33137 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eRip4-0000wI-0P for importer@patchew.org; Wed, 20 Dec 2017 13:10:30 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60219) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eRi9b-0006QP-Md for qemu-devel@nongnu.org; Wed, 20 Dec 2017 12:27:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eRi9Y-0005CA-0c for qemu-devel@nongnu.org; Wed, 20 Dec 2017 12:27:39 -0500 Received: from mail-cys01nam02on0046.outbound.protection.outlook.com ([104.47.37.46]:44491 helo=NAM02-CY1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eRi9L-00054C-Cb; Wed, 20 Dec 2017 12:27:23 -0500 Received: from BY2PR02CA0110.namprd02.prod.outlook.com (10.163.44.164) by BN6PR02MB3378.namprd02.prod.outlook.com (10.161.152.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.323.15; Wed, 20 Dec 2017 17:27:21 +0000 Received: from SN1NAM02FT036.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::208) by BY2PR02CA0110.outlook.office365.com (2a01:111:e400:5261::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.323.15 via Frontend Transport; Wed, 20 Dec 2017 17:27:20 +0000 Received: from xsj-pvapsmtpgw01 (149.199.60.83) by SN1NAM02FT036.mail.protection.outlook.com (10.152.72.149) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.302.6 via Frontend Transport; Wed, 20 Dec 2017 17:27:19 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1eRi9H-0004rl-9W; Wed, 20 Dec 2017 09:27:19 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1eRi9H-0003VY-77; Wed, 20 Dec 2017 09:27:19 -0800 Received: from xsj-pvapsmtp01 (xsj-mail.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id vBKHRGtK019493; Wed, 20 Dec 2017 09:27:17 -0800 Received: from [172.19.2.220] (helo=xsjalistai50.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1eRi9E-0003VI-P8; Wed, 20 Dec 2017 09:27:16 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Ona3BFSznjIm5mepcn9LC5FrUwSlKp5HWyNb3SEz9AU=; b=5V9X6YjmCk55v9bd3sM498lmjwG42955QMY+74cOI0XFbWEmRpRHCQJEZIWouGlmeBCsn2npuzDymYV8IR2nlki0aQLx9onw9HjjFPiI5T645jNlo4k4p9bEPnrSBqXctnnOQFmq99OCObq380L+2pOAnnWVIJvWKh7I/YMnk5I= Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; From: Alistair Francis To: , Date: Wed, 20 Dec 2017 09:23:01 -0800 Message-ID: <6bad4084f4cbc290e2e9f1a72fcfcda7223383ec.1513790495.git.alistair.francis@xilinx.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23540.006 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(979002)(376002)(346002)(396003)(39860400002)(39380400002)(2980300002)(438002)(189003)(199004)(81156014)(47776003)(118296001)(50466002)(50226002)(8936002)(5890100001)(5820100001)(23676004)(7696005)(478600001)(8676002)(36756003)(356003)(2906002)(305945005)(2950100002)(6666003)(575784001)(76176011)(63266004)(59450400001)(36386004)(5660300001)(2870700001)(4326008)(77096006)(39060400002)(81166006)(106466001)(316002)(106002)(54906003)(9786002)(110136005)(107986001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR02MB3378; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT036; 1:sLXKFckyjPM3QiI3shgmzLuu+NREBYrIrnkCbhBMGruk6mKt96gBhL+jcfQOldk5jshCaIj6RNQAORYqwGFm7Wlcxc2zEmLEs9RT2ZZL40RnTzY4D/EZ1DLeLaZi8wk0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3dc8aaea-a62b-47b6-1351-08d547ceec96 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4608076)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603307)(7153060); SRVR:BN6PR02MB3378; X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB3378; 3:NEnp5qOTWsUZwRKL1oW6OyfrapfX0/4Xw3OJtjXtK5s0kNVWDiaxKnC6V8Q8H7b40kWrBDF818uFh9YAreHDG4Ajqab131FDstXweF8ltVrysI1aR7Ie1TikD7hSPioGlA5bRG5qK2hyqlmvb5Y4bKEwFhtgHw2iTad6XrUa3WfYchTuieysxdmKv3YbhFTJMNNZestPGmU4bEBs+8yjLkFHEIm5klzdFtIxaxiKtu08hka36xA6KPCMrwa93QWgr6oF8ta8Rz78pdTPNmpBZH7JfXAoBgNoOeB6F6biGvWtvcBre/lpuJI8oeYYwfRYhXKW40pE57XVzlywOQB8+Ibumf2g9IC98VSIBdMoAgM=; 25:mLm+u6HhFSdzBup+eKajRp+6VLuYjdG1T+lg7dB4cIfm7i24Nhmqw391QKHsinfXaAQJKC0Dgl0rbvBbcgzGJK7fADWZ6HViX69elsELXZn4hcAz1MslAd9oIlGKIQ/RKwMqRn0sVC3hr1s6v7quH436JxZ20btfk+/fjX8C6qnVZL+Me2ogkeMEE6fhZbv5CPveLqfuIE6wF4BFLTn1e4LtR7/NzHUxPYy56F8L3oWwGfQNYiuArdZJE1zOMWrOatbAJM55+ZYu9GFdoPuLYwxL8hBfQHxK6HDGiO8c5QAH7no84RTj43aJopVSVl03jJdP30PXxnVkiEXUTtwz8A== X-MS-TrafficTypeDiagnostic: BN6PR02MB3378: X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB3378; 31:5eQrPSmdTwvil4BG9vuJLnW2wEk1UW0+io+C6Sfb+s5ntuRMWZ06cmzVagoH+kJHAZ6ls5YY+56BsUr/8aEADWrTCfzJGkkdrCYs409VvZqJPPTyhM7EsFOxu4qQhvM98NGwX0BShOFDYUljJWIBqu8sZCaeamUjQgwkTfEPXgz8whxEF8wMZ9arecbLdHnfMQ4+TFwnWL5tjeOuZKcl1Z72y+0A1dohZ5nPv6LPbjA=; 20:6EvBP3cBZi/03xuBd1K0gNLJhHvdFx3ZuXuP5CmzFAaOnwbXKXUCJ3LRljDt7xJADodCAe2LLeNDAYLjcF21io3HfjZvUd6t0DyBC7U7ZDVcztCrr9Yfhb94UZP79VLDr995xHteJlY6VQ8xhBhGlpuxLz9/nqgP1Fj8QoJrjw7QOd14Ll24iRL40mGKYWPcW/GZV6yqGsJxRhKy3kDjqlrZg6ntY7RRlBxb5XHoTCEvGgb7fBfYotGpqpP4Pkg0jUwcUsFZut0gCIMwbm+XFBEDCB3htwQ4L0VCJnbZ3EpPjiYI+W23jpiYoyKgIlNoM9tHHrdiZPN3BZ0V3nmF2EwINecqtZwpgJRy7m1nX6OnIU4DvQQHddAY+E4ZQPqLesFRQcQm6EwpKE7NLhbuCdvO8XLuyAcqPm+b4SnqrOqdatlCK/5pfHw0N9kKlfOxYgPjYwhQGW3xdyTw++GXqVguISg3XlanV5uG6/qGfLPed/e2yVF8fpj2WFfGnhdd X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(93006095)(93004095)(3231023)(10201501046)(3002001)(6055026)(6041268)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:BN6PR02MB3378; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:BN6PR02MB3378; X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB3378; 4:oNgniXeg6z0Sq81sxrEUKbIK/8rtLzbIJOU1XKA23Hm17uVocpWQmtu6/otzh0mNyX80aNxLSnJI6bDy+liPLK66kFGBgaqeqBKNTYK39r6ECC0HoKBQqLY+S/jNOsvBpJdBzpFV4m7eyoXb++MKt2BkbUnxU5ZVzBm5YZFrIyPUYaUXuxPDAub++ajrpSpY+PZScaPM/6w0abCi/N9GOLVTcFN47mHH07h+62PmjORWAmjg+OxWW3PaKAHxPb2sCvaTt0itbkPvEEE7k3d5tyudnSJxLe5tdd3rDcZKBR66FtQEHEXp2Sbda1ba2hMqYbSujgQAXR3RcTl8rwbkfA== X-Forefront-PRVS: 0527DFA348 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR02MB3378; 23:FJHuJ+1jEnHKRzm+r6RUEspji0f9B25CRr0NmQPKM?= =?us-ascii?Q?st2VbHTv6Xn/mViYxTdb2GLWvFKRW1h1euuOvFgl4AxXZtvahF3QlwFZrqvt?= =?us-ascii?Q?byQlrR3RCV5wjVns0OpIcWZvdLg3BlfN2QOwAPgOzJQdWpy/VNj45aZDMi1F?= =?us-ascii?Q?dsyhzCQyMf/HRA7PGq7gUKpYrkOlAuc8XFlg9T8KyyI7IlfQcgH8fYyuBbsn?= =?us-ascii?Q?Fx+8fnsa6zIZFJZRoxrm3UWvVcAbQ7vkg41Rs7lyM+xhjTvmZLUFAsQCOItn?= =?us-ascii?Q?/FmitI2Tb+SH7bGIcwADDkG+yx2cDI+Si1SiZIhcnDM1Q4mkWqDRIRsAX8fV?= =?us-ascii?Q?bmcPt8sRfd08ajp54DjQMq7twF5D7FW72k7zg7Pz4MFtwHjdoRH73AswLpPC?= =?us-ascii?Q?2ewXdSlJnJI0U4q+xn50qWmplAh2I8qKpyeOGkd0UMXXJRTyBwZsWYsrInSz?= =?us-ascii?Q?BiibzHZgE6BQbRzwdhvFTB/IGJD5DWuyb9Fton0ddvqnSDj1/CYD6Ux5KgYe?= =?us-ascii?Q?Uy4FeYStd6nkfD7FnV3F8h/3dX3pqznqHzrc+FV6q7A3p0Be4HukxPsOhzf4?= =?us-ascii?Q?tw1lWL9RP9hNZYN27gUh7p5Fe9CeS5FR96P9MI4u5SwJrGLePS1Or4tt40gH?= =?us-ascii?Q?HBqNDZacocYXEMxr9riGqdWAhs/1u23PTjMUm5MfLW3G0+5jVeTtFtP7rB7F?= =?us-ascii?Q?5nl6vu1VaAQoauNqRekRA31fTZVeNsoVKmk9R6N5ooNsZ1NOBWLXClhX28za?= =?us-ascii?Q?t6us1YfjIjipnSzuIqk7Ky560in3kkAzgwgzDQUz9FRmbzX9//4sLdw82YMM?= =?us-ascii?Q?mLDFXk7koRLmni3lk6dnf5swWF/nyFbhsPgTMlBZad1gjdYJe7fLL4/YfP5Q?= =?us-ascii?Q?XKaPOwHYeqhBSuMVz5zpAp7PY4VNyLha4c82jmUNWi/iaWGhYM9x0yP8o9dO?= =?us-ascii?Q?wLQGYawNONEI3K2d/QSNhyJ6iLToyvzg4IkRn4UouWyzLMtr8OviBFe3t4EI?= =?us-ascii?Q?iUeAAl0TEwMmdNQF3iT5t7ChRF4wUtjhAil2LrGWTd9m8f6XWfmiaXFBySSF?= =?us-ascii?Q?EOYAq0ojFQgduWZwdozGjb5qsWpLTMg5pz0BSb7y6dsKnwLXYyZxeYAgRi8d?= =?us-ascii?Q?L+z20b33+QrGmHuOk+AXdLTntbID43ArwjS3U/OBVz4eO0QjK+rpLMfdLl8t?= =?us-ascii?Q?Dqwddm41tf3K5M=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB3378; 6:odTfzAFJLh5/bo/SAMI9+MSr/sW1SoYcBO/BuzHeD+k+gcfNt5PO6GnqNonuDK7RS4xWEA2BSrarh3KinXAWtkUatWMwvHyAxmr+//Jzgol1rT/lL25V0WNkhbJn67fZDXSkNul3h6Xg5ADxl/n1Ec/WpeMue4uoKPa88iwZA894gidpZMfiNNfAntptgvxdN1gpR1rYVOhRIAuill9/V+7TH2cxrhlHKe0fqcPbexS5bF6DU0gVkdRdHitep0OAiSnpSO7zC96Du5+M/h2g0O+BB7nEo/mdIn9ZpW3huy7gvHwlAsunuf2g/UkDhf7KXAAnDl8bs8wMvrenMEs1UhdU6JcUJaKY+Iz4GNZc5xA=; 5:GVORv8mL+QJ5+CBc1hrr8pWOO6WJoip5bdHkhmPXwrhXxsPOMx8xtOlaSa5wuqeSwVtXHcjjHL/Dua3Jc1s+uQjpW1K0X88VCRXHgwd5iMD2ALprf4gw+VxhFuBENswmbq7ZqDPOx7e2d9RbNNvBqf2d8NA2XPgZTsizIX+Wn40=; 24:bwEHddV/9paHdmIicSoCk8kVjNFB/SY6/piYXKkbiDdedAynyVn+yG6IquNXWDhFrA3oCrQmc5z8KcS9J455Jgd8Itsq3NkRXdL+hRktidw=; 7:4cqgx5Xa/quRMfTXs7xMrrPNxON9MtAij9i9eRnIoUP67ueGkYYyreSV7xfHehdlVLHWQ0WnIFzD6jd69FM88SkSY0bh4Grk505CWsZhQlojy3XYO1ZOr5pQqxTH6A3iE1I06Hd/Qm2UXgP+dU7qHPWhhxpXs5rk6KOCg39NsE18FbtUZPhXfl7rcfJroK/g/uWRaE/NrHHs6ROoVUsekBk5ZeAEhxIHCUHZKAaqvZ5k4Ub6222/Fz8JXAF77TlL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2017 17:27:19.7136 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3dc8aaea-a62b-47b6-1351-08d547ceec96 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR02MB3378 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.37.46 Subject: [Qemu-devel] [PATCH v6 04/29] hw/arm: Replace fprintf(stderr, "*\n" with error_report() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, qemu-arm@nongnu.org, armbru@redhat.com, alistair.francis@xilinx.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Replace a large number of the fprintf(stderr, "*\n" calls with error_report(). The functions were renamed with these commands and then compiler issues where manually fixed. find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_= report("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_re= port("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report= ("\1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("= \1"\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1= "\2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\= 2);|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2)= ;|Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|= Ig}' \ {} + find ./* -type f -exec sed -i \ 'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig= }' \ {} + find ./* -type f -exec sed -i \ 'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}'= \ {} + find ./* -type f -exec sed -i \ 'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \ {} + Some lines where then manually tweaked to pass checkpatch. The 'qemu: ' prefix was manually removed from the hw/arm/boot.c file. Signed-off-by: Alistair Francis Cc: qemu-arm@nongnu.org Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Markus Armbruster --- V6: - Fix indendation V3: - Remoave 'qemu: ' prefix V2: - Split hw patch into individual directories hw/arm/armv7m.c | 2 +- hw/arm/boot.c | 37 ++++++++++++++++++------------------- hw/arm/gumstix.c | 13 +++++++------ hw/arm/mainstone.c | 7 ++++--- hw/arm/musicpal.c | 2 +- hw/arm/omap1.c | 5 +++-- hw/arm/omap2.c | 23 ++++++++++++----------- hw/arm/omap_sx1.c | 8 +++----- hw/arm/palm.c | 10 +++++----- hw/arm/pxa2xx.c | 7 ++++--- hw/arm/stellaris.c | 3 ++- hw/arm/tosa.c | 18 +++++++++--------- hw/arm/versatilepb.c | 2 +- hw/arm/vexpress.c | 8 ++++---- hw/arm/z2.c | 6 +++--- 15 files changed, 77 insertions(+), 74 deletions(-) diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c index bb2dfc942b..56770a7048 100644 --- a/hw/arm/armv7m.c +++ b/hw/arm/armv7m.c @@ -278,7 +278,7 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel= _filename, int mem_size) #endif =20 if (!kernel_filename && !qtest_enabled()) { - fprintf(stderr, "Guest image must be specified (using -kernel)\n"); + error_report("Guest image must be specified (using -kernel)"); exit(1); } =20 diff --git a/hw/arm/boot.c b/hw/arm/boot.c index c2720c8046..6e6b8c0c6a 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -8,6 +8,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include #include "hw/hw.h" @@ -418,13 +419,13 @@ static int load_dtb(hwaddr addr, const struct arm_boo= t_info *binfo, char *filename; filename =3D qemu_find_file(QEMU_FILE_TYPE_BIOS, binfo->dtb_filena= me); if (!filename) { - fprintf(stderr, "Couldn't open dtb file %s\n", binfo->dtb_file= name); + error_report("Couldn't open dtb file %s", binfo->dtb_filename); goto fail; } =20 fdt =3D load_device_tree(filename, &size); if (!fdt) { - fprintf(stderr, "Couldn't open dtb file %s\n", filename); + error_report("Couldn't open dtb file %s", filename); g_free(filename); goto fail; } @@ -432,7 +433,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, } else { fdt =3D binfo->get_dtb(binfo, &size); if (!fdt) { - fprintf(stderr, "Board was unable to create a dtb blob\n"); + error_report("Board was unable to create a dtb blob"); goto fail; } } @@ -451,7 +452,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, scells =3D qemu_fdt_getprop_cell(fdt, "/", "#size-cells", NULL, &error_fatal); if (acells =3D=3D 0 || scells =3D=3D 0) { - fprintf(stderr, "dtb file invalid (#address-cells or #size-cells 0= )\n"); + error_report("dtb file invalid (#address-cells or #size-cells 0)"); goto fail; } =20 @@ -459,8 +460,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, /* This is user error so deserves a friendlier error message * than the failure of setprop_sized_cells would provide */ - fprintf(stderr, "qemu: dtb file not compatible with " - "RAM size > 4GB\n"); + error_report("dtb file not compatible with RAM size > 4GB"); goto fail; } =20 @@ -480,7 +480,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, acells, mem_base, scells, mem_len); if (rc < 0) { - fprintf(stderr, "couldn't set %s/reg for node %d\n", noden= ame, + error_report("couldn't set %s/reg for node %d", nodename, i); goto fail; } @@ -505,7 +505,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, acells, binfo->loader_start, scells, binfo->ram_size); if (rc < 0) { - fprintf(stderr, "couldn't set /memory/reg\n"); + error_report("couldn't set /memory/reg"); goto fail; } } @@ -519,7 +519,7 @@ static int load_dtb(hwaddr addr, const struct arm_boot_= info *binfo, rc =3D qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", binfo->kernel_cmdline); if (rc < 0) { - fprintf(stderr, "couldn't set /chosen/bootargs\n"); + error_report("couldn't set /chosen/bootargs"); goto fail; } } @@ -528,14 +528,14 @@ static int load_dtb(hwaddr addr, const struct arm_boo= t_info *binfo, rc =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-start", binfo->initrd_start); if (rc < 0) { - fprintf(stderr, "couldn't set /chosen/linux,initrd-start\n"); + error_report("couldn't set /chosen/linux,initrd-start"); goto fail; } =20 rc =3D qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", binfo->initrd_start + binfo->initrd_siz= e); if (rc < 0) { - fprintf(stderr, "couldn't set /chosen/linux,initrd-end\n"); + error_report("couldn't set /chosen/linux,initrd-end"); goto fail; } } @@ -690,7 +690,7 @@ static void load_image_to_fw_cfg(FWCfgState *fw_cfg, ui= nt16_t size_key, gsize length; =20 if (!g_file_get_contents(image_name, &contents, &length, NULL)) { - fprintf(stderr, "failed to load \"%s\"\n", image_name); + error_report("failed to load \"%s\"", image_name); exit(1); } size =3D length; @@ -956,8 +956,7 @@ static void arm_load_kernel_notify(Notifier *notifier, = void *data) is_linux =3D 1; } if (kernel_size < 0) { - fprintf(stderr, "qemu: could not load kernel '%s'\n", - info->kernel_filename); + error_report("could not load kernel '%s'", info->kernel_filename); exit(1); } info->entry =3D entry; @@ -976,8 +975,8 @@ static void arm_load_kernel_notify(Notifier *notifier, = void *data) info->initrd_start); } if (initrd_size < 0) { - fprintf(stderr, "qemu: could not load initrd '%s'\n", - info->initrd_filename); + error_report("could not load initrd '%s'", + info->initrd_filename); exit(1); } } else { @@ -1021,9 +1020,9 @@ static void arm_load_kernel_notify(Notifier *notifier= , void *data) } else { fixupcontext[FIXUP_ARGPTR] =3D info->loader_start + KERNEL_ARG= S_ADDR; if (info->ram_size >=3D (1ULL << 32)) { - fprintf(stderr, "qemu: RAM size must be less than 4GB to b= oot" - " Linux kernel using ATAGS (try passing a device t= ree" - " using -dtb)\n"); + error_report("RAM size must be less than 4GB to boot" + " Linux kernel using ATAGS (try passing a dev= ice tree" + " using -dtb)"); exit(1); } } diff --git a/hw/arm/gumstix.c b/hw/arm/gumstix.c index bba9e9f57a..8f11b03066 100644 --- a/hw/arm/gumstix.c +++ b/hw/arm/gumstix.c @@ -35,6 +35,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/arm/pxa.h" #include "net/net.h" @@ -62,8 +63,8 @@ static void connex_init(MachineState *machine) =20 dinfo =3D drive_get(IF_PFLASH, 0, 0); if (!dinfo && !qtest_enabled()) { - fprintf(stderr, "A flash image must be given with the " - "'pflash' parameter\n"); + error_report("A flash image must be given with the " + "'pflash' parameter"); exit(1); } =20 @@ -76,7 +77,7 @@ static void connex_init(MachineState *machine) dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, sector_len, connex_rom / sector_len, 2, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("Error registering flash memory."); exit(1); } =20 @@ -99,8 +100,8 @@ static void verdex_init(MachineState *machine) =20 dinfo =3D drive_get(IF_PFLASH, 0, 0); if (!dinfo && !qtest_enabled()) { - fprintf(stderr, "A flash image must be given with the " - "'pflash' parameter\n"); + error_report("A flash image must be given with the " + "'pflash' parameter"); exit(1); } =20 @@ -113,7 +114,7 @@ static void verdex_init(MachineState *machine) dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, sector_len, verdex_rom / sector_len, 2, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("Error registering flash memory."); exit(1); } =20 diff --git a/hw/arm/mainstone.c b/hw/arm/mainstone.c index d07972a966..189febf8b7 100644 --- a/hw/arm/mainstone.c +++ b/hw/arm/mainstone.c @@ -12,6 +12,7 @@ * GNU GPL, version 2 or (at your option) any later version. */ #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "hw/hw.h" #include "hw/arm/pxa.h" @@ -143,8 +144,8 @@ static void mainstone_common_init(MemoryRegion *address= _space_mem, if (qtest_enabled()) { break; } - fprintf(stderr, "Two flash images must be given with the " - "'pflash' parameter\n"); + error_report("Two flash images must be given with the " + "'pflash' parameter"); exit(1); } =20 @@ -154,7 +155,7 @@ static void mainstone_common_init(MemoryRegion *address= _space_mem, blk_by_legacy_dinfo(dinfo), sector_len, MAINSTONE_FLASH / sector_le= n, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("Error registering flash memory."); exit(1); } } diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c index b648770882..06127a873d 100644 --- a/hw/arm/musicpal.c +++ b/hw/arm/musicpal.c @@ -1626,7 +1626,7 @@ static void musicpal_init(MachineState *machine) flash_size =3D blk_getlength(blk); if (flash_size !=3D 8*1024*1024 && flash_size !=3D 16*1024*1024 && flash_size !=3D 32*1024*1024) { - fprintf(stderr, "Invalid flash image size\n"); + error_report("Invalid flash image size"); exit(1); } =20 diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c index 92e58f09c8..b3a23a83d1 100644 --- a/hw/arm/omap1.c +++ b/hw/arm/omap1.c @@ -18,6 +18,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -2313,7 +2314,7 @@ void omap_uwire_attach(struct omap_uwire_s *s, uWireSlave *slave, int chipselect) { if (chipselect < 0 || chipselect > 3) { - fprintf(stderr, "%s: Bad chipselect %i\n", __func__, chipselect); + error_report("%s: Bad chipselect %i", __func__, chipselect); exit(-1); } =20 @@ -3987,7 +3988,7 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegio= n *system_memory, =20 dinfo =3D drive_get(IF_SD, 0, 0); if (!dinfo) { - fprintf(stderr, "qemu: missing SecureDigital device\n"); + error_report("missing SecureDigital device"); exit(1); } s->mmc =3D omap_mmc_init(0xfffb7800, system_memory, diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c index b53878b8b9..3a1d995d6a 100644 --- a/hw/arm/omap2.c +++ b/hw/arm/omap2.c @@ -19,6 +19,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -1311,8 +1312,8 @@ static void omap_prcm_apll_update(struct omap_prcm_s = *s) /* TODO: update clocks */ =20 if (mode[0] =3D=3D 1 || mode[0] =3D=3D 2 || mode[1] =3D=3D 1 || mode[1= ] =3D=3D 2) - fprintf(stderr, "%s: bad EN_54M_PLL or bad EN_96M_PLL\n", - __func__); + error_report("%s: bad EN_54M_PLL or bad EN_96M_PLL", + __func__); } =20 static void omap_prcm_dpll_update(struct omap_prcm_s *s) @@ -1331,7 +1332,7 @@ static void omap_prcm_dpll_update(struct omap_prcm_s = *s) s->dpll_lock =3D 0; switch (mode) { case 0: - fprintf(stderr, "%s: bad EN_DPLL\n", __func__); + error_report("%s: bad EN_DPLL", __func__); break; case 1: /* Low-power bypass mode (Default) */ case 2: /* Fast-relock bypass mode */ @@ -1358,7 +1359,7 @@ static void omap_prcm_dpll_update(struct omap_prcm_s = *s) omap_clk_reparent(core, dpll_x2); break; case 3: - fprintf(stderr, "%s: bad CORE_CLK_SRC\n", __func__); + error_report("%s: bad CORE_CLK_SRC", __func__); break; } } @@ -1627,8 +1628,8 @@ static void omap_prcm_write(void *opaque, hwaddr addr, =20 case 0x500: /* CM_CLKEN_PLL */ if (value & 0xffffff30) - fprintf(stderr, "%s: write 0s in CM_CLKEN_PLL for " - "future compatibility\n", __func__); + error_report("%s: write 0s in CM_CLKEN_PLL for " + "future compatibility", __func__); if ((s->clken[9] ^ value) & 0xcc) { s->clken[9] &=3D ~0xcc; s->clken[9] |=3D value & 0xcc; @@ -1646,8 +1647,8 @@ static void omap_prcm_write(void *opaque, hwaddr addr, break; case 0x540: /* CM_CLKSEL1_PLL */ if (value & 0xfc4000d7) - fprintf(stderr, "%s: write 0s in CM_CLKSEL1_PLL for " - "future compatibility\n", __func__); + error_report("%s: write 0s in CM_CLKSEL1_PLL for " + "future compatibility", __func__); if ((s->clksel[5] ^ value) & 0x003fff00) { s->clksel[5] =3D value & 0x03bfff28; omap_prcm_dpll_update(s); @@ -1658,8 +1659,8 @@ static void omap_prcm_write(void *opaque, hwaddr addr, break; case 0x544: /* CM_CLKSEL2_PLL */ if (value & ~3) - fprintf(stderr, "%s: write 0s in CM_CLKSEL2_PLL[31:2] for " - "future compatibility\n", __func__); + error_report("%s: write 0s in CM_CLKSEL2_PLL[31:2] for " + "future compatibility", __func__); if (s->clksel[6] !=3D (value & 3)) { s->clksel[6] =3D value & 3; omap_prcm_dpll_update(s); @@ -2486,7 +2487,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegi= on *sysmem, =20 dinfo =3D drive_get(IF_SD, 0, 0); if (!dinfo) { - fprintf(stderr, "qemu: missing SecureDigital device\n"); + error_report("missing SecureDigital device"); exit(1); } s->mmc =3D omap2_mmc_init(omap_l4tao(s->l4, 9), diff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c index 9a14270795..253f7cad5c 100644 --- a/hw/arm/omap_sx1.c +++ b/hw/arm/omap_sx1.c @@ -158,8 +158,7 @@ static void sx1_init(MachineState *machine, const int v= ersion) blk_by_legacy_dinfo(dinfo), sector_size, flash_size / sector_size, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory %d.\n", - fl_idx); + error_report("Error registering flash memory %d.", fl_idx); } fl_idx++; } @@ -182,8 +181,7 @@ static void sx1_init(MachineState *machine, const int v= ersion) blk_by_legacy_dinfo(dinfo), sector_size, flash1_size / sector_size, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory %d.\n", - fl_idx); + error_report("Error registering flash memory %d.", fl_idx); } fl_idx++; } else { @@ -194,7 +192,7 @@ static void sx1_init(MachineState *machine, const int v= ersion) } =20 if (!machine->kernel_filename && !fl_idx && !qtest_enabled()) { - fprintf(stderr, "Kernel or Flash image must be specified\n"); + error_report("Kernel or Flash image must be specified"); exit(1); } =20 diff --git a/hw/arm/palm.c b/hw/arm/palm.c index 285f43709d..7f3637041a 100644 --- a/hw/arm/palm.c +++ b/hw/arm/palm.c @@ -233,8 +233,8 @@ static void palmte_init(MachineState *machine) if (nb_option_roms) { rom_size =3D get_image_size(option_rom[0].name); if (rom_size > flash_size) { - fprintf(stderr, "%s: ROM image too big (%x > %x)\n", - __func__, rom_size, flash_size); + error_report("%s: ROM image too big (%x > %x)", + __func__, rom_size, flash_size); rom_size =3D 0; } if (rom_size > 0) { @@ -243,13 +243,13 @@ static void palmte_init(MachineState *machine) rom_loaded =3D 1; } if (rom_size < 0) { - fprintf(stderr, "%s: error loading '%s'\n", - __func__, option_rom[0].name); + error_report("%s: error loading '%s'", + __func__, option_rom[0].name); } } =20 if (!rom_loaded && !kernel_filename && !qtest_enabled()) { - fprintf(stderr, "Kernel or ROM image must be specified\n"); + fprintf(stderr, "Kernel or ROM image must be specified"); exit(1); } =20 diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index db860c238e..0386a0d8bf 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -8,6 +8,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qemu-common.h" #include "cpu.h" @@ -2062,7 +2063,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space, s =3D g_new0(PXA2xxState, 1); =20 if (strncmp(cpu_type, "pxa27", 5)) { - fprintf(stderr, "Machine requires a PXA27x processor.\n"); + error_report("Machine requires a PXA27x processor."); exit(1); } =20 @@ -2095,7 +2096,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space, =20 dinfo =3D drive_get(IF_SD, 0, 0); if (!dinfo) { - fprintf(stderr, "qemu: missing SecureDigital device\n"); + error_report("missing SecureDigital device"); exit(1); } s->mmc =3D pxa2xx_mmci_init(address_space, 0x41100000, @@ -2220,7 +2221,7 @@ PXA2xxState *pxa255_init(MemoryRegion *address_space,= unsigned int sdram_size) =20 dinfo =3D drive_get(IF_SD, 0, 0); if (!dinfo) { - fprintf(stderr, "qemu: missing SecureDigital device\n"); + error_report("missing SecureDigital device"); exit(1); } s->mmc =3D pxa2xx_mmci_init(address_space, 0x41100000, diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c index de7c0fc4a6..f6f295b363 100644 --- a/hw/arm/stellaris.c +++ b/hw/arm/stellaris.c @@ -8,6 +8,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "hw/sysbus.h" #include "hw/ssi/ssi.h" @@ -559,7 +560,7 @@ static void ssys_write(void *opaque, hwaddr offset, case 0x040: /* SRCR0 */ case 0x044: /* SRCR1 */ case 0x048: /* SRCR2 */ - fprintf(stderr, "Peripheral reset not implemented\n"); + error_report("Peripheral reset not implemented"); break; case 0x054: /* IMC */ s->int_mask =3D value & 0x7f; diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c index a55b1a369c..7e6e4b35ac 100644 --- a/hw/arm/tosa.c +++ b/hw/arm/tosa.c @@ -12,6 +12,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "hw/hw.h" #include "hw/arm/pxa.h" @@ -70,19 +71,19 @@ static void tosa_out_switch(void *opaque, int line, int= level) { switch (line) { case 0: - fprintf(stderr, "blue LED %s.\n", level ? "on" : "off"); + error_report("blue LED %s.", level ? "on" : "off"); break; case 1: - fprintf(stderr, "green LED %s.\n", level ? "on" : "off"); + error_report("green LED %s.", level ? "on" : "off"); break; case 2: - fprintf(stderr, "amber LED %s.\n", level ? "on" : "off"); + error_report("amber LED %s.", level ? "on" : "off"); break; case 3: - fprintf(stderr, "wlan LED %s.\n", level ? "on" : "off"); + fprintf(stderr, "wlan LED %s.", level ? "on" : "off"); break; default: - fprintf(stderr, "Uhandled out event: %d =3D %d\n", line, level= ); + fprintf(stderr, "Uhandled out event: %d =3D %d", line, level); break; } } @@ -133,7 +134,7 @@ static void tosa_gpio_setup(PXA2xxState *cpu, =20 static uint32_t tosa_ssp_tansfer(SSISlave *dev, uint32_t value) { - fprintf(stderr, "TG: %d %02x\n", value >> 5, value & 0x1f); + error_report("TG: %d %02x", value >> 5, value & 0x1f); return 0; } =20 @@ -159,14 +160,13 @@ static int tosa_dac_send(I2CSlave *i2c, uint8_t data) s->buf[s->len] =3D data; if (s->len ++ > 2) { #ifdef VERBOSE - fprintf(stderr, "%s: message too long (%i bytes)\n", __func__, s->= len); + error_report("%s: message too long (%i bytes)", __func__, s->len); #endif return 1; } =20 if (s->len =3D=3D 2) { - fprintf(stderr, "dac: channel %d value 0x%02x\n", - s->buf[0], s->buf[1]); + error_report("dac: channel %d value 0x%02x", s->buf[0], s->buf[1]); } =20 return 0; diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c index 418792cd02..56f9d60bed 100644 --- a/hw/arm/versatilepb.c +++ b/hw/arm/versatilepb.c @@ -364,7 +364,7 @@ static void versatile_init(MachineState *machine, int b= oard_id) VERSATILE_FLASH_SECT_SIZE, VERSATILE_FLASH_SIZE / VERSATILE_FLASH_SECT_SIZE, 4, 0x0089, 0x0018, 0x0000, 0x0, 0)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("Error registering flash memory."); } =20 versatile_binfo.ram_size =3D machine->ram_size; diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c index efb5a29475..508629dfe9 100644 --- a/hw/arm/vexpress.c +++ b/hw/arm/vexpress.c @@ -266,7 +266,7 @@ static void a9_daughterboard_init(const VexpressMachine= State *vms, =20 if (ram_size > 0x40000000) { /* 1GB is the maximum the address space permits */ - fprintf(stderr, "vexpress-a9: cannot model more than 1GB RAM\n"); + error_report("vexpress-a9: cannot model more than 1GB RAM"); exit(1); } =20 @@ -355,7 +355,7 @@ static void a15_daughterboard_init(const VexpressMachin= eState *vms, */ uint64_t rsz =3D ram_size; if (rsz > (30ULL * 1024 * 1024 * 1024)) { - fprintf(stderr, "vexpress-a15: cannot model more than 30GB RAM= \n"); + error_report("vexpress-a15: cannot model more than 30GB RAM"); exit(1); } } @@ -640,7 +640,7 @@ static void vexpress_common_init(MachineState *machine) pflash0 =3D ve_pflash_cfi01_register(map[VE_NORFLASH0], "vexpress.flas= h0", dinfo); if (!pflash0) { - fprintf(stderr, "vexpress: error registering flash 0.\n"); + error_report("vexpress: error registering flash 0."); exit(1); } =20 @@ -655,7 +655,7 @@ static void vexpress_common_init(MachineState *machine) dinfo =3D drive_get_next(IF_PFLASH); if (!ve_pflash_cfi01_register(map[VE_NORFLASH1], "vexpress.flash1", dinfo)) { - fprintf(stderr, "vexpress: error registering flash 1.\n"); + error_report("vexpress: error registering flash 1."); exit(1); } =20 diff --git a/hw/arm/z2.c b/hw/arm/z2.c index 60561c7b7c..ee59142667 100644 --- a/hw/arm/z2.c +++ b/hw/arm/z2.c @@ -319,8 +319,8 @@ static void z2_init(MachineState *machine) #endif dinfo =3D drive_get(IF_PFLASH, 0, 0); if (!dinfo && !qtest_enabled()) { - fprintf(stderr, "Flash image must be given with the " - "'pflash' parameter\n"); + error_report("Flash image must be given with the " + "'pflash' parameter"); exit(1); } =20 @@ -329,7 +329,7 @@ static void z2_init(MachineState *machine) dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, sector_len, Z2_FLASH_SIZE / sector_len, 4, 0, 0, 0, 0, be)) { - fprintf(stderr, "qemu: Error registering flash memory.\n"); + error_report("Error registering flash memory."); exit(1); } =20 --=20 2.14.1