From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v2 1/3] livepach: Add .livepatch.hooks functions and test-case Date: Thu, 4 Aug 2016 11:49:22 -0400 Message-ID: <1470325764-12566-2-git-send-email-konrad.wilk@oracle.com> References: <1470325764-12566-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bVKtv-0002AK-Uq for xen-devel@lists.xenproject.org; Thu, 04 Aug 2016 15:49:40 +0000 In-Reply-To: <1470325764-12566-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: konrad@kernel.org, xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Ross Lagerwall , Jan Beulich List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+CgpBZGQgaG9v ayBmdW5jdGlvbnMgd2hpY2ggcnVuIGR1cmluZyBwYXRjaCBhcHBseSBhbmQgcGF0Y2ggcmV2ZXJ0 LgpIb29rIGZ1bmN0aW9ucyBhcmUgdXNlZCBieSBsaXZlcGF0Y2ggcGF5bG9hZHMgdG8gbWFuaXB1 bGF0ZSBkYXRhCnN0cnVjdHVyZXMgZHVyaW5nIHBhdGNoaW5nLCBldGMuCgpPbmUgdXNlIGNhc2Ug aXMgdGhlIFhTQTkxLiBBcyBNYXJ0aW4gbWVudGlvbnMgaXQ6CiJJZiB3ZSBoYXZlIHNoYWRvdyB2 YXJpYWJsZXMsIHdlIGFsc28gbmVlZCBhbiB1bmxvYWQgaG9vayB0byBnYXJiYWdlCmNvbGxlY3Qg YWxsIHRoZSB2YXJpYWJsZXMgaW50cm9kdWNlZCBieSBhIGhvdHBhdGNoIHRvIHByZXZlbnQgbWVt b3J5CmxlYWtzLiAgUG90ZW50aWFsbHksIHdlIGFsc28gd2FudCB0byBwcmUtcmVzZXJ2ZSBtZW1v cnkgZm9yIHN0YXRpYyBvcgpleGlzdGluZyBkeW5hbWljIG9iamVjdHMgaW4gdGhlIGxvYWQtaG9v ayBpbnN0ZWFkIG9mIG9uIHRoZSBmbHkuCgpGb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLCB2YXJp b3VzIGFwcGxpY2F0aW9ucyBhcmUgcG9zc2libGUuCgpJbiBnZW5lcmFsLCB0aGUgaG9va3MgcHJv dmlkZSBmbGV4aWJpbGl0eSB3aGVuIGhhdmluZyB0byBkZWFsIHdpdGgKdW5mb3Jlc2VlbiBjYXNl cywgYnV0IHRoZWlyIGFwcGxpY2F0aW9uIHNob3VsZCBiZSByYXJlbHkgcmVxdWlyZWQgKDwKMTAl KS4iCgpGdXJ0aGVybW9yZSBpbmNsdWRlIGEgdGVzdC1jYXNlIGZvciBpdC4KClNpZ25lZC1vZmYt Ynk6IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgpTaWduZWQtb2Zm LWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+Ci0tLQp2 MTI6IHMveHNwbGljZS9saXZlcGF0Y2gvCgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4 LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3Rh YmVsbGluaUBrZXJuZWwub3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkg TGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIGRvY3MvbWlzYy9saXZlcGF0Y2gubWFya2Rv d24gICAgICAgIHwgMjMgKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9o ZWxsb193b3JsZC5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9jb21tb24v bGl2ZXBhdGNoLmMgICAgICAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogeGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaF9wYXlsb2FkLmggfCA0OSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTU3IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVk ZS94ZW4vbGl2ZXBhdGNoX3BheWxvYWQuaAoKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy9saXZlcGF0 Y2gubWFya2Rvd24gYi9kb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCmluZGV4IDg5YzEwNTAu LmUwZmM1ZTQgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy9saXZlcGF0Y2gubWFya2Rvd24KKysrIGIv ZG9jcy9taXNjL2xpdmVwYXRjaC5tYXJrZG93bgpAQCAtMzQwLDYgKzM0MCwxMyBAQCBXaGVuIHJl dmVydGluZyBhIHBhdGNoLCB0aGUgaHlwZXJ2aXNvciBpdGVyYXRlcyBvdmVyIGVhY2ggYGxpdmVw YXRjaF9mdW5jYAogYW5kIHRoZSBjb3JlIGNvZGUgY29waWVzIHRoZSBkYXRhIGZyb20gdGhlIHVu ZG8gYnVmZmVyIChwcml2YXRlIGludGVybmFsIGNvcHkpCiB0byBgb2xkX2FkZHJgLgogCitJdCBv cHRpb25hbGx5IG1heSBjb250YWluIHRoZSBhZGRyZXNzIG9mIGZ1bmN0aW9ucyB0byBiZSBjYWxs ZWQgcmlnaHQgYmVmb3JlCitiZWluZyBhcHBsaWVkIGFuZCBhZnRlciBiZWluZyByZXZlcnRlZDoK KworICogYC5saXZlcGF0Y2guaG9va3MubG9hZGAgLSBhbiBhcnJheSBvZiBmdW5jdGlvbiBwb2lu dGVycy4KKyAqIGAubGl2ZXBhdGNoLmhvb2tzLnVubG9hZGAgLSBhbiBhcnJheSBvZiBmdW5jdGlv biBwb2ludGVycy4KKworCiAjIyMgRXhhbXBsZSBvZiAubGl2ZXBhdGNoLmZ1bmNzCiAKIEEgc2lt cGxlIGV4YW1wbGUgb2Ygd2hhdCBhIHBheWxvYWQgZmlsZSBjYW4gYmU6CkBAIC0zNzcsNiArMzg0 LDIyIEBAIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyBsaXZlcGF0Y2hfaGVsbG9fd29ybGQgPSB7CiAK IENvZGUgbXVzdCBiZSBjb21waWxlZCB3aXRoIC1mUElDLgogCisjIyMgLmxpdmVwYXRjaC5ob29r cy5sb2FkIGFuZCAubGl2ZXBhdGNoLmhvb2tzLnVubG9hZAorCitUaGlzIHNlY3Rpb24gY29udGFp bnMgYW4gYXJyYXkgb2YgZnVuY3Rpb24gcG9pbnRlcnMgdG8gYmUgZXhlY3V0ZWQKK2JlZm9yZSBw YXlsb2FkIGlzIGJlaW5nIGFwcGxpZWQgKC5saXZlcGF0Y2guZnVuY3MpIG9yIGFmdGVyIHJldmVy dGluZwordGhlIHBheWxvYWQuIFRoaXMgaXMgdXNlZnVsIHRvIHByZXBhcmUgZGF0YSBzdHJ1Y3R1 cmVzIHRoYXQgbmVlZCB0bworYmUgbW9kaWZpZWQgcGF0Y2hpbmcuCisKK0VhY2ggZW50cnkgaW4g dGhpcyBhcnJheSBpcyBlaWdodCBieXRlcy4KKworVGhlIHR5cGUgZGVmaW5pdGlvbiBvZiB0aGUg ZnVuY3Rpb24gYXJlIGFzIGZvbGxvdzoKKworPHByZT4KK3R5cGVkZWYgdm9pZCAoKmxpdmVwYXRj aF9sb2FkY2FsbF90KSh2b2lkKTsgIAordHlwZWRlZiB2b2lkICgqbGl2ZXBhdGNoX3VubG9hZGNh bGxfdCkodm9pZCk7ICAgCis8L3ByZT4KKwogIyMjIC5saXZlcGF0Y2guZGVwZW5kcyBhbmQgLm5v dGUuZ251LmJ1aWxkLWlkCiAKIFRvIHN1cHBvcnQgZGVwZW5kZW5jaWVzIGNoZWNraW5nIGFuZCBz YWZlIGxvYWRpbmcgKHRvIGxvYWQgdGhlCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdGVzdC94 ZW5faGVsbG9fd29ybGQuYyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZC5jCmlu ZGV4IDQyMmJkZjEuLmU2YTA5NWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9o ZWxsb193b3JsZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZC5jCkBA IC00LDE0ICs0LDUwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHhl bi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KICNpbmNsdWRlIDx4ZW4vdmVyc2lvbi5o PgogI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoX3Bh eWxvYWQuaD4KIAogI2luY2x1ZGUgPHB1YmxpYy9zeXNjdGwuaD4KIAogc3RhdGljIGNoYXIgaGVs bG9fd29ybGRfcGF0Y2hfdGhpc19mbmNbXSA9ICJ4ZW5fZXh0cmFfdmVyc2lvbiI7CiBleHRlcm4g Y29uc3QgY2hhciAqeGVuX2hlbGxvX3dvcmxkKHZvaWQpOworc3RhdGljIHVuc2lnbmVkIGludCBj bnQ7CisKK3N0YXRpYyB2b2lkIGFwcGx5X2hvb2sodm9pZCkKK3sKKyAgICBwcmludGsoS0VSTl9E RUJVRyAiSG9vayBleGVjdXRpbmcuXG4iKTsKK30KKworc3RhdGljIHZvaWQgcmV2ZXJ0X2hvb2so dm9pZCkKK3sKKyAgICBwcmludGsoS0VSTl9ERUJVRyAiSG9vayB1bmxvYWRlZC5cbiIpOworfQor CitzdGF0aWMgdm9pZCBoaV9mdW5jKHZvaWQpCit7CisgICAgcHJpbnRrKEtFUk5fREVCVUcgIiVz OiBIaSEgKGNhbGxlZCAldSB0aW1lcylcbiIsIF9fZnVuY19fLCArK2NudCk7Cit9OworCisvKiBJ ZiB3ZSBhcmUgc29ydGVkIHdlIF9NVVNUXyBiZSB0aGUgbGFzdCAubGl2ZXBhdGNoLmhvb2sgc2Vj dGlvbi4gKi8KK3N0YXRpYyB2b2lkIFpfY2hlY2tfZm5jKHZvaWQpCit7CisgICAgcHJpbnRrKEtF Uk5fREVCVUcgIiVzOiBIaSBmdW5jIGNhbGxlZCAldSB0aW1lc1xuIiwgX19mdW5jX18sIGNudCk7 CisgICAgQlVHX09OKGNudCA9PSAwIHx8IGNudCA+IDIpOworICAgIGNudCA9IDA7IC8qIE90aGVy d2lzZSBpZiB5b3UgcmV2ZXJ0LCBhcHBseSwgcmV2ZXJ0IHRoZSB2YWx1ZSB3aWxsIGJlIDQhICov Cit9CisKK0xJVkVQQVRDSF9MT0FEX0hPT0soYXBwbHlfaG9vayk7CitMSVZFUEFUQ0hfVU5MT0FE X0hPT0socmV2ZXJ0X2hvb2spOworCisvKiBJbWJhbGFuY2UgaGVyZS4gVHdvIGxvYWQgYW5kIHRo cmVlIHVubG9hZC4gKi8KKworTElWRVBBVENIX0xPQURfSE9PSyhoaV9mdW5jKTsKK0xJVkVQQVRD SF9VTkxPQURfSE9PSyhoaV9mdW5jKTsKKworTElWRVBBVENIX1VOTE9BRF9IT09LKFpfY2hlY2tf Zm5jKTsKIAogc3RydWN0IGxpdmVwYXRjaF9mdW5jIF9fc2VjdGlvbigiLmxpdmVwYXRjaC5mdW5j cyIpIGxpdmVwYXRjaF94ZW5faGVsbG9fd29ybGQgPSB7CiAgICAgLnZlcnNpb24gPSBMSVZFUEFU Q0hfUEFZTE9BRF9WRVJTSU9OLApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9saXZlcGF0Y2guYyBi L3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKaW5kZXggNWRhMjhhMy4uZjZkYmQ1MSAxMDA2NDQKLS0t IGEveGVuL2NvbW1vbi9saXZlcGF0Y2guYworKysgYi94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCkBA IC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSA8eGVuL3dhaXQuaD4KICNpbmNsdWRlIDx4ZW4vbGl2 ZXBhdGNoX2VsZi5oPgogI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KKyNpbmNsdWRlIDx4ZW4v bGl2ZXBhdGNoX3BheWxvYWQuaD4KIAogI2luY2x1ZGUgPGFzbS9ldmVudC5oPgogCkBAIC03MCw3 ICs3MSwxMSBAQCBzdHJ1Y3QgcGF5bG9hZCB7CiAgICAgdW5zaWduZWQgaW50IG5zeW1zOyAgICAg ICAgICAgICAgICAgIC8qIE5yIG9mIGVudHJpZXMgaW4gLnN0cnRhYiBhbmQgc3ltYm9scy4gKi8K ICAgICBzdHJ1Y3QgbGl2ZXBhdGNoX2J1aWxkX2lkIGlkOyAgICAgICAgLyogRUxGTk9URV9ERVND KC5ub3RlLmdudS5idWlsZC1pZCkgb2YgdGhlIHBheWxvYWQuICovCiAgICAgc3RydWN0IGxpdmVw YXRjaF9idWlsZF9pZCBkZXA7ICAgICAgIC8qIEVMRk5PVEVfREVTQygubGl2ZXBhdGNoLmRlcGVu ZHMpLiAqLwotICAgIGNoYXIgbmFtZVtYRU5fTElWRVBBVENIX05BTUVfU0laRV07IC8qIE5hbWUg b2YgaXQuICovCisgICAgbGl2ZXBhdGNoX2xvYWRjYWxsX3QgKipsb2FkX2Z1bmNzOyAgIC8qIFRo ZSBhcnJheSBvZiBmdW5jcyB0byBjYWxsIGFmdGVyICovCisgICAgbGl2ZXBhdGNoX3VubG9hZGNh bGxfdCAqKnVubG9hZF9mdW5jczsvKiBsb2FkIGFuZCB1bmxvYWQgb2YgdGhlIHBheWxvYWQuICov CisgICAgdW5zaWduZWQgaW50IG5fbG9hZF9mdW5jczsgICAgICAgICAgIC8qIE5yIG9mIHRoZSBm dW5jcyB0byBsb2FkIGFuZCBleGVjdXRlLiAqLworICAgIHVuc2lnbmVkIGludCBuX3VubG9hZF9m dW5jczsgICAgICAgICAvKiBOciBvZiBmdW5jcyB0byBjYWxsIGR1cnVuZyB1bmxvYWQuICovCisg ICAgY2hhciBuYW1lW1hFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFXTsgIC8qIE5hbWUgb2YgaXQuICov CiB9OwogCiAvKiBEZWZpbmVzIGFuIG91dHN0YW5kaW5nIHBhdGNoaW5nIGFjdGlvbi4gKi8KQEAg LTUxNSw2ICs1MjAsMjcgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxv YWQgKnBheWxvYWQsCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBzZWMgPSBsaXZlcGF0Y2hfZWxm X3NlY19ieV9uYW1lKGVsZiwgIi5saXZlcGF0Y2guaG9va3MubG9hZCIpOworICAgIGlmICggc2Vj ICkKKyAgICB7CisgICAgICAgIGlmICggIXNlYy0+c2VjLT5zaF9zaXplIHx8CisgICAgICAgICAg ICAgKHNlYy0+c2VjLT5zaF9zaXplICUgc2l6ZW9mKCpwYXlsb2FkLT5sb2FkX2Z1bmNzKSkgKQor ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgcGF5bG9hZC0+bG9hZF9mdW5j cyA9IHNlYy0+bG9hZF9hZGRyOworICAgICAgICBwYXlsb2FkLT5uX2xvYWRfZnVuY3MgPSBzZWMt PnNlYy0+c2hfc2l6ZSAvIHNpemVvZigqcGF5bG9hZC0+bG9hZF9mdW5jcyk7CisgICAgfQorCisg ICAgc2VjID0gbGl2ZXBhdGNoX2VsZl9zZWNfYnlfbmFtZShlbGYsICIubGl2ZXBhdGNoLmhvb2tz LnVubG9hZCIpOworICAgIGlmICggc2VjICkKKyAgICB7CisgICAgICAgIGlmICggIXNlYy0+c2Vj LT5zaF9zaXplIHx8CisgICAgICAgICAgICAgKHNlYy0+c2VjLT5zaF9zaXplICUgc2l6ZW9mKCpw YXlsb2FkLT51bmxvYWRfZnVuY3MpKSApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKwor ICAgICAgICBwYXlsb2FkLT51bmxvYWRfZnVuY3MgPSBzZWMtPmxvYWRfYWRkcjsKKyAgICAgICAg cGF5bG9hZC0+bl91bmxvYWRfZnVuY3MgPSBzZWMtPnNlYy0+c2hfc2l6ZSAvIHNpemVvZigqcGF5 bG9hZC0+dW5sb2FkX2Z1bmNzKTsKKyAgICB9CiAgICAgc2VjID0gbGl2ZXBhdGNoX2VsZl9zZWNf YnlfbmFtZShlbGYsIEVMRl9CVUlMRF9JRF9OT1RFKTsKICAgICBpZiAoIHNlYyApCiAgICAgewpA QCAtOTk5LDYgKzEwMjUsMTcgQEAgc3RhdGljIGludCBhcHBseV9wYXlsb2FkKHN0cnVjdCBwYXls b2FkICpkYXRhKQogCiAgICAgYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSgpOwogCisgICAgLyoKKyAg ICAgKiBUaGUgaG9va3MgbWF5IGNhbGwgY29tbW9uIGNvZGUgd2hpY2ggZXhwZWN0cyBzcGlubG9j a3MgdG8gYmUgY2VydGFpbgorICAgICAqIHR5cGUsIGFzIHN1Y2ggZGlzYWJsZSB0aGlzIHRlbXBv cmFyaWx5LgorICAgICAqLworICAgIHNwaW5fZGVidWdfZGlzYWJsZSgpOworICAgIGZvciAoIGkg PSAwOyBpIDwgZGF0YS0+bl9sb2FkX2Z1bmNzOyBpKysgKQorICAgICAgICBkYXRhLT5sb2FkX2Z1 bmNzW2ldKCk7CisgICAgc3Bpbl9kZWJ1Z19lbmFibGUoKTsKKworICAgIEFTU0VSVCghbG9jYWxf aXJxX2lzX2VuYWJsZWQoKSk7CisKICAgICBmb3IgKCBpID0gMDsgaSA8IGRhdGEtPm5mdW5jczsg aSsrICkKICAgICAgICAgYXJjaF9saXZlcGF0Y2hfYXBwbHlfam1wKCZkYXRhLT5mdW5jc1tpXSk7 CiAKQEAgLTEwMjUsNiArMTA2MiwxNyBAQCBzdGF0aWMgaW50IHJldmVydF9wYXlsb2FkKHN0cnVj dCBwYXlsb2FkICpkYXRhKQogICAgIGZvciAoIGkgPSAwOyBpIDwgZGF0YS0+bmZ1bmNzOyBpKysg KQogICAgICAgICBhcmNoX2xpdmVwYXRjaF9yZXZlcnRfam1wKCZkYXRhLT5mdW5jc1tpXSk7CiAK KyAgICAvKgorICAgICAqIFRoZSBob29rcyBtYXkgY2FsbCBjb21tb24gY29kZSB3aGljaCBleHBl Y3RzIHNwaW5sb2NrcyB0byBiZSBjZXJ0YWluCisgICAgICogdHlwZSwgYXMgc3VjaCBkaXNhYmxl IHRoaXMgdGVtcG9yYXJpbHkuCisgICAgICovCisgICAgc3Bpbl9kZWJ1Z19kaXNhYmxlKCk7Cisg ICAgZm9yICggaSA9IDA7IGkgPCBkYXRhLT5uX3VubG9hZF9mdW5jczsgaSsrICkKKyAgICAgICAg ZGF0YS0+dW5sb2FkX2Z1bmNzW2ldKCk7CisgICAgc3Bpbl9kZWJ1Z19lbmFibGUoKTsKKworICAg IEFTU0VSVCghbG9jYWxfaXJxX2lzX2VuYWJsZWQoKSk7CisKICAgICBhcmNoX2xpdmVwYXRjaF9y ZXZpdmUoKTsKIAogICAgIC8qCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNo X3BheWxvYWQuaCBiL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2hfcGF5bG9hZC5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlYmY1NjgKLS0tIC9kZXYvbnVsbAorKysgYi94 ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoX3BheWxvYWQuaApAQCAtMCwwICsxLDQ5IEBACisvKgor ICogQ29weXJpZ2h0IChDKSAyMDE2IENpdHJpeCBTeXN0ZW1zIFImRCBMdGQuCisgKi8KKworI2lm bmRlZiBfX1hFTl9MSVZFUEFUQ0hfUEFZTE9BRF9IX18KKyNkZWZpbmUgX19YRU5fTElWRVBBVENI X1BBWUxPQURfSF9fCisKKy8qCisgKiBUaGUgZm9sbG93aW5nIGRlZmluaXRpb25zIGFyZSB0byBi ZSB1c2VkIGluIHBhdGNoZXMuIFRoZXkgYXJlIHRha2VuCisgKiBmcm9tIGtwYXRjaC4KKyAqLwor dHlwZWRlZiB2b2lkIGxpdmVwYXRjaF9sb2FkY2FsbF90KHZvaWQpOwordHlwZWRlZiB2b2lkIGxp dmVwYXRjaF91bmxvYWRjYWxsX3Qodm9pZCk7CisKKy8qCisgKiBMSVZFUEFUQ0hfTE9BRF9IT09L IG1hY3JvCisgKgorICogRGVjbGFyZXMgYSBmdW5jdGlvbiBwb2ludGVyIHRvIGJlIGFsbG9jYXRl ZCBpbiBhIG5ldworICogLmxpdmVwYXRjaC5ob29rLmxvYWQgc2VjdGlvbi4gIFRoaXMgbGl2ZXBh dGNoX2xvYWRfZGF0YSBzeW1ib2wgaXMgbGF0ZXIKKyAqIHN0cmlwcGVkIGJ5IGNyZWF0ZS1kaWZm LW9iamVjdCBzbyB0aGF0IGl0IGNhbiBiZSBkZWNsYXJlZCBpbiBtdWx0aXBsZQorICogb2JqZWN0 cyB0aGF0IGFyZSBsYXRlciBsaW5rZWQgdG9nZXRoZXIsIGF2b2lkaW5nIGdsb2JhbCBzeW1ib2wK KyAqIGNvbGxpc2lvbi4gIFNpbmNlIG11bHRpcGxlIGhvb2tzIGNhbiBiZSByZWdpc3RlcmVkLCB0 aGUKKyAqIC5saXZlcGF0Y2guaG9vay5sb2FkIHNlY3Rpb24gaXMgYSB0YWJsZSBvZiBmdW5jdGlv bnMgdGhhdCB3aWxsIGJlCisgKiBleGVjdXRlZCBpbiBzZXJpZXMgYnkgdGhlIGxpdmVwYXRjaCBp bmZyYXN0cnVjdHVyZSBhdCBwYXRjaCBsb2FkIHRpbWUuCisgKi8KKyNkZWZpbmUgTElWRVBBVENI X0xPQURfSE9PSyhfZm4pIFwKKyAgICBsaXZlcGF0Y2hfbG9hZGNhbGxfdCAqX19hdHRyaWJ1dGVf Xygod2VhaykpIFwKKyAgICAgICAgbGl2ZXBhdGNoX2xvYWRfZGF0YV8jI19mbiBfX3NlY3Rpb24o Ii5saXZlcGF0Y2guaG9va3MubG9hZCIpID0gX2ZuOworCisvKgorICogTElWRVBBVENIX1VOTE9B RF9IT09LIG1hY3JvCisgKgorICogU2FtZSBhcyBMT0FEIGhvb2sgd2l0aCBzL2xvYWQvdW5sb2Fk LworICovCisjZGVmaW5lIExJVkVQQVRDSF9VTkxPQURfSE9PSyhfZm4pIFwKKyAgICBsaXZlcGF0 Y2hfdW5sb2FkY2FsbF90ICpfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgXAorICAgICAgICBsaXZlcGF0 Y2hfdW5sb2FkX2RhdGFfIyNfZm4gX19zZWN0aW9uKCIubGl2ZXBhdGNoLmhvb2tzLnVubG9hZCIp ID0gX2ZuOworCisjZW5kaWYgLyogX19YRU5fTElWRVBBVENIX1BBWUxPQURfSF9fICovCisKKy8q CisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0Qi CisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1t b2RlOiBuaWwKKyAqIEVuZDoKKyAqLwotLSAKMi41LjUKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK