From nobody Wed Nov 5 11:06:32 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 1499276639123498.1905223302382; Wed, 5 Jul 2017 10:43:59 -0700 (PDT) Received: from localhost ([::1]:47421 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dSoLE-0004Ta-PS for importer@patchew.org; Wed, 05 Jul 2017 13:43:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49742) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dSoHA-0000Rj-Pz for qemu-devel@nongnu.org; Wed, 05 Jul 2017 13:39:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dSoH7-00086A-JE for qemu-devel@nongnu.org; Wed, 05 Jul 2017 13:39:44 -0400 Received: from mail-dm3nam03on0056.outbound.protection.outlook.com ([104.47.41.56]:51520 helo=NAM03-DM3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dSoH7-00085q-9Q for qemu-devel@nongnu.org; Wed, 05 Jul 2017 13:39:41 -0400 Received: from BN6PR02CA0036.namprd02.prod.outlook.com (10.173.146.150) by DM5PR02MB2731.namprd02.prod.outlook.com (10.175.85.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Wed, 5 Jul 2017 17:39:38 +0000 Received: from SN1NAM02FT021.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::206) by BN6PR02CA0036.outlook.office365.com (2603:10b6:404:5f::22) 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; Wed, 5 Jul 2017 17:39:38 +0000 Received: from xsj-pvapsmtpgw02 (149.199.60.100) by SN1NAM02FT021.mail.protection.outlook.com (10.152.72.144) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1220.9 via Frontend Transport; Wed, 5 Jul 2017 17:39:38 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:54328 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1dSoH3-0003zd-Kc; Wed, 05 Jul 2017 10:39:37 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1dSoH3-0000Zx-GL; Wed, 05 Jul 2017 10:39:37 -0700 Received: from xsj-pvapsmtp01 (smtp2.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v65HdTf1014324; Wed, 5 Jul 2017 10:39:30 -0700 Received: from [172.19.2.220] (helo=localhost.localdomain) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1dSoGv-0000YN-Os; Wed, 05 Jul 2017 10:39:29 -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=RS/Izc6CWsdBSvxw0ThUFtnJtDUNlnIndb4gtXUz4C4=; b=ZbTh6ZpYwFrtm9z+6l/iG/Hpg93fWwh9k9W6TD+31Tpj6wzE3ve2NvMxVCqwUVmDPpCAGXzIEnz7Hl4zrSWpZCcjdl1ljNsG4uOtJkNp/NvHHZJWqOVl6stoD083AislDxb+nV6JRuQD1i50O4JIyB0I4AHcYwJETejgm4Z3Lsc= 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: Wed, 5 Jul 2017 10:36:28 -0700 Message-ID: <2c9645b5dce991f7a324dc2b61e2553e08230a9f.1499276048.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-23176.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)(39400400002)(39410400002)(39850400002)(39840400002)(39450400003)(2980300002)(438002)(199003)(189002)(9170700003)(36386004)(50466002)(118296001)(38730400002)(39060400002)(110136004)(9786002)(50226002)(76176999)(575784001)(48376002)(54906002)(50986999)(36756003)(63266004)(33646002)(189998001)(2906002)(81166006)(478600001)(626005)(2351001)(8936002)(77096006)(5003940100001)(5660300001)(4326008)(2950100002)(8676002)(356003)(47776003)(106466001)(305945005)(6916009)(41533002)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR02MB2731; 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; SN1NAM02FT021; 1:Qf2sAroFxXWIAw8VXNuWf6NNWQijGCJT65AhzCSxmel+GFzncCdkyjytlsztrKN0FyYLT5cgk6fwu6OJBPaVkJw1AnvNSbmEYymbxrO0PHae9RH11zff6HNlUelTdccGnZn39bg98SV8QBacN/S54NXkkwgQ5vwTNMlLSPQLfEAlkSrWpuSwtb2LB56XEh5bRwxuIaEAmcBqOuqSQnvBJHDKlqhDl1/LmqgQWYwVu50ItA+2v5F22XkTDAiVPG7oH28w0rkm6N+Ew3g+JO6bWhRZ+0IcmRULJVy/sQPEJ5+sj1qebWLJuZxCks99X9PEjHmSh/2ymcZeXpk1c7/dQ0XmYqetMFV3O07UfcqA9oTThoBQdjoHiPxj0i1Nu1e0NUmh2cBx+Pll9reOI33qM+9Ph2+c40qmSDwj7DJOKFsCO8/0asHklfR3hmQM/kXa62t+ZkjeTVsvv9gj84QBWScsv7Ween8ExztwMEe/eNHrbXxTO43mX5UN1lE7aMrXU+Vl60slxS+xahYfS+1aIC4WkmygjSusrH5p5MelCCbsr+4N7gWvwkDorQBfJ+0ykujobx8jwDISEkNI3WBRBdkYTMH8tTOA1De1wn6K7b6KE7qvQ+RIsHr0i0kszSokpsDgIjAR/rW+Lm9rvf3YO8BR9BHHJMiE7R0i1ZTCa+w39uj77kUyxpku7Mq0fg5iFgeKE/m01j2juJsKcvifbRyLqaKOkD7jHwQq3OMaHqTYYJCvVrxf3+dG/6/UDMb33EbxKqIwt+COx8waSBYqOSBrQmFdhGmM37WhuNc7xTxt+TJ1uhUDh2oixEaT2IZ/7IYm+a1Dws6uG5kErGk/cQRKeha94QAHm7V95SpMZgp807p/AJfkOc+2vdjkQWZQcxRi62bdq0O0K8uH7DL77A== MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4242ee5e-753c-4bfd-fa15-08d4c3cccf53 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:DM5PR02MB2731; X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2731; 3:oSEMxEtIXC3s2wUzSMnXeV5Zvl4hDJgGIMtQvXRvmeaJlLzQnFsYltaVzQs3iGduxEjPLSfseeS99Nuds0T9Gumxt2La6d0vqDpb7r3BwyASZIZED5L3Joalw4DiCpiXTYG21TCQNlRbxw+mF5p+ov3Hw/Eadru9xov+/nQlrQr7fk11t7FE/sg3OwdAPuXq8w6Jc90c3LUl5QANLXM+VOUEFu65oDYuWMRwg0gK/nbzfPTz+ugat3OCiOoy1p2FY7OKp9ukmU6NqELz685tX6BBTQCbvlApS9xK/xz+/FS7nNZV05gCLd0ngD21hGuKVV3Sq33RBGdVlOsf184Biaj0VrRU+pp/773LLFXzDzhcstf88z8HGHsus9ajswm+XqenLl5O1l6OcTvd+7ltvSHxDO8a1qzll0k/xmzgGiZQN87WSGEHq7pYM/dUvV1D8PPZh54FcbaISjlOcQh6JmzgOVKn+BwyMjpNfLYRDEvg5VDpX14lmX7gWMayyvEyvMO08dPkxeGDcmBhMIxzaN/3FYn1e2M856DHf2TkSpzGqHeBW6iQsyQBUZD7B36vA6crjMvTLa5fhlnIoR/9sFAuXvjmwvMkYghbQSCMTF3HJTGsn9sE9F4DOAJcQiE/ifJAHygApg1xGG1HHqswuopYlfHoIrzHjr3g0QSr6kE18dak4lVSl6JOQa6HhNHfFFd7wKSTd+WFV9t/jXjPosyYmAKnHzOjZMbNjQ7Kb5Lq6w2S3XmcIn5jtQ8gR0og26wD6Qm+g6SYECq8mr0JON2elthAtKlMgViN3v1Rwm20cTKtUxAd7DWvEbvN3xo5jK7f3xEc5jFVmtZD1SajY04RPXYx+YQJJ2Ax/WJxwqaFilWAOyLd5VKCD0B45JSRx2VzOx7GRa6KshWh4osZ9KSYSBE9aSBeWqvnpsCRfC1DiUevcXHpLGhQg1Svyh3e X-MS-TrafficTypeDiagnostic: DM5PR02MB2731: X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2731; 25:97kRHVM2ESqcuc0sxQ+X7yNoEKuVFPINl2dMjcjZIJ/Ax/0IQqqMifX1Ecak2ucvEZGZH9JFP7xgEj05ikKpLVpB4ERgnJyrGfsjKGV002TKkQLwOb8nGAqIjymCVvwK8ppwwo01YIxKXgCk93JiHO181+08Mwlsz6k40qR+4PCV+g8owcFfEdgjb+u6iQKhCYrOBRdbeDNd7AdaundcPQLen4N8zOMN7ekW5Qtc51R8CWMd2tXFRsNZMzafvxJqzjnAMpuCZgBwl/ip8up2V3Mow6E9rjxw+BGKHcq1BTO4UxFANWoHh9OggEgqKuqRkV5XhIPVPtn0O21pvUCb6LNg8QHoNntQ3h6QT6yDDcyV0yxiZN2G1BkjBfqdRT64u2DbPZpC/Ik22vYIFnDiezfukd/SgqmqitWTUY3BwMqusdzSP2hRQvrfUyb+0Ybxt54nZS3koudSVLQ1TdLzSL1OlnXpF9LcAcuSyAkdl6rzSXeSMyNoqfmTVQzw1GgUbmB1FzUlbdOvC9PenEPdZgP98DfWYHr3QzTfHqy+mFlJzp4kHs3IbvnI01/t8Qx+0S5FEpxc+zwZIsFSfYfA7SrkkUnjWSyo+7QqEHjVQSt6A1u/yDxxRQIqCzyhdWE2UUkOXYtE/WjrzNtDJ8jOuXdVZA3rxxj1FgcKcXao3iCwjX+gHB9CM7hcoNQ0nhs5SSXXl9PAlLlaD8HJdYlhNAD7dP3oybMzgCUhpRBZlRpwBLKMFoP7PZlmXnzoP9NiqhkEYV7m/jWLgJQYfsfXjyEreDBwWo920sqB7g/LIpIPvvoy63TWD0lFvlTJgAQQuRctBMnD69w7Fmck1Q6QGAEQNfTQoM2HRx4bO2FjlZaxlGnxGAK75m/GEoDre9ui8B/R6OlAYHPsdIovD5Z/TwuGp24EU51vxpLdwMCReY0= X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2731; 31:EAjxW8aJsv8hSfHAp5dx2qyDfWouI4IjzxIW4ZHBkOsoLweqlhAEEv3FsS9DnZR0GRF9MoNgtmIeyOkp9QfC9j3YWGJ82rzM0DXhOyUHbAT3cDRtaOktAtFs5RQMCMKenTrEJRB9sXhG5clJM4q27iW4raEItNqu3fkS3uh2qvcPH8MZW8GEtwHB1sjLDizPVYNdNMkz/CV4WKjF21NZ4FETfqaZsFrJhleqn9dUSZNH3bgZdQLe4i/dCrioWh/mJx+Te/pKC5Y+kNpkLLyfBL6yaz93BzqbJcDQaW4oDZuFpzCluzNceZ+PF0JcNoeZwMPGFUKflYopkQJzS/c8LH6FXTF9AphGFG1oG4q3wXlT+pwyYre34+wjs1mCxs1oIegepji7gsh/W5K2IgsYdsHu8wVgY60xl6b00g/PCt71bb9DcRzlZQHy0g1ZrbfuvXpCqeMVuJ06jI/4GlXEdl88c5gObv2gbLON4vgVgrSh5Jn94oifMPJ2gDSf5e1FzydtUtbIp1TTf80vJMQ14JazmOoXkk9lSBX/UPC3PmNF4HEm3TCaGZmgxdSwOI/lFcH7+aEX/lXHFXQrFVMjz+dxlzNi85+/UsU7UdvX5OSjTncgoao8FNcldF64dH6pe5qH2uDHEKUEov4IenRx6dcXv6S5RWy513Le0Grv2+bxYWJlnDqiltvzXVTAILEnPk5xmfPdJcGlp1RpuFo3Qw== X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2731; 20:tOEbO9kzYl8eKUeFrBbL/YMPk8Xlx+0au/D6n/vXxJ4IgLkYaRDq2ktdHNC6lTIHyeIqwRzFQMNLSIo66AxCS7ILq1kS/0KUS8cP1XBXQunQFUpt+R4WXSsklM+uSPjrLIbwjAFO6ftE835uKxHQT6slKJortYjVmy/gijvXLSyrulC6k6ZZx1DRu087cUhzBIsmvuqmrk9dyBz5+qaDCPf6Bu9zJEp7NQsTO31/C+KhnkiJyTkVsit4NrY7Pmor7XAMbhERFQwPWifT/W3Dvd8+AyIYEeRdO0aKcwUYH/DSTbSjsVwjT/INcpEztVlNpgEucSqJXj4IZIOJE4/mxQEF1OCAaL291I4PBmj6L0v/8zs4n2ADiCqtTmLeCXObm/f3BKzGTOBl4DwlhWqgeZKbXoSzXsE5X+qGO+/ABlG1o0ZHtQ6J0a8o/4cCgd0x/pOb0FV7ou6pFFVlc1O35PNP8udnuTNEBZkFZtyScGC1rJt3gLcHGQBoTk71KaK/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(192813158149592)(148574349560750)(211171220733660)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(13016025)(13018025)(93006095)(93004095)(3002001)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR02MB2731; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR02MB2731; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR02MB2731; 4:A9qI7JKlS5IeMwo+aSY0BRldpumHvJ60V/+6yMmAME?= =?us-ascii?Q?7W1r+2jHhCAybdJJDEFZipiD66+6KltvDouiYCR5dPUoVZwemCUc6QgAca8K?= =?us-ascii?Q?ACNXC94Dh+2QfXkyGOBt91BCV4lHlK33wlehXMEq4YiK6dE6PTIs46cwd5b1?= =?us-ascii?Q?abizBEUfNUCyUu5fpxUWeSPYBm+8GZ7UK6BX3qYYlBkS1frK+VJgJZ011QxQ?= =?us-ascii?Q?HfbElvhQR6SYgGjOhToFaenPhFDXPIJlKzagm3xo/DbNxzHWuscSxP7BlS8u?= =?us-ascii?Q?MhcR67QiA4F+DUkwNDKBd95UxHplk+c0EER5AODvcPNuXxwagueQlYNGp0RK?= =?us-ascii?Q?04PVkqZjganDbJYLar2iLpyG6NAwBvogJnY5Qeh/3lmu7hbYWiPN6RUTIp5w?= =?us-ascii?Q?dvyn8qokjPp0wAJpk0LT+yaG5Z7UUpI8GKy0LOWxJ7TZngGeBEQWD6G3uPn/?= =?us-ascii?Q?cOIfAyWSwCNeo6ws56F6J5WrNyPj0nbPDwY/nLaYHpbT0Lzj/1P78IyFTxR1?= =?us-ascii?Q?Lqwj1Yf8XI3Qmr9d2xxiL6stqyFa7osL2ZAJ7NtakWcpsxoAtydk/TKlyuOP?= =?us-ascii?Q?QdvHMKKf8aQCBCJ7WwurGa7x9Hv+rGZDsd++EkdMNIrGP1u+3XFdLN7/Orr7?= =?us-ascii?Q?RrRMDhyLSbcVeuVd1kxVpKHW1Xaxt6ndIjQsEmYW7cU/k/XA3QYRjRn16d9C?= =?us-ascii?Q?s9t3Dva9GQ/Mr4jfaRNxW83yyBzMcHeOjOqPVzBfxhySu5OeBNMg0Yg6XEm/?= =?us-ascii?Q?bFq0U3j4FjI8AY0ciT+MFiDYe0rqiO6qMcQuy00djzg23RPXRheR6rTuZOcC?= =?us-ascii?Q?1sKWESCHrhNHaAeqCQ0LTTKSJEiN1rqqeCKc0t34QNf8TRY2GEKFweYoKyY1?= =?us-ascii?Q?7RVeHFWssuNvVhom8A/m3zyONyZt22fNzjINUuUlZyYkpxTpM4/dsXc6NZVx?= =?us-ascii?Q?ZoW72nKenI32Sv1Rp9cZg05TR/A69jUx06o4IqHjdxfZluwPigtRrKQ0dP9i?= =?us-ascii?Q?+GdkcYQoi2NRuKAOTtlxM+89o6KFOF1ipcTfwxkPIYvJ4qLf9EzMpaS9DULr?= =?us-ascii?Q?2uq5y6ahHmtkeGlEGDUoRVjQWRYvXHEJrKmPjzpBTWAgxrbu7oedF47ld9BB?= =?us-ascii?Q?QakiVQ0LkNoCmYlwAcbp/r3IUwUn72P4I5l0HrwMZedBIea8g1Y2yB9AvaWF?= =?us-ascii?Q?Nwcf6oND//oE6AKzow2TXQpG+p8nVSbxaWIxDVhPRTlhZ87mIMKAa8VFk6Td?= =?us-ascii?Q?3YPhmNWUGAPfHt0EdaKHvcdiCav58DZPoMOEFgCcI/+5KTTN/Ibw8Bzdiuh1?= =?us-ascii?Q?C0i+qb1hULQXnw3itgNcP2ctCCI0/GVt8a65cWD5IdhDs9qFXaKbf9i5U8c+?= =?us-ascii?Q?hmL+HzET9615yqxfCK4Xy1Yb4=3D?= X-Forefront-PRVS: 0359162B6D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR02MB2731; 23:gDpNq+WfMVnUOcaxAizNZLn0kGF5b02FjdkFe+HR2?= =?us-ascii?Q?FLWSy1XUVfPluhsk0e4YNmIL1VVsv2FTNsUbG/FAXT2TryNcl1ypU/xvcRlH?= =?us-ascii?Q?rh5qj3mgc2rcArUOh4wj67O+GseePnpg5YGfwB/Ic2GVE8/pZL5jWEj7YVj3?= =?us-ascii?Q?nbMOHGo2BOTppB/sLqfb6fkjRPkDxtQAFL6MBP1pWCn8W1V3eBcfRdq/Us+/?= =?us-ascii?Q?83QBAMo5U1+oCKLLT+HrYCrvOXJiVJOwUtlUdX2kgXaIa+cClIBH9oFNApJR?= =?us-ascii?Q?VKEyt8eibTxR/cvGbJX9j8CTW55faQ0DkoDvk9vjEGOxJYbJjlpcgVqrxDzq?= =?us-ascii?Q?4vztvUqv95Ynm9MJ8qVxxlmGTBMfkXJSZeqHnpcLStIa70sAMncZYOT0Tclh?= =?us-ascii?Q?XGqgnK1ww2yUKLn151YyaMf41q1sW3XNV0K9aJ4wt7+1evdOFOI+1bpiuHws?= =?us-ascii?Q?/qn2Vv+4swD9sfwoSh2mkPHSfXGlL6r/f8bVRadQk6P9DSOmxigtkMdg3IXL?= =?us-ascii?Q?Gu4lIUQWH0Z0mG3+/PS/3U3d642E1h8OpqA/JkI4L2GQAfWKIOP0dq0JbTxr?= =?us-ascii?Q?Dxow56/dpEK2Sa5GrO1uSFVIWiK/W0Ei7WPACxJnTDW90Mfqe/GZ3yEO80W7?= =?us-ascii?Q?HAWTK556DoJlu67le66GkvVD4r4PjNRDn2Gql5emBhv6mW5AIAXdy6Rs5XCt?= =?us-ascii?Q?5DEDdP0xCUg5GJj+37uHDnD7dnSdyAP5swMor20BJeqgsnLNSTbj5YOwbfGf?= =?us-ascii?Q?6uf3SOI7MaA24n87s5gQ5gI4yQfJCm6ygBVv+3lKNY65XtOXTFJDd+oR+Lz/?= =?us-ascii?Q?JA3h1CZAotrFnsHdHv9WIqFdRUCOL/guEa+abz3o/zs5nk1v4WxkQoap5u22?= =?us-ascii?Q?QwHapI6ErkbboCrlhxH92Yt3R8pZ5fGV+YdQqCem2/95i9zTDHvwifgWSg4C?= =?us-ascii?Q?mbwZcc5rS1Lq7veRSknKuz0zPxvDgrupRyZcOXAib5NM/HITfK4ue3vTZxxZ?= =?us-ascii?Q?8kGhftkwGQS5iunYtIDilt61FbgbSzlfN8N0Y0H2mlTJlFL2JvTLlmvJ5/ej?= =?us-ascii?Q?w4gjHRBguUJghsPDzacyd7F1nWFukRrnzX1YABwBoM8YIuTIlbvCJd3aG3RQ?= =?us-ascii?Q?YXXY19plXU9lGP6KR+4113Bvzo3uPpUEFKKPfMUaczDIj26j5Y26A=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR02MB2731; 6:kd9FTe9ZAktVVFxRN4YHwYPNWDqR3ptmwZUcbd07hq?= =?us-ascii?Q?AtEStbePdGQzzQAYFSEcaOPoubkPp4DPfmnMmfEzyHYllfa+uKFKL/T2OGyN?= =?us-ascii?Q?khn7+iU78wmtdNV8yQGwi7LlUS1WMB7tiqpfhl8GizCOiuc3B82u3fCl0NuM?= =?us-ascii?Q?ahBGVIZueyBWQNz6JPzqqUKXel6kJRFInNHbJ0vmCuAlXF88p5D8y1MtkzAX?= =?us-ascii?Q?naxG5RCgtCqYiAh4Of/cjrWOSgMZZVYamMrrxiW4JKHwuCGqpFkujZ4L8y4b?= =?us-ascii?Q?u0zICd03Tfce2zh/Y66nSYLCQ2On6lXjHdCLaFE1M/5hWKFYHszv9d7PQUlk?= =?us-ascii?Q?iV9PRwmitYDrugz8Z3NeFtWHmWbDITYQaDVqiQoAtjbtT6MfxpPDKcd1bZUG?= =?us-ascii?Q?n7EdiOzINMS1j/h5QRS5OOSb6aG2wLaFHSd3ibkYET2Ppoghs/RbUJtiJz7B?= =?us-ascii?Q?cbHGINx889KIyg+yJGqZellLtLBi5wcPlZ6Jx7wjNSoFoo07SJZ8rjhRC40E?= =?us-ascii?Q?TBclA8vHva5OI+eavKGdXuo0Iu2/o5tB+2Vx2Obc4fx+1qRIuZRaumqsG7lZ?= =?us-ascii?Q?UNnuAN07SklrhPGhBZzHope38zq1jVVJbq+XlxDpvCmbqODSnv+a2SUBpf9Q?= =?us-ascii?Q?NbLa1yC/kGDqlCt/vYLuCzZzzZp10erGi3A6YdlGyWSVSq2Xe4mTa4tfD+s9?= =?us-ascii?Q?BTF+H6MfSS8brOpxC040oqUGtDovMBh2gqzsSBIhN56pT4gXFMkoaW/Pz0Yq?= =?us-ascii?Q?Aiarg4ftbV9xxqrkXaJKQZ+KQ4ZlNiB2GzPstthiAYWaeLVH+IWN28pcTTyn?= =?us-ascii?Q?ibaC9LZIcV95Ok/1bjNmW4H1GGtB/7c7CXUJ+U1WtDseSsEhcxCrzGg15xhe?= =?us-ascii?Q?hWNGBU8AWenTWGBUf3uKF0d6d5so/DM+dRzfUOQUo3s39gPMTEz7IZsiS/+3?= =?us-ascii?Q?AwGuFkByeMf1cWMcrFeqtKW3WaMInO2gzFmxDIUNsz7GjImgPVaZTITXB5+J?= =?us-ascii?Q?2v7tjL9tlgSPybnHOeONlu?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2731; 5:fMGsPAAnnHkDwfUau1nU1ZnLQ4hBQBvsA3hx3u1vHR8g9Hx/O+O6aoVJVdSc+pnQHv0yAaNi9Pf/tczKF0TNsX4bDbqnx0T+rkSZn2Pb/vNyMRATvqEEk+bhDy2D/jfgKIx5L+oTOK9llG47og3czoNCg7MtWjl/BKfvjoJWVNlZ6jbhx1u9KIO5U4eWMlYbrhDIBlSx9mfd8QD/0df1JMOfUNDd32rT1nrLdZ6KQ5V7xYxqTjyLmClPWECB5YDlfFWnNyLT56BwD6+C6kQ7fLIPXpB9E+oFr1uASdhlP80rO6cxLjxnSiCPAs1n942VFKlULVTv/DbBfXkNMy8MFa6V8FmeoTHyWxIN4D6FVNt1D7X0V+y6ELaG7LlAKk2j9YZsIDNrAAVfnO4pUA0/UGS/ESM6fKr5jHoN6tlnd4SU/EXiIg2+zMMJ/htnmlv5cYQspuf9HGqjwzgLyxdJVlQK4wAnuVADsxCWszeqlea5hTHJWlrDhkpzgETWniZx; 24:fcy9JqINyXjqYC43RfMC1snoT7/W/Fytu+kxJHuk+dwtE2gNEI7FaP7f1n7l3QYGs/ZgoCvLVfjyLxrm3sNLnrgLVWSKQj8hLcM1NybSjBw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR02MB2731; 7:bPNyBEB+MqAnConHp8yqmRmveHSY8ixD1vJoiJh+EyILym7PA5VHH8mJSQgjupD2Onxd0wOYqCFkAopTxBdSGG+F9f//MQO7lYaRryUIBuXcCdAdbxitaprtI+3KTRaJbe1a2JaT1O8yd9ICcNdNNH+4Ed7FzixiP3uynZyMW76O2tojkAs1V/7/sqOpcWG1zjRR3Mbpa+/CEJsdySUqQQ3S8FY9U1hlimRZGu3cpzWy48D3/LMbs0Azt2kHbsdk7DGYwmPLCsECLfP3+sjoFQdFa11RtoAg2Ip7RHHkrieuvvu4mZUSLoP8pkzAlJQWfqUBO+3S2mNq075ATVbZUySTsWzZamwi5YvRZCLwMUwm7WGGqndQv3kxutIeGx5ueoO1I0iDrmR+3ja1zKNvER2iSZ1cSLfB5uj2z6LKTRu16E6U0BAhuGmOM4+0F+XasgcV3pA9GTh2TEmzVKFTEfpshIh3H6ie9niQWx1QZRq6TgGSuMABk5m0KDwk/Qh3WpxXOqdTTm2c1kPP5VS1dj/jxX7iPg1Adj592vBMPE3Ne5UMEFDqwPoomVXEC95qZ57B/1x42eJZ0b2YSBfDT3zr6ceUTPcZgw0JXnpHYRZrx1933BN0i71QvxUOVy8ECXkAW6IV9gCRP2qsh+53IaBi/ICZt2nehM3bt6qT5HePZtsvyi6RuJDrAIpWJzuFS2wQekJXwKz/nfOxTOhlVBpK4yrnjBulCJpl6VpiGEV7BBDLpnurHl8Ti3gTOollzHReLO+MRugNewNvzRTz2lHXPSxKA/dP6xYLzVa44KQ= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2017 17:39:38.2558 (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: DM5PR02MB2731 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.41.56 Subject: [Qemu-devel] [RFC v3 2/3] qemu-error: Implement a more generic error reporting 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" This patch converts the existing error_vreport() function into a generic qmesg_vreport() function that takes an enum describing the information to be reported. As part of this change a new qmesg_report() function is added as well with = the same capability. To maintain full compatibility the original error_report() function is maintained and no changes to the way errors are printed have been made. To improve access to the new informaiton and warning options wrapper functi= ons similar to error_report() have been added for warnings and information printing. Signed-off-by: Alistair Francis Reviewed-by: Thomas Huth --- RFC V3: - Change the function and enum names to be more descriptive - Add wrapper functions for *_report() and *_vreport() include/qemu/error-report.h | 16 +++++++++ scripts/checkpatch.pl | 8 ++++- util/qemu-error.c | 80 +++++++++++++++++++++++++++++++++++++++++= ++-- 3 files changed, 100 insertions(+), 4 deletions(-) diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h index 3001865896..62fc167ace 100644 --- a/include/qemu/error-report.h +++ b/include/qemu/error-report.h @@ -21,6 +21,12 @@ typedef struct Location { struct Location *prev; } Location; =20 +typedef enum { + REPORT_TYPE_ERROR, + REPORT_TYPE_WARNING, + REPORT_TYPE_INFO, +} report_type; + Location *loc_push_restore(Location *loc); Location *loc_push_none(Location *loc); Location *loc_pop(Location *loc); @@ -30,13 +36,23 @@ void loc_set_none(void); void loc_set_cmdline(char **argv, int idx, int cnt); void loc_set_file(const char *fname, int lno); =20 +void qmsg_vreport(report_type type, const char *fmt, va_list ap) GCC_FMT_A= TTR(2, 0); +void qmsg_report(report_type type, const char *fmt, ...) GCC_FMT_ATTR(2, = 3); + void error_vprintf(const char *fmt, va_list ap) GCC_FMT_ATTR(1, 0); 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 45027b9281..8b02621739 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2530,8 +2530,14 @@ sub process { error_set| error_prepend| error_reportf_err| + qmsg_vreport| error_vreport| - error_report}x; + warn_vreport| + info_vreport| + qmsg_report| + 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..63fdc0e174 100644 --- a/util/qemu-error.c +++ b/util/qemu-error.c @@ -179,17 +179,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) +void qmsg_vreport(report_type type, const char *fmt, va_list ap) { GTimeVal tv; gchar *timestr; =20 + switch (type) { + case REPORT_TYPE_ERROR: + /* To maintain compatibility we don't add anything here */ + 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 +216,78 @@ 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. + */ +void error_vreport(const char *fmt, va_list ap) +{ + qmsg_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) +{ + qmsg_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) +{ + qmsg_vreport(REPORT_TYPE_INFO, fmt, ap); +} + +/* + * Print a 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 qmsg_report(report_type type, const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + qmsg_vreport(type, fmt, ap); + va_end(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); + qmsg_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); + qmsg_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); + qmsg_vreport(REPORT_TYPE_INFO, fmt, ap); va_end(ap); } --=20 2.11.0