Return-Path: From: "Liu, Raymond" To: "linux-bluetooth@vger.kernel.org" Date: Tue, 20 Jan 2009 14:22:26 +0800 Subject: [Patch] SAP client plugin framework Message-ID: <0463F45F3606F4428ED35AC8C709F92E048D8FE6@pdsmsx502.ccr.corp.intel.com> References: <200901051015.20512.siarhei.siamashka@nokia.com> <2d5a2c100901161402t65173745xd6f83e90a2057ffb@mail.gmail.com> <200901172010.05061.siarhei.siamashka@nokia.com> <200901191326.07133.siarhei.siamashka@nokia.com> <1232366739.19390.16.camel@californication> In-Reply-To: <1232366739.19390.16.camel@californication> Content-Type: multipart/mixed; boundary="_003_0463F45F3606F4428ED35AC8C709F92E048D8FE6pdsmsx502ccrcor_" MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: --_003_0463F45F3606F4428ED35AC8C709F92E048D8FE6pdsmsx502ccrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Holtmann, Johan The attach patch is for the SAP DBUS API doc and the initial framework cod= e for SAP plugin. Could you help to have a review. Thanks! Best Regards, Raymond Liu --_003_0463F45F3606F4428ED35AC8C709F92E048D8FE6pdsmsx502ccrcor_ Content-Type: application/octet-stream; name="0001-Add-sap-api.txt-for-SAP-Client.patch" Content-Description: 0001-Add-sap-api.txt-for-SAP-Client.patch Content-Disposition: attachment; filename="0001-Add-sap-api.txt-for-SAP-Client.patch"; size=2143; creation-date="Tue, 20 Jan 2009 14:21:07 GMT"; modification-date="Tue, 20 Jan 2009 14:09:35 GMT" Content-Transfer-Encoding: base64 RnJvbSBlNDNiOTg4YTA1ZThiNWE3NTVjNTVjODg5YjdhMTVmMWZjNWM3OWM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYXltb25kIExpdSA8cmF5bW9uZC5saXVAaW50ZWwuY29tPgpE YXRlOiBGcmksIDE2IEphbiAyMDA5IDE1OjU5OjAxICswODAwClN1YmplY3Q6IFtQQVRDSF0gQWRk IHNhcC1hcGkudHh0IGZvciBTQVAgQ2xpZW50CgotLS0KIGRvYy9zYXAtYXBpLnR4dCB8ICAgNjkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRvYy9zYXAtYXBpLnR4dAoKZGlmZiAtLWdpdCBhL2RvYy9zYXAtYXBpLnR4 dCBiL2RvYy9zYXAtYXBpLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w MGViMjhhCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NhcC1hcGkudHh0CkBAIC0wLDAgKzEsNjkg QEAKK0JsdWVaIEQtQnVzIFNBUCBBUEkgZGVzY3JpcHRpb24KKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorCitDb3B5cmlnaHQgKEMpIDIwMDgtMjAwOSBJbnRlbCBDb3Jwb3JhdGlv bgorCisKK1NJTSBBY2Nlc3MgUHJvZmlsZSBDbGllbnQgaGllcmFyY2h5Cis9PT09PT09PT09PT09 PT0KKworU2VydmljZQkJb3JnLmJsdWV6CitJbnRlcmZhY2UJb3JnLmJsdWV6LlNpbUFjY2Vzcwor T2JqZWN0IHBhdGgJW3ZhcmlhYmxlIHByZWZpeF0ve2hjaTAsaGNpMSwuLi59L2Rldl9YWF9YWF9Y WF9YWF9YWF9YWAorCitNZXRob2RzCQl2b2lkIENvbm5lY3QoKQorCisJCQlDb25uZWN0IHRvIHRo ZSBTQVAgc2VydmljZSBvbiB0aGUgcmVtb3RlIGRldmljZS4KKworCQl2b2lkIERpc2Nvbm5lY3Qo KQorCisJCQlEaXNjb25uZWN0IGZyb20gdGhlIFNBUCBzZXJ2aWNlIG9uIHRoZSByZW1vdGUgZGV2 aWNlLgorCisJCWFycmF5e3VpbnQ4fSBTZW5kQVBEVShhcnJheXt1aW50OH0pCisKKwkJCVNlbmQg Q29tbWFuZC1BUERVIHRvIHRoZSByZW1vdGUgZGV2aWNlLgorCQkJVGhlIHJldHVybiBhcnJheSBj b250YWlucyBSZXNwb25zZS1BUERVCisKKwkJdm9pZCBQb3dlck9mZigpCisKKwkJCVBvd2VyIE9m ZiB0aGUgcmVtb3RlIHN1YnNjcmlwdGlvbiBtb2R1bGUuCisKKwkJdm9pZCBQb3dlck9uKCkKKwor CQkJUG93ZXIgT24gdGhlIHJlbW90ZSBzdWJzY3JpcHRpb24gbW9kdWxlLgorCisJCXZvaWQgUmVz ZXQoKQorCisJCQlSZXNldCB0aGUgcmVtb3RlIHN1YnNjcmlwdGlvbiBtb2R1bGUuCisKKwkJdm9p ZCBTZXRQcm90b2NvbCh1aW50OCBUKQorCisJCQlTZWxlY3QgdGhlIHRyYW5zcG9ydCBwcm90b2Nv bCB3aXRoIHRoZSByZW1vdGUgc3Vic2NyaXB0aW9uIG1vZHVsZS4KKwkJCU9ubHkgVCA9IDAsIFQg PSAxIGlzIHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBzcGVjLgorCisJCWRpY3QgR2V0UHJvcGVy dGllcygpCisKKwkJCVJldHVybnMgYWxsIHByb3BlcnRpZXMgZm9yIHRoZSBpbnRlcmZhY2UuIFNl ZSB0aGUKKwkJCXByb3BlcnRpZXMgc2VjdGlvbiBmb3IgYXZhaWxhYmxlIHByb3BlcnRpZXMuCisK K1NpZ25hbHMJCVByb3BlcnR5Q2hhbmdlZChzdHJpbmcgbmFtZSwgdmFyaWFudCB2YWx1ZSkKKwor CQkJVGhpcyBzaWduYWwgaW5kaWNhdGVzIGEgY2hhbmdlZCB2YWx1ZSBvZiB0aGUgZ2l2ZW4KKwkJ CXByb3BlcnR5LgorCitQcm9wZXJ0aWVzCWJvb2xlYW4gQ29ubmVjdGVkIFtyZWFkb25seV0KKwor CQkJSW5kaWNhdGVzIGlmIHRoZXJlIGlzIGFuIGFjdGl2ZSBjb25uZWN0aW9uIG9uIFNBUCBzZXJ2 aWNlCisJCQl3aXRoIHRoZSByZW1vdGUgZGV2aWNlLgorCisJCWJvb2xlYW4gUG93ZXJlZCBbcmVh ZG9ubHldCisKKwkJCUluZGljYXRlcyB3aGV0aGVyIHRoZSByZW1vdGUgc3Vic2NyaXB0aW9uIG1v ZHVsZSBpcyBwb3dlcmVkLgorCisJCXVpbnQ4IE1vZHVsZVN0YXR1cyBbcmVhZG9ubHldCisKKwkJ CUluZGljYXRlcyB0aGUgc3RhdHVzIG9mIHRoZSBzdWJzY3JpcHRpb24gbW9kdWxlLgorCisJCXVp bnQ4IENhcmRSZWFkZXJTdGF0dXMgW3JlYWRvbmx5XQorCisJCQlJbmRpY2F0ZXMgdGhlIHN0YXR1 cyBvZiB0aGUgQ2FyZFJlYWRlci4KLS0gCjEuNS42LjMKCg== --_003_0463F45F3606F4428ED35AC8C709F92E048D8FE6pdsmsx502ccrcor_ Content-Type: application/octet-stream; name="0002-Add-framework-code-for-SAP.patch" Content-Description: 0002-Add-framework-code-for-SAP.patch Content-Disposition: attachment; filename="0002-Add-framework-code-for-SAP.patch"; size=16555; creation-date="Tue, 20 Jan 2009 14:21:07 GMT"; modification-date="Tue, 20 Jan 2009 14:09:35 GMT" Content-Transfer-Encoding: base64 RnJvbSBhNTE4NTM2Nzg1ZmYzZjk2MjM0Y2U4YmZkZmUwMDJkNmVlZTMzMGQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYXltb25kIExpdSA8cmF5bW9uZC5saXVAaW50ZWwuY29tPgpE YXRlOiBUdWUsIDIwIEphbiAyMDA5IDEzOjQ3OjEyICswODAwClN1YmplY3Q6IFtQQVRDSF0gQWRk IGZyYW1ld29yayBjb2RlIGZvciBTQVAKCi0tLQogTWFrZWZpbGUuYW0gICAgICAgICB8ICAgIDIg Ky0KIGFjaW5jbHVkZS5tNCAgICAgICAgfCAgICA2ICsrCiBjb25maWd1cmUuYWMgICAgICAgIHwg ICAgMSArCiBwbHVnaW5zL01ha2VmaWxlLmFtIHwgICAgMiArCiBzYXAvTWFrZWZpbGUuYW0gICAg IHwgICAyMSArKysrKwogc2FwL2RldmljZS5jICAgICAgICB8ICAyMTkgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzYXAvZGV2aWNlLmggICAgICAg IHwgICAyOCArKysrKysrCiBzYXAvbWFpbi5jICAgICAgICAgIHwgICA1OSArKysrKysrKysrKysr Kwogc2FwL21hbmFnZXIuYyAgICAgICB8ICAxMzAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBzYXAvbWFuYWdlci5oICAgICAgIHwgICAyNiArKysrKysKIDEwIGZpbGVzIGNoYW5nZWQs IDQ5MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNh cC9NYWtlZmlsZS5hbQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNhcC9kZXZpY2UuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNhcC9kZXZpY2UuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNhcC9tYWluLmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzYXAvbWFuYWdlci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc2FwL21h bmFnZXIuaAoKZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KaW5kZXggZjJk MWNhNy4uYzY4OTlkMiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuYW0KKysrIGIvTWFrZWZpbGUuYW0K QEAgLTEsNiArMSw2IEBACiAKIFNVQkRJUlMgPSBpbmNsdWRlIGxpYiBzYmMgZ2RidXMgY29tbW9u IHNyYyBjbGllbnRcCi0JcGx1Z2lucyBuZXR3b3JrIHNlcmlhbCBpbnB1dCBhdWRpbyBcCisJcGx1 Z2lucyBuZXR3b3JrIHNlcmlhbCBpbnB1dCBhdWRpbyBzYXAgXAogCXRvb2xzIHJmY29tbSBjb21w YXQgY3VwcyB0ZXN0IHNjcmlwdHMgZG9jCiAKIEVYVFJBX0RJU1QgPSBibHVlei5tNApkaWZmIC0t Z2l0IGEvYWNpbmNsdWRlLm00IGIvYWNpbmNsdWRlLm00CmluZGV4IDM3MjgzM2UuLjcwNGM5ZWUg MTAwNjQ0Ci0tLSBhL2FjaW5jbHVkZS5tNAorKysgYi9hY2luY2x1ZGUubTQKQEAgLTE4Niw2ICsx ODYsNyBAQCBBQ19ERUZVTihbQUNfQVJHX0JMVUVaXSwgWwogCWlucHV0X2VuYWJsZT15ZXMKIAlz ZXJpYWxfZW5hYmxlPXllcwogCW5ldHdvcmtfZW5hYmxlPXllcworCXNhcF9lbmFibGU9eWVzCiAJ c2VydmljZV9lbmFibGU9eWVzCiAJdG9vbHNfZW5hYmxlPXllcwogCWhpZGRfZW5hYmxlPW5vCkBA IC0yMjYsNiArMjI3LDEwIEBAIEFDX0RFRlVOKFtBQ19BUkdfQkxVRVpdLCBbCiAJCWF1ZGlvX2Vu YWJsZT0ke2VuYWJsZXZhbH0KIAldKQogCisJQUNfQVJHX0VOQUJMRShzYXAsIEFDX0hFTFBfU1RS SU5HKFstLWRpc2FibGUtc2FwXSwgW2Rpc2FibGUgc2FwIHBsdWdpbl0pLCBbCisJCXNhcF9lbmFi bGU9JHtlbmFibGV2YWx9CisJXSkKKwogCUFDX0FSR19FTkFCTEUoc2VydmljZSwgQUNfSEVMUF9T VFJJTkcoWy0tZGlzYWJsZS1zZXJ2aWNlXSwgW2Rpc2FibGUgc2VydmljZSBwbHVnaW5dKSwgWwog CQlzZXJ2aWNlX2VuYWJsZT0ke2VuYWJsZXZhbH0KIAldKQpAQCAtMzQ0LDYgKzM0OSw3IEBAIEFD X0RFRlVOKFtBQ19BUkdfQkxVRVpdLCBbCiAJQU1fQ09ORElUSU9OQUwoSU5QVVRQTFVHSU4sIHRl c3QgIiR7aW5wdXRfZW5hYmxlfSIgPSAieWVzIikKIAlBTV9DT05ESVRJT05BTChTRVJJQUxQTFVH SU4sIHRlc3QgIiR7c2VyaWFsX2VuYWJsZX0iID0gInllcyIpCiAJQU1fQ09ORElUSU9OQUwoTkVU V09SS1BMVUdJTiwgdGVzdCAiJHtuZXR3b3JrX2VuYWJsZX0iID0gInllcyIpCisJQU1fQ09ORElU SU9OQUwoU0FQUExVR0lOLCB0ZXN0ICIke3NhcF9lbmFibGV9IiA9ICJ5ZXMiKQogCUFNX0NPTkRJ VElPTkFMKFNFUlZJQ0VQTFVHSU4sIHRlc3QgIiR7c2VydmljZV9lbmFibGV9IiA9ICJ5ZXMiKQog CUFNX0NPTkRJVElPTkFMKEhJREQsIHRlc3QgIiR7aGlkZF9lbmFibGV9IiA9ICJ5ZXMiKQogCUFN X0NPTkRJVElPTkFMKFBBTkQsIHRlc3QgIiR7cGFuZF9lbmFibGV9IiA9ICJ5ZXMiKQpkaWZmIC0t Z2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDg0YTYyMzQuLmJjN2NmNmIg MTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTU1LDYgKzU1 LDcgQEAgQUNfT1VUUFVUKFsKIAlzZXJpYWwvTWFrZWZpbGUKIAlpbnB1dC9NYWtlZmlsZQogCWF1 ZGlvL01ha2VmaWxlCisJc2FwL01ha2VmaWxlCiAJdG9vbHMvTWFrZWZpbGUKIAlyZmNvbW0vTWFr ZWZpbGUKIAljb21wYXQvTWFrZWZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvTWFrZWZpbGUuYW0g Yi9wbHVnaW5zL01ha2VmaWxlLmFtCmluZGV4IDNiMjU4YTMuLjdhZDc2ZmUgMTAwNjQ0Ci0tLSBh L3BsdWdpbnMvTWFrZWZpbGUuYW0KKysrIGIvcGx1Z2lucy9NYWtlZmlsZS5hbQpAQCAtNDYsNiAr NDYsNyBAQCBhbGwtbG9jYWw6CiAJQCQoTE5fUykgLWYgJCh0b3Bfc3JjZGlyKS9hdWRpby8ubGli cy9hdWRpby5zbwogCUAkKExOX1MpIC1mICQodG9wX3NyY2Rpcikvc2VyaWFsLy5saWJzL3Nlcmlh bC5zbwogCUAkKExOX1MpIC1mICQodG9wX3NyY2RpcikvbmV0d29yay8ubGlicy9uZXR3b3JrLnNv CisJQCQoTE5fUykgLWYgJCh0b3Bfc3JjZGlyKS9zYXAvLmxpYnMvc2FwLnNvCiAJQCQoTE5fUykg LWYgLmxpYnMvc2VydmljZS5zbwogCUAkKExOX1MpIC1mIC5saWJzL2hhbC5zbwogCkBAIC01Niwz ICs1Nyw0IEBAIGNsZWFuLWxvY2FsOgogCUBybSAtZiBzZXJpYWwuc28KIAlAcm0gLWYgYXVkaW8u c28KIAlAcm0gLWYgaW5wdXQuc28KKwlAcm0gLWYgc2FwLnNvCmRpZmYgLS1naXQgYS9zYXAvTWFr ZWZpbGUuYW0gYi9zYXAvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uYWFkOTVmMwotLS0gL2Rldi9udWxsCisrKyBiL3NhcC9NYWtlZmlsZS5hbQpAQCAtMCww ICsxLDIxIEBACisKK2lmIFNBUFBMVUdJTgorcGx1Z2luZGlyID0gJChsaWJkaXIpL2JsdWV0b290 aC9wbHVnaW5zCisKK3BsdWdpbl9MVExJQlJBUklFUyA9IHNhcC5sYQorCitzYXBfbGFfU09VUkNF UyA9IG1haW4uYyBtYW5hZ2VyLmggbWFuYWdlci5jIFwKKwkJZGV2aWNlLmggZGV2aWNlLmMKKwor TERBREQgPSAkKHRvcF9idWlsZGRpcikvY29tbW9uL2xpYmhlbHBlci5hIFwKKwkJQEdEQlVTX0xJ QlNAIEBHTElCX0xJQlNAIEBEQlVTX0xJQlNAIEBCTFVFWl9MSUJTQAorZW5kaWYKKworQU1fTERG TEFHUyA9IC1tb2R1bGUgLWF2b2lkLXZlcnNpb24gLW5vLXVuZGVmaW5lZCBcCisJCQktZXhwb3J0 LXN5bWJvbHMtcmVnZXggYmx1ZXRvb3RoX3BsdWdpbl9kZXNjCisKK0FNX0NGTEFHUyA9IEBCTFVF Wl9DRkxBR1NAIEBEQlVTX0NGTEFHU0AgQEdMSUJfQ0ZMQUdTQCBAR0RCVVNfQ0ZMQUdTQAorCitJ TkNMVURFUyA9IC1JJCh0b3Bfc3JjZGlyKS9jb21tb24gLUkkKHRvcF9zcmNkaXIpL3NyYworCitN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCmRpZmYgLS1naXQgYS9zYXAvZGV2aWNl LmMgYi9zYXAvZGV2aWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNj NGEwYQotLS0gL2Rldi9udWxsCisrKyBiL3NhcC9kZXZpY2UuYwpAQCAtMCwwICsxLDIxOSBAQAor LyoKKyAqCisgKiAgQmx1ZVogLSBCbHVldG9vdGggcHJvdG9jb2wgc3RhY2sgZm9yIExpbnV4Cisg KgorICogIENvcHlyaWdodCAoQykgMjAwOSBJbnRlbCBDb3Jwb3JhdGlvbgorICogIENvcHlyaWdo dCAoQykgMjAwNC0yMDA5ICBNYXJjZWwgSG9sdG1hbm4gPG1hcmNlbEBob2x0bWFubi5vcmc+Cisg KgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAq ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5j LiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV U0EKKyAqCisgKi8KKworI2lmZGVmIEhBVkVfQ09ORklHX0gKKyNpbmNsdWRlIDxjb25maWcuaD4K KyNlbmRpZgorCisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2luY2x1ZGUgPGJsdWV0b290aC9ibHVl dG9vdGguaD4KKyNpbmNsdWRlIDxibHVldG9vdGgvaGNpLmg+CisjaW5jbHVkZSA8Ymx1ZXRvb3Ro L3NkcC5oPgorI2luY2x1ZGUgPGJsdWV0b290aC9zZHBfbGliLmg+CisKKyNpbmNsdWRlIDxnbGli Lmg+CisjaW5jbHVkZSA8Z2RidXMuaD4KKworI2luY2x1ZGUgIi4uL3NyYy9kYnVzLWNvbW1vbi5o IgorCisjaW5jbHVkZSAibG9nZ2luZy5oIgorI2luY2x1ZGUgImdsaWItaGVscGVyLmgiCisKKyNp bmNsdWRlICJkZXZpY2UuaCIKKworI2RlZmluZSBTQVBfQ0xJRU5UX0lOVEVSRkFDRQkib3JnLmJs dWV6LlNpbUFjY2VzcyIKKworc3RydWN0IHNhcF9kZXZpY2UgeworCURCdXNDb25uZWN0aW9uCSpj b25uOworCWJkYWRkcl90CXNyYzsJCS8qIFNvdXJjZSAobG9jYWwpIGFkZHJlc3MgKi8KKwliZGFk ZHJfdAlkc3Q7CQkvKiBEZXN0aW5hdGlvbiBhZGRyZXNzICovCisJY2hhcgkJKnBhdGg7CQkvKiBE ZXZpY2UgcGF0aCAqLworCXVpbnQ4X3QJCWNoYW5uZWw7CS8qIFNBUCBzZXJ2ZXIncyByZmNvbW0g Y2hhbm5lbCAqLworfTsKKworc3RhdGljIEdTTGlzdCAqZGV2aWNlcyA9IE5VTEw7CisKK3N0YXRp YyBzdHJ1Y3Qgc2FwX2RldmljZSAqZmluZF9kZXZpY2UoR1NMaXN0ICpkZXZpY2VzLCBjb25zdCBj aGFyICpwYXRoKQoreworCUdTTGlzdCAqbDsKKworCWZvciAobCA9IGRldmljZXM7IGwgIT0gTlVM TDsgbCA9IGwtPm5leHQpIHsKKwkJc3RydWN0IHNhcF9kZXZpY2UgKmRldmljZSA9IGwtPmRhdGE7 CisKKwkJaWYgKCFzdHJjbXAoZGV2aWNlLT5wYXRoLCBwYXRoKSkKKwkJCXJldHVybiBkZXZpY2U7 CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIHNhcF9kZXZpY2VfZnJlZShz dHJ1Y3Qgc2FwX2RldmljZSAqZGV2aWNlKQoreworCWdfZnJlZShkZXZpY2UtPnBhdGgpOworCWlm IChkZXZpY2UtPmNvbm4pCisJCWRidXNfY29ubmVjdGlvbl91bnJlZihkZXZpY2UtPmNvbm4pOwor CWdfZnJlZShkZXZpY2UpOworfQorCitzdGF0aWMgdm9pZCBwYXRoX3VucmVnaXN0ZXIodm9pZCAq ZGF0YSkKK3sKKwlzdHJ1Y3Qgc2FwX2RldmljZSAqZGV2aWNlID0gZGF0YTsKKworCWluZm8oIlVu cmVnaXN0ZXJlZCBpbnRlcmZhY2UgJXMgb24gcGF0aCAlcyIsIFNBUF9DTElFTlRfSU5URVJGQUNF LAorCQlkZXZpY2UtPnBhdGgpOworCisJZGV2aWNlcyA9IGdfc2xpc3RfcmVtb3ZlKGRldmljZXMs IGRldmljZSk7CisJc2FwX2RldmljZV9mcmVlKGRldmljZSk7Cit9CisKK3N0YXRpYyBEQnVzTWVz c2FnZSAqc2FwX2Nvbm5lY3QoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sCisJCQkJREJ1c01lc3NhZ2Ug Km1zZywgdm9pZCAqZGF0YSkKK3sKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIERCdXNNZXNz YWdlICpzYXBfZGlzY29ubmVjdChEQnVzQ29ubmVjdGlvbiAqY29ubiwKKwkJCQkJREJ1c01lc3Nh Z2UgKm1zZywgdm9pZCAqZGF0YSkKK3sKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIERCdXNN ZXNzYWdlICpzYXBfc2VuZF9hcGR1KERCdXNDb25uZWN0aW9uICpjb25uLAorCQkJCQlEQnVzTWVz c2FnZSAqbXNnLCB2b2lkICpkYXRhKQoreworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgREJ1 c01lc3NhZ2UgKnNhcF9wb3dlcl9vbihEQnVzQ29ubmVjdGlvbiAqY29ubiwKKwkJCQkJREJ1c01l c3NhZ2UgKm1zZywgdm9pZCAqZGF0YSkKK3sKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIERC dXNNZXNzYWdlICpzYXBfcG93ZXJfb2ZmKERCdXNDb25uZWN0aW9uICpjb25uLAorCQkJCQlEQnVz TWVzc2FnZSAqbXNnLCB2b2lkICpkYXRhKQoreworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMg REJ1c01lc3NhZ2UgKnNhcF9yZXNldChEQnVzQ29ubmVjdGlvbiAqY29ubiwKKwkJCQlEQnVzTWVz c2FnZSAqbXNnLCB2b2lkICpkYXRhKQoreworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgREJ1 c01lc3NhZ2UgKnNhcF9zZXRfcHJvdG9jb2woREJ1c0Nvbm5lY3Rpb24gKmNvbm4sCisJCQkJCURC dXNNZXNzYWdlICptc2csIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRp YyBEQnVzTWVzc2FnZSAqc2FwX2dldF9wcm9wZXJ0aWVzKERCdXNDb25uZWN0aW9uICpjb25uLAor CQkJCQlEQnVzTWVzc2FnZSAqbXNnLCB2b2lkICpkYXRhKQoreworCXJldHVybiBOVUxMOworfQor CitzdGF0aWMgR0RCdXNNZXRob2RUYWJsZSBzYXBfbWV0aG9kc1tdID0geworCXsgIkNvbm5lY3Qi LAkJIiIsCSIiLAlzYXBfY29ubmVjdCwKKwkJCQkJCUdfREJVU19NRVRIT0RfRkxBR19BU1lOQyB9 LAorCXsgIkRpc2Nvbm5lY3QiLAkJIiIsCSIiLAlzYXBfZGlzY29ubmVjdCwKKwkJCQkJCUdfREJV U19NRVRIT0RfRkxBR19BU1lOQyB9LAorCXsgIlNlbmRBUERVIiwJCSJheSIsCSJheSIsCXNhcF9z ZW5kX2FwZHUsCisJCQkJCQlHX0RCVVNfTUVUSE9EX0ZMQUdfQVNZTkMgfSwKKwl7ICJQb3dlck9m ZiIsCQkiIiwJIiIsCXNhcF9wb3dlcl9vZmYsCisJCQkJCQlHX0RCVVNfTUVUSE9EX0ZMQUdfREVQ UkVDQVRFRCB9LAorCXsgIlBvd2VyT24iLAkJIiIsCSIiLAlzYXBfcG93ZXJfb24sCisJCQkJCQlH X0RCVVNfTUVUSE9EX0ZMQUdfREVQUkVDQVRFRCB9LAorCXsgIlJlc2V0IiwJCSIiLAkiIiwJc2Fw X3Jlc2V0LAorCQkJCQkJR19EQlVTX01FVEhPRF9GTEFHX0RFUFJFQ0FURUQgfSwKKwl7ICJTZXRQ cm90b2NvbCIsCSJ5IiwJIiIsCXNhcF9zZXRfcHJvdG9jb2wsCisJCQkJCQlHX0RCVVNfTUVUSE9E X0ZMQUdfREVQUkVDQVRFRCB9LAorCXsgIkdldFByb3BlcnRpZXMiLAkiIiwJImF7c3Z9IixzYXBf Z2V0X3Byb3BlcnRpZXMgfSwKKwl7IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfQorfTsKKworc3Rh dGljIEdEQnVzU2lnbmFsVGFibGUgc2FwX3NpZ25hbHNbXSA9IHsKKwl7ICJQcm9wZXJ0eUNoYW5n ZWQiLAkJInN2Igl9LAorCXsgTlVMTCwgTlVMTCB9Cit9OworCitzdGF0aWMgc3RydWN0IHNhcF9k ZXZpY2UgKmNyZWF0ZV9zYXBfZGV2aWNlKERCdXNDb25uZWN0aW9uICpjb25uLAorCQkJCQljb25z dCBjaGFyICpwYXRoLCBiZGFkZHJfdCAqc3JjLAorCQkJCQliZGFkZHJfdCAqZHN0LCB1aW50OF90 IGNoYW5uZWwpCit7CisJc3RydWN0IHNhcF9kZXZpY2UgKmRldmljZTsKKworCWRldmljZSA9IGdf bmV3MChzdHJ1Y3Qgc2FwX2RldmljZSwgMSk7CisJZGV2aWNlLT5jb25uID0gZGJ1c19jb25uZWN0 aW9uX3JlZihjb25uKTsKKwliYWNweSgmZGV2aWNlLT5kc3QsIGRzdCk7CisJYmFjcHkoJmRldmlj ZS0+c3JjLCBzcmMpOworCWRldmljZS0+cGF0aCA9IGdfc3RyZHVwKHBhdGgpOworCWRldmljZS0+ Y2hhbm5lbCA9IGNoYW5uZWw7CisKKwlpZiAoIWdfZGJ1c19yZWdpc3Rlcl9pbnRlcmZhY2UoY29u biwgcGF0aCwKKwkJCQlTQVBfQ0xJRU5UX0lOVEVSRkFDRSwKKwkJCQlzYXBfbWV0aG9kcywgc2Fw X3NpZ25hbHMsIE5VTEwsCisJCQkJZGV2aWNlLCBwYXRoX3VucmVnaXN0ZXIpKSB7CisJCWVycm9y KCJELUJ1cyBmYWlsZWQgdG8gcmVnaXN0ZXIgJXMgaW50ZXJmYWNlIiwKKwkJCQlTQVBfQ0xJRU5U X0lOVEVSRkFDRSk7CisJCXNhcF9kZXZpY2VfZnJlZShkZXZpY2UpOworCQlyZXR1cm4gTlVMTDsK Kwl9CisKKwlpbmZvKCJSZWdpc3RlcmVkIGludGVyZmFjZSAlcyBvbiBwYXRoICVzIiwKKwkJU0FQ X0NMSUVOVF9JTlRFUkZBQ0UsIHBhdGgpOworCisJcmV0dXJuIGRldmljZTsKK30KKworaW50IHNh cF9kZXZpY2VfcmVnaXN0ZXIoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sIGNvbnN0IGNoYXIgKnBhdGgs IGJkYWRkcl90ICpzcmMsCisJCQkgIGJkYWRkcl90ICpkc3QsIGNvbnN0IGNoYXIgKnV1aWQsIHVp bnQ4X3QgY2hhbm5lbCkKK3sKKwlzdHJ1Y3Qgc2FwX2RldmljZSAqZGV2aWNlOworCisJZGV2aWNl ID0gZmluZF9kZXZpY2UoZGV2aWNlcywgcGF0aCk7CisJaWYgKCFkZXZpY2UpIHsKKwkJZGV2aWNl ID0gY3JlYXRlX3NhcF9kZXZpY2UoY29ubiwgcGF0aCwgc3JjLCBkc3QsIGNoYW5uZWwpOworCQlp ZiAoIWRldmljZSkKKwkJCXJldHVybiAtMTsKKwkJZGV2aWNlcyA9IGdfc2xpc3RfYXBwZW5kKGRl dmljZXMsIGRldmljZSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludCBzYXBfZGV2aWNlX3Vu cmVnaXN0ZXIoY29uc3QgY2hhciAqcGF0aCkKK3sKKwlzdHJ1Y3Qgc2FwX2RldmljZSAqZGV2aWNl OworCisJZGV2aWNlID0gZmluZF9kZXZpY2UoZGV2aWNlcywgcGF0aCk7CisJaWYgKCFkZXZpY2Up CisJCXJldHVybiAtRU5PRU5UOworCisJZ19kYnVzX3VucmVnaXN0ZXJfaW50ZXJmYWNlKGRldmlj ZS0+Y29ubiwgcGF0aCwgU0FQX0NMSUVOVF9JTlRFUkZBQ0UpOworCisJcmV0dXJuIDA7Cit9CmRp ZmYgLS1naXQgYS9zYXAvZGV2aWNlLmggYi9zYXAvZGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZTlmOTViMQotLS0gL2Rldi9udWxsCisrKyBiL3NhcC9kZXZpY2Uu aApAQCAtMCwwICsxLDI4IEBACisvKgorICoKKyAqICBCbHVlWiAtIEJsdWV0b290aCBwcm90b2Nv bCBzdGFjayBmb3IgTGludXgKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5IEludGVsIENvcnBv cmF0aW9uCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDkgIE1hcmNlbCBIb2x0bWFubiA8bWFy Y2VsQGhvbHRtYW5uLm9yZz4KKyAqCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3Rv biwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICoKKyAqLworCitpbnQgc2FwX2RldmljZV9yZWdpc3Rl cihEQnVzQ29ubmVjdGlvbiAqY29ubiwgY29uc3QgY2hhciAqcGF0aCwgYmRhZGRyX3QgKnNyYywK KwkJICBiZGFkZHJfdCAqZHN0LCBjb25zdCBjaGFyICpuYW1lLCB1aW50OF90IGNoYW5uZWwpOwor CitpbnQgc2FwX2RldmljZV91bnJlZ2lzdGVyKGNvbnN0IGNoYXIgKnBhdGgpOwpkaWZmIC0tZ2l0 IGEvc2FwL21haW4uYyBiL3NhcC9tYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZjdiNTg1NwotLS0gL2Rldi9udWxsCisrKyBiL3NhcC9tYWluLmMKQEAgLTAsMCArMSw1 OSBAQAorLyoKKyAqCisgKiAgQmx1ZVogLSBCbHVldG9vdGggcHJvdG9jb2wgc3RhY2sgZm9yIExp bnV4CisgKgorICogIENvcHlyaWdodCAoQykgMjAwOSBJbnRlbCBDb3Jwb3JhdGlvbgorICogIENv cHlyaWdodCAoQykgMjAwNC0yMDA5ICBNYXJjZWwgSG9sdG1hbm4gPG1hcmNlbEBob2x0bWFubi5v cmc+CisgKgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x MzAxICBVU0EKKyAqCisgKi8KKworI2lmZGVmIEhBVkVfQ09ORklHX0gKKyNpbmNsdWRlIDxjb25m aWcuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2luY2x1ZGUgPGdkYnVzLmg+ CisKKyNpbmNsdWRlICJwbHVnaW4uaCIKKyNpbmNsdWRlICJtYW5hZ2VyLmgiCisKK3N0YXRpYyBE QnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbjsKKworc3RhdGljIGludCBzYXBfaW5pdCh2b2lkKQor eworCWNvbm5lY3Rpb24gPSBkYnVzX2J1c19nZXQoREJVU19CVVNfU1lTVEVNLCBOVUxMKTsKKwlp ZiAoY29ubmVjdGlvbiA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTzsKKworCWlmIChzYXBfbWFuYWdl cl9pbml0KGNvbm5lY3Rpb24pIDwgMCkgeworCQlkYnVzX2Nvbm5lY3Rpb25fdW5yZWYoY29ubmVj dGlvbik7CisJCXJldHVybiAtRUlPOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9p ZCBzYXBfZXhpdCh2b2lkKQoreworCXNhcF9tYW5hZ2VyX2V4aXQoKTsKKworCWRidXNfY29ubmVj dGlvbl91bnJlZihjb25uZWN0aW9uKTsKK30KKworQkxVRVRPT1RIX1BMVUdJTl9ERUZJTkUoInNh cCIsIHNhcF9pbml0LCBzYXBfZXhpdCkKZGlmZiAtLWdpdCBhL3NhcC9tYW5hZ2VyLmMgYi9zYXAv bWFuYWdlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZmY3ODkKLS0t IC9kZXYvbnVsbAorKysgYi9zYXAvbWFuYWdlci5jCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICoK KyAqICBCbHVlWiAtIEJsdWV0b290aCBwcm90b2NvbCBzdGFjayBmb3IgTGludXgKKyAqCisgKiAg Q29weXJpZ2h0IChDKSAyMDA5IEludGVsIENvcnBvcmF0aW9uCisgKiAgQ29weXJpZ2h0IChDKSAy MDA0LTIwMDkgIE1hcmNlbCBIb2x0bWFubiA8bWFyY2VsQGhvbHRtYW5uLm9yZz4KKyAqCisgKgor ICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG cmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICoK KyAqLworCisjaWZkZWYgSEFWRV9DT05GSUdfSAorI2luY2x1ZGUgPGNvbmZpZy5oPgorI2VuZGlm CisKKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSA8Ymx1ZXRvb3RoL2JsdWV0b290aC5o PgorI2luY2x1ZGUgPGJsdWV0b290aC9oY2kuaD4KKyNpbmNsdWRlIDxibHVldG9vdGgvc2RwLmg+ CisjaW5jbHVkZSA8Ymx1ZXRvb3RoL3NkcF9saWIuaD4KKworI2luY2x1ZGUgPGdkYnVzLmg+CisK KyNpbmNsdWRlICJsb2dnaW5nLmgiCisjaW5jbHVkZSAiLi4vc3JjL2FkYXB0ZXIuaCIKKyNpbmNs dWRlICIuLi9zcmMvZGV2aWNlLmgiCisKKyNpbmNsdWRlICJtYW5hZ2VyLmgiCisjaW5jbHVkZSAi ZGV2aWNlLmgiCisKKworI2RlZmluZSBTQVBfVVVJRF9TVFIJCSIwMDAwMTEyRC0wMDAwLTEwMDAt ODAwMC0wMDgwNUY5QjM0RkIiCisKK3N0YXRpYyBEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiA9 IE5VTEw7CisKK3N0YXRpYyBpbnQgc2FwX2NsaWVudF9wcm9iZShzdHJ1Y3QgYnRkX2RldmljZSAq ZGV2aWNlLCBjb25zdCBjaGFyICp1dWlkKQoreworCXN0cnVjdCBidGRfYWRhcHRlciAqYWRhcHRl ciA9IGRldmljZV9nZXRfYWRhcHRlcihkZXZpY2UpOworCWNvbnN0IGdjaGFyICpwYXRoID0gZGV2 aWNlX2dldF9wYXRoKGRldmljZSk7CisJc2RwX2xpc3RfdCAqcHJvdG9zOworCWludCBjaDsKKwli ZGFkZHJfdCBzcmMsIGRzdDsKKwljb25zdCBzZHBfcmVjb3JkX3QgKnJlYzsKKworCURCRygicGF0 aCAlczogJXMiLCBwYXRoLCB1dWlkKTsKKworCXJlYyA9IGJ0ZF9kZXZpY2VfZ2V0X3JlY29yZChk ZXZpY2UsIHV1aWQpOworCWlmICghcmVjKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChzZHBf Z2V0X2FjY2Vzc19wcm90b3MocmVjLCAmcHJvdG9zKSA8IDApCisJCXJldHVybiAtRUlOVkFMOwor CisJY2ggPSBzZHBfZ2V0X3Byb3RvX3BvcnQocHJvdG9zLCBSRkNPTU1fVVVJRCk7CisJc2RwX2xp c3RfZm9yZWFjaChwcm90b3MsIChzZHBfbGlzdF9mdW5jX3QpIHNkcF9saXN0X2ZyZWUsIE5VTEwp OworCXNkcF9saXN0X2ZyZWUocHJvdG9zLCBOVUxMKTsKKworCWlmIChjaCA8IDEgfHwgY2ggPiAz MCkgeworCQllcnJvcigiQ2hhbm5lbCBvdXQgb2YgcmFuZ2U6ICVkIiwgY2gpOworCQlyZXR1cm4g LUVJTlZBTDsKKwl9CisKKwlhZGFwdGVyX2dldF9hZGRyZXNzKGFkYXB0ZXIsICZzcmMpOworCWRl dmljZV9nZXRfYWRkcmVzcyhkZXZpY2UsICZkc3QpOworCisJcmV0dXJuIHNhcF9kZXZpY2VfcmVn aXN0ZXIoY29ubmVjdGlvbiwgcGF0aCwgJnNyYywgJmRzdCwgdXVpZCwgY2gpOworfQorCitzdGF0 aWMgdm9pZCBzYXBfY2xpZW50X3JlbW92ZShzdHJ1Y3QgYnRkX2RldmljZSAqZGV2aWNlKQorewor CWNvbnN0IGdjaGFyICpwYXRoID0gZGV2aWNlX2dldF9wYXRoKGRldmljZSk7CisKKwlEQkcoInBh dGggJXMiLCBwYXRoKTsKKworCXNhcF9kZXZpY2VfdW5yZWdpc3RlcihwYXRoKTsKK30KKworCitz dGF0aWMgaW50IGNsaWVudF9wcm9iZShzdHJ1Y3QgYnRkX2RldmljZSAqZGV2aWNlLCBHU0xpc3Qg KnV1aWRzKQoreworCXdoaWxlICh1dWlkcykgeworCQlzYXBfY2xpZW50X3Byb2JlKGRldmljZSwg dXVpZHMtPmRhdGEpOworCQl1dWlkcyA9IHV1aWRzLT5uZXh0OworCX0KKworCXJldHVybiAwOwor fQorCitzdGF0aWMgdm9pZCBjbGllbnRfcmVtb3ZlKHN0cnVjdCBidGRfZGV2aWNlICpkZXZpY2Up Cit7CisJcmV0dXJuIHNhcF9jbGllbnRfcmVtb3ZlKGRldmljZSk7Cit9CisKK3N0YXRpYyBzdHJ1 Y3QgYnRkX2RldmljZV9kcml2ZXIgc2FwX2NsaWVudF9kcml2ZXIgPSB7CisJLm5hbWUJPSAic2Fw LWNsaWVudCIsCisJLnV1aWRzCT0gQlREX1VVSURTKFNBUF9VVUlEX1NUUiksCisJLnByb2JlCT0g Y2xpZW50X3Byb2JlLAorCS5yZW1vdmUJPSBjbGllbnRfcmVtb3ZlLAorfTsKKworaW50IHNhcF9t YW5hZ2VyX2luaXQoREJ1c0Nvbm5lY3Rpb24gKmNvbm4pCit7CisJY29ubmVjdGlvbiA9IGRidXNf Y29ubmVjdGlvbl9yZWYoY29ubik7CisKKwlidGRfcmVnaXN0ZXJfZGV2aWNlX2RyaXZlcigmc2Fw X2NsaWVudF9kcml2ZXIpOworCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgc2FwX21hbmFnZXJfZXhp dCh2b2lkKQoreworCWJ0ZF91bnJlZ2lzdGVyX2RldmljZV9kcml2ZXIoJnNhcF9jbGllbnRfZHJp dmVyKTsKKworCWRidXNfY29ubmVjdGlvbl91bnJlZihjb25uZWN0aW9uKTsKKwljb25uZWN0aW9u ID0gTlVMTDsKK30KZGlmZiAtLWdpdCBhL3NhcC9tYW5hZ2VyLmggYi9zYXAvbWFuYWdlci5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5MTYyYTMKLS0tIC9kZXYvbnVsbAor KysgYi9zYXAvbWFuYWdlci5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKgorICogIEJsdWVaIC0g Qmx1ZXRvb3RoIHByb3RvY29sIHN0YWNrIGZvciBMaW51eAorICoKKyAqICBDb3B5cmlnaHQgKEMp IDIwMDkgSW50ZWwgQ29ycG9yYXRpb24KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSAgTWFy Y2VsIEhvbHRtYW5uIDxtYXJjZWxAaG9sdG1hbm4ub3JnPgorICoKKyAqCisgKiAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg KiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBG aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKgorICovCisKK2ludCBz YXBfbWFuYWdlcl9pbml0KERCdXNDb25uZWN0aW9uICpjb25uKTsKK3ZvaWQgc2FwX21hbmFnZXJf ZXhpdCh2b2lkKTsKLS0gCjEuNS42LjMKCg== --_003_0463F45F3606F4428ED35AC8C709F92E048D8FE6pdsmsx502ccrcor_--