From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v7 12/24] xsplice, symbols: Implement symbol name resolution on address. Date: Sun, 10 Apr 2016 17:14:44 -0400 Message-ID: <1460322896-1115-13-git-send-email-konrad.wilk@oracle.com> References: <1460322896-1115-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1apMhv-0000JI-Rm for xen-devel@lists.xenproject.org; Sun, 10 Apr 2016 21:15:48 +0000 In-Reply-To: <1460322896-1115-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, konrad@kernel.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de Cc: Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+CgpJZiBpbiB0 aGUgcGF5bG9hZCB3ZSBkbyBub3QgaGF2ZSB0aGUgb2xkX2FkZHIgd2UgY2FuIHJlc29sdmUKdGhl IHZpcnR1YWwgYWRkcmVzcyBiYXNlZCBvbiB0aGUgVU5ERUZpbmVkIHN5bWJvbHMuCgpXZSBhbHNv IHVzZSBhbiBib29sZWFuIGZsYWc6IG5ld19zeW1ib2wgdG8gdHJhY2sgc3ltYm9scy4gVGhlIHVz dWFsCmNhc2UgdGhpcyBpcyB1c2VkIGlzIGJ5OgoKKiBBIHBheWxvYWQgbWF5IGludHJvZHVjZSBh IG5ldyBzeW1ib2wKKiBBIHBheWxvYWQgbWF5IG92ZXJyaWRlIGFuIGV4aXN0aW5nIHN5bWJvbCAo aW50cm9kdWNlZCBpbiBYZW4gb3IgYW5vdGhlcgogIHBheWxvYWQpCiogT3ZlcnJpZGluZyBzeW1i b2xzIG11c3QgZXhpc3QgaW4gdGhlIHN5bXRhYiBmb3IgYmFja3RyYWNlcy4KKiBBIHBheWxvYWQg bXVzdCBhbHdheXMgbGluayBhZ2FpbnN0IHRoZSBvYmplY3Qgd2hpY2ggZGVmaW5lcyB0aGUgbmV3 IHN5bWJvbC4KCkNvbnNpZGVyaW5nIHRoYXQgcGF5bG9hZHMgbWF5IGJlIGxvYWRlZCBpbiBhbnkg b3JkZXIgaXQgd291bGQgYmUgaW5jb3JyZWN0IHRvCmxpbmsgYWdhaW5zdCBhIHBheWxvYWQgd2hp Y2ggc2ltcGx5IG92ZXJyaWRlcyBhIHN5bWJvbCBiZWNhdXNlIHlvdSBjb3VsZCBlbmQKdXAgd2l0 aCBhIGNoYWluIG9mIGp1bXBzIHdoaWNoIGlzIGluZWZmaWNpZW50IGFuZCBtYXkgcmVzdWx0IGlu IHRoZSBleHBlY3RlZApmdW5jdGlvbiBub3QgYmVpbmcgZXhlY3V0ZWQuCgpBbHNvIHdlIGluY2x1 ZGUgYSBsb2NhbCBkZWZpbml0aW9uIGJsb2NrIGluIHRoZSBzeW1ib2xzLmMgZmlsZS4KClNpZ25l ZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+ ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoK LS0tCkNjOiBLZWlyIEZyYXNlciA8a2VpckB4ZW4ub3JnPgpDYzogSmFuIEJldWxpY2ggPGpiZXVs aWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KCnYxOiBSb3NzIG9yaWdpbmFsIHZlcnNpb24uCnYyOiBJbmNsdWRlIHRlc3QtY2FzZSBhbmQg ZG9jdW1lbnQgdXBkYXRlLgp2Mjogcy9zaXplX3Qvc3NpemVfdC8KICAgIEluY2x1ZGUgY29yZV90 ZXh0X3NpemUsIGNvcmVfdGV4dCBjYWxjdWxhdGlvbgp2NDogQ2FzdCBvbiBkcHJpbnRrIHRvIHVp bnQ2NF90IHRvIG1ha2UgRUxGIDMyYml0IGJ1aWxkLgp2NjogUmViYXNlIHdoZXJlIHRoZSBzcGlu bG9jayBpcyBubyBtb3JlIHJlY3Vyc2l2ZS4gRHJvcCB0aGUgc3BpbmxvY2sKICAgIHVzYWdlIGlu IHhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFtZQp2NzogQWRkIEFuZHJldydzIFJldmlld2Vk LWJ5CiAgICBJbml0aWFsaXplIGFkZHIgYW5kIHN5bW5hbWUgdG8gemVybyBhcyB4ZW5zeW1zX3Jl YWQgdXNlcyBpdC4KLS0tCi0tLQogeGVuL2FyY2gveDg2L01ha2VmaWxlICAgICAgICAgICAgICAg fCAgMTYgKysrLQogeGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUgICAgICAgICAgfCAgIDQgKy0K IHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZC5jIHwgICA1ICstCiB4ZW4vY29tbW9u L3N5bWJvbHMuYyAgICAgICAgICAgICAgICB8ICAzNCArKysrKysrKwogeGVuL2NvbW1vbi94c3Bs aWNlLmMgICAgICAgICAgICAgICAgfCAxNTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystCiB4ZW4vY29tbW9uL3hzcGxpY2VfZWxmLmMgICAgICAgICAgICB8ICAxOSArKysrLQog eGVuL2luY2x1ZGUveGVuL3N5bWJvbHMuaCAgICAgICAgICAgfCAgIDIgKwogeGVuL2luY2x1ZGUv eGVuL3hzcGxpY2UuaCAgICAgICAgICAgfCAgIDggKysKIDggZmlsZXMgY2hhbmdlZCwgMjMyIGlu c2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9N YWtlZmlsZSBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQppbmRleCA2YzJkNWZhLi41N2M5M2UxIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L01ha2Vm aWxlCkBAIC03Miw2ICs3MiwxMiBAQCBlZmkteSA6PSAkKHNoZWxsIGlmIFsgISAtciAkKEJBU0VE SVIpL2luY2x1ZGUveGVuL2NvbXBpbGUuaCAtbyBcCiAgICAgICAgICAgICAgICAgICAgICAgLU8g JChCQVNFRElSKS9pbmNsdWRlL3hlbi9jb21waWxlLmggXTsgdGhlbiBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgZWNobyAnJChUQVJHRVQpLmVmaSc7IGZpKQogCitpZmRlZiBDT05GSUdfWFNQ TElDRQorYWxsX3N5bWJvbHMgPSAtLWFsbC1zeW1ib2xzCitlbHNlCithbGxfc3ltYm9scyA9Citl bmRpZgorCiAkKFRBUkdFVCk6ICQoVEFSR0VUKS1zeW1zICQoZWZpLXkpIGJvb3QvbWtlbGYzMgog CS4vYm9vdC9ta2VsZjMyICQoVEFSR0VUKS1zeW1zICQoVEFSR0VUKSAweDEwMDAwMCBcCiAJYCQo Tk0pIC1uciAkKFRBUkdFVCktc3ltcyB8IGhlYWQgLW4gMSB8IHNlZCAtZSAncy9eXChbXiBdKlwp LiovMHhcMS8nYApAQCAtMTExLDEyICsxMTcsMTQgQEAgJChUQVJHRVQpLXN5bXM6IHByZWxpbmsu byB4ZW4ubGRzICQoQkFTRURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXkubwogCSQoTEQpICQoTERG TEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gXAogCSAgICAkKEJBU0VESVIpL2NvbW1vbi9z eW1ib2xzLWR1bW15Lm8gLW8gJChARCkvLiQoQEYpLjAKIAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lz diAkKEBEKS8uJChARikuMCBcCi0JCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xzIC0tc3lzdiAt LXNvcnQgPiQoQEQpLy4kKEBGKS4wLlMKKwkJfCAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgJChh bGxfc3ltYm9scykgLS1zeXN2IC0tc29ydCBcCisJCT4kKEBEKS8uJChARikuMC5TCiAJJChNQUtF KSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rICQoQEQpLy4kKEBGKS4wLm8KIAkkKExEKSAkKExERkxB R1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vIFwKIAkgICAgJChARCkvLiQoQEYpLjAubyAtbyAk KEBEKS8uJChARikuMQogCSQoTk0pIC1wYSAtLWZvcm1hdD1zeXN2ICQoQEQpLy4kKEBGKS4xIFwK LQkJfCAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgLS1zeXN2IC0tc29ydCAtLXdhcm4tZHVwID4k KEBEKS8uJChARikuMS5TCisJCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xzICQoYWxsX3N5bWJv bHMpIC0tc3lzdiAtLXNvcnQgLS13YXJuLWR1cCBcCisJCT4kKEBEKS8uJChARikuMS5TCiAJJChN QUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rICQoQEQpLy4kKEBGKS4xLm8KIAkkKExEKSAkKExE RkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vIFwKIAkgICAgJChARCkvLiQoQEYpLjEubyAt byAkQApAQCAtMTQwLDE0ICsxNDgsMTQgQEAgJChUQVJHRVQpLmVmaTogcHJlbGluay1lZmkubyBl ZmkubGRzIGVmaS9yZWxvY3MtZHVtbXkubyAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2wKIAkgICAg ICAgICAgICAgICAgJChCQVNFRElSKS9jb21tb24vc3ltYm9scy1kdW1teS5vIC1vICQoQEQpLy4k KEBGKS4kKGJhc2UpLjAgJiYpIDoKIAkkKGd1YXJkKSBlZmkvbWtyZWxvYyAkKGZvcmVhY2ggYmFz ZSwkKFZJUlRfQkFTRSkgJChBTFRfQkFTRSksJChARCkvLiQoQEYpLiQoYmFzZSkuMCkgPiQoQEQp Ly4kKEBGKS4wci5TCiAJJChndWFyZCkgJChOTSkgLXBhIC0tZm9ybWF0PXN5c3YgJChARCkvLiQo QEYpLiQoVklSVF9CQVNFKS4wIFwKLQkJfCAkKGd1YXJkKSAkKEJBU0VESVIpL3Rvb2xzL3N5bWJv bHMgLS1zeXN2IC0tc29ydCA+JChARCkvLiQoQEYpLjBzLlMKKwkJfCAkKGd1YXJkKSAkKEJBU0VE SVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3ltYm9scykgLS1zeXN2IC0tc29ydCA+JChARCkvLiQo QEYpLjBzLlMKIAkkKGd1YXJkKSAkKE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgJChARCkv LiQoQEYpLjByLm8gJChARCkvLiQoQEYpLjBzLm8KIAkkKGZvcmVhY2ggYmFzZSwgJChWSVJUX0JB U0UpICQoQUxUX0JBU0UpLCBcCiAJICAgICAgICAgICQoZ3VhcmQpICQoTEQpICQoY2FsbCBFRklf TERGTEFHUywkKGJhc2UpKSAtVCBlZmkubGRzIC1OICQ8IFwKIAkgICAgICAgICAgICAgICAgJChA RCkvLiQoQEYpLjByLm8gJChARCkvLiQoQEYpLjBzLm8gLW8gJChARCkvLiQoQEYpLiQoYmFzZSku MSAmJikgOgogCSQoZ3VhcmQpIGVmaS9ta3JlbG9jICQoZm9yZWFjaCBiYXNlLCQoVklSVF9CQVNF KSAkKEFMVF9CQVNFKSwkKEBEKS8uJChARikuJChiYXNlKS4xKSA+JChARCkvLiQoQEYpLjFyLlMK IAkkKGd1YXJkKSAkKE5NKSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuJChWSVJUX0JB U0UpLjEgXAotCQl8ICQoZ3VhcmQpICQoQkFTRURJUikvdG9vbHMvc3ltYm9scyAtLXN5c3YgLS1z b3J0ID4kKEBEKS8uJChARikuMXMuUworCQl8ICQoZ3VhcmQpICQoQkFTRURJUikvdG9vbHMvc3lt Ym9scyAkKGFsbF9zeW1ib2xzKSAtLXN5c3YgLS1zb3J0ID4kKEBEKS8uJChARikuMXMuUwogCSQo Z3VhcmQpICQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChARikuMXIubyAk KEBEKS8uJChARikuMXMubwogCSQoZ3VhcmQpICQoTEQpICQoY2FsbCBFRklfTERGTEFHUywkKFZJ UlRfQkFTRSkpIC1UIGVmaS5sZHMgLU4gJDwgXAogCSAgICAgICAgICAgICAgICAkKEBEKS8uJChA RikuMXIubyAkKEBEKS8uJChARikuMXMubyAtbyAkQApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3Rlc3QvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvdGVzdC9NYWtlZmlsZQppbmRleCBiOWNmMTNj Li5iYWE0ODIwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGVzdC9NYWtlZmlsZQorKysgYi94 ZW4vYXJjaC94ODYvdGVzdC9NYWtlZmlsZQpAQCAtMjYsMTQgKzI2LDEyIEBAIGNsZWFuOjoKICMg dGhlIGxhc3QgZW50cnkgaW4gdGhlIGJ1aWxkIHRhcmdldC4KICMKIC5QSE9OWTogY29uZmlnLmgK LWNvbmZpZy5oOiBPTERfQ09ERT0kKGNhbGwgQ09ERV9BRERSLCQoQkFTRURJUikveGVuLXN5bXMs eGVuX2V4dHJhX3ZlcnNpb24pCiBjb25maWcuaDogT0xEX0NPREVfU1o9JChjYWxsIENPREVfU1os JChCQVNFRElSKS94ZW4tc3ltcyx4ZW5fZXh0cmFfdmVyc2lvbikKIGNvbmZpZy5oOiBORVdfQ09E RV9TWj0kKGNhbGwgQ09ERV9TWiwkPCx4ZW5faGVsbG9fd29ybGQpCiBjb25maWcuaDogeGVuX2hl bGxvX3dvcmxkX2Z1bmMubwogCShzZXQgLWU7IFwKIAkgZWNobyAiI2RlZmluZSBORVdfQ09ERV9T WiAkKE5FV19DT0RFX1NaKSI7IFwKLQkgZWNobyAiI2RlZmluZSBPTERfQ09ERV9TWiAkKE9MRF9D T0RFX1NaKSI7IFwKLQkgZWNobyAiI2RlZmluZSBPTERfQ09ERSAkKE9MRF9DT0RFKSIpID4gJEAK KwkgZWNobyAiI2RlZmluZSBPTERfQ09ERV9TWiAkKE9MRF9DT0RFX1NaKSIpID4gJEAKIAogLlBI T05ZOiB4c3BsaWNlCiB4c3BsaWNlOiBjb25maWcuaApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMgYi94ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29y bGQuYwppbmRleCAyMTgzMWU5Li4yMmZlMmU3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGVz dC94ZW5faGVsbG9fd29ybGQuYworKysgYi94ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29y bGQuYwpAQCAtMTAsMTEgKzEwLDE0IEBACiBzdGF0aWMgY2hhciBoZWxsb193b3JsZF9wYXRjaF90 aGlzX2ZuY1tdID0gInhlbl9leHRyYV92ZXJzaW9uIjsKIGV4dGVybiBjb25zdCBjaGFyICp4ZW5f aGVsbG9fd29ybGQodm9pZCk7CiAKKy8qIEV4dGVybmFsIHN5bWJvbC4gKi8KK2V4dGVybiBjb25z dCBjaGFyICp4ZW5fZXh0cmFfdmVyc2lvbih2b2lkKTsKKwogc3RydWN0IHhzcGxpY2VfcGF0Y2hf ZnVuYyBfX3NlY3Rpb24oIi54c3BsaWNlLmZ1bmNzIikgeHNwbGljZV94ZW5faGVsbG9fd29ybGQg PSB7CiAgICAgLnZlcnNpb24gPSBYU1BMSUNFX1BBWUxPQURfVkVSU0lPTiwKICAgICAubmFtZSA9 IGhlbGxvX3dvcmxkX3BhdGNoX3RoaXNfZm5jLAogICAgIC5uZXdfYWRkciA9ICh1bnNpZ25lZCBs b25nKSh4ZW5faGVsbG9fd29ybGQpLAotICAgIC5vbGRfYWRkciA9IE9MRF9DT0RFLAorICAgIC5v bGRfYWRkciA9ICh1bnNpZ25lZCBsb25nKSh4ZW5fZXh0cmFfdmVyc2lvbiksCiAgICAgLm5ld19z aXplID0gTkVXX0NPREVfU1osCiAgICAgLm9sZF9zaXplID0gT0xEX0NPREVfU1osCiB9OwpkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9zeW1ib2xzLmMgYi94ZW4vY29tbW9uL3N5bWJvbHMuYwppbmRl eCBiMThkZGNkMS4uNzgxNzY1ZCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zeW1ib2xzLmMKKysr IGIveGVuL2NvbW1vbi9zeW1ib2xzLmMKQEAgLTIwNywzICsyMDcsMzcgQEAgaW50IHhlbnN5bXNf cmVhZCh1aW50MzJfdCAqc3ltbnVtLCBjaGFyICp0eXBlLAogCiAgICAgcmV0dXJuIDA7CiB9CisK K3Vuc2lnbmVkIGxvbmcgc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpzeW1uYW1l KQoreworICAgIGNoYXIgbmFtZVtLU1lNX05BTUVfTEVOICsgMV0gPSB7IDAgfTsKKyAgICB1aW50 MzJfdCBzeW1udW0gPSAwOworICAgIGNoYXIgdHlwZTsKKyAgICB1aW50NjRfdCBhZGRyID0gMDsK KyAgICBpbnQgcmM7CisKKyAgICBpZiAoIHN5bW5hbWUgPT0gJ1wwJyApCisgICAgICAgIHJldHVy biAwOworCisgICAgZG8geworICAgICAgICByYyA9IHhlbnN5bXNfcmVhZCgmc3ltbnVtLCAmdHlw ZSwgJmFkZHIsIG5hbWUpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgYnJlYWs7CisK KyAgICAgICAgaWYgKCAhc3RyY21wKG5hbWUsIHN5bW5hbWUpICkKKyAgICAgICAgICAgIHJldHVy biBhZGRyOworCisgICAgfSB3aGlsZSAoIG5hbWVbMF0gIT0gJ1wwJyApOworCisgICAgcmV0dXJu IDA7Cit9CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUt c3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBp bmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi94c3BsaWNlLmMgYi94ZW4vY29tbW9uL3hzcGxpY2UuYwppbmRleCA5YTUzY2Y0Li4yN2Y0ODIy IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3hzcGxpY2UuYworKysgYi94ZW4vY29tbW9uL3hzcGxp Y2UuYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgPHhlbi9zbXAuaD4KICNpbmNsdWRlIDx4 ZW4vc29mdGlycS5oPgogI2luY2x1ZGUgPHhlbi9zcGlubG9jay5oPgorI2luY2x1ZGUgPHhlbi9z eW1ib2xzLmg+CiAjaW5jbHVkZSA8eGVuL3ZtYXAuaD4KICNpbmNsdWRlIDx4ZW4vd2FpdC5oPgog I2luY2x1ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgpAQCAtNTEsNiArNTIsOSBAQCBzdHJ1Y3QgcGF5 bG9hZCB7CiAgICAgc3RydWN0IGxpc3RfaGVhZCBhcHBsaWVkX2xpc3Q7ICAgICAgIC8qIExpbmtl ZCB0byAnYXBwbGllZF9saXN0Jy4gKi8KICAgICBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jX2lu dGVybmFsICpmdW5jczsgICAgLyogVGhlIGFycmF5IG9mIGZ1bmN0aW9ucyB0byBwYXRjaC4gKi8K ICAgICB1bnNpZ25lZCBpbnQgbmZ1bmNzOyAgICAgICAgICAgICAgICAgLyogTnIgb2YgZnVuY3Rp b25zIHRvIHBhdGNoLiAqLworICAgIHN0cnVjdCB4c3BsaWNlX3N5bWJvbCAqc3ltdGFiOyAgICAg ICAvKiBBbGwgc3ltYm9scy4gKi8KKyAgICBjaGFyICpzdHJ0YWI7ICAgICAgICAgICAgICAgICAg ICAgICAgLyogUG9pbnRlciB0byAuc3RydGFiLiAqLworICAgIHVuc2lnbmVkIGludCBuc3ltczsg ICAgICAgICAgICAgICAgICAvKiBOciBvZiBlbnRyaWVzIGluIC5zdHJ0YWIgYW5kIHN5bWJvbHMu ICovCiAgICAgY2hhciBuYW1lW1hFTl9YU1BMSUNFX05BTUVfU0laRV07ICAgIC8qIE5hbWUgb2Yg aXQuICovCiB9OwogCkBAIC0xMTQsNiArMTE4LDI4IEBAIHN0YXRpYyBpbnQgdmVyaWZ5X3BheWxv YWQoY29uc3QgeGVuX3N5c2N0bF94c3BsaWNlX3VwbG9hZF90ICp1cGxvYWQsIGNoYXIgKm4pCiAg ICAgcmV0dXJuIDA7CiB9CiAKK3Vuc2lnbmVkIGxvbmcgeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9i eV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUpCit7CisgICAgc3RydWN0IHBheWxvYWQgKmRhdGE7 CisKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBheWxvYWRfbG9jaykpOworICAgIGxpc3Rf Zm9yX2VhY2hfZW50cnkgKCBkYXRhLCAmcGF5bG9hZF9saXN0LCBsaXN0ICkKKyAgICB7CisgICAg ICAgIHVuc2lnbmVkIGludCBpOworCisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgZGF0YS0+bnN5 bXM7IGkrKyApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggIWRhdGEtPnN5bXRhYltpXS5u ZXdfc3ltYm9sICkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYg KCAhc3RyY21wKGRhdGEtPnN5bXRhYltpXS5uYW1lLCBzeW1uYW1lKSApCisgICAgICAgICAgICAg ICAgcmV0dXJuIGRhdGEtPnN5bXRhYltpXS52YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAg IHJldHVybiAwOworfQorCiBzdGF0aWMgc3RydWN0IHBheWxvYWQgKmZpbmRfcGF5bG9hZChjb25z dCBjaGFyICpuYW1lKQogewogICAgIHN0cnVjdCBwYXlsb2FkICpkYXRhLCAqZm91bmQgPSBOVUxM OwpAQCAtMzc2LDExICs0MDIsMTI5IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9wYXlsb2FkKHN0cnVj dCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICBmb3IgKCBqID0gMDsgaiA8IEFSUkFZX1NJWkUo Zi0+dS5wYWQpOyBqKysgKQogICAgICAgICAgICAgaWYgKCBmLT51LnBhZFtqXSApCiAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgLyogTG9va3VwIGZ1bmN0aW9uJ3Mg b2xkIGFkZHJlc3MgaWYgbm90IGFscmVhZHkgcmVzb2x2ZWQuICovCisgICAgICAgIGlmICggIWYt Pm9sZF9hZGRyICkKKyAgICAgICAgeworICAgICAgICAgICAgZi0+b2xkX2FkZHIgPSAodm9pZCAq KXN5bWJvbHNfbG9va3VwX2J5X25hbWUoZi0+bmFtZSk7CisgICAgICAgICAgICBpZiAoICFmLT5v bGRfYWRkciApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZi0+b2xkX2FkZHIgPSAo dm9pZCAqKXhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFtZShmLT5uYW1lKTsKKyAgICAgICAg ICAgICAgICBpZiAoICFmLT5vbGRfYWRkciApCisgICAgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICAgICBwcmludGsoWEVOTE9HX0RFQlVHIFhTUExJQ0UgIiVzOiBDb3VsZCBub3QgcmVz b2x2ZSBvbGQgYWRkcmVzcyBvZiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs Zi0+bmFtZSwgZi0+bmFtZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PRU5UOwor ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRwcmludGsoWEVO TE9HX0RFQlVHLCBYU1BMSUNFICIlczogUmVzb2x2ZWQgb2xkIGFkZHJlc3MgJXMgPT4gJXBcbiIs CisgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgZi0+bmFtZSwgZi0+b2xkX2FkZHIpOwor ICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBib29sX3QgaXNf cGF5bG9hZF9zeW1ib2woY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB4c3BsaWNlX2VsZl9zeW0gKnN5bSkK K3sKKyAgICBpZiAoIHN5bS0+c3ltLT5zdF9zaG5keCA9PSBTSE5fVU5ERUYgfHwKKyAgICAgICAg IHN5bS0+c3ltLT5zdF9zaG5keCA+PSBlbGYtPmhkci0+ZV9zaG51bSApCisgICAgICAgIHJldHVy biAwOworCisgICAgcmV0dXJuIChlbGYtPnNlY1tzeW0tPnN5bS0+c3Rfc2huZHhdLnNlYy0+c2hf ZmxhZ3MgJiBTSEZfQUxMT0MpICYmCisgICAgICAgICAgICAoRUxGNjRfU1RfVFlQRShzeW0tPnN5 bS0+c3RfaW5mbykgPT0gU1RUX09CSkVDVCB8fAorICAgICAgICAgICAgIEVMRjY0X1NUX1RZUEUo c3ltLT5zeW0tPnN0X2luZm8pID09IFNUVF9GVU5DKTsKK30KKworc3RhdGljIGludCBidWlsZF9z eW1ib2xfdGFibGUoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKK3sKKyAgICB1bnNpZ25l ZCBpbnQgaSwgaiwgbnN5bXMgPSAwOworICAgIHNpemVfdCBzdHJ0YWJfbGVuID0gMDsKKyAgICBz dHJ1Y3QgeHNwbGljZV9zeW1ib2wgKnN5bXRhYjsKKyAgICBjaGFyICpzdHJ0YWI7CisKKyAgICBB U1NFUlQocGF5bG9hZC0+bmZ1bmNzKTsKKworICAgIC8qIFJlY2FsbCB0aGF0IHNlY3Rpb24gQDAg aXMgYWx3YXlzIE5VTEwuICovCisgICAgZm9yICggaSA9IDE7IGkgPCBlbGYtPm5zeW07IGkrKyAp CisgICAgeworICAgICAgICBpZiAoIGlzX3BheWxvYWRfc3ltYm9sKGVsZiwgZWxmLT5zeW0gKyBp KSApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5zeW1zKys7CisgICAgICAgICAgICBzdHJ0YWJf bGVuICs9IHN0cmxlbihlbGYtPnN5bVtpXS5uYW1lKSArIDE7CisgICAgICAgIH0KKyAgICB9CisK KyAgICBzeW10YWIgPSB4bWFsbG9jX2FycmF5KHN0cnVjdCB4c3BsaWNlX3N5bWJvbCwgbnN5bXMp OworICAgIHN0cnRhYiA9IHhtYWxsb2NfYXJyYXkoY2hhciwgc3RydGFiX2xlbik7CisKKyAgICBp ZiAoICFzdHJ0YWIgfHwgIXN5bXRhYiApCisgICAgeworICAgICAgICB4ZnJlZShzdHJ0YWIpOwor ICAgICAgICB4ZnJlZShzeW10YWIpOworICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICB9CisK KyAgICBuc3ltcyA9IDA7CisgICAgc3RydGFiX2xlbiA9IDA7CisgICAgZm9yICggaSA9IDE7IGkg PCBlbGYtPm5zeW07IGkrKyApCisgICAgeworICAgICAgICBpZiAoIGlzX3BheWxvYWRfc3ltYm9s KGVsZiwgZWxmLT5zeW0gKyBpKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHN5bXRhYltuc3lt c10ubmFtZSA9IHN0cnRhYiArIHN0cnRhYl9sZW47CisgICAgICAgICAgICBzeW10YWJbbnN5bXNd LnNpemUgPSBlbGYtPnN5bVtpXS5zeW0tPnN0X3NpemU7CisgICAgICAgICAgICBzeW10YWJbbnN5 bXNdLnZhbHVlID0gZWxmLT5zeW1baV0uc3ltLT5zdF92YWx1ZTsKKyAgICAgICAgICAgIHN5bXRh Yltuc3ltc10ubmV3X3N5bWJvbCA9IDA7IC8qIFRvIGJlIGNoZWNrZWQgYmVsb3cuICovCisgICAg ICAgICAgICBzdHJ0YWJfbGVuICs9IHN0cmxjcHkoc3RydGFiICsgc3RydGFiX2xlbiwgZWxmLT5z eW1baV0ubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLU1lNX05BTUVf TEVOKSArIDE7CisgICAgICAgICAgICBuc3ltcysrOworICAgICAgICB9CisgICAgfQorCisgICAg Zm9yICggaSA9IDA7IGkgPCBuc3ltczsgaSsrICkKKyAgICB7CisgICAgICAgIGJvb2xfdCBmb3Vu ZCA9IDA7CisKKyAgICAgICAgZm9yICggaiA9IDA7IGogPCBwYXlsb2FkLT5uZnVuY3M7IGorKyAp CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggc3ltdGFiW2ldLnZhbHVlID09ICh1bnNpZ25l ZCBsb25nKXBheWxvYWQtPmZ1bmNzW2pdLm5ld19hZGRyICkKKyAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICBmb3VuZCA9IDE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoICFmb3VuZCApCisgICAgICAgIHsKKyAgICAg ICAgICAgIGlmICggeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKHN5bXRhYltpXS5uYW1l KSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19ERUJVRyBY U1BMSUNFICIlczogZHVwbGljYXRlIG5ldyBzeW1ib2w6ICVzXG4iLAorICAgICAgICAgICAgICAg ICAgICAgICBlbGYtPm5hbWUsIHN5bXRhYltpXS5uYW1lKTsKKyAgICAgICAgICAgICAgICB4ZnJl ZShzeW10YWIpOworICAgICAgICAgICAgICAgIHhmcmVlKHN0cnRhYik7CisgICAgICAgICAgICAg ICAgcmV0dXJuIC1FRVhJU1Q7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzeW10YWJbaV0u bmV3X3N5bWJvbCA9IDE7CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElD RSAiJXM6IG5ldyBzeW1ib2wgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUs IHN5bXRhYltpXS5uYW1lKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAg ICAgICAgICAgIC8qIG5ld19zeW1ib2wgaXMgbm90IHNldC4gKi8KKyAgICAgICAgICAgIGRwcmlu dGsoWEVOTE9HX0RFQlVHLCBYU1BMSUNFICIlczogb3ZlcnJpZGluZyBzeW1ib2wgJXNcbiIsCisg ICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgc3ltdGFiW2ldLm5hbWUpOworICAgICAgICB9 CisgICAgfQorCisgICAgcGF5bG9hZC0+c3ltdGFiID0gc3ltdGFiOworICAgIHBheWxvYWQtPnN0 cnRhYiA9IHN0cnRhYjsKKyAgICBwYXlsb2FkLT5uc3ltcyA9IG5zeW1zOworCisgICAgcmV0dXJu IDA7Cit9CisKIHN0YXRpYyB2b2lkIGZyZWVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqZGF0YSkK IHsKICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBheWxvYWRfbG9jaykpOwpAQCAtMzg4LDYg KzUzMiw4IEBAIHN0YXRpYyB2b2lkIGZyZWVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqZGF0YSkK ICAgICBwYXlsb2FkX2NudC0tOwogICAgIHBheWxvYWRfdmVyc2lvbisrOwogICAgIGZyZWVfcGF5 bG9hZF9kYXRhKGRhdGEpOworICAgIHhmcmVlKGRhdGEtPnN5bXRhYik7CisgICAgeGZyZWUoZGF0 YS0+c3RydGFiKTsKICAgICB4ZnJlZShkYXRhKTsKIH0KIApAQCAtNDIwLDYgKzU2NiwxMCBAQCBz dGF0aWMgaW50IGxvYWRfcGF5bG9hZF9kYXRhKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCB2b2lk ICpyYXcsIHNpemVfdCBsZW4pCiAgICAgaWYgKCByYyApCiAgICAgICAgIGdvdG8gb3V0OwogCisg ICAgcmMgPSBidWlsZF9zeW1ib2xfdGFibGUocGF5bG9hZCwgJmVsZik7CisgICAgaWYgKCByYyAp CisgICAgICAgIGdvdG8gb3V0OworCiAgICAgcmMgPSBzZWN1cmVfcGF5bG9hZChwYXlsb2FkLCAm ZWxmKTsKIAogIG91dDoKQEAgLTQ5MSw4ICs2NDEsMTIgQEAgc3RhdGljIGludCB4c3BsaWNlX3Vw bG9hZCh4ZW5fc3lzY3RsX3hzcGxpY2VfdXBsb2FkX3QgKnVwbG9hZCkKIAogICAgIHZmcmVlKHJh d19kYXRhKTsKIAotICAgIGlmICggcmMgKQorICAgIGlmICggcmMgJiYgZGF0YSApCisgICAgewor ICAgICAgICB4ZnJlZShkYXRhLT5zeW10YWIpOworICAgICAgICB4ZnJlZShkYXRhLT5zdHJ0YWIp OwogICAgICAgICB4ZnJlZShkYXRhKTsKKyAgICB9CiAKICAgICByZXR1cm4gcmM7CiB9CmRpZmYg LS1naXQgYS94ZW4vY29tbW9uL3hzcGxpY2VfZWxmLmMgYi94ZW4vY29tbW9uL3hzcGxpY2VfZWxm LmMKaW5kZXggNzI2MmZjMi4uMDliOGM5MyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi94c3BsaWNl X2VsZi5jCisrKyBiL3hlbi9jb21tb24veHNwbGljZV9lbGYuYwpAQCAtNCw2ICs0LDcgQEAKIAog I2luY2x1ZGUgPHhlbi9lcnJuby5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4 ZW4vc3ltYm9scy5oPgogI2luY2x1ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgogI2luY2x1ZGUgPHhl bi94c3BsaWNlLmg+CiAKQEAgLTI3NCw5ICsyNzUsMjEgQEAgaW50IHhzcGxpY2VfZWxmX3Jlc29s dmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAgICAgICAgIGJyZWFrOwog CiAgICAgICAgIGNhc2UgU0hOX1VOREVGOgotICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19ERUJV RyBYU1BMSUNFICIlczogVW5rbm93biBzeW1ib2w6ICVzXG4iLAotICAgICAgICAgICAgICAgICAg IGVsZi0+bmFtZSwgZWxmLT5zeW1baV0ubmFtZSk7Ci0gICAgICAgICAgICByYyA9IC1FTk9FTlQ7 CisgICAgICAgICAgICBlbGYtPnN5bVtpXS5zeW0tPnN0X3ZhbHVlID0gKHVuc2lnbmVkIGxvbmcp c3ltYm9sc19sb29rdXBfYnlfbmFtZShlbGYtPnN5bVtpXS5uYW1lKTsKKyAgICAgICAgICAgIGlm ICggIWVsZi0+c3ltW2ldLnN5bS0+c3RfdmFsdWUgKQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgIGVsZi0+c3ltW2ldLnN5bS0+c3RfdmFsdWUgPSAodW5zaWduZWQgbG9uZykKKyAgICAg ICAgICAgICAgICAgICAgICAgIHhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFtZShlbGYtPnN5 bVtpXS5uYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAoICFlbGYtPnN5bVtpXS5zeW0tPnN0X3Zh bHVlICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHByaW50ayhYRU5M T0dfREVCVUcgWFNQTElDRSAiJXM6IFVua25vd24gc3ltYm9sOiAlc1xuIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgZWxmLT5zeW1baV0ubmFtZSk7CisgICAgICAgICAg ICAgICAgICAgIHJjID0gLUVOT0VOVDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZHByaW50ayhYRU5MT0df REVCVUcsIFhTUExJQ0UgIiVzOiBVbmRlZmluZWQgc3ltYm9sIHJlc29sdmVkOiAlcyA9PiAlIyJQ Ukl4RWxmQWRkciJcbiIsCisgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgZWxmLT5zeW1b aV0ubmFtZSwgZWxmLT5zeW1baV0uc3ltLT5zdF92YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsK IAogICAgICAgICBjYXNlIFNITl9BQlM6CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc3lt Ym9scy5oIGIveGVuL2luY2x1ZGUveGVuL3N5bWJvbHMuaAppbmRleCBmNThlNjExLi5kOWJkMzVm IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oCisrKyBiL3hlbi9pbmNsdWRl L3hlbi9zeW1ib2xzLmgKQEAgLTIzLDQgKzIzLDYgQEAgY29uc3QgY2hhciAqc3ltYm9sc19sb29r dXAodW5zaWduZWQgbG9uZyBhZGRyLAogaW50IHhlbnN5bXNfcmVhZCh1aW50MzJfdCAqc3ltbnVt LCBjaGFyICp0eXBlLAogICAgICAgICAgICAgICAgICB1aW50NjRfdCAqYWRkcmVzcywgY2hhciAq bmFtZSk7CiAKK3Vuc2lnbmVkIGxvbmcgc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFy ICpzeW1uYW1lKTsKKwogI2VuZGlmIC8qX1hFTl9TWU1CT0xTX0gqLwpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUveGVuL3hzcGxpY2UuaCBiL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmgKaW5kZXgg ODQ4Njg4Ny4uYTA0MzZkYSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaAor KysgYi94ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oCkBAIC01Nyw4ICs1NywxNiBAQCBzdHJ1Y3Qg eHNwbGljZV9wYXRjaF9mdW5jX2ludGVybmFsIHsKIC8qIENvbnZlbmllbmNlIGRlZmluZSBmb3Ig cHJpbnRrLiAqLwogI2RlZmluZSBYU1BMSUNFICJ4c3BsaWNlOiAiCiAKK3N0cnVjdCB4c3BsaWNl X3N5bWJvbCB7CisgICAgY29uc3QgY2hhciAqbmFtZTsKKyAgICB1aW50NjRfdCB2YWx1ZTsKKyAg ICBzaXplX3Qgc2l6ZTsKKyAgICBib29sX3QgbmV3X3N5bWJvbDsKK307CisKIGludCB4c3BsaWNl X29wKHN0cnVjdCB4ZW5fc3lzY3RsX3hzcGxpY2Vfb3AgKik7CiB2b2lkIGNoZWNrX2Zvcl94c3Bs aWNlX3dvcmsodm9pZCk7Cit1bnNpZ25lZCBsb25nIHhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlf bmFtZShjb25zdCBjaGFyICpzeW1uYW1lKTsKIAogLyogQXJjaCBob29rcy4gKi8KIGludCBhcmNo X3hzcGxpY2VfdmVyaWZ5X2VsZihjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZik7Ci0tIAoy LjUuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==