From nobody Wed Nov 5 09:26:55 2025 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 1499470070357248.1060459633062; Fri, 7 Jul 2017 16:27:50 -0700 (PDT) Received: from localhost ([::1]:59191 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dTcf7-0002CD-3c for importer@patchew.org; Fri, 07 Jul 2017 19:27:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57784) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dTcbo-00084h-Eo for qemu-devel@nongnu.org; Fri, 07 Jul 2017 19:24:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dTcbk-0005Wm-IX for qemu-devel@nongnu.org; Fri, 07 Jul 2017 19:24:24 -0400 Received: from mail-sn1nam01on0063.outbound.protection.outlook.com ([104.47.32.63]:28016 helo=NAM01-SN1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dTcbk-0005WG-7E for qemu-devel@nongnu.org; Fri, 07 Jul 2017 19:24:20 -0400 Received: from CY4PR02CA0026.namprd02.prod.outlook.com (10.175.57.140) by DM5PR02MB2729.namprd02.prod.outlook.com (10.175.85.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Fri, 7 Jul 2017 23:24:16 +0000 Received: from SN1NAM02FT024.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::209) by CY4PR02CA0026.outlook.office365.com (2603:10b6:903:117::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13 via Frontend Transport; Fri, 7 Jul 2017 23:24:16 +0000 Received: from xsj-pvapsmtpgw02 (149.199.60.100) by SN1NAM02FT024.mail.protection.outlook.com (10.152.72.127) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1220.9 via Frontend Transport; Fri, 7 Jul 2017 23:24:15 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:59361 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1dTcbf-0001ad-8o; Fri, 07 Jul 2017 16:24:15 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dTcbf-0000ys-5M; Fri, 07 Jul 2017 16:24:15 -0700 Received: from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v67NO6iJ021472; Fri, 7 Jul 2017 16:24:06 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dTcbW-0000y8-Al; Fri, 07 Jul 2017 16:24:06 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ywa2oH4aU+WCIJnLxZ9dvua/pR11BIqYKqZTNri6sIQ=; b=N0+RgZLIDC2ToLgcllsVv5O14Z7eJKCoVgKHkT5nFsT5bHTlSNiHN+LtEWnZ0/fMJUfldJVdH8EdHCdOC63mLQlEtmShyGNk2EVjR88X7vFMsWzk2+VKGeiWBiRnxrFvhU83KLdgx4gXcsL71VB5NL2QwnG5L6U/yfm4htvuX1I= Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; From: Alistair Francis To: Date: Fri, 7 Jul 2017 16:21:02 -0700 Message-ID: <96f42a10eea7c311f6a50391042c373ffb4247d1.1499453788.git.alistair.francis@xilinx.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23180.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39840400002)(39850400002)(39410400002)(39400400002)(39450400003)(39860400002)(2980300002)(438002)(199003)(189002)(9170700003)(39060400002)(63266004)(4326008)(356003)(189998001)(50466002)(2950100002)(6916009)(9786002)(118296001)(33646002)(77096006)(5660300001)(6666003)(106466001)(81166006)(8676002)(2351001)(478600001)(2906002)(38730400002)(54906002)(15650500001)(36756003)(47776003)(36386004)(5003940100001)(626005)(50986999)(76176999)(48376002)(8936002)(50226002)(110136004)(305945005)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR02MB2729; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; MLV:ovrnspm; A:1; MX:1; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT024; 1:WquMv+nNUyjE4TUZRvV6lTc9t/DBkQnT8285Gmpdnu6dxtEVN/q6ReMzFT8ZqoWmKeXRobIeLGIr/iAkDEUvbG3slyepqZpsiHIh+UB0wgyjelffyU2L/hhLZV0CeOO5JM5b+Os9M0/1yzeaw+SCw36hkccIlEivf3Xc3AN+5yJBUic72CjQZ4S+LtEedBmyqZcCNyLJBVJj23zEwaXDMoQGOI9ilniQpbXIhrTMYYGv8hiZxe2rWq2oA1bouw/WYqhf3cHjrvV2VZAzyVG1qDmpyjCCOzBZ+ekf308fKrEcNFKt1klqYXe2CnEqNPhr00zv8doAHwoDOsocl8xYxwk9q0Tsgv2Pbd0AD5iernSfyjp8c25NBHW+azBnTlzeYR+4earxF6HCKpH5DvvJGBsJf2UDfvIMWGX8SR3qQOSJTDob2MXtp7hfL7TjTTHRv5CmCwHOBho6dq4K/5fRyx2PBHLNS+lR9KFVw3iO02z9Sm5SBZTWJljNL3Ggx2r0ENVzfOl9mIlAbwIGCdTMLBZJDiMzYKPSJsNROL73HUtaFuU09eeortnd5CE4oTRLNGfUWXIx/1bgzxhmrkyIInUOaOKszdknq6oHi1qcjaFMIX2HKdq0bb9NuGAshxIuXk2lFvhzEnHs3ryrt5yAdgjsr1rgplJ6XLcohpYba+Z+HkL36wCWkX0cCsBPY9AfYULdvQnQH4DJq4gYTmoCu+7PSEXWQbMOLxba612i+ucOIkn5M1Bi3zS8HzetCl/woX5rM0AauPAcqzwL+rJAURUDsBJcvPpfLJV0SqmBHXqSqERdaWJfPZ7BdWPwXiF1hAfi4mgSeNjBK/779kkHFD6PHh+UIxOuHpqLxyJGbIqBZVGT/2Mmtm4yD2hS+Du3 MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f793f2ed-13a9-486e-823e-08d4c58f48e5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(8251501002)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR02MB2729; X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2729; 3:+gNiZOFWBBIQInPSka+p+SRjEGvMY2Sj4EwzJeRA+sqBdaYlHm9QJfKXr2UgPbGazCCJixYztBBAF7pIVRpOfcmHYD7b3sCeBTYwoztYf8zYyN0wFT2L70FY3AMaE3ahblC1Wwm+Xu1miF36e8/UWsE6QspAXUy9VBHIfeT7IPgZ0WCARn6H82jgaERvRqRzbZj8qFJVqVrTyMyEOFzS1X1NlfN897oIsk8OmMizsiZgGwYBlmLdTjI2SqeYUKJ7ax3GTzkJVey6f1x+8sl//N7MvKbIcWSKlK3rZ8cmZvAP/lbzYfu7eTTnPrwJdtvYTGA0yyDUwhkjVfEOpoAx9dPRvWiJ/oq0uIbnWqNVon3X7wZ8brTLC6byXMNHeGEWC0T9Gs/ptVuMMUzZlxbegDousiV7zIoM/s/RkHRHSeshIUd7rofZjFGFTqAhvF4oqKkuk/0yzIRx6O0PKcP/pISci5dW+sJi0P0qcB9jR2p3W/+drUArlbJrmajFXocGkL14/m75E0xZsPGylHV3+6OtvzAuOFJ7if7ABNffQodzPVyUciFdKaD2BAqsbU6AINUGa/TY9uVDzftalUxnk+UyFrMj+tTwVC9wm378w0vBsU1f/zYMykc7tM10RpMPQl9osUVJXZJElzoY9eH9p7rxoFUVpRoje9PIV38JXvHKTirLkV1EVetrED3UH5LukJB++TTHWCzvmidHa0QEFroSTXsrXqOlxGnf9sVcbSU9JLvGvRwImpgcFEeeQEoqMeyhVkUY8pKGsslGmzh+9AQGavcJv12z8k1BlPlJg00LF6VuemC8cIn/w5KPVrrdmdzM58uloWGgPkEwjqzUR3YIGCq/5hif7kj3SZDU7u5ReMN4VdyCNYTQjG/PCcsllqyWC4amI38i3S4FcYZHSwn8y104L/o4PhXf/uMfx/X1v+OkAX8xWftKezAjcf1S X-MS-TrafficTypeDiagnostic: DM5PR02MB2729: X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2729; 25:IiJOYVegcrHM1YW8Yu111vBd2mgXqhHwEHN4Wag3oQUaGAjahVf2xinWeBTPgXGa0GUuqR31FL6e/TiuEFw0OWpxM+1nX6VWU0GKl44uoGpenmANpMK+VMjeOHiYEqcEsNFu0wKI6ld1RJ92Zh8i8TXs4nZge3Pqyms0RK8t6aeXWjmLvYDF7jzV0Rnsi7X3vt7v5/cDgMiyBYL3ghFy52mSDFkNQJkfmo7CNR4vx0b4eQZXa8BpekC2v6zsqlhvcMnUhlribQH7qELSozUnV6d7abc1ZWCtlWfqcew/fHCzjBS2vKE2Qu8k4Unn6DGWEvBZTQc5zIuSdTPLJtctkYIbSpp6kwQmOmEQ0dBcKfWRKqB0Wfy9j2TQnXKNld7Co7V1T9Tdeulqtx+kEA6Quh4NbjV2EDZIL37Jj4PunOo5aG+BQ3RlH3esfY3VuD+ufRKsuaBORPoRw4ibc5VKoVc+Um9+edhcuJoiLjEVPip8hUuhFwozar+gL0qh5CcsRWAQDirVy+EWu0vwKqmW4di8jvF43n11yuU4qUknGdr9vR0HjPQcgkeqd46qsVzlMAQhf/3e3idSOPgm0tPwxiPsgfUy5cvw6F53XE5zKgomiOPPJhdPn4XhUNmYrXGN6fR8SFL+pRR0Exd+Qvbl4vw1zluydNsR9Wa5cvZBmNgYMc3GGM5VyWy2676i1HcTuFCEl9V1JVDONq11YHbpywmoDwVaZEQJPStK4osd43c3bhxOIOobPfFD/jwX/T7LLHusFl24kbWQwsbaVraY6TlA/NIHVvl3jFkewUGHZUVz1EQktoVMIfz0mvnuH9JKrGjvdZSvHvEvIMuG/cwOJ714gppLUqiiKcLxETW5SGAuTPi2RrAa6kyrzBvZPQV5h7VAnAkvDAdiUtms0rXuinceXoQsudNSkiM4r7dLdhs= X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2729; 31:bDUOOS0BbjY6vkF4ShjKWzTKEAs/XawYlY7+riQEwKQe9PhqNEUjOI3H9tT8laLNZXZ/zsA+rXKHuZdRiBmXmCjVgr1qvqhBSiwJp7F7Jd7CqmgmFG5bsoxtMNl0VxEppFuEzQLl5M9+bEoOTf/VGP6omDBteVxTkaswtgknzud6DiKc+OxLhheUxFJbB8cwPHZtUtkOOviC2sKnUi66idPKKo43W5NtF6SyU68h3DIT+0qF1QdInFgwh9bruGYYX5vDaDmM8QXBVKyj/fdLtqlAfo6PZ0b6AmBfVd/W4hyLUpn1/Wd22arinHJfD0u72UqJwP9ctN0klQWLiYOtvoGcCIKvMQGl3KIkEUmIu/u0jphW3uYeEhxzNvzNlS8z3CnUIKLF1UJ6KcITNNoaE5R4mAt9OrjAdoRK9sQgxU5cOsnUKyqmj0Cc21zYaMVAZnsi+W3IyDBaYWy1tYP01Aj+iIIYEesch1P0vBU1KI7yxrTu7yaQ5/HO2QCFKgXwnZod4Ar6NfB2zdEvyqhs4uW3PEO8R8Bz9qe0D1tU0HYWlMKdBoVoPwtvrkuTvJrb05phM5q2LVI8dzrBupfgstiB1eXduyJ7dpom1kjmgjRUeQ7S1yQpwEqcRrM1ZiClSVpl6o+J7oPgwNK9v1WHYEqSU7au62bYANRRDaAvwbQxKltE63FVmf0QCu/AXuhxhgk2rTk1HbGOMMG09MF4yA== X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2729; 20:y+muK2TN4JrqMM/g1MixZP4wNk9sxWqLb1PRSqMxB/ZO0RI9maKQR9G/z6VaaiLKbrDIfPpQpRaMvsstY6Y2eZ+yH1ksdkMNMS4/9fpP5IrxBHZ2E7xDHkZdViOidFeUuOK9pOAbhfoj6lDY4U7mAZqxH7LJsBWLMmGRx6eJuHngON8vCuEsQKG9MzGH4vkBcXVNAB6ropJUHwxI8aI17M7LxZNmjy6e3cjXSLeASKSg1QSrLKTynmdo7tInd/myHop8GOcuOqoaOR8YkHOO/FouAurjRBqJq/EkWvb6+qK6SPB85V+B4EifknImsOTh66n9yHzl92vYuiy8m4bTA1eCOgVtnkuNv/vuciz1/eMO/J+MaxCnW3Fzjvuyh5JyJ2dEGh/D7Ny6y9sxr8MEvYbGXJW8OK96zeJ/HbgsYO9q54KTy/vtzxuXMSC6yabYZappS7vNf8cZBe440Dyhin09RnZTBgTxwwOw0q22g7MbrjFoS3+DDCAoSzTcGd5n X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(192813158149592)(211171220733660)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(13018025)(13016025)(8121501046)(5005006)(2017060910070)(93006095)(93004095)(3002001)(10201501046)(100000703101)(100105400095)(6055026)(6041248)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR02MB2729; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR02MB2729; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR02MB2729; 4:s+SHK5KiORJUZzZt2W4qbLRIq6lM3wYit0ZFPhMjk0?= =?us-ascii?Q?mNNdcbEpH49sWvMna0C8wirzY6WMGJVGyEsoVL/IatG99s3Q06ReSMTLeUCy?= =?us-ascii?Q?u1pYBax4ik7rtuMg/mh2Fkru8nJ/yiZM21f/HXuYl1ogVqiT+Try+Y6wwAoA?= =?us-ascii?Q?kmYnxJtsFfrpnlB8Gm13BBRqUzoo3hxh2aa8T7CHD55cCvoElEHXz2mBlsza?= =?us-ascii?Q?MLnMXHUD9yHbgHfHnhFh4rZVfKZiQ7ftMJWrvUi0bPIbf0JPnjsu3bBdlvDg?= =?us-ascii?Q?JKXWwZBDukM6lnWu/hjKKFAieNO/hzw+HzZy9m0h46ODpGTUGBIjGPi+d41C?= =?us-ascii?Q?xGr9XVs0WQ6gLFYDmB6fkzwwuubzK+UbJ6i0dqeWKT1s4Bb6NAj8PCSCRFkz?= =?us-ascii?Q?XR8JXwuNUWJ4fRCUDXV9mYonoauly9VNHd2unH6sQoPcQjptn5MsW0eyxIRi?= =?us-ascii?Q?R4S2H/tL/Sqr/biclpeJOzzAN5bmZ9iZahFylC5lxI03GHEDuW2AqCVN7TVo?= =?us-ascii?Q?lfBrft3gbZanrisTNRuvszmq3b4cdeyUUyM91LvaY1tjFj74DkKKoccb0mkp?= =?us-ascii?Q?wWiVwjjx1P+D1EPqR8NituTPics/1jn2xo2opgNZllX/KfgWB/a1z5OTElqG?= =?us-ascii?Q?1lwTwkMmuL7OtZ3rIcMg6e4IDqmU7Rx2YiiFm82EbGbb1uJEUbXW62fHM6w+?= =?us-ascii?Q?nDzrVPWvPDINUA8kWcZWXnat9McewT3GoCsRpK3F4elr+fqUbiFgiNyDW+p+?= =?us-ascii?Q?uEp1IFeOCrL9NrVaDi4ebgWqC0foBeqIpITeRGizNXllQd/Z4waEuFIRrtHS?= =?us-ascii?Q?hrxYp8MuGJFFv3rvnPcXW5POZEUu4kzPklV4MDlxsBbp0LGObDFbGRF3kD9K?= =?us-ascii?Q?TpkSefF1PBZuyfwLqGuYYlqbxIBwg7yQFN3P+yU9fVfRrCnr4VwCn89i5jw2?= =?us-ascii?Q?7t+gL6ILKUyocHRDX1HvKYcCeVcF+ZfBPqWw1La6Wuc7LygGTWG2/MATpJEb?= =?us-ascii?Q?qtla+ufL7xX0tasrhRrx423lgrit+5Zpk4x5vlyDH2b33f+rbpRXEmKERB/H?= =?us-ascii?Q?8JLLJMAP3x7LQ3db/JJ8NgEyJ0cC9/c5IMu9fcK4hzbMrFxb4SwKJMVNH5XM?= =?us-ascii?Q?3g54LwmHytRpzfWViAlqHt7CI6EXbxLY+vriefq992hig3MwATTETYM0UUyi?= =?us-ascii?Q?aQBjV3+1Thzfzfd+QocdYH7ZhVpeb1IexwnkysmYLi1oBLkCmeMp4ULBtX60?= =?us-ascii?Q?Ko9VMgPLS6DpgHVsNCwThPPmTclFHcSC4OKoqfadLlncnDKQCBIEVDxP8LXC?= =?us-ascii?Q?Qk1RFFVOCzf/xMeDBxg+ImBqjP9BOEgxRvdiSjbeyjUL5HbRIq0mltk4c0uc?= =?us-ascii?Q?+Cne29pbH9RrH1IDoBkEh7urk=3D?= X-Forefront-PRVS: 0361212EA8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR02MB2729; 23:opRgAtYqxt3LFL6t43mLY11UsfL2b4zdZHz4HVjGv?= =?us-ascii?Q?yoBWZ5J5ynSoA6MOsSt7dJlq2qImWGXq3aShfCSZ1kjX2L+kJ2mCQxF5yes9?= =?us-ascii?Q?1GimaKk5x2i7q73PHbD+wxGKLtg5PD0J8mvIg32SmS5dYvcnHbl3vxAgdXrv?= =?us-ascii?Q?8LNFwGNwdahcUnBbQyUntIp5X0YQd0j1MypenZQ9ZKYZcsuIsrA04PA8uliR?= =?us-ascii?Q?fkiemYz6DCpeqCbqKUPeNqV/d2Wgj9FXYukjkU8iNi4D1EanKImCkZjqZ8dw?= =?us-ascii?Q?Y4zJuoPr9soufQnRGPFkl+DJOJydve3Ie6JHftnRfxo2AAYBgB3zCgvlGySW?= =?us-ascii?Q?f0vZrfzzfRfucyHPIqWMa0/vladmKwqYtfzXJ53VKXZSxEVVDyGEf8QUksJ/?= =?us-ascii?Q?mzB5IOuGXm997qnn0yPWWHF0yrRfffJuPg8vM9OnKXhtVNIjCsNIGGiSPDS5?= =?us-ascii?Q?ZXMQpUlHmEC+2Q89tSF0bKsit0MxW5BxgjCtQdYXcxW79MLARGEKuaCGg386?= =?us-ascii?Q?DnPdyAa+90HjyJeefPOLvWtSRX7LxD1QdtVkk35Xtn0458tVVDaiBRfyi0FF?= =?us-ascii?Q?w21yRSeUfJ1Ls2RHqwKhbtRgk9Ena9tPGChHugnEvpL8SZFvh6JDaYw5bQUZ?= =?us-ascii?Q?G5FlF3QY5hUZurBve6iPv7CEhti/9Xmm3rMma0M9LOPNlsjemUc4gJ1PQAOs?= =?us-ascii?Q?go04jOqEBrdGpBLBRXwNLD4Fc4HXSIfs0hcbkZh9MFel/5OwErDza7Qw91Ud?= =?us-ascii?Q?j+EFSxaBYC/aonD1NScGfkVyc9huvq4v9Pp5bUoh4n9U2kOdB4br1JMCB36/?= =?us-ascii?Q?7YvkLF4xyAZU4Jd4T08hd4Gq0bKfqYobdDObBrkUfyXhRebYQGqjmsV1+9aL?= =?us-ascii?Q?MJVEtahdMSrBpK2s8iqPWkEEls//+VxoisOOIvD5RNdbLoBuJhEpAxyWveZe?= =?us-ascii?Q?dle4Ef2LBMfL/jWzwpokuzxgBpj/NmxLEzNjvhNdEcagP6E9Hr4REF1QqtG8?= =?us-ascii?Q?SYcmumSKecRv0tqki++3S6oxS/1o9u4PMUW0E7/WxUhy/DUZeALmXvDs7bvu?= =?us-ascii?Q?wcP+Y3tir0zawikvrp0g4BDDGvp1RWQouHfo+gHfDNz5DZR5Y+RrqO5YYZ6i?= =?us-ascii?Q?y9USrF8e6yvjpoMSO2apCFGefFCxBAVJSab8zM7pDrG/xD3eBmzB6buZdll3?= =?us-ascii?Q?P9CBCZi41PnUtU+aqj4hEUOsfXAEUy2MS0H?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR02MB2729; 6:TiVcbweZWu4sfUVtSMCSrdDm3Xc8+J3qT/o8zXdppt?= =?us-ascii?Q?xC0lzmxTftDipAT5zGbXZH99WPW7A1VmxnpJ5f9KNumPgX5j9jGKcFI9KPbl?= =?us-ascii?Q?zF3eEds4AsWfiCrouSs/t0FezyDBNhlYW17lr+1boMSkOfBilhGM8q6RTjcg?= =?us-ascii?Q?63NxGIjSAvsv3acLkevP9j8ar8NrF8toX2P6+XRLiojoPeYtorp1/7HrxH/8?= =?us-ascii?Q?5VO9aMhT9CWozyqSA5yLKzDS8dienuIOeXRKDrWgklCdaJj1irog3hTF/Qm1?= =?us-ascii?Q?Wu51cdExiwUeudhw1CCDzXnc4Mqb/bPg7qNeQWIEdwv6eiQ7P9kVKunBJrkH?= =?us-ascii?Q?+4XC0lribjHOSc0wGQenK3SJMKPS6XW/GbrReW9k5212Qa4JdnC+O/MkeQWU?= =?us-ascii?Q?PnRCedR5V1iKgX+GpY0RoLcq231tp4lHYDBFu26VYw2VX9ODQopuo5HTQJlQ?= =?us-ascii?Q?ORi06H+LhTzmwNsiu6pSUyfFmi3j8JITaQFle6eaCXuColPLD/8ukdqGKh/E?= =?us-ascii?Q?SWKTn5G9Ie9unNu2w658GBgoTvON4GtDqXlbZvFEagZ7GUVrHOxAVtk+aUUa?= =?us-ascii?Q?na9Mf/+JSPzN6Pl7nYnWQdKbv6CZREIeS6VswNcV15wPGb3PNIZHW6Uf7SIB?= =?us-ascii?Q?aJXndI086GXabeomVX0xGTOZcqPZzefGL96ZE9jLMHPrLARiw7Uz8gxavf/5?= =?us-ascii?Q?Y+cD+NdO7tv6lhFOTUHzFLsFBKUowvjoRXtLxfhAHh70s+k/yYW34W4A2iA2?= =?us-ascii?Q?FKn4Kvgnft1JM+6RdEkaLvHpMHRJ1DvpyFC2draGqScNkKiLdoXwNyKrDGq7?= =?us-ascii?Q?yibIk4tcDaZi+SmB3sM5Um244dEwRvEXG9V8ySnPSF2KgvGpSBpPawJXsmbl?= =?us-ascii?Q?VceN6UJHtM7sWKodXPrJoNa6xt7CdFPiEb9GbMPO8eq8iEERd+7dE69d34oI?= =?us-ascii?Q?zzsJlm1nc7fswJJpn+uV5A1lZ6q/Oq/tW5OFdCBcWln+77n4xxRRf+EFtCn3?= =?us-ascii?Q?Ote7Dd9FIbLEbT66HoNE0o?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2729; 5:dVXbdEb5qSTcw/2qx0jh6Ji2K8L4Z6+7bZezJlzbWpzHbIMfNafaBTwcAwZzF850QAM3qdPFbhGq5NGPdM9f9K+HpHyi4LzH4HH+HInb+8FHohMQJHJZP/fho8phdnTJTt0ek7JUuy3VOU3y5NC52g0nfCUiYBIkqUEKtNp57dcw/sk9cF1goPSPlgdWhkTdsX6qDSC+qVr6gf12WD0a5tlNfak0UTIPMvhu6hi3q/zN8O6EEJtrN5l3PN4sG/wQdWLK82nhJh9gD1gx9ucXzGjGsv0dmfDet616vxuzkC1dVLwVCeFz1kzLwFoYAm3aP79sX56JSDOdWroRO9DyeGdj4pqsMWDz6fh07DQBBdxpBa4vP4ucReBwo/7E3lHFV4ybrhrqvkaoTehLoM5f5OZxLDKgjlRP1LMA5xIlg9itXMXb2W5H029Oki/E5AmhaDrO2jhCiSqsSkvESonKHtryCgC0axZmCmYSYQaPbqpVkeKNLNsWlfSaGj8xZYy7; 24:E7kudvsJZLBqhoXAbcvZiswStE6OsRGQC7fYHuu2D7+YMDHE4kyoyR2aToycMbjidqYMONyVRcCXlECb/uKeV8x7TJ8+/8IbnAoUsTm3krA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2729; 7:rbUhnhw4YkoAwuIOyeJkzXpTgJR2bEPPT3NzJIucmE88LwsBxnKTWzoogH8EsjbfzjjvHBEbJAAghCFbh7fsq9wjLaNve+0BAoPUyHz2PbV8EzYRCMok6df58Zz/+RW6DUmro7Ae95gR0hrRHpONn+hTwk+aE9fD+0sYws5eM4OaM1oex6aFbmUM461TULjptv0s0luF7FKo4mrmT7L5ETiJyKklVhnnX4Dm67tC8uoDhwdE+cmy72Ew8AlRnKYKhiiJze5sa4/cyRKuGJWlVCeJb4MIKwTjosNhWbUXKHFF0mT55rkrNz8RjJqSuVooLq3jUA1HAv9Fg8hPPj+mP3vf4u5t+tPqoFk0B6GU0ZKxlBUvIHprutbkgdQXUQd/h1v1VxYVyCLzY57vH9Y9VhEISsBgBUGrpPM8x5pbCnsKU9W82wLL7MECV73Rj37iWS+eIMc4dv5iS8UrJTWjh26PPqS32nfkX8JR31nwalv8zX+tuLWK1cxOKNmnp/m+vENAw9bT3cI0PjW+RCM97/HmvdNVb5PLdp9P6JDI3AgBzCxyyf3o/oETx0XI7erBRQMvUZITHIR+TsNDbHies6u3ezRqS3NHRo22YdX0wQU819TKYRE0Yu1QrpFT7u5YUiPaiubxGT8wziXeKfctZbdhGEQGDiSclGSxRbjsF05ctmVCVwOCI7juOQIJl5O94EJ7R4KhsdrGwmmTzh6+jhzf//4Sq2BQsuLgFA/FA8u0h2TztidP6o4OLbYYzsGPCGCPdW005bcAfcLUtZMJJR3WNt2TCmf7UXWzD+GMXJk= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2017 23:24:15.7422 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR02MB2729 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.63 Subject: [Qemu-devel] [PATCH v2 2/8] error: Functions to report warnings and informational messages 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, philippe@mathieu-daude.net, armbru@redhat.com, alistair.francis@xilinx.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add warn_report(), warn_vreport() for reporting warnings, and info_report(), info_vreport() for informational messages. These are implemented them with a helper function factored out of error_vreport(), suitably generalized. This patch makes no changes to the output of the original error_report() function. Signed-off-by: Alistair Francis Reviewed-by: Markus Armbruster --- v2: - Don't add *vreport() functions to checkpatch - Maintain original comments for the reporting functions - Don't change the error report output in this patch v1: - Don't expose the generic report and vreport() functions - Prefix error messages - Use vreport instead of qmsg_vreport() RFC V3: - Change the function and enum names to be more descriptive - Add wrapper functions for *_report() and *_vreport() include/qemu/error-report.h | 7 ++++ scripts/checkpatch.pl | 5 ++- util/qemu-error.c | 97 +++++++++++++++++++++++++++++++++++++++++= +--- 3 files changed, 102 insertions(+), 7 deletions(-) diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h index 3001865896..e1c8ae1a52 100644 --- a/include/qemu/error-report.h +++ b/include/qemu/error-report.h @@ -35,8 +35,15 @@ void error_printf(const char *fmt, ...) GCC_FMT_ATTR(1, = 2); void error_vprintf_unless_qmp(const char *fmt, va_list ap) GCC_FMT_ATTR(1,= 0); void error_printf_unless_qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2); void error_set_progname(const char *argv0); + void error_vreport(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0); +void warn_vreport(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0); +void info_vreport(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0); + void error_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2); +void warn_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2); +void info_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2); + const char *error_get_progname(void); extern bool enable_timestamp_msg; =20 diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 73efc927a9..b76fe30ad3 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2534,8 +2534,9 @@ sub process { error_set| error_prepend| error_reportf_err| - error_vreport| - error_report}x; + error_report| + warn_report| + info_report}x; =20 if ($rawline =3D~ /\b(?:$qemu_error_funcs)\s*\(.*\".*\\n/) { ERROR("Error messages should not contain newlines\n" . $herecurr); diff --git a/util/qemu-error.c b/util/qemu-error.c index 1c5e35ecdb..b555247e24 100644 --- a/util/qemu-error.c +++ b/util/qemu-error.c @@ -14,6 +14,16 @@ #include "monitor/monitor.h" #include "qemu/error-report.h" =20 +/* + * @report_type is the type of message: error, warning or + * informational. + */ +typedef enum { + REPORT_TYPE_ERROR, + REPORT_TYPE_WARNING, + REPORT_TYPE_INFO, +} report_type; + void error_printf(const char *fmt, ...) { va_list ap; @@ -179,17 +189,28 @@ static void print_loc(void) =20 bool enable_timestamp_msg; /* - * Print an error message to current monitor if we have one, else to stder= r. + * Print a message to current monitor if we have one, else to stderr. * Format arguments like vsprintf(). The resulting message should be * a single phrase, with no newline or trailing punctuation. * Prepend the current location and append a newline. * It's wrong to call this in a QMP monitor. Use error_setg() there. */ -void error_vreport(const char *fmt, va_list ap) +static void vreport(report_type type, const char *fmt, va_list ap) { GTimeVal tv; gchar *timestr; =20 + switch (type) { + case REPORT_TYPE_ERROR: + break; + case REPORT_TYPE_WARNING: + error_printf("warning: "); + break; + case REPORT_TYPE_INFO: + error_printf("info: "); + break; + } + if (enable_timestamp_msg && !cur_mon) { g_get_current_time(&tv); timestr =3D g_time_val_to_iso8601(&tv); @@ -204,8 +225,41 @@ void error_vreport(const char *fmt, va_list ap) =20 /* * Print an error message to current monitor if we have one, else to stder= r. - * Format arguments like sprintf(). The resulting message should be a - * single phrase, with no newline or trailing punctuation. + * Format arguments like vsprintf(). The resulting message should be + * a single phrase, with no newline or trailing punctuation. + * Prepend the current location and append a newline. + * It's wrong to call this in a QMP monitor. Use error_setg() there. + */ +void error_vreport(const char *fmt, va_list ap) +{ + vreport(REPORT_TYPE_ERROR, fmt, ap); +} + +/* + * Print a warning message to current monitor if we have one, else to stde= rr. + */ +void warn_vreport(const char *fmt, va_list ap) +{ + vreport(REPORT_TYPE_WARNING, fmt, ap); +} + +/* + * Print an information message to current monitor if we have one, else to + * stderr. + * Format arguments like vsprintf(). The resulting message should be + * a single phrase, with no newline or trailing punctuation. + * Prepend the current location and append a newline. + * It's wrong to call this in a QMP monitor. Use error_setg() there. + */ +void info_vreport(const char *fmt, va_list ap) +{ + vreport(REPORT_TYPE_INFO, fmt, ap); +} + +/* + * Print an error message to current monitor if we have one, else to stder= r. + * Format arguments like vsprintf(). The resulting message should be + * a single phrase, with no newline or trailing punctuation. * Prepend the current location and append a newline. * It's wrong to call this in a QMP monitor. Use error_setg() there. */ @@ -214,6 +268,39 @@ void error_report(const char *fmt, ...) va_list ap; =20 va_start(ap, fmt); - error_vreport(fmt, ap); + vreport(REPORT_TYPE_ERROR, fmt, ap); + va_end(ap); +} + +/* + * Print a warning message to current monitor if we have one, else to stde= rr. + * Format arguments like sprintf(). The resulting message should be a + * single phrase, with no newline or trailing punctuation. + * Prepend the current location and append a newline. + * It's wrong to call this in a QMP monitor. Use error_setg() there. + */ +void warn_report(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vreport(REPORT_TYPE_WARNING, fmt, ap); + va_end(ap); +} + +/* + * Print an information message to current monitor if we have one, else to + * stderr. + * Format arguments like sprintf(). The resulting message should be a + * single phrase, with no newline or trailing punctuation. + * Prepend the current location and append a newline. + * It's wrong to call this in a QMP monitor. Use error_setg() there. + */ +void info_report(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vreport(REPORT_TYPE_INFO, fmt, ap); va_end(ap); } --=20 2.11.0