From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joshua Otto Subject: [PATCH RFC 16/20] libxl/libxl_stream_write.c: track callback chains with an explicit phase Date: Mon, 27 Mar 2017 05:06:28 -0400 Message-ID: <1490605592-12189-17-git-send-email-jtotto@uwaterloo.ca> References: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1csQlf-0000JJ-0B for xen-devel@lists.xenproject.org; Mon, 27 Mar 2017 09:16:51 +0000 In-Reply-To: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> 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 Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, czylin@uwaterloo.ca, Joshua Otto , imhy.yang@gmail.com, hjarmstr@uwaterloo.ca List-Id: xen-devel@lists.xenproject.org VGhlcmUgYXJlIHRocmVlIGNhbGxiYWNrIGNoYWlucyB0aHJvdWdoIGxpYnhsX3N0cmVhbV93cml0 ZTogdGhlICdub3JtYWwnCnN0cmFpZ2h0LXRocm91Z2ggc2F2ZSBwYXRoIGluaXRpYXRlZCBieSBs aWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXJ0KCksIHRoZQppdGVyYXRlZCBjaGVja3BvaW50IHBhdGgg aW5pdGlhdGVkIGVhY2ggdGltZSBieQpsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXJ0X2NoZWNrcG9p bnQoKSwgYW5kIHRoZSAoc2hvcnQpIGJhY2stY2hhbm5lbApjaGVja3BvaW50IHBhdGggaW5pdGlh dGVkIGJ5IGxpYnhsX19zdHJlYW1fd3JpdGVfY2hlY2twb2ludF9zdGF0ZSgpLgpUaGVzZSBwYXRo cyBzaGFyZSBzaWduaWZpY2FudCBjb21tb24gY29kZSBidXQgaGFuZGxlIGZhaWx1cmUgYW5kCmNv bXBsZXRpb24gc2xpZ2h0bHkgZGlmZmVyZW50bHksIHNvIGl0IGlzIG5lY2Vzc2FyeSB0byBrZWVw IHRyYWNrIG9mCnRoZSBjYWxsYmFjayBjaGFpbiBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MgYW5kIGFj dCBhY2NvcmRpbmdseSBhdCB2YXJpb3VzCnBvaW50cy4KClVudGlsIG5vdywgYSBjb2xsZWN0aW9u IG9mIGJvb2xlYW5zIGluIHRoZSBzdHJlYW0gd3JpdGUgc3RhdGUgaGFzIGJlZW4KdXNlZCB0byBp bmRpY2F0ZSB0aGUgY3VycmVudCBjYWxsYmFjayBjaGFpbi4gIEhvd2V2ZXIsIHRoZSBzZXQgb2YK Y2FsbGJhY2sgY2hhaW5zIGlzIHJlYWxseSBiZXR0ZXIgZGVzY3JpYmVkIGJ5IGFuIGVudW0sIHNp bmNlIG9ubHkgb25lCmNhbGxiYWNrIGNoYWluIGNhbiBhY3R1YWxseSBiZSBhY3RpdmUgYXQgb25l IHRpbWUuICBJbiBhbnRpY2lwYXRpb24gb2YKdGhlIGFkZGl0aW9uIG9mIGEgbmV3IGNoYWluIGZv ciBwb3N0Y29weSBsaXZlIG1pZ3JhdGlvbiwgcmVmYWN0b3IgdGhlCmV4aXN0aW5nIGxvZ2ljIHRv IHVzZSBhbiBlbnVtIHJhdGhlciB0aGFuIGJvb2xlYW5zIGZvciBjYWxsYmFjayBjaGFpbgp0cmFj a2luZy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogSm9zaHVhIE90dG8g PGp0b3R0b0B1d2F0ZXJsb28uY2E+Ci0tLQogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCAg ICAgfCAgNyArKy0KIHRvb2xzL2xpYnhsL2xpYnhsX3N0cmVhbV93cml0ZS5jIHwgOTYgKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0OCBp bnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9s aWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCA0NWQ2 MDdhLi5lOTlkMmVmIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKQEAgLTMyMDEsOSArMzIwMSwxMiBAQCBz dHJ1Y3QgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSB7CiAgICAgLyogUHJpdmF0ZSAqLwogICAg IGludCByYzsKICAgICBib29sIHJ1bm5pbmc7Ci0gICAgYm9vbCBpbl9jaGVja3BvaW50OworICAg IGVudW0geworICAgICAgICBTV1NfUEhBU0VfTk9STUFMLAorICAgICAgICBTV1NfUEhBU0VfQ0hF Q0tQT0lOVCwKKyAgICAgICAgU1dTX1BIQVNFX0NIRUNLUE9JTlRfU1RBVEUKKyAgICB9IHBoYXNl OwogICAgIGJvb2wgc3luY190ZWFyZG93bjsgIC8qIE9ubHkgdXNlZCB0byBjb29yZGluYXRlIHNo dXRkb3duIG9uIGVycm9yIHBhdGguICovCi0gICAgYm9vbCBpbl9jaGVja3BvaW50X3N0YXRlOwog ICAgIGxpYnhsX19zYXZlX2hlbHBlcl9zdGF0ZSBzaHM7CiAKICAgICAvKiBNYWluIHN0cmVhbS13 cml0aW5nIGRhdGEuICovCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fd3Jp dGUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3N0cmVhbV93cml0ZS5jCmluZGV4IGM5NmE2YTIuLjhm MmExYzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3N0cmVhbV93cml0ZS5jCisrKyBi L3Rvb2xzL2xpYnhsL2xpYnhsX3N0cmVhbV93cml0ZS5jCkBAIC04OSwxMiArODksOSBAQCBzdGF0 aWMgdm9pZCBlbXVsYXRvcl9jb250ZXh0X3JlYWRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMsIGludCBvbndyaXRlLCBp bnQgZXJybm92YWwpOwogc3RhdGljIHZvaWQgZW11bGF0b3JfY29udGV4dF9yZWNvcmRfZG9uZShs aWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0cmVhbSk7Ci1zdGF0aWMgdm9pZCB3cml0ZV9l bmRfcmVjb3JkKGxpYnhsX19lZ2MgKmVnYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtKTsKK3N0YXRpYyB2b2lkIHdyaXRlX3Bo YXNlX2VuZF9yZWNvcmQobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpzdHJlYW0pOwogCi0vKiBFdmVu dCBjaGFpbiB1bmlxdWUgdG8gY2hlY2twb2ludGVkIHN0cmVhbXMuICovCi1zdGF0aWMgdm9pZCB3 cml0ZV9jaGVja3BvaW50X2VuZF9yZWNvcmQobGlieGxfX2VnYyAqZWdjLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0 cmVhbSk7CiBzdGF0aWMgdm9pZCBjaGVja3BvaW50X2VuZF9yZWNvcmRfZG9uZShsaWJ4bF9fZWdj ICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3Ry ZWFtX3dyaXRlX3N0YXRlICpzdHJlYW0pOwogCkBAIC0yMTMsNyArMjEwLDcgQEAgdm9pZCBsaWJ4 bF9fc3RyZWFtX3dyaXRlX2luaXQobGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtKQog CiAgICAgc3RyZWFtLT5yYyA9IDA7CiAgICAgc3RyZWFtLT5ydW5uaW5nID0gZmFsc2U7Ci0gICAg c3RyZWFtLT5pbl9jaGVja3BvaW50ID0gZmFsc2U7CisgICAgc3RyZWFtLT5waGFzZSA9IFNXU19Q SEFTRV9OT1JNQUw7CiAgICAgc3RyZWFtLT5zeW5jX3RlYXJkb3duID0gZmFsc2U7CiAgICAgRklM TFpFUk8oc3RyZWFtLT5kYyk7CiAgICAgc3RyZWFtLT5yZWNvcmRfZG9uZV9jYWxsYmFjayA9IE5V TEw7CkBAIC0yOTQsOSArMjkxLDkgQEAgdm9pZCBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXJ0X2No ZWNrcG9pbnQobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtKQogewogICAgIGFz c2VydChzdHJlYW0tPnJ1bm5pbmcpOwotICAgIGFzc2VydCghc3RyZWFtLT5pbl9jaGVja3BvaW50 KTsKKyAgICBhc3NlcnQoc3RyZWFtLT5waGFzZSA9PSBTV1NfUEhBU0VfTk9STUFMKTsKICAgICBh c3NlcnQoIXN0cmVhbS0+YmFja19jaGFubmVsKTsKLSAgICBzdHJlYW0tPmluX2NoZWNrcG9pbnQg PSB0cnVlOworICAgIHN0cmVhbS0+cGhhc2UgPSBTV1NfUEhBU0VfQ0hFQ0tQT0lOVDsKIAogICAg IHdyaXRlX2VtdWxhdG9yX3hlbnN0b3JlX3JlY29yZChlZ2MsIHN0cmVhbSk7CiB9CkBAIC00MzEs MTIgKzQyOCw4IEBAIHN0YXRpYyB2b2lkIGVtdWxhdG9yX3hlbnN0b3JlX3JlY29yZF9kb25lKGxp YnhsX19lZ2MgKmVnYywKIAogICAgIGlmIChkc3MtPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVf SFZNKQogICAgICAgICB3cml0ZV9lbXVsYXRvcl9jb250ZXh0X3JlY29yZChlZ2MsIHN0cmVhbSk7 Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChzdHJlYW0tPmluX2NoZWNrcG9pbnQpCi0gICAgICAg ICAgICB3cml0ZV9jaGVja3BvaW50X2VuZF9yZWNvcmQoZWdjLCBzdHJlYW0pOwotICAgICAgICBl bHNlCi0gICAgICAgICAgICB3cml0ZV9lbmRfcmVjb3JkKGVnYywgc3RyZWFtKTsKLSAgICB9Cisg ICAgZWxzZQorICAgICAgICB3cml0ZV9waGFzZV9lbmRfcmVjb3JkKGVnYywgc3RyZWFtKTsKIH0K IAogc3RhdGljIHZvaWQgd3JpdGVfZW11bGF0b3JfY29udGV4dF9yZWNvcmQobGlieGxfX2VnYyAq ZWdjLApAQCAtNTM0LDM0ICs1MjcsMzUgQEAgc3RhdGljIHZvaWQgZW11bGF0b3JfY29udGV4dF9y ZWNvcmRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgZnJlZShzdHJlYW0tPmVtdV9ib2R5KTsK ICAgICBzdHJlYW0tPmVtdV9ib2R5ID0gTlVMTDsKIAotICAgIGlmIChzdHJlYW0tPmluX2NoZWNr cG9pbnQpCi0gICAgICAgIHdyaXRlX2NoZWNrcG9pbnRfZW5kX3JlY29yZChlZ2MsIHN0cmVhbSk7 Ci0gICAgZWxzZQotICAgICAgICB3cml0ZV9lbmRfcmVjb3JkKGVnYywgc3RyZWFtKTsKKyAgICB3 cml0ZV9waGFzZV9lbmRfcmVjb3JkKGVnYywgc3RyZWFtKTsKIH0KIAotc3RhdGljIHZvaWQgd3Jp dGVfZW5kX3JlY29yZChsaWJ4bF9fZWdjICplZ2MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN0cmVhbSkKK3N0YXRpYyB2b2lkIHdyaXRl X3BoYXNlX2VuZF9yZWNvcmQobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpzdHJlYW0pCiB7CiAgICAg c3RydWN0IGxpYnhsX19zcl9yZWNfaGRyIHJlYzsKKyAgICBzd3NfcmVjb3JkX2RvbmVfY2IgY2I7 CisgICAgY29uc3QgY2hhciAqd2hhdDsKIAogICAgIEZJTExaRVJPKHJlYyk7Ci0gICAgcmVjLnR5 cGUgPSBSRUNfVFlQRV9FTkQ7Ci0KLSAgICBzZXR1cF93cml0ZShlZ2MsIHN0cmVhbSwgImVuZCBy ZWNvcmQiLAotICAgICAgICAgICAgICAgICZyZWMsIE5VTEwsIHN0cmVhbV9zdWNjZXNzKTsKLX0K LQotc3RhdGljIHZvaWQgd3JpdGVfY2hlY2twb2ludF9lbmRfcmVjb3JkKGxpYnhsX19lZ2MgKmVn YywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFt X3dyaXRlX3N0YXRlICpzdHJlYW0pCi17Ci0gICAgc3RydWN0IGxpYnhsX19zcl9yZWNfaGRyIHJl YzsKIAotICAgIEZJTExaRVJPKHJlYyk7Ci0gICAgcmVjLnR5cGUgPSBSRUNfVFlQRV9DSEVDS1BP SU5UX0VORDsKKyAgICBzd2l0Y2ggKHN0cmVhbS0+cGhhc2UpIHsKKyAgICBjYXNlIFNXU19QSEFT RV9OT1JNQUw6CisgICAgICAgIHJlYy50eXBlID0gUkVDX1RZUEVfRU5EOworICAgICAgICB3aGF0 ICAgICA9ICJlbmQgcmVjb3JkIjsKKyAgICAgICAgY2IgICAgICAgPSBzdHJlYW1fc3VjY2VzczsK KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTV1NfUEhBU0VfQ0hFQ0tQT0lOVDoKKyAgICAgICAg cmVjLnR5cGUgPSBSRUNfVFlQRV9DSEVDS1BPSU5UX0VORDsKKyAgICAgICAgd2hhdCAgICAgPSAi Y2hlY2twb2ludCBlbmQgcmVjb3JkIjsKKyAgICAgICAgY2IgICAgICAgPSBjaGVja3BvaW50X2Vu ZF9yZWNvcmRfZG9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgLyog U1dTX1BIQVNFX0NIRUNLUE9JTlRfU1RBVEUgaGFzIG5vIGVuZCByZWNvcmQgKi8KKyAgICAgICAg YXNzZXJ0KGZhbHNlKTsKKyAgICB9CiAKLSAgICBzZXR1cF93cml0ZShlZ2MsIHN0cmVhbSwgImNo ZWNrcG9pbnQgZW5kIHJlY29yZCIsCi0gICAgICAgICAgICAgICAgJnJlYywgTlVMTCwgY2hlY2tw b2ludF9lbmRfcmVjb3JkX2RvbmUpOworICAgIHNldHVwX3dyaXRlKGVnYywgc3RyZWFtLCB3aGF0 LCAmcmVjLCBOVUxMLCBjYik7CiB9CiAKIHN0YXRpYyB2b2lkIGNoZWNrcG9pbnRfZW5kX3JlY29y ZF9kb25lKGxpYnhsX19lZ2MgKmVnYywKQEAgLTU4MiwyMSArNTc2LDIwIEBAIHN0YXRpYyB2b2lk IHN0cmVhbV9jb21wbGV0ZShsaWJ4bF9fZWdjICplZ2MsCiB7CiAgICAgYXNzZXJ0KHN0cmVhbS0+ cnVubmluZyk7CiAKLSAgICBpZiAoc3RyZWFtLT5pbl9jaGVja3BvaW50KSB7CisgICAgc3dpdGNo IChzdHJlYW0tPnBoYXNlKSB7CisgICAgY2FzZSBTV1NfUEhBU0VfTk9STUFMOgorICAgICAgICBz dHJlYW1fZG9uZShlZ2MsIHN0cmVhbSwgcmMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNX U19QSEFTRV9DSEVDS1BPSU5UOgogICAgICAgICBhc3NlcnQocmMpOwotCiAgICAgICAgIC8qCiAg ICAgICAgICAqIElmIGFuIGVycm9yIGlzIGVuY291bnRlcmVkIHdoaWxlIGluIGEgY2hlY2twb2lu dCwgcGFzcyBpdAogICAgICAgICAgKiBiYWNrIHRvIGxpYnhjLiAgVGhlIGZhaWx1cmUgd2lsbCBj b21lIGJhY2sgYXJvdW5kIHRvIHVzIHZpYQogICAgICAgICAgKiBsaWJ4bF9feGNfZG9tYWluX3Nh dmVfZG9uZSgpCiAgICAgICAgICAqLwogICAgICAgICBjaGVja3BvaW50X2RvbmUoZWdjLCBzdHJl YW0sIHJjKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChzdHJlYW0tPmluX2No ZWNrcG9pbnRfc3RhdGUpIHsKLSAgICAgICAgYXNzZXJ0KHJjKTsKLQorICAgICAgICBicmVhazsK KyAgICBjYXNlIFNXU19QSEFTRV9DSEVDS1BPSU5UX1NUQVRFOgogICAgICAgICAvKgogICAgICAg ICAgKiBJZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZCB3aGlsZSBpbiBhIGNoZWNrcG9pbnQsIHBh c3MgaXQKICAgICAgICAgICogYmFjayB0byBsaWJ4Yy4gIFRoZSBmYWlsdXJlIHdpbGwgY29tZSBi YWNrIGFyb3VuZCB0byB1cyB2aWEKQEAgLTYwNiwxNyArNTk5LDE1IEBAIHN0YXRpYyB2b2lkIHN0 cmVhbV9jb21wbGV0ZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAqICAgIGxpYnhsX19zdHJl YW1fd3JpdGVfYWJvcnQoKQogICAgICAgICAgKi8KICAgICAgICAgY2hlY2twb2ludF9zdGF0ZV9k b25lKGVnYywgc3RyZWFtLCByYyk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgYnJlYWs7CiAg ICAgfQotCi0gICAgc3RyZWFtX2RvbmUoZWdjLCBzdHJlYW0sIHJjKTsKIH0KIAogc3RhdGljIHZv aWQgc3RyZWFtX2RvbmUobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFtLCBpbnQgcmMpCiB7CiAgICAgYXNzZXJ0 KHN0cmVhbS0+cnVubmluZyk7Ci0gICAgYXNzZXJ0KCFzdHJlYW0tPmluX2NoZWNrcG9pbnRfc3Rh dGUpOworICAgIGFzc2VydChzdHJlYW0tPnBoYXNlICE9IFNXU19QSEFTRV9DSEVDS1BPSU5UX1NU QVRFKTsKICAgICBzdHJlYW0tPnJ1bm5pbmcgPSBmYWxzZTsKIAogICAgIGlmIChzdHJlYW0tPmVt dV9jYXJlZmQpCkBAIC02NDAsOSArNjMxLDkgQEAgc3RhdGljIHZvaWQgY2hlY2twb2ludF9kb25l KGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3Ry ZWFtX3dyaXRlX3N0YXRlICpzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IHJjKQogewotICAgIGFzc2VydChzdHJlYW0tPmluX2NoZWNrcG9pbnQpOworICAgIGFzc2VydChz dHJlYW0tPnBoYXNlID09IFNXU19QSEFTRV9DSEVDS1BPSU5UKTsKIAotICAgIHN0cmVhbS0+aW5f Y2hlY2twb2ludCA9IGZhbHNlOworICAgIHN0cmVhbS0+cGhhc2UgPSBTV1NfUEhBU0VfTk9STUFM OwogICAgIHN0cmVhbS0+Y2hlY2twb2ludF9jYWxsYmFjayhlZ2MsIHN0cmVhbSwgcmMpOwogfQog CkBAIC02OTksOSArNjkwLDggQEAgdm9pZCBsaWJ4bF9fc3RyZWFtX3dyaXRlX2NoZWNrcG9pbnRf c3RhdGUobGlieGxfX2VnYyAqZWdjLAogICAgIHN0cnVjdCBsaWJ4bF9fc3JfcmVjX2hkciByZWM7 CiAKICAgICBhc3NlcnQoc3RyZWFtLT5ydW5uaW5nKTsKLSAgICBhc3NlcnQoIXN0cmVhbS0+aW5f Y2hlY2twb2ludCk7Ci0gICAgYXNzZXJ0KCFzdHJlYW0tPmluX2NoZWNrcG9pbnRfc3RhdGUpOwot ICAgIHN0cmVhbS0+aW5fY2hlY2twb2ludF9zdGF0ZSA9IHRydWU7CisgICAgYXNzZXJ0KHN0cmVh bS0+cGhhc2UgPT0gU1dTX1BIQVNFX05PUk1BTCk7CisgICAgc3RyZWFtLT5waGFzZSA9IFNXU19Q SEFTRV9DSEVDS1BPSU5UX1NUQVRFOwogCiAgICAgRklMTFpFUk8ocmVjKTsKICAgICByZWMudHlw ZSA9IFJFQ19UWVBFX0NIRUNLUE9JTlRfU1RBVEU7CkBAIC03MjAsOCArNzEwLDggQEAgc3RhdGlj IHZvaWQgd3JpdGVfY2hlY2twb2ludF9zdGF0ZV9kb25lKGxpYnhsX19lZ2MgKmVnYywKIHN0YXRp YyB2b2lkIGNoZWNrcG9pbnRfc3RhdGVfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGF0ZSAqc3RyZWFt LCBpbnQgcmMpCiB7Ci0gICAgYXNzZXJ0KHN0cmVhbS0+aW5fY2hlY2twb2ludF9zdGF0ZSk7Ci0g ICAgc3RyZWFtLT5pbl9jaGVja3BvaW50X3N0YXRlID0gZmFsc2U7CisgICAgYXNzZXJ0KHN0cmVh bS0+cGhhc2UgPT0gU1dTX1BIQVNFX0NIRUNLUE9JTlRfU1RBVEUpOworICAgIHN0cmVhbS0+cGhh c2UgPSBTV1NfUEhBU0VfTk9STUFMOwogICAgIHN0cmVhbS0+Y2hlY2twb2ludF9jYWxsYmFjayhl Z2MsIHN0cmVhbSwgcmMpOwogfQogCi0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=