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 BB040A2EEB for ; Tue, 10 Sep 2019 10:37:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 294031EE14; Tue, 10 Sep 2019 10:37:33 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id AAD801EDE8 for ; Tue, 10 Sep 2019 10:37:30 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Sep 2019 01:37:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,489,1559545200"; d="scan'208";a="191751116" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by FMSMGA003.fm.intel.com with ESMTP; 10 Sep 2019 01:37:29 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 10 Sep 2019 01:37:28 -0700 Received: from shsmsx107.ccr.corp.intel.com (10.239.4.96) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 10 Sep 2019 01:37:27 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.113]) by SHSMSX107.ccr.corp.intel.com ([169.254.9.89]) with mapi id 14.03.0439.000; Tue, 10 Sep 2019 16:37:25 +0800 From: "Wang, Haiyue" To: "Yigit, Ferruh" , "Richardson, Bruce" CC: Ray Kinsella , "dev@dpdk.org" , "Sun, Chenmin" Thread-Topic: [dpdk-dev] [RFC v2 1/3] ethdev: add the API for getting trace information Thread-Index: AQHVUYTDT/0YGy+MOU67JpkccwCfnab35B0AgACeXoCAJdFBAIABT/vQgAM1LQCAABWGAIAAAtKAgAAHf4CAAYRhMP//tyMAgACHaSA= Date: Tue, 10 Sep 2019 08:37:25 +0000 Message-ID: References: <1565665572-65495-1-git-send-email-haiyue.wang@intel.com> <1565665572-65495-2-git-send-email-haiyue.wang@intel.com> <20190812202436.662e6ca8@hermes.lan> <75f88e4b-97ca-7e1f-1385-8e69f659be7f@intel.com> <20190909124038.GA1889@bricha3-MOBL.ger.corp.intel.com> <8268b844-2815-5e0d-87cf-c6e9ca5c9f34@intel.com> In-Reply-To: <8268b844-2815-5e0d-87cf-c6e9ca5c9f34@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMTJmMGVlOGQtODNhYy00MzAwLTk2MjctMWEzZDY5YmEwN2UwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiSlBQazJpaldiSUxGOVwvQXlYTjNRNnlSNDFld1FDdFpSNFVtWFlPNG9RXC9TdExYdTJHUUpBYmVzUlZONW5NeFwvdiJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC v2 1/3] ethdev: add the API for getting trace information 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZaWdpdCwgRmVycnVoDQo+IFNl bnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAxMCwgMjAxOSAxNjowNw0KPiBUbzogV2FuZywgSGFpeXVl IDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+OyBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFy ZHNvbkBpbnRlbC5jb20+DQo+IENjOiBSYXkgS2luc2VsbGEgPG1kckBhc2hyb2UuZXU+OyBkZXZA ZHBkay5vcmc7IFN1biwgQ2hlbm1pbiA8Y2hlbm1pbi5zdW5AaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSZTogW2RwZGstZGV2XSBbUkZDIHYyIDEvM10gZXRoZGV2OiBhZGQgdGhlIEFQSSBmb3IgZ2V0 dGluZyB0cmFjZSBpbmZvcm1hdGlvbg0KPiANCj4gT24gOS8xMC8yMDE5IDU6MzYgQU0sIFdhbmcs IEhhaXl1ZSB3cm90ZToNCj4gPiBUaGFua3MgRmVycnVoLCBCcnVjZS4NCj4gPg0KPiA+PiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBZaWdpdCwgRmVycnVoDQo+ID4+IFNl bnQ6IE1vbmRheSwgU2VwdGVtYmVyIDksIDIwMTkgMjE6MTgNCj4gPj4gVG86IFJpY2hhcmRzb24s IEJydWNlIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT4NCj4gPj4gQ2M6IFdhbmcsIEhhaXl1 ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29tPjsgUmF5IEtpbnNlbGxhIDxtZHJAYXNocm9lLmV1Pjsg ZGV2QGRwZGsub3JnOyBTdW4sIENoZW5taW4NCj4gPj4gPGNoZW5taW4uc3VuQGludGVsLmNvbT4N Cj4gPj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1JGQyB2MiAxLzNdIGV0aGRldjogYWRkIHRo ZSBBUEkgZm9yIGdldHRpbmcgdHJhY2UgaW5mb3JtYXRpb24NCj4gPj4NCj4gPj4gT24gOS85LzIw MTkgMTo1MCBQTSwgRmVycnVoIFlpZ2l0IHdyb3RlOg0KPiA+Pj4gT24gOS85LzIwMTkgMTo0MCBQ TSwgQnJ1Y2UgUmljaGFyZHNvbiB3cm90ZToNCj4gPj4+PiBPbiBNb24sIFNlcCAwOSwgMjAxOSBh dCAxMjoyMzozNlBNICswMTAwLCBGZXJydWggWWlnaXQgd3JvdGU6DQo+ID4+Pj4+IE9uIDkvNy8y MDE5IDM6NDIgQU0sIFdhbmcsIEhhaXl1ZSB3cm90ZToNCj4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+IEZyb206IFlpZ2l0LCBGZXJydWgNCj4gPj4+Pj4+PiBT ZW50OiBGcmlkYXksIFNlcHRlbWJlciA2LCAyMDE5IDIyOjIyDQo+ID4+Pj4+Pj4gVG86IFJheSBL aW5zZWxsYSA8bWRyQGFzaHJvZS5ldT47IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwu Y29tPg0KPiA+Pj4+Pj4+IENjOiBkZXZAZHBkay5vcmcNCj4gPj4+Pj4+PiBTdWJqZWN0OiBSZTog W2RwZGstZGV2XSBbUkZDIHYyIDEvM10gZXRoZGV2OiBhZGQgdGhlIEFQSSBmb3IgZ2V0dGluZyB0 cmFjZSBpbmZvcm1hdGlvbg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gT24gOC8xMy8yMDE5IDE6NTEg UE0sIFJheSBLaW5zZWxsYSB3cm90ZToNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4gT24gMTMvMDgvMjAxOSAwNDoyNCwgU3RlcGhlbiBIZW1taW5nZXIgd3JvdGU6DQo+ID4+Pj4+ Pj4+PiBPbiBUdWUsIDEzIEF1ZyAyMDE5IDExOjA2OjEwICswODAwDQo+ID4+Pj4+Pj4+PiBIYWl5 dWUgV2FuZyA8aGFpeXVlLndhbmdAaW50ZWwuY29tPiB3cm90ZToNCj4gPj4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+Pj4gRW5oYW5jZSB0aGUgUE1EIHRvIHN1cHBvcnQgcmV0cmlldmluZyB0cmFjZSBpbmZv cm1hdGlvbiBsaWtlDQo+ID4+Pj4+Pj4+Pj4gUngvVHggYnVyc3Qgc2VsZWN0aW9uIGV0Yy4NCj4g Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEhhaXl1ZSBXYW5nIDxoYWl5 dWUud2FuZ0BpbnRlbC5jb20+DQo+ID4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4gIGxpYi9s aWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYyAgICAgIHwgMTggKysrKysrKysrKysrKysrKysrDQo+ ID4+Pj4+Pj4+Pj4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuaCAgICAgIHwgIDkgKysr KysrKysrDQo+ID4+Pj4+Pj4+Pj4gIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXZfY29yZS5o IHwgIDQgKysrKw0KPiA+Pj4+Pj4+Pj4+ICAzIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMo KykNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0 aGRldi9ydGVfZXRoZGV2LmMgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmMNCj4gPj4+ Pj4+Pj4+PiBpbmRleCAxN2QxODNlLi42MDk4ZmFkIDEwMDY0NA0KPiA+Pj4+Pj4+Pj4+IC0tLSBh L2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiA+Pj4+Pj4+Pj4+ICsrKyBiL2xpYi9s aWJydGVfZXRoZGV2L3J0ZV9ldGhkZXYuYw0KPiA+Pj4+Pj4+Pj4+IEBAIC00MDgzLDYgKzQwODMs MjQgQEAgcnRlX2V0aF90eF9xdWV1ZV9pbmZvX2dldCh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZf dCBxdWV1ZV9pZCwNCj4gPj4+Pj4+Pj4+PiAgfQ0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4g IGludA0KPiA+Pj4+Pj4+Pj4+ICtydGVfZXRoX3RyYWNlX2luZm9fZ2V0KHVpbnQxNl90IHBvcnRf aWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+Pj4+Pj4+Pj4+ICsJCSAgICAgICBlbnVtIHJ0ZV9l dGhfdHJhY2UgdHlwZSwgY2hhciAqYnVmLCBpbnQgc3opDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBC ZXR0ZXIgdG8gdXNlIHN0cnVjdCBhcyBhcmd1bWVudCBpbnN0ZWFkIG9mIGluZGl2aWR1YWwgdmFy aWFibGVzIGJlY2F1c2UgaXQgaXMNCj4gPj4+Pj4+PiBlYXNpZXIgdG8gZXh0ZW5kIHRoZSBzdHJ1 Y3QgbGF0ZXIgaWYgbmVlZGVkLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gK3sNCj4gPj4+Pj4+ Pj4+PiArCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2Ow0KPiA+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+ Pj4+PiArCVJURV9FVEhfVkFMSURfUE9SVElEX09SX0VSUl9SRVQocG9ydF9pZCwgLUVOT0RFVik7 DQo+ID4+Pj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+Pj4+ICsJaWYgKGJ1ZiA9PSBOVUxMKQ0KPiA+Pj4+ Pj4+Pj4+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+Pj4+Pj4+Pj4+ICsNCj4gPj4+Pj4+Pj4+PiAr CWRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ID4+Pj4+Pj4+Pj4gKw0KPiA+Pj4+ Pj4+Pj4+ICsJUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRldi0+ZGV2X29wcy0+dHJhY2VfaW5m b19nZXQsIC1FTk9UU1VQKTsNCj4gPj4+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+Pj4gKwlyZXR1cm4g ZGV2LT5kZXZfb3BzLT50cmFjZV9pbmZvX2dldChkZXYsIHF1ZXVlX2lkLCB0eXBlLCBidWYsIHN6 KTsNCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBXaGF0IGlmIHF1ZXVlaWQgaXMgb3V0IG9mIGJv dW5kcz8NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBUaGUgYmlnZ2VyIHByb2JsZW0gaXMgdGhh dCB0aGlzIGluZm9ybWF0aW9uIGlzIGxpa2UgYSBsb2cgbWVzc2FnZQ0KPiA+Pj4+Pj4+Pj4gYW5k IHVuc3RydWN0dXJlZCwgd2hpY2ggbWFrZXMgaXQgZGV2aWNlIHNwZWNpZmljIGFuZCB1c2VsZXNz IGZvciBhdXRvbWF0aW9uLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBJTUhPIC0gdGhpcyBpcyBt dWNoIGJldHRlciBpbXBsZW1lbnRlZCBhcyBhIGNhcGFiaWxpdHkgYml0ZmllbGQsIHRoYXQNCj4g Pj4+Pj4+Pj4gY2FuIGJlIHF1ZXJpZWQuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiArMSB0byByZXR1 cm4gdGhlIGRhdGFwYXRoIGNhcGFiaWxpdHkgYXMgYml0ZmllbGQuDQo+ID4+Pj4+Pj4NCj4gPj4+ Pj4+PiBBbHNvICsxIHRvIGhhdmUgYSBuZXcgQVBJLA0KPiA+Pj4+Pj4+IC0gSSBhbSBub3Qgc3Vy ZSBhYm91dCB0aGUgQVBJIG5hbWUsICdydGVfZXRoX3RyYWNlX2luZm9fZ2V0KCknLCBjYW4gd2Ug ZmluZA0KPiA+Pj4+Pj4+IHNvbWV0aGluZyBiZXR0ZXIgaW5zdGVhZCBvZiAndHJhY2UnIHRoZXJl Lg0KPiA+Pj4+Pj4+IC0gSSB0aGluayB3ZSBzaG91bGQgbGltaXQgdGhpcyBBUEkgb25seSB0byBn ZXQgY3VycmVudCBkYXRhcGF0aCBjb25maWd1cmF0aW9uLA0KPiA+Pj4+Pj4+IGZvciBjbGFyaXR5 IG9mIHRoZSBBUEkgZG9uJ3QgcmV0dXJuIGNhcGFiaWxpdHkgb3Igbm90IGRhdGFwYXRoIHJlbGF0 ZWQgY29uZmlnLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQWxzbyB0aGlzIGluZm9ybWF0aW9uIG5v dCBhbHdheXMgc3VwcG9ydGVkIGluIHF1ZXVlIGxldmVsLCB3aGF0IGRvIHlvdSB0aGluaw0KPiA+ Pj4+Pj4+IGhhdmluZyBhYmlsaXR5IHRvIGdldCB0aGlzIGluZm9ybWF0aW9uIGluIHBvcnQgbGV2 ZWwsDQo+ID4+Pj4+Pj4gbGlrZSB0aGlzIEFQSSBjYW4gcmV0dXJuIGEgc3RydWN0LCB3aGljaCBt YXkgaGF2ZSBhIGZpZWxkIHRoYXQgc2F5cyBpZiB0aGUNCj4gPj4+Pj4+PiBvdXRwdXQgaXMgZm9y IHF1ZXVlIG9yIHBvcnQsIG9yIHRoaXMgY2FuIGJlIGFub3RoZXIgYml0ZmllbGQsIHdoYXQgZG8g eW91IHRoaW5rPw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gI2RlZmluZSBSWF9TQ0FM QVIJKDFVTEwgPCAwKQ0KPiA+Pj4+Pj4gI2RlZmluZSBSWF9WRUNUT1JfQVZYMiAgLi4uDQo+ID4+ Pj4+DQo+ID4+Pj4+IFdoYXQgYWJvdXQgaGF2aW5nIFJYX1ZFQ1RPUiB2YWx1ZSwgbGF0ZXIgYW5v dGhlciBiaXQgZ3JvdXAgZm9yIHRoZSBkZXRhaWxzIG9mDQo+ID4+Pj4+IHRoZSB2ZWN0b3JpemF0 aW9uOg0KPiA+Pj4+PiBTU0UNCj4gPj4+Pj4gQVZYMg0KPiA+Pj4+PiBBVlg1MTINCj4gPj4+Pj4g TkVPTg0KPiA+Pj4+PiBBTFRJVkVDDQo+ID4+Pj4+DQo+ID4+Pj4+IFNpbmNlIGFib3ZlIG9wdGlv bnMgY2FuIGV4aXN0IHRvZ2V0aGVyLCB3aGF0IGFib3V0IHVzaW5nIHZhbHVlcyBmb3IgdGhlbSBp bnN0ZWFkDQo+ID4+Pj4+IG9mIGJpdGZpZWxkcz8gUmVzZXJ2aW5nIDQgYml0cywgMl40ID0gMTYs IGNhbiBiZSBlbm91Z2ggSSB0aGluayBmb3IgbG9uZyB0ZXJtLg0KPiA+Pj4+Pg0KPiA+Pj4+IFJh dGhlciB0aGFuIGhhdmluZyBuYW1lZCB2ZWN0b3IgdHlwZXMsIHdlIGp1c3QgbmVlZCB0byB3b3Jy eSBhYm91dCB0aGUgb25lcw0KPiA+Pj4+IGZvciB0aGUgY3VycmVudCBhcmNoaXRlY3R1cmUuIFRo ZXJlZm9yZSBJJ2Qgc3VnZ2VzdCBqdXN0IHVzaW5nIHZlY3Rvcg0KPiA+Pj4+IHdpZHRocywgb25l IGJpdCBlYWNoIGZvciAxNkIsIDMyQiBhbmQgNjRCIHZlY3RvciBzdXBwb3J0LiBGb3Igc3VwcG9y dGluZw0KPiA+Pj4+IG11bHRpcGxlIHZhbHVlcywgMTYgY29tYmluYXRpb25zIGlzIG5vdCBlbm91 Z2ggZm9yIGFsbCB0aGUgcG9zc2liaWxpdGllcy4NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IHZlY3Rv ciB3aWR0aCBjYW4gYmUgYW4gb3B0aW9uIHRvbywgbm8gb2JqZWN0aW9uIHRoZXJlLiBCdXQgdGhp cyBpcyBvbmx5IGZvcg0KPiA+Pj4gY3VycmVudCBjb25maWd1cmF0aW9uLCBzbyBpdCBjYW4gYmUg YSBjb21iaW5hdGlvbiwgd2UgaGF2ZSBub3cgNSB0eXBlcyBhbmQNCj4gPj4+IGFsbG9jYXRpbmcg c3BhY2UgZm9yIDE2Lg0KPiA+Pj4NCj4gPj4NCj4gPj4gY29ycmVjdGlvbjogaXQgY2FuICpub3Qq IGJlIGEgY29tYmluYXRpb24NCj4gPg0KPiA+IEkgdGhpbmsgd2UgY2FuIG1lcmdlIHRoZSBSWF9W RUNUT1IgYW5kIFRYX1ZFQ1RPUiB0b2dldGhlciwgdXNlIDYgYml0cyBmb3IgdmVjdG9yDQo+ID4g bW9kZSBkZXRhaWwuIEFuZCBmb3IgdmVjdG9yIHdpZHRoLCB0aGUgU1NFLCBORU9OIG5hbWUgc2hv dWxkIGluZGljYXRlcyBpdCA/DQo+ID4NCj4gPiBJIHJlbmFtZWQgdGhlIGRlZmluaXRpb25zIHRv IHRyeSB0byBtYWtlIHRoaW5ncyBjbGVhci4NCj4gPg0KPiA+IGVudW0gcnRlX2V0aF9idXJzdF9t b2RlX29wdGlvbiB7DQo+ID4gCUJVUlNUX1NDQUxBUiA9ICgxIDw8IDApLA0KPiA+IAlCVVJTVF9W RUNUT1IgPSAoMSA8PCAxKSwNCj4gPg0KPiA+IAlCVVJTVF9WRUNUT1JfTU9ERV9NQVNLID0gKDB4 M0YgPDwgMiksDQo+ID4gCUJVUlNUX0FMVElWRUMgICAgICAgICAgPSAoMSA8PCAyKSwNCj4gPiAJ QlVSU1RfTkVPTiAgICAgICAgICAgICA9ICgyIDw8IDIpLA0KPiA+IAlCVVJTVF9TU0UgICAgICAg ICAgICAgID0gKDMgPDwgMiksDQo+ID4gCUJVUlNUX0FWWDIgICAgICAgICAgICAgPSAoNCA8PCAy KSwNCj4gPiAJQlVSU1RfQVZYNTEyICAgICAgICAgICA9ICg1IDw8IDIpLA0KPiANCj4gRG8gd2Ug bmVlZCB0byBoYXZlIGJpdGZpZWxkcyBmb3IgdGhpcywgSSB3YXMgc3VnZ2VzdGluZyByZXNlcnZl IDQgYml0cywgYml0IDItNQ0KPiAoaW5jbHVzaXZlKSBhbmQgdXNlIHRoZWlyIHZhbHVlOg0KPiAN Cj4gQlVSU1RfVkVDVE9SX01PREVfSURYICA9IDINCj4gQlVSU1RfVkVDVE9SX01PREVfU0laRSA9 IDQNCj4gQlVSU1RfVkVDVE9SX01PREVfTUFTSyA9DQo+IAkoKDEgPDwgQlVSU1RfVkVDVE9SX01P REVfU0laRSkgLSAxKSA8PCBCVVJTVF9WRUNUT1JfTU9ERV9JRFgNCj4gDQo+IHZlY3Rvcl9tb2Rl ID0gKG9wdGlvbnMgJiBCVVJTVF9WRUNUT1JfTU9ERV9NQVNLKSA+PiBCVVJTVF9WRUNUT1JfTU9E RV9JRFgNCj4gDQo+IGlmICh2ZWN0b3JfbW9kZSA9PSAwKSAvLyBCVVJTVF9TU0UNCj4gaWYgKHZl Y3Rvcl9tb2RlID09IDEpIC8vIEJVUlNUX0FWWDINCj4gaWYgKHZlY3Rvcl9tb2RlID09IDIpIC8v IEJVUlNUX0FWWDUxMg0KPiBpZiAodmVjdG9yX21vZGUgPT0gMykgLy8gQlVSU1RfTkVPTg0KPiAu Li4uDQo+IA0KPiBDYW4gYW55IHZlY3RvciBtb2RlIGJlIGNvbWJpbmF0aW9uIG9mIGFib3ZlLCBp ZiBub3Qgd2h5IHVzZSBiaXRmaWVsZHM/DQo+IA0KDQpJIHVzZSBpdCBhcyB0aGlzIHRvICpzZXQq IC4uLg0KDQoJZWxzZSBpZiAocGt0X2J1cnN0ID09IGk0MGVfcmVjdl9zY2F0dGVyZWRfcGt0c192 ZWNfYXZ4MikNCgkJb3B0aW9ucyA9IEJVUlNUX1ZFQ1RPUiB8IEJVUlNUX0FWWDIgfCBCVVJTVF9T Q0FUVEVSRUQ7DQoJZWxzZSBpZiAocGt0X2J1cnN0ID09IGk0MGVfcmVjdl9wa3RzX3ZlY19hdngy KQ0KCQlvcHRpb25zID0gQlVSU1RfVkVDVE9SIHwgQlVSU1RfQVZYMjsNCgllbHNlIGlmIChwa3Rf YnVyc3QgPT0gaTQwZV9yZWN2X3NjYXR0ZXJlZF9wa3RzX3ZlYykNCgkJb3B0aW9ucyA9IEJVUlNU X1ZFQ1RPUiB8IEJVUlNUX1NTRSB8IEJVUlNUX1NDQVRURVJFRDsNCgllbHNlIGlmIChwa3RfYnVy c3QgPT0gaTQwZV9yZWN2X3BrdHNfdmVjKQ0KCQlvcHRpb25zID0gQlVSU1RfVkVDVE9SIHwgQlVS U1RfU1NFOw0KDQpUaGVuICpnZXQqIGxpa2UgdGhpcywgc2luY2Ugd2UgcmVzZXJ2ZSB0aGUgYml0 IGdyb3VwLg0KDQpzdGF0aWMgdm9pZA0KYnVyc3RfbW9kZV9vcHRpb25zX2Rpc3BsYXkodWludDY0 X3Qgb3B0aW9ucykNCnsNCgl1aW50NjRfdCB2ZWNfbW9kZSA9IG9wdGlvbnMgJiBCVVJTVF9WRUNU T1JfTU9ERV9NQVNLOw0KCXVpbnQ2NF90IG9wdDsNCg0KCW9wdGlvbnMgJj0gfkJVUlNUX1ZFQ1RP Ul9NT0RFX01BU0s7DQoNCglmb3IgKG9wdCA9IDE7IG9wdGlvbnMgIT0gMDsgb3B0IDw8PSAxLCBv cHRpb25zID4+PSAxKSB7DQoJCWlmICghKG9wdGlvbnMgJiAxKSkNCgkJCWNvbnRpbnVlOw0KDQoJ CXByaW50ZigiICVzIiwgcnRlX2V0aF9idXJzdF9tb2RlX29wdGlvbl9uYW1lKG9wdCkpOw0KDQoJ CWlmIChvcHQgPT0gQlVSU1RfVkVDVE9SKQ0KCQkJcHJpbnRmKCIoJXMpIiwNCgkJCSAgICAgICBy dGVfZXRoX2J1cnN0X21vZGVfb3B0aW9uX25hbWUodmVjX21vZGUpKTsNCgl9DQp9DQoNCj4gDQo+ ID4NCj4gPiAJQlVSU1RfU0NBVFRFUkVEID0gKDEgPDwgOCksDQo+ID4gCUJVUlNUX0JVTEtfQUxM T0MgPSAoMSA8PCA5KSwNCj4gPiAJQlVSU1RfTk9STUFMID0gKDEgPDwgMTApLA0KPiANCj4gTm90 IHN1cmUgYWJvdXQgdGhpcyBvbmUsIHdoYXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzY2Fs YXI/DQo+IA0KDQpFeHRyYWN0IGl0IGZyb20gdGhlIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBkZWJ1 ZyBtZXNzYWdlLg0KDQoJaWYgKHBrdF9idXJzdCA9PSBpNDBlX3JlY3Zfc2NhdHRlcmVkX3BrdHMp DQoJCW9wdGlvbnMgPSBCVVJTVF9TQ0FMQVIgfCBCVVJTVF9TQ0FUVEVSRUQ7DQoJZWxzZSBpZiAo cGt0X2J1cnN0ID09IGk0MGVfcmVjdl9wa3RzX2J1bGtfYWxsb2MpDQoJCW9wdGlvbnMgPSBCVVJT VF9TQ0FMQVIgfCBCVVJTVF9CVUxLX0FMTE9DOw0KCWVsc2UgaWYgKHBrdF9idXJzdCA9PSBpNDBl X3JlY3ZfcGt0cykNCgkJb3B0aW9ucyA9IEJVUlNUX1NDQUxBUiB8IEJVUlNUX05PUk1BTDsNCg0K PiA+IAlCVVJTVF9TSU1QTEUgPSAoMSA8PCAxMSksDQo+ID4gfTsNCj4gPg0KPiA+IC8qKg0KPiA+ ICAqIEV0aGVybmV0IGRldmljZSBSWC9UWCBxdWV1ZSBwYWNrZXQgYnVyc3QgbW9kZSBpbmZvcm1h dGlvbiBzdHJ1Y3R1cmUuDQo+ID4gICogVXNlZCB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91 dCBwYWNrZXQgYnVyc3QgbW9kZSBzZXR0aW5nLg0KPiA+ICAqLw0KPiA+IHN0cnVjdCBydGVfZXRo X2J1cnN0X21vZGUgew0KPiA+IAl1aW50MzJfdCBwZXJfcXVldWVfc3VwcG9ydDoxOyAvKio8IFN1 cHBvcnQgdG8gc2V0IHBlciBxdWV1ZSBidXJzdCAqLw0KPiA+DQo+ID4gCXVpbnQ2NF90IG9wdGlv bnM7DQo+ID4gfTsNCj4gPg0KPiA+IEFuZCB0aHJlZSBBUElzOg0KPiA+DQo+ID4gMS4NCj4gPiBf X3J0ZV9leHBlcmltZW50YWwNCj4gPiBpbnQgcnRlX2V0aF9yeF9idXJzdF9tb2RlX2dldCh1aW50 MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPiAJc3RydWN0IHJ0ZV9ldGhfYnVy c3RfbW9kZSAqbW9kZSk7DQo+ID4NCj4gPg0KPiA+IDIuDQo+ID4gX19ydGVfZXhwZXJpbWVudGFs DQo+ID4gaW50IHJ0ZV9ldGhfdHhfYnVyc3RfbW9kZV9nZXQodWludDE2X3QgcG9ydF9pZCwgdWlu dDE2X3QgcXVldWVfaWQsDQo+ID4gCXN0cnVjdCBydGVfZXRoX2J1cnN0X21vZGUgKm1vZGUpOw0K PiA+DQo+ID4gMy4NCj4gPiBfX3J0ZV9leHBlcmltZW50YWwNCj4gPiBjb25zdCBjaGFyICoNCj4g PiBydGVfZXRoX2J1cnN0X21vZGVfb3B0aW9uX25hbWUodWludDY0X3Qgb3B0aW9uKTsNCj4gDQo+ IFdoYXQgYWJvdXQgJ3J0ZV9ldGhfYnVyc3RfbW9kZV9uYW1lKCknID8NCj4gDQoNClRoZSAibW9k ZSIgc2NvcGUgaXMgYmlnZ2VyIHRoYW4gIm1vZGVfb3B0aW9uIiwgc28gSSBkZWZpbmVkIGl0IGFz ICJfbW9kZV9vcHRpb25fbmFtZSgpIi4NCg0Kc3RydWN0IHJ0ZV9ldGhfYnVyc3RfbW9kZSB7DQoJ dWludDMyX3QgcGVyX3F1ZXVlX3N1cHBvcnQ6MTsgLyoqPCBTdXBwb3J0IHRvIHNldCBwZXIgcXVl dWUgYnVyc3QgKi8NCg0KCXVpbnQ2NF90IG9wdGlvbnM7DQp9Ow0KDQo+ID4NCj4gPg0KPiA+IFBN RCB0d28gb3BzOg0KPiA+DQo+ID4gdHlwZWRlZiB2b2lkICgqZXRoX2J1cnN0X21vZGVfZ2V0X3Qp KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+IAl1aW50MTZfdCBxdWV1ZV9pZCwgc3RydWN0 IHJ0ZV9ldGhfYnVyc3RfbW9kZSAqbW9kZSk7DQo+ID4NCj4gPiBzdHJ1Y3QgZXRoX2Rldl9vcHMg ew0KPiA+IAkuLi4NCj4gPiAJZXRoX2J1cnN0X21vZGVfZ2V0X3QgICAgICAgcnhfYnVyc3RfbW9k ZV9nZXQ7IC8qKjwgR2V0IFJYIGJ1cnN0IG1vZGUgKi8NCj4gPiAJZXRoX2J1cnN0X21vZGVfZ2V0 X3QgICAgICAgdHhfYnVyc3RfbW9kZV9nZXQ7IC8qKjwgR2V0IFRYIGJ1cnN0IG1vZGUgKi8NCj4g PiAJLi4uDQo+ID4gfTsNCj4gPg0KDQo=