From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v13 11/26] tools/libxl: add back channel support to read stream Date: Fri, 25 Mar 2016 14:44:18 +0800 Message-ID: <1458888273-7469-12-git-send-email-xiecl.fnst@cn.fujitsu.com> References: <1458888273-7469-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: <1458888273-7469-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 RnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KClRoaXMgaXMgdXNlZCBi eSBwcmltYXkgdG8gcmVhZCByZWNvcmRzIHNlbnQgYnkgc2Vjb25kYXJ5LgoKTm90ZTogVGhlIGZ1 bmN0aW9uIGxpYnhsX19zdHJlYW1fcmVhZF9jaGVja3BvaW50X3N0YXRlKCkgd2lsbCBiZSB1c2Vk CmluIGxhdGVyIHBhdGNoZXMgY2FsbGVkICJzZWNvbmRhcnkgdm0gc3VzcGVuZC9yZXN1bWUvY2hl Y2twb2ludCBjb2RlIiBhbmQKInByaW1hcnkgdm0gc3VzcGVuZC9yZXN1bWUvY2hlY2twb2ludCBj b2RlIi4KClNpZ25lZC1vZmYtYnk6IFlhbmcgSG9uZ3lhbmcgPGhvbmd5YW5nLnlhbmdAZWFzeXN0 YWNrLmNuPgpTaWduZWQtb2ZmLWJ5OiBXZW4gQ29uZ3lhbmcgPHdlbmN5QGNuLmZ1aml0c3UuY29t PgpTaWduZWQtb2ZmLWJ5OiBDaGFuZ2xvbmcgWGllIDx4aWVjbC5mbnN0QGNuLmZ1aml0c3UuY29t PgpBY2tlZC1ieTogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Ci0tLQog dG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgICAgICB8ICAxICsKIHRvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmggICAgfCAgNCArKwogdG9vbHMvbGlieGwvbGlieGxfc3RyZWFtX3JlYWQuYyB8 IDk0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiAzIGZpbGVzIGNo YW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwppbmRl eCAwOWYyZjEzLi40ZDJiOTVjIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUu YworKysgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwpAQCAtMTAzNCw2ICsxMDM0LDcgQEAg c3RhdGljIHZvaWQgZG9tY3JlYXRlX2Jvb3Rsb2FkZXJfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAg ICAgZGNzLT5zcnMuZGNzID0gZGNzOwogICAgIGRjcy0+c3JzLmZkID0gcmVzdG9yZV9mZDsKICAg ICBkY3MtPnNycy5sZWdhY3kgPSAoZGNzLT5yZXN0b3JlX3BhcmFtcy5zdHJlYW1fdmVyc2lvbiA9 PSAxKTsKKyAgICBkY3MtPnNycy5iYWNrX2NoYW5uZWwgPSBmYWxzZTsKICAgICBkY3MtPnNycy5j b21wbGV0aW9uX2NhbGxiYWNrID0gZG9tY3JlYXRlX3N0cmVhbV9kb25lOwogCiAgICAgaWYgKHJl c3RvcmVfZmQgPj0gMCkgewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwu aCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggMGU1ZjlmOC4uMWZhZmJhOCAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0zNDQ0LDYgKzM0NDQsNyBAQCBzdHJ1Y3QgbGlieGxfX3N0 cmVhbV9yZWFkX3N0YXRlIHsKICAgICBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9zdGF0ZSAqZGNzOwog ICAgIGludCBmZDsKICAgICBib29sIGxlZ2FjeTsKKyAgICBib29sIGJhY2tfY2hhbm5lbDsKICAg ICB2b2lkICgqY29tcGxldGlvbl9jYWxsYmFjaykobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUgKnNycywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKTsKQEAgLTM0NTUsNiArMzQ1Niw3 IEBAIHN0cnVjdCBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUgewogICAgIGJvb2wgcnVubmluZzsK ICAgICBib29sIGluX2NoZWNrcG9pbnQ7CiAgICAgYm9vbCBzeW5jX3RlYXJkb3duOyAvKiBPbmx5 IHVzZWQgdG8gY29vcmRpbmF0ZSBzaHV0ZG93biBvbiBlcnJvciBwYXRoLiAqLworICAgIGJvb2wg aW5fY2hlY2twb2ludF9zdGF0ZTsKICAgICBsaWJ4bF9fc2F2ZV9oZWxwZXJfc3RhdGUgc2hzOwog ICAgIGxpYnhsX19jb252ZXJzaW9uX2hlbHBlcl9zdGF0ZSBjaHM7CiAKQEAgLTM0ODIsNiArMzQ4 NCw4IEBAIF9oaWRkZW4gdm9pZCBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhcnQobGlieGxfX2VnYyAq ZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFt X3JlYWRfc3RhdGUgKnN0cmVhbSk7CiBfaGlkZGVuIHZvaWQgbGlieGxfX3N0cmVhbV9yZWFkX3N0 YXJ0X2NoZWNrcG9pbnQobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSAqc3RyZWFt KTsKK19oaWRkZW4gdm9pZCBsaWJ4bF9fc3RyZWFtX3JlYWRfY2hlY2twb2ludF9zdGF0ZShsaWJ4 bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfX3N0cmVhbV9yZWFkX3N0YXRlICpzdHJlYW0pOwogX2hpZGRlbiB2b2lkIGxp YnhsX19zdHJlYW1fcmVhZF9hYm9ydChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSAqc3RyZWFtLCBp bnQgcmMpOwogc3RhdGljIGlubGluZSBib29sCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4 bF9zdHJlYW1fcmVhZC5jIGIvdG9vbHMvbGlieGwvbGlieGxfc3RyZWFtX3JlYWQuYwppbmRleCBm NDc4MWViLi4zMDJhZTUzIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fcmVh ZC5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3N0cmVhbV9yZWFkLmMKQEAgLTExOCw2ICsxMTgs MTUgQEAKICAqICAgIHJlY29yZCwgYW5kIHRoZXJlZm9yZSB0aGUgYnVmZmVyZWQgc3RhdGUgaXMg aW5jb25zaXN0ZW50LiBJbgogICogICAgbGlieGxfX3hjX2RvbWFpbl9yZXN0b3JlX2RvbmUoKSwg d2UganVzdCBjb21wbGV0ZSB0aGUgc3RyZWFtIGFuZAogICogICAgc3RyZWFtLT5jb21wbGV0aW9u X2NhbGxiYWNrKCkgd2lsbCBiZSBjYWxsZWQgdG8gcmVzdW1lIHRoZSBndWVzdAorICoKKyAqIEZv ciBiYWNrIGNoYW5uZWwgc3RyZWFtOgorICogLSBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhcnQoKQor ICogICAgLSBTZXQgdXAgdGhlIHN0cmVhbSB0byBydW5uaW5nIHN0YXRlCisgKgorICogLSBsaWJ4 bF9fc3RyZWFtX3JlYWRfY29udGludWUoKQorICogICAgIC0gU2V0IHVwIHJlYWRpbmcgdGhlIG5l eHQgcmVjb3JkIGZyb20gYSBzdGFydGVkIHN0cmVhbS4KKyAqICAgICAgIEFkZCBzb21lIGNvZGVz IHRvIHByb2Nlc3NfcmVjb3JkKCkgdG8gaGFuZGxlIHRoZSByZWNvcmQuCisgKiAgICAgICBUaGVu IGNhbGwgc3RyZWFtLT5jaGVja3BvaW50X2NhbGxiYWNrKCkgdG8gcmV0dXJuLgogICovCiAKIC8q IFN1Y2Nlc3MvZXJyb3IvY2xlYW51cCBoYW5kbGluZy4gKi8KQEAgLTE1Nyw2ICsxNjYsMTAgQEAg c3RhdGljIHZvaWQgd3JpdGVfZW11bGF0b3JfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kYXRhY29waWVyX3N0YXRlICpkYywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjLCBpbnQgb253cml0ZSwgaW50IGVy cm5vdmFsKTsKIAorLyogSGFuZGxlcnMgZm9yIGNoZWNrcG9pbnQgc3RhdGUgbWluaS1sb29wICov CitzdGF0aWMgdm9pZCBjaGVja3BvaW50X3N0YXRlX2RvbmUobGlieGxfX2VnYyAqZWdjLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSAq c3RyZWFtLCBpbnQgcmMpOworCiAvKi0tLS0tIEhlbHBlcnMgLS0tLS0qLwogCiAvKiBIZWxwZXIg dG8gc2V0IHVwIHJlYWRpbmcgc29tZSBkYXRhIGZyb20gdGhlIHN0cmVhbS4gKi8KQEAgLTIyMSw2 ICsyMzQsMTQgQEAgdm9pZCBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhcnQobGlieGxfX2VnYyAqZWdj LAogICAgIHN0cmVhbS0+cnVubmluZyA9IHRydWU7CiAgICAgc3RyZWFtLT5waGFzZSAgID0gU1JT X1BIQVNFX05PUk1BTDsKIAorICAgIGRjLT5hbyAgICAgICA9IHN0cmVhbS0+YW87CisgICAgZGMt PmNvcHl3aGF0ID0gInJlc3RvcmUgdjIgc3RyZWFtIjsKKyAgICBkYy0+cmVhZGZkID0gc3RyZWFt LT5mZDsKKyAgICBkYy0+d3JpdGVmZCAgPSAtMTsKKworICAgIGlmIChzdHJlYW0tPmJhY2tfY2hh bm5lbCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKHN0cmVhbS0+bGVnYWN5KSB7CiAgICAg ICAgIC8qIENvbnZlcnQgdGhlIGxlZ2FjeSBzdHJlYW0uICovCiAgICAgICAgIGxpYnhsX19jb252 ZXJzaW9uX2hlbHBlcl9zdGF0ZSAqY2hzID0gJnN0cmVhbS0+Y2hzOwpAQCAtMjQxLDEyICsyNjIs NiBAQCB2b2lkIGxpYnhsX19zdHJlYW1fcmVhZF9zdGFydChsaWJ4bF9fZWdjICplZ2MsCiAgICAg ICAgIHN0cmVhbS0+ZmQgPSBsaWJ4bF9fY2FyZWZkX2ZkKHN0cmVhbS0+Y2hzLnYyX2NhcmVmZCk7 CiAgICAgICAgIHN0cmVhbS0+ZGNzLT5saWJ4Y19mZCA9IHN0cmVhbS0+ZmQ7CiAgICAgfQotICAg IC8qIHN0cmVhbS0+ZmQgaXMgbm93IGEgdjIgc3RyZWFtLiAqLwotCi0gICAgZGMtPmFvICAgICAg ID0gc3RyZWFtLT5hbzsKLSAgICBkYy0+Y29weXdoYXQgPSAicmVzdG9yZSB2MiBzdHJlYW0iOwot ICAgIGRjLT5yZWFkZmQgICA9IHN0cmVhbS0+ZmQ7Ci0gICAgZGMtPndyaXRlZmQgID0gLTE7CiAK ICAgICAvKiBTdGFydCByZWFkaW5nIHRoZSBzdHJlYW0gaGVhZGVyLiAqLwogICAgIHJjID0gc2V0 dXBfcmVhZChzdHJlYW0sICJzdHJlYW0gaGVhZGVyIiwKQEAgLTUzMiw2ICs1NDcsNyBAQCBzdGF0 aWMgYm9vbCBwcm9jZXNzX3JlY29yZChsaWJ4bF9fZWdjICplZ2MsCiAgICAgU1RBVEVfQU9fR0Mo c3RyZWFtLT5hbyk7CiAgICAgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgKmRjcyA9IHN0cmVh bS0+ZGNzOwogICAgIGxpYnhsX19zcl9yZWNvcmRfYnVmICpyZWM7CisgICAgbGlieGxfc3JfY2hl Y2twb2ludF9zdGF0ZSAqc3JjczsKICAgICBib29sIGZ1cnRoZXJfYWN0aW9uX25lZWRlZCA9IGZh bHNlOwogICAgIGludCByYyA9IDA7CiAKQEAgLTYwMiw2ICs2MTgsMTcgQEAgc3RhdGljIGJvb2wg cHJvY2Vzc19yZWNvcmQobGlieGxfX2VnYyAqZWdjLAogICAgICAgICBjaGVja3BvaW50X2RvbmUo ZWdjLCBzdHJlYW0sIDApOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgUkVDX1RZUEVfQ0hF Q0tQT0lOVF9TVEFURToKKyAgICAgICAgaWYgKCFzdHJlYW0tPmluX2NoZWNrcG9pbnRfc3RhdGUp IHsKKyAgICAgICAgICAgIExPRyhFUlJPUiwgIlVuZXhwZWN0ZWQgQ0hFQ0tQT0lOVF9TVEFURSBy ZWNvcmQgaW4gc3RyZWFtIik7CisgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAg ICAgICBnb3RvIGVycjsKKyAgICAgICAgfQorCisgICAgICAgIHNyY3MgPSByZWMtPmJvZHk7Cisg ICAgICAgIGNoZWNrcG9pbnRfc3RhdGVfZG9uZShlZ2MsIHN0cmVhbSwgc3Jjcy0+aWQpOworICAg ICAgICBicmVhazsKKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIExPRyhFUlJPUiwgIlVucmVjb2du aXNlZCByZWNvcmQgMHglMDh4IiwgcmVjLT5oZHIudHlwZSk7CiAgICAgICAgIHJjID0gRVJST1Jf RkFJTDsKQEAgLTcxMyw2ICs3NDAsMjEgQEAgc3RhdGljIHZvaWQgc3RyZWFtX2NvbXBsZXRlKGxp YnhsX19lZ2MgKmVnYywKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChzdHJlYW0t PmluX2NoZWNrcG9pbnRfc3RhdGUpIHsKKyAgICAgICAgYXNzZXJ0KHJjKTsKKworICAgICAgICAv KgorICAgICAgICAgKiBJZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZCB3aGlsZSBpbiBhIGNoZWNr cG9pbnQsIHBhc3MgaXQKKyAgICAgICAgICogYmFjayB0byBsaWJ4Yy4gIFRoZSBmYWlsdXJlIHdp bGwgY29tZSBiYWNrIGFyb3VuZCB0byB1cyB2aWEKKyAgICAgICAgICogMS4gbm9ybWFsIHN0cmVh bQorICAgICAgICAgKiAgICBsaWJ4bF9feGNfZG9tYWluX3Jlc3RvcmVfZG9uZSgpCisgICAgICAg ICAqIDIuIGJhY2tfY2hhbm5lbCBzdHJlYW0KKyAgICAgICAgICogICAgbGlieGxfX3N0cmVhbV9y ZWFkX2Fib3J0KCkKKyAgICAgICAgICovCisgICAgICAgIGNoZWNrcG9pbnRfc3RhdGVfZG9uZShl Z2MsIHN0cmVhbSwgcmMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgc3RyZWFtX2Rv bmUoZWdjLCBzdHJlYW0sIHJjKTsKIH0KIApAQCAtNzQzLDYgKzc4NSw3IEBAIHN0YXRpYyB2b2lk IHN0cmVhbV9kb25lKGxpYnhsX19lZ2MgKmVnYywKIAogICAgIGFzc2VydChzdHJlYW0tPnJ1bm5p bmcpOwogICAgIGFzc2VydCghc3RyZWFtLT5pbl9jaGVja3BvaW50KTsKKyAgICBhc3NlcnQoIXN0 cmVhbS0+aW5fY2hlY2twb2ludF9zdGF0ZSk7CiAgICAgc3RyZWFtLT5ydW5uaW5nID0gZmFsc2U7 CiAKICAgICBpZiAoc3RyZWFtLT5pbmNvbWluZ19yZWNvcmQpCkBAIC03NjIsNyArODA1LDE5IEBA IHN0YXRpYyB2b2lkIHN0cmVhbV9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICBMSUJYTF9TVEFJ TFFfRk9SRUFDSF9TQUZFKHJlYywgJnN0cmVhbS0+cmVjb3JkX3F1ZXVlLCBlbnRyeSwgdHJlYykK ICAgICAgICAgZnJlZV9yZWNvcmQocmVjKTsKIAotICAgIGNoZWNrX2FsbF9maW5pc2hlZChlZ2Ms IHN0cmVhbSwgcmMpOworICAgIGlmICghc3RyZWFtLT5iYWNrX2NoYW5uZWwpIHsKKyAgICAgICAg LyoKKyAgICAgICAgICogMS4gSW4gc3RyZWFtX2RvbmUoKSwgc3RyZWFtLT5ydW5uaW5nIGlzIHNl dCB0byBmYWxzZSwgc28KKyAgICAgICAgICogICAgdGhlIHN0cmVhbSBpdHNlbGYgaXMgbm90IGlu IHVzZS4KKyAgICAgICAgICogMi4gUmVhZCBzdHJlYW0gaXMgYSBiYWNrIGNoYW5uZWwgc3RyZWFt LCB0aGlzIG1lYW5zIGl0IGlzCisgICAgICAgICAqICAgIG9ubHkgdXNlZCBieSBwcmltYXJ5KHNh dmUgc2lkZSkgdG8gcmVhZCByZWNvcmRzIHNlbnQgYnkKKyAgICAgICAgICogICAgc2Vjb25kYXJ5 KHJlc3RvcmUgc2lkZSksIHNvIGl0IGRvZXNuJ3QgaGF2ZSByZXN0b3JlIGhlbHBlci4KKyAgICAg ICAgICogMy4gQmFjayBjaGFubmVsIHN0cmVhbSBkb2Vzbid0IHN1cHBvcnQgbGVnYWN5IHN0cmVh bSwgc28KKyAgICAgICAgICogICAgdGhlcmUgaXMgbm8gY29udmVyc2lvbiBoZWxwZXIuCisgICAg ICAgICAqIFNvIHdlIGRvbid0IG5lZWQgaW52b2tlIGNoZWNrX2FsbF9maW5pc2hlZCBoZXJlCisg ICAgICAgICAqLworICAgICAgICBjaGVja19hbGxfZmluaXNoZWQoZWdjLCBzdHJlYW0sIHJjKTsK KyAgICB9CiB9CiAKIHZvaWQgbGlieGxfX3hjX2RvbWFpbl9yZXN0b3JlX2RvbmUobGlieGxfX2Vn YyAqZWdjLCB2b2lkICpkY3Nfdm9pZCwKQEAgLTg2Miw3ICs5MTcsMzAgQEAgc3RhdGljIHZvaWQg Y2hlY2tfYWxsX2ZpbmlzaGVkKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgbGlieGxfX2NvbnZl cnNpb25faGVscGVyX2ludXNlKCZzdHJlYW0tPmNocykpCiAgICAgICAgIHJldHVybjsKIAotICAg IHN0cmVhbS0+Y29tcGxldGlvbl9jYWxsYmFjayhlZ2MsIHN0cmVhbSwgc3RyZWFtLT5yYyk7Cisg ICAgaWYgKHN0cmVhbS0+Y29tcGxldGlvbl9jYWxsYmFjaykKKyAgICAgICAgLyogYmFjayBjaGFu bmVsIHN0cmVhbSBkb2Vzbid0IGhhdmUgY29tcGxldGlvbl9jYWxsYmFjaygpICovCisgICAgICAg IHN0cmVhbS0+Y29tcGxldGlvbl9jYWxsYmFjayhlZ2MsIHN0cmVhbSwgc3RyZWFtLT5yYyk7Cit9 CisKKy8qLS0tLS0gQ2hlY2twb2ludCBzdGF0ZSBoYW5kbGVycyAtLS0tLSovCisKK3ZvaWQgbGli eGxfX3N0cmVhbV9yZWFkX2NoZWNrcG9pbnRfc3RhdGUobGlieGxfX2VnYyAqZWdjLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3Rh dGUgKnN0cmVhbSkKK3sKKyAgICBhc3NlcnQoc3RyZWFtLT5ydW5uaW5nKTsKKyAgICBhc3NlcnQo IXN0cmVhbS0+aW5fY2hlY2twb2ludCk7CisgICAgYXNzZXJ0KCFzdHJlYW0tPmluX2NoZWNrcG9p bnRfc3RhdGUpOworICAgIHN0cmVhbS0+aW5fY2hlY2twb2ludF9zdGF0ZSA9IHRydWU7CisKKyAg ICBzZXR1cF9yZWFkX3JlY29yZChlZ2MsIHN0cmVhbSk7Cit9CisKK3N0YXRpYyB2b2lkIGNoZWNr cG9pbnRfc3RhdGVfZG9uZShsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX3N0cmVhbV9yZWFkX3N0YXRlICpzdHJlYW0sIGludCByYykKK3sK KyAgICBhc3NlcnQoc3RyZWFtLT5pbl9jaGVja3BvaW50X3N0YXRlKTsKKyAgICBzdHJlYW0tPmlu X2NoZWNrcG9pbnRfc3RhdGUgPSBmYWxzZTsKKyAgICBzdHJlYW0tPmNoZWNrcG9pbnRfY2FsbGJh Y2soZWdjLCBzdHJlYW0sIHJjKTsKIH0KIAogLyoKLS0gCjEuOS4zCgoKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=