From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH v3 08/16] x86/hvm: rearrange content of hvm.h Date: Tue, 4 Sep 2018 17:15:25 +0100 Message-ID: <20180904161533.11575-9-wei.liu2@citrix.com> References: <20180904161533.11575-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fxDzR-0003H0-93 for xen-devel@lists.xenproject.org; Tue, 04 Sep 2018 16:15:41 +0000 In-Reply-To: <20180904161533.11575-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org TW92ZSBlbnVtIGFuZCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG8gZmlyc3QgaGFsZiBvZiB0aGUg ZmlsZS4KClN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGFuZCBtYWNyb3MsIHdoaWNoIHJlZmVyZW5j ZSBIVk0gc3BlY2lmaWMKZmllbGRzIGRpcmVjdGx5IGFyZSBncm91cGVkIHRvZ2V0aGVyIGluIHNl Y29uZCBoYWxmIG9mIHRoZSBmaWxlLgoKVGhlIG1vdmVtZW50IGlzIG5lZWRlZCBiZWNhdXNlIGlu IGEgbGF0ZXIgcGF0Y2ggdGhlIHNlY29uZCBoYWxmIGlzCmdvaW5nIHRvIGJlIGVuY2xvc2VkIGlu IENPTkZJR19IVk0uCgpQdXJlIGNvZGUgbW92ZW1lbnQuIE5vIGZ1bmN0aW9uYWwgY2hhbmdlLgoK U2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB4ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9odm0uaCB8IDE1OSArKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA3OSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaCBiL3hl bi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCmluZGV4IDZiMGUwODg3NTAuLjBjMzIxNDA5ZWUg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS14ODYvaHZtL2h2bS5oCkBAIC0yNTcsMTYgKzI1Nyw2IEBAIHZvaWQgaHZtX2dldF9n dWVzdF9wYXQoc3RydWN0IHZjcHUgKnYsIHU2NCAqZ3Vlc3RfcGF0KTsKIGludCBodm1fc2V0X2d1 ZXN0X3BhdChzdHJ1Y3QgdmNwdSAqdiwgdTY0IGd1ZXN0X3BhdCk7CiAKIHU2NCBodm1fZ2V0X2d1 ZXN0X3RzY19maXhlZChzdHJ1Y3QgdmNwdSAqdiwgdTY0IGF0X3RzYyk7Ci0jZGVmaW5lIGh2bV9n ZXRfZ3Vlc3RfdHNjKHYpIGh2bV9nZXRfZ3Vlc3RfdHNjX2ZpeGVkKHYsIDApCi0KLSNkZWZpbmUg aHZtX3RzY19zY2FsaW5nX3N1cHBvcnRlZCBcCi0gICAgKCEhaHZtX2Z1bmNzLnRzY19zY2FsaW5n LnJhdGlvX2ZyYWNfYml0cykKLQotI2RlZmluZSBodm1fZGVmYXVsdF90c2Nfc2NhbGluZ19yYXRp byBcCi0gICAgKDFVTEwgPDwgaHZtX2Z1bmNzLnRzY19zY2FsaW5nLnJhdGlvX2ZyYWNfYml0cykK LQotI2RlZmluZSBodm1fdHNjX3NjYWxpbmdfcmF0aW8oZCkgXAotICAgICgoZCktPmFyY2guaHZt LnRzY19zY2FsaW5nX3JhdGlvKQogCiB1NjQgaHZtX3NjYWxlX3RzYyhjb25zdCBzdHJ1Y3QgZG9t YWluICpkLCB1NjQgdHNjKTsKIHU2NCBodm1fZ2V0X3RzY19zY2FsaW5nX3JhdGlvKHUzMiBndHNj X2toeik7CkBAIC0yNzQsNyArMjY0LDYgQEAgdTY0IGh2bV9nZXRfdHNjX3NjYWxpbmdfcmF0aW8o dTMyIGd0c2Nfa2h6KTsKIHZvaWQgaHZtX2luaXRfZ3Vlc3RfdGltZShzdHJ1Y3QgZG9tYWluICpk KTsKIHZvaWQgaHZtX3NldF9ndWVzdF90aW1lKHN0cnVjdCB2Y3B1ICp2LCB1NjQgZ3Vlc3RfdGlt ZSk7CiB1aW50NjRfdCBodm1fZ2V0X2d1ZXN0X3RpbWVfZml4ZWQoY29uc3Qgc3RydWN0IHZjcHUg KnYsIHVpbnQ2NF90IGF0X3RzYyk7Ci0jZGVmaW5lIGh2bV9nZXRfZ3Vlc3RfdGltZSh2KSBodm1f Z2V0X2d1ZXN0X3RpbWVfZml4ZWQodiwgMCkKIAogaW50IHZtc2lfZGVsaXZlcigKICAgICBzdHJ1 Y3QgZG9tYWluICpkLCBpbnQgdmVjdG9yLApAQCAtMjg0LDYgKzI3Myw4NiBAQCBzdHJ1Y3QgaHZt X3BpcnFfZHBjaTsKIHZvaWQgdm1zaV9kZWxpdmVyX3BpcnEoc3RydWN0IGRvbWFpbiAqZCwgY29u c3Qgc3RydWN0IGh2bV9waXJxX2RwY2kgKik7CiBpbnQgaHZtX2dpcnFfZGVzdF8yX3ZjcHVfaWQo c3RydWN0IGRvbWFpbiAqZCwgdWludDhfdCBkZXN0LCB1aW50OF90IGRlc3RfbW9kZSk7CiAKK2Vu dW0gaHZtX2ludGJsaworaHZtX2ludGVycnVwdF9ibG9ja2VkKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1 Y3QgaHZtX2ludGFjayBpbnRhY2spOworCit2b2lkIGh2bV9oeXBlcmNhbGxfcGFnZV9pbml0aWFs aXNlKHN0cnVjdCBkb21haW4gKmQsIHZvaWQgKmh5cGVyY2FsbF9wYWdlKTsKKwordm9pZCBodm1f Z2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYsIGVudW0geDg2X3NlZ21lbnQgc2Vn LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIg KnJlZyk7Cit2b2lkIGh2bV9zZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51 bSB4ODZfc2VnbWVudCBzZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg c2VnbWVudF9yZWdpc3RlciAqcmVnKTsKKworYm9vbCBodm1fc2V0X2d1ZXN0X2JuZGNmZ3Moc3Ry dWN0IHZjcHUgKnYsIHU2NCB2YWwpOworCitib29sIGh2bV9jaGVja19jcHVpZF9mYXVsdGluZyhz dHJ1Y3QgdmNwdSAqdik7Cit2b2lkIGh2bV9taWdyYXRlX3RpbWVycyhzdHJ1Y3QgdmNwdSAqdik7 Cit2b2lkIGh2bV9kb19yZXN1bWUoc3RydWN0IHZjcHUgKnYpOwordm9pZCBodm1fbWlncmF0ZV9w aXJxcyhzdHJ1Y3QgdmNwdSAqdik7CisKK3ZvaWQgaHZtX2luamVjdF9ldmVudChjb25zdCBzdHJ1 Y3QgeDg2X2V2ZW50ICpldmVudCk7CisKK2ludCBodm1fZXZlbnRfbmVlZHNfcmVpbmplY3Rpb24o dWludDhfdCB0eXBlLCB1aW50OF90IHZlY3Rvcik7CisKK3VpbnQ4X3QgaHZtX2NvbWJpbmVfaHdf ZXhjZXB0aW9ucyh1aW50OF90IHZlYzEsIHVpbnQ4X3QgdmVjMik7CisKK3ZvaWQgaHZtX3NldF9y ZHRzY19leGl0aW5nKHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCBlbmFibGUpOworCitlbnVtIGh2 bV90YXNrX3N3aXRjaF9yZWFzb24geyBUU1dfam1wLCBUU1dfaXJldCwgVFNXX2NhbGxfb3JfaW50 IH07Cit2b2lkIGh2bV90YXNrX3N3aXRjaCgKKyAgICB1aW50MTZfdCB0c3Nfc2VsLCBlbnVtIGh2 bV90YXNrX3N3aXRjaF9yZWFzb24gdGFza3N3aXRjaF9yZWFzb24sCisgICAgaW50MzJfdCBlcnJj b2RlKTsKKworZW51bSBodm1fYWNjZXNzX3R5cGUgeworICAgIGh2bV9hY2Nlc3NfaW5zbl9mZXRj aCwKKyAgICBodm1fYWNjZXNzX25vbmUsCisgICAgaHZtX2FjY2Vzc19yZWFkLAorICAgIGh2bV9h Y2Nlc3Nfd3JpdGUKK307Citib29sX3QgaHZtX3ZpcnR1YWxfdG9fbGluZWFyX2FkZHIoCisgICAg ZW51bSB4ODZfc2VnbWVudCBzZWcsCisgICAgY29uc3Qgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIg KnJlZywKKyAgICB1bnNpZ25lZCBsb25nIG9mZnNldCwKKyAgICB1bnNpZ25lZCBpbnQgYnl0ZXMs CisgICAgZW51bSBodm1fYWNjZXNzX3R5cGUgYWNjZXNzX3R5cGUsCisgICAgY29uc3Qgc3RydWN0 IHNlZ21lbnRfcmVnaXN0ZXIgKmFjdGl2ZV9jcywKKyAgICB1bnNpZ25lZCBsb25nICpsaW5lYXJf YWRkcik7CisKK3ZvaWQgKmh2bV9tYXBfZ3Vlc3RfZnJhbWVfcncodW5zaWduZWQgbG9uZyBnZm4s IGJvb2xfdCBwZXJtYW5lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCAq d3JpdGFibGUpOwordm9pZCAqaHZtX21hcF9ndWVzdF9mcmFtZV9ybyh1bnNpZ25lZCBsb25nIGdm biwgYm9vbF90IHBlcm1hbmVudCk7Cit2b2lkIGh2bV91bm1hcF9ndWVzdF9mcmFtZSh2b2lkICpw LCBib29sX3QgcGVybWFuZW50KTsKK3ZvaWQgaHZtX21hcHBlZF9ndWVzdF9mcmFtZXNfbWFya19k aXJ0eShzdHJ1Y3QgZG9tYWluICopOworCitpbnQgaHZtX2RlYnVnX29wKHN0cnVjdCB2Y3B1ICp2 LCBpbnQzMl90IG9wKTsKKworLyogQ2FsbGVyIHNob3VsZCBwYXVzZSB2Y3B1IGJlZm9yZSBjYWxs aW5nIHRoaXMgZnVuY3Rpb24gKi8KK3ZvaWQgaHZtX3RvZ2dsZV9zaW5nbGVzdGVwKHN0cnVjdCB2 Y3B1ICp2KTsKKworaW50IGh2bV9oYXBfbmVzdGVkX3BhZ2VfZmF1bHQocGFkZHJfdCBncGEsIHVu c2lnbmVkIGxvbmcgZ2xhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5w ZmVjIG5wZmVjKTsKKworaW50IGh2bV94MmFwaWNfbXNyX3JlYWQoc3RydWN0IHZjcHUgKnYsIHVu c2lnbmVkIGludCBtc3IsIHVpbnQ2NF90ICptc3JfY29udGVudCk7CitpbnQgaHZtX3gyYXBpY19t c3Jfd3JpdGUoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1zcl9j b250ZW50KTsKKworLyogQ2hlY2sgQ1I0L0VGRVIgdmFsdWVzICovCitjb25zdCBjaGFyICpodm1f ZWZlcl92YWxpZChjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDY0X3QgdmFsdWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICBzaWduZWQgaW50IGNyMF9wZyk7Cit1bnNpZ25lZCBsb25nIGh2 bV9jcjRfZ3Vlc3RfdmFsaWRfYml0cyhjb25zdCBzdHJ1Y3QgZG9tYWluICpkLCBib29sIHJlc3Rv cmUpOworCisjZGVmaW5lIGh2bV9nZXRfZ3Vlc3RfdHNjKHYpIGh2bV9nZXRfZ3Vlc3RfdHNjX2Zp eGVkKHYsIDApCisKKyNkZWZpbmUgaHZtX3RzY19zY2FsaW5nX3N1cHBvcnRlZCBcCisgICAgKCEh aHZtX2Z1bmNzLnRzY19zY2FsaW5nLnJhdGlvX2ZyYWNfYml0cykKKworI2RlZmluZSBodm1fZGVm YXVsdF90c2Nfc2NhbGluZ19yYXRpbyBcCisgICAgKDFVTEwgPDwgaHZtX2Z1bmNzLnRzY19zY2Fs aW5nLnJhdGlvX2ZyYWNfYml0cykKKworI2RlZmluZSBodm1fdHNjX3NjYWxpbmdfcmF0aW8oZCkg XAorICAgICgoZCktPmFyY2guaHZtLnRzY19zY2FsaW5nX3JhdGlvKQorCisjZGVmaW5lIGh2bV9n ZXRfZ3Vlc3RfdGltZSh2KSBodm1fZ2V0X2d1ZXN0X3RpbWVfZml4ZWQodiwgMCkKKwogI2RlZmlu ZSBodm1fcGFnaW5nX2VuYWJsZWQodikgXAogICAgICghISgodiktPmFyY2guaHZtLmd1ZXN0X2Ny WzBdICYgWDg2X0NSMF9QRykpCiAjZGVmaW5lIGh2bV93cF9lbmFibGVkKHYpIFwKQEAgLTMwNyw5 ICszNzYsNiBAQCBpbnQgaHZtX2dpcnFfZGVzdF8yX3ZjcHVfaWQoc3RydWN0IGRvbWFpbiAqZCwg dWludDhfdCBkZXN0LCB1aW50OF90IGRlc3RfbW9kZSk7CiAKICNkZWZpbmUgaHZtX2xvbmdfbW9k ZV9hY3RpdmUodikgKCEhKCh2KS0+YXJjaC5odm0uZ3Vlc3RfZWZlciAmIEVGRVJfTE1BKSkKIAot ZW51bSBodm1faW50YmxrCi1odm1faW50ZXJydXB0X2Jsb2NrZWQoc3RydWN0IHZjcHUgKnYsIHN0 cnVjdCBodm1faW50YWNrIGludGFjayk7Ci0KIHN0YXRpYyBpbmxpbmUgaW50CiBodm1fZ3Vlc3Rf eDg2X21vZGUoc3RydWN0IHZjcHUgKnYpCiB7CkBAIC0zNjMsMjAgKzQyOSwxMiBAQCBzdGF0aWMg aW5saW5lIHZvaWQgaHZtX2ZsdXNoX2d1ZXN0X3RsYnModm9pZCkKICAgICAgICAgaHZtX2FzaWRf Zmx1c2hfY29yZSgpOwogfQogCi12b2lkIGh2bV9oeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlKHN0 cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQg Kmh5cGVyY2FsbF9wYWdlKTsKLQogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKIGh2bV9nZXRf Y3BsKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIHJldHVybiBodm1fZnVuY3MuZ2V0X2NwbCh2KTsK IH0KIAotdm9pZCBodm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYsIGVudW0g eDg2X3NlZ21lbnQgc2VnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNl Z21lbnRfcmVnaXN0ZXIgKnJlZyk7Ci12b2lkIGh2bV9zZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1 Y3QgdmNwdSAqdiwgZW51bSB4ODZfc2VnbWVudCBzZWcsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlciAqcmVnKTsKLQogc3RhdGljIGlubGluZSB1 bnNpZ25lZCBsb25nIGh2bV9nZXRfc2hhZG93X2dzX2Jhc2Uoc3RydWN0IHZjcHUgKnYpCiB7CiAg ICAgcmV0dXJuIGh2bV9mdW5jcy5nZXRfc2hhZG93X2dzX2Jhc2Uodik7CkBAIC0zODgsOCArNDQ2 LDYgQEAgc3RhdGljIGlubGluZSBib29sIGh2bV9nZXRfZ3Vlc3RfYm5kY2ZncyhzdHJ1Y3QgdmNw dSAqdiwgdTY0ICp2YWwpCiAgICAgICAgICAgIGh2bV9mdW5jcy5nZXRfZ3Vlc3RfYm5kY2Zncyh2 LCB2YWwpOwogfQogCi1ib29sIGh2bV9zZXRfZ3Vlc3RfYm5kY2ZncyhzdHJ1Y3QgdmNwdSAqdiwg dTY0IHZhbCk7Ci0KICNkZWZpbmUgaGFzX2h2bV9wYXJhbXMoZCkgXAogICAgICgoZCktPmFyY2gu aHZtLnBhcmFtcyAhPSBOVUxMKQogCkBAIC00MDUsMTMgKzQ2MSw2IEBAIGJvb2wgaHZtX3NldF9n dWVzdF9ibmRjZmdzKHN0cnVjdCB2Y3B1ICp2LCB1NjQgdmFsKTsKICNkZWZpbmUgaGFzX3Zpcmlk aWFuX2FwaWNfYXNzaXN0KGQpIFwKICAgICAoaXNfdmlyaWRpYW5fZG9tYWluKGQpICYmICh2aXJp ZGlhbl9mZWF0dXJlX21hc2soZCkgJiBIVk1QVl9hcGljX2Fzc2lzdCkpCiAKLWJvb2wgaHZtX2No ZWNrX2NwdWlkX2ZhdWx0aW5nKHN0cnVjdCB2Y3B1ICp2KTsKLXZvaWQgaHZtX21pZ3JhdGVfdGlt ZXJzKHN0cnVjdCB2Y3B1ICp2KTsKLXZvaWQgaHZtX2RvX3Jlc3VtZShzdHJ1Y3QgdmNwdSAqdik7 Ci12b2lkIGh2bV9taWdyYXRlX3BpcnFzKHN0cnVjdCB2Y3B1ICp2KTsKLQotdm9pZCBodm1faW5q ZWN0X2V2ZW50KGNvbnN0IHN0cnVjdCB4ODZfZXZlbnQgKmV2ZW50KTsKLQogc3RhdGljIGlubGlu ZSB2b2lkIGh2bV9pbmplY3RfZXhjZXB0aW9uKAogICAgIHVuc2lnbmVkIGludCB2ZWN0b3IsIHVu c2lnbmVkIGludCB0eXBlLAogICAgIHVuc2lnbmVkIGludCBpbnNuX2xlbiwgaW50IGVycm9yX2Nv ZGUpCkBAIC00NjgsMTIgKzUxNyw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBodm1faW52bHBnKHN0 cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGxpbmVhcikKICAgICAgICAgICAgICAgICAgICAg ICAgKDFVIDw8IFRSQVBfYWxpZ25tZW50X2NoZWNrKSB8IFwKICAgICAgICAgICAgICAgICAgICAg ICAgKDFVIDw8IFRSQVBfbWFjaGluZV9jaGVjaykpCiAKLWludCBodm1fZXZlbnRfbmVlZHNfcmVp bmplY3Rpb24odWludDhfdCB0eXBlLCB1aW50OF90IHZlY3Rvcik7Ci0KLXVpbnQ4X3QgaHZtX2Nv bWJpbmVfaHdfZXhjZXB0aW9ucyh1aW50OF90IHZlYzEsIHVpbnQ4X3QgdmVjMik7Ci0KLXZvaWQg aHZtX3NldF9yZHRzY19leGl0aW5nKHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCBlbmFibGUpOwot CiBzdGF0aWMgaW5saW5lIGludCBodm1fY3B1X3VwKHZvaWQpCiB7CiAgICAgcmV0dXJuIChodm1f ZnVuY3MuY3B1X3VwID8gaHZtX2Z1bmNzLmNwdV91cCgpIDogMCk7CkBAIC00OTAsNDMgKzUzMywx MiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBodm1fZ2V0X2luc25fYnl0ZXMoc3RydWN0 IHZjcHUgKnYsIHVpbnQ4X3QgKmJ1ZikKICAgICByZXR1cm4gKGh2bV9mdW5jcy5nZXRfaW5zbl9i eXRlcyA/IGh2bV9mdW5jcy5nZXRfaW5zbl9ieXRlcyh2LCBidWYpIDogMCk7CiB9CiAKLWVudW0g aHZtX3Rhc2tfc3dpdGNoX3JlYXNvbiB7IFRTV19qbXAsIFRTV19pcmV0LCBUU1dfY2FsbF9vcl9p bnQgfTsKLXZvaWQgaHZtX3Rhc2tfc3dpdGNoKAotICAgIHVpbnQxNl90IHRzc19zZWwsIGVudW0g aHZtX3Rhc2tfc3dpdGNoX3JlYXNvbiB0YXNrc3dpdGNoX3JlYXNvbiwKLSAgICBpbnQzMl90IGVy cmNvZGUpOwotCi1lbnVtIGh2bV9hY2Nlc3NfdHlwZSB7Ci0gICAgaHZtX2FjY2Vzc19pbnNuX2Zl dGNoLAotICAgIGh2bV9hY2Nlc3Nfbm9uZSwKLSAgICBodm1fYWNjZXNzX3JlYWQsCi0gICAgaHZt X2FjY2Vzc193cml0ZQotfTsKLWJvb2xfdCBodm1fdmlydHVhbF90b19saW5lYXJfYWRkcigKLSAg ICBlbnVtIHg4Nl9zZWdtZW50IHNlZywKLSAgICBjb25zdCBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3Rl ciAqcmVnLAotICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAotICAgIHVuc2lnbmVkIGludCBieXRl cywKLSAgICBlbnVtIGh2bV9hY2Nlc3NfdHlwZSBhY2Nlc3NfdHlwZSwKLSAgICBjb25zdCBzdHJ1 Y3Qgc2VnbWVudF9yZWdpc3RlciAqYWN0aXZlX2NzLAotICAgIHVuc2lnbmVkIGxvbmcgKmxpbmVh cl9hZGRyKTsKLQotdm9pZCAqaHZtX21hcF9ndWVzdF9mcmFtZV9ydyh1bnNpZ25lZCBsb25nIGdm biwgYm9vbF90IHBlcm1hbmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbF90 ICp3cml0YWJsZSk7Ci12b2lkICpodm1fbWFwX2d1ZXN0X2ZyYW1lX3JvKHVuc2lnbmVkIGxvbmcg Z2ZuLCBib29sX3QgcGVybWFuZW50KTsKLXZvaWQgaHZtX3VubWFwX2d1ZXN0X2ZyYW1lKHZvaWQg KnAsIGJvb2xfdCBwZXJtYW5lbnQpOwotdm9pZCBodm1fbWFwcGVkX2d1ZXN0X2ZyYW1lc19tYXJr X2RpcnR5KHN0cnVjdCBkb21haW4gKik7Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCBodm1fc2V0X2lu Zm9fZ3Vlc3Qoc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgaWYgKCBodm1fZnVuY3Muc2V0X2luZm9f Z3Vlc3QgKQogICAgICAgICByZXR1cm4gaHZtX2Z1bmNzLnNldF9pbmZvX2d1ZXN0KHYpOwogfQog Ci1pbnQgaHZtX2RlYnVnX29wKHN0cnVjdCB2Y3B1ICp2LCBpbnQzMl90IG9wKTsKLQotLyogQ2Fs bGVyIHNob3VsZCBwYXVzZSB2Y3B1IGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gKi8KLXZv aWQgaHZtX3RvZ2dsZV9zaW5nbGVzdGVwKHN0cnVjdCB2Y3B1ICp2KTsKLQogc3RhdGljIGlubGlu ZSB2b2lkIGh2bV9pbnZhbGlkYXRlX3JlZ3NfZmllbGRzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpy ZWdzKQogewogI2lmbmRlZiBOREVCVUcKQEAgLTU0MiwxOCArNTU0LDEyIEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBodm1faW52YWxpZGF0ZV9yZWdzX2ZpZWxkcyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKICNlbmRpZgogfQogCi1pbnQgaHZtX2hhcF9uZXN0ZWRfcGFnZV9mYXVsdChwYWRkcl90 IGdwYSwgdW5zaWduZWQgbG9uZyBnbGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgbnBmZWMgbnBmZWMpOwotCiAjZGVmaW5lIGh2bV9tc3JfdHNjX2F1eCh2KSAoeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHN0cnVjdCBk b21haW4gKl9fZCA9ICh2KS0+ZG9tYWluOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAoX19kLT5hcmNoLnRzY19tb2RlID09IFRTQ19NT0RFX1BWUkRUU0NQKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgID8gKHUzMilfX2QtPmFyY2gu aW5jYXJuYXRpb24gOiAodTMyKSh2KS0+YXJjaC5odm0ubXNyX3RzY19hdXg7ICAgICAgXAogfSkK IAotaW50IGh2bV94MmFwaWNfbXNyX3JlYWQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBt c3IsIHVpbnQ2NF90ICptc3JfY29udGVudCk7Ci1pbnQgaHZtX3gyYXBpY19tc3Jfd3JpdGUoc3Ry dWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1zcl9jb250ZW50KTsKLQog LyoKICAqIE5lc3RlZCBIVk0KICAqLwpAQCAtNjU3LDExICs2NjMsNiBAQCBzdGF0aWMgaW5saW5l IGJvb2wgYWx0cDJtX3ZjcHVfZW11bGF0ZV92ZShzdHJ1Y3QgdmNwdSAqdikKICAgICByZXR1cm4g ZmFsc2U7CiB9CiAKLS8qIENoZWNrIENSNC9FRkVSIHZhbHVlcyAqLwotY29uc3QgY2hhciAqaHZt X2VmZXJfdmFsaWQoY29uc3Qgc3RydWN0IHZjcHUgKnYsIHVpbnQ2NF90IHZhbHVlLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGludCBjcjBfcGcpOwotdW5zaWduZWQgbG9uZyBo dm1fY3I0X2d1ZXN0X3ZhbGlkX2JpdHMoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwgYm9vbCByZXN0 b3JlKTsKLQogLyoKICAqIFRoaXMgbXVzdCBiZSBkZWZpbmVkIGFzIGEgbWFjcm8gaW5zdGVhZCBv ZiBhbiBpbmxpbmUgZnVuY3Rpb24sCiAgKiBiZWNhdXNlIGl0IHVzZXMgJ3N0cnVjdCB2Y3B1JyBh bmQgJ3N0cnVjdCBkb21haW4nIHdoaWNoIGhhdmUKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=