From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 30E1645C75; Mon, 4 Nov 2024 10:44:06 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EE30F402AF; Mon, 4 Nov 2024 10:44:05 +0100 (CET) Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by mails.dpdk.org (Postfix) with ESMTP id 4C9904021F for ; Mon, 4 Nov 2024 10:44:04 +0100 (CET) X-SpamFilter-By: ArmorX SpamTrap 5.78 with qID 4A49hvWS33235116, This message is accepted by code: ctloc85258 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=realsil.com.cn; s=dkim; t=1730713438; bh=3K2/W9D1nyx00d/n+d/UQwZv6HtiFQ/pZBH9s72LRtE=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:Content-Transfer-Encoding:MIME-Version; b=lkDHzlPgwVehfdeTiPoHl+w42W0FPcHiJ017Sn7i1u/nXeuTfFHe6jCrj46cPFTFI hG9FMAN1eXZFEavjMUWVsjIhm1cgvPyuo8alABg70epEKgv58RGZj3PFhRkn84aeKS To72L7yLiMSYOLbBPDCxSQma3p/4S4iq132VHvZMQELNc3QCSYb5X4PAwZ+ttljtmX EKS6AeX9eJGsnbK7547nwxUHzm2S97ZpDy5O6X5u2OaSD9ynOVqxzf0ivJiYlmfCRF jneGH+I/BJyS1Gfk1cLDhzRRXzWkEK/k1Ka5j7FYjDJqiS8CzsABzwfmKdmYX3MwuE +LHj9nvhY7IDA== Received: from RSEXMBS03.realsil.com.cn ([172.29.17.197]) by rtits2.realtek.com.tw (8.15.2/3.06/5.92) with ESMTPS id 4A49hvWS33235116 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=FAIL); Mon, 4 Nov 2024 17:43:58 +0800 Received: from RSEXDAG02.realsil.com.cn (172.29.17.196) by RSEXMBS03.realsil.com.cn (172.29.17.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 4 Nov 2024 17:43:58 +0800 Received: from RSEXMBS01.realsil.com.cn (172.29.17.195) by RSEXDAG02.realsil.com.cn (172.29.17.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 4 Nov 2024 17:43:58 +0800 Received: from RSEXMBS01.realsil.com.cn ([fe80::cc98:e459:31c:69cb]) by RSEXMBS01.realsil.com.cn ([fe80::cc98:e459:31c:69cb%7]) with mapi id 15.01.2507.035; Mon, 4 Nov 2024 17:43:58 +0800 From: =?utf-8?B?546L6aKi?= To: Ferruh Yigit , "dev@dpdk.org" CC: "pro_nic_dpdk@realtek.com" Subject: =?utf-8?B?562U5aSNOiBbUEFUQ0ggdjUgMDEvMThdIG5ldC9yODE2OTogYWRkIFBNRCBk?= =?utf-8?Q?river_skeleton?= Thread-Topic: [PATCH v5 01/18] net/r8169: add PMD driver skeleton Thread-Index: AQHbKQtnvD3WnS2sBEWhpiKQn/jG07KkVNqAgAJQIZA= Date: Mon, 4 Nov 2024 09:43:57 +0000 Message-ID: <642924db828848e9b9fbe3848927a292@realsil.com.cn> References: <20241028073112.107535-1-howard_wang@realsil.com.cn> <20241028073112.107535-2-howard_wang@realsil.com.cn> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN x-originating-ip: [172.29.17.210] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org RGVhciBGZXJydWgsDQoNCkkgYW0gY3VycmVudGx5IG1ha2luZyB0aGUgY2hhbmdlcyB5b3UgbWVu dGlvbmVkLiBJIHdvdWxkIGxpa2UgdG8gY2xhcmlmeSBhIGZldyBxdWVzdGlvbnMgd2l0aCB5b3Uu DQoNCj4gK0Y6IGRyaXZlcnMvbmV0L3I4MTY5DQo+ICsNCj4NCg0KUGxlYXNlIHNvcnQgYWxwaGFi ZXRpY2FsbHkgZm9yICdSZWFsdGVrJw0KDQo9PT0+IEFzIEkgY2FuIHNlZSBpbiB0aGUgTUFJTlRB SU5FUlMgZmlsZSwgZWFjaCBQTUQgaW4gdGhlIE5ldHdvcmtpbmcgRHJpdmVycyBzZWN0aW9uIGlz IG5vdCBzb3J0ZWQgYWxwaGFiZXRpY2FsbHkuIEZvciBleGFtcGxlLCBNYXJ2ZWxsIGFwcGVhcnMg aW4gc2V2ZXJhbCBwbGFjZXMgYW5kIGlzIG5vdCBncm91cGVkIHRvZ2V0aGVyLiBBcyBhIHJlc3Vs dCwgSSBhbSB1bnN1cmUgd2hlcmUgdG8gcGxhY2UgUmVhbHRlay4NCg0KQ2FuIHlvdSBhbHNvIGFk ZCBkcml2ZXIgZG9jdW1lbnRhdGlvbiBhbmQgdXBkYXRlIHJlbGVhc2Ugbm90ZXMgaW4gdGhpcyBw YXRjaD8NCg0KPT09PiBEbyB5b3UgbWVhbiB0aGF0IHRoZSAxOHRoIHBhdGNoIFtQQVRDSCB2NSAx OC8xOF0gZG9jL2d1aWRlcy9uaWNzOiBhZGQgZG9jdW1lbnRzIGZvciByODE2OSBwbWQgc2hvdWxk IGJlIG1lcmdlZCBpbnRvIHRoZSBvdmVyYWxsIHBhdGNoPyBBZGRpdGlvbmFsbHksIEkgZG9u4oCZ dCBxdWl0ZSB1bmRlcnN0YW5kIHRoZSDigJx1cGRhdGUgcmVsZWFzZSBub3Rlc+KAnSBwYXJ0LiBE byB5b3UgbWVhbiB0aGF0IGEgbmV3IHJlbGVhc2Ugbm90ZSBmaWxlIG5lZWRzIHRvIGJlIGFkZGVk IGluIGRyaXZlcnMvbmV0L3I4MTY5IGFuZCB1cGRhdGVkIHdpdGggZWFjaCBwYXRjaD8gT3IgcGVy aGFwcyB5b3UgbWVhbiB0aGF0IHRoZSByODE2OS5pbmkgYW5kIHI4MTY5LnJzdCBmaWxlcyBzaG91 bGQgYmUgY3JlYXRlZCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBwYXRjaCBhbmQgZ3JhZHVhbGx5 IGltcHJvdmVkIGFzIHRoZSBwYXRjaGVzIGFyZSBzdWJtaXR0ZWQ/DQoNCkJlc3QgUmVnYXJkcywN Ckhvd2FyZCBXYW5nDQoNCi0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCuWPkeS7tuS6ujogRmVycnVo IFlpZ2l0IDxmZXJydWgueWlnaXRAYW1kLmNvbT4gDQrlj5HpgIHml7bpl7Q6IDIwMjTlubQxMeac iDPml6UgMTA6MTcNCuaUtuS7tuS6ujog546L6aKiIDxob3dhcmRfd2FuZ0ByZWFsc2lsLmNvbS5j bj47IGRldkBkcGRrLm9yZw0K5oqE6YCBOiBwcm9fbmljX2RwZGtAcmVhbHRlay5jb20NCuS4u+mi mDogUmU6IFtQQVRDSCB2NSAwMS8xOF0gbmV0L3I4MTY5OiBhZGQgUE1EIGRyaXZlciBza2VsZXRv bg0KDQoNCkV4dGVybmFsIG1haWwuDQoNCg0KDQpPbiAxMC8yOC8yMDI0IDc6MzAgQU0sIEhvd2Fy ZCBXYW5nIHdyb3RlOg0KPiBNZXNvbiBidWlsZCBpbmZyYXN0cnVjdHVyZSwgcjgxNjlfZXRoZGV2 IG1pbmltYWwgc2tlbGV0b24sIGhlYWRlciB3aXRoIA0KPiBSZWFsdGVrIE5JQyBkZXZpY2UgYW5k IHZlbmRvciBJRHMuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IEhvd2FyZCBXYW5nIDxob3dhcmRfd2Fu Z0ByZWFsc2lsLmNvbS5jbj4NCj4gLS0tDQo+ICBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAg ICAgICB8ICAgNyArKw0KPiAgZHJpdmVycy9uZXQvbWVzb24uYnVpbGQgICAgICAgICAgfCAgIDEg Kw0KPiAgZHJpdmVycy9uZXQvcjgxNjkvbWVzb24uYnVpbGQgICAgfCAgIDYgKysNCj4gIGRyaXZl cnMvbmV0L3I4MTY5L3I4MTY5X2Jhc2UuaCAgIHwgIDE1ICsrKw0KPiAgZHJpdmVycy9uZXQvcjgx NjkvcjgxNjlfZXRoZGV2LmMgfCAxNzggDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysgIGRyaXZlcnMvbmV0L3I4MTY5L3I4MTY5X2V0aGRldi5oIHwgIA0KPiA0MCArKysrKysrDQo+ ICA2IGZpbGVzIGNoYW5nZWQsIDI0NyBpbnNlcnRpb25zKCspDQo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9uZXQvcjgxNjkvbWVzb24uYnVpbGQgIGNyZWF0ZSBtb2RlIDEwMDY0NCANCj4g ZHJpdmVycy9uZXQvcjgxNjkvcjgxNjlfYmFzZS5oICBjcmVhdGUgbW9kZSAxMDA2NDQgDQo+IGRy aXZlcnMvbmV0L3I4MTY5L3I4MTY5X2V0aGRldi5jICBjcmVhdGUgbW9kZSAxMDA2NDQgDQo+IGRy aXZlcnMvbmV0L3I4MTY5L3I4MTY5X2V0aGRldi5oDQo+DQo+IGRpZmYgLS1naXQgYS9NQUlOVEFJ TkVSUyBiL01BSU5UQUlORVJTIGluZGV4IGM1YTcwM2I1YzAuLjVmOWVjY2M0M2YgDQo+IDEwMDY0 NA0KPiAtLS0gYS9NQUlOVEFJTkVSUw0KPiArKysgYi9NQUlOVEFJTkVSUw0KPiBAQCAtMTA3Niw2 ICsxMDc2LDEzIEBAIEY6IGRyaXZlcnMvbmV0L21lbWlmLw0KPiAgRjogZG9jL2d1aWRlcy9uaWNz L21lbWlmLnJzdA0KPiAgRjogZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL21lbWlmLmluaQ0KPg0K PiArUmVhbHRlayByODE2OQ0KPiArTTogSG93YXJkIFdhbmcgPGhvd2FyZF93YW5nQHJlYWxzaWwu Y29tLmNuPg0KPiArTTogQ2h1bkhhbyBMaW4gPGhhdUByZWFsdGVrLmNvbT4NCj4gK006IFhpbmcg V2FuZyA8eGluZ193YW5nQHJlYWxzaWwuY29tLmNuPg0KPiArTTogUmVhbHRlayBOSUMgU1cgPHBy b19uaWNfZHBka0ByZWFsdGVrLmNvbT4NCj4NCg0KV2UgcHJlZmVyIGF1dGhvcnMgYXMgbWFpbnRh aW5lciwgaW5zdGVhZCBvZiBncm91cC9hbGlhcywgYW5kIGFzIHlvdSBhbHJlYWR5IHByb3ZpZGUg bmFtZXMsIGNhbiB0aGlzIGJlIHJlbW92ZWQ/DQoNCg0KPiArRjogZHJpdmVycy9uZXQvcjgxNjkN Cj4gKw0KPg0KDQpQbGVhc2Ugc29ydCBhbHBoYWJldGljYWxseSBmb3IgJ1JlYWx0ZWsnDQoNCkNh biB5b3UgYWxzbyBhZGQgZHJpdmVyIGRvY3VtZW50YXRpb24gYW5kIHVwZGF0ZSByZWxlYXNlIG5v dGVzIGluIHRoaXMgcGF0Y2g/DQoNCg0KPg0KPiAgQ3J5cHRvIERyaXZlcnMNCj4gIC0tLS0tLS0t LS0tLS0tDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tZXNvbi5idWlsZCBiL2RyaXZlcnMv bmV0L21lc29uLmJ1aWxkIGluZGV4IA0KPiBmYjZkMzRiNzgyLi5mZGRjZjM5NjU1IDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL25ldC9tZXNvbi5idWlsZA0KPiArKysgYi9kcml2ZXJzL25ldC9tZXNv bi5idWlsZA0KPiBAQCAtNTMsNiArNTMsNyBAQCBkcml2ZXJzID0gWw0KPiAgICAgICAgICAncGZl JywNCj4gICAgICAgICAgJ3FlZGUnLA0KPiAgICAgICAgICAncmluZycsDQo+ICsgICAgICAgICdy ODE2OScsDQo+ICAgICAgICAgICdzZmMnLA0KPiAgICAgICAgICAnc29mdG5pYycsDQo+ICAgICAg ICAgICd0YXAnLA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcjgxNjkvbWVzb24uYnVpbGQg DQo+IGIvZHJpdmVycy9uZXQvcjgxNjkvbWVzb24uYnVpbGQgbmV3IGZpbGUgbW9kZSAxMDA2NDQg aW5kZXggDQo+IDAwMDAwMDAwMDAuLmYxNGQ0YWU4ZmINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysg Yi9kcml2ZXJzL25ldC9yODE2OS9tZXNvbi5idWlsZA0KPiBAQCAtMCwwICsxLDYgQEANCj4gKyMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZSAjIENvcHlyaWdodChjKSAyMDI0 IFJlYWx0ZWsgDQo+ICtDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZA0KPiArDQo+ICtz b3VyY2VzID0gZmlsZXMoDQo+ICsgICAgICAgICAgICAgJ3I4MTY5X2V0aGRldi5jJywNCj4gKykN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3I4MTY5L3I4MTY5X2Jhc2UuaCANCj4gYi9kcml2 ZXJzL25ldC9yODE2OS9yODE2OV9iYXNlLmggbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXggDQo+ IDAwMDAwMDAwMDAuLjZmYzg0NTkyYTYNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJz L25ldC9yODE2OS9yODE2OV9iYXNlLmgNCj4gQEAgLTAsMCArMSwxNSBAQA0KPiArLyogU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiArICogQ29weXJpZ2h0KGMpIDIwMjQg UmVhbHRlayBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZCAgKi8NCj4gKw0KPiArI2lm bmRlZiBfUjgxNjlfQkFTRV9IXw0KPiArI2RlZmluZSBfUjgxNjlfQkFTRV9IXw0KPiArDQo+ICt0 eXBlZGVmIHVpbnQ4X3QgICB1ODsNCj4gK3R5cGVkZWYgdWludDE2X3QgIHUxNjsNCj4gK3R5cGVk ZWYgdWludDMyX3QgIHUzMjsNCj4gK3R5cGVkZWYgdWludDY0X3QgIHU2NDsNCj4NCg0KbW9zdCBv ZiB0aGUgZHJpdmVycyBoYXMgJ2NvbXBhdC5oJyBvciAnPGRyaXZlcj5fY29tcGF0LmgnDQoocjgx NjlfY29tcGF0LmgpIGFzIGNvbXBhdGliaWxpdHkgbGF5ZXIgZm9yIERQREsgYW5kIGRlZmluZSBh Ym92ZSBsaWtlIHN0cnVjdHVyZXMgdGhlcmUuDQpJZiB0aGVyZSBpcyBubyBzcGVjaWZpYyByZWFz b24gdG8gaGF2ZSB0aGlzIGZpbGUgbmFtZSwgeW91IGNhbiBjcmVhdGUgYSBjb21wYXQuaCBmb3Ig Y29tcGF0aWJpbGl0eS4NCg0KPiArDQo+ICsjZGVmaW5lIFBDSV9WRU5ET1JfSURfUkVBTFRFSyAw eDEwRUMNCj4gKw0KPiArI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9yODE2OS9y ODE2OV9ldGhkZXYuYyANCj4gYi9kcml2ZXJzL25ldC9yODE2OS9yODE2OV9ldGhkZXYuYw0KPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi4xZjkwYTE0MmM1DQo+IC0t LSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy9uZXQvcjgxNjkvcjgxNjlfZXRoZGV2LmMNCj4g QEAgLTAsMCArMSwxNzggQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1D bGF1c2UNCj4gKyAqIENvcHlyaWdodChjKSAyMDI0IFJlYWx0ZWsgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQgICovDQo+ICsNCj4gKyNpbmNsdWRlIDxzeXMvcXVldWUuaD4NCj4gKyNp bmNsdWRlIDxzdGRpby5oPg0KPiArI2luY2x1ZGUgPGVycm5vLmg+DQo+ICsjaW5jbHVkZSA8c3Rk aW50Lmg+DQo+ICsjaW5jbHVkZSA8c3RkYXJnLmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxydGVfZWFs Lmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxydGVfc3RyaW5nX2Zucy5oPg0KPiArI2luY2x1ZGUgPHJ0 ZV9jb21tb24uaD4NCj4gKyNpbmNsdWRlIDxydGVfaW50ZXJydXB0cy5oPg0KPiArI2luY2x1ZGUg PHJ0ZV9ieXRlb3JkZXIuaD4NCj4gKyNpbmNsdWRlIDxydGVfbG9nLmg+DQo+ICsjaW5jbHVkZSA8 cnRlX2RlYnVnLmg+DQo+ICsjaW5jbHVkZSA8cnRlX3BjaS5oPg0KPiArI2luY2x1ZGUgPGJ1c19w Y2lfZHJpdmVyLmg+DQo+ICsjaW5jbHVkZSA8cnRlX2V0aGVyLmg+DQo+ICsjaW5jbHVkZSA8ZXRo ZGV2X2RyaXZlci5oPg0KPiArI2luY2x1ZGUgPGV0aGRldl9wY2kuaD4NCj4gKyNpbmNsdWRlIDxy dGVfbWVtb3J5Lmg+DQo+ICsjaW5jbHVkZSA8cnRlX21hbGxvYy5oPg0KPiArI2luY2x1ZGUgPGRl dl9kcml2ZXIuaD4NCj4NCg0KRG8geW91IHJlYWxseSBuZWVkIGFsbCB0aGVzZSBoZWFkZXJzIGhl cmU/DQpQbGVhc2Ugb25seSBpbmNsdWRlIG5lY2Vzc2FyeSBvbmVzIGFuZCBhZGQgdGhlbSB3aGVu IHlvdSBuZWVkIHRoZW0uDQoNCg0KPiArDQo+ICsjaW5jbHVkZSAicjgxNjlfZXRoZGV2LmgiDQo+ ICsjaW5jbHVkZSAicjgxNjlfYmFzZS5oIg0KPiArDQo+ICtzdGF0aWMgaW50IHJ0bF9kZXZfY29u ZmlndXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2IF9fcnRlX3VudXNlZCk7DQo+DQoNCk5vIG5l ZWQgdG8gaGF2ZSAnX19ydGVfdW51c2VkJyBhdHRyaWJ1dGUgZm9yIGZ1bmN0aW9uIGRlY2xlcmF0 aW9uLg0KDQo+ICtzdGF0aWMgaW50IHJ0bF9kZXZfc3RhcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYpOyBzdGF0aWMgaW50IA0KPiArcnRsX2Rldl9zdG9wKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 KTsgc3RhdGljIGludCANCj4gK3J0bF9kZXZfcmVzZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYp OyBzdGF0aWMgaW50IA0KPiArcnRsX2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7 DQo+ICsNCj4gKy8qDQo+ICsgKiBUaGUgc2V0IG9mIFBDSSBkZXZpY2VzIHRoaXMgZHJpdmVyIHN1 cHBvcnRzICAqLyBzdGF0aWMgY29uc3QgDQo+ICtzdHJ1Y3QgcnRlX3BjaV9pZCBwY2lfaWRfcjgx NjlfbWFwW10gPSB7DQo+ICsgICAgIHsgUlRFX1BDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFM VEVLLCAweDgxMjUpIH0sDQo+ICsgICAgIHsgUlRFX1BDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9S RUFMVEVLLCAweDgxNjIpIH0sDQo+ICsgICAgIHsgUlRFX1BDSV9ERVZJQ0UoUENJX1ZFTkRPUl9J RF9SRUFMVEVLLCAweDgxMjYpIH0sDQo+ICsgICAgIHsgUlRFX1BDSV9ERVZJQ0UoUENJX1ZFTkRP Ul9JRF9SRUFMVEVLLCAweDUwMDApIH0sDQo+ICsgICAgIHsudmVuZG9yX2lkID0gMCwgLyogc2Vu dGluZWwgKi8gfSwgfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBldGhfZGV2X29wcyBy dGxfZXRoX2Rldl9vcHMgPSB7DQo+ICsgICAgIC5kZXZfY29uZmlndXJlICAgICAgICA9IHJ0bF9k ZXZfY29uZmlndXJlLA0KPiArICAgICAuZGV2X3N0YXJ0ICAgICAgICAgICAgPSBydGxfZGV2X3N0 YXJ0LA0KPiArICAgICAuZGV2X3N0b3AgICAgICAgICAgICAgPSBydGxfZGV2X3N0b3AsDQo+ICsg ICAgIC5kZXZfY2xvc2UgICAgICAgICAgICA9IHJ0bF9kZXZfY2xvc2UsDQo+ICsgICAgIC5kZXZf cmVzZXQgICAgICAgICAgICA9IHJ0bF9kZXZfcmVzZXQsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMg aW50DQo+ICtydGxfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiBfX3J0ZV91 bnVzZWQpIHsNCj4gKyAgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsgKiBDb25m aWd1cmUgZGV2aWNlIGxpbmsgc3BlZWQgYW5kIHNldHVwIGxpbmsuDQo+ICsgKiBJdCByZXR1cm5z IDAgb24gc3VjY2Vzcy4NCj4gKyAqLw0KPiArc3RhdGljIGludA0KPiArcnRsX2Rldl9zdGFydChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikgew0KPiArICAgICBzdHJ1Y3QgcnRsX2FkYXB0ZXIgKmFk YXB0ZXIgPSBSVExfREVWX1BSSVZBVEUoZGV2KTsNCj4gKyAgICAgc3RydWN0IHJ0bF9odyAqaHcg PSAmYWRhcHRlci0+aHc7DQo+ICsNCj4gKyAgICAgaHctPmFkYXB0ZXJfc3RvcHBlZCA9IDA7DQo+ ICsNCj4gKyAgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsgKiBTdG9wIGRldmlj ZTogZGlzYWJsZSBSWCBhbmQgVFggZnVuY3Rpb25zIHRvIGFsbG93IGZvciByZWNvbmZpZ3VyaW5n Lg0KPiArICovDQo+ICtzdGF0aWMgaW50DQo+ICtydGxfZGV2X3N0b3Aoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYpIHsNCj4gKyAgICAgc3RydWN0IHJ0bF9hZGFwdGVyICphZGFwdGVyID0gUlRMX0RF Vl9QUklWQVRFKGRldik7DQo+ICsgICAgIHN0cnVjdCBydGxfaHcgKmh3ID0gJmFkYXB0ZXItPmh3 Ow0KPiArDQo+ICsgICAgIGlmIChody0+YWRhcHRlcl9zdG9wcGVkKQ0KPiArICAgICAgICAgICAg IHJldHVybiAwOw0KPg0KDQpUaGVyZSBpcyAnZGV2LT5kYXRhLT5kZXZfc3RhcnRlZCcgdmFyaWFi bGUgZm9yIGV4YWN0IHNhbWUgcmVhc29uLCBhbmQgaXQgaXMgY2hlY2tlZCBpbiAncnRlX2V0aF9k ZXZfc3RvcCgpJyBsZXZlbCwgZG8geW91IG5lZWQgdGhpcyBkcml2ZXIgdmVyc2lvbiBvZiBzYW1l IGZsYWc/DQoNCj4gKw0KPiArICAgICBody0+YWRhcHRlcl9zdG9wcGVkID0gMTsNCj4gKyAgICAg ZGV2LT5kYXRhLT5kZXZfc3RhcnRlZCA9IDA7DQo+DQoNClRoaXMgZmxhZyBpcyBzZXQgaW4gZXRo ZGV2IGxheWVyIGxldmVsLCBubyBuZWVkIHRvIHNldCBpdCBoZXJlLg0KDQo+ICsNCj4gKyAgICAg cmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsgKiBSZXNldCBhbmQgc3RvcCBkZXZpY2Uu DQo+ICsgKi8NCj4gK3N0YXRpYyBpbnQNCj4gK3J0bF9kZXZfY2xvc2Uoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYpIHsNCj4gKyAgICAgaW50IHJldF9zdHA7DQo+ICsNCj4gKyAgICAgaWYgKHJ0ZV9l YWxfcHJvY2Vzc190eXBlKCkgIT0gUlRFX1BST0NfUFJJTUFSWSkNCj4gKyAgICAgICAgICAgICBy ZXR1cm4gMDsNCj4gKw0KPiArICAgICByZXRfc3RwID0gcnRsX2Rldl9zdG9wKGRldik7DQo+ICsN Cj4gKyAgICAgcmV0dXJuIHJldF9zdHA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3J0 bF9kZXZfaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikgew0KPiArICAgICBzdHJ1Y3QgcnRl X3BjaV9kZXZpY2UgKnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsNCj4gKyAgICAg c3RydWN0IHJ0ZV9pbnRyX2hhbmRsZSAqaW50cl9oYW5kbGUgPSBwY2lfZGV2LT5pbnRyX2hhbmRs ZTsNCj4NCg0KJ2ludHJfaGFuZGxlJyBub3QgdXNlZCB5ZXQsIHBsZWFzZSBhZGQgaXQgd2hlbiB1 c2VkLg0KDQo+ICsgICAgIHN0cnVjdCBydGxfYWRhcHRlciAqYWRhcHRlciA9IFJUTF9ERVZfUFJJ VkFURShkZXYpOw0KPiArICAgICBzdHJ1Y3QgcnRsX2h3ICpodyA9ICZhZGFwdGVyLT5odzsNCj4g Kw0KPiArICAgICBkZXYtPmRldl9vcHMgPSAmcnRsX2V0aF9kZXZfb3BzOw0KPiArDQo+ICsgICAg IC8qIEZvciBzZWNvbmRhcnkgcHJvY2Vzc2VzLCB0aGUgcHJpbWFyeSBwcm9jZXNzIGhhcyBkb25l IGFsbCB0aGUgd29yayAqLw0KPiArICAgICBpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSAhPSBS VEVfUFJPQ19QUklNQVJZKQ0KPiArICAgICAgICAgICAgIHJldHVybiAwOw0KPiArDQo+ICsgICAg IHJ0ZV9ldGhfY29weV9wY2lfaW5mbyhkZXYsIHBjaV9kZXYpOw0KPg0KDQpUaGlzIGlzIGFscmVh ZHkgZG9uZSBhcyBwYXJ0IG9mICdydGVfZXRoX2Rldl9wY2lfZ2VuZXJpY19wcm9iZSgpJywNCnNo b3VsZG4ndCBuZWVkIHRvIGRvIGhlcmUuIENhbiB5b3UgcGxlYXNlIGRvdWJsZSBjaGVjaz8NCg0K PiArDQo+ICsgICAgIHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICtydGxf ZGV2X3VuaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikgew0KPiArICAgICBpZiAocnRlX2Vh bF9wcm9jZXNzX3R5cGUoKSAhPSBSVEVfUFJPQ19QUklNQVJZKQ0KPiArICAgICAgICAgICAgIHJl dHVybiAtRVBFUk07DQo+ICsNCj4gKyAgICAgcnRsX2Rldl9jbG9zZShkZXYpOw0KPiArDQo+ICsg ICAgIHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICtydGxfZGV2X3Jlc2V0 KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KSB7DQo+ICsgICAgIGludCByZXQ7DQo+ICsNCj4gKyAg ICAgcmV0ID0gcnRsX2Rldl91bmluaXQoZGV2KTsNCj4gKyAgICAgaWYgKHJldCkNCj4gKyAgICAg ICAgICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsgICAgIHJldCA9IHJ0bF9kZXZfaW5pdChkZXYp Ow0KPiArDQo+ICsgICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4g K3J0bF9wY2lfcHJvYmUoc3RydWN0IHJ0ZV9wY2lfZHJpdmVyICpwY2lfZHJ2IF9fcnRlX3VudXNl ZCwNCj4gKyAgICAgICAgICAgc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2KSB7DQo+ICsg ICAgIHJldHVybiBydGVfZXRoX2Rldl9wY2lfZ2VuZXJpY19wcm9iZShwY2lfZGV2LCBzaXplb2Yo c3RydWN0IHJ0bF9hZGFwdGVyKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJ0bF9kZXZfaW5pdCk7IH0NCj4gKw0KPiArc3RhdGljIGludA0KPiArcnRsX3Bj aV9yZW1vdmUoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2KSB7DQo+ICsgICAgIHJldHVy biBydGVfZXRoX2Rldl9wY2lfZ2VuZXJpY19yZW1vdmUocGNpX2RldiwgcnRsX2Rldl91bmluaXQp OyANCj4gK30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBydGVfcGNpX2RyaXZlciBydGVfcjgxNjlf cG1kID0gew0KPiArICAgICAuaWRfdGFibGUgID0gcGNpX2lkX3I4MTY5X21hcCwNCj4gKyAgICAg LmRydl9mbGFncyA9IFJURV9QQ0lfRFJWX05FRURfTUFQUElORyB8IFJURV9QQ0lfRFJWX0lOVFJf TFNDLA0KPiArICAgICAucHJvYmUgICAgID0gcnRsX3BjaV9wcm9iZSwNCj4gKyAgICAgLnJlbW92 ZSAgICA9IHJ0bF9wY2lfcmVtb3ZlLA0KPiArfTsNCj4gKw0KPiArUlRFX1BNRF9SRUdJU1RFUl9Q Q0kobmV0X3I4MTY5LCBydGVfcjgxNjlfcG1kKTsgDQo+ICtSVEVfUE1EX1JFR0lTVEVSX1BDSV9U QUJMRShuZXRfcjgxNjksIHBjaV9pZF9yODE2OV9tYXApOyANCj4gK1JURV9QTURfUkVHSVNURVJf S01PRF9ERVAobmV0X3I4MTY5LCAiKiBpZ2JfdWlvIHwgdWlvX3BjaV9nZW5lcmljIHwgDQo+ICt2 ZmlvLXBjaSIpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcjgxNjkvcjgxNjlfZXRoZGV2 LmggDQo+IGIvZHJpdmVycy9uZXQvcjgxNjkvcjgxNjlfZXRoZGV2LmgNCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uZTM3ZjA1YzE1Mw0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiL2RyaXZlcnMvbmV0L3I4MTY5L3I4MTY5X2V0aGRldi5oDQo+IEBAIC0wLDAgKzEs NDAgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAq IENvcHlyaWdodChjKSAyMDI0IFJlYWx0ZWsgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2 ZWQgICovDQo+ICsNCj4gKyNpZm5kZWYgX1I4MTY5X0VUSERFVl9IXw0KPiArI2RlZmluZSBfUjgx NjlfRVRIREVWX0hfDQo+ICsNCj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4NCj4gKyNpbmNsdWRlIDxz dGRib29sLmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxydGVfZXRoZGV2Lmg+DQo+ICsjaW5jbHVkZSA8 cnRlX2V0aGRldl9jb3JlLmg+DQo+ICsNCj4gKyNpbmNsdWRlICJyODE2OV9iYXNlLmgiDQo+ICsN Cj4gK3N0cnVjdCBydGxfaHcgew0KPiArICAgICB1OCBhZGFwdGVyX3N0b3BwZWQ7DQo+ICt9Ow0K PiArDQo+ICtzdHJ1Y3QgcnRsX3N3X3N0YXRzIHsNCj4gKyAgICAgdTY0IHR4X3BhY2tldHM7DQo+ ICsgICAgIHU2NCB0eF9ieXRlczsNCj4gKyAgICAgdTY0IHR4X2Vycm9yczsNCj4gKyAgICAgdTY0 IHJ4X3BhY2tldHM7DQo+ICsgICAgIHU2NCByeF9ieXRlczsNCj4gKyAgICAgdTY0IHJ4X2Vycm9y czsNCj4gK307DQo+ICsNCj4gK3N0cnVjdCBydGxfYWRhcHRlciB7DQo+ICsgICAgIHN0cnVjdCBy dGxfaHcgICAgICAgaHc7DQo+ICsgICAgIHN0cnVjdCBydGxfc3dfc3RhdHMgc3dfc3RhdHM7DQo+ ICt9Ow0KPiArDQo+ICsjZGVmaW5lIFJUTF9ERVZfUFJJVkFURShldGhfZGV2KSBcDQo+ICsgICAg ICgoc3RydWN0IHJ0bF9hZGFwdGVyICopKChldGhfZGV2KS0+ZGF0YS0+ZGV2X3ByaXZhdGUpKQ0K PiArDQo+ICt1aW50MTZfdCBydGxfeG1pdF9wa3RzKHZvaWQgKnR4cSwgc3RydWN0IHJ0ZV9tYnVm ICoqdHhfcGt0cywgdWludDE2X3QgDQo+ICtuYl9wa3RzKTsgdWludDE2X3QgcnRsX3JlY3ZfcGt0 cyh2b2lkICpyeHEsIHN0cnVjdCBydGVfbWJ1ZiANCj4gKyoqcnhfcGt0cywgdWludDE2X3QgbmJf cGt0cyk7DQo+DQoNClRoZXNlIGZ1bmN0aW9ucyBkb24ndCBleGlzdHMgeWV0LCBwbGVhc2UgYWRk IHRoZSBkZWNsYXJhdGlvbnMgd2hlbiBmdW5jdGlvbnMgYWRkZWQuDQoNCj4gKw0KPiArI2VuZGlm DQoNCg==