From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v4 33/34] xsplice: Add support for shadow variables. Date: Tue, 15 Mar 2016 13:56:55 -0400 Message-ID: <1458064616-23101-34-git-send-email-konrad.wilk@oracle.com> References: <1458064616-23101-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 1aftHZ-00031D-Dy for xen-devel@lists.xenproject.org; Tue, 15 Mar 2016 18:01:25 +0000 In-Reply-To: <1458064616-23101-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, ross.lagerwall@citrix.com, konrad@kernel.org, andrew.cooper3@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com Cc: Keir Fraser , Ian Jackson , Jan Beulich , Tim Deegan List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+CgpTaGFkb3cg dmFyaWFibGVzIGFyZSBhIHBpZWNlIG9mIGluZnJhc3RydWN0dXJlIHRvIGJlIHVzZWQgYnkgeHNw bGljZQptb2R1bGVzLiBUaGV5IGFyZSB1c2VkIHRvIGF0dGFjaCBhIG5ldyBwaWVjZSBvZiBkYXRh IHRvIGFuIGV4aXN0aW5nCnN0cnVjdHVyZSBpbiBtZW1vcnkuCgpTaWduZWQtb2ZmLWJ5OiBSb3Nz IExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3Nv biA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNjOiBUaW0gRGVlZ2FuIDx0 aW1AeGVuLm9yZz4KCnYyOiBBZGQgQ29weXJpZ2h0Ci0tLQotLS0KIHhlbi9jb21tb24vTWFrZWZp bGUgICAgICAgICAgICAgfCAgIDEgKwogeGVuL2NvbW1vbi94c3BsaWNlX3NoYWRvdy5jICAgICB8 IDEwOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVk ZS94ZW4veHNwbGljZV9wYXRjaC5oIHwgIDM2ICsrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMTQ2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vY29tbW9uL3hzcGxp Y2Vfc2hhZG93LmMKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL01ha2VmaWxlIGIveGVuL2NvbW1v bi9NYWtlZmlsZQppbmRleCA5YjdmYWM3Li4yMDBhNTQ0IDEwMDY0NAotLS0gYS94ZW4vY29tbW9u L01ha2VmaWxlCisrKyBiL3hlbi9jb21tb24vTWFrZWZpbGUKQEAgLTYyLDYgKzYyLDcgQEAgb2Jq LSQoQ09ORklHX1hFTk9QUk9GKSArPSB4ZW5vcHJvZi5vCiBvYmoteSArPSB4bWFsbG9jX3Rsc2Yu bwogb2JqLSQoQ09ORklHX1hTUExJQ0UpICs9IHhzcGxpY2Uubwogb2JqLSQoQ09ORklHX1hTUExJ Q0UpICs9IHhzcGxpY2VfZWxmLm8KK29iai0kKENPTkZJR19YU1BMSUNFKSArPSB4c3BsaWNlX3No YWRvdy5vCiAKIG9iai1iaW4tJChDT05GSUdfWDg2KSArPSAkKGZvcmVhY2ggbixkZWNvbXByZXNz IGJ1bnppcDIgdW54eiB1bmx6bWEgdW5sem8gdW5sejQgZWFybHljcGlvLCQobikuaW5pdC5vKQog CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3hzcGxpY2Vfc2hhZG93LmMgYi94ZW4vY29tbW9uL3hz cGxpY2Vfc2hhZG93LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE5NmEw YQotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9jb21tb24veHNwbGljZV9zaGFkb3cuYwpAQCAtMCww ICsxLDEwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBDaXRyaXggU3lzdGVtcyBSJkQg THRkLgorICovCisKKyNpbmNsdWRlIDx4ZW4vaW5pdC5oPgorI2luY2x1ZGUgPHhlbi9rZXJuZWwu aD4KKyNpbmNsdWRlIDx4ZW4vbGliLmg+CisjaW5jbHVkZSA8eGVuL2xpc3QuaD4KKyNpbmNsdWRl IDx4ZW4vc3BpbmxvY2suaD4KKyNpbmNsdWRlIDx4ZW4veHNwbGljZV9wYXRjaC5oPgorCisjZGVm aW5lIFNIQURPV19TTE9UUyAyNTYKK3N0cnVjdCBobGlzdF9oZWFkIHNoYWRvd190YmxbU0hBRE9X X1NMT1RTXTsKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soc2hhZG93X2xvY2spOworCitzdHJ1Y3Qg c2hhZG93X3ZhciB7CisgICAgc3RydWN0IGhsaXN0X25vZGUgbGlzdDsgICAgICAgICAvKiBMaW5r ZWQgdG8gJ3NoYWRvd190YmwnICovCisgICAgdm9pZCAqZGF0YTsKKyAgICBjb25zdCB2b2lkICpv Ymo7CisgICAgY2hhciB2YXJbMTZdOworfTsKKwordm9pZCAqeHNwbGljZV9zaGFkb3dfYWxsb2Mo Y29uc3Qgdm9pZCAqb2JqLCBjb25zdCBjaGFyICp2YXIsIHNpemVfdCBzaXplKQoreworICAgIHN0 cnVjdCBzaGFkb3dfdmFyICpzaGFkb3c7CisgICAgdW5zaWduZWQgaW50IHNsb3Q7CisKKyAgICBz aGFkb3cgPSB4bWFsbG9jKHN0cnVjdCBzaGFkb3dfdmFyKTsKKyAgICBpZiAoICFzaGFkb3cgKQor ICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHNoYWRvdy0+b2JqID0gb2JqOworICAgIHN0cmxj cHkoc2hhZG93LT52YXIsIHZhciwgc2l6ZW9mIHNoYWRvdy0+dmFyKTsKKyAgICBzaGFkb3ctPmRh dGEgPSB4bWFsbG9jX2J5dGVzKHNpemUpOworICAgIGlmICggIXNoYWRvdy0+ZGF0YSApCisgICAg eworICAgICAgICB4ZnJlZShzaGFkb3cpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisK KyAgICBzbG90ID0gKHVuc2lnbmVkIGxvbmcpb2JqICUgU0hBRE9XX1NMT1RTOworICAgIHNwaW5f bG9jaygmc2hhZG93X2xvY2spOworICAgIGhsaXN0X2FkZF9oZWFkKCZzaGFkb3ctPmxpc3QsICZz aGFkb3dfdGJsW3Nsb3RdKTsKKyAgICBzcGluX3VubG9jaygmc2hhZG93X2xvY2spOworCisgICAg cmV0dXJuIHNoYWRvdy0+ZGF0YTsKK30KKwordm9pZCB4c3BsaWNlX3NoYWRvd19mcmVlKGNvbnN0 IHZvaWQgKm9iaiwgY29uc3QgY2hhciAqdmFyKQoreworICAgIHN0cnVjdCBzaGFkb3dfdmFyICpl bnRyeSwgKnNoYWRvdyA9IE5VTEw7CisgICAgdW5zaWduZWQgaW50IHNsb3Q7CisgICAgc3RydWN0 IGhsaXN0X25vZGUgKm5leHQ7CisKKyAgICBzbG90ID0gKHVuc2lnbmVkIGxvbmcpb2JqICUgU0hB RE9XX1NMT1RTOworCisgICAgc3Bpbl9sb2NrKCZzaGFkb3dfbG9jayk7CisgICAgaGxpc3RfZm9y X2VhY2hfZW50cnkoZW50cnksIG5leHQsICZzaGFkb3dfdGJsW3Nsb3RdLCBsaXN0KQorICAgIHsK KyAgICAgICAgaWYgKCBlbnRyeS0+b2JqID09IG9iaiAmJgorICAgICAgICAgICAgICFzdHJjbXAo ZW50cnktPnZhciwgdmFyKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHNoYWRvdyA9IGVudHJ5 OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHNoYWRvdykK KyAgICB7CisgICAgICAgIGhsaXN0X2RlbCgmc2hhZG93LT5saXN0KTsKKyAgICAgICAgeGZyZWUo c2hhZG93LT5kYXRhKTsKKyAgICAgICAgeGZyZWUoc2hhZG93KTsKKyAgICB9CisgICAgc3Bpbl91 bmxvY2soJnNoYWRvd19sb2NrKTsKK30KKwordm9pZCAqeHNwbGljZV9zaGFkb3dfZ2V0KGNvbnN0 IHZvaWQgKm9iaiwgY29uc3QgY2hhciAqdmFyKQoreworICAgIHN0cnVjdCBzaGFkb3dfdmFyICpl bnRyeTsKKyAgICB1bnNpZ25lZCBpbnQgc2xvdDsKKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqbmV4 dDsKKyAgICB2b2lkICpyZXQgPSBOVUxMOworCisgICAgc2xvdCA9ICh1bnNpZ25lZCBsb25nKW9i aiAlIFNIQURPV19TTE9UUzsKKworICAgIHNwaW5fbG9jaygmc2hhZG93X2xvY2spOworICAgIGhs aXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCBuZXh0LCAmc2hhZG93X3RibFtzbG90XSwgbGlzdCkK KyAgICB7CisgICAgICAgIGlmICggZW50cnktPm9iaiA9PSBvYmogJiYKKyAgICAgICAgICAgICAh c3RyY21wKGVudHJ5LT52YXIsIHZhcikgKQorICAgICAgICB7CisgICAgICAgICAgICByZXQgPSBl bnRyeS0+ZGF0YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAg c3Bpbl91bmxvY2soJnNoYWRvd19sb2NrKTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMg aW50IF9faW5pdCB4c3BsaWNlX3NoYWRvd19pbml0KHZvaWQpCit7CisgICAgaW50IGk7CisKKyAg ICBmb3IgKCBpID0gMDsgaSA8IFNIQURPV19TTE9UUzsgaSsrICkKKyAgICAgICAgSU5JVF9ITElT VF9IRUFEKCZzaGFkb3dfdGJsW2ldKTsKKworICAgIHJldHVybiAwOworfQorX19pbml0Y2FsbCh4 c3BsaWNlX3NoYWRvd19pbml0KTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNl X3BhdGNoLmggYi94ZW4vaW5jbHVkZS94ZW4veHNwbGljZV9wYXRjaC5oCmluZGV4IDE5ZDNmNzYu LmUyOTdmZTEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlX3BhdGNoLmgKKysr IGIveGVuL2luY2x1ZGUveGVuL3hzcGxpY2VfcGF0Y2guaApAQCAtNTYsNCArNTYsNDAgQEAgdHlw ZWRlZiB2b2lkICgqeHNwbGljZV91bmxvYWRjYWxsX3QpKHZvaWQpOwogI2RlZmluZSBYU1BMSUNF X1VOTE9BRF9IT09LKF9mbikgXAogCXhzcGxpY2VfdW5sb2FkY2FsbF90IF9fYXR0cmlidXRlX18o KHdlYWspKSB4c3BsaWNlX3VubG9hZF9kYXRhIF9fc2VjdGlvbigiLnhzcGxpY2UuaG9va3MudW5s b2FkIikgPSBfZm47CiAKKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgZGVmaW5pdGlvbnMgYXJlIHRv IGJlIHVzZWQgaW4gcGF0Y2hlcy4gVGhleSBhcmUgdGFrZW4KKyAqIGZyb20ga3BhdGNoLgorICov CisKKy8qCisgKiB4c3BsaWNlIHNoYWRvdyB2YXJpYWJsZXMKKyAqCisgKiBUaGVzZSBmdW5jdGlv bnMgY2FuIGJlIHVzZWQgdG8gYWRkIG5ldyAic2hhZG93IiBmaWVsZHMgdG8gZXhpc3RpbmcgZGF0 YQorICogc3RydWN0dXJlcy4gIEZvciBleGFtcGxlLCB0byBhbGxvY2F0ZSBhICJuZXdwaWQiIHZh cmlhYmxlIGFzc29jaWF0ZWQgd2l0aCBhbgorICogaW5zdGFuY2Ugb2YgdGFza19zdHJ1Y3QsIGFu ZCBhc3NpZ24gaXQgYSB2YWx1ZSBvZiAxMDAwOgorICoKKyAqIHN0cnVjdCB0YXNrX3N0cnVjdCAq dHNrID0gY3VycmVudDsKKyAqIGludCAqbmV3cGlkOworICogbmV3cGlkID0geHNwbGljZV9zaGFk b3dfYWxsb2ModHNrLCAibmV3cGlkIiwgc2l6ZW9mKGludCkpOworICogaWYgKG5ld3BpZCkKKyAq IAkqbmV3cGlkID0gMTAwMDsKKyAqCisgKiBUbyByZXRyaWV2ZSBhIHBvaW50ZXIgdG8gdGhlIHZh cmlhYmxlOgorICoKKyAqIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrID0gY3VycmVudDsKKyAqIGlu dCAqbmV3cGlkOworICogbmV3cGlkID0geHNwbGljZV9zaGFkb3dfZ2V0KHRzaywgIm5ld3BpZCIp OworICogaWYgKG5ld3BpZCkKKyAqIAlwcmludGsoInRhc2sgbmV3cGlkID0gJWRcbiIsICpuZXdw aWQpOyAvLyBwcmludHMgInRhc2sgbmV3cGlkID0gMTAwMCIKKyAqCisgKiBUbyBmcmVlIGl0Ogor ICoKKyAqIHhzcGxpY2Vfc2hhZG93X2ZyZWUodHNrLCAibmV3cGlkIik7CisgKi8KKwordm9pZCAq eHNwbGljZV9zaGFkb3dfYWxsb2MoY29uc3Qgdm9pZCAqb2JqLCBjb25zdCBjaGFyICp2YXIsIHNp emVfdCBzaXplKTsKK3ZvaWQgeHNwbGljZV9zaGFkb3dfZnJlZShjb25zdCB2b2lkICpvYmosIGNv bnN0IGNoYXIgKnZhcik7Cit2b2lkICp4c3BsaWNlX3NoYWRvd19nZXQoY29uc3Qgdm9pZCAqb2Jq LCBjb25zdCBjaGFyICp2YXIpOworCiAjZW5kaWYgLyogX19YRU5fWFNQTElDRV9QQVRDSF9IX18g Ki8KLS0gCjIuNS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK