From nobody Wed Nov 5 11:01:10 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 1499385924087191.65121757974134; Thu, 6 Jul 2017 17:05:24 -0700 (PDT) Received: from localhost ([::1]:53800 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dTGlt-0006ga-K3 for importer@patchew.org; Thu, 06 Jul 2017 20:05:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36708) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dTGZv-0004kO-MW for qemu-devel@nongnu.org; Thu, 06 Jul 2017 19:53:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dTGZr-0000ty-14 for qemu-devel@nongnu.org; Thu, 06 Jul 2017 19:52:59 -0400 Received: from mail-by2nam01on0074.outbound.protection.outlook.com ([104.47.34.74]:10464 helo=NAM01-BY2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dTGZq-0000st-JQ for qemu-devel@nongnu.org; Thu, 06 Jul 2017 19:52:54 -0400 Received: from MWHPR02CA0009.namprd02.prod.outlook.com (10.168.209.147) by CY4PR02MB2728.namprd02.prod.outlook.com (10.175.59.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Thu, 6 Jul 2017 23:52:51 +0000 Received: from SN1NAM02FT043.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::202) by MWHPR02CA0009.outlook.office365.com (2603:10b6:300:4b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11 via Frontend Transport; Thu, 6 Jul 2017 23:52:51 +0000 Received: from xsj-pvapsmtpgw02 (149.199.60.100) by SN1NAM02FT043.mail.protection.outlook.com (10.152.72.184) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1220.9 via Frontend Transport; Thu, 6 Jul 2017 23:52:50 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:34875 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1dTGZm-00021f-Cb; Thu, 06 Jul 2017 16:52:50 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dTGZm-0007kd-95; Thu, 06 Jul 2017 16:52:50 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dTGZh-0007kC-Ik; Thu, 06 Jul 2017 16:52:45 -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=EYhGqNgijd+EGQOwsmhvpjmoEld9oxiNkjjp+sZzB8w=; b=np568Hyor16nwTnxp/ru+YIceq/BySAJcfDLYicg1C6ICTVgig7aQmHOzjQOdWEwq0m1saD8NeYnvX8/NbaVWFNcy8Y3sxX3lkHNleNuEOgEs2JnNdSfRzdQ2yV6RfgV3HdsX8I24ztbjLxqzN1IsVQ/bFChqWv7EdneS8ZlCco= Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; From: Alistair Francis To: Date: Thu, 6 Jul 2017 16:49:40 -0700 Message-ID: X-Mailer: git-send-email 2.11.0 In-Reply-To: References: X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-23178.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)(39450400003)(39840400002)(39410400002)(39860400002)(39850400002)(39400400002)(2980300002)(438002)(189002)(199003)(9170700003)(2906002)(106466001)(54906002)(63266004)(189998001)(38730400002)(478600001)(5660300001)(118296001)(39060400002)(626005)(110136004)(4326008)(305945005)(5003940100001)(50986999)(8936002)(50226002)(77096006)(76176999)(33646002)(6916009)(8676002)(2950100002)(6666003)(81166006)(50466002)(15650500001)(47776003)(48376002)(36756003)(2351001)(9786002)(356003)(36386004)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR02MB2728; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; MLV:ovrnspm; MX:1; A:1; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT043; 1:86BIHP5uZ3L/lfLUavAx2uMTCX0Jzq5zwm2choTkrMc8fJ1LXxIDNWV3gKGzjmEk/WsJG+VHquWAPb6OUFYcWPdfBXbmd7DAMMwqevcG2HTysnLmqdFahmUpF/Cu8NMHwCk3ke1osQcTwlCkaPGP/8piMYjSVB6/aaVTDdYnP7JeEn8sdT4dZqn47p9ZR7F1+LEBCpQj4hD6DvgXucAW/q/5Rncj/mfg2Fo+7WgsBa3B7/wNSd7K7jR6p/Ni0EbJ04qrBxqvaodUFRZ5VjM6F9hCF7K12cUX666OdJp+u5JxFBj5CoYBhOhxbZ5LIWMqYHya8bPrOu7Uk/R3EMk101OyZJUx25gMzZyEnuEdf0UsPQwaJQSZOHjax/JqhgEGrl4o3QPC3oHcsb6XQPSs/c1cZnHd2oMyEjC5J3mOW7HPa2vrqwyimRkh32cDoCpCWylZuSoeg9NO4ShBqU+vV9WrkFdRrcsgZVG3RlHJXO1EUVDiaf0XgjKHLEjdU1uwsyVOp3hxQr4xJ0cSyUhLRkl8HFUJolvEv4Cxj2bfnOkJETxyT/LwbI4qS/haQB0MGXtL0Y+f9bG3U+qCMK83kqeIiLl83lSqDN9fhon6DX/NbsjQBuehPAZBTBE9GcMLMGPmcLmhPtFHW9EYqzRLpF4i3khKyziQNHqrfZer3fSYlQAzNYwhAUb13Eq2ud8N1nEWcwonKwqYZoRBc5O27Ry2rgwJ4qXfIPWE4v50DS3Dn+YYP9Bwa9wWQw6f31iUazPZrFTlWGJNv6/0LdwkEqlbCvfeCAb+/PA6rdgVLw5fouVGtWdJZoGtYkWaj2niKVoggr7pMaQC4eu1tSq9Vw== MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b908eb62-c17e-4aba-bd6e-08d4c4ca1cc2 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:CY4PR02MB2728; X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2728; 3:MGBksMNByoajNYGvw2EKEhjFM/zglbhxlEZtGwtDpxbSgYg9trOQMeXNyEGwOD1UpcF89vuzzJHiDr907BBDEYcTvx1q9raAyxDM3X48N+2Me6sYuYXoQTmK4mMCIl+d9XQwbKmmYHo9tL2biDqWOhayDPLFeA3EkzrPocRIx/M8vRV66QFbV/uMkxqJ/TmNmvUqwvWmoEQZogpk8oGzjVfMCMErL8rknem3K/I0EIAByoD5m0WhinoDyL45x9VjyMBUJZCA0H4CwPTq9A1tYtcFI0zzwn6WU+n2cLyodzXwqUCBnslhkTKENaKHamBuAulCNH7YlHTxfmPmZ3kM3b9fMry6G8FKP3Z13kvStlg4aK8VfaJ/J/u/G+LGz9bmy1CeBaeSSjo7ZurgXhCuAUVvY8FPfoVc1yU91JeAkIdz47JersOeiUtGLja2QaKhxScSlKKFwLcjxnldKNtEAAdVZJpdq8DBtIXCeVuUvnTGDvTR0DK/Z3EINTXw9PRsFJtgzmiflAvqKJjti0rCThosX4fqF5q6GIrg1lercCWoMWFvAa2YMXcAu7gwyZywVlEOUCR3JrsFm5TDFC9+v8TpTtVX+l050+ivQ1HE448XcnMGvASRZA+hJrDCzV1wwuHqBFwAnPbLXtFRSCqUaCcygO+6VLIYFiCJTxBfx9ch5A6QxKXWaw1cUNfu44AVzG+53AG+TnGYCXvocQmdaDLJJyVgPWtzJJApDAlXstwl9ixKwx5gfVpZGcnNLXLqkCsMfdy5gnpy5XalI0x5BeZvfDAbvLgi9At6iK/pq1keKdZNEmY8QvNhnBf8KT6CtgzjEYhucaK+EpElydrs4vz43xP+nl249ELpyECtgOrUhN8fkg88kGMtzb0kynTVvTjcLDP96BjunS5IdYk8he2h5zry0xYmBd0dqFvvLuac9QnxIDYZ0RF9OkZU914q X-MS-TrafficTypeDiagnostic: CY4PR02MB2728: X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2728; 25:j3o4PCd3z16Em7V3Qgh39g2XM4xr0mjEcXi15kil6q1ChJ5cxxWw9qHgmpKrj1ZO48iFJhyQiA+fIWJuJRlN0IHRMV2u5S6AbYHEEjbWBknJEpLpePkghhxjLnkRa85+JrFNCYBFXOIKH8mb1pueH34bwVF9a2PUlqJ+CJqELpuCX59nkLbAFKOqGQAwyNEX1ziPevQ8vB+Kq9DXRlnt1bu50E2+4eOSSLrUFidPIAZsfj0MubmoLmbJrtGgMxH2fVvu6ZfCyOfgkcuivTph2C32XL6w6xM29kKoxmlmqOyX7nArio3TEW1ScGuG+RbFLHCzqfLc7jvkI/FYHrJ4FCSD8GBgme501JRo5HDVVd2vuSXemxCtg7UZCny6RDhwIPP2uQ3DrHgqgdc7Zby/DkhxL6bNefWJYjAvqnh+8alZahvxAo0ZaepAa1rIJuX0yA4Rjf4kAKZpBylGZlFfJb2+Nq9OoeesfTecSm11bJaQR0lW5OtdHUayIbd+SSGkCiyTvXcToV//soEvrlN7dyzyIpU4pn1Qi+OtjRSYhL3UpbG7HXPuXQxHx3UGs6BYEcMcMR6WL2YMr4d1uxK3aX/AJDzD9kLjwMvdw9WGxzn3jT5hlupw62pXzUa6optXmXbmJ7CmmNOOUnOg+AGZHmLaQVpi8Vpg7DJw+5fN+CyMMu4IXUI9nP7lwitHvDxhTiCkB9q3KQMLJf9Bc6iDpjSA+UnBddXQYqAv6xXH8fGnkuxMNdHBLdzoHDwIn/KV6WRnrWL81q5IJkB3KCJtYNosERkZ3UNZ+nTiQKeuSHFH8vaJbXZuAwmelrIigACFh9SRnfBXl0mUtPXbIzJNSboZokY8lgnX1APrO+EwRDuCU0K4aiM/P7if0ZrZzBgOcvQbRCCbOHlMgqUPzJBvAUbh1fMZpK8GJo6lvoQlqdU= X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2728; 31:ewjZRjRActluXVelihgGhtd2LCjVpfMv4dYcVlzqkI4XOoJiAEDlaLoz4kPF13pGVjXJ4NrLKPvjg3q9TdnFZNRq6pbLei7baXK/F6XRVXL2jhw9JUYNYWwwl93DxLHZpayPn1kT08ykFdoAE6x0/Vnkxc73Zi5jUzfplG7JAKoj86qYEAyLEbp2yrsZFFDTG5wvVCGlmETXxdP5y525mk03jgpisdJJ7eFDa0WzkB58xco2ppu98dScX3ntAVlawpetPXxYHj7gwiA99sBwXpYX6gDqtbKWAvOR5LmSB2tdp0kH1eiApjrR/WV45i6ZRJkm0JH2ttTMCMjmBREnKN18dDxxSW8fUUoZpWpGsB7OtFxikbTOYQadTpnMSc7Yqyo3qjCCDkpXCVNrzWZN0uEWbu37ViCZ6aAZAbs+6lT2KDjLJglfh7jf5N5rKyYKlEoY9pSatPCutnr1lcV60meo7YUSiNWWTONFDke1fdNRJ1pophszTX6sHWqhtIvFwPMQHR6LKW0AB1L2Ikmis0ttBshk6CQJUboO8lYsQJc/nJVABYiNBCep22akKoniaEzYDEd/Vn+9FOSn5PnxEDOyyW3H3ajpdDC/t9g887a0soX999b6UEkDQA7qCbFVW7ltDEHztakznYdM4kyB17DeIVxAZj2Di9vqzgPYukZN85tlSQQPV1EvaILy26LBPt6Pql2DEaRXlQEft+g9uw== X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2728; 20:qVLJzAGMBmMBI8hvTLNILYfFXmYsHSLK4W8Huh4D7JVhOKL894lC/smSFcL39adr1ZJS2falbYPvuW76Y7Ans7C3mtAji4F0Xct3Nq6M7TF99FXYtnYYBB7CZOqJRgvspK5koey+QSGC0ENNGRZ8QeBCMOV7nraeRn3GOtu2oq9xZ5sPGYFZ5Hpx7VTYXTNWlKksf3FVtTgDQsFPfUMZzd0pyGfXhLKRlJGC0hPgyRBNrswpA68vjBIlAUAitufNV6mGvPZOIDBHGPMBC5wfHaPzG6Ag2KZ9ZoQx9kgSMoU8cKHcEUFG8cRYCf3RHNHZ1r3MVV7Kd2fv3O0QehPGPo2MS5SF9q2XmCc876dz06vd6EvIZKbEf7gh6SpdqK4R1KjCxh7cjPQ+9dwu9FsP/TGBpJWhrf4/LgwhYztMpFvufRUrp66R0BcQGHPmfCbmPdVZignwoyvXK+ZF6H0FT3FUsKwnFU6R6qQT+AJBAgJDEX6+ugNrx8kBtmhalfRi 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)(2017060910055)(5005006)(8121501046)(13016025)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93004095)(6055026)(6041248)(20161123555025)(20161123562025)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR02MB2728; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR02MB2728; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR02MB2728; 4:m0Zww9D03iVOlV+bzOIdL1qGQ1VgGUA2kJv7RHO9HF?= =?us-ascii?Q?Hkva/yVZwf1AtO5pJMBA9ULiiK4NGRL5EQC55fQiGcRfDkx6uHXaVwVRX4t4?= =?us-ascii?Q?+9eOnIk3y715ADlaTEtcZB5wZWQGePFjoHE+oiPNxxQeWs47wtfPNNUuOFh5?= =?us-ascii?Q?1g27DddJCoKNktmG2n3f21bd/qKuQ6EeKWUPtx3GVVDbX0E31T91eTlGibPx?= =?us-ascii?Q?c+ppqNzuYPcteuLKi7CE/M40G4oeVo+KweYcuuOyb2QwHi2mM18t/hrBABBF?= =?us-ascii?Q?2E2i5iS6b3aE9Z2sjcm/kz2zAGFLZ8M8wfY6l7/jMEAsZu0+MAcy5i09kKKu?= =?us-ascii?Q?efZ4s35njO0RiLftUqz2mnnsQ67OwrZLvuxCLq77Y2Wd3PHzA9Yq40vhZEEZ?= =?us-ascii?Q?fZx0LvYvQ/AAx7trdQiEqay5blByLQe7yhf8E4N2vZ5W//hvoN+cTRLdR33o?= =?us-ascii?Q?/h918KIQLO5iTxTijxRRPectI7toEqL+vNE6wKtNnVj9XrjhfAQumbMrPGKU?= =?us-ascii?Q?wqh+WbpRS/P9bvdiPZBHWCsAcDC0qKOAeMz+efhPeEiGDKb7CnSfWT0cNVBU?= =?us-ascii?Q?wMzy7LCNnO1Y2HSyDJXejU86kLb3GdxcWIWM3S6mDTT2XaZa/aiT7LleQHWy?= =?us-ascii?Q?i3X3YBD+Fx1Wj8z+qgAdgeh0uBFyLO+Meq0G49F/zsOl5fKdpLtJbIO2zxaT?= =?us-ascii?Q?MwvbCWIURStw+d0P+URI6j7HROIBsDjQqYqpwNwkc5kQI6CewiupSrFkyOQN?= =?us-ascii?Q?6603WAQGvHy/i5xngruOqOCXkLJ/BC4ZdzRCAkfM/5Y1LWYNf5/MTQkDjG1X?= =?us-ascii?Q?IaUTDkh0fqgmB+ltJXYLO5HsXMUY+iuC1Z0zbVqxcukXOMzYKVz9CEjFIY/5?= =?us-ascii?Q?4ofH1wTObyXAz9mVeE547jNoBhkIHStNQ6TFufLaVJ9D5+/OkJa7YgM59qz+?= =?us-ascii?Q?HOfo3Vo49gtumYurRisJyeUDyk/cVp6SSiZlc9iDq+Yz3CsawMsDVe2DuAXd?= =?us-ascii?Q?nT//U38NeBuxXhGdwXjN8z7pnKekQHrNug8hP6PnT+AifznyiT7itlRnz3wT?= =?us-ascii?Q?ypde8dKM4S3kwL5lgSMbigwOelJ4bvFNErquDu/WxALv8AdD/3C7CZzQvEgU?= =?us-ascii?Q?37rK4kkGKX6HX4/31U4apQF1XaZsUjE8bP/RNRnPebIrMoQDkAhDxrPmfzPI?= =?us-ascii?Q?L6EcbqFjyrarPuRqdzghmdWXLK1QXX70cjg4TlUVvEnzQfZFjRur8+ssmfZl?= =?us-ascii?Q?KNgMUi7T6YT4uDZdooPpKqsiizun8ufxbk3wFgFiwLT+j/JJsQAfl304BVdN?= =?us-ascii?Q?8VD27P1EPfHFZbaU9MQ0fNMsowN4L3xjUuJcJ31GDKtPfQjEBTCYKCr8pU7X?= =?us-ascii?Q?2wf/AMGcnuo0/6gXgTb70k0m4=3D?= X-Forefront-PRVS: 03607C04F0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR02MB2728; 23:9uBpfOlv6VaUlJsxdfGvUN+55zhVyyq9/kuwUIMnl?= =?us-ascii?Q?EZtOFl1Almu0B+VyKICSTcOM62Mt2TWm5zDbXl7dvtKPpt7yqjSTO6pQS8Im?= =?us-ascii?Q?6lk1bhDy3cr1rh0QjpmHqJ7oVPLV0F12tPY3UnaViTTxAJw1X9/StAk1jglu?= =?us-ascii?Q?SS1ROINOB7G7/eJub39P2BK540B4YKqck4Q+vkxHZU8tYBHwsY2brRf+5ida?= =?us-ascii?Q?ubCqfGPAyFngjvDUc8i15pSRYUAt9cisynQPtIJYLShQKV7mLyr6RYCMEaeu?= =?us-ascii?Q?mtwAG437iY0AASCav4tNFizrpofK3O2aGXUOIjg9cICy55Z92epY379CQGFY?= =?us-ascii?Q?+tgsYbu+H5IgFToYOrEsgrpxjSE4gASzoVX9LdZ+7zdpVJRWaLRPmn8NxgSh?= =?us-ascii?Q?N+j+KEyZhEWOplpzy3EO7XOg6BbjaCIWLbsO9nGwskvI4MFmdrWnifvhn50w?= =?us-ascii?Q?Nwho0aUVsSPQ7u4N8ZnbYNAKF74JkpIMeMqoN5fcQQow7X2NLl93vt5kesyX?= =?us-ascii?Q?b3aNRDa5j8jMt17mU4GHgDeYh0bNV4UEyFG0cc5GzPBDLWf2kJ0MBOFK8mm5?= =?us-ascii?Q?Md8297jlIBgYQ9Rieal+ZJTkeuYhznsvHBFU06GrMSp0Udo4XSybR1BM26h9?= =?us-ascii?Q?0s+Vy4K7GxaOm0POq8KaLGjMJ0/tLfa9q7zW3IAHIJssuGc6I3bF8bcLcIA0?= =?us-ascii?Q?HZ7d4IkfGurmLVftfCzd3nDrRiPehDu+QZQO4I52kYvVYNX7b7XSFWc6WpT8?= =?us-ascii?Q?w3LjbV+HFeu80dTNNo/mOlHuJXMDutiTDkN1SQTI2PJuPcv0vdPZ6I/B9Xgb?= =?us-ascii?Q?Q3HRuroiuwhHCHE3CUEZ+wKqYruW6vARf5Ocyb/vXJBLhSMakEhtB7Jtpc9m?= =?us-ascii?Q?6g/D2sFGVVzkFhCI26nEH2TSZ1StBwGpZmEZkHdPxYGj4pjH8SBZ7T6SLpmG?= =?us-ascii?Q?5QWIWi2WK/8YyT5o/HzbLKijbz9gCQAg5Uj7sWA1trW/fC9uNkURMv0iECf6?= =?us-ascii?Q?dvWByZt8kVTvEwba6/35NYAcOEooxf89yDMkELi5JmNKjXx+7yzlW8xA7iHo?= =?us-ascii?Q?W+bugW0vb19gbWMDhIi38iCj7umDUh2EE/Ye0a/5TlQ0hAlc7Ok0/3K/v6ne?= =?us-ascii?Q?8uTmSuwlahe8fWi3pkNABKnCKQpNgOS1EdkHIoZNeWhlLsLPckP1vFbWCQdE?= =?us-ascii?Q?ku8MtKXgChmxaczo5x20SeE7KAb1jqs2TBR?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR02MB2728; 6:0TFBbiKfLRiFLYoZ9SpeYl0Jei1CMolWluCrP1yqAZ?= =?us-ascii?Q?LU2RTBRrEUbdbOktmuuMKkBSbiibL3wvfEjE2PSxp5+cSGiNAw2CGAf59YC9?= =?us-ascii?Q?b40c1ljhr9XrFmo2Mp3bAUlwbtqtyhRHgiA2UpZOj1Jo3fBAo0EpHzBJ8j5j?= =?us-ascii?Q?8VH/0DB9JZIJ1QBf+6TGXDPxwYxoRnVGReU1KdmWCOjyiWRvWGn/0zVVU2hm?= =?us-ascii?Q?iVVuJASlXUNSCJyJis6+cohiOHvzHUMesOxELT51FxEzCiuOqAE0ZnyGNl0Y?= =?us-ascii?Q?vtjL1Lr5anMhgFwFchw/YJ132XlHgwNb7wTYLn8o2iPWYHQ0QXxHDeGsv9f/?= =?us-ascii?Q?Zdq/YrePlwWbE/Pi3Xk1NHjPzbQpqSkwosAwxX/OwUP2p0rSukfo5e7c0PDJ?= =?us-ascii?Q?9gOPADo9W6wSEp48zHojgv8mg9QzDdjgzqidOCXcyVGx0GP0hmnMn9Wg6d4i?= =?us-ascii?Q?fEZC53skJ9FftzaF4M9fOOrr16O4MLWqqqzrOP4siaOhGkH++nWJ3AIINuAu?= =?us-ascii?Q?YYq49EyX0qob0VWscFqFCncIa7hi4mzS5K0tC7007pGblGLAEo+NZH1soJ0H?= =?us-ascii?Q?qRYRZii9cbzIC5eJyf9AwiJdV3zgrP30nNPrZm/Zoh0z8NJwZ4D87yoexhi9?= =?us-ascii?Q?EeLkeYJGd3PZT4vV2I2akNPzx7bYMDrDoSoWk8mJXGAasZjBr7soLr41HJKr?= =?us-ascii?Q?T1S9ZrTptENvpWI4gK6hCR0kxJ4xCo8wez1cO+eEF4uZ8KOjAta+gbAvw5tX?= =?us-ascii?Q?EewAT48era6pUAa99H7Bygha4EHDtt2HgTaNcNQJ7CXXFe7PgUgGmYd0gWM2?= =?us-ascii?Q?5DjldFwzuED+kIPHHj18mhIVdvk5WJfZ3DeI74zGvLEGyXdZlES2f8J8xwRB?= =?us-ascii?Q?oXiMoz8ZgSLUqnL3Ni2II1bs4wOUaJuntzC4xFVEE9RvEhcABizfV/FRvilQ?= =?us-ascii?Q?Q7vUkYRB669S2PWOOQmEWlhd4hy1NWj+SKGEbuWmx0FoQmHROG2CpJSr5207?= =?us-ascii?Q?VZW2roYVjcD/5peLRptrT7?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2728; 5:ZKpccvBl1lsLuekvDxMo/2YyaICPrdKBi4aM+Zmmn1d6JNJ0V9LCshBsxJxDZTydSjDaeOCHVnEquwv6XTDNmMZaFxdrSn0b/+qsWmIlhFZ67eq+lMaR9R2oykd/3C8Rw6qYCXi5dZoMaoBPvcQcJmfhQ0Fs954CMIRSusxrVf8xoXudVr2RXRvlRwANnFRYhzQ0kCEgwJjqse3BFma1+QJ2qJbEpzEXPrq5hU6BLvImRMjFcW4LgoR6a0XS7wdiRdD4k0j3hgZ0x1tJb2BkfmFkrLVpM89k7eOAQXQ62Humy3j2H5NgkC/RYACJiOJl64wmM2Ct8BckMrzmrX9g4kF9SW+81eECPQCNKNWU8w3w71VJC4roEe9n3CwjxP9pIuaef54aqwEUPK/v+GmQVkTZ4P3p6N+R4YWHpzxAnEZHXB2mZq0TWhUgWOHS14BPwOl+I+sGP/2480HXZAqL0kGbhOpNLW0yit/TfaKOrLYeWoZMZc1VFg9OCxv0hHXt; 24:mW/RQCM+YADWGoyxx/KaamG18GWbY2zKSUBj6uDieSAS+uuecjRcxmL0iUsUjn/z7H54DAatSE/ugvf+YrsZ6sk/ar8ajg2Chdlk641gZQQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR02MB2728; 7:oCJ+1B80902daSWdDP4yozds8Dx2GHPhoMraK7SyDmMORK5iA6xuOThyOgGEQdsJs0wN+UrTiRdvCvh+XXdmJqAxhAf5LWyE9qyPjtdtjqXzJQWLvFmsf1YUoZZ0uWYYqll/l7kOI2N8W10SNy/V6cvCguWEuh5y3CiuwTkj5HsI+ylb7Pl3ChZW26Q5BrTNO/ECNSbSebX+CeXTGoULca99OKcarCLxNa07J6tyIgN3Pn6ow8SDyf6/JaENysCs5fI4YxnFpoQ7HLGI0BkqZDguGygaktI5q35n6BL2q76IEst9U3dNKq+RACODgKF/exFDfF+vR+3Z+jB23d//lkECcNqSxcguSP38pKUU5nO4CKLhpydoz9qlp9nIcj3LcBPeO4lTPOZ02uOmmXuPJDhljqozsNKdtOU7FCZlLI/JSibvmU0lje0PMbRFI4N0boKcOfRU4BpxL3/E3hj99zN6TBAXBWrafePecmLG1qlfnm/QgK5xbzxUuvbEX44FEsL3ngx5aYSQHOtHt2hYiYxM/Z3y7NGvnMqSbtGLR3V6PS2N9TzUcwz+1biVV7kfahNRUi4fRa+aV5UmVzSsLER7keG89nnO8eBkN/PzHFsZzxTX7PzaL5f8M4cbSFKD/B6CvUf2uMoaxH9Xmj2kqR97lzum4XMHWeE/m7gCQdv3KyHuAIFNgDiEsA1u5R5GTfBUXkqsc12qyfSGjzQSuQ8bAkBKhqHsxq7x9ZIYudGwMz+K5JrXMFmhzwsx1EYw1RZZEuwfb+qTK7a2VRy2UBsq9479YzxZxWe77Ukc73U= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2017 23:52:50.8232 (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: CY4PR02MB2728 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.34.74 Subject: [Qemu-devel] [PATCH v1 2/6] 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. As we don't regard error messages as a stable API the original error messages now have an 'error: ' prefix. Signed-off-by: Alistair Francis --- 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 | 7 +++- util/qemu-error.c | 78 +++++++++++++++++++++++++++++++++++++++++= ---- 3 files changed, 84 insertions(+), 8 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..1fdd7f624a 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2534,8 +2534,13 @@ sub process { error_set| error_prepend| error_reportf_err| + vreport| error_vreport| - error_report}x; + warn_vreport| + info_vreport| + 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..f2fc9d5a1e 100644 --- a/util/qemu-error.c +++ b/util/qemu-error.c @@ -14,6 +14,12 @@ #include "monitor/monitor.h" #include "qemu/error-report.h" =20 +typedef enum { + REPORT_TYPE_ERROR, + REPORT_TYPE_WARNING, + REPORT_TYPE_INFO, +} report_type; + void error_printf(const char *fmt, ...) { va_list ap; @@ -179,17 +185,29 @@ 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: + error_printf("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,16 +222,62 @@ 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. - * 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. + */ +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. */ 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. + */ +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. + */ +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