From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 5/5] xen: use libxendevicemodel when available Date: Tue, 7 Mar 2017 10:55:34 +0000 Message-ID: <1488884134-29190-6-git-send-email-paul.durrant@citrix.com> References: <1488884134-29190-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1clCmP-0003bW-E4 for xen-devel@lists.xenproject.org; Tue, 07 Mar 2017 10:55:45 +0000 In-Reply-To: <1488884134-29190-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 bGxpbmlAa2VybmVsLm9yZz4KCnY0OgotIEZpeCB0eXBvIGNhdXNpbmcgYnVpbGQgZmFpbHVyZXMg b24gPCA0OTAKLSBGaXggYnVpbGRpbmcgb24gPCA0NTAKLSBCdWlsZC10ZXN0ZWQgYWdhaW5zdCA0 LjIuNSBhbmQgNC44LjAKCnYzOgotIFN3aXRjaCBmcm9tIG1hY3JvcyB0byBzdGF0aWMgaW5saW5l cy4KCnYyOgotIEFkZCBhIGNvbXBhdCBkZWZpbmUgZm9yIHhlbmZvcmVpZ25tZW1vcnlfY2xvc2Uo KSBzaW5jZSB0aGlzIGlzIG5vdwogIHVzZWQuCi0tLQogaW5jbHVkZS9ody94ZW4veGVuX2NvbW1v bi5oIHwgMjAzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiB4 ZW4tY29tbW9uLmMgICAgICAgICAgICAgICAgfCAgIDggKysKIDIgZmlsZXMgY2hhbmdlZCwgMTc4 IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcv eGVuL3hlbl9jb21tb24uaCBiL2luY2x1ZGUvaHcveGVuL3hlbl9jb21tb24uaAppbmRleCAzMWNm MjVmLi4yNzRhY2NjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9uLmgKKysr IGIvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1vbi5oCkBAIC05LDYgKzksNyBAQAogI3VuZGVmIFhD X1dBTlRfQ09NUEFUX0VWVENITl9BUEkKICN1bmRlZiBYQ19XQU5UX0NPTVBBVF9HTlRUQUJfQVBJ CiAjdW5kZWYgWENfV0FOVF9DT01QQVRfTUFQX0ZPUkVJR05fQVBJCisjdW5kZWYgWENfV0FOVF9D T01QQVRfREVWSUNFTU9ERUxfQVBJCiAKICNpbmNsdWRlIDx4ZW5jdHJsLmg+CiAjaW5jbHVkZSA8 eGVuc3RvcmUuaD4KQEAgLTI2LDQ4ICsyNywxODMgQEAgZXh0ZXJuIHhjX2ludGVyZmFjZSAqeGVu X3hjOwogICogV2UgZG9uJ3Qgc3VwcG9ydCBYZW4gcHJpb3IgdG8gNC4yLjAuCiAgKi8KIAorI2lm IENPTkZJR19YRU5fQ1RSTF9JTlRFUkZBQ0VfVkVSU0lPTiA8IDQ5MAorCit0eXBlZGVmIHhjX2lu dGVyZmFjZSB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGU7CisKK3N0YXRpYyBpbmxpbmUgeGVuZGV2aWNl bW9kZWxfaGFuZGxlICp4ZW5kZXZpY2Vtb2RlbF9vcGVuKAorICAgIHN0cnVjdCB4ZW50b29sbG9n X2xvZ2dlciAqbG9nZ2VyLCB1bnNpZ25lZCBpbnQgb3Blbl9mbGFncykKK3sKKyAgICByZXR1cm4g eGVuX3hjOworfQorCisjaWYgQ09ORklHX1hFTl9DVFJMX0lOVEVSRkFDRV9WRVJTSU9OID49IDQ1 MAorCitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vtb2RlbF9jcmVhdGVfaW9yZXFfc2VydmVy KAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgaW50IGhh bmRsZV9idWZpb3JlcSwKKyAgICBpb3NlcnZpZF90ICppZCkKK3sKKyAgICByZXR1cm4geGNfaHZt X2NyZWF0ZV9pb3JlcV9zZXJ2ZXIoZG1vZCwgZG9taWQsIGhhbmRsZV9idWZpb3JlcSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQpOworfQorCitzdGF0aWMgaW5saW5l IGludCB4ZW5kZXZpY2Vtb2RlbF9nZXRfaW9yZXFfc2VydmVyX2luZm8oCisgICAgeGVuZGV2aWNl bW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCBpb3NlcnZpZF90IGlkLAorICAgIHhl bl9wZm5fdCAqaW9yZXFfcGZuLCB4ZW5fcGZuX3QgKmJ1ZmlvcmVxX3BmbiwKKyAgICBldnRjaG5f cG9ydF90ICpidWZpb3JlcV9wb3J0KQoreworICAgIHJldHVybiB4Y19odm1fZ2V0X2lvcmVxX3Nl cnZlcl9pbmZvKGRtb2QsIGRvbWlkLCBpZCwgaW9yZXFfcGZuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJ1ZmlvcmVxX3BmbiwgYnVmaW9yZXFfcG9ydCk7Cit9CisK K3N0YXRpYyBpbmxpbmUgaW50IHhlbmRldmljZW1vZGVsX21hcF9pb19yYW5nZV90b19pb3JlcV9z ZXJ2ZXIoCisgICAgeGVuZGV2aWNlbW9kZWxfaGFuZGxlICpkbW9kLCBkb21pZF90IGRvbWlkLCBp b3NlcnZpZF90IGlkLCBpbnQgaXNfbW1pbywKKyAgICB1aW50NjRfdCBzdGFydCwgdWludDY0X3Qg ZW5kKQoreworICAgIHJldHVybiB4Y19odm1fbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcihk bW9kLCBkb21pZCwgaWQsIGlzX21taW8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQpOworfQorCitzdGF0aWMgaW5saW5lIGludCB4ZW5k ZXZpY2Vtb2RlbF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcigKKyAgICB4ZW5kZXZp Y2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsIGlvc2VydmlkX3QgaWQsIGludCBp c19tbWlvLAorICAgIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQpCit7CisgICAgcmV0dXJu IHhjX2h2bV91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcihkbW9kLCBkb21pZCwgaWQs IGlzX21taW8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdGFydCwgZW5kKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgeGVuZGV2aWNlbW9kZWxf bWFwX3BjaWRldl90b19pb3JlcV9zZXJ2ZXIoCisgICAgeGVuZGV2aWNlbW9kZWxfaGFuZGxlICpk bW9kLCBkb21pZF90IGRvbWlkLCBpb3NlcnZpZF90IGlkLAorICAgIHVpbnQxNl90IHNlZ21lbnQs IHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwgdWludDhfdCBmdW5jdGlvbikKK3sKKyAgICBy ZXR1cm4geGNfaHZtX21hcF9wY2lkZXZfdG9faW9yZXFfc2VydmVyKGRtb2QsIGRvbWlkLCBpZCwg c2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1 cywgZGV2aWNlLCBmdW5jdGlvbik7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHhlbmRldmljZW1v ZGVsX3VubWFwX3BjaWRldl9mcm9tX2lvcmVxX3NlcnZlcigKKyAgICB4ZW5kZXZpY2Vtb2RlbF9o YW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsIGlvc2VydmlkX3QgaWQsCisgICAgdWludDE2X3Qg c2VnbWVudCwgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNlLCB1aW50OF90IGZ1bmN0aW9uKQor eworICAgIHJldHVybiB4Y19odm1fdW5tYXBfcGNpZGV2X2Zyb21faW9yZXFfc2VydmVyKGRtb2Qs IGRvbWlkLCBpZCwgc2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBidXMsIGRldmljZSwgZnVuY3Rpb24pOworfQorCitzdGF0aWMgaW5saW5l IGludCB4ZW5kZXZpY2Vtb2RlbF9kZXN0cm95X2lvcmVxX3NlcnZlcigKKyAgICB4ZW5kZXZpY2Vt b2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsIGlvc2VydmlkX3QgaWQpCit7CisgICAg cmV0dXJuIHhjX2h2bV9kZXN0cm95X2lvcmVxX3NlcnZlcihkbW9kLCBkb21pZCwgaWQpOworfQor CitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vtb2RlbF9zZXRfaW9yZXFfc2VydmVyX3N0YXRl KAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgaW9zZXJ2 aWRfdCBpZCwgaW50IGVuYWJsZWQpCit7CisgICAgcmV0dXJuIHhjX2h2bV9zZXRfaW9yZXFfc2Vy dmVyX3N0YXRlKGRtb2QsIGRvbWlkLCBpZCwgZW5hYmxlZCk7Cit9CisKKyNlbmRpZiAvKiBDT05G SUdfWEVOX0NUUkxfSU5URVJGQUNFX1ZFUlNJT04gPj0gNDUwICovCisKK3N0YXRpYyBpbmxpbmUg aW50IHhlbmRldmljZW1vZGVsX3NldF9wY2lfaW50eF9sZXZlbCgKKyAgICB4ZW5kZXZpY2Vtb2Rl bF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9taWQsIHVpbnQxNl90IHNlZ21lbnQsCisgICAgdWlu dDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNlLCB1aW50OF90IGludHgsIHVuc2lnbmVkIGludCBsZXZl bCkKK3sKKyAgICByZXR1cm4geGNfaHZtX3NldF9wY2lfaW50eF9sZXZlbChkbW9kLCBkb21pZCwg c2VnbWVudCwgYnVzLCBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50eCwgbGV2ZWwpOworfQorCitzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vtb2RlbF9z ZXRfaXNhX2lycV9sZXZlbCgKKyAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlk X3QgZG9taWQsIHVpbnQ4X3QgaXJxLAorICAgIHVuc2lnbmVkIGludCBsZXZlbCkKK3sKKyAgICBy ZXR1cm4geGNfaHZtX3NldF9pc2FfaXJxX2xldmVsKGRtb2QsIGRvbWlkLCBpcnEsIGxldmVsKTsK K30KKworc3RhdGljIGlubGluZSBpbnQgeGVuZGV2aWNlbW9kZWxfc2V0X3BjaV9saW5rX3JvdXRl KAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgdWludDhf dCBsaW5rLCB1aW50OF90IGlycSkKK3sKKyAgICByZXR1cm4geGNfaHZtX3NldF9wY2lfbGlua19y b3V0ZShkbW9kLCBkb21pZCwgbGluaywgaXJxKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgeGVu ZGV2aWNlbW9kZWxfaW5qZWN0X21zaSgKKyAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2Qs IGRvbWlkX3QgZG9taWQsIHVpbnQ2NF90IG1zaV9hZGRyLAorICAgIHVpbnQzMl90IG1zaV9kYXRh KQoreworICAgIHJldHVybiB4Y19odm1faW5qZWN0X21zaShkbW9kLCBkb21pZCwgbXNpX2FkZHIs IG1zaV9kYXRhKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgeGVuZGV2aWNlbW9kZWxfdHJhY2tf ZGlydHlfdnJhbSgKKyAgICB4ZW5kZXZpY2Vtb2RlbF9oYW5kbGUgKmRtb2QsIGRvbWlkX3QgZG9t aWQsIHVpbnQ2NF90IGZpcnN0X3BmbiwKKyAgICB1aW50MzJfdCBuciwgdW5zaWduZWQgbG9uZyAq ZGlydHlfYml0bWFwKQoreworICAgIHJldHVybiB4Y19odm1fdHJhY2tfZGlydHlfdnJhbShkbW9k LCBkb21pZCwgZmlyc3RfcGZuLCBuciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGlydHlfYml0bWFwKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgeGVuZGV2aWNlbW9kZWxf bW9kaWZpZWRfbWVtb3J5KAorICAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRf dCBkb21pZCwgdWludDY0X3QgZmlyc3RfcGZuLAorICAgIHVpbnQzMl90IG5yKQoreworICAgIHJl dHVybiB4Y19odm1fbW9kaWZpZWRfbWVtb3J5KGRtb2QsIGRvbWlkLCBmaXJzdF9wZm4sIG5yKTsK K30KKworc3RhdGljIGlubGluZSBpbnQgeGVuZGV2aWNlbW9kZWxfc2V0X21lbV90eXBlKAorICAg IHhlbmRldmljZW1vZGVsX2hhbmRsZSAqZG1vZCwgZG9taWRfdCBkb21pZCwgaHZtbWVtX3R5cGVf dCBtZW1fdHlwZSwKKyAgICB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQzMl90IG5yKQoreworICAg IHJldHVybiB4Y19odm1fc2V0X21lbV90eXBlKGRtb2QsIGRvbWlkLCBtZW1fdHlwZSwgZmlyc3Rf cGZuLCBucik7Cit9CisKKyNlbHNlIC8qIENPTkZJR19YRU5fQ1RSTF9JTlRFUkZBQ0VfVkVSU0lP TiA+PSA0OTAgKi8KKworI2luY2x1ZGUgPHhlbmRldmljZW1vZGVsLmg+CisKKyNlbmRpZgorCitl eHRlcm4geGVuZGV2aWNlbW9kZWxfaGFuZGxlICp4ZW5fZG1vZDsKKwogc3RhdGljIGlubGluZSBp bnQgeGVuX3NldF9tZW1fdHlwZShkb21pZF90IGRvbWlkLCBodm1tZW1fdHlwZV90IHR5cGUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWlu dDMyX3QgbnIpCiB7Ci0gICAgcmV0dXJuIHhjX2h2bV9zZXRfbWVtX3R5cGUoeGVuX3hjLCBkb21p ZCwgdHlwZSwgZmlyc3RfcGZuLCBucik7CisgICAgcmV0dXJuIHhlbmRldmljZW1vZGVsX3NldF9t ZW1fdHlwZSh4ZW5fZG1vZCwgZG9taWQsIHR5cGUsIGZpcnN0X3BmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5yKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgeGVu X3NldF9wY2lfaW50eF9sZXZlbChkb21pZF90IGRvbWlkLCB1aW50MTZfdCBzZWdtZW50LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGJ1cywgdWludDhf dCBkZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4 X3QgaW50eCwgdW5zaWduZWQgaW50IGxldmVsKQogewotICAgIHJldHVybiB4Y19odm1fc2V0X3Bj aV9pbnR4X2xldmVsKHhlbl94YywgZG9taWQsIHNlZ21lbnQsIGJ1cywgZGV2aWNlLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludHgsIGxldmVsKTsKKyAgICByZXR1cm4g eGVuZGV2aWNlbW9kZWxfc2V0X3BjaV9pbnR4X2xldmVsKHhlbl9kbW9kLCBkb21pZCwgc2VnbWVu dCwgYnVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2 aWNlLCBpbnR4LCBsZXZlbCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHhlbl9zZXRfcGNpX2xp bmtfcm91dGUoZG9taWRfdCBkb21pZCwgdWludDhfdCBsaW5rLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGlycSkKIHsKLSAgICByZXR1cm4geGNfaHZt X3NldF9wY2lfbGlua19yb3V0ZSh4ZW5feGMsIGRvbWlkLCBsaW5rLCBpcnEpOworICAgIHJldHVy biB4ZW5kZXZpY2Vtb2RlbF9zZXRfcGNpX2xpbmtfcm91dGUoeGVuX2Rtb2QsIGRvbWlkLCBsaW5r LCBpcnEpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCB4ZW5faW5qZWN0X21zaShkb21pZF90IGRv bWlkLCB1aW50NjRfdCBtc2lfYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IG1zaV9kYXRhKQogewotICAgIHJldHVybiB4Y19odm1faW5qZWN0X21zaSh4ZW5f eGMsIGRvbWlkLCBtc2lfYWRkciwgbXNpX2RhdGEpOworICAgIHJldHVybiB4ZW5kZXZpY2Vtb2Rl bF9pbmplY3RfbXNpKHhlbl9kbW9kLCBkb21pZCwgbXNpX2FkZHIsIG1zaV9kYXRhKTsKIH0KIAog c3RhdGljIGlubGluZSBpbnQgeGVuX3NldF9pc2FfaXJxX2xldmVsKGRvbWlkX3QgZG9taWQsIHVp bnQ4X3QgaXJxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBsZXZlbCkKIHsKLSAgICByZXR1cm4geGNfaHZtX3NldF9pc2FfaXJxX2xldmVsKHhl bl94YywgZG9taWQsIGlycSwgbGV2ZWwpOworICAgIHJldHVybiB4ZW5kZXZpY2Vtb2RlbF9zZXRf aXNhX2lycV9sZXZlbCh4ZW5fZG1vZCwgZG9taWQsIGlycSwgbGV2ZWwpOwogfQogCiBzdGF0aWMg aW5saW5lIGludCB4ZW5fdHJhY2tfZGlydHlfdnJhbShkb21pZF90IGRvbWlkLCB1aW50NjRfdCBm aXJzdF9wZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCBuciwgdW5zaWduZWQgbG9uZyAqYml0bWFwKQogewotICAgIHJldHVybiB4Y19odm1fdHJhY2tf ZGlydHlfdnJhbSh4ZW5feGMsIGRvbWlkLCBmaXJzdF9wZm4sIG5yLCBiaXRtYXApOworICAgIHJl dHVybiB4ZW5kZXZpY2Vtb2RlbF90cmFja19kaXJ0eV92cmFtKHhlbl9kbW9kLCBkb21pZCwgZmly c3RfcGZuLCBuciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi aXRtYXApOwogfQogCiBzdGF0aWMgaW5saW5lIGludCB4ZW5fbW9kaWZpZWRfbWVtb3J5KGRvbWlk X3QgZG9taWQsIHVpbnQ2NF90IGZpcnN0X3BmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDMyX3QgbnIpCiB7Ci0gICAgcmV0dXJuIHhjX2h2bV9tb2RpZmllZF9t ZW1vcnkoeGVuX3hjLCBkb21pZCwgZmlyc3RfcGZuLCBucik7CisgICAgcmV0dXJuIHhlbmRldmlj ZW1vZGVsX21vZGlmaWVkX21lbW9yeSh4ZW5fZG1vZCwgZG9taWQsIGZpcnN0X3BmbiwgbnIpOwog fQogCiAvKiBYZW4gNC4yIHRocm91Z2ggNC42ICovCkBAIC05Nyw2ICsyMzMsNyBAQCB0eXBlZGVm IHhjX2dudHRhYiB4ZW5nbnR0YWJfaGFuZGxlOwogICAgIHhjX2dudHRhYl9tYXBfZG9tYWluX2dy YW50X3JlZnMoaCwgYywgZCwgciwgcCkKIAogI2RlZmluZSB4ZW5mb3JlaWdubWVtb3J5X29wZW4o bCwgZikgeGVuX3hjCisjZGVmaW5lIHhlbmZvcmVpZ25tZW1vcnlfY2xvc2UoaCkKIAogc3RhdGlj IGlubGluZSB2b2lkICp4ZW5mb3JlaWdubWVtb3J5X21hcCh4Y19pbnRlcmZhY2UgKmgsIHVpbnQz Ml90IGRvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBy b3QsIHNpemVfdCBwYWdlcywKQEAgLTI4NSw4ICs0MjIsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg eGVuX21hcF9tZW1vcnlfc2VjdGlvbihkb21pZF90IGRvbSwKICAgICB9CiAKICAgICB0cmFjZV94 ZW5fbWFwX21taW9fcmFuZ2UoaW9zZXJ2aWQsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKLSAgICB4 Y19odm1fbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcih4ZW5feGMsIGRvbSwgaW9zZXJ2aWQs IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfYWRkciwg ZW5kX2FkZHIpOworICAgIHhlbmRldmljZW1vZGVsX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2 ZXIoeGVuX2Rtb2QsIGRvbSwgaW9zZXJ2aWQsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9hZGRyLCBlbmRfYWRkcik7CiB9CiAKIHN0YXRp YyBpbmxpbmUgdm9pZCB4ZW5fdW5tYXBfbWVtb3J5X3NlY3Rpb24oZG9taWRfdCBkb20sCkBAIC0z MDIsOCArNDM5LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHhlbl91bm1hcF9tZW1vcnlfc2VjdGlv bihkb21pZF90IGRvbSwKICAgICB9CiAKICAgICB0cmFjZV94ZW5fdW5tYXBfbW1pb19yYW5nZShp b3NlcnZpZCwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwotICAgIHhjX2h2bV91bm1hcF9pb19yYW5n ZV9mcm9tX2lvcmVxX3NlcnZlcih4ZW5feGMsIGRvbSwgaW9zZXJ2aWQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsK KyAgICB4ZW5kZXZpY2Vtb2RlbF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcih4ZW5f ZG1vZCwgZG9tLCBpb3NlcnZpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxLCBzdGFydF9hZGRyLCBlbmRfYWRkcik7CiB9CiAKIHN0YXRpYyBp bmxpbmUgdm9pZCB4ZW5fbWFwX2lvX3NlY3Rpb24oZG9taWRfdCBkb20sCkBAIC0zMTksOCArNDU2 LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHhlbl9tYXBfaW9fc2VjdGlvbihkb21pZF90IGRvbSwK ICAgICB9CiAKICAgICB0cmFjZV94ZW5fbWFwX3BvcnRpb19yYW5nZShpb3NlcnZpZCwgc3RhcnRf YWRkciwgZW5kX2FkZHIpOwotICAgIHhjX2h2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVy KHhlbl94YywgZG9tLCBpb3NlcnZpZCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGFydF9hZGRyLCBlbmRfYWRkcik7CisgICAgeGVuZGV2aWNlbW9kZWxfbWFw X2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcih4ZW5fZG1vZCwgZG9tLCBpb3NlcnZpZCwgMCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2FkZHIs IGVuZF9hZGRyKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHhlbl91bm1hcF9pb19zZWN0aW9u KGRvbWlkX3QgZG9tLApAQCAtMzM2LDggKzQ3Myw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5f dW5tYXBfaW9fc2VjdGlvbihkb21pZF90IGRvbSwKICAgICB9CiAKICAgICB0cmFjZV94ZW5fdW5t YXBfcG9ydGlvX3JhbmdlKGlvc2VydmlkLCBzdGFydF9hZGRyLCBlbmRfYWRkcik7Ci0gICAgeGNf aHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKHhlbl94YywgZG9tLCBpb3NlcnZp ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgc3RhcnRf YWRkciwgZW5kX2FkZHIpOworICAgIHhlbmRldmljZW1vZGVsX3VubWFwX2lvX3JhbmdlX2Zyb21f aW9yZXFfc2VydmVyKHhlbl9kbW9kLCBkb20sIGlvc2VydmlkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHN0YXJ0X2FkZHIsIGVuZF9hZGRy KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHhlbl9tYXBfcGNpZGV2KGRvbWlkX3QgZG9tLApA QCAtMzUwLDEwICs0ODcsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHhlbl9tYXBfcGNpZGV2KGRv bWlkX3QgZG9tLAogCiAgICAgdHJhY2VfeGVuX21hcF9wY2lkZXYoaW9zZXJ2aWQsIHBjaV9idXNf bnVtKHBjaV9kZXYtPmJ1cyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QocGNp X2Rldi0+ZGV2Zm4pLCBQQ0lfRlVOQyhwY2lfZGV2LT5kZXZmbikpOwotICAgIHhjX2h2bV9tYXBf cGNpZGV2X3RvX2lvcmVxX3NlcnZlcih4ZW5feGMsIGRvbSwgaW9zZXJ2aWQsIDAsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaV9idXNfbnVtKHBjaV9kZXYtPmJ1cyks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBjaV9kZXYt PmRldmZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMo cGNpX2Rldi0+ZGV2Zm4pKTsKKyAgICB4ZW5kZXZpY2Vtb2RlbF9tYXBfcGNpZGV2X3RvX2lvcmVx X3NlcnZlcih4ZW5fZG1vZCwgZG9tLCBpb3NlcnZpZCwgMCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwY2lfYnVzX251bShwY2lfZGV2LT5idXMpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBjaV9k ZXYtPmRldmZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQ0lfRlVOQyhwY2lfZGV2LT5kZXZmbikpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgeGVu X3VubWFwX3BjaWRldihkb21pZF90IGRvbSwKQEAgLTM2NiwxOCArNTAzLDE4IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCB4ZW5fdW5tYXBfcGNpZGV2KGRvbWlkX3QgZG9tLAogCiAgICAgdHJhY2VfeGVu X3VubWFwX3BjaWRldihpb3NlcnZpZCwgcGNpX2J1c19udW0ocGNpX2Rldi0+YnVzKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBjaV9kZXYtPmRldmZuKSwgUENJX0ZVTkMo cGNpX2Rldi0+ZGV2Zm4pKTsKLSAgICB4Y19odm1fdW5tYXBfcGNpZGV2X2Zyb21faW9yZXFfc2Vy dmVyKHhlbl94YywgZG9tLCBpb3NlcnZpZCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBjaV9idXNfbnVtKHBjaV9kZXYtPmJ1cyksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChwY2lfZGV2LT5kZXZmbiksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVOQyhwY2lfZGV2 LT5kZXZmbikpOworICAgIHhlbmRldmljZW1vZGVsX3VubWFwX3BjaWRldl9mcm9tX2lvcmVxX3Nl cnZlcih4ZW5fZG1vZCwgZG9tLCBpb3NlcnZpZCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNpX2J1c19udW0ocGNpX2Rldi0+YnVzKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1Qo cGNpX2Rldi0+ZGV2Zm4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQQ0lfRlVOQyhwY2lfZGV2LT5kZXZmbikpOwogfQogCiBzdGF0aWMgaW5saW5l IHZvaWQgeGVuX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIoZG9taWRfdCBkb20sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9zZXJ2aWRfdCAqaW9zZXJ2aWQpCiB7Ci0g ICAgaW50IHJjID0geGNfaHZtX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIoeGVuX3hjLCBkb20sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFZNX0lPUkVRU1JWX0JVRklPUkVR X0FUT01JQywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb3NlcnZp ZCk7CisgICAgaW50IHJjID0geGVuZGV2aWNlbW9kZWxfY3JlYXRlX2lvcmVxX3NlcnZlcih4ZW5f ZG1vZCwgZG9tLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSFZNX0lPUkVRU1JWX0JVRklPUkVRX0FUT01JQywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlvc2VydmlkKTsKIAogICAgIGlmIChyYyA9PSAwKSB7 CiAgICAgICAgIHRyYWNlX3hlbl9pb3JlcV9zZXJ2ZXJfY3JlYXRlKCppb3NlcnZpZCk7CkBAIC0z OTcsNyArNTM0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHhlbl9kZXN0cm95X2lvcmVxX3NlcnZl cihkb21pZF90IGRvbSwKICAgICB9CiAKICAgICB0cmFjZV94ZW5faW9yZXFfc2VydmVyX2Rlc3Ry b3koaW9zZXJ2aWQpOwotICAgIHhjX2h2bV9kZXN0cm95X2lvcmVxX3NlcnZlcih4ZW5feGMsIGRv bSwgaW9zZXJ2aWQpOworICAgIHhlbmRldmljZW1vZGVsX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKHhl bl9kbW9kLCBkb20sIGlvc2VydmlkKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgeGVuX2dldF9p b3JlcV9zZXJ2ZXJfaW5mbyhkb21pZF90IGRvbSwKQEAgLTQxMiw5ICs1NDksOSBAQCBzdGF0aWMg aW5saW5lIGludCB4ZW5fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKGRvbWlkX3QgZG9tLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmlvcmVxX2V2dGNo bik7CiAgICAgfQogCi0gICAgcmV0dXJuIHhjX2h2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8oeGVu X3hjLCBkb20sIGlvc2VydmlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlvcmVxX3BmbiwgYnVmaW9yZXFfcGZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJ1ZmlvcmVxX2V2dGNobik7CisgICAgcmV0dXJuIHhlbmRldmljZW1vZGVs X2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyh4ZW5fZG1vZCwgZG9tLCBpb3NlcnZpZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvcmVxX3BmbiwgYnVmaW9y ZXFfcGZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnVmaW9yZXFfZXZ0Y2huKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgeGVuX3NldF9pb3JlcV9z ZXJ2ZXJfc3RhdGUoZG9taWRfdCBkb20sCkBAIC00MjYsOCArNTYzLDggQEAgc3RhdGljIGlubGlu ZSBpbnQgeGVuX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUoZG9taWRfdCBkb20sCiAgICAgfQogCiAg ICAgdHJhY2VfeGVuX2lvcmVxX3NlcnZlcl9zdGF0ZShpb3NlcnZpZCwgZW5hYmxlKTsKLSAgICBy ZXR1cm4geGNfaHZtX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUoeGVuX3hjLCBkb20sIGlvc2Vydmlk LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGUpOworICAg IHJldHVybiB4ZW5kZXZpY2Vtb2RlbF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKHhlbl9kbW9kLCBk b20sIGlvc2VydmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVuYWJsZSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEveGVuLWNvbW1vbi5jIGIv eGVuLWNvbW1vbi5jCmluZGV4IDcwM2U3YTUuLmFlNzYxNTAgMTAwNjQ0Ci0tLSBhL3hlbi1jb21t b24uYworKysgYi94ZW4tY29tbW9uLmMKQEAgLTI3LDYgKzI3LDcgQEAKIAogeGNfaW50ZXJmYWNl ICp4ZW5feGM7CiB4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqeGVuX2ZtZW07Cit4ZW5kZXZpY2Vt b2RlbF9oYW5kbGUgKnhlbl9kbW9kOwogCiBzdGF0aWMgaW50IHN0b3JlX2Rldl9pbmZvKGludCBk b21pZCwgQ2hhcmRldiAqY3MsIGNvbnN0IGNoYXIgKnN0cmluZykKIHsKQEAgLTEyOCw2ICsxMjks MTMgQEAgc3RhdGljIGludCB4ZW5faW5pdChNYWNoaW5lU3RhdGUgKm1zKQogICAgICAgICB4Y19p bnRlcmZhY2VfY2xvc2UoeGVuX3hjKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KKyAgICB4 ZW5fZG1vZCA9IHhlbmRldmljZW1vZGVsX29wZW4oMCwgMCk7CisgICAgaWYgKHhlbl9kbW9kID09 IE5VTEwpIHsKKyAgICAgICAgeGVuX3B2X3ByaW50ZihOVUxMLCAwLCAiY2FuJ3Qgb3BlbiB4ZW4g ZGV2aWNlbW9kZWwgaW50ZXJmYWNlXG4iKTsKKyAgICAgICAgeGVuZm9yZWlnbm1lbW9yeV9jbG9z ZSh4ZW5fZm1lbSk7CisgICAgICAgIHhjX2ludGVyZmFjZV9jbG9zZSh4ZW5feGMpOworICAgICAg ICByZXR1cm4gLTE7CisgICAgfQogICAgIHFlbXVfYWRkX3ZtX2NoYW5nZV9zdGF0ZV9oYW5kbGVy KHhlbl9jaGFuZ2Vfc3RhdGVfaGFuZGxlciwgTlVMTCk7CiAKICAgICBnbG9iYWxfc3RhdGVfc2V0 X29wdGlvbmFsKCk7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=