Return-Path: From: "Liu, Raymond" To: "linux-bluetooth@vger.kernel.org" Date: Thu, 22 Jan 2009 13:05:58 +0800 Subject: RE: [Patch] SAP client plugin framework Message-ID: <0463F45F3606F4428ED35AC8C709F92E05E4FD31@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> <0463F45F3606F4428ED35AC8C709F92E048D8FE6@pdsmsx502.ccr.corp.intel.com> In-Reply-To: <0463F45F3606F4428ED35AC8C709F92E048D8FE6@pdsmsx502.ccr.corp.intel.com> Content-Type: multipart/mixed; boundary="_003_0463F45F3606F4428ED35AC8C709F92E05E4FD31pdsmsx502ccrcor_" MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: --_003_0463F45F3606F4428ED35AC8C709F92E05E4FD31pdsmsx502ccrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Holtmann, Johan > >Holtmann, Johan > > The attach patch is for the SAP DBUS API doc and the initial framework co= de >for SAP plugin. > > Could you help to have a review. Thanks! Resend the patch according to your comments. =20 Best Regards, Raymond Liu --_003_0463F45F3606F4428ED35AC8C709F92E05E4FD31pdsmsx502ccrcor_ 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=2299; creation-date="Thu, 22 Jan 2009 13:03:14 GMT"; modification-date="Thu, 22 Jan 2009 13:02:19 GMT" Content-Transfer-Encoding: base64 RnJvbSBhMWUzMmIyNzgzYmI5ZDJlMDk4NGIzNTNiYTUyODZkMDhjYTM0MzM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYXltb25kIExpdSA8cmF5bW9uZC5saXVAaW50ZWwuY29tPgpE YXRlOiBGcmksIDE2IEphbiAyMDA5IDE1OjU5OjAxICswODAwClN1YmplY3Q6IFtQQVRDSF0gQWRk IHNhcC1hcGkudHh0IGZvciBTQVAgQ2xpZW50CgotLS0KIGRvYy9zYXAtYXBpLnR4dCB8ICAgNzAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRvYy9zYXAtYXBpLnR4dAoKZGlmZiAtLWdpdCBhL2RvYy9zYXAtYXBpLnR4 dCBiL2RvYy9zYXAtYXBpLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45 M2FkMjFlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NhcC1hcGkudHh0CkBAIC0wLDAgKzEsNzAg QEAKK0JsdWVaIEQtQnVzIFNBUCBBUEkgZGVzY3JpcHRpb24KKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorCitDb3B5cmlnaHQgKEMpIDIwMDgtMjAwOSBJbnRlbCBDb3Jwb3JhdGlv bgorCisKK1NJTSBBY2Nlc3MgUHJvZmlsZSBDbGllbnQgaGllcmFyY2h5Cis9PT09PT09PT09PT09 PT0KKworU2VydmljZQkJb3JnLmJsdWV6CitJbnRlcmZhY2UJb3JnLmJsdWV6LlNpbUFjY2Vzcwor T2JqZWN0IHBhdGgJW3ZhcmlhYmxlIHByZWZpeF0ve2hjaTAsaGNpMSwuLi59L2Rldl9YWF9YWF9Y WF9YWF9YWF9YWAorCitNZXRob2RzCQl2b2lkIENvbm5lY3QoKQorCisJCQlDb25uZWN0IHRvIHRo ZSBTQVAgc2VydmljZSBvbiB0aGUgcmVtb3RlIGRldmljZS4KKworCQl2b2lkIERpc2Nvbm5lY3Qo KQorCisJCQlEaXNjb25uZWN0IGZyb20gdGhlIFNBUCBzZXJ2aWNlIG9uIHRoZSByZW1vdGUgZGV2 aWNlLgorCisJCWFycmF5e3VpbnQ4fSBSdW5DbWQoYXJyYXl7dWludDh9KQorCisJCQlTZW5kIENv bW1hbmQtQVBEVSB0byB0aGUgcmVtb3RlIGRldmljZS4KKwkJCVRoZSByZXR1cm4gYXJyYXkgY29u dGFpbnMgUmVzcG9uc2UtQVBEVQorCisJCXZvaWQgUmVzZXQoKQorCisJCQlSZXNldCB0aGUgcmVt b3RlIHN1YnNjcmlwdGlvbiBtb2R1bGUuCisKKwkJZGljdCBHZXRQcm9wZXJ0aWVzKCkKKworCQkJ UmV0dXJucyBhbGwgcHJvcGVydGllcyBmb3IgdGhlIGludGVyZmFjZS4gU2VlIHRoZQorCQkJcHJv cGVydGllcyBzZWN0aW9uIGZvciBhdmFpbGFibGUgcHJvcGVydGllcy4KKworCQl2b2lkIFNldFBy b3BlcnR5KHN0cmluZyBuYW1lLCB2YXJpYW50IHZhbHVlKQorCisJCQlDaGFuZ2VzIHRoZSB2YWx1 ZSBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LiBPbmx5CisJCQlwcm9wZXJ0aWVzIHRoYXQgYXJl IGxpc3RlZCBhIHJlYWQtd3JpdGUgYXJlIGNoYW5nZWFibGUuCisJCQlPbiBzdWNjZXNzIHRoaXMg d2lsbCBlbWl0IGEgUHJvcGVydHlDaGFuZ2VkIHNpZ25hbC4KKworCQkJUG9zc2libGUgRXJyb3Jz OiBvcmcuYmx1ZXouRXJyb3IuRG9lc05vdEV4aXN0CisJCQkJCSBvcmcuYmx1ZXouRXJyb3IuSW52 YWxpZEFyZ3VtZW50cworCitTaWduYWxzCQlQcm9wZXJ0eUNoYW5nZWQoc3RyaW5nIG5hbWUsIHZh cmlhbnQgdmFsdWUpCisKKwkJCVRoaXMgc2lnbmFsIGluZGljYXRlcyBhIGNoYW5nZWQgdmFsdWUg b2YgdGhlIGdpdmVuCisJCQlwcm9wZXJ0eS4KKworUHJvcGVydGllcwlib29sZWFuIENvbm5lY3Rl ZCBbcmVhZG9ubHldCisKKwkJCUluZGljYXRlcyBpZiB0aGVyZSBpcyBhbiBhY3RpdmUgY29ubmVj dGlvbiBvbiBTQVAgc2VydmljZQorCQkJd2l0aCB0aGUgcmVtb3RlIGRldmljZS4KKworCQlib29s ZWFuIFBvd2VyIFtyZWFkd3JpdGVdCisKKwkJCVRoZSBwb3dlciBzdGF0dXMgb2YgdGhlIHJlbW90 ZSBzdWJzY3JpcHRpb24gbW9kdWxlLgorCisJCXVpbnQ4IFByb3RvY29sIFtyZWFkd3JpdGVdCisK KwkJCVRoZSB0cmFuc3BvcnQgcHJvdG9jb2wgd2l0aCB0aGUgcmVtb3RlIHN1YnNjcmlwdGlvbiBt b2R1bGUuCisJCQlPbmx5IDAgYW5kIDEgaXMgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IHNwZWMu CisKKwkJc3RyaW5nIE1vZHVsZVN0YXR1cyBbcmVhZG9ubHldCisKKwkJCUluZGljYXRlcyB0aGUg c3RhdHVzIG9mIHRoZSBzdWJzY3JpcHRpb24gbW9kdWxlLgorCisJCXVpbnQ4IENhcmRSZWFkZXJT dGF0dXMgW3JlYWRvbmx5XQorCisJCQlJbmRpY2F0ZXMgdGhlIHN0YXR1cyBvZiB0aGUgQ2FyZFJl YWRlci4KLS0gCjEuNS42LjMKCg== --_003_0463F45F3606F4428ED35AC8C709F92E05E4FD31pdsmsx502ccrcor_ 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=16165; creation-date="Thu, 22 Jan 2009 13:03:14 GMT"; modification-date="Thu, 22 Jan 2009 13:02:19 GMT" Content-Transfer-Encoding: base64 RnJvbSA3ZTRkMWU2ZmZkYjIzMjQ0NzhjNTUxMmJjZDYxYmM3OGU1NTY2ZWFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYXltb25kIExpdSA8cmF5bW9uZC5saXVAaW50ZWwuY29tPgpE YXRlOiBUdWUsIDIwIEphbiAyMDA5IDEzOjQ3OjEyICswODAwClN1YmplY3Q6IFtQQVRDSF0gQWRk IGZyYW1ld29yayBjb2RlIGZvciBTQVAKCi0tLQogTWFrZWZpbGUuYW0gICAgICAgICB8ICAgIDIg Ky0KIGFjaW5jbHVkZS5tNCAgICAgICAgfCAgICA2ICsrCiBjb25maWd1cmUuYWMgICAgICAgIHwg ICAgMSArCiBwbHVnaW5zL01ha2VmaWxlLmFtIHwgICAgMiArCiBzYXAvTWFrZWZpbGUuYW0gICAg IHwgICAyMSArKysrKwogc2FwL2RldmljZS5jICAgICAgICB8ICAyMDMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzYXAvZGV2aWNlLmggICAgICAg IHwgICAyOCArKysrKysrCiBzYXAvbWFpbi5jICAgICAgICAgIHwgICA1OSArKysrKysrKysrKysr KysKIHNhcC9tYW5hZ2VyLmMgICAgICAgfCAgMTMwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBzYXAvbWFuYWdlci5oICAgICAgIHwgICAyNiArKysrKysrCiAxMCBmaWxlcyBjaGFu Z2VkLCA0NzcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzYXAvTWFrZWZpbGUuYW0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBzYXAvZGV2aWNlLmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzYXAvZGV2aWNlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzYXAvbWFpbi5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgc2FwL21hbmFnZXIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNh cC9tYW5hZ2VyLmgKCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4 IGYyZDFjYTcuLmM2ODk5ZDIgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxl LmFtCkBAIC0xLDYgKzEsNiBAQAogCiBTVUJESVJTID0gaW5jbHVkZSBsaWIgc2JjIGdkYnVzIGNv bW1vbiBzcmMgY2xpZW50XAotCXBsdWdpbnMgbmV0d29yayBzZXJpYWwgaW5wdXQgYXVkaW8gXAor CXBsdWdpbnMgbmV0d29yayBzZXJpYWwgaW5wdXQgYXVkaW8gc2FwIFwKIAl0b29scyByZmNvbW0g Y29tcGF0IGN1cHMgdGVzdCBzY3JpcHRzIGRvYwogCiBFWFRSQV9ESVNUID0gYmx1ZXoubTQKZGlm ZiAtLWdpdCBhL2FjaW5jbHVkZS5tNCBiL2FjaW5jbHVkZS5tNAppbmRleCAzNzI4MzNlLi43MDRj OWVlIDEwMDY0NAotLS0gYS9hY2luY2x1ZGUubTQKKysrIGIvYWNpbmNsdWRlLm00CkBAIC0xODYs NiArMTg2LDcgQEAgQUNfREVGVU4oW0FDX0FSR19CTFVFWl0sIFsKIAlpbnB1dF9lbmFibGU9eWVz CiAJc2VyaWFsX2VuYWJsZT15ZXMKIAluZXR3b3JrX2VuYWJsZT15ZXMKKwlzYXBfZW5hYmxlPXll cwogCXNlcnZpY2VfZW5hYmxlPXllcwogCXRvb2xzX2VuYWJsZT15ZXMKIAloaWRkX2VuYWJsZT1u bwpAQCAtMjI2LDYgKzIyNywxMCBAQCBBQ19ERUZVTihbQUNfQVJHX0JMVUVaXSwgWwogCQlhdWRp b19lbmFibGU9JHtlbmFibGV2YWx9CiAJXSkKIAorCUFDX0FSR19FTkFCTEUoc2FwLCBBQ19IRUxQ X1NUUklORyhbLS1kaXNhYmxlLXNhcF0sIFtkaXNhYmxlIHNhcCBwbHVnaW5dKSwgWworCQlzYXBf ZW5hYmxlPSR7ZW5hYmxldmFsfQorCV0pCisKIAlBQ19BUkdfRU5BQkxFKHNlcnZpY2UsIEFDX0hF TFBfU1RSSU5HKFstLWRpc2FibGUtc2VydmljZV0sIFtkaXNhYmxlIHNlcnZpY2UgcGx1Z2luXSks IFsKIAkJc2VydmljZV9lbmFibGU9JHtlbmFibGV2YWx9CiAJXSkKQEAgLTM0NCw2ICszNDksNyBA QCBBQ19ERUZVTihbQUNfQVJHX0JMVUVaXSwgWwogCUFNX0NPTkRJVElPTkFMKElOUFVUUExVR0lO LCB0ZXN0ICIke2lucHV0X2VuYWJsZX0iID0gInllcyIpCiAJQU1fQ09ORElUSU9OQUwoU0VSSUFM UExVR0lOLCB0ZXN0ICIke3NlcmlhbF9lbmFibGV9IiA9ICJ5ZXMiKQogCUFNX0NPTkRJVElPTkFM KE5FVFdPUktQTFVHSU4sIHRlc3QgIiR7bmV0d29ya19lbmFibGV9IiA9ICJ5ZXMiKQorCUFNX0NP TkRJVElPTkFMKFNBUFBMVUdJTiwgdGVzdCAiJHtzYXBfZW5hYmxlfSIgPSAieWVzIikKIAlBTV9D T05ESVRJT05BTChTRVJWSUNFUExVR0lOLCB0ZXN0ICIke3NlcnZpY2VfZW5hYmxlfSIgPSAieWVz IikKIAlBTV9DT05ESVRJT05BTChISURELCB0ZXN0ICIke2hpZGRfZW5hYmxlfSIgPSAieWVzIikK IAlBTV9DT05ESVRJT05BTChQQU5ELCB0ZXN0ICIke3BhbmRfZW5hYmxlfSIgPSAieWVzIikKZGlm ZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA4NGE2MjM0Li5iYzdj ZjZiIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC01NSw2 ICs1NSw3IEBAIEFDX09VVFBVVChbCiAJc2VyaWFsL01ha2VmaWxlCiAJaW5wdXQvTWFrZWZpbGUK IAlhdWRpby9NYWtlZmlsZQorCXNhcC9NYWtlZmlsZQogCXRvb2xzL01ha2VmaWxlCiAJcmZjb21t L01ha2VmaWxlCiAJY29tcGF0L01ha2VmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL01ha2VmaWxl LmFtIGIvcGx1Z2lucy9NYWtlZmlsZS5hbQppbmRleCAzYjI1OGEzLi43YWQ3NmZlIDEwMDY0NAot LS0gYS9wbHVnaW5zL01ha2VmaWxlLmFtCisrKyBiL3BsdWdpbnMvTWFrZWZpbGUuYW0KQEAgLTQ2 LDYgKzQ2LDcgQEAgYWxsLWxvY2FsOgogCUAkKExOX1MpIC1mICQodG9wX3NyY2RpcikvYXVkaW8v LmxpYnMvYXVkaW8uc28KIAlAJChMTl9TKSAtZiAkKHRvcF9zcmNkaXIpL3NlcmlhbC8ubGlicy9z ZXJpYWwuc28KIAlAJChMTl9TKSAtZiAkKHRvcF9zcmNkaXIpL25ldHdvcmsvLmxpYnMvbmV0d29y ay5zbworCUAkKExOX1MpIC1mICQodG9wX3NyY2Rpcikvc2FwLy5saWJzL3NhcC5zbwogCUAkKExO X1MpIC1mIC5saWJzL3NlcnZpY2Uuc28KIAlAJChMTl9TKSAtZiAubGlicy9oYWwuc28KIApAQCAt NTYsMyArNTcsNCBAQCBjbGVhbi1sb2NhbDoKIAlAcm0gLWYgc2VyaWFsLnNvCiAJQHJtIC1mIGF1 ZGlvLnNvCiAJQHJtIC1mIGlucHV0LnNvCisJQHJtIC1mIHNhcC5zbwpkaWZmIC0tZ2l0IGEvc2Fw L01ha2VmaWxlLmFtIGIvc2FwL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmFhZDk1ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9zYXAvTWFrZWZpbGUuYW0KQEAg LTAsMCArMSwyMSBAQAorCitpZiBTQVBQTFVHSU4KK3BsdWdpbmRpciA9ICQobGliZGlyKS9ibHVl dG9vdGgvcGx1Z2lucworCitwbHVnaW5fTFRMSUJSQVJJRVMgPSBzYXAubGEKKworc2FwX2xhX1NP VVJDRVMgPSBtYWluLmMgbWFuYWdlci5oIG1hbmFnZXIuYyBcCisJCWRldmljZS5oIGRldmljZS5j CisKK0xEQUREID0gJCh0b3BfYnVpbGRkaXIpL2NvbW1vbi9saWJoZWxwZXIuYSBcCisJCUBHREJV U19MSUJTQCBAR0xJQl9MSUJTQCBAREJVU19MSUJTQCBAQkxVRVpfTElCU0AKK2VuZGlmCisKK0FN X0xERkxBR1MgPSAtbW9kdWxlIC1hdm9pZC12ZXJzaW9uIC1uby11bmRlZmluZWQgXAorCQkJLWV4 cG9ydC1zeW1ib2xzLXJlZ2V4IGJsdWV0b290aF9wbHVnaW5fZGVzYworCitBTV9DRkxBR1MgPSBA QkxVRVpfQ0ZMQUdTQCBAREJVU19DRkxBR1NAIEBHTElCX0NGTEFHU0AgQEdEQlVTX0NGTEFHU0AK KworSU5DTFVERVMgPSAtSSQodG9wX3NyY2RpcikvY29tbW9uIC1JJCh0b3Bfc3JjZGlyKS9zcmMK KworTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgpkaWZmIC0tZ2l0IGEvc2FwL2Rl dmljZS5jIGIvc2FwL2RldmljZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmU4MjZkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zYXAvZGV2aWNlLmMKQEAgLTAsMCArMSwyMDMg QEAKKy8qCisgKgorICogIEJsdWVaIC0gQmx1ZXRvb3RoIHByb3RvY29sIHN0YWNrIGZvciBMaW51 eAorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDkgSW50ZWwgQ29ycG9yYXRpb24KKyAqICBDb3B5 cmlnaHQgKEMpIDIwMDQtMjAwOSAgTWFyY2VsIEhvbHRtYW5uIDxtYXJjZWxAaG9sdG1hbm4ub3Jn PgorICoKKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y CisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s IEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw MSAgVVNBCisgKgorICovCisKKyNpZmRlZiBIQVZFX0NPTkZJR19ICisjaW5jbHVkZSA8Y29uZmln Lmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpbmNsdWRlIDxibHVldG9vdGgv Ymx1ZXRvb3RoLmg+CisjaW5jbHVkZSA8Ymx1ZXRvb3RoL2hjaS5oPgorI2luY2x1ZGUgPGJsdWV0 b290aC9zZHAuaD4KKyNpbmNsdWRlIDxibHVldG9vdGgvc2RwX2xpYi5oPgorCisjaW5jbHVkZSA8 Z2xpYi5oPgorI2luY2x1ZGUgPGdkYnVzLmg+CisKKyNpbmNsdWRlICIuLi9zcmMvZGJ1cy1jb21t b24uaCIKKworI2luY2x1ZGUgImxvZ2dpbmcuaCIKKyNpbmNsdWRlICJnbGliLWhlbHBlci5oIgor CisjaW5jbHVkZSAiZGV2aWNlLmgiCisKKyNkZWZpbmUgU0FQX0NMSUVOVF9JTlRFUkZBQ0UJIm9y Zy5ibHVlei5TaW1BY2Nlc3MiCisKK3N0cnVjdCBzYXBfZGV2aWNlIHsKKwlEQnVzQ29ubmVjdGlv bgkqY29ubjsKKwliZGFkZHJfdAlzcmM7CQkvKiBTb3VyY2UgKGxvY2FsKSBhZGRyZXNzICovCisJ YmRhZGRyX3QJZHN0OwkJLyogRGVzdGluYXRpb24gYWRkcmVzcyAqLworCWNoYXIJCSpwYXRoOwkJ LyogRGV2aWNlIHBhdGggKi8KKwl1aW50OF90CQljaGFubmVsOwkvKiBTQVAgc2VydmVyJ3MgcmZj b21tIGNoYW5uZWwgKi8KK307CisKK3N0YXRpYyBHU0xpc3QgKmRldmljZXMgPSBOVUxMOworCitz dGF0aWMgc3RydWN0IHNhcF9kZXZpY2UgKmZpbmRfZGV2aWNlKEdTTGlzdCAqZGV2aWNlcywgY29u c3QgY2hhciAqcGF0aCkKK3sKKwlHU0xpc3QgKmw7CisKKwlmb3IgKGwgPSBkZXZpY2VzOyBsICE9 IE5VTEw7IGwgPSBsLT5uZXh0KSB7CisJCXN0cnVjdCBzYXBfZGV2aWNlICpkZXZpY2UgPSBsLT5k YXRhOworCisJCWlmICghc3RyY21wKGRldmljZS0+cGF0aCwgcGF0aCkpCisJCQlyZXR1cm4gZGV2 aWNlOworCX0KKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBzYXBfZGV2aWNlX2Zy ZWUoc3RydWN0IHNhcF9kZXZpY2UgKmRldmljZSkKK3sKKwlnX2ZyZWUoZGV2aWNlLT5wYXRoKTsK KwlpZiAoZGV2aWNlLT5jb25uKQorCQlkYnVzX2Nvbm5lY3Rpb25fdW5yZWYoZGV2aWNlLT5jb25u KTsKKwlnX2ZyZWUoZGV2aWNlKTsKK30KKworc3RhdGljIHZvaWQgcGF0aF91bnJlZ2lzdGVyKHZv aWQgKmRhdGEpCit7CisJc3RydWN0IHNhcF9kZXZpY2UgKmRldmljZSA9IGRhdGE7CisKKwlpbmZv KCJVbnJlZ2lzdGVyZWQgaW50ZXJmYWNlICVzIG9uIHBhdGggJXMiLCBTQVBfQ0xJRU5UX0lOVEVS RkFDRSwKKwkJZGV2aWNlLT5wYXRoKTsKKworCWRldmljZXMgPSBnX3NsaXN0X3JlbW92ZShkZXZp Y2VzLCBkZXZpY2UpOworCXNhcF9kZXZpY2VfZnJlZShkZXZpY2UpOworfQorCitzdGF0aWMgREJ1 c01lc3NhZ2UgKnNhcF9jb25uZWN0KERCdXNDb25uZWN0aW9uICpjb25uLAorCQkJCURCdXNNZXNz YWdlICptc2csIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBEQnVz TWVzc2FnZSAqc2FwX2Rpc2Nvbm5lY3QoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sCisJCQkJCURCdXNN ZXNzYWdlICptc2csIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBE QnVzTWVzc2FnZSAqc2FwX3J1bl9jbWQoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sCisJCQkJCURCdXNN ZXNzYWdlICptc2csIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBE QnVzTWVzc2FnZSAqc2FwX3Jlc2V0KERCdXNDb25uZWN0aW9uICpjb25uLAorCQkJCURCdXNNZXNz YWdlICptc2csIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBEQnVz TWVzc2FnZSAqc2FwX3NldF9wcm9wZXJ0eShEQnVzQ29ubmVjdGlvbiAqY29ubiwKKwkJCQkJREJ1 c01lc3NhZ2UgKm1zZywgdm9pZCAqZGF0YSkKK3sKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGlj IERCdXNNZXNzYWdlICpzYXBfZ2V0X3Byb3BlcnRpZXMoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sCisJ CQkJCURCdXNNZXNzYWdlICptc2csIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIE5VTEw7Cit9CisK K3N0YXRpYyBHREJ1c01ldGhvZFRhYmxlIHNhcF9tZXRob2RzW10gPSB7CisJeyAiQ29ubmVjdCIs CQkiIiwJIiIsCXNhcF9jb25uZWN0LAorCQkJCQkJR19EQlVTX01FVEhPRF9GTEFHX0FTWU5DIH0s CisJeyAiRGlzY29ubmVjdCIsCQkiIiwJIiIsCXNhcF9kaXNjb25uZWN0LAorCQkJCQkJR19EQlVT X01FVEhPRF9GTEFHX0FTWU5DIH0sCisJeyAiUnVuQ21kIiwJCSJheSIsCSJheSIsCXNhcF9ydW5f Y21kLAorCQkJCQkJR19EQlVTX01FVEhPRF9GTEFHX0FTWU5DIH0sCisJeyAiUmVzZXQiLAkJIiIs CSIiLAlzYXBfcmVzZXQsCisJCQkJCQlHX0RCVVNfTUVUSE9EX0ZMQUdfREVQUkVDQVRFRCB9LAor CXsgIlNldFByb3BlcnR5IiwJInN2IiwJIiIsCXNhcF9zZXRfcHJvcGVydHksCisJCQkJCQlHX0RC VVNfTUVUSE9EX0ZMQUdfREVQUkVDQVRFRCB9LAorCXsgIkdldFByb3BlcnRpZXMiLAkiIiwJImF7 c3Z9IixzYXBfZ2V0X3Byb3BlcnRpZXMgfSwKKwl7IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfQor fTsKKworc3RhdGljIEdEQnVzU2lnbmFsVGFibGUgc2FwX3NpZ25hbHNbXSA9IHsKKwl7ICJQcm9w ZXJ0eUNoYW5nZWQiLAkJInN2Igl9LAorCXsgTlVMTCwgTlVMTCB9Cit9OworCitzdGF0aWMgc3Ry dWN0IHNhcF9kZXZpY2UgKmNyZWF0ZV9zYXBfZGV2aWNlKERCdXNDb25uZWN0aW9uICpjb25uLAor CQkJCQljb25zdCBjaGFyICpwYXRoLCBiZGFkZHJfdCAqc3JjLAorCQkJCQliZGFkZHJfdCAqZHN0 LCB1aW50OF90IGNoYW5uZWwpCit7CisJc3RydWN0IHNhcF9kZXZpY2UgKmRldmljZTsKKworCWRl dmljZSA9IGdfbmV3MChzdHJ1Y3Qgc2FwX2RldmljZSwgMSk7CisJZGV2aWNlLT5jb25uID0gZGJ1 c19jb25uZWN0aW9uX3JlZihjb25uKTsKKwliYWNweSgmZGV2aWNlLT5kc3QsIGRzdCk7CisJYmFj cHkoJmRldmljZS0+c3JjLCBzcmMpOworCWRldmljZS0+cGF0aCA9IGdfc3RyZHVwKHBhdGgpOwor CWRldmljZS0+Y2hhbm5lbCA9IGNoYW5uZWw7CisKKwlpZiAoIWdfZGJ1c19yZWdpc3Rlcl9pbnRl cmZhY2UoY29ubiwgcGF0aCwKKwkJCQlTQVBfQ0xJRU5UX0lOVEVSRkFDRSwKKwkJCQlzYXBfbWV0 aG9kcywgc2FwX3NpZ25hbHMsIE5VTEwsCisJCQkJZGV2aWNlLCBwYXRoX3VucmVnaXN0ZXIpKSB7 CisJCWVycm9yKCJELUJ1cyBmYWlsZWQgdG8gcmVnaXN0ZXIgJXMgaW50ZXJmYWNlIiwKKwkJCQlT QVBfQ0xJRU5UX0lOVEVSRkFDRSk7CisJCXNhcF9kZXZpY2VfZnJlZShkZXZpY2UpOworCQlyZXR1 cm4gTlVMTDsKKwl9CisKKwlpbmZvKCJSZWdpc3RlcmVkIGludGVyZmFjZSAlcyBvbiBwYXRoICVz IiwKKwkJU0FQX0NMSUVOVF9JTlRFUkZBQ0UsIHBhdGgpOworCisJcmV0dXJuIGRldmljZTsKK30K KworaW50IHNhcF9kZXZpY2VfcmVnaXN0ZXIoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sIGNvbnN0IGNo YXIgKnBhdGgsIGJkYWRkcl90ICpzcmMsCisJCQkgIGJkYWRkcl90ICpkc3QsIGNvbnN0IGNoYXIg KnV1aWQsIHVpbnQ4X3QgY2hhbm5lbCkKK3sKKwlzdHJ1Y3Qgc2FwX2RldmljZSAqZGV2aWNlOwor CisJZGV2aWNlID0gZmluZF9kZXZpY2UoZGV2aWNlcywgcGF0aCk7CisJaWYgKCFkZXZpY2UpIHsK KwkJZGV2aWNlID0gY3JlYXRlX3NhcF9kZXZpY2UoY29ubiwgcGF0aCwgc3JjLCBkc3QsIGNoYW5u ZWwpOworCQlpZiAoIWRldmljZSkKKwkJCXJldHVybiAtMTsKKwkJZGV2aWNlcyA9IGdfc2xpc3Rf YXBwZW5kKGRldmljZXMsIGRldmljZSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludCBzYXBf ZGV2aWNlX3VucmVnaXN0ZXIoY29uc3QgY2hhciAqcGF0aCkKK3sKKwlzdHJ1Y3Qgc2FwX2Rldmlj ZSAqZGV2aWNlOworCisJZGV2aWNlID0gZmluZF9kZXZpY2UoZGV2aWNlcywgcGF0aCk7CisJaWYg KCFkZXZpY2UpCisJCXJldHVybiAtRU5PRU5UOworCisJZ19kYnVzX3VucmVnaXN0ZXJfaW50ZXJm YWNlKGRldmljZS0+Y29ubiwgcGF0aCwgU0FQX0NMSUVOVF9JTlRFUkZBQ0UpOworCisJcmV0dXJu IDA7Cit9CmRpZmYgLS1naXQgYS9zYXAvZGV2aWNlLmggYi9zYXAvZGV2aWNlLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlmOTViMQotLS0gL2Rldi9udWxsCisrKyBiL3Nh cC9kZXZpY2UuaApAQCAtMCwwICsxLDI4IEBACisvKgorICoKKyAqICBCbHVlWiAtIEJsdWV0b290 aCBwcm90b2NvbCBzdGFjayBmb3IgTGludXgKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5IElu dGVsIENvcnBvcmF0aW9uCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDkgIE1hcmNlbCBIb2x0 bWFubiA8bWFyY2VsQGhvbHRtYW5uLm9yZz4KKyAqCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxv b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICoKKyAqLworCitpbnQgc2FwX2Rldmlj ZV9yZWdpc3RlcihEQnVzQ29ubmVjdGlvbiAqY29ubiwgY29uc3QgY2hhciAqcGF0aCwgYmRhZGRy X3QgKnNyYywKKwkJICBiZGFkZHJfdCAqZHN0LCBjb25zdCBjaGFyICpuYW1lLCB1aW50OF90IGNo YW5uZWwpOworCitpbnQgc2FwX2RldmljZV91bnJlZ2lzdGVyKGNvbnN0IGNoYXIgKnBhdGgpOwpk aWZmIC0tZ2l0IGEvc2FwL21haW4uYyBiL3NhcC9tYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZjdiNTg1NwotLS0gL2Rldi9udWxsCisrKyBiL3NhcC9tYWluLmMKQEAg LTAsMCArMSw1OSBAQAorLyoKKyAqCisgKiAgQmx1ZVogLSBCbHVldG9vdGggcHJvdG9jb2wgc3Rh Y2sgZm9yIExpbnV4CisgKgorICogIENvcHlyaWdodCAoQykgMjAwOSBJbnRlbCBDb3Jwb3JhdGlv bgorICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA5ICBNYXJjZWwgSG9sdG1hbm4gPG1hcmNlbEBo b2x0bWFubi5vcmc+CisgKgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisg KiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUg TGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK KyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAg Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B ICAwMjExMC0xMzAxICBVU0EKKyAqCisgKi8KKworI2lmZGVmIEhBVkVfQ09ORklHX0gKKyNpbmNs dWRlIDxjb25maWcuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2luY2x1ZGUg PGdkYnVzLmg+CisKKyNpbmNsdWRlICJwbHVnaW4uaCIKKyNpbmNsdWRlICJtYW5hZ2VyLmgiCisK K3N0YXRpYyBEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbjsKKworc3RhdGljIGludCBzYXBfaW5p dCh2b2lkKQoreworCWNvbm5lY3Rpb24gPSBkYnVzX2J1c19nZXQoREJVU19CVVNfU1lTVEVNLCBO VUxMKTsKKwlpZiAoY29ubmVjdGlvbiA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTzsKKworCWlmIChz YXBfbWFuYWdlcl9pbml0KGNvbm5lY3Rpb24pIDwgMCkgeworCQlkYnVzX2Nvbm5lY3Rpb25fdW5y ZWYoY29ubmVjdGlvbik7CisJCXJldHVybiAtRUlPOworCX0KKworCXJldHVybiAwOworfQorCitz dGF0aWMgdm9pZCBzYXBfZXhpdCh2b2lkKQoreworCXNhcF9tYW5hZ2VyX2V4aXQoKTsKKworCWRi dXNfY29ubmVjdGlvbl91bnJlZihjb25uZWN0aW9uKTsKK30KKworQkxVRVRPT1RIX1BMVUdJTl9E RUZJTkUoInNhcCIsIHNhcF9pbml0LCBzYXBfZXhpdCkKZGlmZiAtLWdpdCBhL3NhcC9tYW5hZ2Vy LmMgYi9zYXAvbWFuYWdlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkw ZmY3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9zYXAvbWFuYWdlci5jCkBAIC0wLDAgKzEsMTMwIEBA CisvKgorICoKKyAqICBCbHVlWiAtIEJsdWV0b290aCBwcm90b2NvbCBzdGFjayBmb3IgTGludXgK KyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA5IEludGVsIENvcnBvcmF0aW9uCisgKiAgQ29weXJp Z2h0IChDKSAyMDA0LTIwMDkgIE1hcmNlbCBIb2x0bWFubiA8bWFyY2VsQGhvbHRtYW5uLm9yZz4K KyAqCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgor ICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg IFVTQQorICoKKyAqLworCisjaWZkZWYgSEFWRV9DT05GSUdfSAorI2luY2x1ZGUgPGNvbmZpZy5o PgorI2VuZGlmCisKKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSA8Ymx1ZXRvb3RoL2Js dWV0b290aC5oPgorI2luY2x1ZGUgPGJsdWV0b290aC9oY2kuaD4KKyNpbmNsdWRlIDxibHVldG9v dGgvc2RwLmg+CisjaW5jbHVkZSA8Ymx1ZXRvb3RoL3NkcF9saWIuaD4KKworI2luY2x1ZGUgPGdk YnVzLmg+CisKKyNpbmNsdWRlICJsb2dnaW5nLmgiCisjaW5jbHVkZSAiLi4vc3JjL2FkYXB0ZXIu aCIKKyNpbmNsdWRlICIuLi9zcmMvZGV2aWNlLmgiCisKKyNpbmNsdWRlICJtYW5hZ2VyLmgiCisj aW5jbHVkZSAiZGV2aWNlLmgiCisKKworI2RlZmluZSBTQVBfVVVJRF9TVFIJCSIwMDAwMTEyRC0w MDAwLTEwMDAtODAwMC0wMDgwNUY5QjM0RkIiCisKK3N0YXRpYyBEQnVzQ29ubmVjdGlvbiAqY29u bmVjdGlvbiA9IE5VTEw7CisKK3N0YXRpYyBpbnQgc2FwX2NsaWVudF9wcm9iZShzdHJ1Y3QgYnRk X2RldmljZSAqZGV2aWNlLCBjb25zdCBjaGFyICp1dWlkKQoreworCXN0cnVjdCBidGRfYWRhcHRl ciAqYWRhcHRlciA9IGRldmljZV9nZXRfYWRhcHRlcihkZXZpY2UpOworCWNvbnN0IGdjaGFyICpw YXRoID0gZGV2aWNlX2dldF9wYXRoKGRldmljZSk7CisJc2RwX2xpc3RfdCAqcHJvdG9zOworCWlu dCBjaDsKKwliZGFkZHJfdCBzcmMsIGRzdDsKKwljb25zdCBzZHBfcmVjb3JkX3QgKnJlYzsKKwor CURCRygicGF0aCAlczogJXMiLCBwYXRoLCB1dWlkKTsKKworCXJlYyA9IGJ0ZF9kZXZpY2VfZ2V0 X3JlY29yZChkZXZpY2UsIHV1aWQpOworCWlmICghcmVjKQorCQlyZXR1cm4gLUVJTlZBTDsKKwor CWlmIChzZHBfZ2V0X2FjY2Vzc19wcm90b3MocmVjLCAmcHJvdG9zKSA8IDApCisJCXJldHVybiAt RUlOVkFMOworCisJY2ggPSBzZHBfZ2V0X3Byb3RvX3BvcnQocHJvdG9zLCBSRkNPTU1fVVVJRCk7 CisJc2RwX2xpc3RfZm9yZWFjaChwcm90b3MsIChzZHBfbGlzdF9mdW5jX3QpIHNkcF9saXN0X2Zy ZWUsIE5VTEwpOworCXNkcF9saXN0X2ZyZWUocHJvdG9zLCBOVUxMKTsKKworCWlmIChjaCA8IDEg fHwgY2ggPiAzMCkgeworCQllcnJvcigiQ2hhbm5lbCBvdXQgb2YgcmFuZ2U6ICVkIiwgY2gpOwor CQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlhZGFwdGVyX2dldF9hZGRyZXNzKGFkYXB0ZXIsICZz cmMpOworCWRldmljZV9nZXRfYWRkcmVzcyhkZXZpY2UsICZkc3QpOworCisJcmV0dXJuIHNhcF9k ZXZpY2VfcmVnaXN0ZXIoY29ubmVjdGlvbiwgcGF0aCwgJnNyYywgJmRzdCwgdXVpZCwgY2gpOwor fQorCitzdGF0aWMgdm9pZCBzYXBfY2xpZW50X3JlbW92ZShzdHJ1Y3QgYnRkX2RldmljZSAqZGV2 aWNlKQoreworCWNvbnN0IGdjaGFyICpwYXRoID0gZGV2aWNlX2dldF9wYXRoKGRldmljZSk7CisK KwlEQkcoInBhdGggJXMiLCBwYXRoKTsKKworCXNhcF9kZXZpY2VfdW5yZWdpc3RlcihwYXRoKTsK K30KKworCitzdGF0aWMgaW50IGNsaWVudF9wcm9iZShzdHJ1Y3QgYnRkX2RldmljZSAqZGV2aWNl LCBHU0xpc3QgKnV1aWRzKQoreworCXdoaWxlICh1dWlkcykgeworCQlzYXBfY2xpZW50X3Byb2Jl KGRldmljZSwgdXVpZHMtPmRhdGEpOworCQl1dWlkcyA9IHV1aWRzLT5uZXh0OworCX0KKworCXJl dHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjbGllbnRfcmVtb3ZlKHN0cnVjdCBidGRfZGV2aWNl ICpkZXZpY2UpCit7CisJcmV0dXJuIHNhcF9jbGllbnRfcmVtb3ZlKGRldmljZSk7Cit9CisKK3N0 YXRpYyBzdHJ1Y3QgYnRkX2RldmljZV9kcml2ZXIgc2FwX2NsaWVudF9kcml2ZXIgPSB7CisJLm5h bWUJPSAic2FwLWNsaWVudCIsCisJLnV1aWRzCT0gQlREX1VVSURTKFNBUF9VVUlEX1NUUiksCisJ LnByb2JlCT0gY2xpZW50X3Byb2JlLAorCS5yZW1vdmUJPSBjbGllbnRfcmVtb3ZlLAorfTsKKwor aW50IHNhcF9tYW5hZ2VyX2luaXQoREJ1c0Nvbm5lY3Rpb24gKmNvbm4pCit7CisJY29ubmVjdGlv biA9IGRidXNfY29ubmVjdGlvbl9yZWYoY29ubik7CisKKwlidGRfcmVnaXN0ZXJfZGV2aWNlX2Ry aXZlcigmc2FwX2NsaWVudF9kcml2ZXIpOworCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgc2FwX21h bmFnZXJfZXhpdCh2b2lkKQoreworCWJ0ZF91bnJlZ2lzdGVyX2RldmljZV9kcml2ZXIoJnNhcF9j bGllbnRfZHJpdmVyKTsKKworCWRidXNfY29ubmVjdGlvbl91bnJlZihjb25uZWN0aW9uKTsKKwlj b25uZWN0aW9uID0gTlVMTDsKK30KZGlmZiAtLWdpdCBhL3NhcC9tYW5hZ2VyLmggYi9zYXAvbWFu YWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5MTYyYTMKLS0tIC9k ZXYvbnVsbAorKysgYi9zYXAvbWFuYWdlci5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKgorICog IEJsdWVaIC0gQmx1ZXRvb3RoIHByb3RvY29sIHN0YWNrIGZvciBMaW51eAorICoKKyAqICBDb3B5 cmlnaHQgKEMpIDIwMDkgSW50ZWwgQ29ycG9yYXRpb24KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQt MjAwOSAgTWFyY2VsIEhvbHRtYW5uIDxtYXJjZWxAaG9sdG1hbm4ub3JnPgorICoKKyAqCisgKiAg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3 cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r bGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKgorICov CisKK2ludCBzYXBfbWFuYWdlcl9pbml0KERCdXNDb25uZWN0aW9uICpjb25uKTsKK3ZvaWQgc2Fw X21hbmFnZXJfZXhpdCh2b2lkKTsKLS0gCjEuNS42LjMKCg== --_003_0463F45F3606F4428ED35AC8C709F92E05E4FD31pdsmsx502ccrcor_--