From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [1/3] ACPI / adxl: Address translation interface using ACPI DSM From: "Luck, Tony" Message-Id: <20181009183355.20597-2-tony.luck@intel.com> Date: Tue, 9 Oct 2018 11:33:53 -0700 To: "Rafael J. Wysocki" Cc: Tony Luck , Borislav Petkov , Qiuxu Zhuo , Aristeu Rozanski , Mauro Carvalho Chehab , linux-edac@vger.kernel.org, linux-acpi@vger.kernel.org List-ID: U29tZSBuZXcgc2VydmVycyBwcm92aWRlIGFuIGludGVyZmFjZSBzbyB0aGF0IHRoZSBPUyBjYW4g YXNrIHRoZQpCSU9TIHRvIHRyYW5zbGF0ZSBhIHN5c3RlbSBwaHlzaWNhbCBhZGRyZXNzIHRvIGEg bWVtb3J5IGFkZHJlc3MKKHNvY2tldCwgbWVtb3J5IGNvbnRyb2xsZXIsIGNoYW5uZWwsIHJhbmss IGRpbW0sIGV0Yy4pLiBUaGlzIGlzCnVzZWZ1bCBmb3IgRURBQyBkcml2ZXJzIHRoYXQgd2FudCB0 byB0YWtlIHRoZSBhZGRyZXNzIG9mIGFuIGVycm9yCnJlcG9ydGVkIGluIGEgbWFjaGluZSBjaGVj ayBiYW5rIGFuZCBsZXQgdGhlIHVzZXIga25vdyB3aGljaApESU1NIG1heSBuZWVkIHRvIGJlIHJl cGxhY2VkLgoKU3BlY2lmaWNhdGlvbiBmb3IgdGhpcyBpbnRlcmZhY2UgaXMgYXZhaWxhYmxlIGF0 OgoKICAgIGh0dHBzOi8vY2RyZHYyLmludGVsLmNvbS92MS9kbC9nZXRDb250ZW50LzYwMzM1NAoK W0Jhc2VkIG9uIGVhcmxpZXIgY29kZSBieSBRaXV4dSBaaHVvIDxxaXV4dS56aHVvQGludGVsLmNv bT5dCgpTaWduZWQtb2ZmLWJ5OiBUb255IEx1Y2sgPHRvbnkubHVja0BpbnRlbC5jb20+Ci0tLQpD b21tZW50cyBhZGRyZXNzZWQgc2luY2UgbGFzdCB2ZXJzaW9uOgogICBSYWZhZWw6CglBZGRlZCBV UkwgZm9yIHNwZWNpZmljYXRpb24gKHRvIGNvbW1pdCAmIGhlYWRlciBjb21tZW50KQoJRml4ZWQg TlVMTCBlcnJvciByZXR1cm4gZnJvbSBlcnJvciBjYXNlIG9mIGFkeGxfZHNtKCkKCiAgIEJvcmlz OgoJQWRkZWQgc2FuaXR5IGNoZWNrIG9uIG51bWJlciBvZiBhZGRyZXNzIGNvbXBvbmVudHMKCShh bHNvIGFkZGVkIGNoZWNrIHRoYXQgbnVtYmVyIG9mIHZhbHVlcyByZXR1cm5lZCBieQoJIGRlY29k ZSBvcGVyYXRpb24gbWF0Y2hlcyBudW1iZXIgb2Ygc3RyaW5ncykKCWcvcHJfZGVidWcvcy8vcHJf aW5mby8KCUFkZGVkICIuIiBhdCBlbmQgb2Ygc2VudGVuY2VzIGluIGNvbW1lbnRzCglNYWtlIHJl dHVybiBmcm9tIGFkeGxfZ2V0X2NvbXBvbmVudF9uYW1lcygpIGltbXV0YWJsZQoKIGRyaXZlcnMv YWNwaS9LY29uZmlnICAgICB8ICAxMCArKwogZHJpdmVycy9hY3BpL01ha2VmaWxlICAgIHwgICAz ICsKIGRyaXZlcnMvYWNwaS9hY3BpX2FkeGwuYyB8IDE5OSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbGludXgvYWR4bC5oICAgICB8ICAyNSArKysrKwog NCBmaWxlcyBjaGFuZ2VkLCAyMzcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvYWNwaS9hY3BpX2FkeGwuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgv YWR4bC5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL0tjb25maWcgYi9kcml2ZXJzL2FjcGkv S2NvbmZpZwppbmRleCBkZDFlZWE5MGY2N2YuLjMyN2M5M2I1MWNiNyAxMDA2NDQKLS0tIGEvZHJp dmVycy9hY3BpL0tjb25maWcKKysrIGIvZHJpdmVycy9hY3BpL0tjb25maWcKQEAgLTQ5OCw2ICs0 OTgsMTYgQEAgY29uZmlnIEFDUElfRVhUTE9HCiAJICBkcml2ZXIgYWRkcyBzdXBwb3J0IGZvciB0 aGF0IGZ1bmN0aW9uYWxpdHkgd2l0aCBjb3JyZXNwb25kaW5nCiAJICB0cmFjZXBvaW50IHdoaWNo IGNhcnJpZXMgdGhhdCBpbmZvcm1hdGlvbiB0byB1c2Vyc3BhY2UuCiAKK2NvbmZpZyBBQ1BJX0FE WEwKKwlib29sICJQaHlzaWNhbCBhZGRyZXNzIHRvIERJTU0gYWRkcmVzcyB0cmFuc2xhdGlvbiIK KwlkZWZfYm9vbCBuCisJaGVscAorCSAgRW5hYmxlIGludGVyZmFjZSB0aGF0IGNhbGxzIGludG8g QklPUyB1c2luZyBhIERTTSAoZGV2aWNlCisJICBzcGVjaWZpYyBtZXRob2QpIHRvIGNvbnZlcnQg c3lzdGVtIHBoeXNpY2FsIGFkZHJlc3NlcworCSAgdG8gRElNTSAoc29ja2V0LCBjaGFubmVsLCBy YW5rLCBkaW1tLCBldGMuKS4KKwkgIE9ubHkgYXZhaWxhYmxlIG9uIHNvbWUgc2VydmVycy4KKwkg IFVzZWQgYnkgbmV3ZXIgRURBQyBkcml2ZXJzLgorCiBtZW51Y29uZmlnIFBNSUNfT1BSRUdJT04K IAlib29sICJQTUlDIChQb3dlciBNYW5hZ2VtZW50IEludGVncmF0ZWQgQ2lyY3VpdCkgb3BlcmF0 aW9uIHJlZ2lvbiBzdXBwb3J0IgogCWhlbHAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9NYWtl ZmlsZSBiL2RyaXZlcnMvYWNwaS9NYWtlZmlsZQppbmRleCA2ZDU5YWExMDlhOTEuLmVkYzAzOTMx M2NkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvYWNw aS9NYWtlZmlsZQpAQCAtNjEsNiArNjEsOSBAQCBhY3BpLSQoQ09ORklHX0FDUElfTFBJVCkJKz0g YWNwaV9scGl0Lm8KIGFjcGktJChDT05GSUdfQUNQSV9HRU5FUklDX0dTSSkgKz0gaXJxLm8KIGFj cGktJChDT05GSUdfQUNQSV9XQVRDSERPRykJKz0gYWNwaV93YXRjaGRvZy5vCiAKKyMgQWRkcmVz cyB0cmFuc2xhdGlvbgorYWNwaS0kKENPTkZJR19BQ1BJX0FEWEwpCSs9IGFjcGlfYWR4bC5vCisK ICMgVGhlc2UgYXJlIChwb3RlbnRpYWxseSkgc2VwYXJhdGUgbW9kdWxlcwogCiAjIElQTUkgbWF5 IGJlIHVzZWQgYnkgb3RoZXIgZHJpdmVycywgc28gaXQgaGFzIHRvIGluaXRpYWxpc2UgYmVmb3Jl IHRoZW0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9hY3BpX2FkeGwuYyBiL2RyaXZlcnMvYWNw aS9hY3BpX2FkeGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE1 OGJkOGVjMzk2ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvYWNwaS9hY3BpX2FkeGwuYwpA QCAtMCwwICsxLDE5OSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8q CisgKiBBZGRyZXNzIHRyYW5zbGF0aW9uIGludGVyZmFjZSB2aWEgQUNQSSBEU00uCisgKiBDb3B5 cmlnaHQgKEMpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBTcGVjaWZpY2F0aW9uIGZv ciB0aGlzIGludGVyZmFjZSBpcyBhdmFpbGFibGUgYXQ6CisgKgorICoJaHR0cHM6Ly9jZHJkdjIu aW50ZWwuY29tL3YxL2RsL2dldENvbnRlbnQvNjAzMzU0CisgKi8KKworI2lmZGVmIENPTkZJR19B Q1BJX0FEWEwKKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CisjaW5jbHVkZSA8bGludXgvYWR4bC5o PgorCisjZGVmaW5lIEFEWExfUkVWSVNJT04JCQkweDEKKyNkZWZpbmUgQURYTF9JRFhfR0VUX0FE RFJfUEFSQU1TCTB4MQorI2RlZmluZSBBRFhMX0lEWF9GT1JXQVJEX1RSQU5TTEFURQkweDIKKyNk ZWZpbmUgQUNQSV9BRFhMX1BBVEgJCQkiXFxfU0IuQURYTCIKKworLyoKKyAqIFRoZSBzcGVjaWZp Y2F0aW9uIGRvZXNuJ3QgcHJvdmlkZSBhIGxpbWl0IG9uIGhvdyBtYW55CisgKiBjb21wb25lbnRz IGFyZSBpbiBhIG1lbW9yeSBhZGRyZXNzLiBCdXQgc2luY2Ugd2UgYWxsb2NhdGUKKyAqIG1lbW9y eSBiYXNlZCBvbiB0aGUgbnVtYmVyIHRoZSBCSU9TIHRlbGxzIHVzLCB3ZSBzaG91bGQKKyAqIGRl ZmVuZCBhZ2FpbnN0IGluc2FuZSB2YWx1ZXMuCisgKi8KKyNkZWZpbmUgQURYTF9NQVhfQ09NUE9O RU5UUwkJNTAwCisKKyN1bmRlZiBwcl9mbXQKKyNkZWZpbmUgcHJfZm10KGZtdCkgIkFEWEw6ICIg Zm10CisKK3N0YXRpYyBhY3BpX2hhbmRsZSBoYW5kbGU7CitzdGF0aWMgdW5pb24gYWNwaV9vYmpl Y3QgKnBhcmFtczsKK3N0YXRpYyBjb25zdCBndWlkX3QgYWR4bF9ndWlkID0KKwlHVUlEX0lOSVQo MHhBQTNDMDUwQSwgMHg3RUE0LCAweDRDMUYsCisJCSAgMHhBRiwgMHhEQSwgMHgxMiwgMHg2Nywg MHhERiwgMHhEMywgMHhENCwgMHg4RCk7CisKK3N0YXRpYyBpbnQgYWR4bF9jb3VudDsKK3N0YXRp YyBjaGFyICoqYWR4bF9jb21wb25lbnRfbmFtZXM7CisKK3N0YXRpYyB1bmlvbiBhY3BpX29iamVj dCAqYWR4bF9kc20oaW50IGNtZCwgdW5pb24gYWNwaV9vYmplY3QgYXJndltdKQoreworCXVuaW9u IGFjcGlfb2JqZWN0ICpvYmosICpvOworCisJb2JqID0gYWNwaV9ldmFsdWF0ZV9kc21fdHlwZWQo aGFuZGxlLCAmYWR4bF9ndWlkLCBBRFhMX1JFVklTSU9OLAorCQkJCSAgICAgIGNtZCwgYXJndiwg QUNQSV9UWVBFX1BBQ0tBR0UpOworCWlmICghb2JqKSB7CisJCXByX2luZm8oIkVtcHR5IG9ialxu Iik7CisJCXJldHVybiBOVUxMOworCX0KKworCWlmIChvYmotPnBhY2thZ2UuY291bnQgIT0gMikg eworCQlwcl9pbmZvKCJCYWQgcGtnIGNvdW50ICVkXG4iLCBvYmotPnBhY2thZ2UuY291bnQpOwor CQlnb3RvIGVycjsKKwl9CisKKwlvID0gb2JqLT5wYWNrYWdlLmVsZW1lbnRzOworCWlmIChvLT50 eXBlICE9IEFDUElfVFlQRV9JTlRFR0VSKSB7CisJCXByX2luZm8oIkJhZCAxc3QgZWxlbWVudCB0 eXBlICVkXG4iLCBvLT50eXBlKTsKKwkJZ290byBlcnI7CisJfQorCWlmIChvLT5pbnRlZ2VyLnZh bHVlKSB7CisJCXByX2luZm8oIkJhZCByZXQgdmFsICVsbHVcbiIsIG8tPmludGVnZXIudmFsdWUp OworCQlnb3RvIGVycjsKKwl9CisKKwlvID0gb2JqLT5wYWNrYWdlLmVsZW1lbnRzICsgMTsKKwlp ZiAoby0+dHlwZSAhPSBBQ1BJX1RZUEVfUEFDS0FHRSkgeworCQlwcl9pbmZvKCJCYWQgMm5kIGVs ZW1lbnQgdHlwZSAlZFxuIiwgby0+dHlwZSk7CisJCWdvdG8gZXJyOworCX0KKwlyZXR1cm4gb2Jq OworCitlcnI6CisJQUNQSV9GUkVFKG9iaik7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qKgorICog YWR4bF9nZXRfY29tcG9uZW50X25hbWVzIC0gZ2V0IGxpc3Qgb2YgbWVtb3J5IGNvbXBvbmVudCBu YW1lcworICogUmV0dXJucyBOVUxMIHRlcm1pbmF0ZWQgbGlzdCBvZiBzdHJpbmcgbmFtZXMKKyAq CisgKiBHaXZlIHRoZSBjYWxsZXIgYSBwb2ludGVyIHRvIHRoZSBsaXN0IG9mIG1lbW9yeSBjb21w b25lbnQgbmFtZXMKKyAqIGUuZy4geyAiU3lzdGVtQWRkcmVzcyIsICJQcm9jZXNzb3JTb2NrZXRJ ZCIsICJDaGFubmVsSWQiLCAuLi4gTlVMTCB9CisgKiBDYWxsZXIgc2hvdWxkIGNvdW50IGhvdyBt YW55IHN0cmluZ3MgaW4gb3JkZXIgdG8gYWxsb2NhdGUgYSBidWZmZXIKKyAqIGZvciB0aGUgcmV0 dXJuIGZyb20gYWR4bF9kZWNvZGUoKS4KKyAqLworY29uc3QgY2hhciAqIGNvbnN0ICphZHhsX2dl dF9jb21wb25lbnRfbmFtZXModm9pZCkKK3sKKwlyZXR1cm4gKGNvbnN0IGNoYXIgKiBjb25zdCAq KWFkeGxfY29tcG9uZW50X25hbWVzOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYWR4bF9nZXRfY29t cG9uZW50X25hbWVzKTsKKworLyoqCisgKiBhZHhsX2RlY29kZSAtIGFzayBCSU9TIHRvIGRlY29k ZSBhIHN5c3RlbSBhZGRyZXNzIHRvIG1lbW9yeSBhZGRyZXNzCisgKiBAYWRkcjogdGhlIGFkZHJl c3MgdG8gZGVjb2RlCisgKiBAY29tcG9uZW50X3ZhbHVlczogcG9pbnRlciB0byBhcnJheSBvZiB2 YWx1ZXMgZm9yIGVhY2ggY29tcG9uZW50CisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRp dmUgZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqCisgKiBUaGUgaW5kZXggb2YgZWFjaCB2YWx1ZSBy ZXR1cm5lZCBpbiB0aGUgYXJyYXkgbWF0Y2hlcyB0aGUgaW5kZXggb2YKKyAqIGVhY2ggY29tcG9u ZW50IG5hbWUgcmV0dXJuZWQgYnkgYWR4bF9nZXRfY29tcG9uZW50X25hbWVzKCkuCisgKiBDb21w b25lbnRzIHRoYXQgYXJlIG5vdCBkZWZpbmVkIGZvciB0aGlzIGFkZHJlc3MgdHJhbnNsYXRpb24g KGUuZy4KKyAqIG1pcnJvciBjaGFubmVsIG51bWJlciBmb3IgYSBub24tbWlycm9yZWQgYWRkcmVz cykgYXJlIHNldCB0byB+MHVsbC4KKyAqLworaW50IGFkeGxfZGVjb2RlKHU2NCBhZGRyLCB1NjQg Y29tcG9uZW50X3ZhbHVlc1tdKQoreworCXVuaW9uIGFjcGlfb2JqZWN0IGFyZ3Y0WzJdLCAqcmVz dWx0cywgKnI7CisJaW50IGksIGNudDsKKworCWlmICghYWR4bF9jb21wb25lbnRfbmFtZXMpCisJ CXJldHVybiAtRU9QTk9UU1VQUDsKKworCWFyZ3Y0WzBdLnR5cGUgPSBBQ1BJX1RZUEVfUEFDS0FH RTsKKwlhcmd2NFswXS5wYWNrYWdlLmNvdW50ID0gMTsKKwlhcmd2NFswXS5wYWNrYWdlLmVsZW1l bnRzID0gJmFyZ3Y0WzFdOworCWFyZ3Y0WzFdLmludGVnZXIudHlwZSA9IEFDUElfVFlQRV9JTlRF R0VSOworCWFyZ3Y0WzFdLmludGVnZXIudmFsdWUgPSBhZGRyOworCisJcmVzdWx0cyA9IGFkeGxf ZHNtKEFEWExfSURYX0ZPUldBUkRfVFJBTlNMQVRFLCBhcmd2NCk7CisJaWYgKCFyZXN1bHRzKQor CQlyZXR1cm4gLUVJTlZBTDsKKworCXIgPSByZXN1bHRzLT5wYWNrYWdlLmVsZW1lbnRzICsgMTsK KwljbnQgPSByLT5wYWNrYWdlLmNvdW50OworCWlmIChjbnQgIT0gYWR4bF9jb3VudCkgeworCQlB Q1BJX0ZSRUUocmVzdWx0cyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyID0gci0+cGFja2Fn ZS5lbGVtZW50czsKKworCWZvciAoaSA9IDA7IGkgPCBjbnQ7IGkrKykKKwkJY29tcG9uZW50X3Zh bHVlc1tpXSA9IHJbaV0uaW50ZWdlci52YWx1ZTsKKworCUFDUElfRlJFRShyZXN1bHRzKTsKKwor CXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYWR4bF9kZWNvZGUpOworCitzdGF0aWMg Ym9vbCBhZHhsX2RldGVjdCh2b2lkKQoreworCWNoYXIgKnBhdGggPSBBQ1BJX0FEWExfUEFUSDsK Kwl1bmlvbiBhY3BpX29iamVjdCAqcDsKKwlhY3BpX3N0YXR1cyBzdGF0dXM7CisJaW50IGk7CisK KwlzdGF0dXMgPSBhY3BpX2dldF9oYW5kbGUoTlVMTCwgcGF0aCwgJmhhbmRsZSk7CisJaWYgKEFD UElfRkFJTFVSRShzdGF0dXMpKSB7CisJCXByX2luZm8oIk5vIEFDUEkgaGFuZGxlIGZvciBwYXRo ICVzXG4iLCBwYXRoKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmICghYWNwaV9oYXNfbWV0 aG9kKGhhbmRsZSwgIl9EU00iKSkgeworCQlwcl9pbmZvKCJObyBEU00gbWV0aG9kXG4iKTsKKwkJ cmV0dXJuIGZhbHNlOworCX0KKworCWlmICghYWNwaV9jaGVja19kc20oaGFuZGxlLCAmYWR4bF9n dWlkLCBBRFhMX1JFVklTSU9OLAorCQkJICAgIEFEWExfSURYX0dFVF9BRERSX1BBUkFNUyB8CisJ CQkgICAgQURYTF9JRFhfRk9SV0FSRF9UUkFOU0xBVEUpKSB7CisJCXByX2luZm8oIk5vIEFEWEwg RFNNIG1ldGhvZHNcbiIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcGFyYW1zID0gYWR4bF9k c20oQURYTF9JRFhfR0VUX0FERFJfUEFSQU1TLCBOVUxMKTsKKwlpZiAoIXBhcmFtcykgeworCQlw cl9pbmZvKCJGYWlsZWQgdG8gZ2V0IHBhcmFtc1xuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisK KwlwID0gcGFyYW1zLT5wYWNrYWdlLmVsZW1lbnRzICsgMTsKKwlhZHhsX2NvdW50ID0gcC0+cGFj a2FnZS5jb3VudDsKKwlpZiAoYWR4bF9jb3VudCA+IEFEWExfTUFYX0NPTVBPTkVOVFMpIHsKKwkJ cHJfaW5mbygiSW5zYW5lIG51bWJlciBvZiBhZGRyZXNzIGNvbXBvbmVudCBuYW1lcyAlZFxuIiwg YWR4bF9jb3VudCk7CisJCUFDUElfRlJFRShwYXJhbXMpOworCQlyZXR1cm4gZmFsc2U7CisJfQor CXAgPSBwLT5wYWNrYWdlLmVsZW1lbnRzOworCisJYWR4bF9jb21wb25lbnRfbmFtZXMgPSBrY2Fs bG9jKGFkeGxfY291bnQgKyAxLCBzaXplb2YoY2hhciAqKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFh ZHhsX2NvbXBvbmVudF9uYW1lcykgeworCQlBQ1BJX0ZSRUUocGFyYW1zKTsKKwkJcmV0dXJuIGZh bHNlOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBhZHhsX2NvdW50OyBpKyspCisJCWFkeGxfY29t cG9uZW50X25hbWVzW2ldID0gcFtpXS5zdHJpbmcucG9pbnRlcjsKKworCXJldHVybiB0cnVlOwor fQorCitzdGF0aWMgaW50IF9faW5pdCBhZHhsX2luaXQodm9pZCkKK3sKKwlpZiAoIWFkeGxfZGV0 ZWN0KCkpCisJCXJldHVybiAtRU5PREVWOworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxs KGFkeGxfaW5pdCk7CisKKyNlbmRpZiAvKiBDT05GSUdfQUNQSV9BRFhMICovCmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L2FkeGwuaCBiL2luY2x1ZGUvbGludXgvYWR4bC5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjAyMzcwNGU1ZDBiCi0tLSAvZGV2L251bGwK KysrIGIvaW5jbHVkZS9saW51eC9hZHhsLmgKQEAgLTAsMCArMSwyNSBAQAorLyogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKy8qCisgKiBBZGRyZXNzIHRyYW5zbGF0aW9uIGlu dGVyZmFjZSB2aWEgQUNQSSBEU00uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggSW50ZWwgQ29ycG9y YXRpb24KKyAqLworCisjaWZuZGVmIF9MSU5VWF9BRFhMX0gKKyNkZWZpbmUgX0xJTlVYX0FEWExf SAorCisjaWZkZWYgQ09ORklHX0FDUElfQURYTAorY29uc3QgY2hhciAqIGNvbnN0ICphZHhsX2dl dF9jb21wb25lbnRfbmFtZXModm9pZCk7CitpbnQgYWR4bF9kZWNvZGUodTY0IGFkZHIsIHU2NCBj b21wb25lbnRfdmFsdWVzW10pOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqIGNv bnN0ICphZHhsX2dldF9jb21wb25lbnRfbmFtZXModm9pZCkKK3sKKwlyZXR1cm4gTlVMTDsKK30K Kworc3RhdGljIGlubGluZSBpbnQgYWR4bF9kZWNvZGUodTY0IGFkZHIsIHU2NCBjb21wb25lbnRf dmFsdWVzW10pCit7CisJcmV0dXJuIC1FT1BOT1RTVVBQOworfQorI2VuZGlmCisKKyNlbmRpZiAv KiBfTElOVVhfQURYTF9IICovCg==