From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from e23smtp01.au.ibm.com (e23smtp01.au.ibm.com [202.81.31.143]) by dpdk.org (Postfix) with ESMTP id E710C5902 for ; Mon, 29 Sep 2014 08:35:59 +0200 (CEST) Received: from /spool/local by e23smtp01.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 29 Sep 2014 16:42:32 +1000 Received: from d23dlp02.au.ibm.com (202.81.31.213) by e23smtp01.au.ibm.com (202.81.31.207) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 29 Sep 2014 16:42:30 +1000 Received: from d23relay07.au.ibm.com (d23relay07.au.ibm.com [9.190.26.37]) by d23dlp02.au.ibm.com (Postfix) with ESMTP id 031D72BB0023 for ; Mon, 29 Sep 2014 16:42:30 +1000 (EST) Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) by d23relay07.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id s8T6i4MR35192968 for ; Mon, 29 Sep 2014 16:44:04 +1000 Received: from d23av04.au.ibm.com (localhost [127.0.0.1]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s8T6gTsS005406 for ; Mon, 29 Sep 2014 16:42:29 +1000 Received: from d23ml028.cn.ibm.com (d23ml028.cn.ibm.com [9.119.32.184]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s8T6gSCR005391; Mon, 29 Sep 2014 16:42:28 +1000 In-Reply-To: References: <1411724186-8036-1-git-send-email-bjzhuc@cn.ibm.com> <1411724186-8036-3-git-send-email-bjzhuc@cn.ibm.com> To: "Hemant@freescale.com" MIME-Version: 1.0 X-KeepSent: 69C0A843:C9D4CBDA-48257D62:0024BDD4; type=4; name=$KeepSent X-Mailer: IBM Notes Release 9.0.1SHF211 December 19, 2013 Message-ID: From: Chao CH Zhu Date: Mon, 29 Sep 2014 14:41:24 +0800 X-MIMETrack: Serialize by Router on d23ml028/23/M/IBM(Release 8.5.3FP6HF485 | May 7, 2014) at 09/29/2014 14:41:26, Serialize complete at 09/29/2014 14:41:26 X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14092906-1618-0000-0000-000000F622CC Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH 02/12] Add atomic operations for IBM Power architecture X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2014 06:36:13 -0000 SGksIEhlbWFudCANCg0KQWN0dWFsbHksIEkgc3VibWl0dGVkIGFub3RoZXIgc2V0IG9mIHBhdGNo ZXMgdG8gc3BsaXQgdGhlIGFyY2hpdGVjdHVyZSANCnNwZWNpZmljIG9wZXJhdGlvbnMgd2hpY2gg aW5jbHVkZXMgdGhlIHBhdGNoIHRvIA0KbGlicnRlX2VhbFxjb21tb25caW5jbHVkZVxydGVfYXRv bWljLmguIFBsZWFzZSByZWZlciB0byB0aGUgcHJldmlvdXMgDQplbWFpbC4gICANCg0KQmVzdCBS ZWdhcmRzIQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpDaGFvIFpodSAo16OzrCkN ClJlc2VhcmNoIFN0YWZmIE1lbWJlcg0KQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUgYW5kIFRlY2hub2xv Z3kgR3JvdXANCklCTSBDaGluYSBSZXNlYXJjaCBMYWINCkJ1aWxkaW5nIDE5IFpob25nZ3VhbmN1 biBTb2Z0d2FyZSBQYXJrDQo4IERvbmdiZWl3YW5nIFdlc3QgUm9hZCwgSGFpZGlhbiBEaXN0cmlj dCwNCkJlaWppbmcsIFBSQy4gMTAwMTkzDQpUZWw6ICs4Ni0xMC01ODc0ODcxMQ0KRW1haWw6IGJq emh1Y0Bjbi5pYm0uY29tDQoNCg0KDQoNCkZyb206ICAgIkhlbWFudEBmcmVlc2NhbGUuY29tIiA8 SGVtYW50QGZyZWVzY2FsZS5jb20+DQpUbzogICAgIENoYW8gQ0ggWmh1L0NoaW5hL0lCTUBJQk1D TiwgImRldkBkcGRrLm9yZyIgPGRldkBkcGRrLm9yZz4NCkRhdGU6ICAgMjAxNC8wOS8yOSAxNDox NQ0KU3ViamVjdDogICAgICAgIFJFOiBbZHBkay1kZXZdIFtQQVRDSCAwMi8xMl0gQWRkIGF0b21p YyBvcGVyYXRpb25zIGZvciBJQk0gDQpQb3dlciAgIGFyY2hpdGVjdHVyZQ0KDQoNCg0KSGkgQ2hh bywNCg0KVGhpcyBQYXRjaCBzZWVtcyB0byBiZSBpbmNvbXBsZXRlLiBZb3UgbWF5IGFsc28gbmVl ZCB0byBwYXRjaCB0aGUgDQpsaWJydGVfZWFsXGNvbW1vblxpbmNsdWRlXHJ0ZV9hdG9taWMuaCAN CmUuZy4NCiNpZiAhKGRlZmluZWQgUlRFX0FSQ0hfWDg2XzY0KSB8fCAhKGRlZmluZWQgUlRFX0FS Q0hfSTY4NikNCiNpbmNsdWRlIDxhcmNoL3J0ZV9hdG9taWMuaD4NCiNlbHNlIC8qIGlmIEludGVs Ki8NCg0KT3RoZXJ3aXNlIHlvdSBzaGFsbCBiZSBnZXR0aW5nIGNvbXBpbGF0aW9uIGVycm9ycyBm b3IgIl9tbV9tZmVuY2UiDQoNClNpbWlsYXIgaXMgdHJ1ZSBmb3Igb3RoZXIgY29tbW9uIGhlYWRl ciBmaWxlcyBhcyB3ZWxsLg0KDQoNClJlZ2FyZHMsDQpIZW1hbnQNCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10g T24gQmVoYWxmIE9mIENoYW8gWmh1DQo+IFNlbnQ6IDI2L1NlcC8yMDE0IDM6MDYgUE0NCj4gVG86 IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBbZHBkay1kZXZdIFtQQVRDSCAwMi8xMl0gQWRkIGF0 b21pYyBvcGVyYXRpb25zIGZvciBJQk0gUG93ZXINCj4gYXJjaGl0ZWN0dXJlDQo+IA0KPiBUaGUg YXRvbWljIG9wZXJhdGlvbnMgaW1wbGVtZW50ZWQgd2l0aCBhc3NlbWJseSBjb2RlIGluIERQREsg b25seSANCnN1cHBvcnQNCj4geDg2LiBUaGlzIHBhdGNoIGFkZCBhcmNoaXRlY3R1cmUgc3BlY2lm aWMgYXRvbWljIG9wZXJhdGlvbnMgZm9yIElCTSANClBvd2VyDQo+IGFyY2hpdGVjdHVyZS4NCj4g DQo+IFNpZ25lZC1vZmYtYnk6IENoYW8gWmh1IDxianpodWNAY24uaWJtLmNvbT4NCj4gLS0tDQo+ ICAuLi4vY29tbW9uL2luY2x1ZGUvcG93ZXJwYy9hcmNoL3J0ZV9hdG9taWMuaCAgICAgICB8ICAz ODcNCj4gKysrKysrKysrKysrKysrKysrKysNCj4gIC4uLi9jb21tb24vaW5jbHVkZS9wb3dlcnBj L2FyY2gvcnRlX2F0b21pY19hcmNoLmggIHwgIDMxOA0KPiArKysrKysrKysrKysrKysrDQo+ICAy IGZpbGVzIGNoYW5nZWQsIDcwNSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKSAgY3JlYXRl IG1vZGUgMTAwNjQ0DQo+IGxpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL3Bvd2VycGMvYXJj aC9ydGVfYXRvbWljLmgNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiBsaWIvbGlicnRlX2VhbC9j b21tb24vaW5jbHVkZS9wb3dlcnBjL2FyY2gvcnRlX2F0b21pY19hcmNoLmgNCj4gDQo+IGRpZmYg LS1naXQgYS9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9wb3dlcnBjL2FyY2gvcnRlX2F0 b21pYy5oDQo+IGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvcG93ZXJwYy9hcmNoL3J0 ZV9hdG9taWMuaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi43ZjUy MTRlDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1 ZGUvcG93ZXJwYy9hcmNoL3J0ZV9hdG9taWMuaA0KPiBAQCAtMCwwICsxLDM4NyBAQA0KPiArLyoN Cj4gKyAqICAgQlNEIExJQ0VOU0UNCj4gKyAqDQo+ICsgKiAgIENvcHlyaWdodCAoQykgSUJNIENv cnBvcmF0aW9uIDIwMTQuDQo+ICsgKg0KPiArICogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCj4gKyAqICAgbW9kaWZp Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zDQo+ICsgKiAgIGFyZSBtZXQ6DQo+ICsgKg0KPiArICogICAgICogUmVkaXN0cmlidXRpb25z IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCj4gKyAqICAg ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz Y2xhaW1lci4NCj4gKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0 IHJlcHJvZHVjZSB0aGUgYWJvdmUgDQpjb3B5cmlnaHQNCj4gKyAqICAgICAgIG5vdGljZSwgdGhp cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciANCmluDQo+ ICsgKiAgICAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp ZGVkIHdpdGggdGhlDQo+ICsgKiAgICAgICBkaXN0cmlidXRpb24uDQo+ICsgKiAgICAgKiBOZWl0 aGVyIHRoZSBuYW1lIG9mIElCTSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cw0KPiAr ICogICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw cm9kdWN0cyANCmRlcml2ZWQNCj4gKyAqICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0 IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCj4gKyAqDQo+ICsgKiAgIFRISVMg U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORA0KPiBDT05U UklCVVRPUlMNCj4gKyAqICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS QU5USUVTLCBJTkNMVURJTkcsIEJVVA0KPiBOT1QNCj4gKyAqICAgTElNSVRFRCBUTywgVEhFIElN UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EDQo+IEZJVE5FU1MgRk9SDQo+ ICsgKiAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT SEFMTCBUSEUNCj4gQ09QWVJJR0hUDQo+ICsgKiAgIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULA0KPiBJTkNJREVOVEFMLA0KPiArICogICBT UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC VVQNCj4gTk9UDQo+ICsgKiAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg R09PRFMgT1IgU0VSVklDRVM7IExPU1MNCj4gT0YgVVNFLA0KPiArICogICBEQVRBLCBPUiBQUk9G SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORA0KPiBPTiBB TlkNCj4gKyAqICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS SUNUIExJQUJJTElUWSwgT1IgDQpUT1JUDQo+ICsgKiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBP UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YNCj4gVEhFIFVTRQ0KPiArICog ICBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G IFNVQ0gNCj4gREFNQUdFLg0KPiArKi8NCj4gKw0KPiArLyoNCj4gKyAqIEluc3BpcmVkIGZyb20g RnJlZUJTRCBzcmMvc3lzL3Bvd2VycGMvaW5jbHVkZS9hdG9taWMuaA0KPiArICogQ29weXJpZ2h0 IChjKSAyMDA4IE1hcmNlbCBNb29sZW5hYXINCj4gKyAqIENvcHlyaWdodCAoYykgMjAwMSBCZW5u byBSaWNlDQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMDEgRGF2aWQgRS4gTydCcmllbg0KPiArICog Q29weXJpZ2h0IChjKSAxOTk4IERvdWcgUmFic29uDQo+ICsgKiBBbGwgcmlnaHRzIHJlc2VydmVk Lg0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgX1JURV9BVE9NSUNfSF8NCj4gKyNlcnJvciAiZG9u J3QgaW5jbHVkZSB0aGlzIGZpbGUgZGlyZWN0bHksIHBsZWFzZSBpbmNsdWRlIGdlbmVyaWMgDQo8 cnRlX2F0b21pYy5oPiINCj4gKyNlbmRpZg0KPiArDQo+ICsjaWZuZGVmIF9SVEVfUE9XRVJQQ182 NF9BVE9NSUNfSF8NCj4gKyNkZWZpbmUgX1JURV9QT1dFUlBDXzY0X0FUT01JQ19IXw0KPiArDQo+ ICsvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gNjQgYml0IGF0b21pYyBvcGVyYXRpb25zDQo+ ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCj4gKw0KPiArLyoqDQo+ICsgKiBBbiBhdG9t aWMgY29tcGFyZSBhbmQgc2V0IGZ1bmN0aW9uIHVzZWQgYnkgdGhlIG11dGV4IGZ1bmN0aW9ucy4N Cj4gKyAqIChhdG9taWMpIGVxdWl2YWxlbnQgdG86DQo+ICsgKiAgIGlmICgqZHN0ID09IGV4cCkN Cj4gKyAqICAgICAqZHN0ID0gc3JjIChhbGwgNjQtYml0IHdvcmRzKQ0KPiArICoNCj4gKyAqIEBw YXJhbSBkc3QNCj4gKyAqICAgVGhlIGRlc3RpbmF0aW9uIGludG8gd2hpY2ggdGhlIHZhbHVlIHdp bGwgYmUgd3JpdHRlbi4NCj4gKyAqIEBwYXJhbSBleHANCj4gKyAqICAgVGhlIGV4cGVjdGVkIHZh bHVlLg0KPiArICogQHBhcmFtIHNyYw0KPiArICogICBUaGUgbmV3IHZhbHVlLg0KPiArICogQHJl dHVybg0KPiArICogICBOb24temVybyBvbiBzdWNjZXNzOyAwIG9uIGZhaWx1cmUuDQo+ICsgKi8N Cj4gK3N0YXRpYyBpbmxpbmUgaW50DQo+ICtydGVfYXRvbWljNjRfY21wc2V0KHZvbGF0aWxlIHVp bnQ2NF90ICpkc3QsIHVpbnQ2NF90IGV4cCwgdWludDY0X3Qgc3JjKQ0KPiArew0KPiArICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgcmV0ID0gMDsNCj4gKw0KPiArICAgICAgICAgICAgICBhc20g dm9sYXRpbGUgKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJcdGx3c3luY1xuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIxOiBsZGFyeCAlW3JldF0sIDAsIA0KJVtkc3RdXG4iDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNtcGxkICVbZXhwXSwgJVtyZXRd XG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJu ZSAyZlxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJzdGRjeC4gJVtzcmNdLCAwLCANCiVbZHN0XVxuIg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJibmUtIDFiXG4iDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpICVbcmV0XSwgMVxuIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiIDNmXG4iDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjI6XG4iDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZGN4LiAlW3JldF0s IDAsIA0KJVtkc3RdXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImxpICVbcmV0XSwgMFxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIzOlxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJpc3luY1xuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogW3JldF0gIj0mciIgKHJldCksICI9bSIgDQooKmRzdCkN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtkc3Rd ICJyIiAoZHN0KSwgW2V4cF0gDQoiciIgKGV4cCksIFtzcmNdICJyIiAoc3JjKSwgIm0iICgqZHN0 KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogImNj IiwgIm1lbW9yeSIpOw0KPiArICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ ICsvKioNCj4gKyAqIFRoZSBhdG9taWMgY291bnRlciBzdHJ1Y3R1cmUuDQo+ICsgKi8NCj4gK3R5 cGVkZWYgc3RydWN0IHsNCj4gKyAgICAgICAgICAgICAgdm9sYXRpbGUgaW50NjRfdCBjbnQ7ICAv Kio8IEludGVybmFsIGNvdW50ZXIgdmFsdWUuICovIH0NCj4gK3J0ZV9hdG9taWM2NF90Ow0KPiAr DQo+ICsvKioNCj4gKyAqIFN0YXRpYyBpbml0aWFsaXplciBmb3IgYW4gYXRvbWljIGNvdW50ZXIu DQo+ICsgKi8NCj4gKyNkZWZpbmUgUlRFX0FUT01JQzY0X0lOSVQodmFsKSB7ICh2YWwpIH0NCj4g Kw0KPiArLyoqDQo+ICsgKiBJbml0aWFsaXplIHRoZSBhdG9taWMgY291bnRlci4NCj4gKyAqDQo+ ICsgKiBAcGFyYW0gdg0KPiArICogICBBIHBvaW50ZXIgdG8gdGhlIGF0b21pYyBjb3VudGVyLg0K PiArICovDQo+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4gK3J0ZV9hdG9taWM2NF9pbml0KHJ0ZV9h dG9taWM2NF90ICp2KQ0KPiArew0KPiArICAgICAgICAgICAgICB2LT5jbnQgPSAwOw0KPiArfQ0K PiArDQo+ICsvKioNCj4gKyAqIEF0b21pY2FsbHkgcmVhZCBhIDY0LWJpdCBjb3VudGVyLg0KPiAr ICoNCj4gKyAqIEBwYXJhbSB2DQo+ICsgKiAgIEEgcG9pbnRlciB0byB0aGUgYXRvbWljIGNvdW50 ZXIuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgIFRoZSB2YWx1ZSBvZiB0aGUgY291bnRlci4NCj4g KyAqLw0KPiArc3RhdGljIGlubGluZSBpbnQ2NF90DQo+ICtydGVfYXRvbWljNjRfcmVhZChydGVf YXRvbWljNjRfdCAqdikNCj4gK3sNCj4gKyAgICAgICAgICAgICAgbG9uZyByZXQ7DQo+ICsNCj4g KyAgICAgICAgICAgICAgYXNtIHZvbGF0aWxlKCJsZCVVMSVYMSAlW3JldF0sJVtjbnRdIiA6IFty ZXRdICI9ciIocmV0KSA6IA0KW2NudF0NCj4gKyJtIih2LT5jbnQpKTsNCj4gKw0KPiArICAgICAg ICAgICAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIEF0b21pY2FsbHkg c2V0IGEgNjQtYml0IGNvdW50ZXIuDQo+ICsgKg0KPiArICogQHBhcmFtIHYNCj4gKyAqICAgQSBw b2ludGVyIHRvIHRoZSBhdG9taWMgY291bnRlci4NCj4gKyAqIEBwYXJhbSBuZXdfdmFsdWUNCj4g KyAqICAgVGhlIG5ldyB2YWx1ZSBvZiB0aGUgY291bnRlci4NCj4gKyAqLw0KPiArc3RhdGljIGlu bGluZSB2b2lkDQo+ICtydGVfYXRvbWljNjRfc2V0KHJ0ZV9hdG9taWM2NF90ICp2LCBpbnQ2NF90 IG5ld192YWx1ZSkgew0KPiArICAgICAgICAgICAgICBhc20gdm9sYXRpbGUoInN0ZCVVMCVYMCAl W25ld192YWx1ZV0sJVtjbnRdIiA6IFtjbnRdIA0KIj1tIih2LT5jbnQpIDoNCj4gK1tuZXdfdmFs dWVdICJyIihuZXdfdmFsdWUpKTsgfQ0KPiArDQo+ICsvKioNCj4gKyAqIEF0b21pY2FsbHkgYWRk IGEgNjQtYml0IHZhbHVlIHRvIGEgY291bnRlci4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gdg0KPiAr ICogICBBIHBvaW50ZXIgdG8gdGhlIGF0b21pYyBjb3VudGVyLg0KPiArICogQHBhcmFtIGluYw0K PiArICogICBUaGUgdmFsdWUgdG8gYmUgYWRkZWQgdG8gdGhlIGNvdW50ZXIuDQo+ICsgKi8NCj4g K3N0YXRpYyBpbmxpbmUgdm9pZA0KPiArcnRlX2F0b21pYzY0X2FkZChydGVfYXRvbWljNjRfdCAq diwgaW50NjRfdCBpbmMpIHsNCj4gKyAgICAgICAgICAgICAgbG9uZyB0Ow0KPiArDQo+ICsgICAg ICAgICAgICAgIGFzbSB2b2xhdGlsZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiMTogbGRhcnggDQolW3RdLDAsJVtjbnRdXG4iDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFkZCAlW3RdLCVbaW5jXSwl W3RdXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InN0ZGN4LiAlW3RdLDAsJVtjbnRdXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImJuZS0gMWJcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6IFt0XSAiPSZyIiAodCksICI9bSIgDQoodi0+Y250KQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW2NudF0g InIiICgmdi0+Y250KSwgDQpbaW5jXSAiciIgKGluYyksICJtIiAodi0+Y250KQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogImNjIiwgIm1lbW9yeSIp Ow0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIEF0b21pY2FsbHkgc3VidHJhY3QgYSA2NC1iaXQg dmFsdWUgZnJvbSBhIGNvdW50ZXIuDQo+ICsgKg0KPiArICogQHBhcmFtIHYNCj4gKyAqICAgQSBw b2ludGVyIHRvIHRoZSBhdG9taWMgY291bnRlci4NCj4gKyAqIEBwYXJhbSBkZWMNCj4gKyAqICAg VGhlIHZhbHVlIHRvIGJlIHN1YnRyYWN0ZWQgZnJvbSB0aGUgY291bnRlci4NCj4gKyAqLw0KPiAr c3RhdGljIGlubGluZSB2b2lkDQo+ICtydGVfYXRvbWljNjRfc3ViKHJ0ZV9hdG9taWM2NF90ICp2 LCBpbnQ2NF90IGRlYykgew0KPiArICAgICAgICAgICAgICBsb25nIHQ7DQo+ICsNCj4gKyAgICAg ICAgICAgICAgYXNtIHZvbGF0aWxlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIxOiBsZGFyeCANCiVbdF0sMCwlW2NudF1cbiINCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3ViZiAlW3RdLCVbZGVjXSwl W3RdXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InN0ZGN4LiAlW3RdLDAsJVtjbnRdXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImJuZS0gMWJcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6IFt0XSAiPSZyIiAodCksICIrbSIgDQoodi0+Y250KQ0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW2NudF0g InIiICgmdi0+Y250KSwgDQpbZGVjXSAiciIgKGRlYyksICJtIiAodi0+Y250KQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogImNjIiwgIm1lbW9yeSIp Ow0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIEF0b21pY2FsbHkgaW5jcmVtZW50IGEgNjQtYml0 IGNvdW50ZXIgYnkgb25lIGFuZCB0ZXN0Lg0KPiArICoNCj4gKyAqIEBwYXJhbSB2DQo+ICsgKiAg IEEgcG9pbnRlciB0byB0aGUgYXRvbWljIGNvdW50ZXIuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxp bmUgdm9pZA0KPiArcnRlX2F0b21pYzY0X2luYyhydGVfYXRvbWljNjRfdCAqdikNCj4gK3sNCj4g KyAgICAgICAgICAgICAgbG9uZyB0Ow0KPiArDQo+ICsgICAgICAgICAgICAgIGFzbSB2b2xhdGls ZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTog bGRhcnggDQolW3RdLDAsJVtjbnRdXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImFkZGljICVbdF0sJVt0XSwxXG4iDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZGN4LiAlW3RdLDAsJVtjbnRdIFxu Ig0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJibmUt IDFiXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiBbdF0gIj0mciIgKHQpLCAiK20iIA0KKHYtPmNudCkNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtjbnRdICJyIiAoJnYtPmNudCksIA0KIm0iICh2 LT5jbnQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiAiY2MiLCAieGVyIiwgIm1lbW9yeSIpOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIEF0b21p Y2FsbHkgZGVjcmVtZW50IGEgNjQtYml0IGNvdW50ZXIgYnkgb25lIGFuZCB0ZXN0Lg0KPiArICoN Cj4gKyAqIEBwYXJhbSB2DQo+ICsgKiAgIEEgcG9pbnRlciB0byB0aGUgYXRvbWljIGNvdW50ZXIu DQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPiArcnRlX2F0b21pYzY0X2RlYyhydGVf YXRvbWljNjRfdCAqdikNCj4gK3sNCj4gKyAgICAgICAgICAgICAgbG9uZyB0Ow0KPiArDQo+ICsg ICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiMTogbGRhcnggDQolW3RdLDAsJVtjbnRdXG4iDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFkZGljICVbdF0sJVt0 XSwtMVxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJzdGRjeC4gJVt0XSwwLCVbY250XVxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJibmUtIDFiXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOiBbdF0gIj0mciIgKHQpLCAiK20iIA0KKHYtPmNudCkN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtjbnRd ICJyIiAoJnYtPmNudCksIA0KIm0iICh2LT5jbnQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOiAiY2MiLCAieGVyIiwgIm1lbW9yeSIpOw0KPiArfQ0K PiArDQo+ICsvKioNCj4gKyAqIEFkZCBhIDY0LWJpdCB2YWx1ZSB0byBhbiBhdG9taWMgY291bnRl ciBhbmQgcmV0dXJuIHRoZSByZXN1bHQuDQo+ICsgKg0KPiArICogQXRvbWljYWxseSBhZGRzIHRo ZSA2NC1iaXQgdmFsdWUgKGluYykgdG8gdGhlIGF0b21pYyBjb3VudGVyICh2KSBhbmQNCj4gKyAq IHJldHVybnMgdGhlIHZhbHVlIG9mIHYgYWZ0ZXIgdGhlIGFkZGl0aW9uLg0KPiArICoNCj4gKyAq IEBwYXJhbSB2DQo+ICsgKiAgIEEgcG9pbnRlciB0byB0aGUgYXRvbWljIGNvdW50ZXIuDQo+ICsg KiBAcGFyYW0gaW5jDQo+ICsgKiAgIFRoZSB2YWx1ZSB0byBiZSBhZGRlZCB0byB0aGUgY291bnRl ci4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgVGhlIHZhbHVlIG9mIHYgYWZ0ZXIgdGhlIGFkZGl0 aW9uLg0KPiArICovDQo+ICtzdGF0aWMgaW5saW5lIGludDY0X3QNCj4gK3J0ZV9hdG9taWM2NF9h ZGRfcmV0dXJuKHJ0ZV9hdG9taWM2NF90ICp2LCBpbnQ2NF90IGluYykgew0KPiArICAgICAgICAg ICAgICBsb25nIHJldDsNCj4gKw0KPiArICAgICAgICAgICAgICBhc20gdm9sYXRpbGUoDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuXHRsd3N5bmNc biINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTog bGRhcnggDQolW3JldF0sMCwlW2NudF1cbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiYWRkIA0KJVtyZXRdLCVbaW5jXSwlW3JldF1cbiINCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkY3guIA0KJVty ZXRdLDAsJVtjbnRdXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImJuZS0gMWJcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiaXN5bmNcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IFtyZXRdICI9JnIiIChyZXQpDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbaW5jXSAiciIgKGluYyksIFtjbnRdIA0K InIiICgmdi0+Y250KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogImNjIiwgIm1lbW9yeSIpOw0KPiArDQo+ICsgICAgICAgICAgICAgIHJldHVybiBy ZXQ7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogU3VidHJhY3QgYSA2NC1iaXQgdmFsdWUgZnJv bSBhbiBhdG9taWMgY291bnRlciBhbmQgcmV0dXJuIHRoZSANCnJlc3VsdC4NCj4gKyAqDQo+ICsg KiBBdG9taWNhbGx5IHN1YnRyYWN0cyB0aGUgNjQtYml0IHZhbHVlIChkZWMpIGZyb20gdGhlIGF0 b21pYyBjb3VudGVyDQo+ICsodikNCj4gKyAqIGFuZCByZXR1cm5zIHRoZSB2YWx1ZSBvZiB2IGFm dGVyIHRoZSBzdWJ0cmFjdGlvbi4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gdg0KPiArICogICBBIHBv aW50ZXIgdG8gdGhlIGF0b21pYyBjb3VudGVyLg0KPiArICogQHBhcmFtIGRlYw0KPiArICogICBU aGUgdmFsdWUgdG8gYmUgc3VidHJhY3RlZCBmcm9tIHRoZSBjb3VudGVyLg0KPiArICogQHJldHVy bg0KPiArICogICBUaGUgdmFsdWUgb2YgdiBhZnRlciB0aGUgc3VidHJhY3Rpb24uDQo+ICsgKi8N Cj4gK3N0YXRpYyBpbmxpbmUgaW50NjRfdA0KPiArcnRlX2F0b21pYzY0X3N1Yl9yZXR1cm4ocnRl X2F0b21pYzY0X3QgKnYsIGludDY0X3QgZGVjKSB7DQo+ICsgICAgICAgICAgICAgIGxvbmcgcmV0 Ow0KPiArDQo+ICsgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXG5cdGx3c3luY1xuIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxOiBsZGFyeCANCiVbcmV0 XSwwLCVbY250XVxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJzdWJmIA0KJVtyZXRdLCVbZGVjXSwlW3JldF1cbiINCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkY3guICVbcmV0XSwwLCVbY250XSAN ClxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJi bmUtIDFiXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImlzeW5jXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiBbcmV0XSAiPSZyIiAocmV0KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogW2RlY10gInIiIChkZWMpLCBbY250XSANCiJyIiAoJnYtPmNu dCkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJj YyIsICJtZW1vcnkiKTsNCj4gKw0KPiArICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArfQ0K PiArDQo+ICtzdGF0aWMgX19pbmxpbmVfXyBsb25nIHJ0ZV9hdG9taWM2NF9pbmNfcmV0dXJuKHJ0 ZV9hdG9taWM2NF90ICp2KSB7DQo+ICsgICAgICAgICAgICAgIGxvbmcgcmV0Ow0KPiArDQo+ICsg ICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiXG5cdGx3c3luY1xuIg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxOiBsZGFyeCANCiVbcmV0XSwwLCVbY250XVxu Ig0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRp YyAlW3JldF0sJVtyZXRdLDFcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAic3RkY3guIA0KJVtyZXRdLDAsJVtjbnRdXG4iDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJuZS0gMWJcbiINCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXN5bmNcbiINCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtyZXRdICI9JnIi IChyZXQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiBbY250XSAiciIgKCZ2LT5jbnQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiAiY2MiLCAieGVyIiwgIm1lbW9yeSIpOw0KPiArDQo+ICsgICAgICAg ICAgICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsvKioNCj4gKyAqIEF0b21pY2FsbHkgaW5jcmVt ZW50IGEgNjQtYml0IGNvdW50ZXIgYnkgb25lIGFuZCB0ZXN0Lg0KPiArICoNCj4gKyAqIEF0b21p Y2FsbHkgaW5jcmVtZW50cyB0aGUgYXRvbWljIGNvdW50ZXIgKHYpIGJ5IG9uZSBhbmQgcmV0dXJu cw0KPiArICogdHJ1ZSBpZiB0aGUgcmVzdWx0IGlzIDAsIG9yIGZhbHNlIGluIGFsbCBvdGhlciBj YXNlcy4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gdg0KPiArICogICBBIHBvaW50ZXIgdG8gdGhlIGF0 b21pYyBjb3VudGVyLg0KPiArICogQHJldHVybg0KPiArICogICBUcnVlIGlmIHRoZSByZXN1bHQg YWZ0ZXIgdGhlIGFkZGl0aW9uIGlzIDA7IGZhbHNlIG90aGVyd2lzZS4NCj4gKyAqLw0KPiArI2Rl ZmluZSBydGVfYXRvbWljNjRfaW5jX2FuZF90ZXN0KHYpIChydGVfYXRvbWljNjRfaW5jX3JldHVy bih2KSA9PSAwKQ0KPiArDQo+ICtzdGF0aWMgX19pbmxpbmVfXyBsb25nIHJ0ZV9hdG9taWM2NF9k ZWNfcmV0dXJuKHJ0ZV9hdG9taWM2NF90ICp2KSB7DQo+ICsgICAgICAgICAgICAgIGxvbmcgcmV0 Ow0KPiArDQo+ICsgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXG5cdGx3c3luY1xuIg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxOiBsZGFyeCANCiVbcmV0 XSwwLCVbY250XVxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJhZGRpYyANCiVbcmV0XSwlW3JldF0sLTFcbiINCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RkY3guIA0KJVtyZXRdLDAsJVtjbnRdXG4i DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJuZS0g MWJcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi aXN5bmNcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IFtyZXRdICI9JnIiIChyZXQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiBbY250XSAiciIgKCZ2LT5jbnQpDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiY2MiLCAieGVyIiwgIm1lbW9yeSIpOw0K PiArDQo+ICsgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsvKioNCj4gKyAqIEF0 b21pY2FsbHkgZGVjcmVtZW50IGEgNjQtYml0IGNvdW50ZXIgYnkgb25lIGFuZCB0ZXN0Lg0KPiAr ICoNCj4gKyAqIEF0b21pY2FsbHkgZGVjcmVtZW50cyB0aGUgYXRvbWljIGNvdW50ZXIgKHYpIGJ5 IG9uZSBhbmQgcmV0dXJucyB0cnVlDQo+ICtpZg0KPiArICogdGhlIHJlc3VsdCBpcyAwLCBvciBm YWxzZSBpbiBhbGwgb3RoZXIgY2FzZXMuDQo+ICsgKg0KPiArICogQHBhcmFtIHYNCj4gKyAqICAg QSBwb2ludGVyIHRvIHRoZSBhdG9taWMgY291bnRlci4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAg VHJ1ZSBpZiB0aGUgcmVzdWx0IGFmdGVyIHN1YnRyYWN0aW9uIGlzIDA7IGZhbHNlIG90aGVyd2lz ZS4NCj4gKyAqLw0KPiArI2RlZmluZSBydGVfYXRvbWljNjRfZGVjX2FuZF90ZXN0KHYpICAgIChy dGVfYXRvbWljNjRfZGVjX3JldHVybigodikpIA0KPT0NCj4gMCkNCj4gKw0KPiArLyoqDQo+ICsg KiBBdG9taWNhbGx5IHRlc3QgYW5kIHNldCBhIDY0LWJpdCBhdG9taWMgY291bnRlci4NCj4gKyAq DQo+ICsgKiBJZiB0aGUgY291bnRlciB2YWx1ZSBpcyBhbHJlYWR5IHNldCwgcmV0dXJuIDAgKGZh aWxlZCkuIE90aGVyd2lzZSwNCj4gK3NldA0KPiArICogdGhlIGNvdW50ZXIgdmFsdWUgdG8gMSBh bmQgcmV0dXJuIDEgKHN1Y2Nlc3MpLg0KPiArICoNCj4gKyAqIEBwYXJhbSB2DQo+ICsgKiAgIEEg cG9pbnRlciB0byB0aGUgYXRvbWljIGNvdW50ZXIuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgIDAg aWYgZmFpbGVkOyBlbHNlIDEsIHN1Y2Nlc3MuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgaW50 IHJ0ZV9hdG9taWM2NF90ZXN0X2FuZF9zZXQocnRlX2F0b21pYzY0X3QgKnYpIHsNCj4gKyAgICAg ICAgICAgICAgcmV0dXJuIHJ0ZV9hdG9taWM2NF9jbXBzZXQoKHZvbGF0aWxlIHVpbnQ2NF90ICop JnYtPmNudCwgDQowLCAxKTsgfQ0KPiArDQo+ICsvKioNCj4gKyAqIEF0b21pY2FsbHkgc2V0IGEg NjQtYml0IGNvdW50ZXIgdG8gMC4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gdg0KPiArICogICBBIHBv aW50ZXIgdG8gdGhlIGF0b21pYyBjb3VudGVyLg0KPiArICovDQo+ICtzdGF0aWMgaW5saW5lIHZv aWQgcnRlX2F0b21pYzY0X2NsZWFyKHJ0ZV9hdG9taWM2NF90ICp2KSB7DQo+ICsgICAgICAgICAg ICAgIHYtPmNudCA9IDA7DQo+ICt9DQo+ICsNCj4gKyNlbmRpZiAvKiBfUlRFX1BPV0VSUENfNjRf QVRPTUlDX0hfICovDQo+ICsNCj4gZGlmZiAtLWdpdCANCmEvbGliL2xpYnJ0ZV9lYWwvY29tbW9u L2luY2x1ZGUvcG93ZXJwYy9hcmNoL3J0ZV9hdG9taWNfYXJjaC5oDQo+IGIvbGliL2xpYnJ0ZV9l YWwvY29tbW9uL2luY2x1ZGUvcG93ZXJwYy9hcmNoL3J0ZV9hdG9taWNfYXJjaC5oDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAuLmZlNTY2NmUNCj4gLS0tIC9kZXYvbnVs bA0KPiArKysgYi9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9wb3dlcnBjL2FyY2gvcnRl X2F0b21pY19hcmNoLmgNCj4gQEAgLTAsMCArMSwzMTggQEANCj4gKy8qDQo+ICsgKiAgIEJTRCBM SUNFTlNFDQo+ICsgKg0KPiArICogICBDb3B5cmlnaHQgKEMpIElCTSBDb3Jwb3JhdGlvbiAyMDE0 Lg0KPiArICoNCj4gKyAqICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQo+ICsgKiAgIG1vZGlmaWNhdGlvbiwgYXJlIHBl cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KPiArICogICBh cmUgbWV0Og0KPiArICoNCj4gKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQo+ICsgKiAgICAgICBub3RpY2UsIHRo aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+ICsg KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl IGFib3ZlIA0KY29weXJpZ2h0DQo+ICsgKiAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgDQppbg0KPiArICogICAgICAgdGhl IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQ0K PiArICogICAgICAgZGlzdHJpYnV0aW9uLg0KPiArICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv ZiBJQk0gQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCj4gKyAqICAgICAgIGNvbnRy aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgDQpkZXJp dmVkDQo+ICsgKiAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv ciB3cml0dGVuIHBlcm1pc3Npb24uDQo+ICsgKg0KPiArICogICBUSElTIFNPRlRXQVJFIElTIFBS T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQNCj4gQ09OVFJJQlVUT1JTDQo+ICsg KiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE SU5HLCBCVVQNCj4gTk9UDQo+ICsgKiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORA0KPiBGSVRORVNTIEZPUg0KPiArICogICBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFDQo+IENP UFlSSUdIVA0KPiArICogICBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg RElSRUNULCBJTkRJUkVDVCwNCj4gSU5DSURFTlRBTCwNCj4gKyAqICAgU1BFQ0lBTCwgRVhFTVBM QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUDQo+IE5PVA0KPiAr ICogICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ Q0VTOyBMT1NTDQo+IE9GIFVTRSwNCj4gKyAqICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQNCj4gT04gQU5ZDQo+ICsgKiAgIFRI RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks IE9SIA0KVE9SVA0KPiArICogICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GDQo+IFRIRSBVU0UNCj4gKyAqICAgT0YgVEhJUyBTT0ZU V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQo+IERBTUFH RS4NCj4gKyovDQo+ICsNCj4gKy8qDQo+ICsgKiBJbnNwaXJlZCBmcm9tIEZyZWVCU0Qgc3JjL3N5 cy9wb3dlcnBjL2luY2x1ZGUvYXRvbWljLmgNCj4gKyAqIENvcHlyaWdodCAoYykgMjAwOCBNYXJj ZWwgTW9vbGVuYWFyDQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMDEgQmVubm8gUmljZQ0KPiArICog Q29weXJpZ2h0IChjKSAyMDAxIERhdmlkIEUuIE8nQnJpZW4NCj4gKyAqIENvcHlyaWdodCAoYykg MTk5OCBEb3VnIFJhYnNvbg0KPiArICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyAqLw0KPiAr DQo+ICsjaWZuZGVmIF9SVEVfQVRPTUlDX0hfDQo+ICsjZXJyb3IgImRvbid0IGluY2x1ZGUgdGhp cyBmaWxlIGRpcmVjdGx5LCBwbGVhc2UgaW5jbHVkZSBnZW5lcmljIA0KPHJ0ZV9hdG9taWMuaD4i DQo+ICsjZW5kaWYNCj4gKw0KPiArI2lmbmRlZiBfUlRFX0FUT01JQ19BUkNIX0hfDQo+ICsjZGVm aW5lIF9SVEVfQVRPTUlDX0FSQ0hfSF8NCj4gKw0KPiArI2luY2x1ZGUgPHN0ZGludC5oPg0KPiAr DQo+ICsvKioNCj4gKyAqIEdlbmVyYWwgbWVtb3J5IGJhcnJpZXIuDQo+ICsgKg0KPiArICogR3Vh cmFudGVlcyB0aGF0IHRoZSBMT0FEIGFuZCBTVE9SRSBvcGVyYXRpb25zIGdlbmVyYXRlZCBiZWZv cmUgdGhlDQo+ICsgKiBiYXJyaWVyIG9jY3VyIGJlZm9yZSB0aGUgTE9BRCBhbmQgU1RPUkUgb3Bl cmF0aW9ucyBnZW5lcmF0ZWQgYWZ0ZXIuDQo+ICsgKi8NCj4gKyNkZWZpbmUgICAgICAgICAgICAg ICBydGVfYXJjaF9tYigpICBhc20gdm9sYXRpbGUoInN5bmMiIDogOiA6IA0KIm1lbW9yeSIpDQo+ ICsNCj4gKy8qKg0KPiArICogV3JpdGUgbWVtb3J5IGJhcnJpZXIuDQo+ICsgKg0KPiArICogR3Vh cmFudGVlcyB0aGF0IHRoZSBTVE9SRSBvcGVyYXRpb25zIGdlbmVyYXRlZCBiZWZvcmUgdGhlIGJh cnJpZXINCj4gKyAqIG9jY3VyIGJlZm9yZSB0aGUgU1RPUkUgb3BlcmF0aW9ucyBnZW5lcmF0ZWQg YWZ0ZXIuDQo+ICsgKi8NCj4gKyNkZWZpbmUgICAgICAgICAgICAgICBydGVfYXJjaF93bWIoKSBh c20gdm9sYXRpbGUoInN5bmMiIDogOiA6IA0KIm1lbW9yeSIpDQo+ICsNCj4gKy8qKg0KPiArICog UmVhZCBtZW1vcnkgYmFycmllci4NCj4gKyAqDQo+ICsgKiBHdWFyYW50ZWVzIHRoYXQgdGhlIExP QUQgb3BlcmF0aW9ucyBnZW5lcmF0ZWQgYmVmb3JlIHRoZSBiYXJyaWVyDQo+ICsgKiBvY2N1ciBi ZWZvcmUgdGhlIExPQUQgb3BlcmF0aW9ucyBnZW5lcmF0ZWQgYWZ0ZXIuDQo+ICsgKi8NCj4gKyNk ZWZpbmUgICAgICAgICAgICAgICBydGVfYXJjaF9ybWIoKSBhc20gdm9sYXRpbGUoInN5bmMiIDog OiA6IA0KIm1lbW9yeSIpDQo+ICsNCj4gKyNkZWZpbmUgICAgICAgICAgICAgICBydGVfYXJjaF9j b21waWxlcl9iYXJyaWVyKCkgZG8geyAgICAgICAgXA0KPiArICAgICAgICAgICAgICBhc20gdm9s YXRpbGUgKCIiIDogOiA6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICBcDQo+ICt9IHdoaWxlKDAp DQo+ICsNCj4gKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAxNiBiaXQgYXRvbWljIG9wZXJh dGlvbnMNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KPiArDQo+ICsvKioNCj4gKyAq IFRoZSBhdG9taWMgY291bnRlciBzdHJ1Y3R1cmUuDQo+ICsgKi8NCj4gK3R5cGVkZWYgc3RydWN0 IHsNCj4gKyAgICAgICAgICAgICAgdm9sYXRpbGUgaW50MTZfdCBjbnQ7IC8qKjwgQW4gaW50ZXJu YWwgY291bnRlciB2YWx1ZS4gKi8gDQp9DQo+ICtydGVfYXRvbWljMTZfdDsNCj4gKw0KPiArLyoq DQo+ICsgKiBBdG9taWMgY29tcGFyZSBhbmQgc2V0Lg0KPiArICoNCj4gKyAqIChhdG9taWMpIGVx dWl2YWxlbnQgdG86DQo+ICsgKiAgIGlmICgqZHN0ID09IGV4cCkNCj4gKyAqICAgICAqZHN0ID0g c3JjIChhbGwgMTYtYml0IHdvcmRzKQ0KPiArICoNCj4gKyAqIEBwYXJhbSBkc3QNCj4gKyAqICAg VGhlIGRlc3RpbmF0aW9uIGxvY2F0aW9uIGludG8gd2hpY2ggdGhlIHZhbHVlIHdpbGwgYmUgd3Jp dHRlbi4NCj4gKyAqIEBwYXJhbSBleHANCj4gKyAqICAgVGhlIGV4cGVjdGVkIHZhbHVlLg0KPiAr ICogQHBhcmFtIHNyYw0KPiArICogICBUaGUgbmV3IHZhbHVlLg0KPiArICogQHJldHVybg0KPiAr ICogICBOb24temVybyBvbiBzdWNjZXNzOyAwIG9uIGZhaWx1cmUuDQo+ICsgKi8NCj4gK3N0YXRp YyBpbmxpbmUgaW50DQo+ICtydGVfYXJjaF9hdG9taWMxNl9jbXBzZXQodm9sYXRpbGUgdWludDE2 X3QgKmRzdCwgdWludDE2X3QgZXhwLCB1aW50MTZfdA0KPiArc3JjKSB7DQo+ICsgICAgICAgICAg ICAgIHJldHVybiBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlKGRzdCwgJmV4cCwgJnNyYywgMCwN Cj4gX19BVE9NSUNfQUNRVUlSRSwNCj4gK19fQVRPTUlDX0FDUVVJUkUpID8gMSA6IDA7IH0NCj4g Kw0KPiArLyoqDQo+ICsgKiBBdG9taWNhbGx5IGluY3JlbWVudCBhIGNvdW50ZXIgYnkgb25lLg0K PiArICoNCj4gKyAqIEBwYXJhbSB2DQo+ICsgKiAgIEEgcG9pbnRlciB0byB0aGUgYXRvbWljIGNv dW50ZXIuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPiArcnRlX2FyY2hfYXRvbWlj MTZfaW5jKHJ0ZV9hdG9taWMxNl90ICp2KSB7DQo+ICsgICAgICAgICAgICAgIF9fYXRvbWljX2Fk ZF9mZXRjaCgmdi0+Y250LCAxLCBfX0FUT01JQ19BQ1FVSVJFKTsgfQ0KPiArDQo+ICsvKioNCj4g KyAqIEF0b21pY2FsbHkgZGVjcmVtZW50IGEgY291bnRlciBieSBvbmUuDQo+ICsgKg0KPiArICog QHBhcmFtIHYNCj4gKyAqICAgQSBwb2ludGVyIHRvIHRoZSBhdG9taWMgY291bnRlci4NCj4gKyAq Lw0KPiArc3RhdGljIGlubGluZSB2b2lkDQo+ICtydGVfYXJjaF9hdG9taWMxNl9kZWMocnRlX2F0 b21pYzE2X3QgKnYpIHsNCj4gKyAgICAgICAgICAgICAgX19hdG9taWNfc3ViX2ZldGNoKCZ2LT5j bnQsIDEsIF9fQVRPTUlDX0FDUVVJUkUpOyB9DQo+ICsNCj4gKy8qKg0KPiArICogQXRvbWljYWxs eSBpbmNyZW1lbnQgYSAxNi1iaXQgY291bnRlciBieSBvbmUgYW5kIHRlc3QuDQo+ICsgKg0KPiAr ICogQXRvbWljYWxseSBpbmNyZW1lbnRzIHRoZSBhdG9taWMgY291bnRlciAodikgYnkgb25lIGFu ZCByZXR1cm5zIHRydWUNCj4gK2lmDQo+ICsgKiB0aGUgcmVzdWx0IGlzIDAsIG9yIGZhbHNlIGlu IGFsbCBvdGhlciBjYXNlcy4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gdg0KPiArICogICBBIHBvaW50 ZXIgdG8gdGhlIGF0b21pYyBjb3VudGVyLg0KPiArICogQHJldHVybg0KPiArICogICBUcnVlIGlm IHRoZSByZXN1bHQgYWZ0ZXIgdGhlIGluY3JlbWVudCBvcGVyYXRpb24gaXMgMDsgZmFsc2UgDQpv dGhlcndpc2UuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgaW50IHJ0ZV9hcmNoX2F0b21pYzE2 X2luY19hbmRfdGVzdChydGVfYXRvbWljMTZfdCAqdikgew0KPiArICAgICAgICAgICAgICByZXR1 cm4gKF9fYXRvbWljX2FkZF9mZXRjaCgmdi0+Y250LCAxLCBfX0FUT01JQ19BQ1FVSVJFKSANCj09 IDApOyB9DQo+ICsNCj4gKy8qKg0KPiArICogQXRvbWljYWxseSBkZWNyZW1lbnQgYSAxNi1iaXQg Y291bnRlciBieSBvbmUgYW5kIHRlc3QuDQo+ICsgKg0KPiArICogQXRvbWljYWxseSBkZWNyZW1l bnRzIHRoZSBhdG9taWMgY291bnRlciAodikgYnkgb25lIGFuZCByZXR1cm5zIHRydWUNCj4gK2lm DQo+ICsgKiB0aGUgcmVzdWx0IGlzIDAsIG9yIGZhbHNlIGluIGFsbCBvdGhlciBjYXNlcy4NCj4g KyAqDQo+ICsgKiBAcGFyYW0gdg0KPiArICogICBBIHBvaW50ZXIgdG8gdGhlIGF0b21pYyBjb3Vu dGVyLg0KPiArICogQHJldHVybg0KPiArICogICBUcnVlIGlmIHRoZSByZXN1bHQgYWZ0ZXIgdGhl IGRlY3JlbWVudCBvcGVyYXRpb24gaXMgMDsgZmFsc2UgDQpvdGhlcndpc2UuDQo+ICsgKi8NCj4g K3N0YXRpYyBpbmxpbmUgaW50IHJ0ZV9hcmNoX2F0b21pYzE2X2RlY19hbmRfdGVzdChydGVfYXRv bWljMTZfdCAqdikgew0KPiArICAgICAgICAgICAgICByZXR1cm4gKF9fYXRvbWljX3N1Yl9mZXRj aCgmdi0+Y250LCAxLCBfX0FUT01JQ19BQ1FVSVJFKSANCj09IDApOyB9DQo+ICsNCj4gKy8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAzMiBiaXQgYXRvbWljIG9wZXJhdGlvbnMNCj4gKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KPiArDQo+ICsvKioNCj4gKyAqIFRoZSBhdG9taWMgY291 bnRlciBzdHJ1Y3R1cmUuDQo+ICsgKi8NCj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gKyAgICAgICAg ICAgICAgdm9sYXRpbGUgaW50MzJfdCBjbnQ7IC8qKjwgQW4gaW50ZXJuYWwgY291bnRlciB2YWx1 ZS4gKi8gDQp9DQo+ICtydGVfYXRvbWljMzJfdDsNCj4gKw0KPiArLyoqDQo+ICsgKiBBdG9taWMg Y29tcGFyZSBhbmQgc2V0Lg0KPiArICoNCj4gKyAqIChhdG9taWMpIGVxdWl2YWxlbnQgdG86DQo+ ICsgKiAgIGlmICgqZHN0ID09IGV4cCkNCj4gKyAqICAgICAqZHN0ID0gc3JjIChhbGwgMzItYml0 IHdvcmRzKQ0KPiArICoNCj4gKyAqIEBwYXJhbSBkc3QNCj4gKyAqICAgVGhlIGRlc3RpbmF0aW9u IGxvY2F0aW9uIGludG8gd2hpY2ggdGhlIHZhbHVlIHdpbGwgYmUgd3JpdHRlbi4NCj4gKyAqIEBw YXJhbSBleHANCj4gKyAqICAgVGhlIGV4cGVjdGVkIHZhbHVlLg0KPiArICogQHBhcmFtIHNyYw0K PiArICogICBUaGUgbmV3IHZhbHVlLg0KPiArICogQHJldHVybg0KPiArICogICBOb24temVybyBv biBzdWNjZXNzOyAwIG9uIGZhaWx1cmUuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgaW50DQo+ ICtydGVfYXJjaF9hdG9taWMzMl9jbXBzZXQodm9sYXRpbGUgdWludDMyX3QgKmRzdCwgdWludDMy X3QgZXhwLCB1aW50MzJfdA0KPiArc3JjKSB7DQo+ICsgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCByZXQgPSAwOw0KPiArDQo+ICsgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHRsd3N5bmNcbiINCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTpcdGx3YXJ4 ICVbcmV0XSwgMCwgDQolW2RzdF1cbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiY21wbHcgJVtleHBdLCAlW3JldF1cbiINCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYm5lIDJmXG4iDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0d2N4LiAlW3NyY10sIDAs IA0KJVtkc3RdXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImJuZS0gMWJcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAibGkgJVtyZXRdLCAxXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImIgM2ZcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiMjpcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAic3R3Y3guICVbcmV0XSwgMCwgDQolW2RzdF1cbiINCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGkgJVtyZXRd LCAwXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IjM6XG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImlzeW5jXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiBbcmV0XSAiPSZyIiAocmV0KSwgIj1tIiANCigqZHN0KQ0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW2RzdF0gInIiIChkc3QpLCBbZXhwXSAN CiJyIiAoZXhwKSwgW3NyY10gInIiIChzcmMpLCAibSIgKCpkc3QpDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiY2MiLCAibWVtb3J5Iik7DQo+ICsN Cj4gKyAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgKiBB dG9taWNhbGx5IGluY3JlbWVudCBhIGNvdW50ZXIgYnkgb25lLg0KPiArICoNCj4gKyAqIEBwYXJh bSB2DQo+ICsgKiAgIEEgcG9pbnRlciB0byB0aGUgYXRvbWljIGNvdW50ZXIuDQo+ICsgKi8NCj4g K3N0YXRpYyBpbmxpbmUgdm9pZA0KPiArcnRlX2FyY2hfYXRvbWljMzJfaW5jKHJ0ZV9hdG9taWMz Ml90ICp2KSB7DQo+ICsgICAgICAgICAgICAgIGludCB0Ow0KPiArDQo+ICsgICAgICAgICAgICAg IGFzbSB2b2xhdGlsZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiMTogbHdhcnggDQolW3RdLDAsJVtjbnRdXG4iDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFkZGljICVbdF0sJVt0XSwxXG4iDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0d2N4LiAlW3Rd LDAsJVtjbnRdXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImJuZS0gMWJcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA6IFt0XSAiPSZyIiAodCksICI9bSIgDQoodi0+Y250KQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW2NudF0gInIiICgmdi0+Y250 KSwgDQoibSIgKHYtPmNudCkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA6ICJjYyIsICJ4ZXIiLCAibWVtb3J5Iik7DQo+ICt9DQo+ICsNCj4gKy8qKg0K PiArICogQXRvbWljYWxseSBkZWNyZW1lbnQgYSBjb3VudGVyIGJ5IG9uZS4NCj4gKyAqDQo+ICsg KiBAcGFyYW0gdg0KPiArICogICBBIHBvaW50ZXIgdG8gdGhlIGF0b21pYyBjb3VudGVyLg0KPiAr ICovDQo+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4gK3J0ZV9hcmNoX2F0b21pYzMyX2RlYyhydGVf YXRvbWljMzJfdCAqdikgew0KPiArICAgICAgICAgICAgICBpbnQgdDsNCj4gKw0KPiArICAgICAg ICAgICAgICBhc20gdm9sYXRpbGUoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIjE6IGx3YXJ4IA0KJVt0XSwwLCVbY250XVxuIg0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRpYyAlW3RdLCVbdF0sLTFc biINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3R3 Y3guICVbdF0sMCwlW2NudF1cbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiYm5lLSAxYlxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogW3RdICI9JnIiICh0KSwgIj1tIiANCih2LT5jbnQpDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbY250XSAiciIg KCZ2LT5jbnQpLCANCiJtIiAodi0+Y250KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogImNjIiwgInhlciIsICJtZW1vcnkiKTsNCj4gK30NCj4gKw0K PiArLyoqDQo+ICsgKiBBdG9taWNhbGx5IGluY3JlbWVudCBhIDMyLWJpdCBjb3VudGVyIGJ5IG9u ZSBhbmQgdGVzdC4NCj4gKyAqDQo+ICsgKiBBdG9taWNhbGx5IGluY3JlbWVudHMgdGhlIGF0b21p YyBjb3VudGVyICh2KSBieSBvbmUgYW5kIHJldHVybnMgdHJ1ZQ0KPiAraWYNCj4gKyAqIHRoZSBy ZXN1bHQgaXMgMCwgb3IgZmFsc2UgaW4gYWxsIG90aGVyIGNhc2VzLg0KPiArICoNCj4gKyAqIEBw YXJhbSB2DQo+ICsgKiAgIEEgcG9pbnRlciB0byB0aGUgYXRvbWljIGNvdW50ZXIuDQo+ICsgKiBA cmV0dXJuDQo+ICsgKiAgIFRydWUgaWYgdGhlIHJlc3VsdCBhZnRlciB0aGUgaW5jcmVtZW50IG9w ZXJhdGlvbiBpcyAwOyBmYWxzZSANCm90aGVyd2lzZS4NCj4gKyAqLw0KPiArc3RhdGljIGlubGlu ZSBpbnQgcnRlX2FyY2hfYXRvbWljMzJfaW5jX2FuZF90ZXN0KHJ0ZV9hdG9taWMzMl90ICp2KSB7 DQo+ICsgICAgICAgICAgICAgIGludCByZXQ7DQo+ICsNCj4gKyAgICAgICAgICAgICAgYXNtIHZv bGF0aWxlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJcblx0bHdzeW5jXG4iDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIjE6IGx3YXJ4IA0KJVtyZXRdLDAsJVtjbnRdXG4iDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFkZGljICVbcmV0XSwlW3JldF0sMVxu Ig0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHdj eC4gDQolW3JldF0sMCwlW2NudF1cbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiYm5lLSAxYlxuIg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJpc3luY1xuIg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogW3JldF0gIj0mciIgKHJldCkNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtjbnRdICJyIiAoJnYtPmNu dCkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJj YyIsICJ4ZXIiLCAibWVtb3J5Iik7DQo+ICsNCj4gKyAgICAgICAgICAgICAgcmV0dXJuIChyZXQg PT0gMCk7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogQXRvbWljYWxseSBkZWNyZW1lbnQgYSAz Mi1iaXQgY291bnRlciBieSBvbmUgYW5kIHRlc3QuDQo+ICsgKg0KPiArICogQXRvbWljYWxseSBk ZWNyZW1lbnRzIHRoZSBhdG9taWMgY291bnRlciAodikgYnkgb25lIGFuZCByZXR1cm5zIHRydWUN Cj4gK2lmDQo+ICsgKiB0aGUgcmVzdWx0IGlzIDAsIG9yIGZhbHNlIGluIGFsbCBvdGhlciBjYXNl cy4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gdg0KPiArICogICBBIHBvaW50ZXIgdG8gdGhlIGF0b21p YyBjb3VudGVyLg0KPiArICogQHJldHVybg0KPiArICogICBUcnVlIGlmIHRoZSByZXN1bHQgYWZ0 ZXIgdGhlIGRlY3JlbWVudCBvcGVyYXRpb24gaXMgMDsgZmFsc2UgDQpvdGhlcndpc2UuDQo+ICsg Ki8NCj4gK3N0YXRpYyBpbmxpbmUgaW50IHJ0ZV9hcmNoX2F0b21pYzMyX2RlY19hbmRfdGVzdChy dGVfYXRvbWljMzJfdCAqdikgew0KPiArICAgICAgICAgICAgICBpbnQgcmV0Ow0KPiArDQo+ICsg ICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiXG5cdGx3c3luY1xuIg0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxOiBsd2FyeCANCiVbcmV0XSwwLCVbY250XVxu Ig0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRp YyANCiVbcmV0XSwlW3JldF0sLTFcbiINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAic3R3Y3guIA0KJVtyZXRdLDAsJVtjbnRdXG4iDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJuZS0gMWJcbiINCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXN5bmNcbiINCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtyZXRdICI9 JnIiIChyZXQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOiBbY250XSAiciIgKCZ2LT5jbnQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiAiY2MiLCAieGVyIiwgIm1lbW9yeSIpOw0KPiArDQo+ICsgICAg ICAgICAgICAgIHJldHVybiAocmV0ID09IDApOw0KPiArfQ0KPiArDQo+ICsjZW5kaWYgLyogX1JU RV9BVE9NSUNfQVJDSF9IXyAqLw0KPiArDQo+IC0tDQo+IDEuNy4xDQoNCg0KDQo= >From bjzhuc@cn.ibm.com Mon Sep 29 08:36:29 2014 Return-Path: Received: from e23smtp04.au.ibm.com (e23smtp04.au.ibm.com [202.81.31.146]) by dpdk.org (Postfix) with ESMTP id 96B187E23 for ; Mon, 29 Sep 2014 08:36:28 +0200 (CEST) Received: from /spool/local by e23smtp04.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 29 Sep 2014 16:43:00 +1000 Received: from d23dlp03.au.ibm.com (202.81.31.214) by e23smtp04.au.ibm.com (202.81.31.210) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 29 Sep 2014 16:42:58 +1000 Received: from d23relay04.au.ibm.com (d23relay04.au.ibm.com [9.190.234.120]) by d23dlp03.au.ibm.com (Postfix) with ESMTP id BE473357804E for ; Mon, 29 Sep 2014 16:42:56 +1000 (EST) Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97]) by d23relay04.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id s8T6OU3H32309488 for ; Mon, 29 Sep 2014 16:24:38 +1000 Received: from d23av03.au.ibm.com (localhost [127.0.0.1]) by d23av03.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s8T6gOjE008138 for ; Mon, 29 Sep 2014 16:42:24 +1000 Received: from d23ml028.cn.ibm.com (d23ml028.cn.ibm.com [9.119.32.184]) by d23av03.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s8T6gMbN007557; Mon, 29 Sep 2014 16:42:24 +1000 In-Reply-To: <307e2643dd894afc9e53e0c3de74c32a@BY2PR0301MB0693.namprd03.prod.outlook.com> References: <1411724186-8036-1-git-send-email-bjzhuc@cn.ibm.com> <1411724186-8036-11-git-send-email-bjzhuc@cn.ibm.com> <307e2643dd894afc9e53e0c3de74c32a@BY2PR0301MB0693.namprd03.prod.outlook.com> To: "Hemant@freescale.com" MIME-Version: 1.0 X-KeepSent: F5013166:85A9E5DC-48257D62:0024AE17; type=4; name=$KeepSent X-Mailer: IBM Notes Release 9.0.1SHF211 December 19, 2013 Message-ID: From: Chao CH Zhu Date: Mon, 29 Sep 2014 14:40:59 +0800 X-MIMETrack: Serialize by Router on d23ml028/23/M/IBM(Release 8.5.3FP6HF485 | May 7, 2014) at 09/29/2014 14:41:21, Serialize complete at 09/29/2014 14:41:21 X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14092906-0013-0000-0000-00000048222E Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH 10/12] Add cache size define for IBM Power Architecture X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2014 06:36:29 -0000 SGksSGVtYW50LCANCg0KQWN0dWFsbHksIHRoZSBzZXQgb2YgcGF0Y2hlcyBpcyBvbmx5IGZvciBJ Qk0gUG93ZXI3Lzggd2hpY2ggaGFzIGRpZmZlcmVuY2UgDQpjYWNoZSBsaW5lIHNpemUuIE9mIGNh dXNlLCBhIGJldHRlciB3YXkgbWF5IGJlIGRldGVjdGluZyB0aGUgY2FjaGUgbGluZSANCnNpemUg YXQgcnVudGltZSBub3QgZnJvbSBjb25maWd1cmF0aW9uIGZpbGVzLi4uIE1heSBiZSB3ZSBjYW4g c3VibWl0IHRoaXMgDQpraW5kIG9mIHBhdGNoIGxhdGVyLiANCg0KQmVzdCBSZWdhcmRzIQ0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpDaGFvIFpodSAo16OzrCkNClJlc2VhcmNoIFN0 YWZmIE1lbWJlcg0KQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUgYW5kIFRlY2hub2xvZ3kgR3JvdXANCklC TSBDaGluYSBSZXNlYXJjaCBMYWINCkJ1aWxkaW5nIDE5IFpob25nZ3VhbmN1biBTb2Z0d2FyZSBQ YXJrDQo4IERvbmdiZWl3YW5nIFdlc3QgUm9hZCwgSGFpZGlhbiBEaXN0cmljdCwNCkJlaWppbmcs IFBSQy4gMTAwMTkzDQpUZWw6ICs4Ni0xMC01ODc0ODcxMQ0KRW1haWw6IGJqemh1Y0Bjbi5pYm0u Y29tDQoNCg0KDQoNCkZyb206ICAgIkhlbWFudEBmcmVlc2NhbGUuY29tIiA8SGVtYW50QGZyZWVz Y2FsZS5jb20+DQpUbzogICAgIENoYW8gQ0ggWmh1L0NoaW5hL0lCTUBJQk1DTiwgImRldkBkcGRr Lm9yZyIgPGRldkBkcGRrLm9yZz4NCkRhdGU6ICAgMjAxNC8wOS8yOSAxNDoyMA0KU3ViamVjdDog ICAgICAgIFJFOiBbZHBkay1kZXZdIFtQQVRDSCAxMC8xMl0gQWRkIGNhY2hlIHNpemUgZGVmaW5l IGZvciBJQk0gDQpQb3dlciAgIEFyY2hpdGVjdHVyZQ0KDQoNCg0KPiAtLS0gYS9tay9hcmNoL3Bv d2VycGMvcnRlLnZhcnMubWsNCj4gKysrIGIvbWsvYXJjaC9wb3dlcnBjL3J0ZS52YXJzLm1rDQo+ IEBAIC0zMiw3ICszMiw3IEBADQo+ICBBUkNIICA/PSBwb3dlcnBjDQo+ICBDUk9TUyA/PQ0KPiAN Cj4gLUNQVV9DRkxBR1MgID89IC1tNjQNCj4gK0NQVV9DRkxBR1MgID89IC1tNjQgLURDQUNIRV9M SU5FX1NJWkU9MTI4DQoNCiBbaGVtYW50XSAgSW5zdGVhZCBvZiBoYXJkY29kaW5nIHRoZSBDQUNI RV9MSU5FX1NJWkUsICBjYW4geW91IGRyaXZlIHRoZSANCkNBQ0hFX0xJTkVfU0laRSBmcm9tIGNv bmZpZyBmaWxlLiAgT3RoZXIgcG93ZXJwYyBwcm9jZXNzb3IgaGF2ZSBpdCBhcyA2NC4NCg0KDQo+ ICBDUFVfTERGTEFHUyA/PQ0KPiAgQ1BVX0FTRkxBR1MgPz0gLWZlbGY2NA0KPiANCj4gLS0NCj4g MS43LjENCg0KDQoNCg== >From couyang@shecgisg004.sh.intel.com Mon Sep 29 09:10:04 2014 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 071D35902 for ; Mon, 29 Sep 2014 09:10:03 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP; 29 Sep 2014 00:14:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.04,618,1406617200"; d="scan'208";a="610111671" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by orsmga002.jf.intel.com with ESMTP; 29 Sep 2014 00:16:36 -0700 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id s8T7GXjo012641; Mon, 29 Sep 2014 15:16:33 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id s8T7GVGe028228; Mon, 29 Sep 2014 15:16:33 +0800 Received: (from couyang@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id s8T7GQUm028166; Mon, 29 Sep 2014 15:16:26 +0800 From: Ouyang Changchun To: dev@dpdk.org Date: Mon, 29 Sep 2014 15:16:08 +0800 Message-Id: <1411974986-28137-1-git-send-email-changchun.ouyang@intel.com> X-Mailer: git-send-email 1.7.4.1 Subject: [dpdk-dev] [PATCH v2 00/18] Update IXGBE base code X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Sep 2014 07:10:04 -0000 This patch series update IXGBE base code (a.k.a. share code) from package 2014.03.13 to package 2014.09.04 v2 change: -- Regenerate the patch files based on the latest commit, otherwise git apply will fail. v1 change: -- The updating includes the following changes: 1. Change comments and fix typo in IXGBE base code. 2. Clean up IXGBE base code. 3. Implement a function to check command complete for flow director in IXGBE base code. 4. Support cloud filter and tunnel in IXGBE base code. 5. Refine function to let eeprom checksum calculation return either a negative error code on error, or the 16-bit checksum in IXGBE base code. 6. Let caller determine if it need read and return data or not after executing host interface command in IXGBE base code. 7. Extend mask from 16 bits to 32 bits for releasing or acquiring SWFW semaphore in IXGBE base code. It is used in reading and writing I2C byte. 8. Implement functions to do I2C byte read and write in IXGBE base code; Relocate function of ixgbe_mng_enabled. 9. Support device id 82599_QSFP and 82599_LS in IXGBE base code. 10.It need wait for 5 ms for polling EEC register in IXGBE X540 base code. 11.Define new error type in IXGBE base code, they are used to report different kinds of error. 12.Use hardware MAC type to determine I2C control, clock in/out, and data in/out in IXGBE base code. 13.Store lan_id and physical semaphore mask into hardware physical information, and use them to control read and write physical registers in IXGBE base code. 14.Remove unnecessary delay when setting up physical link and negotiate in IXGBE base code. 15.Implement a function to reset VF register to initial values in IXGBE base code. 16.Support these functionalities in IXGBE base code: Thermal sensor, DMA coalescing, EEE support, Source address pruning, Anti-spoofing, Iosf buffer reading and writing, Malicious driver detection. 17.Support X550 in IXGBE base code. 18.Support X550 in IXGBE poll mode driver. Changchun Ouyang (18): Update comments and fix some comments typo in IXGBE share code. Clean up IXGBE share code. Implement a function to check command complete for flow director in IXGBE share code. Support cloud mode in IXGBE share code. Refine function to let eeprom checksum calculation return either a negative error code on error, or the 16-bit checksum in IXGBE share code. Let caller determine if it need read and return data or not after executing host interface command in IXGBE share code. Extend mask from 16 bits to 32 bits for releasing or acquiring SWFW semaphore in IXGBE share code. It is used in reading and writing I2C byte. Implement functions to do I2C byte read and write in IXGBE share code; relocate function of ixgbe_mng_enabled. Support device id 82599_QSFP and 82599_LS in IXGBE share code. It need wait for 5 msec for polling EEC register in IXGBE X540 share code. Define new error type in IXGBE share code, they are used to report different kinds of error. Use hardware MAC type to determine I2C control, clock in/out, data in/out in IXGBE share code. Store lan_id and physical semaphore mask into hw->phy, and use them to control read and write physical registers in IXGBE share code. Remove unnecessary delay when setting up physical link and negotiate in IXGBE share code. Implement a function to reset VF register to initial values in IXGBE share code. Support these functionalities in IXGBE share code: Thermal sensor, DMA coalescing, EEE support, Source address pruning, Anti-spoofing, Iosf buffer reading and writing, Malicious driver detection. Support X550 in IXGBE share code. Support X550 in IXGBE poll mode driver. lib/librte_eal/common/include/rte_pci_dev_ids.h | 14 + lib/librte_ether/rte_ethdev.h | 2 +- lib/librte_pmd_ixgbe/Makefile | 2 + lib/librte_pmd_ixgbe/ixgbe/README | 3 +- lib/librte_pmd_ixgbe/ixgbe/ixgbe_82598.c | 2 - lib/librte_pmd_ixgbe/ixgbe/ixgbe_82599.c | 404 +++-- lib/librte_pmd_ixgbe/ixgbe/ixgbe_api.c | 212 ++- lib/librte_pmd_ixgbe/ixgbe/ixgbe_api.h | 24 +- lib/librte_pmd_ixgbe/ixgbe/ixgbe_common.c | 386 ++++- lib/librte_pmd_ixgbe/ixgbe/ixgbe_common.h | 23 +- lib/librte_pmd_ixgbe/ixgbe/ixgbe_dcb.c | 20 + lib/librte_pmd_ixgbe/ixgbe/ixgbe_dcb_82598.c | 2 + lib/librte_pmd_ixgbe/ixgbe/ixgbe_dcb_82599.c | 1 + lib/librte_pmd_ixgbe/ixgbe/ixgbe_mbx.c | 4 + lib/librte_pmd_ixgbe/ixgbe/ixgbe_osdep.h | 12 + lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.c | 651 ++++++-- lib/librte_pmd_ixgbe/ixgbe/ixgbe_phy.h | 23 +- lib/librte_pmd_ixgbe/ixgbe/ixgbe_type.h | 471 +++++- lib/librte_pmd_ixgbe/ixgbe/ixgbe_vf.c | 61 + lib/librte_pmd_ixgbe/ixgbe/ixgbe_vf.h | 3 + lib/librte_pmd_ixgbe/ixgbe/ixgbe_x540.c | 244 +-- lib/librte_pmd_ixgbe/ixgbe/ixgbe_x540.h | 6 +- lib/librte_pmd_ixgbe/ixgbe/ixgbe_x550.c | 1809 +++++++++++++++++++++++ lib/librte_pmd_ixgbe/ixgbe/ixgbe_x550.h | 88 ++ lib/librte_pmd_ixgbe/ixgbe_bypass_api.h | 9 + lib/librte_pmd_ixgbe/ixgbe_ethdev.c | 11 +- lib/librte_pmd_ixgbe/ixgbe_fdir.c | 35 +- lib/librte_pmd_ixgbe/ixgbe_pf.c | 6 +- lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 6 + 29 files changed, 4046 insertions(+), 488 deletions(-) create mode 100644 lib/librte_pmd_ixgbe/ixgbe/ixgbe_x550.c create mode 100644 lib/librte_pmd_ixgbe/ixgbe/ixgbe_x550.h -- 1.8.4.2