From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v10 22/25] tools: L2 CAT: support get HW info for L2 CAT. Date: Sat, 1 Apr 2017 21:53:53 +0800 Message-ID: <1491054836-30488-23-git-send-email-yi.y.sun@linux.intel.com> References: <1491054836-30488-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cuJUI-0006Rc-6C for xen-devel@lists.xenproject.org; Sat, 01 Apr 2017 13:54:42 +0000 In-Reply-To: <1491054836-30488-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+Ci0tLQp2MTA6CiAgICAtIGNoYW5nZSBtYWNyb3MgbmFtZXMgYWNjb3JkaW5nIHRvIHByZXZp b3VzIGNoYW5nZXMuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY5OgogICAgLSBh ZGQgc29tZSBjYXNlcyB0byBoYW5kbGUgcmV0dXJuIGVycm9yIG5vLgogICAgLSBtb3ZlIHhsX2Nt ZGltcGwuYyBjb2RlcyBpbnRvIHhsL3hsX3Bzci5jLgogICAgLSBjaGFuZ2UgJ2wzX2luZm8nIHRv ICdjYXRfaW5mbycgdG8gY292ZXIgYm90aCBMMyBhbmQgTDIgQ0FULgp2NjoKICAgIC0gYWRqdXN0 ICd7JyBwb3NpdGlvbiBmb3IgJ3N3aXRjaCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgV2VpIExpdSkK ICAgIC0gbW9kaWZ5IGNvbW1pdCBtZXNzYWdlIHRvIHJlbW92ZSBlcnJvciBsb2cuCiAgICAgIChz dWdnZXN0ZWQgYnkgRGFyaW8gRmFnZ2lvbGkpCnY1OgogICAgLSBtb2RpZnkgY29tbWl0IG1lc3Nh Z2UgdG8gcmVtb3ZlIGVycm9yIGxvZy4KICAgICAgKHN1Z2dlc3RlZCBieSBXZWkgTGl1IGFuZCBK YW4gQmV1bGljaCkKICAgIC0gcmVwbGFjZSB1bm5lY2Vzc2FyeSAncmV0dXJuJyB0byAnYnJlYWsn LgogICAgICAoc3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCiAgICAtIHJlc3RvcmUgJ2xpYnhsX3Bzcl9j YXRfZ2V0X2wzX2luZm8nIHRvIGtlZXAgaW50ZXJmYWNlIGJhY2t3YXJkIGNvbXBhdGlibGUKICAg ICAgYnV0IGNoYW5nZSBjb2RlcyBpbiBpdCB0byBjYWxsIG5ldyBmdW5jdGlvbiB0byBnZXQgaHcg aW5mby4KICAgICAgKHN1Z2dlc3RlZCBieSBXZWkgTGl1KQogICAgLSBhZGQgJ0wyX0NCTScgaW50 byAncHNyX2NibV90eXBlJyBiZWNhdXNlIGl0IGlzIGludGVyZmFjZSBjaGFuZ2Ugd2hpY2gKICAg ICAgc2hvdWxkIGJlIGluIHNhbWUgcGF0Y2ggd2l0aCBuZXcgJ0xJQlhMX0hBVkVfJyBtYWNyby4K ICAgICAgKHN1Z2dlc3RlZCBieSBXZWkgTGl1KQogICAgLSBhZGRqdXN0IGxvZ3Mgc2VudGVuY2Ug dG8gbWFrZSB1bm5lY2Vzc2FyeSBlcnJvciBsb2dzIG5vdCBzaG93LgogICAgICAoc3VnZ2VzdGVk IGJ5IFdlaSBMaXUgYW5kIEphbiBCZXVsaWNoKQp2NDoKICAgIC0gY3JlYXRlIHRoaXMgcGF0Y2gg dG8gaGVscCByZXZpZXdlcnMgYmV0dGVyIHVuZGVyc3RhbmQgdGhlIGNvZGVzLgotLS0KIHRvb2xz L2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIHwgIDYgKystLS0KIHRvb2xzL2xpYnhjL3hjX3Bzci5j ICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIHRvb2xzL2xp YnhsL2xpYnhsLmggICAgICAgICAgIHwgIDkgKysrKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsX3Bz ci5jICAgICAgIHwgMjggKysrKysrKysrKysrKysrKysrLS0tLS0KIHRvb2xzL2xpYnhsL2xpYnhs X3R5cGVzLmlkbCAgIHwgIDEgKwogdG9vbHMveGwveGxfcHNyLmMgICAgICAgICAgICAgfCA1MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYv c3lzY3RsLmMgICAgICAgICB8IDEyICsrKysrLS0tLS0KIHhlbi9pbmNsdWRlL3B1YmxpYy9zeXNj dGwuaCAgIHwgIDIgKy0KIDggZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDM4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIv dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKaW5kZXggYTQ4OTgxYS4uOTljNmZhNSAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMv aW5jbHVkZS94ZW5jdHJsLmgKQEAgLTI0NDIsOSArMjQ0Miw5IEBAIGludCB4Y19wc3JfY2F0X3Nl dF9kb21haW5fZGF0YSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCiBpbnQgeGNf cHNyX2NhdF9nZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlk LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhjX3Bzcl9jYXRfdHlwZSB0eXBlLCB1 aW50MzJfdCB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qg KmRhdGEpOwotaW50IHhjX3Bzcl9jYXRfZ2V0X2wzX2luZm8oeGNfaW50ZXJmYWNlICp4Y2gsIHVp bnQzMl90IHNvY2tldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpjb3Nf bWF4LCB1aW50MzJfdCAqY2JtX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg KmNkcF9lbmFibGVkKTsKK2ludCB4Y19wc3JfY2F0X2dldF9pbmZvKHhjX2ludGVyZmFjZSAqeGNo LCB1aW50MzJfdCBzb2NrZXQsIHVuc2lnbmVkIGludCBsdmwsCisgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCAqY29zX21heCwgdWludDMyX3QgKmNibV9sZW4sCisgICAgICAgICAgICAg ICAgICAgICAgICBib29sICpjZHBfZW5hYmxlZCk7CiAKIGludCB4Y19nZXRfY3B1X2xldmVsbGlu Z19jYXBzKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCAqY2Fwcyk7CiBpbnQgeGNfZ2V0X2Nw dV9mZWF0dXJlc2V0KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBpbmRleCwKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhjL3hjX3Bzci5jIGIvdG9vbHMvbGlieGMveGNfcHNyLmMKaW5kZXggNDNi MzI4Ni4uODRhMDhjNCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfcHNyLmMKKysrIGIvdG9v bHMvbGlieGMveGNfcHNyLmMKQEAgLTMxNywyNCArMzE3LDQxIEBAIGludCB4Y19wc3JfY2F0X2dl dF9kb21haW5fZGF0YSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCiAgICAgcmV0 dXJuIHJjOwogfQogCi1pbnQgeGNfcHNyX2NhdF9nZXRfbDNfaW5mbyh4Y19pbnRlcmZhY2UgKnhj aCwgdWludDMyX3Qgc29ja2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg KmNvc19tYXgsIHVpbnQzMl90ICpjYm1fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCAqY2RwX2VuYWJsZWQpCitpbnQgeGNfcHNyX2NhdF9nZXRfaW5mbyh4Y19pbnRlcmZhY2Ug KnhjaCwgdWludDMyX3Qgc29ja2V0LCB1bnNpZ25lZCBpbnQgbHZsLAorICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3QgKmNvc19tYXgsIHVpbnQzMl90ICpjYm1fbGVuLCBib29sICpjZHBf ZW5hYmxlZCkKIHsKLSAgICBpbnQgcmM7CisgICAgaW50IHJjID0gLTE7CiAgICAgREVDTEFSRV9T WVNDVEw7CiAKICAgICBzeXNjdGwuY21kID0gWEVOX1NZU0NUTF9wc3JfY2F0X29wOwotICAgIHN5 c2N0bC51LnBzcl9jYXRfb3AuY21kID0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sM19pbmZvOwog ICAgIHN5c2N0bC51LnBzcl9jYXRfb3AudGFyZ2V0ID0gc29ja2V0OwogCi0gICAgcmMgPSB4Y19z eXNjdGwoeGNoLCAmc3lzY3RsKTsKLSAgICBpZiAoICFyYyApCisgICAgc3dpdGNoICggbHZsICkK ICAgICB7Ci0gICAgICAgICpjb3NfbWF4ID0gc3lzY3RsLnUucHNyX2NhdF9vcC51LmwzX2luZm8u Y29zX21heDsKLSAgICAgICAgKmNibV9sZW4gPSBzeXNjdGwudS5wc3JfY2F0X29wLnUubDNfaW5m by5jYm1fbGVuOwotICAgICAgICAqY2RwX2VuYWJsZWQgPSBzeXNjdGwudS5wc3JfY2F0X29wLnUu bDNfaW5mby5mbGFncyAmCi0gICAgICAgICAgICAgICAgICAgICAgIFhFTl9TWVNDVExfUFNSX0NB VF9MM19DRFA7CisgICAgY2FzZSAyOgorICAgICAgICBzeXNjdGwudS5wc3JfY2F0X29wLmNtZCA9 IFhFTl9TWVNDVExfUFNSX0NBVF9nZXRfbDJfaW5mbzsKKyAgICAgICAgcmMgPSB4Y19zeXNjdGwo eGNoLCAmc3lzY3RsKTsKKyAgICAgICAgaWYgKCAhcmMgKQorICAgICAgICB7CisgICAgICAgICAg ICAqY29zX21heCA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5jb3NfbWF4OworICAg ICAgICAgICAgKmNibV9sZW4gPSBzeXNjdGwudS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY2JtX2xl bjsKKyAgICAgICAgICAgICpjZHBfZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAg IGJyZWFrOworICAgIGNhc2UgMzoKKyAgICAgICAgc3lzY3RsLnUucHNyX2NhdF9vcC5jbWQgPSBY RU5fU1lTQ1RMX1BTUl9DQVRfZ2V0X2wzX2luZm87CisgICAgICAgIHJjID0geGNfc3lzY3RsKHhj aCwgJnN5c2N0bCk7CisgICAgICAgIGlmICggIXJjICkKKyAgICAgICAgeworICAgICAgICAgICAg KmNvc19tYXggPSBzeXNjdGwudS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY29zX21heDsKKyAgICAg ICAgICAgICpjYm1fbGVuID0gc3lzY3RsLnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmNibV9sZW47 CisgICAgICAgICAgICAqY2RwX2VuYWJsZWQgPSBzeXNjdGwudS5wc3JfY2F0X29wLnUuY2F0X2lu Zm8uZmxhZ3MgJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1NZU0NUTF9QU1JfQ0FU X0wzX0NEUDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg ICBlcnJubyA9IEVPUE5PVFNVUFA7CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIHJldHVy biByYzsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29scy9saWJ4bC9saWJ4 bC5oCmluZGV4IDkyZjE3NTEuLjZjNmZiMDEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs LmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuaApAQCAtOTA0LDYgKzkwNCwxMyBAQCB2b2lkIGxp YnhsX21hY19jb3B5KGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9tYWMgKmRzdCwgY29uc3QgbGlieGxf bWFjICpzcmMpOwogICogSWYgdGhpcyBpcyBkZWZpbmVkLCB0aGUgQ29kZSBhbmQgRGF0YSBQcmlv cml0aXphdGlvbiBmZWF0dXJlIGlzIHN1cHBvcnRlZC4KICAqLwogI2RlZmluZSBMSUJYTF9IQVZF X1BTUl9DRFAgMQorCisvKgorICogTElCWExfSEFWRV9QU1JfTDJfQ0FUCisgKgorICogSWYgdGhp cyBpcyBkZWZpbmVkLCB0aGUgTDIgQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5IGZlYXR1cmUg aXMgc3VwcG9ydGVkLgorICovCisjZGVmaW5lIExJQlhMX0hBVkVfUFNSX0wyX0NBVCAxCiAjZW5k aWYKIAogLyoKQEAgLTIxNzIsNiArMjE3OSw4IEBAIGludCBsaWJ4bF9wc3JfY2F0X2dldF9jYm0o bGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICogT24gc3VjY2VzcywgdGhlIGZ1bmN0 aW9uIHJldHVybnMgYW4gYXJyYXkgb2YgZWxlbWVudHMgaW4gJ2luZm8nLAogICogYW5kIHRoZSBs ZW5ndGggaW4gJ25yJy4KICAqLworaW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8obGlieGxfY3R4 ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgKm5yLCB1bnNpZ25lZCBpbnQgbHZsKTsKIGludCBsaWJ4bF9wc3JfY2F0X2dldF9s M19pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9wc3JfY2F0X2luZm8gKippbmZvLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpucik7CiB2b2lkIGxpYnhsX3Bzcl9jYXRfaW5m b19saXN0X2ZyZWUobGlieGxfcHNyX2NhdF9pbmZvICpsaXN0LCBpbnQgbnIpOwpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGwvbGlieGxfcHNyLmMgYi90b29scy9saWJ4bC9saWJ4bF9wc3IuYwppbmRl eCBlYzVjNzlkLi5mNTViYTFlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9wc3IuYwor KysgYi90b29scy9saWJ4bC9saWJ4bF9wc3IuYwpAQCAtOTEsNiArOTEsMTUgQEAgc3RhdGljIHZv aWQgbGlieGxfX3Bzcl9jYXRfbG9nX2Vycl9tc2cobGlieGxfX2djICpnYywgaW50IGVycikKICAg ICBjYXNlIEVOWElPOgogICAgICAgICBtc2cgPSAiVW5hYmxlIHRvIHNldCBjb2RlIG9yIGRhdGEg Q0JNIHdoZW4gQ0RQIGlzIGRpc2FibGVkIjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFSU5W QUw6CisgICAgICAgIG1zZyA9ICJJbnZhbGlkIGlucHV0IG9yIHNvbWUgaW50ZXJuYWwgdmFsdWVz IGFyZSBub3QgZXhwZWN0ZWQiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEVSQU5HRToKKyAg ICAgICAgbXNnID0gIlNvY2tldCBudW1iZXIgaXMgd3JvbmciOworICAgICAgICBicmVhazsKKyAg ICBjYXNlIEVOT1NQQzoKKyAgICAgICAgbXNnID0gIlZhbHVlIGFycmF5IGV4Y2VlZHMgdGhlIHJh bmdlIjsKKyAgICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgogICAgICAgICBsaWJ4bF9fcHNy X2xvZ19lcnJfbXNnKGdjLCBlcnIpOwpAQCAtMzUyLDggKzM2MSw4IEBAIGludCBsaWJ4bF9wc3Jf Y2F0X2dldF9jYm0obGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICAgIHJldHVybiBy YzsKIH0KIAotaW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2wzX2luZm8obGlieGxfY3R4ICpjdHgsIGxp YnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgKm5yKQoraW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8obGlieGxfY3R4ICpjdHgsIGxpYnhs X3Bzcl9jYXRfaW5mbyAqKmluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm5y LCB1bnNpZ25lZCBpbnQgbHZsKQogewogICAgIEdDX0lOSVQoY3R4KTsKICAgICBpbnQgcmM7CkBA IC0zODAsOSArMzg5LDggQEAgaW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2wzX2luZm8obGlieGxfY3R4 ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCiAKICAgICBsaWJ4bF9mb3JfZWFjaF9z ZXRfYml0KHNvY2tldGlkLCBzb2NrZXRtYXApIHsKICAgICAgICAgcHRyW2ldLmlkID0gc29ja2V0 aWQ7Ci0gICAgICAgIGlmICh4Y19wc3JfY2F0X2dldF9sM19pbmZvKGN0eC0+eGNoLCBzb2NrZXRp ZCwgJnB0cltpXS5jb3NfbWF4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm cHRyW2ldLmNibV9sZW4sICZwdHJbaV0uY2RwX2VuYWJsZWQpKSB7Ci0gICAgICAgICAgICBsaWJ4 bF9fcHNyX2NhdF9sb2dfZXJyX21zZyhnYywgZXJybm8pOworICAgICAgICBpZiAoeGNfcHNyX2Nh dF9nZXRfaW5mbyhjdHgtPnhjaCwgc29ja2V0aWQsIGx2bCwgJnB0cltpXS5jb3NfbWF4LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHRyW2ldLmNibV9sZW4sICZwdHJbaV0uY2Rw X2VuYWJsZWQpKSB7CiAgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CiAgICAgICAgICAgICBm cmVlKHB0cik7CiAgICAgICAgICAgICBnb3RvIG91dDsKQEAgLTM5OCw2ICs0MDYsMTYgQEAgb3V0 OgogICAgIHJldHVybiByYzsKIH0KIAoraW50IGxpYnhsX3Bzcl9jYXRfZ2V0X2wzX2luZm8obGli eGxfY3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgKm5yKQoreworICAgIGludCByYzsKKworICAgIHJjID0gbGlieGxf cHNyX2NhdF9nZXRfaW5mbyhjdHgsIGluZm8sIG5yLCAzKTsKKworICAgIHJldHVybiByYzsKK30K Kwogdm9pZCBsaWJ4bF9wc3JfY2F0X2luZm9fbGlzdF9mcmVlKGxpYnhsX3Bzcl9jYXRfaW5mbyAq bGlzdCwgaW50IG5yKQogewogICAgIGludCBpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGli eGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmluZGV4IGE2MTJkMWYu LjVhNDAxYjggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAorKysgYi90 b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKQEAgLTg5OSw2ICs4OTksNyBAQCBsaWJ4bF9wc3Jf Y2JtX3R5cGUgPSBFbnVtZXJhdGlvbigicHNyX2NibV90eXBlIiwgWwogICAgICgxLCAiTDNfQ0JN IiksCiAgICAgKDIsICJMM19DQk1fQ09ERSIpLAogICAgICgzLCAiTDNfQ0JNX0RBVEEiKSwKKyAg ICAoNCwgIkwyX0NCTSIpLAogICAgIF0pCiAKIGxpYnhsX3Bzcl9jYXRfaW5mbyA9IFN0cnVjdCgi cHNyX2NhdF9pbmZvIiwgWwpkaWZmIC0tZ2l0IGEvdG9vbHMveGwveGxfcHNyLmMgYi90b29scy94 bC94bF9wc3IuYwppbmRleCBjMDYxYjI5Li4yNzFiODhmIDEwMDY0NAotLS0gYS90b29scy94bC94 bF9wc3IuYworKysgYi90b29scy94bC94bF9wc3IuYwpAQCAtMjk0LDIxICsyOTQsMTkgQEAgaW50 IG1haW5fcHNyX2NtdF9zaG93KGludCBhcmdjLCBjaGFyICoqYXJndikKIH0KICNlbmRpZgogCi0j aWZkZWYgTElCWExfSEFWRV9QU1JfQ0FUCi1zdGF0aWMgaW50IHBzcl9jYXRfaHdpbmZvKHZvaWQp CisjaWYgZGVmaW5lZChMSUJYTF9IQVZFX1BTUl9DQVQpIHx8IGRlZmluZWQoTElCWExfSEFWRV9Q U1JfTDJfQ0FUKQorc3RhdGljIGludCBwc3JfbDNfY2F0X2h3aW5mbyh2b2lkKQogewotICAgIGlu dCByYzsKLSAgICBpbnQgaSwgbnI7CisgICAgaW50IHJjLCBucjsKKyAgICB1bnNpZ25lZCBpbnQg aTsKICAgICB1aW50MzJfdCBsM19jYWNoZV9zaXplOwogICAgIGxpYnhsX3Bzcl9jYXRfaW5mbyAq aW5mbzsKIAotICAgIHByaW50ZigiQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5IChDQVQpOlxu Iik7Ci0KLSAgICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2wzX2luZm8oY3R4LCAmaW5mbywgJm5y KTsKLSAgICBpZiAocmMpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gZ2V0 IGNhdCBpbmZvXG4iKTsKKyAgICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8oY3R4LCAmaW5m bywgJm5yLCAzKTsKKyAgICBpZiAocmMpCiAgICAgICAgIHJldHVybiByYzsKLSAgICB9CisKKyAg ICBwcmludGYoIkNhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neSAoQ0FUKTpcbiIpOwogCiAgICAg Zm9yIChpID0gMDsgaSA8IG5yOyBpKyspIHsKICAgICAgICAgcmMgPSBsaWJ4bF9wc3JfY210X2dl dF9sM19jYWNoZV9zaXplKGN0eCwgaW5mb1tpXS5pZCwgJmwzX2NhY2hlX3NpemUpOwpAQCAtNDE3 LDcgKzQxNSw3IEBAIHN0YXRpYyBpbnQgcHNyX2NhdF9zaG93KHVpbnQzMl90IGRvbWlkKQogICAg IGludCByYzsKICAgICBsaWJ4bF9wc3JfY2F0X2luZm8gKmluZm87CiAKLSAgICByYyA9IGxpYnhs X3Bzcl9jYXRfZ2V0X2wzX2luZm8oY3R4LCAmaW5mbywgJm5yKTsKKyAgICByYyA9IGxpYnhsX3Bz cl9jYXRfZ2V0X2luZm8oY3R4LCAmaW5mbywgJm5yLCAzKTsKICAgICBpZiAocmMpIHsKICAgICAg ICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gZ2V0IGNhdCBpbmZvXG4iKTsKICAgICAgICAg cmV0dXJuIHJjOwpAQCAtNDM0LDYgKzQzMiwzMiBAQCBvdXQ6CiAgICAgcmV0dXJuIHJjOwogfQog CitzdGF0aWMgaW50IHBzcl9sMl9jYXRfaHdpbmZvKHZvaWQpCit7CisgICAgaW50IHJjOworICAg IHVuc2lnbmVkIGludCBpOworICAgIGludCBucjsKKyAgICBsaWJ4bF9wc3JfY2F0X2luZm8gKmlu Zm87CisKKyAgICByYyA9IGxpYnhsX3Bzcl9jYXRfZ2V0X2luZm8oY3R4LCAmaW5mbywgJm5yLCAy KTsKKyAgICBpZiAocmMpCisgICAgICAgIHJldHVybiByYzsKKworICAgIHByaW50ZigiQ2FjaGUg QWxsb2NhdGlvbiBUZWNobm9sb2d5IChDQVQpOiBMMlxuIik7CisKKyAgICBmb3IgKGkgPSAwOyBp IDwgbnI7IGkrKykgeworICAgICAgICAvKiBUaGVyZSBpcyBubyBDTVQgb24gTDIgY2FjaGUgc28g ZmFyLiAqLworICAgICAgICBwcmludGYoIiUtMTZzOiAldVxuIiwgIlNvY2tldCBJRCIsIGluZm9b aV0uaWQpOworICAgICAgICBwcmludGYoIiUtMTZzOiAldVxuIiwgIk1heGltdW0gQ09TIiwgaW5m b1tpXS5jb3NfbWF4KTsKKyAgICAgICAgcHJpbnRmKCIlLTE2czogJXVcbiIsICJDQk0gbGVuZ3Ro IiwgaW5mb1tpXS5jYm1fbGVuKTsKKyAgICAgICAgcHJpbnRmKCIlLTE2czogJSNsbHhcbiIsICJE ZWZhdWx0IENCTSIsCisgICAgICAgICAgICAgICAoMXVsbCA8PCBpbmZvW2ldLmNibV9sZW4pIC0g MSk7CisgICAgfQorCisgICAgbGlieGxfcHNyX2NhdF9pbmZvX2xpc3RfZnJlZShpbmZvLCBucik7 CisgICAgcmV0dXJuIHJjOworfQorCiBpbnQgbWFpbl9wc3JfY2F0X2NibV9zZXQoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogewogICAgIHVpbnQzMl90IGRvbWlkOwpAQCAtNTUxLDcgKzU3NSwxMSBA QCBpbnQgbWFpbl9wc3JfaHdpbmZvKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgcmV0 ID0gcHNyX2NtdF9od2luZm8oKTsKIAogICAgIGlmICghcmV0ICYmIChhbGwgfHwgY2F0KSkKLSAg ICAgICAgcmV0ID0gcHNyX2NhdF9od2luZm8oKTsKKyAgICAgICAgcmV0ID0gcHNyX2wzX2NhdF9o d2luZm8oKTsKKworICAgIC8qIEwyIENBVCBpcyBpbmRlcGVuZGVudCBvZiBDTVQgYW5kIEwzIENB VCAqLworICAgIGlmIChhbGwgfHwgY2F0KQorICAgICAgICByZXQgPSBwc3JfbDJfY2F0X2h3aW5m bygpOwogCiAgICAgcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zeXNj dGwuYyBiL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYwppbmRleCBiYTZiNmE2Li4xMzBhNWNiIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvc3lzY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L3N5c2N0bC5j CkBAIC0xODMsMTEgKzE4MywxMSBAQCBsb25nIGFyY2hfZG9fc3lzY3RsKAogICAgICAgICAgICAg aWYgKCByZXQgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBzeXNjdGwt PnUucHNyX2NhdF9vcC51LmwzX2luZm8uY29zX21heCA9CisgICAgICAgICAgICBzeXNjdGwtPnUu cHNyX2NhdF9vcC51LmNhdF9pbmZvLmNvc19tYXggPQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhW1BTUl9JTkZPX0lEWF9DT1NfTUFYXTsKLSAgICAgICAgICAgIHN5 c2N0bC0+dS5wc3JfY2F0X29wLnUubDNfaW5mby5jYm1fbGVuID0KKyAgICAgICAgICAgIHN5c2N0 bC0+dS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY2JtX2xlbiA9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGFbUFNSX0lORk9fSURYX0NBVF9DQk1fTEVOXTsKLSAgICAg ICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUubDNfaW5mby5mbGFncyA9CisgICAgICAgICAg ICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmZsYWdzID0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQU1JfSU5GT19JRFhfQ0FUX0ZMQUddOwogCiAg ICAgICAgICAgICBpZiAoICFyZXQgJiYgX19jb3B5X2ZpZWxkX3RvX2d1ZXN0KHVfc3lzY3RsLCBz eXNjdGwsIHUucHNyX2NhdF9vcCkgKQpAQCAtMjA0LDExICsyMDQsMTEgQEAgbG9uZyBhcmNoX2Rv X3N5c2N0bCgKICAgICAgICAgICAgIGlmICggcmV0ICkKICAgICAgICAgICAgICAgICBicmVhazsK IAotICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5sM19pbmZvLmNvc19tYXggPQor ICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5jb3NfbWF4ID0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQU1JfSU5GT19JRFhfQ09T X01BWF07Ci0gICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmwzX2luZm8uY2JtX2xl biA9CisgICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmNibV9sZW4g PQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW1BTUl9JTkZPX0lE WF9DQVRfQ0JNX0xFTl07Ci0gICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmwzX2lu Zm8uZmxhZ3MgPQorICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5m bGFncyA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbUFNSX0lO Rk9fSURYX0NBVF9GTEFHXTsKIAogICAgICAgICAgICAgaWYgKCAhcmV0ICYmIF9fY29weV9maWVs ZF90b19ndWVzdCh1X3N5c2N0bCwgc3lzY3RsLCB1LnBzcl9jYXRfb3ApICkKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwu aAppbmRleCAxZmU4ZmU0Li5hMzk5OGM2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMv c3lzY3RsLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oCkBAIC03NTQsNyArNzU0 LDcgQEAgc3RydWN0IHhlbl9zeXNjdGxfcHNyX2NhdF9vcCB7CiAgICAgICAgICAgICB1aW50MzJf dCBjb3NfbWF4OyAgIC8qIE9VVDogTWF4aW11bSBDT1MgKi8KICNkZWZpbmUgWEVOX1NZU0NUTF9Q U1JfQ0FUX0wzX0NEUCAgICAgICAoMXUgPDwgMCkKICAgICAgICAgICAgIHVpbnQzMl90IGZsYWdz OyAgICAgLyogT1VUOiBDQVQgZmxhZ3MgKi8KLSAgICAgICAgfSBsM19pbmZvOworICAgICAgICB9 IGNhdF9pbmZvOwogICAgIH0gdTsKIH07CiB0eXBlZGVmIHN0cnVjdCB4ZW5fc3lzY3RsX3Bzcl9j YXRfb3AgeGVuX3N5c2N0bF9wc3JfY2F0X29wX3Q7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=