From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2C7E2A04C0; Mon, 28 Sep 2020 08:10:06 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0900A1D5CF; Mon, 28 Sep 2020 08:10:05 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 9D7601D5B9 for ; Mon, 28 Sep 2020 08:10:01 +0200 (CEST) IronPort-SDR: 0pu/Oh8YeI87r4iYo3Wq7cuj5jtmSSUb9ri7zXuPC2Wx60XJYYPOzZf4yo5ZXBUrWpTPT3kypE 2cSxG/61+zqg== X-IronPort-AV: E=McAfee;i="6000,8403,9757"; a="159325170" X-IronPort-AV: E=Sophos;i="5.77,312,1596524400"; d="scan'208";a="159325170" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Sep 2020 23:09:57 -0700 IronPort-SDR: hXw3mKUj9jqFgp4TVC5pFc3OXY7ZnxhoDq8BjBmPJPuosBuBfMMjA6RKi35ttoXS0+r7PCzi4E 5RSrCwPs5rCw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,312,1596524400"; d="scan'208";a="338052219" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga004.fm.intel.com with ESMTP; 27 Sep 2020 23:09:57 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sun, 27 Sep 2020 23:09:56 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Sun, 27 Sep 2020 23:09:55 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Sun, 27 Sep 2020 23:09:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D58v0NmHnFKxQLJCA02y/JM1xHXskZ1YhLVveOxLNB7JIbojHdNLX6d1NFHuIom8pqMZkcg3PPKB5I3nga/JBAy1Lsg2r4L6YJMU0rozr85YLMRZ3sTfgbpoSNJoFKPtI0h3Iz4l7sDa/Dk0VEyAwLXtMnCS6+AKKhGuOh877VO8NKwTHg27aLYeQzxshQua/nsoCN2AdLDdzTAhyK+yFzVMgIDmMiLK6M8hx9BrLb+7BnmvmWc3f+LiTsEh+XZbd53bGVZc5dFMn5OFsTU/QlQgcnOGTdvzc4fer9U2zQ1G8mz/iobZPwkqEakT7ikpCs3pE8yREEN7o8FlcxWRxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XWAs4pI7l8gaf6Tm8INWgs2wDo7Oc3H4HWqEFx9jolA=; b=HYPFHCFD9LLkATXOyjSnMFlUYBW/sVQGjxDD9hFZh7Fgr/S/XC5NTo2mGEHy851TxEoD8qdlDAAgXQE3a4XczA1bYu3zJq3imETLH51z3iX1+EniMfbLlpCCsISKg+6C6FN91NGxHZ6f2JeAXWanxLCA/Z6/qgqpEOsmkNfnK88UPaQpo/J1d7zIQNQrwokmkbwQszqZspSCwvfeZfPYF1uPb+UoWuyZvY9QOKXedAe7Z7+D1ING3/2mhXRLQzu0CEvcjVsZgCZiu6WI0otfnxYISMBHLGfSI46CyTqDXIXoW7FOHRg3JEXs1E5E42qj4hqdUbMui/OlOI7IGWod9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XWAs4pI7l8gaf6Tm8INWgs2wDo7Oc3H4HWqEFx9jolA=; b=U3uiTMB0+4YOBHRx6zM5UVa2gBOAXdRqWW3tX608WxK4FQQ1pb7OacKso8+eoYMZVMrHjuEdKwyyFQlU04XR/gCxwZlm8eKVVcVn+sE3Olh+Iy04Q8N1ooybO4/U1JcoJ82E7p9/k4PcFu09tvBH+JdI6I4BwllrMghUNZrjXho= Received: from CY4PR11MB1639.namprd11.prod.outlook.com (2603:10b6:910:f::11) by CY4PR11MB1991.namprd11.prod.outlook.com (2603:10b6:903:30::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.20; Mon, 28 Sep 2020 06:09:54 +0000 Received: from CY4PR11MB1639.namprd11.prod.outlook.com ([fe80::65fe:4a5d:a465:8748]) by CY4PR11MB1639.namprd11.prod.outlook.com ([fe80::65fe:4a5d:a465:8748%10]) with mapi id 15.20.3412.029; Mon, 28 Sep 2020 06:09:54 +0000 From: "Jiang, Cheng1" To: Maxime Coquelin , "Xia, Chenbo" , "Wang, Zhihong" , "Mcnamara, John" , "Kovacevic, Marko" CC: "dev@dpdk.org" , "Fu, Patrick" Thread-Topic: [PATCH v1 1/4] example/vhost: add async vhost driver args parsing function Thread-Index: AQHWhz7uYkO1d2c04EeT8R+G5yv7cql196mAgAeuCAA= Date: Mon, 28 Sep 2020 06:09:54 +0000 Message-ID: References: <20200910064351.35513-1-Cheng1.jiang@intel.com> <20200910064351.35513-2-Cheng1.jiang@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.46.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 52b7e8e3-7a9f-4629-34ce-08d863751e40 x-ms-traffictypediagnostic: CY4PR11MB1991: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UFEc1Cp2wG8nsWQi4I1dH9gNkbLi225q8QW1DximVZN+6g+4ruCL1SAnHeSWZxPPEV5g8YWseWs4MnS0hgIzba76xXFX0nMn8EOUHMcW9dIuoW2tDqRJm/N2YYX43KwwrRTMsZcHHaSNvizJKRsqwqf8aPuebOeda0hU5ZavZFo6fcHZfQAG/Vnrs7/fFh6U9kzUmnHpJIdNoRP8ALXO0szQp6oywQSpnp6L02mQMn+MS8ZzxE8ad+xsxPERTbMawl+lYWADyLUiMSY8HsJDC5qsMYRV6mG//I34U28ufN8z8kl+/6Cey1N2YpubzSnEocqQTSsEs5OsPYXo1BkTPYRpFEEmdOq8EZX4dOwnPTc0wGjpT7vE3BKnuEH1tZG1zxTrD37G+7LvzRIFN/SFStJOhVQgtSC/6uuFO2qCwYM2UlMvLHGX/fhDcYjpudAaRrfe+qdIuXLsxWU4zpa4Bg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR11MB1639.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39860400002)(346002)(376002)(396003)(366004)(5660300002)(6636002)(8936002)(2906002)(7696005)(4326008)(55016002)(186003)(26005)(53546011)(6506007)(33656002)(107886003)(9686003)(54906003)(316002)(110136005)(8676002)(478600001)(64756008)(66556008)(66476007)(76116006)(83380400001)(71200400001)(66946007)(966005)(66446008)(52536014)(86362001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: qjcVOdvOAuh0jx20ZH2gT4wS69ncYc1dvLbPRAIYITTe51+3+eFWKnCsV7IGbU6fE4Zs3sDM/w7+4dV4HUZKAvjrFy4v+ST8m7pl7jCbeHVqvwJW0gmtZyi1J5Dmzm6Qyz1HXsQWDTJtQ0RVfBpFcX4mQ2ojrQs9a5IaTjhCFFLtbtcDw6XypoWTJGCkoT2MRO0DLl4zsJJtT0SGK/m4qEckpDZxO1lIhMgrfmzwL58yU3ofME+eoY14pRi7fIrbqqXX5BNv8kvkSHSm5zKC2F8Cs3i3reO3bjQsGUQgWexm83ZUakXglNKX5rphEI6XQjRiI7RN2YCNBXuoj+iJ/rCwFFnUYVSluezS78vIaClJKH9XOankrfJRUdyrZBlAerV+R7BR6ZENAvLFZmRLhqer/+BDIngsU9OywcScBdkyqov71zmU01xBA0diWEbtcyMd99htV10Aod/0PsvWc9HGF4QLojRu0bWfqUAQkQ+paQI39lt5ymmlmXD6y5HYhRcG8ClVLQWgsICc+R/AAjwKuVaa9fQg0m9COlpWF1cC5O33fa/tZqzuy0ERRNdSZ5DX6K2Q13h3nIi6PzKKrFzyBgTlfE1BJDO+GkGfZPwGTjDNLAGskOziYfMUUq08TL3s0Ex4LRIcZegUx1GjmQ== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1639.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52b7e8e3-7a9f-4629-34ce-08d863751e40 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Sep 2020 06:09:54.1153 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Dt/MCNBDj9ay9zhEb1cAUYJl7MyspjnyyOabRYUrFIc9CebCzK77dmQgRhjMZjNERG0AxZUJCSyOkJtxeSY4+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1991 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1 1/4] example/vhost: add async vhost driver args parsing function X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgTWF4aW1lLA0KDQpUaGFua3MgZm9yIHlvdXIgY29tbWVudHMuDQpUaGUgcmVwbGllcyBhcmUg aW5saW5lLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGltZSBD b3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwg U2VwdGVtYmVyIDIzLCAyMDIwIDQ6MjUgUE0NCj4gVG86IEppYW5nLCBDaGVuZzEgPGNoZW5nMS5q aWFuZ0BpbnRlbC5jb20+OyBYaWEsIENoZW5ibw0KPiA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+OyBX YW5nLCBaaGlob25nIDx6aGlob25nLndhbmdAaW50ZWwuY29tPjsNCj4gTWNuYW1hcmEsIEpvaG4g PGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPjsgS292YWNldmljLCBNYXJrbw0KPiA8bWFya28ua292 YWNldmljQGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgRnUsIFBhdHJpY2sgPHBhdHJp Y2suZnVAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYxIDEvNF0gZXhhbXBsZS92 aG9zdDogYWRkIGFzeW5jIHZob3N0IGRyaXZlciBhcmdzDQo+IHBhcnNpbmcgZnVuY3Rpb24NCj4g DQo+IA0KPiANCj4gT24gOS8xMC8yMCA4OjQzIEFNLCBDaGVuZyBKaWFuZyB3cm90ZToNCj4gPiBU aGlzIHBhdGNoIGlzIHRvIGFkZCBhc3luYyB2aG9zdCBkcml2ZXIgYXJndW1lbnRzIHBhcnNpbmcg ZnVuY3Rpb24gZm9yDQo+ID4gQ0JETUEgY2hhbm5lbC4gV2l0aCB0aGVzZSBhcmd1bWVudHMgdmhv c3Qgc2FtcGxlIGNhbiBiZSBzZXQgdG8gdXNlDQo+ID4gQ0JETUEgb3IgQ1BVIGZvciBlbnF1ZXVl IG9wZXJhdGlvbiBhbmQgYmluZCB2aG9zdCBkZXZpY2Ugd2l0aCBzcGVjaWZpYw0KPiA+IENCRE1B IGNoYW5uZWwgdG8gYWNjZWxlcmF0ZSB2aG9zdCBkYXRhLXBhdGguDQo+ID4NCj4gPiBTaWduZWQt b2ZmLWJ5OiBDaGVuZyBKaWFuZyA8Q2hlbmcxLmppYW5nQGludGVsLmNvbT4NCj4gPiAtLS0NCj4g PiAgZXhhbXBsZXMvdmhvc3QvbWFpbi5jIHwgMTMzDQo+ID4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9leGFtcGxlcy92aG9z dC9tYWluLmMgYi9leGFtcGxlcy92aG9zdC9tYWluLmMgaW5kZXgNCj4gPiBlMTU3OGU3OTUuLjAx MWUzZGEyMSAxMDA2NDQNCj4gPiAtLS0gYS9leGFtcGxlcy92aG9zdC9tYWluLmMNCj4gPiArKysg Yi9leGFtcGxlcy92aG9zdC9tYWluLmMNCj4gPiBAQCAtMjQsNiArMjQsOSBAQA0KPiA+ICAjaW5j bHVkZSA8cnRlX2lwLmg+DQo+ID4gICNpbmNsdWRlIDxydGVfdGNwLmg+DQo+ID4gICNpbmNsdWRl IDxydGVfcGF1c2UuaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9yYXdkZXYuaD4NCj4gPiArI2luY2x1 ZGUgPHJ0ZV9pb2F0X3Jhd2Rldi5oPg0KPiA+ICsjaW5jbHVkZSA8cnRlX3BjaS5oPg0KPiA+DQo+ ID4gICNpbmNsdWRlICJtYWluLmgiDQo+ID4NCj4gPiBAQCAtNTgsNiArNjEsMTIgQEANCj4gPiAg LyogTWF4aW11bSBsb25nIG9wdGlvbiBsZW5ndGggZm9yIG9wdGlvbiBwYXJzaW5nLiAqLyAgI2Rl ZmluZQ0KPiA+IE1BWF9MT05HX09QVF9TWiA2NA0KPiA+DQo+ID4gKyNkZWZpbmUgSU9BVF9SSU5H X1NJWkUgNDA5Ng0KPiA+ICsNCj4gPiArI2RlZmluZSBNQVhfRU5RVUVVRURfU0laRSAyMDQ4DQo+ ID4gKw0KPiA+ICsjZGVmaW5lIE1BWF9WSE9TVF9ERVZJQ0UgMTAyNA0KPiA+ICsNCj4gPiAgLyog bWFzayBvZiBlbmFibGVkIHBvcnRzICovDQo+ID4gIHN0YXRpYyB1aW50MzJfdCBlbmFibGVkX3Bv cnRfbWFzayA9IDA7DQo+ID4NCj4gPiBAQCAtOTYsNiArMTA1LDIxIEBAIHN0YXRpYyBpbnQgZGVx dWV1ZV96ZXJvX2NvcHk7DQo+ID4NCj4gPiAgc3RhdGljIGludCBidWlsdGluX25ldF9kcml2ZXI7 DQo+ID4NCj4gPiArc3RhdGljIGludCBhc3luY192aG9zdF9kcml2ZXI7DQo+ID4gKw0KPiA+ICtz dHJ1Y3QgZG1hX2luZm8gew0KPiA+ICsJc3RydWN0IHJ0ZV9wY2lfYWRkciBhZGRyOw0KPiA+ICsJ dWludDE2X3QgZGV2X2lkOw0KPiA+ICsJYm9vbCBpc192YWxpZDsNCj4gPiArfTsNCj4gPiArDQo+ ID4gK3N0cnVjdCBkbWFfZm9yX3Zob3N0IHsNCj4gPiArCXN0cnVjdCBkbWFfaW5mbyBkbWFzW1JU RV9NQVhfUVVFVUVTX1BFUl9QT1JUICogMl07DQo+ID4gKwl1aW50MTZfdCBucjsNCj4gPiArfTsN Cj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgZG1hX2Zvcl92aG9zdCBkbWFfYmluZFtNQVhfVkhP U1RfREVWSUNFXTsNCj4gPiArDQo+ID4gIC8qIFNwZWNpZnkgdGltZW91dCAoaW4gdXNlY29uZHMp IGJldHdlZW4gcmV0cmllcyBvbiBSWC4gKi8gIHN0YXRpYw0KPiA+IHVpbnQzMl90IGJ1cnN0X3J4 X2RlbGF5X3RpbWUgPSBCVVJTVF9SWF9XQUlUX1VTOw0KPiA+ICAvKiBTcGVjaWZ5IHRoZSBudW1i ZXIgb2YgcmV0cmllcyBvbiBSWC4gKi8gQEAgLTE4Miw2ICsyMDYsOTcgQEANCj4gPiBzdHJ1Y3Qg bWJ1Zl90YWJsZSBsY29yZV90eF9xdWV1ZVtSVEVfTUFYX0xDT1JFXTsNCj4gPiAgCQkJCSAvIFVT X1BFUl9TICogQlVSU1RfVFhfRFJBSU5fVVMpDQo+ID4gICNkZWZpbmUgVkxBTl9ITEVOICAgICAg IDQNCj4gPg0KPiA+ICtzdGF0aWMgaW5saW5lIGludA0KPiA+ICtvcGVuX2RtYShjb25zdCBjaGFy ICp2YWx1ZSwgdm9pZCAqZG1hX2JpbmRfaW5mbykgew0KPiA+ICsJc3RydWN0IGRtYV9mb3Jfdmhv c3QgKmRtYV9pbmZvID0gZG1hX2JpbmRfaW5mbzsNCj4gPiArCWNoYXIgKmlucHV0ID0gc3RybmR1 cCh2YWx1ZSwgc3RybGVuKHZhbHVlKSArIDEpOw0KPiA+ICsJY2hhciAqYWRkcnMgPSBpbnB1dDsN Cj4gPiArCWNoYXIgKnB0cnNbMl07DQo+ID4gKwljaGFyICpzdGFydCwgKmVuZCwgKnN1YnN0cjsN Cj4gPiArCWludDY0X3QgdmlkLCB2cmluZ19pZDsNCj4gPiArCXN0cnVjdCBydGVfaW9hdF9yYXdk ZXZfY29uZmlnIGNvbmZpZzsNCj4gPiArCXN0cnVjdCBydGVfcmF3ZGV2X2luZm8gaW5mbyA9IHsg LmRldl9wcml2YXRlID0gJmNvbmZpZyB9Ow0KPiA+ICsJY2hhciBuYW1lWzMyXTsNCj4gPiArCWlu dCBkZXZfaWQ7DQo+ID4gKwlpbnQgcmV0ID0gMDsNCj4gPiArCXVpbnQxNl90IGkgPSAwOw0KPiA+ ICsNCj4gPiArCXdoaWxlIChpc2JsYW5rKCphZGRycykpDQo+ID4gKwkJYWRkcnMrKzsNCj4gPiAr CWlmICgqYWRkcnMgPT0gJ1wwJykgew0KPiA+ICsJCXJldCA9IC0xOw0KPiA+ICsJCWdvdG8gb3V0 Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCS8qIHByb2Nlc3MgRE1BIGRldmljZXMgd2l0aGluIGJy YWNrZXQuICovDQo+ID4gKwlhZGRycysrOw0KPiA+ICsJc3Vic3RyID0gc3RydG9rKGFkZHJzLCAi O10iKTsNCj4gPiArCWlmICghc3Vic3RyKSB7DQo+ID4gKwkJcmV0ID0gLTE7DQo+ID4gKwkJZ290 byBvdXQ7DQo+ID4gKwl9DQo+ID4gKwljaGFyICpkbWFfYXJnW01BWF9WSE9TVF9ERVZJQ0VdOw0K PiA+ICsJcnRlX3N0cnNwbGl0KHN1YnN0ciwgc3RybGVuKHN1YnN0ciksIGRtYV9hcmcsIE1BWF9W SE9TVF9ERVZJQ0UsICcsJyk7DQo+ID4gKwlkbyB7DQo+ID4gKwkJY2hhciAqYXJnX3RlbXAgPSBk bWFfYXJnW2ldOw0KPiA+ICsJCXJ0ZV9zdHJzcGxpdChhcmdfdGVtcCwgc3RybGVuKGFyZ190ZW1w KSwgcHRycywgMiwgJ0AnKTsNCj4gPiArDQo+ID4gKwkJc3RhcnQgPSBzdHJzdHIocHRyc1swXSwg InR4ZCIpOw0KPiA+ICsJCWlmIChzdGFydCA9PSBOVUxMKSB7DQo+ID4gKwkJCXJldCA9IC0xOw0K PiA+ICsJCQlnb3RvIG91dDsNCj4gPiArCQl9DQo+ID4gKw0KPiA+ICsJCXN0YXJ0ICs9IDM7DQo+ ID4gKwkJdmlkID0gc3RydG9sKHN0YXJ0LCAmZW5kLCAwKTsNCj4gPiArCQlpZiAoZW5kID09IHN0 YXJ0KSB7DQo+ID4gKwkJCXJldCA9IC0xOw0KPiA+ICsJCQlnb3RvIG91dDsNCj4gPiArCQl9DQo+ ID4gKw0KPiA+ICsJCXZyaW5nX2lkID0gMCArIFZJUlRJT19SWFE7DQo+ID4gKwkJaWYgKHJ0ZV9w Y2lfYWRkcl9wYXJzZShwdHJzWzFdLA0KPiA+ICsJCQkJJihkbWFfaW5mbyArIHZpZCktPmRtYXNb dnJpbmdfaWRdLmFkZHIpIDwgMCkNCj4gew0KPiA+ICsJCQlyZXQgPSAtMTsNCj4gPiArCQkJZ290 byBvdXQ7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQlydGVfcGNpX2RldmljZV9uYW1lKCYoZG1h X2luZm8gKyB2aWQpLQ0KPiA+ZG1hc1t2cmluZ19pZF0uYWRkciwNCj4gPiArCQkJCSAgICBuYW1l LCBzaXplb2YobmFtZSkpOw0KPiA+ICsJCWRldl9pZCA9IHJ0ZV9yYXdkZXZfZ2V0X2Rldl9pZChu YW1lKTsNCj4gPiArCQlpZiAoZGV2X2lkID09ICh1aW50MTZfdCkoLUVOT0RFVikgfHwNCj4gPiAr CQkgICAgZGV2X2lkID09ICh1aW50MTZfdCkoLUVJTlZBTCkpIHsNCj4gPiArCQkJcmV0ID0gLTE7 DQo+ID4gKwkJCWdvdG8gb3V0Ow0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJaWYgKHJ0ZV9yYXdk ZXZfaW5mb19nZXQoZGV2X2lkLCAmaW5mbykgPCAwIHx8DQo+ID4gKwkJICAgIHN0cnN0cihpbmZv LmRyaXZlcl9uYW1lLCAiaW9hdCIpID09IE5VTEwpIHsNCj4gPiArCQkJcmV0ID0gLTE7DQo+ID4g KwkJCWdvdG8gb3V0Ow0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJKGRtYV9pbmZvICsgdmlkKS0+ ZG1hc1t2cmluZ19pZF0uZGV2X2lkID0gZGV2X2lkOw0KPiA+ICsJCShkbWFfaW5mbyArIHZpZCkt PmRtYXNbdnJpbmdfaWRdLmlzX3ZhbGlkID0gdHJ1ZTsNCj4gPiArCQljb25maWcucmluZ19zaXpl ID0gSU9BVF9SSU5HX1NJWkU7DQo+ID4gKwkJaWYgKHJ0ZV9yYXdkZXZfY29uZmlndXJlKGRldl9p ZCwgJmluZm8pIDwgMCkgew0KPiA+ICsJCQlyZXQgPSAtMTsNCj4gPiArCQkJZ290byBvdXQ7DQo+ ID4gKwkJfQ0KPiA+ICsJCXJ0ZV9yYXdkZXZfc3RhcnQoZGV2X2lkKTsNCj4gPiArDQo+ID4gKwkJ ZG1hX2luZm8tPm5yKys7DQo+ID4gKw0KPiA+ICsJCWFyZ190ZW1wID0gc3RydG9rKE5VTEwsICI7 XSIpOw0KPiA+ICsJCWkrKzsNCj4gPiArCX0gd2hpbGUgKGRtYV9hcmdbaV0pOw0KPiA+ICsNCj4g PiArb3V0Og0KPiA+ICsJZnJlZShpbnB1dCk7DQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ ID4gKw0KPiANCj4gSSB0aGluayB0aGlzIGlzIHB1cmVseSBJbnRlbCBzcGVjaWZpY3MsIHNvIHVz aW5nIGdlbmVyaWMgImRtYSIgbmFtZSBpcyBub3QgYSBnb29kDQo+IGlkZWEuDQo+IEFsc28sIGFz IHRoaXMgaXMgSFcgc3BlY2lmaWMsIGl0IHNob3VsZCBiZSBtb3ZlZCB0byBhIGRlZGljYXRlZCBm aWxlIHdoaWNoDQo+IHdvdWxkIG9ubHkgYmUgY29tcGlsZWQgaWYgYWxsIGRlcGVuZGVuY2llcyBh cmUgbWV0LiAoaXQgZG9lcyBub3QgZXZlbiBidWlsZA0KPiBvbiBYODY6DQo+IGh0dHA6Ly9tYWls cy5kcGRrLm9yZy9hcmNoaXZlcy90ZXN0LXJlcG9ydC8yMDIwLVNlcHRlbWJlci8xNTE1MTkuaHRt bCkNCj4gDQoNCkkgYWdyZWVkLiBJJ2xsIGFkZCBhbm90aGVyIGxheWVyIG9mIGFic3RyYWN0aW9u IGhlcmUsIHVzaW5nIG9wZW5fZG1hIGZ1bmN0aW9uIHRvIGNhbGwgdGhlIHNwZWNpZmljIERNQSBp bml0aWF0ZSBmdW5jdGlvbihzdWNoIGFzIG9wZW5faW9hdCkgd2hpY2ggd2lsbCBiZSBpbiBhIGRl ZGljYXRlZCBmaWxlKGlvYXQuYykuIEFuZCB0aGUgbWVzb24gYnVpbGQgZmlsZSB3aWxsIGJlIGNo YW5nZWQgdG8gZml4IHRoZSBkZXBlbmRlbmN5IHByb2JsZW0uDQoNCj4gPiAgLyoNCj4gPiAgICog QnVpbGRzIHVwIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gZm9yIFZNRFEgVkxBTiBwb29sIG1h cA0KPiA+ICAgKiBhY2NvcmRpbmcgdG8gdGhlIHBvb2wgJiBxdWV1ZSBsaW1pdHMuDQo+ID4gQEAg LTQ4NSw2ICs2MDAsOCBAQCB1c192aG9zdF9wYXJzZV9hcmdzKGludCBhcmdjLCBjaGFyICoqYXJn dikNCj4gPiAgCQl7ImNsaWVudCIsIG5vX2FyZ3VtZW50LCAmY2xpZW50X21vZGUsIDF9LA0KPiA+ ICAJCXsiZGVxdWV1ZS16ZXJvLWNvcHkiLCBub19hcmd1bWVudCwNCj4gJmRlcXVldWVfemVyb19j b3B5LCAxfSwNCj4gPiAgCQl7ImJ1aWx0aW4tbmV0LWRyaXZlciIsIG5vX2FyZ3VtZW50LCAmYnVp bHRpbl9uZXRfZHJpdmVyLCAxfSwNCj4gPiArCQl7ImFzeW5jX3Zob3N0X2RyaXZlciIsIG5vX2Fy Z3VtZW50LCAmYXN5bmNfdmhvc3RfZHJpdmVyLA0KPiAxfSwNCj4gDQo+IFNob3VsZG4ndCBpdCBi ZSBpbiBwYXRjaCAyIHdoZXJlIGl0IGlzIHVzZWQ/DQo+IEFsc28sIEkgd29uZGVyIHdoZXRoZXIg aXQgaXMgcmVhbGx5IG5lY2Vzc2FyeSwgYXMgYXMgc29vbiBhcyB5b3UgcGFzcyBkbWFzDQo+IHBh cmFtZXRlciB5b3Uga25vdyB5b3UnbGwgd2FudCB0byB1c2UgYXN5bmMgbW9kZSwgbm8/DQo+IA0K DQpTdXJlIEknbGwgZml4IGl0IGluIHRoZSBuZXh0IHZlcnNpb24uIEFuZCBhcyBmb3IgdGhlIG5l Y2Vzc2l0eSBvZiBhc3luY192aG9zdF9kcml2ZXIsIEkgYWdyZWUgd2l0aCB5b3UuIFNvIEknbGwg Y2hhbmdlIGl0IHRvIGRtYV90eXBlIHRvIGluZGljYXRlIHRoZSBhcHAgdGhhdCBJIGFtIGdvaW5n IHRvIHVzZSB3aGF0IGtpbmQgb2YgZG1hIGZvciB2aG9zdCBhY2NlbGVyYXRpb24uDQoNCj4gPiAr CQl7ImRtYXMiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgMH0sDQo+ID4gIAkJe05VTEwsIDAs IDAsIDB9LA0KPiA+ICAJfTsNCj4gPg0KPiA+IEBAIC02MjAsMTMgKzczNywyNSBAQCB1c192aG9z dF9wYXJzZV9hcmdzKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gPiAgCQkJCQkJInNvY2tldC1m aWxlIiwNCj4gTUFYX0xPTkdfT1BUX1NaKSkgew0KPiA+ICAJCQkJaWYgKHVzX3Zob3N0X3BhcnNl X3NvY2tldF9wYXRoKG9wdGFyZykgPT0gLQ0KPiAxKSB7DQo+ID4gIAkJCQkJUlRFX0xPRyhJTkZP LCBWSE9TVF9DT05GSUcsDQo+ID4gLQkJCQkJIkludmFsaWQgYXJndW1lbnQgZm9yIHNvY2tldCBu YW1lDQo+IChNYXggJWQgY2hhcmFjdGVycylcbiIsDQo+ID4gLQkJCQkJUEFUSF9NQVgpOw0KPiA+ ICsJCQkJCQkiSW52YWxpZCBhcmd1bWVudCBmb3Igc29ja2V0DQo+IG5hbWUgKE1heCAlZCBjaGFy YWN0ZXJzKVxuIiwNCj4gPiArCQkJCQkJUEFUSF9NQVgpOw0KPiA+ICAJCQkJCXVzX3Zob3N0X3Vz YWdlKHByZ25hbWUpOw0KPiA+ICAJCQkJCXJldHVybiAtMTsNCj4gPiAgCQkJCX0NCj4gPiAgCQkJ fQ0KPiA+DQo+ID4gKwkJCWlmICghc3RybmNtcChsb25nX29wdGlvbltvcHRpb25faW5kZXhdLm5h bWUsDQo+ID4gKwkJCQkJCSJkbWFzIiwNCj4gTUFYX0xPTkdfT1BUX1NaKSkgew0KPiA+ICsJCQkJ aWYgKG9wZW5fZG1hKG9wdGFyZywgJmRtYV9iaW5kKSA9PSAtMSkgew0KPiA+ICsJCQkJCWlmICgq b3B0YXJnID09IC0xKSB7DQo+ID4gKwkJCQkJCVJURV9MT0coSU5GTywNCj4gVkhPU1RfQ09ORklH LA0KPiA+ICsJCQkJCQkJIldyb25nIERNQSBhcmdzXG4iKTsNCj4gPiArCQkJCQkJdXNfdmhvc3Rf dXNhZ2UocHJnbmFtZSk7DQo+IA0KPiBZb3UgbmVlZCB0byB1cGRhdGUgdXNfdmhvc3RfdXNhZ2Uo KSB0byBkb2N1bWVudCB0aGUgbmV3IGFyZ3VtZW50cy4NCg0KU3VyZSwgSSdsbCBkbyBpdCBpbiB0 aGUgbmV4dCB2ZXJzaW9uLg0KDQpUaGFua3MsDQpDaGVuZw0KDQo+IA0KPiA+ICsJCQkJCQlyZXR1 cm4gLTE7DQo+ID4gKwkJCQkJfQ0KPiA+ICsJCQkJfQ0KPiA+ICsJCQl9DQo+ID4gKw0KPiA+ICAJ CQlicmVhazsNCj4gPg0KPiA+ICAJCQkvKiBJbnZhbGlkIG9wdGlvbiAtIHByaW50IG9wdGlvbnMu ICovDQo+ID4NCg0K