From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 5/5] xen: use libxendevicemodel when available Date: Fri, 3 Mar 2017 11:47:51 +0000 Message-ID: <1488541671-26740-6-git-send-email-paul.durrant@citrix.com> References: <1488541671-26740-1-git-send-email-paul.durrant@citrix.com> 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 1cjlgk-0006d5-JY for xen-devel@lists.xenproject.org; Fri, 03 Mar 2017 11:47:58 +0000 In-Reply-To: <1488541671-26740-1-git-send-email-paul.durrant@citrix.com> 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, qemu-devel@nongnu.org Cc: Paul Durrant , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgd3JhcHBlciBmdW5jdGlvbnMgaW4geGVuX2NvbW1vbi5o IHRvIHVzZSB0aGUKbmV3IHhlbmRldmljZW1vZGVsIGludGVyZmFjZSBpZiBpdCBpcyBhdmFpbGFi bGUgYWxvbmcgd2l0aCBjb21wYXRpYmlsaXR5CmNvZGUgdG8gdXNlIHRoZSBvbGQgbGlieGVuY3Ry bCBpbnRlcmZhY2UgaWYgaXQgaXMgbm90LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxw YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEFudGhvbnkgUGVyYXJkIDxhbnRo b255LnBlcmFyZEBjaXRyaXguY29tPgotLS0KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJl bGxpbmlAa2VybmVsLm9yZz4KCk5PVEU6IFhlbiBwYXRjaCA5OTcwZTk4YWNlNDggaXMgbmVlZGVk IHRvIGJ1aWxkCgp2MzoKLSBTd2l0Y2ggZnJvbSBtYWNyb3MgdG8gc3RhdGljIGlubGluZXMuCgp2 MjoKLSBBZGQgYSBjb21wYXQgZGVmaW5lIGZvciB4ZW5mb3JlaWdubWVtb3J5X2Nsb3NlKCkgc2lu Y2UgdGhpcyBpcyBub3cKICB1c2VkLgotLS0KIGluY2x1ZGUvaHcveGVuL3hlbl9jb21tb24uaCB8 IDE5OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogeGVuLWNv bW1vbi5jICAgICAgICAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5nZWQsIDE3NCBpbnNl cnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3hlbi94 ZW5fY29tbW9uLmggYi9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9uLmgKaW5kZXggMzFjZjI1Zi4u NzQwNDAwYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1vbi5oCisrKyBiL2lu Y2x1ZGUvaHcveGVuL3hlbl9jb21tb24uaApAQCAtOSw2ICs5LDcgQEAKICN1bmRlZiBYQ19XQU5U X0NPTVBBVF9FVlRDSE5fQVBJCiAjdW5kZWYgWENfV0FOVF9DT01QQVRfR05UVEFCX0FQSQogI3Vu ZGVmIFhDX1dBTlRfQ09NUEFUX01BUF9GT1JFSUdOX0FQSQorI3VuZGVmIFhDX1dBTlRfQ09NUEFU X0RFVklDRU1PREVMX0FQSQogCiAjaW5jbHVkZSA8eGVuY3RybC5oPgogI2luY2x1ZGUgPHhlbnN0 b3JlLmg+CkBAIC0yNiw0OCArMjcsMTc5IEBAIGV4dGVybiB4Y19pbnRlcmZhY2UgKnhlbl94YzsK ICAqIFdlIGRvbid0IHN1cHBvcnQgWGVuIHByaW9yIHRvIDQuMi4wLgogICovCiAKKyNpZiBDT05G SUdfWEVOX0NUUkxfSU5URVJGQUNFX1ZFUlNJT04gPCA0OTAKKwordHlwZWRlZiB4Y19pbnRlcmZh Y2UgeGVuZGV2aWNlbW9kZWxfaGFuZGxlOworCitzdGF0aWMgaW5saW5lIHhlbmRldmljZW1vZGVs X2hhbmRsZSAqeGVuZGV2aWNlbW9kZWxfb3BlbigKKyAgICBzdHJ1Y3QgeGVudG9vbGxvZ19sb2dn ZXIgKmxvZ2dlciwgdW5zaWduZWQgaW50IG9wZW5fZmxhZ3MpCit7CisgICAgcmV0dXJuIHhlbl94 YzsKK30KKworc3RhdGljIGlubGluZSBpbnQgeGVuZGV2aWNlbW9kZWxfY3JlYXRlX2lvcmVxX3Nl cnZlcigKKyAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsIGlu dCBoYW5kbGVfYnVmaW9yZXEsCisgICAgaW9zZXJ2aWRfdCAqaWQpCit7CisgICAgcmV0dXJuIHhj X2h2bV9jcmVhdGVfaW9yZXFfc2VydmVyKGRtb2QsIGRvbWlkLCBoYW5kbGVfYnVmaW9yZXEsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkKTsKK30KKworc3RhdGljIGlu bGluZSBpbnQgeGVuZGV2aWNlbW9kZWxfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKAorICAgIHhlbmRl dmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgaW9zZXJ2aWRfdCBpZCwKKyAg ICB4ZW5fcGZuX3QgKmlvcmVxX3BmbiwgeGVuX3Bmbl90ICpidWZpb3JlcV9wZm4sCisgICAgZXZ0 Y2huX3BvcnRfdCAqYnVmaW9yZXFfcG9ydCkKK3sKKyAgICByZXR1cm4geGNfaHZtX2dldF9pb3Jl cV9zZXJ2ZXJfaW5mbyhkbW9kLCBkb21pZCwgaWQsIGlvcmVxX3BmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBidWZpb3JlcV9wZm4sIGJ1ZmlvcmVxX3BvcnQpOwor fQorCitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vtb2RlbF9tYXBfaW9fcmFuZ2VfdG9faW9y ZXFfc2VydmVyKAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21p ZCwgaW9zZXJ2aWRfdCBpZCwgaW50IGlzX21taW8sCisgICAgdWludDY0X3Qgc3RhcnQsIHVpbnQ2 NF90IGVuZCkKK3sKKyAgICByZXR1cm4geGNfaHZtX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2 ZXIoZG1vZCwgZG9taWQsIGlkLCBpc19tbWlvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdGFydCwgZW5kKTsKK30KKworc3RhdGljIGlubGluZSBpbnQg eGVuZGV2aWNlbW9kZWxfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoCisgICAgeGVu ZGV2aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCBpb3NlcnZpZF90IGlkLCBp bnQgaXNfbW1pbywKKyAgICB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgZW5kKQoreworICAgIHJl dHVybiB4Y19odm1fdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoZG1vZCwgZG9taWQs IGlkLCBpc19tbWlvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RhcnQsIGVuZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHhlbmRldmljZW1v ZGVsX21hcF9wY2lkZXZfdG9faW9yZXFfc2VydmVyKAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRs ZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgaW9zZXJ2aWRfdCBpZCwKKyAgICB1aW50MTZfdCBzZWdt ZW50LCB1aW50OF90IGJ1cywgdWludDhfdCBkZXZpY2UsIHVpbnQ4X3QgZnVuY3Rpb24pCit7Cisg ICAgcmV0dXJuIHhjX2h2bV9tYXBfcGNpZGV2X3RvX2lvcmVxX3NlcnZlcihkbW9kLCBkb21pZCwg aWQsIHNlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBidXMsIGRldmljZSwgZnVuY3Rpb24pOworfQorCitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZp Y2Vtb2RlbF91bm1hcF9wY2lkZXZfZnJvbV9pb3JlcV9zZXJ2ZXIoCisgICAgeGVuZGV2aWNlbW9k ZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCBpb3NlcnZpZF90IGlkLAorICAgIHVpbnQx Nl90IHNlZ21lbnQsIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwgdWludDhfdCBmdW5jdGlv bikKK3sKKyAgICByZXR1cm4geGNfaHZtX3VubWFwX3BjaWRldl9mcm9tX2lvcmVxX3NlcnZlcihk bW9kLCBkb21pZCwgaWQsIHNlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnVzLCBkZXZpY2UsIGZ1bmN0aW9uKTsKK30KKworc3RhdGljIGlu bGluZSBpbnQgeGVuZGV2aWNlbW9kZWxfZGVzdHJveV9pb3JlcV9zZXJ2ZXIoCisgICAgeGVuZGV2 aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCBpb3NlcnZpZF90IGlkKQorewor ICAgIHJldHVybiB4Y19odm1fX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKGRtb2QsIGRvbWlkLCBpZCk7 Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHhlbmRldmljZW1vZGVsX3NldF9pb3JlcV9zZXJ2ZXJf c3RhdGUoCisgICAgeGVuZGV2aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCBp b3NlcnZpZF90IGlkLCBpbnQgZW5hYmxlZCkKK3sKKyAgICByZXR1cm4geGNfaHZtX3NldF9pb3Jl cV9zZXJ2ZXJfc3RhdGUoZG1vZCwgZG9taWQsIGlkLCBlbmFibGVkKTsKK30KKworc3RhdGljIGlu 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 RVJTSU9OID49IDQ5MCAqLworCisjaW5jbHVkZSA8eGVuZGV2aWNlbW9kZWwuaD4KKworI2VuZGlm CisKK2V4dGVybiB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKnhlbl9kbW9kOworCiBzdGF0aWMgaW5s aW5lIGludCB4ZW5fc2V0X21lbV90eXBlKGRvbWlkX3QgZG9taWQsIGh2bW1lbV90eXBlX3QgdHlw ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgZmlyc3RfcGZu LCB1aW50MzJfdCBucikKIHsKLSAgICByZXR1cm4geGNfaHZtX3NldF9tZW1fdHlwZSh4ZW5feGMs IGRvbWlkLCB0eXBlLCBmaXJzdF9wZm4sIG5yKTsKKyAgICByZXR1cm4geGVuZGV2aWNlbW9kZWxf c2V0X21lbV90eXBlKHhlbl9kbW9kLCBkb21pZCwgdHlwZSwgZmlyc3RfcGZuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnIpOwogfQogCiBzdGF0aWMgaW5saW5lIGlu dCB4ZW5fc2V0X3BjaV9pbnR4X2xldmVsKGRvbWlkX3QgZG9taWQsIHVpbnQxNl90IHNlZ21lbnQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgYnVzLCB1 aW50OF90IGRldmljZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDhfdCBpbnR4LCB1bnNpZ25lZCBpbnQgbGV2ZWwpCiB7Ci0gICAgcmV0dXJuIHhjX2h2bV9z ZXRfcGNpX2ludHhfbGV2ZWwoeGVuX3hjLCBkb21pZCwgc2VnbWVudCwgYnVzLCBkZXZpY2UsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50eCwgbGV2ZWwpOworICAgIHJl dHVybiB4ZW5kZXZpY2Vtb2RlbF9zZXRfcGNpX2ludHhfbGV2ZWwoeGVuX2Rtb2QsIGRvbWlkLCBz ZWdtZW50LCBidXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkZXZpY2UsIGludHgsIGxldmVsKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgeGVuX3NldF9w Y2lfbGlua19yb3V0ZShkb21pZF90IGRvbWlkLCB1aW50OF90IGxpbmssCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaXJxKQogewotICAgIHJldHVybiB4 Y19odm1fc2V0X3BjaV9saW5rX3JvdXRlKHhlbl94YywgZG9taWQsIGxpbmssIGlycSk7CisgICAg cmV0dXJuIHhlbmRldmljZW1vZGVsX3NldF9wY2lfbGlua19yb3V0ZSh4ZW5fZG1vZCwgZG9taWQs IGxpbmssIGlycSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHhlbl9pbmplY3RfbXNpKGRvbWlk X3QgZG9taWQsIHVpbnQ2NF90IG1zaV9hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgbXNpX2RhdGEpCiB7Ci0gICAgcmV0dXJuIHhjX2h2bV9pbmplY3RfbXNp KHhlbl94YywgZG9taWQsIG1zaV9hZGRyLCBtc2lfZGF0YSk7CisgICAgcmV0dXJuIHhlbmRldmlj ZW1vZGVsX2luamVjdF9tc2koeGVuX2Rtb2QsIGRvbWlkLCBtc2lfYWRkciwgbXNpX2RhdGEpOwog fQogCiBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0X2lzYV9pcnFfbGV2ZWwoZG9taWRfdCBkb21p ZCwgdWludDhfdCBpcnEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGxldmVsKQogewotICAgIHJldHVybiB4Y19odm1fc2V0X2lzYV9pcnFfbGV2 ZWwoeGVuX3hjLCBkb21pZCwgaXJxLCBsZXZlbCk7CisgICAgcmV0dXJuIHhlbmRldmljZW1vZGVs X3NldF9pc2FfaXJxX2xldmVsKHhlbl9kbW9kLCBkb21pZCwgaXJxLCBsZXZlbCk7CiB9CiAKIHN0 YXRpYyBpbmxpbmUgaW50IHhlbl90cmFja19kaXJ0eV92cmFtKGRvbWlkX3QgZG9taWQsIHVpbnQ2 NF90IGZpcnN0X3BmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IG5yLCB1bnNpZ25lZCBsb25nICpiaXRtYXApCiB7Ci0gICAgcmV0dXJuIHhjX2h2bV90 cmFja19kaXJ0eV92cmFtKHhlbl94YywgZG9taWQsIGZpcnN0X3BmbiwgbnIsIGJpdG1hcCk7Cisg ICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX3RyYWNrX2RpcnR5X3ZyYW0oeGVuX2Rtb2QsIGRvbWlk LCBmaXJzdF9wZm4sIG5yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJpdG1hcCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHhlbl9tb2RpZmllZF9tZW1vcnko ZG9taWRfdCBkb21pZCwgdWludDY0X3QgZmlyc3RfcGZuLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCBucikKIHsKLSAgICByZXR1cm4geGNfaHZtX21vZGlm aWVkX21lbW9yeSh4ZW5feGMsIGRvbWlkLCBmaXJzdF9wZm4sIG5yKTsKKyAgICByZXR1cm4geGVu ZGV2aWNlbW9kZWxfbW9kaWZpZWRfbWVtb3J5KHhlbl9kbW9kLCBkb21pZCwgZmlyc3RfcGZuLCBu cik7CiB9CiAKIC8qIFhlbiA0LjIgdGhyb3VnaCA0LjYgKi8KQEAgLTk3LDYgKzIyOSw3IEBAIHR5 cGVkZWYgeGNfZ250dGFiIHhlbmdudHRhYl9oYW5kbGU7CiAgICAgeGNfZ250dGFiX21hcF9kb21h aW5fZ3JhbnRfcmVmcyhoLCBjLCBkLCByLCBwKQogCiAjZGVmaW5lIHhlbmZvcmVpZ25tZW1vcnlf b3BlbihsLCBmKSB4ZW5feGMKKyNkZWZpbmUgeGVuZm9yZWlnbm1lbW9yeV9jbG9zZShoKQogCiBz dGF0aWMgaW5saW5lIHZvaWQgKnhlbmZvcmVpZ25tZW1vcnlfbWFwKHhjX2ludGVyZmFjZSAqaCwg dWludDMyX3QgZG9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgcHJvdCwgc2l6ZV90IHBhZ2VzLApAQCAtMjg1LDggKzQxOCw4IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCB4ZW5fbWFwX21lbW9yeV9zZWN0aW9uKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAgIHRy YWNlX3hlbl9tYXBfbW1pb19yYW5nZShpb3NlcnZpZCwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwot ICAgIHhjX2h2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKHhlbl94YywgZG9tLCBpb3Nl cnZpZCwgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9h ZGRyLCBlbmRfYWRkcik7CisgICAgeGVuZGV2aWNlbW9kZWxfbWFwX2lvX3JhbmdlX3RvX2lvcmVx X3NlcnZlcih4ZW5fZG1vZCwgZG9tLCBpb3NlcnZpZCwgMSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKIH0KIAog c3RhdGljIGlubGluZSB2b2lkIHhlbl91bm1hcF9tZW1vcnlfc2VjdGlvbihkb21pZF90IGRvbSwK QEAgLTMwMiw4ICs0MzUsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX3VubWFwX21lbW9yeV9z ZWN0aW9uKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAgIHRyYWNlX3hlbl91bm1hcF9tbWlvX3Jh bmdlKGlvc2VydmlkLCBzdGFydF9hZGRyLCBlbmRfYWRkcik7Ci0gICAgeGNfaHZtX3VubWFwX2lv X3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKHhlbl94YywgZG9tLCBpb3NlcnZpZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgc3RhcnRfYWRkciwgZW5kX2Fk ZHIpOworICAgIHhlbmRldmljZW1vZGVsX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVy KHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDEsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKIH0KIAogc3Rh dGljIGlubGluZSB2b2lkIHhlbl9tYXBfaW9fc2VjdGlvbihkb21pZF90IGRvbSwKQEAgLTMxOSw4 ICs0NTIsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX21hcF9pb19zZWN0aW9uKGRvbWlkX3Qg ZG9tLAogICAgIH0KIAogICAgIHRyYWNlX3hlbl9tYXBfcG9ydGlvX3JhbmdlKGlvc2VydmlkLCBz dGFydF9hZGRyLCBlbmRfYWRkcik7Ci0gICAgeGNfaHZtX21hcF9pb19yYW5nZV90b19pb3JlcV9z ZXJ2ZXIoeGVuX3hjLCBkb20sIGlvc2VydmlkLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKKyAgICB4ZW5kZXZpY2Vtb2Rl bF9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLCAw LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRf YWRkciwgZW5kX2FkZHIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX3VubWFwX2lvX3Nl Y3Rpb24oZG9taWRfdCBkb20sCkBAIC0zMzYsOCArNDY5LDggQEAgc3RhdGljIGlubGluZSB2b2lk IHhlbl91bm1hcF9pb19zZWN0aW9uKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAgIHRyYWNlX3hl bl91bm1hcF9wb3J0aW9fcmFuZ2UoaW9zZXJ2aWQsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKLSAg ICB4Y19odm1fdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoeGVuX3hjLCBkb20sIGlv c2VydmlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBz dGFydF9hZGRyLCBlbmRfYWRkcik7CisgICAgeGVuZGV2aWNlbW9kZWxfdW5tYXBfaW9fcmFuZ2Vf ZnJvbV9pb3JlcV9zZXJ2ZXIoeGVuX2Rtb2QsIGRvbSwgaW9zZXJ2aWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgc3RhcnRfYWRkciwgZW5k X2FkZHIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX21hcF9wY2lkZXYoZG9taWRfdCBk b20sCkBAIC0zNTAsMTAgKzQ4MywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX21hcF9wY2lk ZXYoZG9taWRfdCBkb20sCiAKICAgICB0cmFjZV94ZW5fbWFwX3BjaWRldihpb3NlcnZpZCwgcGNp X2J1c19udW0ocGNpX2Rldi0+YnVzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xP VChwY2lfZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7Ci0gICAgeGNfaHZt X21hcF9wY2lkZXZfdG9faW9yZXFfc2VydmVyKHhlbl94YywgZG9tLCBpb3NlcnZpZCwgMCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNpX2J1c19udW0ocGNpX2Rldi0+ YnVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QocGNp X2Rldi0+ZGV2Zm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lf RlVOQyhwY2lfZGV2LT5kZXZmbikpOworICAgIHhlbmRldmljZW1vZGVsX21hcF9wY2lkZXZfdG9f aW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLCAwLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaV9idXNfbnVtKHBjaV9kZXYtPmJ1cyks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1Qo cGNpX2Rldi0+ZGV2Zm4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9p ZCB4ZW5fdW5tYXBfcGNpZGV2KGRvbWlkX3QgZG9tLApAQCAtMzY2LDE4ICs0OTksMTggQEAgc3Rh dGljIGlubGluZSB2b2lkIHhlbl91bm1hcF9wY2lkZXYoZG9taWRfdCBkb20sCiAKICAgICB0cmFj ZV94ZW5fdW5tYXBfcGNpZGV2KGlvc2VydmlkLCBwY2lfYnVzX251bShwY2lfZGV2LT5idXMpLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QocGNpX2Rldi0+ZGV2Zm4pLCBQQ0lf RlVOQyhwY2lfZGV2LT5kZXZmbikpOwotICAgIHhjX2h2bV91bm1hcF9wY2lkZXZfZnJvbV9pb3Jl cV9zZXJ2ZXIoeGVuX3hjLCBkb20sIGlvc2VydmlkLCAwLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGNpX2J1c19udW0ocGNpX2Rldi0+YnVzKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBjaV9kZXYtPmRldmZu KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBj aV9kZXYtPmRldmZuKSk7CisgICAgeGVuZGV2aWNlbW9kZWxfdW5tYXBfcGNpZGV2X2Zyb21faW9y ZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLCAwLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2lfYnVzX251bShwY2lfZGV2LT5idXMp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lf U0xPVChwY2lfZGV2LT5kZXZmbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBjaV9kZXYtPmRldmZuKSk7CiB9CiAKIHN0YXRpYyBp bmxpbmUgdm9pZCB4ZW5fY3JlYXRlX2lvcmVxX3NlcnZlcihkb21pZF90IGRvbSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb3NlcnZpZF90ICppb3NlcnZpZCkK IHsKLSAgICBpbnQgcmMgPSB4Y19odm1fY3JlYXRlX2lvcmVxX3NlcnZlcih4ZW5feGMsIGRvbSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fSU9SRVFTUlZfQlVG SU9SRVFfQVRPTUlDLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlv c2VydmlkKTsKKyAgICBpbnQgcmMgPSB4ZW5kZXZpY2Vtb2RlbF9jcmVhdGVfaW9yZXFfc2VydmVy KHhlbl9kbW9kLCBkb20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9zZXJ2aWQpOwogCiAgICAgaWYgKHJjID09 IDApIHsKICAgICAgICAgdHJhY2VfeGVuX2lvcmVxX3NlcnZlcl9jcmVhdGUoKmlvc2VydmlkKTsK QEAgLTM5Nyw3ICs1MzAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2Rlc3Ryb3lfaW9yZXFf c2VydmVyKGRvbWlkX3QgZG9tLAogICAgIH0KIAogICAgIHRyYWNlX3hlbl9pb3JlcV9zZXJ2ZXJf ZGVzdHJveShpb3NlcnZpZCk7Ci0gICAgeGNfaHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKHhlbl94 YywgZG9tLCBpb3NlcnZpZCk7CisgICAgeGVuZGV2aWNlbW9kZWxfZGVzdHJveV9pb3JlcV9zZXJ2 ZXIoeGVuX2Rtb2QsIGRvbSwgaW9zZXJ2aWQpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCB4ZW5f Z2V0X2lvcmVxX3NlcnZlcl9pbmZvKGRvbWlkX3QgZG9tLApAQCAtNDEyLDkgKzU0NSw5IEBAIHN0 YXRpYyBpbmxpbmUgaW50IHhlbl9nZXRfaW9yZXFfc2VydmVyX2luZm8oZG9taWRfdCBkb20sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmaW9yZXFf ZXZ0Y2huKTsKICAgICB9CiAKLSAgICByZXR1cm4geGNfaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5m byh4ZW5feGMsIGRvbSwgaW9zZXJ2aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW9yZXFfcGZuLCBidWZpb3JlcV9wZm4sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnVmaW9yZXFfZXZ0Y2huKTsKKyAgICByZXR1cm4geGVuZGV2aWNl bW9kZWxfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9yZXFfcGZuLCBi dWZpb3JlcV9wZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBidWZpb3JlcV9ldnRjaG4pOwogfQogCiBzdGF0aWMgaW5saW5lIGludCB4ZW5fc2V0X2lv cmVxX3NlcnZlcl9zdGF0ZShkb21pZF90IGRvbSwKQEAgLTQyNiw4ICs1NTksOCBAQCBzdGF0aWMg aW5saW5lIGludCB4ZW5fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZShkb21pZF90IGRvbSwKICAgICB9 CiAKICAgICB0cmFjZV94ZW5faW9yZXFfc2VydmVyX3N0YXRlKGlvc2VydmlkLCBlbmFibGUpOwot ICAgIHJldHVybiB4Y19odm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSh4ZW5feGMsIGRvbSwgaW9z ZXJ2aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZSk7 CisgICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUoeGVuX2Rt b2QsIGRvbSwgaW9zZXJ2aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW5hYmxlKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS94ZW4tY29tbW9u LmMgYi94ZW4tY29tbW9uLmMKaW5kZXggNzAzZTdhNS4uYWU3NjE1MCAxMDA2NDQKLS0tIGEveGVu LWNvbW1vbi5jCisrKyBiL3hlbi1jb21tb24uYwpAQCAtMjcsNiArMjcsNyBAQAogCiB4Y19pbnRl cmZhY2UgKnhlbl94YzsKIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICp4ZW5fZm1lbTsKK3hlbmRl dmljZW1vZGVsX2hhbmRsZSAqeGVuX2Rtb2Q7CiAKIHN0YXRpYyBpbnQgc3RvcmVfZGV2X2luZm8o aW50IGRvbWlkLCBDaGFyZGV2ICpjcywgY29uc3QgY2hhciAqc3RyaW5nKQogewpAQCAtMTI4LDYg KzEyOSwxMyBAQCBzdGF0aWMgaW50IHhlbl9pbml0KE1hY2hpbmVTdGF0ZSAqbXMpCiAgICAgICAg IHhjX2ludGVyZmFjZV9jbG9zZSh4ZW5feGMpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQor ICAgIHhlbl9kbW9kID0geGVuZGV2aWNlbW9kZWxfb3BlbigwLCAwKTsKKyAgICBpZiAoeGVuX2Rt b2QgPT0gTlVMTCkgeworICAgICAgICB4ZW5fcHZfcHJpbnRmKE5VTEwsIDAsICJjYW4ndCBvcGVu IHhlbiBkZXZpY2Vtb2RlbCBpbnRlcmZhY2VcbiIpOworICAgICAgICB4ZW5mb3JlaWdubWVtb3J5 X2Nsb3NlKHhlbl9mbWVtKTsKKyAgICAgICAgeGNfaW50ZXJmYWNlX2Nsb3NlKHhlbl94Yyk7Cisg ICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAgICAgcWVtdV9hZGRfdm1fY2hhbmdlX3N0YXRlX2hh bmRsZXIoeGVuX2NoYW5nZV9zdGF0ZV9oYW5kbGVyLCBOVUxMKTsKIAogICAgIGdsb2JhbF9zdGF0 ZV9zZXRfb3B0aW9uYWwoKTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==