From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PULL 05/21] xen: use libxendevicemodel when available Date: Fri, 21 Apr 2017 13:14:46 -0700 Message-ID: <1492805702-19690-5-git-send-email-sstabellini@kernel.org> References: <1492805702-19690-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d1exc-0008Rj-2o for xen-devel@lists.xenproject.org; Fri, 21 Apr 2017 20:15:20 +0000 In-Reply-To: <1492805702-19690-1-git-send-email-sstabellini@kernel.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: peter.maydell@linaro.org Cc: sstabellini@kernel.org, stefanha@gmail.com, qemu-devel@nongnu.org, Paul Durrant , stefanha@redhat.com, anthony.perard@citrix.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org RnJvbTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KClRoaXMgcGF0Y2gg bW9kaWZpZXMgdGhlIHdyYXBwZXIgZnVuY3Rpb25zIGluIHhlbl9jb21tb24uaCB0byB1c2UgdGhl Cm5ldyB4ZW5kZXZpY2Vtb2RlbCBpbnRlcmZhY2UgaWYgaXQgaXMgYXZhaWxhYmxlIGFsb25nIHdp dGggY29tcGF0aWJpbGl0eQpjb2RlIHRvIHVzZSB0aGUgb2xkIGxpYnhlbmN0cmwgaW50ZXJmYWNl IGlmIGl0IGlzIG5vdC4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50 QGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxp bmlAa2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6IEFudGhvbnkgUGVyYXJkIDxhbnRob255LnBlcmFy ZEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGlu aUBrZXJuZWwub3JnPgotLS0KIGluY2x1ZGUvaHcveGVuL3hlbl9jb21tb24uaCB8IDIwMyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogeGVuLWNvbW1vbi5jICAg ICAgICAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDE3OCBpbnNlcnRpb25zKCsp LCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9u LmggYi9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9uLmgKaW5kZXggMzFjZjI1Zi4uYjFmNWY1MyAx MDA2NDQKLS0tIGEvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvaHcv eGVuL3hlbl9jb21tb24uaApAQCAtMjYsNDggKzI2LDE4NCBAQCBleHRlcm4geGNfaW50ZXJmYWNl ICp4ZW5feGM7CiAgKiBXZSBkb24ndCBzdXBwb3J0IFhlbiBwcmlvciB0byA0LjIuMC4KICAqLwog CisjaWYgQ09ORklHX1hFTl9DVFJMX0lOVEVSRkFDRV9WRVJTSU9OIDwgNDkwCisKK3R5cGVkZWYg eGNfaW50ZXJmYWNlIHhlbmRldmljZW1vZGVsX2hhbmRsZTsKKworc3RhdGljIGlubGluZSB4ZW5k ZXZpY2Vtb2RlbF9oYW5kbGUgKnhlbmRldmljZW1vZGVsX29wZW4oCisgICAgc3RydWN0IHhlbnRv b2xsb2dfbG9nZ2VyICpsb2dnZXIsIHVuc2lnbmVkIGludCBvcGVuX2ZsYWdzKQoreworICAgIHJl dHVybiB4ZW5feGM7Cit9CisKKyNpZiBDT05GSUdfWEVOX0NUUkxfSU5URVJGQUNFX1ZFUlNJT04g Pj0gNDUwCisKK3N0YXRpYyBpbmxpbmUgaW50IHhlbmRldmljZW1vZGVsX2NyZWF0ZV9pb3JlcV9z ZXJ2ZXIoCisgICAgeGVuZGV2aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCBp bnQgaGFuZGxlX2J1ZmlvcmVxLAorICAgIGlvc2VydmlkX3QgKmlkKQoreworICAgIHJldHVybiB4 Y19odm1fY3JlYXRlX2lvcmVxX3NlcnZlcihkbW9kLCBkb21pZCwgaGFuZGxlX2J1ZmlvcmVxLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCk7Cit9CisKK3N0YXRpYyBp bmxpbmUgaW50IHhlbmRldmljZW1vZGVsX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbygKKyAgICB4ZW5k ZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsIGlvc2VydmlkX3QgaWQsCisg ICAgeGVuX3Bmbl90ICppb3JlcV9wZm4sIHhlbl9wZm5fdCAqYnVmaW9yZXFfcGZuLAorICAgIGV2 dGNobl9wb3J0X3QgKmJ1ZmlvcmVxX3BvcnQpCit7CisgICAgcmV0dXJuIHhjX2h2bV9nZXRfaW9y ZXFfc2VydmVyX2luZm8oZG1vZCwgZG9taWQsIGlkLCBpb3JlcV9wZm4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmaW9yZXFfcGZuLCBidWZpb3JlcV9wb3J0KTsK K30KKworc3RhdGljIGlubGluZSBpbnQgeGVuZGV2aWNlbW9kZWxfbWFwX2lvX3JhbmdlX3RvX2lv cmVxX3NlcnZlcigKKyAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9t aWQsIGlvc2VydmlkX3QgaWQsIGludCBpc19tbWlvLAorICAgIHVpbnQ2NF90IHN0YXJ0LCB1aW50 NjRfdCBlbmQpCit7CisgICAgcmV0dXJuIHhjX2h2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2Vy dmVyKGRtb2QsIGRvbWlkLCBpZCwgaXNfbW1pbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RhcnQsIGVuZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50 IHhlbmRldmljZW1vZGVsX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKAorICAgIHhl bmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgaW9zZXJ2aWRfdCBpZCwg aW50IGlzX21taW8sCisgICAgdWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGVuZCkKK3sKKyAgICBy ZXR1cm4geGNfaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKGRtb2QsIGRvbWlk LCBpZCwgaXNfbW1pbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXJ0LCBlbmQpOworfQorCitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vt b2RlbF9tYXBfcGNpZGV2X3RvX2lvcmVxX3NlcnZlcigKKyAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5k bGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsIGlvc2VydmlkX3QgaWQsCisgICAgdWludDE2X3Qgc2Vn bWVudCwgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNlLCB1aW50OF90IGZ1bmN0aW9uKQorewor ICAgIHJldHVybiB4Y19odm1fbWFwX3BjaWRldl90b19pb3JlcV9zZXJ2ZXIoZG1vZCwgZG9taWQs IGlkLCBzZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnVzLCBkZXZpY2UsIGZ1bmN0aW9uKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgeGVuZGV2 aWNlbW9kZWxfdW5tYXBfcGNpZGV2X2Zyb21faW9yZXFfc2VydmVyKAorICAgIHhlbmRldmljZW1v ZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgaW9zZXJ2aWRfdCBpZCwKKyAgICB1aW50 MTZfdCBzZWdtZW50LCB1aW50OF90IGJ1cywgdWludDhfdCBkZXZpY2UsIHVpbnQ4X3QgZnVuY3Rp b24pCit7CisgICAgcmV0dXJuIHhjX2h2bV91bm1hcF9wY2lkZXZfZnJvbV9pb3JlcV9zZXJ2ZXIo ZG1vZCwgZG9taWQsIGlkLCBzZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJ1cywgZGV2aWNlLCBmdW5jdGlvbik7Cit9CisKK3N0YXRpYyBp bmxpbmUgaW50IHhlbmRldmljZW1vZGVsX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKAorICAgIHhlbmRl dmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgaW9zZXJ2aWRfdCBpZCkKK3sK KyAgICByZXR1cm4geGNfaHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKGRtb2QsIGRvbWlkLCBpZCk7 Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHhlbmRldmljZW1vZGVsX3NldF9pb3JlcV9zZXJ2ZXJf c3RhdGUoCisgICAgeGVuZGV2aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCBp b3NlcnZpZF90IGlkLCBpbnQgZW5hYmxlZCkKK3sKKyAgICByZXR1cm4geGNfaHZtX3NldF9pb3Jl cV9zZXJ2ZXJfc3RhdGUoZG1vZCwgZG9taWQsIGlkLCBlbmFibGVkKTsKK30KKworI2VuZGlmIC8q IENPTkZJR19YRU5fQ1RSTF9JTlRFUkZBQ0VfVkVSU0lPTiA+PSA0NTAgKi8KKworc3RhdGljIGlu bGluZSBpbnQgeGVuZGV2aWNlbW9kZWxfc2V0X3BjaV9pbnR4X2xldmVsKAorICAgIHhlbmRldmlj ZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgdWludDE2X3Qgc2VnbWVudCwKKyAg ICB1aW50OF90IGJ1cywgdWludDhfdCBkZXZpY2UsIHVpbnQ4X3QgaW50eCwgdW5zaWduZWQgaW50 IGxldmVsKQoreworICAgIHJldHVybiB4Y19odm1fc2V0X3BjaV9pbnR4X2xldmVsKGRtb2QsIGRv bWlkLCBzZWdtZW50LCBidXMsIGRldmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnR4LCBsZXZlbCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHhlbmRldmljZW1v ZGVsX3NldF9pc2FfaXJxX2xldmVsKAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwg ZG9taWRfdCBkb21pZCwgdWludDhfdCBpcnEsCisgICAgdW5zaWduZWQgaW50IGxldmVsKQorewor ICAgIHJldHVybiB4Y19odm1fc2V0X2lzYV9pcnFfbGV2ZWwoZG1vZCwgZG9taWQsIGlycSwgbGV2 ZWwpOworfQorCitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vtb2RlbF9zZXRfcGNpX2xpbmtf cm91dGUoCisgICAgeGVuZGV2aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCB1 aW50OF90IGxpbmssIHVpbnQ4X3QgaXJxKQoreworICAgIHJldHVybiB4Y19odm1fc2V0X3BjaV9s aW5rX3JvdXRlKGRtb2QsIGRvbWlkLCBsaW5rLCBpcnEpOworfQorCitzdGF0aWMgaW5saW5lIGlu dCB4ZW5kZXZpY2Vtb2RlbF9pbmplY3RfbXNpKAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAq ZG1vZCwgZG9taWRfdCBkb21pZCwgdWludDY0X3QgbXNpX2FkZHIsCisgICAgdWludDMyX3QgbXNp X2RhdGEpCit7CisgICAgcmV0dXJuIHhjX2h2bV9pbmplY3RfbXNpKGRtb2QsIGRvbWlkLCBtc2lf YWRkciwgbXNpX2RhdGEpOworfQorCitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vtb2RlbF90 cmFja19kaXJ0eV92cmFtKAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRf dCBkb21pZCwgdWludDY0X3QgZmlyc3RfcGZuLAorICAgIHVpbnQzMl90IG5yLCB1bnNpZ25lZCBs b25nICpkaXJ0eV9iaXRtYXApCit7CisgICAgcmV0dXJuIHhjX2h2bV90cmFja19kaXJ0eV92cmFt KGRtb2QsIGRvbWlkLCBmaXJzdF9wZm4sIG5yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkaXJ0eV9iaXRtYXApOworfQorCitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vt b2RlbF9tb2RpZmllZF9tZW1vcnkoCisgICAgeGVuZGV2aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBk b21pZF90IGRvbWlkLCB1aW50NjRfdCBmaXJzdF9wZm4sCisgICAgdWludDMyX3QgbnIpCit7Cisg ICAgcmV0dXJuIHhjX2h2bV9tb2RpZmllZF9tZW1vcnkoZG1vZCwgZG9taWQsIGZpcnN0X3Bmbiwg bnIpOworfQorCitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vtb2RlbF9zZXRfbWVtX3R5cGUo CisgICAgeGVuZGV2aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCBodm1tZW1f dHlwZV90IG1lbV90eXBlLAorICAgIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDMyX3QgbnIpCit7 CisgICAgcmV0dXJuIHhjX2h2bV9zZXRfbWVtX3R5cGUoZG1vZCwgZG9taWQsIG1lbV90eXBlLCBm aXJzdF9wZm4sIG5yKTsKK30KKworI2Vsc2UgLyogQ09ORklHX1hFTl9DVFJMX0lOVEVSRkFDRV9W RVJTSU9OID49IDQ5MCAqLworCisjdW5kZWYgWENfV0FOVF9DT01QQVRfREVWSUNFTU9ERUxfQVBJ CisjaW5jbHVkZSA8eGVuZGV2aWNlbW9kZWwuaD4KKworI2VuZGlmCisKK2V4dGVybiB4ZW5kZXZp Y2Vtb2RlbF9oYW5kbGUgKnhlbl9kbW9kOworCiBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0X21l bV90eXBlKGRvbWlkX3QgZG9taWQsIGh2bW1lbV90eXBlX3QgdHlwZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBucikKIHsK LSAgICByZXR1cm4geGNfaHZtX3NldF9tZW1fdHlwZSh4ZW5feGMsIGRvbWlkLCB0eXBlLCBmaXJz dF9wZm4sIG5yKTsKKyAgICByZXR1cm4geGVuZGV2aWNlbW9kZWxfc2V0X21lbV90eXBlKHhlbl9k bW9kLCBkb21pZCwgdHlwZSwgZmlyc3RfcGZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbnIpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0X3BjaV9pbnR4 X2xldmVsKGRvbWlkX3QgZG9taWQsIHVpbnQxNl90IHNlZ21lbnQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBpbnR4LCB1bnNp Z25lZCBpbnQgbGV2ZWwpCiB7Ci0gICAgcmV0dXJuIHhjX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwo eGVuX3hjLCBkb21pZCwgc2VnbWVudCwgYnVzLCBkZXZpY2UsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50eCwgbGV2ZWwpOworICAgIHJldHVybiB4ZW5kZXZpY2Vtb2Rl bF9zZXRfcGNpX2ludHhfbGV2ZWwoeGVuX2Rtb2QsIGRvbWlkLCBzZWdtZW50LCBidXMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2UsIGludHgsIGxl dmVsKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgeGVuX3NldF9wY2lfbGlua19yb3V0ZShkb21p ZF90IGRvbWlkLCB1aW50OF90IGxpbmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQ4X3QgaXJxKQogewotICAgIHJldHVybiB4Y19odm1fc2V0X3BjaV9saW5r X3JvdXRlKHhlbl94YywgZG9taWQsIGxpbmssIGlycSk7CisgICAgcmV0dXJuIHhlbmRldmljZW1v ZGVsX3NldF9wY2lfbGlua19yb3V0ZSh4ZW5fZG1vZCwgZG9taWQsIGxpbmssIGlycSk7CiB9CiAK IHN0YXRpYyBpbmxpbmUgaW50IHhlbl9pbmplY3RfbXNpKGRvbWlkX3QgZG9taWQsIHVpbnQ2NF90 IG1zaV9hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbXNp X2RhdGEpCiB7Ci0gICAgcmV0dXJuIHhjX2h2bV9pbmplY3RfbXNpKHhlbl94YywgZG9taWQsIG1z aV9hZGRyLCBtc2lfZGF0YSk7CisgICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX2luamVjdF9tc2ko eGVuX2Rtb2QsIGRvbWlkLCBtc2lfYWRkciwgbXNpX2RhdGEpOwogfQogCiBzdGF0aWMgaW5saW5l IGludCB4ZW5fc2V0X2lzYV9pcnFfbGV2ZWwoZG9taWRfdCBkb21pZCwgdWludDhfdCBpcnEsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxldmVs KQogewotICAgIHJldHVybiB4Y19odm1fc2V0X2lzYV9pcnFfbGV2ZWwoeGVuX3hjLCBkb21pZCwg aXJxLCBsZXZlbCk7CisgICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX3NldF9pc2FfaXJxX2xldmVs KHhlbl9kbW9kLCBkb21pZCwgaXJxLCBsZXZlbCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHhl bl90cmFja19kaXJ0eV92cmFtKGRvbWlkX3QgZG9taWQsIHVpbnQ2NF90IGZpcnN0X3BmbiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5yLCB1bnNpZ25l ZCBsb25nICpiaXRtYXApCiB7Ci0gICAgcmV0dXJuIHhjX2h2bV90cmFja19kaXJ0eV92cmFtKHhl bl94YywgZG9taWQsIGZpcnN0X3BmbiwgbnIsIGJpdG1hcCk7CisgICAgcmV0dXJuIHhlbmRldmlj ZW1vZGVsX3RyYWNrX2RpcnR5X3ZyYW0oeGVuX2Rtb2QsIGRvbWlkLCBmaXJzdF9wZm4sIG5yLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdG1hcCk7CiB9CiAK IHN0YXRpYyBpbmxpbmUgaW50IHhlbl9tb2RpZmllZF9tZW1vcnkoZG9taWRfdCBkb21pZCwgdWlu dDY0X3QgZmlyc3RfcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCBucikKIHsKLSAgICByZXR1cm4geGNfaHZtX21vZGlmaWVkX21lbW9yeSh4ZW5feGMs IGRvbWlkLCBmaXJzdF9wZm4sIG5yKTsKKyAgICByZXR1cm4geGVuZGV2aWNlbW9kZWxfbW9kaWZp ZWRfbWVtb3J5KHhlbl9kbW9kLCBkb21pZCwgZmlyc3RfcGZuLCBucik7CiB9CiAKIC8qIFhlbiA0 LjIgdGhyb3VnaCA0LjYgKi8KQEAgLTk3LDYgKzIzMyw3IEBAIHR5cGVkZWYgeGNfZ250dGFiIHhl bmdudHRhYl9oYW5kbGU7CiAgICAgeGNfZ250dGFiX21hcF9kb21haW5fZ3JhbnRfcmVmcyhoLCBj LCBkLCByLCBwKQogCiAjZGVmaW5lIHhlbmZvcmVpZ25tZW1vcnlfb3BlbihsLCBmKSB4ZW5feGMK KyNkZWZpbmUgeGVuZm9yZWlnbm1lbW9yeV9jbG9zZShoKQogCiBzdGF0aWMgaW5saW5lIHZvaWQg KnhlbmZvcmVpZ25tZW1vcnlfbWFwKHhjX2ludGVyZmFjZSAqaCwgdWludDMyX3QgZG9tLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJvdCwgc2l6ZV90IHBh Z2VzLApAQCAtMjg1LDggKzQyMiw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fbWFwX21lbW9y eV9zZWN0aW9uKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAgIHRyYWNlX3hlbl9tYXBfbW1pb19y YW5nZShpb3NlcnZpZCwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwotICAgIHhjX2h2bV9tYXBfaW9f cmFuZ2VfdG9faW9yZXFfc2VydmVyKHhlbl94YywgZG9tLCBpb3NlcnZpZCwgMSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9hZGRyLCBlbmRfYWRkcik7Cisg ICAgeGVuZGV2aWNlbW9kZWxfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcih4ZW5fZG1vZCwg ZG9tLCBpb3NlcnZpZCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk IHhlbl91bm1hcF9tZW1vcnlfc2VjdGlvbihkb21pZF90IGRvbSwKQEAgLTMwMiw4ICs0MzksOCBA QCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX3VubWFwX21lbW9yeV9zZWN0aW9uKGRvbWlkX3QgZG9t LAogICAgIH0KIAogICAgIHRyYWNlX3hlbl91bm1hcF9tbWlvX3JhbmdlKGlvc2VydmlkLCBzdGFy dF9hZGRyLCBlbmRfYWRkcik7Ci0gICAgeGNfaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFf c2VydmVyKHhlbl94YywgZG9tLCBpb3NlcnZpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMSwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOworICAgIHhlbmRldmlj ZW1vZGVsX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sIGlv c2VydmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHhl bl9tYXBfaW9fc2VjdGlvbihkb21pZF90IGRvbSwKQEAgLTMxOSw4ICs0NTYsOCBAQCBzdGF0aWMg aW5saW5lIHZvaWQgeGVuX21hcF9pb19zZWN0aW9uKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAg IHRyYWNlX3hlbl9tYXBfcG9ydGlvX3JhbmdlKGlvc2VydmlkLCBzdGFydF9hZGRyLCBlbmRfYWRk cik7Ci0gICAgeGNfaHZtX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIoeGVuX3hjLCBkb20s IGlvc2VydmlkLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 YXJ0X2FkZHIsIGVuZF9hZGRyKTsKKyAgICB4ZW5kZXZpY2Vtb2RlbF9tYXBfaW9fcmFuZ2VfdG9f aW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLCAwLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwog fQogCiBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX3VubWFwX2lvX3NlY3Rpb24oZG9taWRfdCBkb20s CkBAIC0zMzYsOCArNDczLDggQEAgc3RhdGljIGlubGluZSB2b2lkIHhlbl91bm1hcF9pb19zZWN0 aW9uKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAgIHRyYWNlX3hlbl91bm1hcF9wb3J0aW9fcmFu Z2UoaW9zZXJ2aWQsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKLSAgICB4Y19odm1fdW5tYXBfaW9f cmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoeGVuX3hjLCBkb20sIGlvc2VydmlkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBzdGFydF9hZGRyLCBlbmRfYWRk cik7CisgICAgeGVuZGV2aWNlbW9kZWxfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIo eGVuX2Rtb2QsIGRvbSwgaW9zZXJ2aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMCwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwogfQogCiBzdGF0 aWMgaW5saW5lIHZvaWQgeGVuX21hcF9wY2lkZXYoZG9taWRfdCBkb20sCkBAIC0zNTAsMTAgKzQ4 NywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX21hcF9wY2lkZXYoZG9taWRfdCBkb20sCiAK ICAgICB0cmFjZV94ZW5fbWFwX3BjaWRldihpb3NlcnZpZCwgcGNpX2J1c19udW0ocGNpX2Rldi0+ YnVzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChwY2lfZGV2LT5kZXZmbiks IFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7Ci0gICAgeGNfaHZtX21hcF9wY2lkZXZfdG9faW9y ZXFfc2VydmVyKHhlbl94YywgZG9tLCBpb3NlcnZpZCwgMCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGNpX2J1c19udW0ocGNpX2Rldi0+YnVzKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QocGNpX2Rldi0+ZGV2Zm4pLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVOQyhwY2lfZGV2LT5kZXZm bikpOworICAgIHhlbmRldmljZW1vZGVsX21hcF9wY2lkZXZfdG9faW9yZXFfc2VydmVyKHhlbl9k bW9kLCBkb20sIGlvc2VydmlkLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBjaV9idXNfbnVtKHBjaV9kZXYtPmJ1cyksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QocGNpX2Rldi0+ZGV2Zm4pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBj aV9kZXYtPmRldmZuKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fdW5tYXBfcGNpZGV2 KGRvbWlkX3QgZG9tLApAQCAtMzY2LDE4ICs1MDMsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIHhl bl91bm1hcF9wY2lkZXYoZG9taWRfdCBkb20sCiAKICAgICB0cmFjZV94ZW5fdW5tYXBfcGNpZGV2 KGlvc2VydmlkLCBwY2lfYnVzX251bShwY2lfZGV2LT5idXMpLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUENJX1NMT1QocGNpX2Rldi0+ZGV2Zm4pLCBQQ0lfRlVOQyhwY2lfZGV2LT5kZXZm bikpOwotICAgIHhjX2h2bV91bm1hcF9wY2lkZXZfZnJvbV9pb3JlcV9zZXJ2ZXIoeGVuX3hjLCBk b20sIGlvc2VydmlkLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGNpX2J1c19udW0ocGNpX2Rldi0+YnVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBjaV9kZXYtPmRldmZuKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7Cisg ICAgeGVuZGV2aWNlbW9kZWxfdW5tYXBfcGNpZGV2X2Zyb21faW9yZXFfc2VydmVyKHhlbl9kbW9k LCBkb20sIGlvc2VydmlkLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwY2lfYnVzX251bShwY2lfZGV2LT5idXMpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChwY2lfZGV2LT5kZXZm biksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBD SV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fY3Jl YXRlX2lvcmVxX3NlcnZlcihkb21pZF90IGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpb3NlcnZpZF90ICppb3NlcnZpZCkKIHsKLSAgICBpbnQgcmMgPSB4 Y19odm1fY3JlYXRlX2lvcmVxX3NlcnZlcih4ZW5feGMsIGRvbSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvc2VydmlkKTsKKyAgICBpbnQg cmMgPSB4ZW5kZXZpY2Vtb2RlbF9jcmVhdGVfaW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fSU9SRVFT UlZfQlVGSU9SRVFfQVRPTUlDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW9zZXJ2aWQpOwogCiAgICAgaWYgKHJjID09IDApIHsKICAgICAgICAgdHJh Y2VfeGVuX2lvcmVxX3NlcnZlcl9jcmVhdGUoKmlvc2VydmlkKTsKQEAgLTM5Nyw3ICs1MzQsNyBA QCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKGRvbWlkX3QgZG9t LAogICAgIH0KIAogICAgIHRyYWNlX3hlbl9pb3JlcV9zZXJ2ZXJfZGVzdHJveShpb3NlcnZpZCk7 Ci0gICAgeGNfaHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKHhlbl94YywgZG9tLCBpb3NlcnZpZCk7 CisgICAgeGVuZGV2aWNlbW9kZWxfZGVzdHJveV9pb3JlcV9zZXJ2ZXIoeGVuX2Rtb2QsIGRvbSwg aW9zZXJ2aWQpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCB4ZW5fZ2V0X2lvcmVxX3NlcnZlcl9p bmZvKGRvbWlkX3QgZG9tLApAQCAtNDEyLDkgKzU0OSw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhl bl9nZXRfaW9yZXFfc2VydmVyX2luZm8oZG9taWRfdCBkb20sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmaW9yZXFfZXZ0Y2huKTsKICAgICB9CiAK LSAgICByZXR1cm4geGNfaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyh4ZW5feGMsIGRvbSwgaW9z ZXJ2aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9yZXFfcGZu LCBidWZpb3JlcV9wZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnVmaW9yZXFfZXZ0Y2huKTsKKyAgICByZXR1cm4geGVuZGV2aWNlbW9kZWxfZ2V0X2lvcmVxX3Nl cnZlcl9pbmZvKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9yZXFfcGZuLCBidWZpb3JlcV9wZm4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZpb3JlcV9ldnRj aG4pOwogfQogCiBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZShk b21pZF90IGRvbSwKQEAgLTQyNiw4ICs1NjMsOCBAQCBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0 X2lvcmVxX3NlcnZlcl9zdGF0ZShkb21pZF90IGRvbSwKICAgICB9CiAKICAgICB0cmFjZV94ZW5f aW9yZXFfc2VydmVyX3N0YXRlKGlvc2VydmlkLCBlbmFibGUpOwotICAgIHJldHVybiB4Y19odm1f c2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSh4ZW5feGMsIGRvbSwgaW9zZXJ2aWQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZSk7CisgICAgcmV0dXJuIHhlbmRl dmljZW1vZGVsX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUoeGVuX2Rtb2QsIGRvbSwgaW9zZXJ2aWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxl KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS94ZW4tY29tbW9uLmMgYi94ZW4tY29tbW9uLmMK aW5kZXggNzAzZTdhNS4uYWU3NjE1MCAxMDA2NDQKLS0tIGEveGVuLWNvbW1vbi5jCisrKyBiL3hl bi1jb21tb24uYwpAQCAtMjcsNiArMjcsNyBAQAogCiB4Y19pbnRlcmZhY2UgKnhlbl94YzsKIHhl bmZvcmVpZ25tZW1vcnlfaGFuZGxlICp4ZW5fZm1lbTsKK3hlbmRldmljZW1vZGVsX2hhbmRsZSAq eGVuX2Rtb2Q7CiAKIHN0YXRpYyBpbnQgc3RvcmVfZGV2X2luZm8oaW50IGRvbWlkLCBDaGFyZGV2 ICpjcywgY29uc3QgY2hhciAqc3RyaW5nKQogewpAQCAtMTI4LDYgKzEyOSwxMyBAQCBzdGF0aWMg aW50IHhlbl9pbml0KE1hY2hpbmVTdGF0ZSAqbXMpCiAgICAgICAgIHhjX2ludGVyZmFjZV9jbG9z ZSh4ZW5feGMpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQorICAgIHhlbl9kbW9kID0geGVu ZGV2aWNlbW9kZWxfb3BlbigwLCAwKTsKKyAgICBpZiAoeGVuX2Rtb2QgPT0gTlVMTCkgeworICAg ICAgICB4ZW5fcHZfcHJpbnRmKE5VTEwsIDAsICJjYW4ndCBvcGVuIHhlbiBkZXZpY2Vtb2RlbCBp bnRlcmZhY2VcbiIpOworICAgICAgICB4ZW5mb3JlaWdubWVtb3J5X2Nsb3NlKHhlbl9mbWVtKTsK KyAgICAgICAgeGNfaW50ZXJmYWNlX2Nsb3NlKHhlbl94Yyk7CisgICAgICAgIHJldHVybiAtMTsK KyAgICB9CiAgICAgcWVtdV9hZGRfdm1fY2hhbmdlX3N0YXRlX2hhbmRsZXIoeGVuX2NoYW5nZV9z dGF0ZV9oYW5kbGVyLCBOVUxMKTsKIAogICAgIGdsb2JhbF9zdGF0ZV9zZXRfb3B0aW9uYWwoKTsK LS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==