From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v12 10/26] tools/libxl: add back channel support to write stream Date: Wed, 23 Mar 2016 16:06:24 +0800 Message-ID: <1458720400-4699-11-git-send-email-xiecl.fnst@cn.fujitsu.com> References: <1458720400-4699-1-git-send-email-xiecl.fnst@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458720400-4699-1-git-send-email-xiecl.fnst@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen devel , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Campbell , Ian Jackson , Wei Liu Cc: Lars Kurth , Changlong Xie , Wen Congyang , Li Zhijian , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org RnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KCkFkZCBiYWNrIGNoYW5u ZWwgc3VwcG9ydCB0byB3cml0ZSBzdHJlYW0uIElmIHRoZSB3cml0ZSBzdHJlYW0gaXMKYSBiYWNr IGNoYW5uZWwgc3RyZWFtLCB0aGlzIG1lYW5zIHRoZSB3cml0ZSBzdHJlYW0gaXMgdXNlZCBieQpT ZWNvbmRhcnkgdG8gc2VuZCBzb21lIHJlY29yZHMgYmFjay4KCk5vdGU6IFRoZSBmdW5jdGlvbiBs aWJ4bF9fc3RyZWFtX3dyaXRlX2NoZWNrcG9pbnRfc3RhdGUoKSB3aWxsIGJlIHVzZWQKaW4gbGF0 ZXIgcGF0Y2hlcyBjYWxsZWQgInNlY29uZGFyeSB2bSBzdXNwZW5kL3Jlc3VtZS9jaGVja3BvaW50 IGNvZGUiIGFuZAoicHJpbWFyeSB2bSBzdXNwZW5kL3Jlc3VtZS9jaGVja3BvaW50IGNvZGUiLgoK U2lnbmVkLW9mZi1ieTogWWFuZyBIb25neWFuZyA8aG9uZ3lhbmcueWFuZ0BlYXN5c3RhY2suY24+ ClNpZ25lZC1vZmYtYnk6IFdlbiBDb25neWFuZyA8d2VuY3lAY24uZnVqaXRzdS5jb20+ClNpZ25l ZC1vZmYtYnk6IENoYW5nbG9uZyBYaWUgPHhpZWNsLmZuc3RAY24uZnVqaXRzdS5jb20+Ci0tLQog dG9vbHMvbGlieGwvbGlieGxfZG9tX3NhdmUuYyAgICAgfCAgIDEgKwogdG9vbHMvbGlieGwvbGli eGxfaW50ZXJuYWwuaCAgICAgfCAgIDYgKysrCiB0b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fd3Jp dGUuYyB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDMgZmls ZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGwvbGlieGxfZG9tX3NhdmUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbV9z YXZlLmMKaW5kZXggNGRmODZjMy4uY2QzMjRiYiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGli eGxfZG9tX3NhdmUuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kb21fc2F2ZS5jCkBAIC00MDUs NiArNDA1LDcgQEAgdm9pZCBsaWJ4bF9fZG9tYWluX3NhdmUobGlieGxfX2VnYyAqZWdjLCBsaWJ4 bF9fZG9tYWluX3NhdmVfc3RhdGUgKmRzcykKICAgICBkc3MtPnN3cy5hbyAgPSBkc3MtPmFvOwog ICAgIGRzcy0+c3dzLmRzcyA9IGRzczsKICAgICBkc3MtPnN3cy5mZCAgPSBkc3MtPmZkOworICAg IGRzcy0+c3dzLmJhY2tfY2hhbm5lbCA9IGZhbHNlOwogICAgIGRzcy0+c3dzLmNvbXBsZXRpb25f Y2FsbGJhY2sgPSBzdHJlYW1fZG9uZTsKIAogICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhcnQo ZWdjLCAmZHNzLT5zd3MpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwu aCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggNTMxNDUyMi4uZmI4YjJmYSAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0zMDQyLDYgKzMwNDIsNyBAQCBzdHJ1Y3QgbGlieGxfX3N0 cmVhbV93cml0ZV9zdGF0ZSB7CiAgICAgbGlieGxfX2FvICphbzsKICAgICBsaWJ4bF9fZG9tYWlu X3NhdmVfc3RhdGUgKmRzczsKICAgICBpbnQgZmQ7CisgICAgYm9vbCBiYWNrX2NoYW5uZWw7CiAg ICAgdm9pZCAoKmNvbXBsZXRpb25fY2FsbGJhY2spKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3dzLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMpOwpAQCAtMzA1Myw2ICszMDU0 LDcgQEAgc3RydWN0IGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgewogICAgIGJvb2wgcnVubmlu ZzsKICAgICBib29sIGluX2NoZWNrcG9pbnQ7CiAgICAgYm9vbCBzeW5jX3RlYXJkb3duOyAgLyog T25seSB1c2VkIHRvIGNvb3JkaW5hdGUgc2h1dGRvd24gb24gZXJyb3IgcGF0aC4gKi8KKyAgICBi b29sIGluX2NoZWNrcG9pbnRfc3RhdGU7CiAgICAgbGlieGxfX3NhdmVfaGVscGVyX3N0YXRlIHNo czsKIAogICAgIC8qIE1haW4gc3RyZWFtLXdyaXRpbmcgZGF0YS4gKi8KQEAgLTMwNzYsNiArMzA3 OCwxMCBAQCBfaGlkZGVuIHZvaWQgbGlieGxfX3N0cmVhbV93cml0ZV9zdGFydChsaWJ4bF9fZWdj ICplZ2MsCiBfaGlkZGVuIHZvaWQKIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhcnRfY2hlY2twb2lu dChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtKTsKK19oaWRkZW4gdm9pZAorbGlieGxf X3N0cmVhbV93cml0ZV9jaGVja3BvaW50X3N0YXRlKGxpYnhsX19lZ2MgKmVnYywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpz dHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfc3JfY2hl Y2twb2ludF9zdGF0ZSAqc3Jjcyk7CiBfaGlkZGVuIHZvaWQgbGlieGxfX3N0cmVhbV93cml0ZV9h Ym9ydChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpzdHJlYW0sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfc3RyZWFtX3dyaXRlLmMgYi90b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fd3JpdGUuYwpp bmRleCBmNmVhNTVkLi5hYmE1NTRiIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9zdHJl YW1fd3JpdGUuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fd3JpdGUuYwpAQCAtNDks NiArNDksMTMgQEAKICAqICAtIGlmIChodm0pCiAgKiAgICAgIC0gRW11bGF0b3IgY29udGV4dCBy ZWNvcmQKICAqICAtIENoZWNrcG9pbnQgZW5kIHJlY29yZAorICoKKyAqIEZvciBiYWNrIGNoYW5u ZWwgc3RyZWFtOgorICogLSBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXJ0KCkKKyAqICAgIC0gU2V0 IHVwIHRoZSBzdHJlYW0gdG8gcnVubmluZyBzdGF0ZQorICoKKyAqIC0gVXNlIGxpYnhsX19zdHJl YW1fd3JpdGVfY2hlY2twb2ludF9zdGF0ZSB0byB3cml0ZSB0aGUgcmVjb3JkLiBXaGVuIHRoZQor ICogICByZWNvcmQgaXMgd3JpdHRlbiBvdXQsIGNhbGwgc3RyZWFtLT5jaGVja3BvaW50X2NhbGxi YWNrKCkgdG8gcmV0dXJuLgogICovCiAKIC8qIFN1Y2Nlc3MvZXJyb3IvY2xlYW51cCBoYW5kbGlu Zy4gKi8KQEAgLTkxLDYgKzk4LDEyIEBAIHN0YXRpYyB2b2lkIHdyaXRlX2NoZWNrcG9pbnRfZW5k X3JlY29yZChsaWJ4bF9fZWdjICplZ2MsCiBzdGF0aWMgdm9pZCBjaGVja3BvaW50X2VuZF9yZWNv cmRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpzdHJlYW0pOwogCisvKiBjaGVja3Bv aW50IHN0YXRlICovCitzdGF0aWMgdm9pZCB3cml0ZV9jaGVja3BvaW50X3N0YXRlX2RvbmUobGli eGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0cmVhbSk7CitzdGF0aWMgdm9pZCBjaGVja3BvaW50 X3N0YXRlX2RvbmUobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0cmVhbSwgaW50IHJjKTsKKwogLyot LS0tLSBIZWxwZXJzIC0tLS0tKi8KIAogc3RhdGljIHZvaWQgd3JpdGVfZG9uZShsaWJ4bF9fZWdj ICplZ2MsCkBAIC0yMjUsNiArMjM4LDE3IEBAIHZvaWQgbGlieGxfX3N0cmVhbV93cml0ZV9zdGFy dChsaWJ4bF9fZWdjICplZ2MsCiAKICAgICBzdHJlYW0tPnJ1bm5pbmcgPSB0cnVlOwogCisgICAg ZGMtPmFvICAgICAgICA9IGFvOworICAgIGRjLT5yZWFkZmQgICAgPSAtMTsKKyAgICBkYy0+d3Jp dGV3aGF0ID0gInN0cmVhbSBoZWFkZXIiOworICAgIGRjLT5jb3B5d2hhdCAgPSAic2F2ZSB2MiBz dHJlYW0iOworICAgIGRjLT53cml0ZWZkICAgPSBzdHJlYW0tPmZkOworICAgIGRjLT5tYXhzeiAg ICAgPSAtMTsKKyAgICBkYy0+Y2FsbGJhY2sgID0gc3RyZWFtX2hlYWRlcl9kb25lOworCisgICAg aWYgKHN0cmVhbS0+YmFja19jaGFubmVsKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoZHNz LT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkgewogICAgICAgICBzdHJlYW0tPmRldmlj ZV9tb2RlbF92ZXJzaW9uID0KICAgICAgICAgICAgIGxpYnhsX19kZXZpY2VfbW9kZWxfdmVyc2lv bl9ydW5uaW5nKGdjLCBkc3MtPmRvbWlkKTsKQEAgLTI0OSwxNCArMjczLDYgQEAgdm9pZCBsaWJ4 bF9fc3RyZWFtX3dyaXRlX3N0YXJ0KGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgc3RyZWFtLT5l bXVfc3ViX2hkci5pbmRleCA9IDA7CiAgICAgfQogCi0gICAgZGMtPmFvICAgICAgICA9IGFvOwot ICAgIGRjLT5yZWFkZmQgICAgPSAtMTsKLSAgICBkYy0+d3JpdGV3aGF0ID0gInN0cmVhbSBoZWFk ZXIiOwotICAgIGRjLT5jb3B5d2hhdCAgPSAic2F2ZSB2MiBzdHJlYW0iOwotICAgIGRjLT53cml0 ZWZkICAgPSBzdHJlYW0tPmZkOwotICAgIGRjLT5tYXhzeiAgICAgPSAtMTsKLSAgICBkYy0+Y2Fs bGJhY2sgID0gc3RyZWFtX2hlYWRlcl9kb25lOwotCiAgICAgcmMgPSBsaWJ4bF9fZGF0YWNvcGll cl9zdGFydChkYyk7CiAgICAgaWYgKHJjKQogICAgICAgICBnb3RvIGVycjsKQEAgLTI3OSw2ICsy OTUsNyBAQCB2b2lkIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhcnRfY2hlY2twb2ludChsaWJ4bF9f ZWdjICplZ2MsCiB7CiAgICAgYXNzZXJ0KHN0cmVhbS0+cnVubmluZyk7CiAgICAgYXNzZXJ0KCFz dHJlYW0tPmluX2NoZWNrcG9pbnQpOworICAgIGFzc2VydCghc3RyZWFtLT5iYWNrX2NoYW5uZWwp OwogICAgIHN0cmVhbS0+aW5fY2hlY2twb2ludCA9IHRydWU7CiAKICAgICB3cml0ZV9lbXVsYXRv cl94ZW5zdG9yZV9yZWNvcmQoZWdjLCBzdHJlYW0pOwpAQCAtNTc3LDYgKzU5NCwyMSBAQCBzdGF0 aWMgdm9pZCBzdHJlYW1fY29tcGxldGUobGlieGxfX2VnYyAqZWdjLAogICAgICAgICByZXR1cm47 CiAgICAgfQogCisgICAgaWYgKHN0cmVhbS0+aW5fY2hlY2twb2ludF9zdGF0ZSkgeworICAgICAg ICBhc3NlcnQocmMpOworCisgICAgICAgIC8qCisgICAgICAgICAqIElmIGFuIGVycm9yIGlzIGVu Y291bnRlcmVkIHdoaWxlIGluIGEgY2hlY2twb2ludCwgcGFzcyBpdAorICAgICAgICAgKiBiYWNr IHRvIGxpYnhjLiAgVGhlIGZhaWx1cmUgd2lsbCBjb21lIGJhY2sgYXJvdW5kIHRvIHVzIHZpYQor ICAgICAgICAgKiAxLiBub3JtYWwgc3RyZWFtCisgICAgICAgICAqICAgIGxpYnhsX194Y19kb21h aW5fc2F2ZV9kb25lKCkKKyAgICAgICAgICogMi4gYmFja19jaGFubmVsIHN0cmVhbQorICAgICAg ICAgKiAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX2Fib3J0KCkKKyAgICAgICAgICovCisgICAgICAg IGNoZWNrcG9pbnRfc3RhdGVfZG9uZShlZ2MsIHN0cmVhbSwgcmMpOworICAgICAgICByZXR1cm47 CisgICAgfQorCiAgICAgc3RyZWFtX2RvbmUoZWdjLCBzdHJlYW0sIHJjKTsKIH0KIApAQCAtNTg0 LDEzICs2MTYsMjQgQEAgc3RhdGljIHZvaWQgc3RyZWFtX2RvbmUobGlieGxfX2VnYyAqZWdjLAog ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFt LCBpbnQgcmMpCiB7CiAgICAgYXNzZXJ0KHN0cmVhbS0+cnVubmluZyk7CisgICAgYXNzZXJ0KCFz dHJlYW0tPmluX2NoZWNrcG9pbnRfc3RhdGUpOwogICAgIHN0cmVhbS0+cnVubmluZyA9IGZhbHNl OwogCiAgICAgaWYgKHN0cmVhbS0+ZW11X2NhcmVmZCkKICAgICAgICAgbGlieGxfX2NhcmVmZF9j bG9zZShzdHJlYW0tPmVtdV9jYXJlZmQpOwogICAgIGZyZWUoc3RyZWFtLT5lbXVfYm9keSk7CiAK LSAgICBjaGVja19hbGxfZmluaXNoZWQoZWdjLCBzdHJlYW0sIHJjKTsKKyAgICBpZiAoIXN0cmVh bS0+YmFja19jaGFubmVsKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIDEuIEluIHN0cmVhbV9k b25lKCksIHN0cmVhbS0+cnVubmluZyBpcyBzZXQgdG8gZmFsc2UsIHNvCisgICAgICAgICAqICAg IHRoZSBzdHJlYW0gaXRzZWxmIGlzIG5vdCBpbiB1c2UuCisgICAgICAgICAqIDIuIFdyaXRlIHN0 cmVhbSBpcyBhIGJhY2sgY2hhbm5lbCBzdHJlYW0sIHRoaXMgbWVhbnMgaXQKKyAgICAgICAgICog ICAgaXMgb25seSB1c2VkIGJ5IHNlY29uZGFyeShyZXN0b3JlIHNpZGUpIHRvIHNlbmQgcmVjb3Jk cworICAgICAgICAgKiAgICBiYWNrLCBzbyBpdCBkb2Vzbid0IGhhdmUgc2F2ZSBoZWxwZXIuCisg ICAgICAgICAqIFNvIHdlIGRvbid0IG5lZWQgaW52b2tlIGNoZWNrX2FsbF9maW5pc2hlZCBoZXJl CisgICAgICAgICAqLworICAgICAgICAgY2hlY2tfYWxsX2ZpbmlzaGVkKGVnYywgc3RyZWFtLCBy Yyk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBjaGVja3BvaW50X2RvbmUobGlieGxfX2VnYyAq ZWdjLApAQCAtNjQyLDcgKzY4NSw0NCBAQCBzdGF0aWMgdm9pZCBjaGVja19hbGxfZmluaXNoZWQo bGlieGxfX2VnYyAqZWdjLAogICAgICAgICBsaWJ4bF9fc2F2ZV9oZWxwZXJfaW51c2UoJnN0cmVh bS0+c2hzKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RyZWFtLT5jb21wbGV0aW9uX2NhbGxi YWNrKGVnYywgc3RyZWFtLCBzdHJlYW0tPnJjKTsKKyAgICBpZiAoc3RyZWFtLT5jb21wbGV0aW9u X2NhbGxiYWNrKQorICAgICAgICAvKiBiYWNrIGNoYW5uZWwgc3RyZWFtIGRvZXNuJ3QgaGF2ZSBj b21wbGV0aW9uX2NhbGxiYWNrKCkgKi8KKyAgICAgICAgc3RyZWFtLT5jb21wbGV0aW9uX2NhbGxi YWNrKGVnYywgc3RyZWFtLCBzdHJlYW0tPnJjKTsKK30KKworLyotLS0tLSBjaGVja3BvaW50IHN0 YXRlIC0tLS0tKi8KKwordm9pZCBsaWJ4bF9fc3RyZWFtX3dyaXRlX2NoZWNrcG9pbnRfc3RhdGUo bGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfc3JfY2hlY2twb2ludF9zdGF0ZSAqc3JjcykK K3sKKyAgICBzdHJ1Y3QgbGlieGxfX3NyX3JlY19oZHIgcmVjOworCisgICAgYXNzZXJ0KHN0cmVh bS0+cnVubmluZyk7CisgICAgYXNzZXJ0KCFzdHJlYW0tPmluX2NoZWNrcG9pbnQpOworICAgIGFz c2VydCghc3RyZWFtLT5pbl9jaGVja3BvaW50X3N0YXRlKTsKKyAgICBzdHJlYW0tPmluX2NoZWNr cG9pbnRfc3RhdGUgPSB0cnVlOworCisgICAgRklMTFpFUk8ocmVjKTsKKyAgICByZWMudHlwZSA9 IFJFQ19UWVBFX0NIRUNLUE9JTlRfU1RBVEU7CisgICAgcmVjLmxlbmd0aCA9IHNpemVvZigqc3Jj cyk7CisKKyAgICBzZXR1cF93cml0ZShlZ2MsIHN0cmVhbSwgImNoZWNrcG9pbnQgc3RhdGUiLCAm cmVjLAorICAgICAgICAgICAgICAgIHNyY3MsIHdyaXRlX2NoZWNrcG9pbnRfc3RhdGVfZG9uZSk7 Cit9CisKK3N0YXRpYyB2b2lkIHdyaXRlX2NoZWNrcG9pbnRfc3RhdGVfZG9uZShsaWJ4bF9fZWdj ICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3N0 cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtKQoreworICAgIGNoZWNrcG9pbnRfc3RhdGVfZG9uZShl Z2MsIHN0cmVhbSwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIGNoZWNrcG9pbnRfc3RhdGVfZG9uZShs aWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf X3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtLCBpbnQgcmMpCit7CisgICAgYXNzZXJ0KHN0cmVh bS0+aW5fY2hlY2twb2ludF9zdGF0ZSk7CisgICAgc3RyZWFtLT5pbl9jaGVja3BvaW50X3N0YXRl ID0gZmFsc2U7CisgICAgc3RyZWFtLT5jaGVja3BvaW50X2NhbGxiYWNrKGVnYywgc3RyZWFtLCBy Yyk7CiB9CiAKIC8qCi0tIAoxLjkuMwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK