From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v10 05/11] tools: implement the new libxc get hw info interface Date: Tue, 19 Dec 2017 08:42:16 +0800 Message-ID: <1513644142-50972-6-git-send-email-yi.y.sun@linux.intel.com> References: <1513644142-50972-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eR72H-0007O6-Vp for xen-devel@lists.xenproject.org; Tue, 19 Dec 2017 01:49:38 +0000 In-Reply-To: <1513644142-50972-1-git-send-email-yi.y.sun@linux.intel.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: Wei Liu , Chao Peng , Yi Sun , Ian Jackson , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIGEgbmV3IGxpYnhjIGdldCBodyBpbmZvIGludGVyZmFjZSBh bmQgY29ycmVzcG9uZGluZwpkYXRhIHN0cnVjdHVyZXMuIEl0IGFsc28gY2hhbmdlcyBsaWJ4bF9w c3IuYyB0byBjYWxsIHRoaXMgbmV3IGludGVyZmFjZS4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8 eWkueS5zdW5AbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8 cm9nZXIucGF1QGNpdHJpeC5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXgu Y29tPgotLS0KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBJYW4gSmFja3Nv biA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgpDQzogQ2hhbyBQZW5nIDxjaGFvLnAucGVuZ0BsaW51eC5pbnRlbC5j b20+Cgp2NjoKICAgIC0gcmVtb3ZlIHVubmVjZXNzYXJ5IHNwYWNlcyBpbiBicmFja2V0cy4KICAg ICAgKHN1Z2dlc3RlZCBieSBXZWkgTGl1KQogICAgLSB1c2UgYXNzZXJ0IHRvIGNoZWNrIGlucHV0 IGx2bC4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQp2NToKICAgIC0gZGly ZWN0bHkgZGVmaW5lICd4Y19wc3JfaHdfaW5mbycgYXMgdW5pb24gdHlwZS4KICAgICAgKHN1Z2dl c3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBjb252ZXJnZSBMMiBhbmQgTDMgY2FzZXMg aW4gJ3hjX3Bzcl9nZXRfaHdfaW5mbycuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1v bm7DqSkKdjQ6CiAgICAtIHJlbW92ZSAnQUxMT0NfJyBmcm9tIG1hY3JvIG5hbWVzLgogICAgICAo c3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIHJlbW92ZSAnWENfUFNSX0ZFQVRf VU5LTk9XTicgd2hpY2ggaXMgbm90IG5lY2Vzc2FyeS4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dl ciBQYXUgTW9ubsOpKQogICAgLSByZW1vdmUgJ0ZFQVRfJyBmcm9tIGVudW0gaXRlbSBuYW1lcy4K ICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSByZW1vdmUgJ3hjXycg ZnJvbSBzdHJ1Y3QgbmFtZS4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQog ICAgLSBhZGp1c3QgY29kZXMgdG8gcmVkdWNlIGluZGVudGF0aW9uLgogICAgICAoc3VnZ2VzdGVk IGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGFzc2VydCBmb3Igbm90IGhhcHBlbmVkIGNhc2Uu CiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gYWRkIExPR0UgdG8g c2hvdyBlcnJuby4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQp2MzoKICAg IC0gcmVuYW1lICdwc3JfY2F0L1BTUl9DQVQnIHRvICdwc3JfYWxsb2MvUFNSX0FMTE9DJyBhbmQg cmVtb3ZlICdvcC9PUCcKICAgICAgZnJvbSBuYW1lLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2Vy IFBhdSBNb25uw6kpCiAgICAtIHJlbW92ZSAnaW5mbycgZnJvbSAneGNfY2F0X2luZm8nIGFuZCAn eGNfbWJhX2luZm8nLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAt IHNldCBlcnJubyBpbiAneGNfcHNyX2dldF9od19pbmZvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBS b2dlciBQYXUgTW9ubsOpKQogICAgLSByZW1vdmUgJ2lubGluZScuCiAgICAgIChzdWdnZXN0ZWQg YnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gcmVtb3ZlICdwc3InIGZyb20gJ2xpYnhsX19wc3Jf ZmVhdF90eXBlX3RvX2xpYnhjX3Bzcl9mZWF0X3R5cGUnIHRvIG1ha2UKICAgICAgZnVuY3Rpb24g bmFtZSBzaG9ydGVyLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAt IGNoZWNrICd4Y190eXBlJyBpbiAnbGlieGxfcHNyX2NhdF9nZXRfaW5mbycuCiAgICAgIChzdWdn ZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKdjI6CiAgICAtIHNwbGl0IHRoaXMgcGF0Y2ggb3V0 IGZyb20gYSBiaWcgcGF0Y2ggaW4gdjEuCiAgICAgIChzdWdnZXN0ZWQgYnkgV2VpIExpdSkKICAg IC0gY2hhbmdlICdDQVRfSU5GTycgYW5kICdNQkFfSU5GTycgdG8gJ0NBVCcgYW5kICdNQkEnLgog ICAgICAoc3VnZ2VzdGVkIGJ5IENoYW8gUGVuZykKLS0tCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hl bmN0cmwuaCB8IDI3ICsrKysrKysrKysrKysrKysrKy0tLQogdG9vbHMvbGlieGMveGNfcHNyLmMg ICAgICAgICAgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t CiB0b29scy9saWJ4bC9saWJ4bF9wc3IuYyAgICAgICB8IDM4ICsrKysrKysrKysrKysrKysrKysr KysrKysrKystLQogMyBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xz L2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IDY2NmRiMGIuLjlmYzMzNDggMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1 ZGUveGVuY3RybC5oCkBAIC0yNDk0LDYgKzI0OTQsMjggQEAgZW51bSB4Y19wc3JfY2F0X3R5cGUg ewogfTsKIHR5cGVkZWYgZW51bSB4Y19wc3JfY2F0X3R5cGUgeGNfcHNyX2NhdF90eXBlOwogCitl bnVtIHhjX3Bzcl9mZWF0X3R5cGUgeworICAgIFhDX1BTUl9DQVRfTDMsCisgICAgWENfUFNSX0NB VF9MMiwKKyAgICBYQ19QU1JfTUJBLAorfTsKK3R5cGVkZWYgZW51bSB4Y19wc3JfZmVhdF90eXBl IHhjX3Bzcl9mZWF0X3R5cGU7CisKK3VuaW9uIHhjX3Bzcl9od19pbmZvIHsKKyAgICBzdHJ1Y3Qg eworICAgICAgICB1aW50MzJfdCBjb3NfbWF4OworICAgICAgICB1aW50MzJfdCBjYm1fbGVuOwor ICAgICAgICBib29sICAgICBjZHBfZW5hYmxlZDsKKyAgICB9IGNhdDsKKworICAgIHN0cnVjdCB7 CisgICAgICAgIHVpbnQzMl90IGNvc19tYXg7CisgICAgICAgIHVpbnQzMl90IHRocnRsX21heDsK KyAgICAgICAgYm9vbCAgICAgbGluZWFyOworICAgIH0gbWJhOworfTsKK3R5cGVkZWYgdW5pb24g eGNfcHNyX2h3X2luZm8geGNfcHNyX2h3X2luZm87CisKIGludCB4Y19wc3JfY210X2F0dGFjaCh4 Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQpOwogaW50IHhjX3Bzcl9jbXRfZGV0YWNo KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCk7CiBpbnQgeGNfcHNyX2NtdF9nZXRf ZG9tYWluX3JtaWQoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLApAQCAtMjUxNSw5 ICsyNTM3LDggQEAgaW50IHhjX3Bzcl9jYXRfc2V0X2RvbWFpbl9kYXRhKHhjX2ludGVyZmFjZSAq eGNoLCB1aW50MzJfdCBkb21pZCwKIGludCB4Y19wc3JfY2F0X2dldF9kb21haW5fZGF0YSh4Y19p bnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeGNfcHNyX2NhdF90eXBlIHR5cGUsIHVpbnQzMl90IHRhcmdldCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqZGF0YSk7Ci1pbnQgeGNfcHNyX2NhdF9nZXRf aW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qgc29ja2V0LCB1bnNpZ25lZCBpbnQgbHZs LAotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmNvc19tYXgsIHVpbnQzMl90ICpj Ym1fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAqY2RwX2VuYWJsZWQpOworaW50 IHhjX3Bzcl9nZXRfaHdfaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qgc29ja2V0LAor ICAgICAgICAgICAgICAgICAgICAgICB4Y19wc3JfZmVhdF90eXBlIHR5cGUsIHhjX3Bzcl9od19p bmZvICpod19pbmZvKTsKIAogaW50IHhjX2dldF9jcHVfbGV2ZWxsaW5nX2NhcHMoeGNfaW50ZXJm YWNlICp4Y2gsIHVpbnQzMl90ICpjYXBzKTsKIGludCB4Y19nZXRfY3B1X2ZlYXR1cmVzZXQoeGNf aW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGluZGV4LApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMv eGNfcHNyLmMgYi90b29scy9saWJ4Yy94Y19wc3IuYwppbmRleCA3OGRlYmEwLi4yMzM1ODQyIDEw MDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19wc3IuYworKysgYi90b29scy9saWJ4Yy94Y19wc3Iu YwpAQCAtMzIzLDM3ICszMjMsNTIgQEAgaW50IHhjX3Bzcl9jYXRfZ2V0X2RvbWFpbl9kYXRhKHhj X2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKICAgICByZXR1cm4gcmM7CiB9CiAKLWlu dCB4Y19wc3JfY2F0X2dldF9pbmZvKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBzb2NrZXQs IHVuc2lnbmVkIGludCBsdmwsCi0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqY29z X21heCwgdWludDMyX3QgKmNibV9sZW4sIGJvb2wgKmNkcF9lbmFibGVkKQoraW50IHhjX3Bzcl9n ZXRfaHdfaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qgc29ja2V0LAorICAgICAgICAg ICAgICAgICAgICAgICB4Y19wc3JfZmVhdF90eXBlIHR5cGUsIHhjX3Bzcl9od19pbmZvICpod19p bmZvKQogewogICAgIGludCByYyA9IC0xOwogICAgIERFQ0xBUkVfU1lTQ1RMOwogCisgICAgaWYg KCAhaHdfaW5mbyApCisgICAgeworICAgICAgICBlcnJubyA9IEVJTlZBTDsKKyAgICAgICAgcmV0 dXJuIHJjOworICAgIH0KKwogICAgIHN5c2N0bC5jbWQgPSBYRU5fU1lTQ1RMX3Bzcl9hbGxvYzsK ICAgICBzeXNjdGwudS5wc3JfYWxsb2MudGFyZ2V0ID0gc29ja2V0OwogCi0gICAgc3dpdGNoICgg bHZsICkKKyAgICBzd2l0Y2ggKCB0eXBlICkKICAgICB7Ci0gICAgY2FzZSAyOgotICAgICAgICBz eXNjdGwudS5wc3JfYWxsb2MuY21kID0gWEVOX1NZU0NUTF9QU1JfZ2V0X2wyX2luZm87CisgICAg Y2FzZSBYQ19QU1JfQ0FUX0wyOgorICAgIGNhc2UgWENfUFNSX0NBVF9MMzoKKyAgICAgICAgc3lz Y3RsLnUucHNyX2FsbG9jLmNtZCA9ICh0eXBlID09IFhDX1BTUl9DQVRfTDIpID8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9TWVNDVExfUFNSX2dldF9sMl9pbmZvIDoKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9TWVNDVExfUFNSX2dldF9sM19pbmZv OworCiAgICAgICAgIHJjID0geGNfc3lzY3RsKHhjaCwgJnN5c2N0bCk7Ci0gICAgICAgIGlmICgg IXJjICkKLSAgICAgICAgewotICAgICAgICAgICAgKmNvc19tYXggPSBzeXNjdGwudS5wc3JfYWxs b2MudS5jYXRfaW5mby5jb3NfbWF4OwotICAgICAgICAgICAgKmNibV9sZW4gPSBzeXNjdGwudS5w c3JfYWxsb2MudS5jYXRfaW5mby5jYm1fbGVuOwotICAgICAgICAgICAgKmNkcF9lbmFibGVkID0g ZmFsc2U7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBicmVhazsK KworICAgICAgICBod19pbmZvLT5jYXQuY29zX21heCA9IHN5c2N0bC51LnBzcl9hbGxvYy51LmNh dF9pbmZvLmNvc19tYXg7CisgICAgICAgIGh3X2luZm8tPmNhdC5jYm1fbGVuID0gc3lzY3RsLnUu cHNyX2FsbG9jLnUuY2F0X2luZm8uY2JtX2xlbjsKKyAgICAgICAgaHdfaW5mby0+Y2F0LmNkcF9l bmFibGVkID0gKHR5cGUgPT0gWENfUFNSX0NBVF9MMikgPworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmYWxzZSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChzeXNjdGwudS5wc3JfYWxsb2MudS5jYXRfaW5mby5mbGFncyAmCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBYRU5fU1lTQ1RMX1BTUl9DQVRfTDNfQ0RQKTsKKwogICAgICAg ICBicmVhazsKLSAgICBjYXNlIDM6Ci0gICAgICAgIHN5c2N0bC51LnBzcl9hbGxvYy5jbWQgPSBY RU5fU1lTQ1RMX1BTUl9nZXRfbDNfaW5mbzsKKyAgICBjYXNlIFhDX1BTUl9NQkE6CisgICAgICAg IHN5c2N0bC51LnBzcl9hbGxvYy5jbWQgPSBYRU5fU1lTQ1RMX1BTUl9nZXRfbWJhX2luZm87CiAg ICAgICAgIHJjID0geGNfc3lzY3RsKHhjaCwgJnN5c2N0bCk7Ci0gICAgICAgIGlmICggIXJjICkK LSAgICAgICAgewotICAgICAgICAgICAgKmNvc19tYXggPSBzeXNjdGwudS5wc3JfYWxsb2MudS5j YXRfaW5mby5jb3NfbWF4OwotICAgICAgICAgICAgKmNibV9sZW4gPSBzeXNjdGwudS5wc3JfYWxs b2MudS5jYXRfaW5mby5jYm1fbGVuOwotICAgICAgICAgICAgKmNkcF9lbmFibGVkID0gc3lzY3Rs LnUucHNyX2FsbG9jLnUuY2F0X2luZm8uZmxhZ3MgJgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgWEVOX1NZU0NUTF9QU1JfQ0FUX0wzX0NEUDsKLSAgICAgICAgfQorICAgICAgICBpZiAoIHJj ICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGh3X2luZm8tPm1iYS5jb3NfbWF4ID0g c3lzY3RsLnUucHNyX2FsbG9jLnUubWJhX2luZm8uY29zX21heDsKKyAgICAgICAgaHdfaW5mby0+ bWJhLnRocnRsX21heCA9IHN5c2N0bC51LnBzcl9hbGxvYy51Lm1iYV9pbmZvLnRocnRsX21heDsK KyAgICAgICAgaHdfaW5mby0+bWJhLmxpbmVhciA9IHN5c2N0bC51LnBzcl9hbGxvYy51Lm1iYV9p bmZvLmZsYWdzICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9TWVNDVExfUFNS X01CQV9MSU5FQVI7CisKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgZXJy bm8gPSBFT1BOT1RTVVBQOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfcHNyLmMgYi90 b29scy9saWJ4bC9saWJ4bF9wc3IuYwppbmRleCBkNGY1ZjY3Li5lMWNjMjUwIDEwMDY0NAotLS0g YS90b29scy9saWJ4bC9saWJ4bF9wc3IuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9wc3IuYwpA QCAtMzYxLDYgKzM2MSwzMSBAQCBpbnQgbGlieGxfcHNyX2NhdF9nZXRfY2JtKGxpYnhsX2N0eCAq Y3R4LCB1aW50MzJfdCBkb21pZCwKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyB4Y19wc3Jf ZmVhdF90eXBlIGxpYnhsX19mZWF0X3R5cGVfdG9fbGlieGNfZmVhdF90eXBlKAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnhsX3Bzcl9mZWF0X3R5cGUgdHlwZSwgdW5zaWduZWQgaW50 IGx2bCkKK3sKKyAgICB4Y19wc3JfZmVhdF90eXBlIHhjX3R5cGU7CisKKyAgICBzd2l0Y2ggKHR5 cGUpIHsKKyAgICBjYXNlIExJQlhMX1BTUl9GRUFUX1RZUEVfQ0FUOgorICAgICAgICBhc3NlcnQo bHZsID09IDMgfHwgbHZsID09IDIpOworCisgICAgICAgIGlmIChsdmwgPT0gMykKKyAgICAgICAg ICAgIHhjX3R5cGUgPSBYQ19QU1JfQ0FUX0wzOworICAgICAgICBpZiAobHZsID09IDIpCisgICAg ICAgICAgICB4Y190eXBlID0gWENfUFNSX0NBVF9MMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz ZSBMSUJYTF9QU1JfRkVBVF9UWVBFX01CQToKKyAgICAgICAgeGNfdHlwZSA9IFhDX1BTUl9NQkE7 CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIC8qIENvdWxkIG5vdCBoYXBw ZW4gKi8KKyAgICAgICAgYXNzZXJ0KDApOworICAgIH0KKworICAgIHJldHVybiB4Y190eXBlOwor fQorCiBpbnQgbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhsaWJ4bF9jdHggKmN0eCwgbGlieGxfcHNy X2NhdF9pbmZvICoqaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCAqbnIsIHVuc2lnbmVkIGludCBsdmwpCiB7CkBAIC0zNjksNiArMzk0LDggQEAgaW50IGxpYnhs X3Bzcl9jYXRfZ2V0X2luZm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmlu Zm8sCiAgICAgaW50IGkgPSAwLCBzb2NrZXRpZCwgbnJfc29ja2V0czsKICAgICBsaWJ4bF9iaXRt YXAgc29ja2V0bWFwOwogICAgIGxpYnhsX3Bzcl9jYXRfaW5mbyAqcHRyOworICAgIHhjX3Bzcl9o d19pbmZvIGh3X2luZm87CisgICAgeGNfcHNyX2ZlYXRfdHlwZSB4Y190eXBlOwogCiAgICAgbGli eGxfYml0bWFwX2luaXQoJnNvY2tldG1hcCk7CiAKQEAgLTM4NSwxNiArNDEyLDIzIEBAIGludCBs aWJ4bF9wc3JfY2F0X2dldF9pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8g KippbmZvLAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKKyAgICB4Y190eXBlID0gbGlieGxf X2ZlYXRfdHlwZV90b19saWJ4Y19mZWF0X3R5cGUoTElCWExfUFNSX0ZFQVRfVFlQRV9DQVQsIGx2 bCk7CisKICAgICBwdHIgPSBsaWJ4bF9fbWFsbG9jKE5PR0MsIG5yX3NvY2tldHMgKiBzaXplb2Yo bGlieGxfcHNyX2NhdF9pbmZvKSk7CiAKICAgICBsaWJ4bF9mb3JfZWFjaF9zZXRfYml0KHNvY2tl dGlkLCBzb2NrZXRtYXApIHsKICAgICAgICAgcHRyW2ldLmlkID0gc29ja2V0aWQ7Ci0gICAgICAg IGlmICh4Y19wc3JfY2F0X2dldF9pbmZvKGN0eC0+eGNoLCBzb2NrZXRpZCwgbHZsLCAmcHRyW2ld LmNvc19tYXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwdHJbaV0uY2JtX2xl biwgJnB0cltpXS5jZHBfZW5hYmxlZCkpIHsKKyAgICAgICAgaWYgKHhjX3Bzcl9nZXRfaHdfaW5m byhjdHgtPnhjaCwgc29ja2V0aWQsIHhjX3R5cGUsICZod19pbmZvKSkgeworICAgICAgICAgICAg TE9HRShFUlJPUiwgImZhaWxlZCB0byBnZXQgaHcgaW5mbyIpOwogICAgICAgICAgICAgcmMgPSBF UlJPUl9GQUlMOwogICAgICAgICAgICAgZnJlZShwdHIpOwogICAgICAgICAgICAgZ290byBvdXQ7 CiAgICAgICAgIH0KKworICAgICAgICBwdHJbaV0uY29zX21heCA9IGh3X2luZm8uY2F0LmNvc19t YXg7CisgICAgICAgIHB0cltpXS5jYm1fbGVuID0gaHdfaW5mby5jYXQuY2JtX2xlbjsKKyAgICAg ICAgcHRyW2ldLmNkcF9lbmFibGVkID0gaHdfaW5mby5jYXQuY2RwX2VuYWJsZWQ7CisKICAgICAg ICAgaSsrOwogICAgIH0KIAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs