From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v13 20/23] tools: L2 CAT: support get HW info for L2 CAT. Date: Thu, 6 Jul 2017 09:53:13 +0800 Message-ID: <1499305996-19029-21-git-send-email-yi.y.sun@linux.intel.com> References: <1499305996-19029-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 mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dSwCc-0001Ef-JZ for xen-devel@lists.xenproject.org; Thu, 06 Jul 2017 02:07:34 +0000 In-Reply-To: <1499305996-19029-1-git-send-email-yi.y.sun@linux.intel.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 Cc: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, He Chen , ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHhsL3hjIGNoYW5nZXMgdG8gc3VwcG9ydCBnZXQgSFcgaW5m bwpmb3IgTDIgQ0FULgoKJ3hsIHBzci1od2luZm8nIGlzIHVwZGF0ZWQgdG8gc2hvdyBib3RoIEwz IENBVCBhbmQgTDIgQ0FUCmluZm8uCgpFeGFtcGxlKG9uIG1hY2hpbmUgd2hpY2ggb25seSBzdXBw b3J0cyBMMiBDQVQpOgpDYWNoZSBNb25pdG9yaW5nIFRlY2hub2xvZ3kgKENNVCk6CkVuYWJsZWQg ICAgICAgICA6IDAKQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5IChDQVQpOiBMMgpTb2NrZXQg SUQgICAgICAgOiAwCk1heGltdW0gQ09TICAgICA6IDMKQ0JNIGxlbmd0aCAgICAgIDogOApEZWZh dWx0IENCTSAgICAgOiAweGZmCgpTaWduZWQtb2ZmLWJ5OiBIZSBDaGVuIDxoZS5jaGVuQGxpbnV4 LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5j b20+CkFja2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkFja2VkLWJ5OiBX ZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KdjEyOgogICAgLSBhY2tlZCBieSBXZWkg Zm9yIHRvb2xzIHNpZGUgY2hhbmdlcy4KdjExOgogICAgLSBhY2tlZCBieSBKYW4gZm9yIEh5cGVy dmlzb3Igc2lkZSBjaGFuZ2VzLgp2MTA6CiAgICAtIGNoYW5nZSBtYWNyb3MgbmFtZXMgYWNjb3Jk aW5nIHRvIHByZXZpb3VzIGNoYW5nZXMuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp CnY5OgogICAgLSBhZGQgc29tZSBjYXNlcyB0byBoYW5kbGUgcmV0dXJuIGVycm9yIG5vLgogICAg LSBtb3ZlIHhsX2NtZGltcGwuYyBjb2RlcyBpbnRvIHhsL3hsX3Bzci5jLgogICAgLSBjaGFuZ2Ug J2wzX2luZm8nIHRvICdjYXRfaW5mbycgdG8gY292ZXIgYm90aCBMMyBhbmQgTDIgQ0FULgp2NjoK ICAgIC0gYWRqdXN0ICd7JyBwb3NpdGlvbiBmb3IgJ3N3aXRjaCcuCiAgICAgIChzdWdnZXN0ZWQg YnkgV2VpIExpdSkKICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNzYWdlIHRvIHJlbW92ZSBlcnJvciBs b2cuCiAgICAgIChzdWdnZXN0ZWQgYnkgRGFyaW8gRmFnZ2lvbGkpCnY1OgogICAgLSBtb2RpZnkg Y29tbWl0IG1lc3NhZ2UgdG8gcmVtb3ZlIGVycm9yIGxvZy4KICAgICAgKHN1Z2dlc3RlZCBieSBX ZWkgTGl1IGFuZCBKYW4gQmV1bGljaCkKICAgIC0gcmVwbGFjZSB1bm5lY2Vzc2FyeSAncmV0dXJu JyB0byAnYnJlYWsnLgogICAgICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCiAgICAtIHJlc3RvcmUg J2xpYnhsX3Bzcl9jYXRfZ2V0X2wzX2luZm8nIHRvIGtlZXAgaW50ZXJmYWNlIGJhY2t3YXJkIGNv bXBhdGlibGUKICAgICAgYnV0IGNoYW5nZSBjb2RlcyBpbiBpdCB0byBjYWxsIG5ldyBmdW5jdGlv biB0byBnZXQgaHcgaW5mby4KICAgICAgKHN1Z2dlc3RlZCBieSBXZWkgTGl1KQogICAgLSBhZGQg J0wyX0NCTScgaW50byAncHNyX2NibV90eXBlJyBiZWNhdXNlIGl0IGlzIGludGVyZmFjZSBjaGFu Z2Ugd2hpY2gKICAgICAgc2hvdWxkIGJlIGluIHNhbWUgcGF0Y2ggd2l0aCBuZXcgJ0xJQlhMX0hB VkVfJyBtYWNyby4KICAgICAgKHN1Z2dlc3RlZCBieSBXZWkgTGl1KQogICAgLSBhZGRqdXN0IGxv Z3Mgc2VudGVuY2UgdG8gbWFrZSB1bm5lY2Vzc2FyeSBlcnJvciBsb2dzIG5vdCBzaG93LgogICAg ICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUgYW5kIEphbiBCZXVsaWNoKQp2NDoKICAgIC0gY3JlYXRl IHRoaXMgcGF0Y2ggdG8gaGVscCByZXZpZXdlcnMgYmV0dGVyIHVuZGVyc3RhbmQgdGhlIGNvZGVz LgotLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIHwgIDYgKystLS0KIHRvb2xzL2xp YnhjL3hjX3Bzci5jICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0KIHRvb2xzL2xpYnhsL2xpYnhsLmggICAgICAgICAgIHwgIDkgKysrKysrKysKIHRvb2xzL2xp YnhsL2xpYnhsX3Bzci5jICAgICAgIHwgMjggKysrKysrKysrKysrKysrKysrLS0tLS0KIHRvb2xz L2xpYnhsL2xpYnhsX3R5cGVzLmlkbCAgIHwgIDEgKwogdG9vbHMveGwveGxfcHNyLmMgICAgICAg ICAgICAgfCA1MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiB4 ZW4vYXJjaC94ODYvc3lzY3RsLmMgICAgICAgICB8IDEyICsrKysrLS0tLS0KIHhlbi9pbmNsdWRl L3B1YmxpYy9zeXNjdGwuaCAgIHwgIDIgKy0KIDggZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlv bnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUv eGVuY3RybC5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKaW5kZXggMTYyOWY0MS4u MTZlZDQ1YiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIv dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKQEAgLTI0NzAsOSArMjQ3MCw5IEBAIGludCB4 Y19wc3JfY2F0X3NldF9kb21haW5fZGF0YSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9t aWQsCiBpbnQgeGNfcHNyX2NhdF9nZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVp bnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhjX3Bzcl9jYXRf dHlwZSB0eXBlLCB1aW50MzJfdCB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDY0X3QgKmRhdGEpOwotaW50IHhjX3Bzcl9jYXRfZ2V0X2wzX2luZm8oeGNfaW50ZXJm YWNlICp4Y2gsIHVpbnQzMl90IHNvY2tldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90ICpjb3NfbWF4LCB1aW50MzJfdCAqY2JtX2xlbiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgKmNkcF9lbmFibGVkKTsKK2ludCB4Y19wc3JfY2F0X2dldF9pbmZvKHhjX2lu dGVyZmFjZSAqeGNoLCB1aW50MzJfdCBzb2NrZXQsIHVuc2lnbmVkIGludCBsdmwsCisgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCAqY29zX21heCwgdWludDMyX3QgKmNibV9sZW4sCisg ICAgICAgICAgICAgICAgICAgICAgICBib29sICpjZHBfZW5hYmxlZCk7CiAKIGludCB4Y19nZXRf Y3B1X2xldmVsbGluZ19jYXBzKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCAqY2Fwcyk7CiBp bnQgeGNfZ2V0X2NwdV9mZWF0dXJlc2V0KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBpbmRl eCwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3Bzci5jIGIvdG9vbHMvbGlieGMveGNfcHNy LmMKaW5kZXggNDNiMzI4Ni4uODRhMDhjNCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfcHNy LmMKKysrIGIvdG9vbHMvbGlieGMveGNfcHNyLmMKQEAgLTMxNywyNCArMzE3LDQxIEBAIGludCB4 Y19wc3JfY2F0X2dldF9kb21haW5fZGF0YSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9t aWQsCiAgICAgcmV0dXJuIHJjOwogfQogCi1pbnQgeGNfcHNyX2NhdF9nZXRfbDNfaW5mbyh4Y19p bnRlcmZhY2UgKnhjaCwgdWludDMyX3Qgc29ja2V0LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgKmNvc19tYXgsIHVpbnQzMl90ICpjYm1fbGVuLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vbCAqY2RwX2VuYWJsZWQpCitpbnQgeGNfcHNyX2NhdF9nZXRfaW5mbyh4 Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qgc29ja2V0LCB1bnNpZ25lZCBpbnQgbHZsLAorICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmNvc19tYXgsIHVpbnQzMl90ICpjYm1fbGVu LCBib29sICpjZHBfZW5hYmxlZCkKIHsKLSAgICBpbnQgcmM7CisgICAgaW50IHJjID0gLTE7CiAg ICAgREVDTEFSRV9TWVNDVEw7CiAKICAgICBzeXNjdGwuY21kID0gWEVOX1NZU0NUTF9wc3JfY2F0 X29wOwotICAgIHN5c2N0bC51LnBzcl9jYXRfb3AuY21kID0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dl dF9sM19pbmZvOwogICAgIHN5c2N0bC51LnBzcl9jYXRfb3AudGFyZ2V0ID0gc29ja2V0OwogCi0g ICAgcmMgPSB4Y19zeXNjdGwoeGNoLCAmc3lzY3RsKTsKLSAgICBpZiAoICFyYyApCisgICAgc3dp dGNoICggbHZsICkKICAgICB7Ci0gICAgICAgICpjb3NfbWF4ID0gc3lzY3RsLnUucHNyX2NhdF9v cC51LmwzX2luZm8uY29zX21heDsKLSAgICAgICAgKmNibV9sZW4gPSBzeXNjdGwudS5wc3JfY2F0 X29wLnUubDNfaW5mby5jYm1fbGVuOwotICAgICAgICAqY2RwX2VuYWJsZWQgPSBzeXNjdGwudS5w c3JfY2F0X29wLnUubDNfaW5mby5mbGFncyAmCi0gICAgICAgICAgICAgICAgICAgICAgIFhFTl9T WVNDVExfUFNSX0NBVF9MM19DRFA7CisgICAgY2FzZSAyOgorICAgICAgICBzeXNjdGwudS5wc3Jf Y2F0X29wLmNtZCA9IFhFTl9TWVNDVExfUFNSX0NBVF9nZXRfbDJfaW5mbzsKKyAgICAgICAgcmMg PSB4Y19zeXNjdGwoeGNoLCAmc3lzY3RsKTsKKyAgICAgICAgaWYgKCAhcmMgKQorICAgICAgICB7 CisgICAgICAgICAgICAqY29zX21heCA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5j b3NfbWF4OworICAgICAgICAgICAgKmNibV9sZW4gPSBzeXNjdGwudS5wc3JfY2F0X29wLnUuY2F0 X2luZm8uY2JtX2xlbjsKKyAgICAgICAgICAgICpjZHBfZW5hYmxlZCA9IGZhbHNlOworICAgICAg ICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMzoKKyAgICAgICAgc3lzY3RsLnUucHNyX2Nh dF9vcC5jbWQgPSBYRU5fU1lTQ1RMX1BTUl9DQVRfZ2V0X2wzX2luZm87CisgICAgICAgIHJjID0g eGNfc3lzY3RsKHhjaCwgJnN5c2N0bCk7CisgICAgICAgIGlmICggIXJjICkKKyAgICAgICAgewor ICAgICAgICAgICAgKmNvc19tYXggPSBzeXNjdGwudS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY29z X21heDsKKyAgICAgICAgICAgICpjYm1fbGVuID0gc3lzY3RsLnUucHNyX2NhdF9vcC51LmNhdF9p bmZvLmNibV9sZW47CisgICAgICAgICAgICAqY2RwX2VuYWJsZWQgPSBzeXNjdGwudS5wc3JfY2F0 X29wLnUuY2F0X2luZm8uZmxhZ3MgJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1NZ U0NUTF9QU1JfQ0FUX0wzX0NEUDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZh dWx0OgorICAgICAgICBlcnJubyA9IEVPUE5PVFNVUFA7CisgICAgICAgIGJyZWFrOwogICAgIH0K IAogICAgIHJldHVybiByYzsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29s cy9saWJ4bC9saWJ4bC5oCmluZGV4IGNmODY4N2EuLjUwNGQzNTkgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnhsL2xpYnhsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuaApAQCAtOTIyLDYgKzkyMiwx MyBAQCB2b2lkIGxpYnhsX21hY19jb3B5KGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9tYWMgKmRzdCwg Y29uc3QgbGlieGxfbWFjICpzcmMpOwogICogSWYgdGhpcyBpcyBkZWZpbmVkLCB0aGUgQ29kZSBh bmQgRGF0YSBQcmlvcml0aXphdGlvbiBmZWF0dXJlIGlzIHN1cHBvcnRlZC4KICAqLwogI2RlZmlu ZSBMSUJYTF9IQVZFX1BTUl9DRFAgMQorCisvKgorICogTElCWExfSEFWRV9QU1JfTDJfQ0FUCisg KgorICogSWYgdGhpcyBpcyBkZWZpbmVkLCB0aGUgTDIgQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9s b2d5IGZlYXR1cmUgaXMgc3VwcG9ydGVkLgorICovCisjZGVmaW5lIExJQlhMX0hBVkVfUFNSX0wy X0NBVCAxCiAjZW5kaWYKIAogLyoKQEAgLTIyMDAsNiArMjIwNyw4IEBAIGludCBsaWJ4bF9wc3Jf Y2F0X2dldF9jYm0obGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICogT24gc3VjY2Vz cywgdGhlIGZ1bmN0aW9uIHJldHVybnMgYW4gYXJyYXkgb2YgZWxlbWVudHMgaW4gJ2luZm8nLAog ICogYW5kIHRoZSBsZW5ndGggaW4gJ25yJy4KICAqLworaW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2lu Zm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgKm5yLCB1bnNpZ25lZCBpbnQgbHZsKTsKIGludCBsaWJ4bF9w c3JfY2F0X2dldF9sM19pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKipp bmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpucik7CiB2b2lkIGxpYnhs X3Bzcl9jYXRfaW5mb19saXN0X2ZyZWUobGlieGxfcHNyX2NhdF9pbmZvICpsaXN0LCBpbnQgbnIp OwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfcHNyLmMgYi90b29scy9saWJ4bC9saWJ4 bF9wc3IuYwppbmRleCBlYzVjNzlkLi5mNTViYTFlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9s aWJ4bF9wc3IuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9wc3IuYwpAQCAtOTEsNiArOTEsMTUg QEAgc3RhdGljIHZvaWQgbGlieGxfX3Bzcl9jYXRfbG9nX2Vycl9tc2cobGlieGxfX2djICpnYywg aW50IGVycikKICAgICBjYXNlIEVOWElPOgogICAgICAgICBtc2cgPSAiVW5hYmxlIHRvIHNldCBj b2RlIG9yIGRhdGEgQ0JNIHdoZW4gQ0RQIGlzIGRpc2FibGVkIjsKICAgICAgICAgYnJlYWs7Cisg ICAgY2FzZSBFSU5WQUw6CisgICAgICAgIG1zZyA9ICJJbnZhbGlkIGlucHV0IG9yIHNvbWUgaW50 ZXJuYWwgdmFsdWVzIGFyZSBub3QgZXhwZWN0ZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNl IEVSQU5HRToKKyAgICAgICAgbXNnID0gIlNvY2tldCBudW1iZXIgaXMgd3JvbmciOworICAgICAg ICBicmVhazsKKyAgICBjYXNlIEVOT1NQQzoKKyAgICAgICAgbXNnID0gIlZhbHVlIGFycmF5IGV4 Y2VlZHMgdGhlIHJhbmdlIjsKKyAgICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgogICAgICAg ICBsaWJ4bF9fcHNyX2xvZ19lcnJfbXNnKGdjLCBlcnIpOwpAQCAtMzUyLDggKzM2MSw4IEBAIGlu dCBsaWJ4bF9wc3JfY2F0X2dldF9jYm0obGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAog ICAgIHJldHVybiByYzsKIH0KIAotaW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2wzX2luZm8obGlieGxf Y3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgKm5yKQoraW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8obGlieGxfY3R4 ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgKm5yLCB1bnNpZ25lZCBpbnQgbHZsKQogewogICAgIEdDX0lOSVQoY3R4KTsKICAg ICBpbnQgcmM7CkBAIC0zODAsOSArMzg5LDggQEAgaW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2wzX2lu Zm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCiAKICAgICBsaWJ4 bF9mb3JfZWFjaF9zZXRfYml0KHNvY2tldGlkLCBzb2NrZXRtYXApIHsKICAgICAgICAgcHRyW2ld LmlkID0gc29ja2V0aWQ7Ci0gICAgICAgIGlmICh4Y19wc3JfY2F0X2dldF9sM19pbmZvKGN0eC0+ eGNoLCBzb2NrZXRpZCwgJnB0cltpXS5jb3NfbWF4LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmcHRyW2ldLmNibV9sZW4sICZwdHJbaV0uY2RwX2VuYWJsZWQpKSB7Ci0gICAg ICAgICAgICBsaWJ4bF9fcHNyX2NhdF9sb2dfZXJyX21zZyhnYywgZXJybm8pOworICAgICAgICBp ZiAoeGNfcHNyX2NhdF9nZXRfaW5mbyhjdHgtPnhjaCwgc29ja2V0aWQsIGx2bCwgJnB0cltpXS5j b3NfbWF4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHRyW2ldLmNibV9sZW4s ICZwdHJbaV0uY2RwX2VuYWJsZWQpKSB7CiAgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CiAg ICAgICAgICAgICBmcmVlKHB0cik7CiAgICAgICAgICAgICBnb3RvIG91dDsKQEAgLTM5OCw2ICs0 MDYsMTYgQEAgb3V0OgogICAgIHJldHVybiByYzsKIH0KIAoraW50IGxpYnhsX3Bzcl9jYXRfZ2V0 X2wzX2luZm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm5yKQoreworICAgIGludCByYzsKKworICAg IHJjID0gbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhjdHgsIGluZm8sIG5yLCAzKTsKKworICAgIHJl dHVybiByYzsKK30KKwogdm9pZCBsaWJ4bF9wc3JfY2F0X2luZm9fbGlzdF9mcmVlKGxpYnhsX3Bz cl9jYXRfaW5mbyAqbGlzdCwgaW50IG5yKQogewogICAgIGludCBpOwpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmlu ZGV4IDIyMDQ0MjUuLjY4MzM5YTEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVz LmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKQEAgLTk3NSw2ICs5NzUsNyBA QCBsaWJ4bF9wc3JfY2JtX3R5cGUgPSBFbnVtZXJhdGlvbigicHNyX2NibV90eXBlIiwgWwogICAg ICgxLCAiTDNfQ0JNIiksCiAgICAgKDIsICJMM19DQk1fQ09ERSIpLAogICAgICgzLCAiTDNfQ0JN X0RBVEEiKSwKKyAgICAoNCwgIkwyX0NCTSIpLAogICAgIF0pCiAKIGxpYnhsX3Bzcl9jYXRfaW5m byA9IFN0cnVjdCgicHNyX2NhdF9pbmZvIiwgWwpkaWZmIC0tZ2l0IGEvdG9vbHMveGwveGxfcHNy LmMgYi90b29scy94bC94bF9wc3IuYwppbmRleCBjMDYxYjI5Li4yNzFiODhmIDEwMDY0NAotLS0g YS90b29scy94bC94bF9wc3IuYworKysgYi90b29scy94bC94bF9wc3IuYwpAQCAtMjk0LDIxICsy OTQsMTkgQEAgaW50IG1haW5fcHNyX2NtdF9zaG93KGludCBhcmdjLCBjaGFyICoqYXJndikKIH0K ICNlbmRpZgogCi0jaWZkZWYgTElCWExfSEFWRV9QU1JfQ0FUCi1zdGF0aWMgaW50IHBzcl9jYXRf aHdpbmZvKHZvaWQpCisjaWYgZGVmaW5lZChMSUJYTF9IQVZFX1BTUl9DQVQpIHx8IGRlZmluZWQo TElCWExfSEFWRV9QU1JfTDJfQ0FUKQorc3RhdGljIGludCBwc3JfbDNfY2F0X2h3aW5mbyh2b2lk KQogewotICAgIGludCByYzsKLSAgICBpbnQgaSwgbnI7CisgICAgaW50IHJjLCBucjsKKyAgICB1 bnNpZ25lZCBpbnQgaTsKICAgICB1aW50MzJfdCBsM19jYWNoZV9zaXplOwogICAgIGxpYnhsX3Bz cl9jYXRfaW5mbyAqaW5mbzsKIAotICAgIHByaW50ZigiQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9s b2d5IChDQVQpOlxuIik7Ci0KLSAgICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2wzX2luZm8oY3R4 LCAmaW5mbywgJm5yKTsKLSAgICBpZiAocmMpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJG YWlsZWQgdG8gZ2V0IGNhdCBpbmZvXG4iKTsKKyAgICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2lu Zm8oY3R4LCAmaW5mbywgJm5yLCAzKTsKKyAgICBpZiAocmMpCiAgICAgICAgIHJldHVybiByYzsK LSAgICB9CisKKyAgICBwcmludGYoIkNhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neSAoQ0FUKTpc biIpOwogCiAgICAgZm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKICAgICAgICAgcmMgPSBsaWJ4 bF9wc3JfY210X2dldF9sM19jYWNoZV9zaXplKGN0eCwgaW5mb1tpXS5pZCwgJmwzX2NhY2hlX3Np emUpOwpAQCAtNDE3LDcgKzQxNSw3IEBAIHN0YXRpYyBpbnQgcHNyX2NhdF9zaG93KHVpbnQzMl90 IGRvbWlkKQogICAgIGludCByYzsKICAgICBsaWJ4bF9wc3JfY2F0X2luZm8gKmluZm87CiAKLSAg ICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2wzX2luZm8oY3R4LCAmaW5mbywgJm5yKTsKKyAgICBy YyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8oY3R4LCAmaW5mbywgJm5yLCAzKTsKICAgICBpZiAo cmMpIHsKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gZ2V0IGNhdCBpbmZvXG4i KTsKICAgICAgICAgcmV0dXJuIHJjOwpAQCAtNDM0LDYgKzQzMiwzMiBAQCBvdXQ6CiAgICAgcmV0 dXJuIHJjOwogfQogCitzdGF0aWMgaW50IHBzcl9sMl9jYXRfaHdpbmZvKHZvaWQpCit7CisgICAg aW50IHJjOworICAgIHVuc2lnbmVkIGludCBpOworICAgIGludCBucjsKKyAgICBsaWJ4bF9wc3Jf Y2F0X2luZm8gKmluZm87CisKKyAgICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8oY3R4LCAm aW5mbywgJm5yLCAyKTsKKyAgICBpZiAocmMpCisgICAgICAgIHJldHVybiByYzsKKworICAgIHBy aW50ZigiQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5IChDQVQpOiBMMlxuIik7CisKKyAgICBm b3IgKGkgPSAwOyBpIDwgbnI7IGkrKykgeworICAgICAgICAvKiBUaGVyZSBpcyBubyBDTVQgb24g TDIgY2FjaGUgc28gZmFyLiAqLworICAgICAgICBwcmludGYoIiUtMTZzOiAldVxuIiwgIlNvY2tl dCBJRCIsIGluZm9baV0uaWQpOworICAgICAgICBwcmludGYoIiUtMTZzOiAldVxuIiwgIk1heGlt dW0gQ09TIiwgaW5mb1tpXS5jb3NfbWF4KTsKKyAgICAgICAgcHJpbnRmKCIlLTE2czogJXVcbiIs ICJDQk0gbGVuZ3RoIiwgaW5mb1tpXS5jYm1fbGVuKTsKKyAgICAgICAgcHJpbnRmKCIlLTE2czog JSNsbHhcbiIsICJEZWZhdWx0IENCTSIsCisgICAgICAgICAgICAgICAoMXVsbCA8PCBpbmZvW2ld LmNibV9sZW4pIC0gMSk7CisgICAgfQorCisgICAgbGlieGxfcHNyX2NhdF9pbmZvX2xpc3RfZnJl ZShpbmZvLCBucik7CisgICAgcmV0dXJuIHJjOworfQorCiBpbnQgbWFpbl9wc3JfY2F0X2NibV9z ZXQoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogICAgIHVpbnQzMl90IGRvbWlkOwpAQCAtNTUx LDcgKzU3NSwxMSBAQCBpbnQgbWFpbl9wc3JfaHdpbmZvKGludCBhcmdjLCBjaGFyICoqYXJndikK ICAgICAgICAgcmV0ID0gcHNyX2NtdF9od2luZm8oKTsKIAogICAgIGlmICghcmV0ICYmIChhbGwg fHwgY2F0KSkKLSAgICAgICAgcmV0ID0gcHNyX2NhdF9od2luZm8oKTsKKyAgICAgICAgcmV0ID0g cHNyX2wzX2NhdF9od2luZm8oKTsKKworICAgIC8qIEwyIENBVCBpcyBpbmRlcGVuZGVudCBvZiBD TVQgYW5kIEwzIENBVCAqLworICAgIGlmIChhbGwgfHwgY2F0KQorICAgICAgICByZXQgPSBwc3Jf bDJfY2F0X2h3aW5mbygpOwogCiAgICAgcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9zeXNjdGwuYyBiL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYwppbmRleCA1ZTkxNzU1Li4x NGMxMmI3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc3lzY3RsLmMKKysrIGIveGVuL2FyY2gv eDg2L3N5c2N0bC5jCkBAIC0xODMsMTEgKzE4MywxMSBAQCBsb25nIGFyY2hfZG9fc3lzY3RsKAog ICAgICAgICAgICAgaWYgKCByZXQgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAg ICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmwzX2luZm8uY29zX21heCA9CisgICAgICAgICAg ICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmNvc19tYXggPQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW1BTUl9JTkZPX0lEWF9DT1NfTUFYXTsKLSAg ICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUubDNfaW5mby5jYm1fbGVuID0KKyAgICAg ICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY2JtX2xlbiA9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbUFNSX0lORk9fSURYX0NBVF9DQk1f TEVOXTsKLSAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUubDNfaW5mby5mbGFncyA9 CisgICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmZsYWdzID0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQU1JfSU5GT19JRFhfQ0FU X0ZMQUddOwogCiAgICAgICAgICAgICBpZiAoICFyZXQgJiYgX19jb3B5X2ZpZWxkX3RvX2d1ZXN0 KHVfc3lzY3RsLCBzeXNjdGwsIHUucHNyX2NhdF9vcCkgKQpAQCAtMjAyLDExICsyMDIsMTEgQEAg bG9uZyBhcmNoX2RvX3N5c2N0bCgKICAgICAgICAgICAgIGlmICggcmV0ICkKICAgICAgICAgICAg ICAgICBicmVhazsKIAotICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5sM19pbmZv LmNvc19tYXggPQorICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5j b3NfbWF4ID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQU1Jf SU5GT19JRFhfQ09TX01BWF07Ci0gICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51Lmwz X2luZm8uY2JtX2xlbiA9CisgICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmNhdF9p bmZvLmNibV9sZW4gPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh W1BTUl9JTkZPX0lEWF9DQVRfQ0JNX0xFTl07Ci0gICAgICAgICAgICBzeXNjdGwtPnUucHNyX2Nh dF9vcC51LmwzX2luZm8uZmxhZ3MgPQorICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3Au dS5jYXRfaW5mby5mbGFncyA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGFbUFNSX0lORk9fSURYX0NBVF9GTEFHXTsKIAogICAgICAgICAgICAgaWYgKCAhcmV0ICYm IF9fY29weV9maWVsZF90b19ndWVzdCh1X3N5c2N0bCwgc3lzY3RsLCB1LnBzcl9jYXRfb3ApICkK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaCBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9zeXNjdGwuaAppbmRleCA0Yzc2ZDNhLi45ZTUxYWY2IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9wdWJsaWMvc3lzY3RsLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCkBA IC03NTQsNyArNzU0LDcgQEAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NhdF9vcCB7CiAgICAgICAg ICAgICB1aW50MzJfdCBjb3NfbWF4OyAgIC8qIE9VVDogTWF4aW11bSBDT1MgKi8KICNkZWZpbmUg WEVOX1NZU0NUTF9QU1JfQ0FUX0wzX0NEUCAgICAgICAoMXUgPDwgMCkKICAgICAgICAgICAgIHVp bnQzMl90IGZsYWdzOyAgICAgLyogT1VUOiBDQVQgZmxhZ3MgKi8KLSAgICAgICAgfSBsM19pbmZv OworICAgICAgICB9IGNhdF9pbmZvOwogICAgIH0gdTsKIH07CiB0eXBlZGVmIHN0cnVjdCB4ZW5f c3lzY3RsX3Bzcl9jYXRfb3AgeGVuX3N5c2N0bF9wc3JfY2F0X29wX3Q7Ci0tIAoxLjkuMQoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=