From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v12 20/23] tools: L2 CAT: support get HW info for L2 CAT. Date: Wed, 14 Jun 2017 09:12:53 +0800 Message-ID: <1497402776-22348-21-git-send-email-yi.y.sun@linux.intel.com> References: <1497402776-22348-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dKx4Z-0007yT-Dx for xen-devel@lists.xenproject.org; Wed, 14 Jun 2017 01:26:15 +0000 In-Reply-To: <1497402776-22348-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@linux.intel.com, 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 LgotLS0KLS0tCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCB8ICA2ICsrLS0tCiB0b29s cy9saWJ4Yy94Y19wc3IuYyAgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tCiB0b29scy9saWJ4bC9saWJ4bC5oICAgICAgICAgICB8ICA5ICsrKysrKysrCiB0b29s cy9saWJ4bC9saWJ4bF9wc3IuYyAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKy0tLS0tCiB0 b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICB8ICAxICsKIHRvb2xzL3hsL3hsX3Bzci5jICAg ICAgICAgICAgIHwgNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LQogeGVuL2FyY2gveDg2L3N5c2N0bC5jICAgICAgICAgfCAxMiArKysrKy0tLS0tCiB4ZW4vaW5j bHVkZS9wdWJsaWMvc3lzY3RsLmggICB8ICAyICstCiA4IGZpbGVzIGNoYW5nZWQsIDExMSBpbnNl cnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IDAxZjhk ZmUuLjNmYmNkNzAgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisr KyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0yNDY4LDkgKzI0NjgsOSBAQCBp bnQgeGNfcHNyX2NhdF9zZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90 IGRvbWlkLAogaW50IHhjX3Bzcl9jYXRfZ2V0X2RvbWFpbl9kYXRhKHhjX2ludGVyZmFjZSAqeGNo LCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Y19wc3Jf Y2F0X3R5cGUgdHlwZSwgdWludDMyX3QgdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQ2NF90ICpkYXRhKTsKLWludCB4Y19wc3JfY2F0X2dldF9sM19pbmZvKHhjX2lu dGVyZmFjZSAqeGNoLCB1aW50MzJfdCBzb2NrZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCAqY29zX21heCwgdWludDMyX3QgKmNibV9sZW4sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sICpjZHBfZW5hYmxlZCk7CitpbnQgeGNfcHNyX2NhdF9nZXRfaW5mbyh4 Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qgc29ja2V0LCB1bnNpZ25lZCBpbnQgbHZsLAorICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmNvc19tYXgsIHVpbnQzMl90ICpjYm1fbGVu LAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAqY2RwX2VuYWJsZWQpOwogCiBpbnQgeGNf Z2V0X2NwdV9sZXZlbGxpbmdfY2Fwcyh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgKmNhcHMp OwogaW50IHhjX2dldF9jcHVfZmVhdHVyZXNldCh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qg aW5kZXgsCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19wc3IuYyBiL3Rvb2xzL2xpYnhjL3hj X3Bzci5jCmluZGV4IDQzYjMyODYuLjg0YTA4YzQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hj X3Bzci5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3Bzci5jCkBAIC0zMTcsMjQgKzMxNyw0MSBAQCBp bnQgeGNfcHNyX2NhdF9nZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90 IGRvbWlkLAogICAgIHJldHVybiByYzsKIH0KIAotaW50IHhjX3Bzcl9jYXRfZ2V0X2wzX2luZm8o eGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNvY2tldCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90ICpjb3NfbWF4LCB1aW50MzJfdCAqY2JtX2xlbiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgKmNkcF9lbmFibGVkKQoraW50IHhjX3Bzcl9jYXRfZ2V0X2lu Zm8oeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNvY2tldCwgdW5zaWduZWQgaW50IGx2bCwK KyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpjb3NfbWF4LCB1aW50MzJfdCAqY2Jt X2xlbiwgYm9vbCAqY2RwX2VuYWJsZWQpCiB7Ci0gICAgaW50IHJjOworICAgIGludCByYyA9IC0x OwogICAgIERFQ0xBUkVfU1lTQ1RMOwogCiAgICAgc3lzY3RsLmNtZCA9IFhFTl9TWVNDVExfcHNy X2NhdF9vcDsKLSAgICBzeXNjdGwudS5wc3JfY2F0X29wLmNtZCA9IFhFTl9TWVNDVExfUFNSX0NB VF9nZXRfbDNfaW5mbzsKICAgICBzeXNjdGwudS5wc3JfY2F0X29wLnRhcmdldCA9IHNvY2tldDsK IAotICAgIHJjID0geGNfc3lzY3RsKHhjaCwgJnN5c2N0bCk7Ci0gICAgaWYgKCAhcmMgKQorICAg IHN3aXRjaCAoIGx2bCApCiAgICAgewotICAgICAgICAqY29zX21heCA9IHN5c2N0bC51LnBzcl9j YXRfb3AudS5sM19pbmZvLmNvc19tYXg7Ci0gICAgICAgICpjYm1fbGVuID0gc3lzY3RsLnUucHNy X2NhdF9vcC51LmwzX2luZm8uY2JtX2xlbjsKLSAgICAgICAgKmNkcF9lbmFibGVkID0gc3lzY3Rs LnUucHNyX2NhdF9vcC51LmwzX2luZm8uZmxhZ3MgJgotICAgICAgICAgICAgICAgICAgICAgICBY RU5fU1lTQ1RMX1BTUl9DQVRfTDNfQ0RQOworICAgIGNhc2UgMjoKKyAgICAgICAgc3lzY3RsLnUu cHNyX2NhdF9vcC5jbWQgPSBYRU5fU1lTQ1RMX1BTUl9DQVRfZ2V0X2wyX2luZm87CisgICAgICAg IHJjID0geGNfc3lzY3RsKHhjaCwgJnN5c2N0bCk7CisgICAgICAgIGlmICggIXJjICkKKyAgICAg ICAgeworICAgICAgICAgICAgKmNvc19tYXggPSBzeXNjdGwudS5wc3JfY2F0X29wLnUuY2F0X2lu Zm8uY29zX21heDsKKyAgICAgICAgICAgICpjYm1fbGVuID0gc3lzY3RsLnUucHNyX2NhdF9vcC51 LmNhdF9pbmZvLmNibV9sZW47CisgICAgICAgICAgICAqY2RwX2VuYWJsZWQgPSBmYWxzZTsKKyAg ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIDM6CisgICAgICAgIHN5c2N0bC51LnBz cl9jYXRfb3AuY21kID0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sM19pbmZvOworICAgICAgICBy YyA9IHhjX3N5c2N0bCh4Y2gsICZzeXNjdGwpOworICAgICAgICBpZiAoICFyYyApCisgICAgICAg IHsKKyAgICAgICAgICAgICpjb3NfbWF4ID0gc3lzY3RsLnUucHNyX2NhdF9vcC51LmNhdF9pbmZv LmNvc19tYXg7CisgICAgICAgICAgICAqY2JtX2xlbiA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5j YXRfaW5mby5jYm1fbGVuOworICAgICAgICAgICAgKmNkcF9lbmFibGVkID0gc3lzY3RsLnUucHNy X2NhdF9vcC51LmNhdF9pbmZvLmZsYWdzICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFhF Tl9TWVNDVExfUFNSX0NBVF9MM19DRFA7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg ZGVmYXVsdDoKKyAgICAgICAgZXJybm8gPSBFT1BOT1RTVVBQOworICAgICAgICBicmVhazsKICAg ICB9CiAKICAgICByZXR1cm4gcmM7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5oIGIv dG9vbHMvbGlieGwvbGlieGwuaAppbmRleCBhNDAyMjM2Li45MmRhMmFlIDEwMDY0NAotLS0gYS90 b29scy9saWJ4bC9saWJ4bC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTkxNiw2ICs5 MTYsMTMgQEAgdm9pZCBsaWJ4bF9tYWNfY29weShsaWJ4bF9jdHggKmN0eCwgbGlieGxfbWFjICpk c3QsIGNvbnN0IGxpYnhsX21hYyAqc3JjKTsKICAqIElmIHRoaXMgaXMgZGVmaW5lZCwgdGhlIENv ZGUgYW5kIERhdGEgUHJpb3JpdGl6YXRpb24gZmVhdHVyZSBpcyBzdXBwb3J0ZWQuCiAgKi8KICNk ZWZpbmUgTElCWExfSEFWRV9QU1JfQ0RQIDEKKworLyoKKyAqIExJQlhMX0hBVkVfUFNSX0wyX0NB VAorICoKKyAqIElmIHRoaXMgaXMgZGVmaW5lZCwgdGhlIEwyIENhY2hlIEFsbG9jYXRpb24gVGVj aG5vbG9neSBmZWF0dXJlIGlzIHN1cHBvcnRlZC4KKyAqLworI2RlZmluZSBMSUJYTF9IQVZFX1BT Ul9MMl9DQVQgMQogI2VuZGlmCiAKIC8qCkBAIC0yMTk0LDYgKzIyMDEsOCBAQCBpbnQgbGlieGxf cHNyX2NhdF9nZXRfY2JtKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAqIE9uIHN1 Y2Nlc3MsIHRoZSBmdW5jdGlvbiByZXR1cm5zIGFuIGFycmF5IG9mIGVsZW1lbnRzIGluICdpbmZv JywKICAqIGFuZCB0aGUgbGVuZ3RoIGluICducicuCiAgKi8KK2ludCBsaWJ4bF9wc3JfY2F0X2dl dF9pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKippbmZvLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50ICpuciwgdW5zaWduZWQgaW50IGx2bCk7CiBpbnQgbGli eGxfcHNyX2NhdF9nZXRfbDNfaW5mbyhsaWJ4bF9jdHggKmN0eCwgbGlieGxfcHNyX2NhdF9pbmZv ICoqaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbnIpOwogdm9pZCBs aWJ4bF9wc3JfY2F0X2luZm9fbGlzdF9mcmVlKGxpYnhsX3Bzcl9jYXRfaW5mbyAqbGlzdCwgaW50 IG5yKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5jIGIvdG9vbHMvbGlieGwv bGlieGxfcHNyLmMKaW5kZXggZWM1Yzc5ZC4uZjU1YmExZSAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfcHNyLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfcHNyLmMKQEAgLTkxLDYgKzkx LDE1IEBAIHN0YXRpYyB2b2lkIGxpYnhsX19wc3JfY2F0X2xvZ19lcnJfbXNnKGxpYnhsX19nYyAq Z2MsIGludCBlcnIpCiAgICAgY2FzZSBFTlhJTzoKICAgICAgICAgbXNnID0gIlVuYWJsZSB0byBz ZXQgY29kZSBvciBkYXRhIENCTSB3aGVuIENEUCBpcyBkaXNhYmxlZCI7CiAgICAgICAgIGJyZWFr OworICAgIGNhc2UgRUlOVkFMOgorICAgICAgICBtc2cgPSAiSW52YWxpZCBpbnB1dCBvciBzb21l IGludGVybmFsIHZhbHVlcyBhcmUgbm90IGV4cGVjdGVkIjsKKyAgICAgICAgYnJlYWs7CisgICAg Y2FzZSBFUkFOR0U6CisgICAgICAgIG1zZyA9ICJTb2NrZXQgbnVtYmVyIGlzIHdyb25nIjsKKyAg ICAgICAgYnJlYWs7CisgICAgY2FzZSBFTk9TUEM6CisgICAgICAgIG1zZyA9ICJWYWx1ZSBhcnJh eSBleGNlZWRzIHRoZSByYW5nZSI7CisgICAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKICAg ICAgICAgbGlieGxfX3Bzcl9sb2dfZXJyX21zZyhnYywgZXJyKTsKQEAgLTM1Miw4ICszNjEsOCBA QCBpbnQgbGlieGxfcHNyX2NhdF9nZXRfY2JtKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21p ZCwKICAgICByZXR1cm4gcmM7CiB9CiAKLWludCBsaWJ4bF9wc3JfY2F0X2dldF9sM19pbmZvKGxp YnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKippbmZvLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICpucikKK2ludCBsaWJ4bF9wc3JfY2F0X2dldF9pbmZvKGxpYnhs X2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKippbmZvLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50ICpuciwgdW5zaWduZWQgaW50IGx2bCkKIHsKICAgICBHQ19JTklUKGN0eCk7 CiAgICAgaW50IHJjOwpAQCAtMzgwLDkgKzM4OSw4IEBAIGludCBsaWJ4bF9wc3JfY2F0X2dldF9s M19pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKippbmZvLAogCiAgICAg bGlieGxfZm9yX2VhY2hfc2V0X2JpdChzb2NrZXRpZCwgc29ja2V0bWFwKSB7CiAgICAgICAgIHB0 cltpXS5pZCA9IHNvY2tldGlkOwotICAgICAgICBpZiAoeGNfcHNyX2NhdF9nZXRfbDNfaW5mbyhj dHgtPnhjaCwgc29ja2V0aWQsICZwdHJbaV0uY29zX21heCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnB0cltpXS5jYm1fbGVuLCAmcHRyW2ldLmNkcF9lbmFibGVkKSkgewot ICAgICAgICAgICAgbGlieGxfX3Bzcl9jYXRfbG9nX2Vycl9tc2coZ2MsIGVycm5vKTsKKyAgICAg ICAgaWYgKHhjX3Bzcl9jYXRfZ2V0X2luZm8oY3R4LT54Y2gsIHNvY2tldGlkLCBsdmwsICZwdHJb aV0uY29zX21heCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnB0cltpXS5jYm1f bGVuLCAmcHRyW2ldLmNkcF9lbmFibGVkKSkgewogICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlM OwogICAgICAgICAgICAgZnJlZShwdHIpOwogICAgICAgICAgICAgZ290byBvdXQ7CkBAIC0zOTgs NiArNDA2LDE2IEBAIG91dDoKICAgICByZXR1cm4gcmM7CiB9CiAKK2ludCBsaWJ4bF9wc3JfY2F0 X2dldF9sM19pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKippbmZvLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpucikKK3sKKyAgICBpbnQgcmM7CisK KyAgICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8oY3R4LCBpbmZvLCBuciwgMyk7CisKKyAg ICByZXR1cm4gcmM7Cit9CisKIHZvaWQgbGlieGxfcHNyX2NhdF9pbmZvX2xpc3RfZnJlZShsaWJ4 bF9wc3JfY2F0X2luZm8gKmxpc3QsIGludCBucikKIHsKICAgICBpbnQgaTsKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbCBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlk bAppbmRleCBkOTcwMjg0Li4yNzc2YjZjIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCkBAIC05NjAsNiArOTYw LDcgQEAgbGlieGxfcHNyX2NibV90eXBlID0gRW51bWVyYXRpb24oInBzcl9jYm1fdHlwZSIsIFsK ICAgICAoMSwgIkwzX0NCTSIpLAogICAgICgyLCAiTDNfQ0JNX0NPREUiKSwKICAgICAoMywgIkwz X0NCTV9EQVRBIiksCisgICAgKDQsICJMMl9DQk0iKSwKICAgICBdKQogCiBsaWJ4bF9wc3JfY2F0 X2luZm8gPSBTdHJ1Y3QoInBzcl9jYXRfaW5mbyIsIFsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hs X3Bzci5jIGIvdG9vbHMveGwveGxfcHNyLmMKaW5kZXggYzA2MWIyOS4uMjcxYjg4ZiAxMDA2NDQK LS0tIGEvdG9vbHMveGwveGxfcHNyLmMKKysrIGIvdG9vbHMveGwveGxfcHNyLmMKQEAgLTI5NCwy MSArMjk0LDE5IEBAIGludCBtYWluX3Bzcl9jbXRfc2hvdyhpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiB9CiAjZW5kaWYKIAotI2lmZGVmIExJQlhMX0hBVkVfUFNSX0NBVAotc3RhdGljIGludCBwc3Jf Y2F0X2h3aW5mbyh2b2lkKQorI2lmIGRlZmluZWQoTElCWExfSEFWRV9QU1JfQ0FUKSB8fCBkZWZp bmVkKExJQlhMX0hBVkVfUFNSX0wyX0NBVCkKK3N0YXRpYyBpbnQgcHNyX2wzX2NhdF9od2luZm8o dm9pZCkKIHsKLSAgICBpbnQgcmM7Ci0gICAgaW50IGksIG5yOworICAgIGludCByYywgbnI7Cisg ICAgdW5zaWduZWQgaW50IGk7CiAgICAgdWludDMyX3QgbDNfY2FjaGVfc2l6ZTsKICAgICBsaWJ4 bF9wc3JfY2F0X2luZm8gKmluZm87CiAKLSAgICBwcmludGYoIkNhY2hlIEFsbG9jYXRpb24gVGVj aG5vbG9neSAoQ0FUKTpcbiIpOwotCi0gICAgcmMgPSBsaWJ4bF9wc3JfY2F0X2dldF9sM19pbmZv KGN0eCwgJmluZm8sICZucik7Ci0gICAgaWYgKHJjKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJy LCAiRmFpbGVkIHRvIGdldCBjYXQgaW5mb1xuIik7CisgICAgcmMgPSBsaWJ4bF9wc3JfY2F0X2dl dF9pbmZvKGN0eCwgJmluZm8sICZuciwgMyk7CisgICAgaWYgKHJjKQogICAgICAgICByZXR1cm4g cmM7Ci0gICAgfQorCisgICAgcHJpbnRmKCJDYWNoZSBBbGxvY2F0aW9uIFRlY2hub2xvZ3kgKENB VCk6XG4iKTsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBucjsgaSsrKSB7CiAgICAgICAgIHJjID0g bGlieGxfcHNyX2NtdF9nZXRfbDNfY2FjaGVfc2l6ZShjdHgsIGluZm9baV0uaWQsICZsM19jYWNo ZV9zaXplKTsKQEAgLTQxNyw3ICs0MTUsNyBAQCBzdGF0aWMgaW50IHBzcl9jYXRfc2hvdyh1aW50 MzJfdCBkb21pZCkKICAgICBpbnQgcmM7CiAgICAgbGlieGxfcHNyX2NhdF9pbmZvICppbmZvOwog Ci0gICAgcmMgPSBsaWJ4bF9wc3JfY2F0X2dldF9sM19pbmZvKGN0eCwgJmluZm8sICZucik7Cisg ICAgcmMgPSBsaWJ4bF9wc3JfY2F0X2dldF9pbmZvKGN0eCwgJmluZm8sICZuciwgMyk7CiAgICAg aWYgKHJjKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGdldCBjYXQgaW5m b1xuIik7CiAgICAgICAgIHJldHVybiByYzsKQEAgLTQzNCw2ICs0MzIsMzIgQEAgb3V0OgogICAg IHJldHVybiByYzsKIH0KIAorc3RhdGljIGludCBwc3JfbDJfY2F0X2h3aW5mbyh2b2lkKQorewor ICAgIGludCByYzsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBpbnQgbnI7CisgICAgbGlieGxf cHNyX2NhdF9pbmZvICppbmZvOworCisgICAgcmMgPSBsaWJ4bF9wc3JfY2F0X2dldF9pbmZvKGN0 eCwgJmluZm8sICZuciwgMik7CisgICAgaWYgKHJjKQorICAgICAgICByZXR1cm4gcmM7CisKKyAg ICBwcmludGYoIkNhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neSAoQ0FUKTogTDJcbiIpOworCisg ICAgZm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKKyAgICAgICAgLyogVGhlcmUgaXMgbm8gQ01U IG9uIEwyIGNhY2hlIHNvIGZhci4gKi8KKyAgICAgICAgcHJpbnRmKCIlLTE2czogJXVcbiIsICJT b2NrZXQgSUQiLCBpbmZvW2ldLmlkKTsKKyAgICAgICAgcHJpbnRmKCIlLTE2czogJXVcbiIsICJN YXhpbXVtIENPUyIsIGluZm9baV0uY29zX21heCk7CisgICAgICAgIHByaW50ZigiJS0xNnM6ICV1 XG4iLCAiQ0JNIGxlbmd0aCIsIGluZm9baV0uY2JtX2xlbik7CisgICAgICAgIHByaW50ZigiJS0x NnM6ICUjbGx4XG4iLCAiRGVmYXVsdCBDQk0iLAorICAgICAgICAgICAgICAgKDF1bGwgPDwgaW5m b1tpXS5jYm1fbGVuKSAtIDEpOworICAgIH0KKworICAgIGxpYnhsX3Bzcl9jYXRfaW5mb19saXN0 X2ZyZWUoaW5mbywgbnIpOworICAgIHJldHVybiByYzsKK30KKwogaW50IG1haW5fcHNyX2NhdF9j Ym1fc2V0KGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKICAgICB1aW50MzJfdCBkb21pZDsKQEAg LTU1MSw3ICs1NzUsMTEgQEAgaW50IG1haW5fcHNyX2h3aW5mbyhpbnQgYXJnYywgY2hhciAqKmFy Z3YpCiAgICAgICAgIHJldCA9IHBzcl9jbXRfaHdpbmZvKCk7CiAKICAgICBpZiAoIXJldCAmJiAo YWxsIHx8IGNhdCkpCi0gICAgICAgIHJldCA9IHBzcl9jYXRfaHdpbmZvKCk7CisgICAgICAgIHJl dCA9IHBzcl9sM19jYXRfaHdpbmZvKCk7CisKKyAgICAvKiBMMiBDQVQgaXMgaW5kZXBlbmRlbnQg b2YgQ01UIGFuZCBMMyBDQVQgKi8KKyAgICBpZiAoYWxsIHx8IGNhdCkKKyAgICAgICAgcmV0ID0g cHNyX2wyX2NhdF9od2luZm8oKTsKIAogICAgIHJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvc3lzY3RsLmMgYi94ZW4vYXJjaC94ODYvc3lzY3RsLmMKaW5kZXggNWU5MTc1 NS4uMTRjMTJiNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3N5c2N0bC5jCisrKyBiL3hlbi9h cmNoL3g4Ni9zeXNjdGwuYwpAQCAtMTgzLDExICsxODMsMTEgQEAgbG9uZyBhcmNoX2RvX3N5c2N0 bCgKICAgICAgICAgICAgIGlmICggcmV0ICkKICAgICAgICAgICAgICAgICBicmVhazsKIAotICAg ICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5sM19pbmZvLmNvc19tYXggPQorICAgICAg ICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5jb3NfbWF4ID0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQU1JfSU5GT19JRFhfQ09TX01BWF07 Ci0gICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmwzX2luZm8uY2JtX2xlbiA9Cisg ICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmNibV9sZW4gPQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW1BTUl9JTkZPX0lEWF9DQVRf Q0JNX0xFTl07Ci0gICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmwzX2luZm8uZmxh Z3MgPQorICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5mbGFncyA9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbUFNSX0lORk9fSURY X0NBVF9GTEFHXTsKIAogICAgICAgICAgICAgaWYgKCAhcmV0ICYmIF9fY29weV9maWVsZF90b19n dWVzdCh1X3N5c2N0bCwgc3lzY3RsLCB1LnBzcl9jYXRfb3ApICkKQEAgLTIwMiwxMSArMjAyLDEx IEBAIGxvbmcgYXJjaF9kb19zeXNjdGwoCiAgICAgICAgICAgICBpZiAoIHJldCApCiAgICAgICAg ICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUubDNf aW5mby5jb3NfbWF4ID0KKyAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUuY2F0X2lu Zm8uY29zX21heCA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFb UFNSX0lORk9fSURYX0NPU19NQVhdOwotICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3Au dS5sM19pbmZvLmNibV9sZW4gPQorICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5j YXRfaW5mby5jYm1fbGVuID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YVtQU1JfSU5GT19JRFhfQ0FUX0NCTV9MRU5dOwotICAgICAgICAgICAgc3lzY3RsLT51LnBz cl9jYXRfb3AudS5sM19pbmZvLmZsYWdzID0KKyAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0 X29wLnUuY2F0X2luZm8uZmxhZ3MgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhW1BTUl9JTkZPX0lEWF9DQVRfRkxBR107CiAKICAgICAgICAgICAgIGlmICggIXJl dCAmJiBfX2NvcHlfZmllbGRfdG9fZ3Vlc3QodV9zeXNjdGwsIHN5c2N0bCwgdS5wc3JfY2F0X29w KSApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggYi94ZW4vaW5jbHVk ZS9wdWJsaWMvc3lzY3RsLmgKaW5kZXggNGM3NmQzYS4uOWU1MWFmNiAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwu aApAQCAtNzU0LDcgKzc1NCw3IEBAIHN0cnVjdCB4ZW5fc3lzY3RsX3Bzcl9jYXRfb3AgewogICAg ICAgICAgICAgdWludDMyX3QgY29zX21heDsgICAvKiBPVVQ6IE1heGltdW0gQ09TICovCiAjZGVm aW5lIFhFTl9TWVNDVExfUFNSX0NBVF9MM19DRFAgICAgICAgKDF1IDw8IDApCiAgICAgICAgICAg ICB1aW50MzJfdCBmbGFnczsgICAgIC8qIE9VVDogQ0FUIGZsYWdzICovCi0gICAgICAgIH0gbDNf aW5mbzsKKyAgICAgICAgfSBjYXRfaW5mbzsKICAgICB9IHU7CiB9OwogdHlwZWRlZiBzdHJ1Y3Qg eGVuX3N5c2N0bF9wc3JfY2F0X29wIHhlbl9zeXNjdGxfcHNyX2NhdF9vcF90OwotLSAKMS45LjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK