From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v15 20/23] tools: L2 CAT: support get HW info for L2 CAT. Date: Tue, 1 Aug 2017 16:48:51 +0800 Message-ID: <1501577334-7431-21-git-send-email-yi.y.sun@linux.intel.com> References: <1501577334-7431-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 1dcT6y-0005jE-3E for xen-devel@lists.xenproject.org; Tue, 01 Aug 2017 09:05:08 +0000 In-Reply-To: <1501577334-7431-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 ZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KdjE1OgogICAgLSByZWJhc2UgdG8gbGF0 ZXN0IG1hc3Rlci4KdjEyOgogICAgLSBhY2tlZCBieSBXZWkgZm9yIHRvb2xzIHNpZGUgY2hhbmdl cy4KdjExOgogICAgLSBhY2tlZCBieSBKYW4gZm9yIEh5cGVydmlzb3Igc2lkZSBjaGFuZ2VzLgp2 MTA6CiAgICAtIGNoYW5nZSBtYWNyb3MgbmFtZXMgYWNjb3JkaW5nIHRvIHByZXZpb3VzIGNoYW5n ZXMuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY5OgogICAgLSBhZGQgc29tZSBj YXNlcyB0byBoYW5kbGUgcmV0dXJuIGVycm9yIG5vLgogICAgLSBtb3ZlIHhsX2NtZGltcGwuYyBj b2RlcyBpbnRvIHhsL3hsX3Bzci5jLgogICAgLSBjaGFuZ2UgJ2wzX2luZm8nIHRvICdjYXRfaW5m bycgdG8gY292ZXIgYm90aCBMMyBhbmQgTDIgQ0FULgp2NjoKICAgIC0gYWRqdXN0ICd7JyBwb3Np dGlvbiBmb3IgJ3N3aXRjaCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgV2VpIExpdSkKICAgIC0gbW9k aWZ5IGNvbW1pdCBtZXNzYWdlIHRvIHJlbW92ZSBlcnJvciBsb2cuCiAgICAgIChzdWdnZXN0ZWQg YnkgRGFyaW8gRmFnZ2lvbGkpCnY1OgogICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UgdG8gcmVt b3ZlIGVycm9yIGxvZy4KICAgICAgKHN1Z2dlc3RlZCBieSBXZWkgTGl1IGFuZCBKYW4gQmV1bGlj aCkKICAgIC0gcmVwbGFjZSB1bm5lY2Vzc2FyeSAncmV0dXJuJyB0byAnYnJlYWsnLgogICAgICAo c3VnZ2VzdGVkIGJ5IFdlaSBMaXUpCiAgICAtIHJlc3RvcmUgJ2xpYnhsX3Bzcl9jYXRfZ2V0X2wz X2luZm8nIHRvIGtlZXAgaW50ZXJmYWNlIGJhY2t3YXJkIGNvbXBhdGlibGUKICAgICAgYnV0IGNo YW5nZSBjb2RlcyBpbiBpdCB0byBjYWxsIG5ldyBmdW5jdGlvbiB0byBnZXQgaHcgaW5mby4KICAg ICAgKHN1Z2dlc3RlZCBieSBXZWkgTGl1KQogICAgLSBhZGQgJ0wyX0NCTScgaW50byAncHNyX2Ni bV90eXBlJyBiZWNhdXNlIGl0IGlzIGludGVyZmFjZSBjaGFuZ2Ugd2hpY2gKICAgICAgc2hvdWxk IGJlIGluIHNhbWUgcGF0Y2ggd2l0aCBuZXcgJ0xJQlhMX0hBVkVfJyBtYWNyby4KICAgICAgKHN1 Z2dlc3RlZCBieSBXZWkgTGl1KQogICAgLSBhZGRqdXN0IGxvZ3Mgc2VudGVuY2UgdG8gbWFrZSB1 bm5lY2Vzc2FyeSBlcnJvciBsb2dzIG5vdCBzaG93LgogICAgICAoc3VnZ2VzdGVkIGJ5IFdlaSBM aXUgYW5kIEphbiBCZXVsaWNoKQp2NDoKICAgIC0gY3JlYXRlIHRoaXMgcGF0Y2ggdG8gaGVscCBy ZXZpZXdlcnMgYmV0dGVyIHVuZGVyc3RhbmQgdGhlIGNvZGVzLgotLS0KIHRvb2xzL2xpYnhjL2lu Y2x1ZGUveGVuY3RybC5oIHwgIDYgKystLS0KIHRvb2xzL2xpYnhjL3hjX3Bzci5jICAgICAgICAg IHwgMzkgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIHRvb2xzL2xpYnhsL2xpYnhs LmggICAgICAgICAgIHwgIDkgKysrKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsX3Bzci5jICAgICAg IHwgMjggKysrKysrKysrKysrKysrKysrLS0tLS0KIHRvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlk bCAgIHwgIDEgKwogdG9vbHMveGwveGxfcHNyLmMgICAgICAgICAgICAgfCA1MiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvc3lzY3RsLmMg ICAgICAgICB8IDEyICsrKysrLS0tLS0KIHhlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaCAgIHwg IDIgKy0KIDggZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMvbGli eGMvaW5jbHVkZS94ZW5jdHJsLmgKaW5kZXggYmRlODMxMy4uZDg4NjQyZSAxMDA2NDQKLS0tIGEv dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94 ZW5jdHJsLmgKQEAgLTI0NzgsOSArMjQ3OCw5IEBAIGludCB4Y19wc3JfY2F0X3NldF9kb21haW5f ZGF0YSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCiBpbnQgeGNfcHNyX2NhdF9n ZXRfZG9tYWluX2RhdGEoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHhjX3Bzcl9jYXRfdHlwZSB0eXBlLCB1aW50MzJfdCB0 YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgKmRhdGEpOwot aW50IHhjX3Bzcl9jYXRfZ2V0X2wzX2luZm8oeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IHNv Y2tldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpjb3NfbWF4LCB1aW50 MzJfdCAqY2JtX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgKmNkcF9lbmFi bGVkKTsKK2ludCB4Y19wc3JfY2F0X2dldF9pbmZvKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJf dCBzb2NrZXQsIHVuc2lnbmVkIGludCBsdmwsCisgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCAqY29zX21heCwgdWludDMyX3QgKmNibV9sZW4sCisgICAgICAgICAgICAgICAgICAgICAg ICBib29sICpjZHBfZW5hYmxlZCk7CiAKIGludCB4Y19nZXRfY3B1X2xldmVsbGluZ19jYXBzKHhj X2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCAqY2Fwcyk7CiBpbnQgeGNfZ2V0X2NwdV9mZWF0dXJl c2V0KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBpbmRleCwKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhjL3hjX3Bzci5jIGIvdG9vbHMvbGlieGMveGNfcHNyLmMKaW5kZXggNDNiMzI4Ni4uODRh MDhjNCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfcHNyLmMKKysrIGIvdG9vbHMvbGlieGMv eGNfcHNyLmMKQEAgLTMxNywyNCArMzE3LDQxIEBAIGludCB4Y19wc3JfY2F0X2dldF9kb21haW5f ZGF0YSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsCiAgICAgcmV0dXJuIHJjOwog fQogCi1pbnQgeGNfcHNyX2NhdF9nZXRfbDNfaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMy X3Qgc29ja2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmNvc19tYXgs IHVpbnQzMl90ICpjYm1fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAqY2Rw X2VuYWJsZWQpCitpbnQgeGNfcHNyX2NhdF9nZXRfaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgdWlu dDMyX3Qgc29ja2V0LCB1bnNpZ25lZCBpbnQgbHZsLAorICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgKmNvc19tYXgsIHVpbnQzMl90ICpjYm1fbGVuLCBib29sICpjZHBfZW5hYmxlZCkK IHsKLSAgICBpbnQgcmM7CisgICAgaW50IHJjID0gLTE7CiAgICAgREVDTEFSRV9TWVNDVEw7CiAK ICAgICBzeXNjdGwuY21kID0gWEVOX1NZU0NUTF9wc3JfY2F0X29wOwotICAgIHN5c2N0bC51LnBz cl9jYXRfb3AuY21kID0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9sM19pbmZvOwogICAgIHN5c2N0 bC51LnBzcl9jYXRfb3AudGFyZ2V0ID0gc29ja2V0OwogCi0gICAgcmMgPSB4Y19zeXNjdGwoeGNo LCAmc3lzY3RsKTsKLSAgICBpZiAoICFyYyApCisgICAgc3dpdGNoICggbHZsICkKICAgICB7Ci0g ICAgICAgICpjb3NfbWF4ID0gc3lzY3RsLnUucHNyX2NhdF9vcC51LmwzX2luZm8uY29zX21heDsK LSAgICAgICAgKmNibV9sZW4gPSBzeXNjdGwudS5wc3JfY2F0X29wLnUubDNfaW5mby5jYm1fbGVu OwotICAgICAgICAqY2RwX2VuYWJsZWQgPSBzeXNjdGwudS5wc3JfY2F0X29wLnUubDNfaW5mby5m bGFncyAmCi0gICAgICAgICAgICAgICAgICAgICAgIFhFTl9TWVNDVExfUFNSX0NBVF9MM19DRFA7 CisgICAgY2FzZSAyOgorICAgICAgICBzeXNjdGwudS5wc3JfY2F0X29wLmNtZCA9IFhFTl9TWVND VExfUFNSX0NBVF9nZXRfbDJfaW5mbzsKKyAgICAgICAgcmMgPSB4Y19zeXNjdGwoeGNoLCAmc3lz Y3RsKTsKKyAgICAgICAgaWYgKCAhcmMgKQorICAgICAgICB7CisgICAgICAgICAgICAqY29zX21h eCA9IHN5c2N0bC51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5jb3NfbWF4OworICAgICAgICAgICAg KmNibV9sZW4gPSBzeXNjdGwudS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY2JtX2xlbjsKKyAgICAg ICAgICAgICpjZHBfZW5hYmxlZCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor ICAgIGNhc2UgMzoKKyAgICAgICAgc3lzY3RsLnUucHNyX2NhdF9vcC5jbWQgPSBYRU5fU1lTQ1RM X1BTUl9DQVRfZ2V0X2wzX2luZm87CisgICAgICAgIHJjID0geGNfc3lzY3RsKHhjaCwgJnN5c2N0 bCk7CisgICAgICAgIGlmICggIXJjICkKKyAgICAgICAgeworICAgICAgICAgICAgKmNvc19tYXgg PSBzeXNjdGwudS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY29zX21heDsKKyAgICAgICAgICAgICpj Ym1fbGVuID0gc3lzY3RsLnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmNibV9sZW47CisgICAgICAg ICAgICAqY2RwX2VuYWJsZWQgPSBzeXNjdGwudS5wc3JfY2F0X29wLnUuY2F0X2luZm8uZmxhZ3Mg JgorICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX1NZU0NUTF9QU1JfQ0FUX0wzX0NEUDsK KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBlcnJubyA9 IEVPUE5PVFNVUFA7CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIHJldHVybiByYzsKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29scy9saWJ4bC9saWJ4bC5oCmluZGV4 IDdjZjBmMzEuLjIyOWUyODkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmgKKysrIGIv dG9vbHMvbGlieGwvbGlieGwuaApAQCAtOTI0LDYgKzkyNCwxMyBAQCB2b2lkIGxpYnhsX21hY19j b3B5KGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9tYWMgKmRzdCwgY29uc3QgbGlieGxfbWFjICpzcmMp OwogI2RlZmluZSBMSUJYTF9IQVZFX1BTUl9DRFAgMQogCiAvKgorICogTElCWExfSEFWRV9QU1Jf TDJfQ0FUCisgKgorICogSWYgdGhpcyBpcyBkZWZpbmVkLCB0aGUgTDIgQ2FjaGUgQWxsb2NhdGlv biBUZWNobm9sb2d5IGZlYXR1cmUgaXMgc3VwcG9ydGVkLgorICovCisjZGVmaW5lIExJQlhMX0hB VkVfUFNSX0wyX0NBVCAxCisKKy8qCiAgKiBMSUJYTF9IQVZFX01DQV9DQVBTCiAgKgogICogSWYg dGhpcyBpcyBkZWZpbmVkLCBzZXR0aW5nIE1DQSBjYXBhYmlsaXRpZXMgZm9yIEhWTSBkb21haW4g aXMgc3VwcG9ydGVkLgpAQCAtMjIwNyw2ICsyMjE0LDggQEAgaW50IGxpYnhsX3Bzcl9jYXRfZ2V0 X2NibShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgKiBPbiBzdWNjZXNzLCB0aGUg ZnVuY3Rpb24gcmV0dXJucyBhbiBhcnJheSBvZiBlbGVtZW50cyBpbiAnaW5mbycsCiAgKiBhbmQg dGhlIGxlbmd0aCBpbiAnbnInLgogICovCitpbnQgbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhsaWJ4 bF9jdHggKmN0eCwgbGlieGxfcHNyX2NhdF9pbmZvICoqaW5mbywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCAqbnIsIHVuc2lnbmVkIGludCBsdmwpOwogaW50IGxpYnhsX3Bzcl9jYXRf Z2V0X2wzX2luZm8obGlieGxfY3R4ICpjdHgsIGxpYnhsX3Bzcl9jYXRfaW5mbyAqKmluZm8sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm5yKTsKIHZvaWQgbGlieGxfcHNyX2Nh dF9pbmZvX2xpc3RfZnJlZShsaWJ4bF9wc3JfY2F0X2luZm8gKmxpc3QsIGludCBucik7CmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9wc3IuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5j CmluZGV4IGVjNWM3OWQuLmY1NWJhMWUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3Bz ci5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5jCkBAIC05MSw2ICs5MSwxNSBAQCBzdGF0 aWMgdm9pZCBsaWJ4bF9fcHNyX2NhdF9sb2dfZXJyX21zZyhsaWJ4bF9fZ2MgKmdjLCBpbnQgZXJy KQogICAgIGNhc2UgRU5YSU86CiAgICAgICAgIG1zZyA9ICJVbmFibGUgdG8gc2V0IGNvZGUgb3Ig ZGF0YSBDQk0gd2hlbiBDRFAgaXMgZGlzYWJsZWQiOwogICAgICAgICBicmVhazsKKyAgICBjYXNl IEVJTlZBTDoKKyAgICAgICAgbXNnID0gIkludmFsaWQgaW5wdXQgb3Igc29tZSBpbnRlcm5hbCB2 YWx1ZXMgYXJlIG5vdCBleHBlY3RlZCI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRVJBTkdF OgorICAgICAgICBtc2cgPSAiU29ja2V0IG51bWJlciBpcyB3cm9uZyI7CisgICAgICAgIGJyZWFr OworICAgIGNhc2UgRU5PU1BDOgorICAgICAgICBtc2cgPSAiVmFsdWUgYXJyYXkgZXhjZWVkcyB0 aGUgcmFuZ2UiOworICAgICAgICBicmVhazsKIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIGxpYnhs X19wc3JfbG9nX2Vycl9tc2coZ2MsIGVycik7CkBAIC0zNTIsOCArMzYxLDggQEAgaW50IGxpYnhs X3Bzcl9jYXRfZ2V0X2NibShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgICAgcmV0 dXJuIHJjOwogfQogCi1pbnQgbGlieGxfcHNyX2NhdF9nZXRfbDNfaW5mbyhsaWJ4bF9jdHggKmN0 eCwgbGlieGxfcHNyX2NhdF9pbmZvICoqaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCAqbnIpCitpbnQgbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhsaWJ4bF9jdHggKmN0eCwg bGlieGxfcHNyX2NhdF9pbmZvICoqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAqbnIsIHVuc2lnbmVkIGludCBsdmwpCiB7CiAgICAgR0NfSU5JVChjdHgpOwogICAgIGludCBy YzsKQEAgLTM4MCw5ICszODksOCBAQCBpbnQgbGlieGxfcHNyX2NhdF9nZXRfbDNfaW5mbyhsaWJ4 bF9jdHggKmN0eCwgbGlieGxfcHNyX2NhdF9pbmZvICoqaW5mbywKIAogICAgIGxpYnhsX2Zvcl9l YWNoX3NldF9iaXQoc29ja2V0aWQsIHNvY2tldG1hcCkgewogICAgICAgICBwdHJbaV0uaWQgPSBz b2NrZXRpZDsKLSAgICAgICAgaWYgKHhjX3Bzcl9jYXRfZ2V0X2wzX2luZm8oY3R4LT54Y2gsIHNv Y2tldGlkLCAmcHRyW2ldLmNvc19tYXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZwdHJbaV0uY2JtX2xlbiwgJnB0cltpXS5jZHBfZW5hYmxlZCkpIHsKLSAgICAgICAgICAg IGxpYnhsX19wc3JfY2F0X2xvZ19lcnJfbXNnKGdjLCBlcnJubyk7CisgICAgICAgIGlmICh4Y19w c3JfY2F0X2dldF9pbmZvKGN0eC0+eGNoLCBzb2NrZXRpZCwgbHZsLCAmcHRyW2ldLmNvc19tYXgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwdHJbaV0uY2JtX2xlbiwgJnB0cltp XS5jZHBfZW5hYmxlZCkpIHsKICAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAg ICAgIGZyZWUocHRyKTsKICAgICAgICAgICAgIGdvdG8gb3V0OwpAQCAtMzk4LDYgKzQwNiwxNiBA QCBvdXQ6CiAgICAgcmV0dXJuIHJjOwogfQogCitpbnQgbGlieGxfcHNyX2NhdF9nZXRfbDNfaW5m byhsaWJ4bF9jdHggKmN0eCwgbGlieGxfcHNyX2NhdF9pbmZvICoqaW5mbywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCAqbnIpCit7CisgICAgaW50IHJjOworCisgICAgcmMgPSBs aWJ4bF9wc3JfY2F0X2dldF9pbmZvKGN0eCwgaW5mbywgbnIsIDMpOworCisgICAgcmV0dXJuIHJj OworfQorCiB2b2lkIGxpYnhsX3Bzcl9jYXRfaW5mb19saXN0X2ZyZWUobGlieGxfcHNyX2NhdF9p bmZvICpsaXN0LCBpbnQgbnIpCiB7CiAgICAgaW50IGk7CmRpZmYgLS1naXQgYS90b29scy9saWJ4 bC9saWJ4bF90eXBlcy5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKaW5kZXggOGE5 ODQ5Yy4uNmU4MGQzNiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbApAQCAtOTc2LDYgKzk3Niw3IEBAIGxpYnhs X3Bzcl9jYm1fdHlwZSA9IEVudW1lcmF0aW9uKCJwc3JfY2JtX3R5cGUiLCBbCiAgICAgKDEsICJM M19DQk0iKSwKICAgICAoMiwgIkwzX0NCTV9DT0RFIiksCiAgICAgKDMsICJMM19DQk1fREFUQSIp LAorICAgICg0LCAiTDJfQ0JNIiksCiAgICAgXSkKIAogbGlieGxfcHNyX2NhdF9pbmZvID0gU3Ry dWN0KCJwc3JfY2F0X2luZm8iLCBbCmRpZmYgLS1naXQgYS90b29scy94bC94bF9wc3IuYyBiL3Rv b2xzL3hsL3hsX3Bzci5jCmluZGV4IGMwNjFiMjkuLjI3MWI4OGYgMTAwNjQ0Ci0tLSBhL3Rvb2xz L3hsL3hsX3Bzci5jCisrKyBiL3Rvb2xzL3hsL3hsX3Bzci5jCkBAIC0yOTQsMjEgKzI5NCwxOSBA QCBpbnQgbWFpbl9wc3JfY210X3Nob3coaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogfQogI2VuZGlm CiAKLSNpZmRlZiBMSUJYTF9IQVZFX1BTUl9DQVQKLXN0YXRpYyBpbnQgcHNyX2NhdF9od2luZm8o dm9pZCkKKyNpZiBkZWZpbmVkKExJQlhMX0hBVkVfUFNSX0NBVCkgfHwgZGVmaW5lZChMSUJYTF9I QVZFX1BTUl9MMl9DQVQpCitzdGF0aWMgaW50IHBzcl9sM19jYXRfaHdpbmZvKHZvaWQpCiB7Ci0g ICAgaW50IHJjOwotICAgIGludCBpLCBucjsKKyAgICBpbnQgcmMsIG5yOworICAgIHVuc2lnbmVk IGludCBpOwogICAgIHVpbnQzMl90IGwzX2NhY2hlX3NpemU7CiAgICAgbGlieGxfcHNyX2NhdF9p bmZvICppbmZvOwogCi0gICAgcHJpbnRmKCJDYWNoZSBBbGxvY2F0aW9uIFRlY2hub2xvZ3kgKENB VCk6XG4iKTsKLQotICAgIHJjID0gbGlieGxfcHNyX2NhdF9nZXRfbDNfaW5mbyhjdHgsICZpbmZv LCAmbnIpOwotICAgIGlmIChyYykgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0 byBnZXQgY2F0IGluZm9cbiIpOworICAgIHJjID0gbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhjdHgs ICZpbmZvLCAmbnIsIDMpOworICAgIGlmIChyYykKICAgICAgICAgcmV0dXJuIHJjOwotICAgIH0K KworICAgIHByaW50ZigiQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5IChDQVQpOlxuIik7CiAK ICAgICBmb3IgKGkgPSAwOyBpIDwgbnI7IGkrKykgewogICAgICAgICByYyA9IGxpYnhsX3Bzcl9j bXRfZ2V0X2wzX2NhY2hlX3NpemUoY3R4LCBpbmZvW2ldLmlkLCAmbDNfY2FjaGVfc2l6ZSk7CkBA IC00MTcsNyArNDE1LDcgQEAgc3RhdGljIGludCBwc3JfY2F0X3Nob3codWludDMyX3QgZG9taWQp CiAgICAgaW50IHJjOwogICAgIGxpYnhsX3Bzcl9jYXRfaW5mbyAqaW5mbzsKIAotICAgIHJjID0g bGlieGxfcHNyX2NhdF9nZXRfbDNfaW5mbyhjdHgsICZpbmZvLCAmbnIpOworICAgIHJjID0gbGli eGxfcHNyX2NhdF9nZXRfaW5mbyhjdHgsICZpbmZvLCAmbnIsIDMpOwogICAgIGlmIChyYykgewog ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBnZXQgY2F0IGluZm9cbiIpOwogICAg ICAgICByZXR1cm4gcmM7CkBAIC00MzQsNiArNDMyLDMyIEBAIG91dDoKICAgICByZXR1cm4gcmM7 CiB9CiAKK3N0YXRpYyBpbnQgcHNyX2wyX2NhdF9od2luZm8odm9pZCkKK3sKKyAgICBpbnQgcmM7 CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IG5yOworICAgIGxpYnhsX3Bzcl9jYXRfaW5m byAqaW5mbzsKKworICAgIHJjID0gbGlieGxfcHNyX2NhdF9nZXRfaW5mbyhjdHgsICZpbmZvLCAm bnIsIDIpOworICAgIGlmIChyYykKKyAgICAgICAgcmV0dXJuIHJjOworCisgICAgcHJpbnRmKCJD YWNoZSBBbGxvY2F0aW9uIFRlY2hub2xvZ3kgKENBVCk6IEwyXG4iKTsKKworICAgIGZvciAoaSA9 IDA7IGkgPCBucjsgaSsrKSB7CisgICAgICAgIC8qIFRoZXJlIGlzIG5vIENNVCBvbiBMMiBjYWNo ZSBzbyBmYXIuICovCisgICAgICAgIHByaW50ZigiJS0xNnM6ICV1XG4iLCAiU29ja2V0IElEIiwg aW5mb1tpXS5pZCk7CisgICAgICAgIHByaW50ZigiJS0xNnM6ICV1XG4iLCAiTWF4aW11bSBDT1Mi LCBpbmZvW2ldLmNvc19tYXgpOworICAgICAgICBwcmludGYoIiUtMTZzOiAldVxuIiwgIkNCTSBs ZW5ndGgiLCBpbmZvW2ldLmNibV9sZW4pOworICAgICAgICBwcmludGYoIiUtMTZzOiAlI2xseFxu IiwgIkRlZmF1bHQgQ0JNIiwKKyAgICAgICAgICAgICAgICgxdWxsIDw8IGluZm9baV0uY2JtX2xl bikgLSAxKTsKKyAgICB9CisKKyAgICBsaWJ4bF9wc3JfY2F0X2luZm9fbGlzdF9mcmVlKGluZm8s IG5yKTsKKyAgICByZXR1cm4gcmM7Cit9CisKIGludCBtYWluX3Bzcl9jYXRfY2JtX3NldChpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiB7CiAgICAgdWludDMyX3QgZG9taWQ7CkBAIC01NTEsNyArNTc1 LDExIEBAIGludCBtYWluX3Bzcl9od2luZm8oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAg ICByZXQgPSBwc3JfY210X2h3aW5mbygpOwogCiAgICAgaWYgKCFyZXQgJiYgKGFsbCB8fCBjYXQp KQotICAgICAgICByZXQgPSBwc3JfY2F0X2h3aW5mbygpOworICAgICAgICByZXQgPSBwc3JfbDNf Y2F0X2h3aW5mbygpOworCisgICAgLyogTDIgQ0FUIGlzIGluZGVwZW5kZW50IG9mIENNVCBhbmQg TDMgQ0FUICovCisgICAgaWYgKGFsbCB8fCBjYXQpCisgICAgICAgIHJldCA9IHBzcl9sMl9jYXRf aHdpbmZvKCk7CiAKICAgICByZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3N5c2N0bC5jIGIveGVuL2FyY2gveDg2L3N5c2N0bC5jCmluZGV4IDVlOTE3NTUuLjE0YzEyYjcg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zeXNjdGwuYworKysgYi94ZW4vYXJjaC94ODYvc3lz Y3RsLmMKQEAgLTE4MywxMSArMTgzLDExIEBAIGxvbmcgYXJjaF9kb19zeXNjdGwoCiAgICAgICAg ICAgICBpZiAoIHJldCApCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHN5 c2N0bC0+dS5wc3JfY2F0X29wLnUubDNfaW5mby5jb3NfbWF4ID0KKyAgICAgICAgICAgIHN5c2N0 bC0+dS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY29zX21heCA9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGFbUFNSX0lORk9fSURYX0NPU19NQVhdOwotICAgICAgICAg ICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5sM19pbmZvLmNibV9sZW4gPQorICAgICAgICAgICAg c3lzY3RsLT51LnBzcl9jYXRfb3AudS5jYXRfaW5mby5jYm1fbGVuID0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQU1JfSU5GT19JRFhfQ0FUX0NCTV9MRU5dOwot ICAgICAgICAgICAgc3lzY3RsLT51LnBzcl9jYXRfb3AudS5sM19pbmZvLmZsYWdzID0KKyAgICAg ICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUuY2F0X2luZm8uZmxhZ3MgPQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW1BTUl9JTkZPX0lEWF9DQVRfRkxBR107 CiAKICAgICAgICAgICAgIGlmICggIXJldCAmJiBfX2NvcHlfZmllbGRfdG9fZ3Vlc3QodV9zeXNj dGwsIHN5c2N0bCwgdS5wc3JfY2F0X29wKSApCkBAIC0yMDIsMTEgKzIwMiwxMSBAQCBsb25nIGFy Y2hfZG9fc3lzY3RsKAogICAgICAgICAgICAgaWYgKCByZXQgKQogICAgICAgICAgICAgICAgIGJy ZWFrOwogCi0gICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmwzX2luZm8uY29zX21h eCA9CisgICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmNhdF9pbmZvLmNvc19tYXgg PQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW1BTUl9JTkZPX0lE WF9DT1NfTUFYXTsKLSAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUubDNfaW5mby5j Ym1fbGVuID0KKyAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUuY2F0X2luZm8uY2Jt X2xlbiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbUFNSX0lO Rk9fSURYX0NBVF9DQk1fTEVOXTsKLSAgICAgICAgICAgIHN5c2N0bC0+dS5wc3JfY2F0X29wLnUu bDNfaW5mby5mbGFncyA9CisgICAgICAgICAgICBzeXNjdGwtPnUucHNyX2NhdF9vcC51LmNhdF9p bmZvLmZsYWdzID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtQ U1JfSU5GT19JRFhfQ0FUX0ZMQUddOwogCiAgICAgICAgICAgICBpZiAoICFyZXQgJiYgX19jb3B5 X2ZpZWxkX3RvX2d1ZXN0KHVfc3lzY3RsLCBzeXNjdGwsIHUucHNyX2NhdF9vcCkgKQpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL3N5 c2N0bC5oCmluZGV4IDRjNzZkM2EuLjllNTFhZjYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1 YmxpYy9zeXNjdGwuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmgKQEAgLTc1NCw3 ICs3NTQsNyBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9wc3JfY2F0X29wIHsKICAgICAgICAgICAgIHVp bnQzMl90IGNvc19tYXg7ICAgLyogT1VUOiBNYXhpbXVtIENPUyAqLwogI2RlZmluZSBYRU5fU1lT Q1RMX1BTUl9DQVRfTDNfQ0RQICAgICAgICgxdSA8PCAwKQogICAgICAgICAgICAgdWludDMyX3Qg ZmxhZ3M7ICAgICAvKiBPVVQ6IENBVCBmbGFncyAqLwotICAgICAgICB9IGwzX2luZm87CisgICAg ICAgIH0gY2F0X2luZm87CiAgICAgfSB1OwogfTsKIHR5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxf cHNyX2NhdF9vcCB4ZW5fc3lzY3RsX3Bzcl9jYXRfb3BfdDsKLS0gCjEuOS4xCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==