From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boqun Feng Subject: [PATCH v2 15/17] xen: tools: add new 'sgx' parameter support Date: Mon, 4 Dec 2017 08:15:26 +0800 Message-ID: <20171204001528.1342-16-boqun.feng@intel.com> References: <20171204001528.1342-1-boqun.feng@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171204001528.1342-1-boqun.feng@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.xen.org Cc: Kevin Tian , Stefano Stabellini , Wei Liu , Jun Nakajima , George Dunlap , Andrew Cooper , Ian Jackson , =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Tim Deegan , kai.huang@linux.intel.com, Julien Grall , Jan Beulich , David Scott , Boqun Feng List-Id: xen-devel@lists.xenproject.org RnJvbTogS2FpIEh1YW5nIDxrYWkuaHVhbmdAbGludXguaW50ZWwuY29tPgoKSW4gb3JkZXIgdG8g YmUgYWJsZSB0byBjb25maWd1cmUgZG9tYWluJ3MgU0dYIHJlbGF0ZWQgYXR0cmlidXRlcyhFUEMK c2l6ZSwgTGF1bmNoIEVuY2xhdmUgaGFzaCBrZXksIGV0Yy4pLCBhIG5ldyBwYXJhbWV0ZXIgJ3Nn eCcgaXMgYWRkZWQgdG8KWEwgY29uZmlndXJhdGlvbiBmaWxlLCB0aGUgcGFyYW1ldGVyIHNob3Vs ZCBiZSBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDoKCglzZ3ggPSAnZXBjPTxzaXplIGluIE1CPixs ZWhhc2g9PC4uPixsZXdyPTwwfDE+JwoKLCBpbiB3aGljaCAnbGVoYXNoPTwuLj4nIGFuZCAnbGV3 cj08MHwxPicgYXJlIG9wdGlvbmFsLgoKQSBuZXcgJ2xpYnhsX3NneF9idWlsZGluZm8nLCB3aGlj aCBjb250YWlucyBFUEMgYmFzZSBhbmQgc2l6ZSwgYW5kCkxhdW5jaCBFbmNsYXZlIGhhc2gga2V5 IGFuZCBpdHMgd3JpdGFibGUgcGVybWlzc2lvbiwgaXMgYWxzbwphZGRlZCB0byBsaWJ4bF9kb21h aW5fYnVpbmRfaW5mby4gRVBDIGJhc2UgYW5kIHNpemUgYXJlIGFsc28gYWRkZWQgdG8KJ3hjX2Rv bV9pbWFnZScgaW4gb3JkZXIgdG8gYWRkIEVQQyB0byBlODIwIHRhYmxlLiBFUEMgYmFzZSBpcyBj YWxjdWxhdGVkCmludGVybmFsbHkuCgpTaWduZWQtb2ZmLWJ5OiBLYWkgSHVhbmcgPGthaS5odWFu Z0BsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEJvcXVuIEZlbmcgPGJvcXVuLmZlbmdA aW50ZWwuY29tPgotLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGNfZG9tLmggfCAgNCArKysKIHRv b2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jICAgfCAxMCArKysrKysKIHRvb2xzL2xpYnhsL2xpYnhs X2RvbS5jICAgICAgfCAzMCArKysrKysrKysrKysrKysrKwogdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuaCB8ICAyICsrCiB0b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgIHwgMTEgKysrKysr KwogdG9vbHMvbGlieGwvbGlieGxfeDg2LmMgICAgICB8IDEyICsrKysrKysKIHRvb2xzL3hsL3hs X3BhcnNlLmMgICAgICAgICAgfCA3NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogdG9vbHMveGwveGxfcGFyc2UuaCAgICAgICAgICB8ICAxICsKIDggZmlsZXMg Y2hhbmdlZCwgMTQ2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNs dWRlL3hjX2RvbS5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19kb20uaAppbmRleCBjZGNkZDA3 ZDJiYzIuLjg0NDA1MzJkMGU5ZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMvaW5jbHVkZS94Y19k b20uaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hjX2RvbS5oCkBAIC0yMDMsNiArMjAzLDEw IEBAIHN0cnVjdCB4Y19kb21faW1hZ2UgewogICAgIHhlbl9wYWRkcl90IGxvd21lbV9lbmQ7CiAg ICAgeGVuX3BhZGRyX3QgaGlnaG1lbV9lbmQ7CiAgICAgeGVuX3Bmbl90IHZnYV9ob2xlX3NpemU7 CisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgIHhlbl9w YWRkcl90IGVwY19iYXNlOworICAgIHhlbl9wYWRkcl90IGVwY19zaXplOworI2VuZGlmCiAKICAg ICAvKiBJZiB1bnNldCBkaXNhYmxlcyB0aGUgc2V0dXAgb2YgdGhlIElPUkVRIHBhZ2VzLiAqLwog ICAgIGJvb2wgZGV2aWNlX21vZGVsOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3Jl YXRlLmMgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwppbmRleCBmMTVmYjIxNWMyNGIuLjZh NTg2M2NkOTYzNyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKKysrIGIv dG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKQEAgLTU5LDYgKzU5LDE0IEBAIHZvaWQgbGlieGxf X3JkbV9zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpi X2luZm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfUkRNX01FTV9CT1VOREFS WV9NRU1LQl9ERUZBVUxUOwogfQogCit2b2lkIGxpYnhsX19zZ3hfc2V0ZGVmYXVsdChsaWJ4bF9f Z2MgKmdjLCBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9pbmZvKQoreworICAgIGlmIChiX2lu Zm8tPnUuaHZtLnNneC5lcGNrYiA9PSBMSUJYTF9NRU1LQl9ERUZBVUxUKQorICAgICAgICBiX2lu Zm8tPnUuaHZtLnNneC5lcGNrYiA9IDA7CisgICAgYl9pbmZvLT51Lmh2bS5zZ3guZXBjYmFzZSA9 IDA7CisgICAgbGlieGxfZGVmYm9vbF9zZXRkZWZhdWx0KCZiX2luZm8tPnUuaHZtLnNneC5sZXdy LCBmYWxzZSk7Cit9CisKIGludCBsaWJ4bF9fZG9tYWluX2J1aWxkX2luZm9fc2V0ZGVmYXVsdChs aWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX2RvbWFpbl9idWlsZF9pbmZvICpiX2luZm8pCiB7CkBAIC0zNTksNiArMzY3LDggQEAgaW50 IGxpYnhsX19kb21haW5fYnVpbGRfaW5mb19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsCiAgICAg ICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVmYXVsdCgmYl9pbmZvLT51Lmh2bS5nZnhfcGFzc3RocnUs IGZhbHNlKTsKIAogICAgICAgICBsaWJ4bF9fcmRtX3NldGRlZmF1bHQoZ2MsIGJfaW5mbyk7CisK KyAgICAgICAgbGlieGxfX3NneF9zZXRkZWZhdWx0KGdjLCBiX2luZm8pOwogICAgICAgICBicmVh azsKICAgICBjYXNlIExJQlhMX0RPTUFJTl9UWVBFX1BWOgogICAgICAgICBsaWJ4bF9kZWZib29s X3NldGRlZmF1bHQoJmJfaW5mby0+dS5wdi5lODIwX2hvc3QsIGZhbHNlKTsKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKaW5kZXgg ZWY4MzRlNjUyZDY1Li5iYmRiYTdlNmUyOTIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs X2RvbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCkBAIC0xMjEzLDYgKzEyMTMsMzYg QEAgaW50IGxpYnhsX19idWlsZF9odm0obGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAg ICAgICAgIGhpZ2htZW1fZW5kID0gKDF1bGwgPDwgMzIpICsgKGxvd21lbV9lbmQgLSBtbWlvX3N0 YXJ0KTsKICAgICAgICAgbG93bWVtX2VuZCA9IG1taW9fc3RhcnQ7CiAgICAgfQorI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyAgICBpZiAoaW5mby0+dS5odm0u c2d4LmVwY2tiKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIEZJWE1FOgorICAgICAgICAgKgor ICAgICAgICAgKiBDdXJyZW50bHkgRVBDIGJhc2UgaXMgcHV0IGF0IGhpZ2htZW1fZW5kICsgOEcs IHdoaWNoIHNob3VsZCBiZQorICAgICAgICAgKiBzYWZlIGluIG1vc3QgY2FzZXMuCisgICAgICAg ICAqCisgICAgICAgICAqIEkgYW0gbm90IHF1aXRlIHN1cmUgd2hpY2ggaXMgdGhlIGJlc3Qgd2F5 IHRvIGNhbGN1YWx0ZSBFUEMgYmFzZS4KKyAgICAgICAgICogSU1PIHdlIGNhbiBlaXRoZXI6Cisg ICAgICAgICAqIDEpIHB1dCBFUEMgYmV0d2VlbiBsb3dtZW1fZW5kIHRvIG1taW9fc3RhcnQsIGJ1 dCB0aGlzIGJyaW5ncworICAgICAgICAgKiBhZGRpdGlvbmFsIGxvZ2ljIHRvIGhhbmRsZSwgZXgs IGxvd21lbV9lbmQgbWF5IGJlY29tZSB0b28gc21hbGwKKyAgICAgICAgICogaWYgRVBDIGlzIGxh cmdlIChzaGFsbCB3ZSBsaW1pdCBkb21haW4ncyBFUEMgc2l6ZT8pLCBhbmQgaHZtbG9hZGVyCisg ICAgICAgICAqIHdpbGwgdHJ5IHRvIGVubGFyZ2UgTU1JTyBzcGFjZSB1bnRpbCBsb3dtZW1fZW5k LCBvciBldmVuIHJlbG9jYXRlCisgICAgICAgICAqIGxvd21lbSAtLSBhbGwgdGhvc2UgbWFrZSB0 aGluZ3MgY29tcGxpY2F0ZWQsIHNvIHByb2JhYmx5IHB1dCBFUEMKKyAgICAgICAgICogaW4gaG9s ZSBiZXR3ZWVuIGxvd21lbV9lbmQgdG8gbW1pb19zdGFydCBpcyBub3QgZ29vZC4KKyAgICAgICAg ICogMikgcHV0IEVQQyBhZnRlciBoaWdobWVtX2VuZCwgYnV0IGh2bWxvYWRlciBtYXkgYWxzbyBy ZWxvY2F0ZSBNTUlPCisgICAgICAgICAqIHJlc291cmNlIHRvIHRoZSBwbGFjZSBhZnRlciBoaWdo bWVtX2VuZC4gTWF5YmUgdGhlIGlkZWFsIHdheSBpcyB0bworICAgICAgICAgKiBwdXQgRVBDIHJp Z2h0IGFmdGVyIGhpZ2htZW1fZW5kLCBhbmQgY2hhbmdlIGh2bWxvYWRlciB0byBkZXRlY3QKKyAg ICAgICAgICogRVBDLCBhbmQgcHV0IGhpZ2ggTU1JTyByZXNvdXJjZSBhZnRlciBFUEMuIEkndmUg ZG9uZSB0aGlzIGJ1dCBJCisgICAgICAgICAqIGZvdW5kIGEgc3RyYW5nZSBidWcgdGhhdCBFUFQg bWFwcGluZyBvZiBFUEMgd2lsbCBiZSAoYXQgbGVhc3QgcGFydAorICAgICAgICAgKiBvZiB0aGUg bWFwcGluZ3MpIHdpbGwgYmUgcmVtb3ZlZCBieSB3aG9tIEkgc3RpbGwgY2Fubm90IGZpbmQuCisg ICAgICAgICAqIEN1cnJlbnRseSBFUEMgYmFzZSBpcyBwdXQgYXQgaGlnaG1lbV9lbmQgKyA4Rywg YW5kIGh2bWxvYWRlciBjb2RlCisgICAgICAgICAqIGlzIG5vdCBjaGFuZ2VkIHRvIGhhbmRsZSBF UEMsIGJ1dCB0aGlzIHNob3VsZCBiZSBzYWZlIGZvciBtb3N0IGNhc2VzLgorICAgICAgICAgKi8K KyAgICAgICAgaW5mby0+dS5odm0uc2d4LmVwY2Jhc2UgPSBoaWdobWVtX2VuZCArICgyVUxMIDw8 IDMyKTsKKyAgICB9CisgICAgZG9tLT5lcGNfc2l6ZSA9IChpbmZvLT51Lmh2bS5zZ3guZXBja2Ig PDwgMTApOworICAgIGRvbS0+ZXBjX2Jhc2UgPSBpbmZvLT51Lmh2bS5zZ3guZXBjYmFzZTsKKyNl bmRpZgogICAgIGRvbS0+bG93bWVtX2VuZCA9IGxvd21lbV9lbmQ7CiAgICAgZG9tLT5oaWdobWVt X2VuZCA9IGhpZ2htZW1fZW5kOwogICAgIGRvbS0+bW1pb19zdGFydCA9IG1taW9fc3RhcnQ7CmRp ZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGli eGxfaW50ZXJuYWwuaAppbmRleCBiZmE5NWQ4NjE5MDEuLmVjMzUyMmYxYjBlMCAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9p bnRlcm5hbC5oCkBAIC0xMjUzLDYgKzEyNTMsOCBAQCBfaGlkZGVuIGludCBsaWJ4bF9fZG9tYWlu X2J1aWxkX2luZm9fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpiX2luZm8pOwog X2hpZGRlbiB2b2lkIGxpYnhsX19yZG1fc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9p bmZvKTsKK19oaWRkZW4gdm9pZCBsaWJ4bF9fc2d4X3NldGRlZmF1bHQobGlieGxfX2djICpnYywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2J1aWxkX2lu Zm8gKmJfaW5mbyk7CiAKIF9oaWRkZW4gY29uc3QgY2hhciAqbGlieGxfX2RldmljZV9uaWNfZGV2 bmFtZShsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IGRvbWlkLApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxf dHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmluZGV4IGEyMzkzMjQzNDE2 My4uNzYyZGU4MDdjN2VkIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwK KysrIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCkBAIC00NTcsNiArNDU3LDE2IEBAIGxp YnhsX2FsdHAybV9tb2RlID0gRW51bWVyYXRpb24oImFsdHAybV9tb2RlIiwgWwogICAgICgzLCAi bGltaXRlZCIpLAogICAgIF0sIGluaXRfdmFsID0gIkxJQlhMX0FMVFAyTV9NT0RFX0RJU0FCTEVE IikKIAorbGlieGxfc2d4X2J1aWxkaW5mbyA9IFN0cnVjdCgic2d4X2J1aWxkaW5mbyIsIFsKKyAg ICAoImVwY2Jhc2UiLCB1aW50NjQpLCAjIEVQQyBiYXNlIGFkZHJlc3MKKyAgICAoImVwY2tiIiwg TWVtS0IpLCAjIEVQQyBzaXplIGluIEtCCisgICAgKCJsZWhhc2gwIiwgdWludDY0KSwgIyBEZWZh dWx0IFNHWFBVQktFWUhBU0gKKyAgICAoImxlaGFzaDEiLCB1aW50NjQpLCAjIERlZmF1bHQgU0dY UFVCS0VZSEFTSAorICAgICgibGVoYXNoMiIsIHVpbnQ2NCksICMgRGVmYXVsdCBTR1hQVUJLRVlI QVNICisgICAgKCJsZWhhc2gzIiwgdWludDY0KSwgIyBEZWZhdWx0IFNHWFBVQktFWUhBU0gKKyAg ICAoImxld3IiLCBsaWJ4bF9kZWZib29sKSwgIyBTR1hQVUJLRVlIQVNIIHdyaXRhYmxlIG9yIG5v dAorICAgIF0sIGRpcj1ESVJfSU4pCisKIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0 KCJkb21haW5fYnVpbGRfaW5mbyIsWwogICAgICgibWF4X3ZjcHVzIiwgICAgICAgaW50ZWdlciks CiAgICAgKCJhdmFpbF92Y3B1cyIsICAgICBsaWJ4bF9iaXRtYXApLApAQCAtNTgxLDYgKzU5MSw3 IEBAIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21haW5fYnVpbGRfaW5mbyIs WwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJyZG0iLCBsaWJ4bF9y ZG1fcmVzZXJ2ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInJk bV9tZW1fYm91bmRhcnlfbWVta2IiLCBNZW1LQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoIm1jYV9jYXBzIiwgICAgICAgICB1aW50NjQpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJzZ3giLCBsaWJ4bF9zZ3hfYnVpbGRpbmZvKSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pKSwKICAgICAgICAgICAg ICAgICAgKCJwdiIsIFN0cnVjdChOb25lLCBbKCJrZXJuZWwiLCBzdHJpbmcpLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInNsYWNrX21lbWtiIiwgTWVtS0IpLApkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMgYi90b29scy9saWJ4bC9saWJ4bF94ODYu YwppbmRleCA1ZjkxZmU0ZjkyZDguLjAxYmQyZjhlZWVmMCAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfeDg2LmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKQEAgLTUzOSw2ICs1 MzksOSBAQCBpbnQgbGlieGxfX2FyY2hfZG9tYWluX2NvbnN0cnVjdF9tZW1tYXAobGlieGxfX2dj ICpnYywKICAgICAgICAgaWYgKGRvbS0+YWNwaV9tb2R1bGVzW2ldLmxlbmd0aCkKICAgICAgICAg ICAgIGU4MjBfZW50cmllcysrOwogCisgICAgaWYgKCBkb20tPmVwY19iYXNlICYmIGRvbS0+ZXBj X3NpemUgKQorICAgICAgICBlODIwX2VudHJpZXMrKzsKKwogICAgIGlmIChlODIwX2VudHJpZXMg Pj0gRTgyME1BWCkgewogICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwgIk9vb3BzISBUb28gbWFu eSBlbnRyaWVzIGluIHRoZSBtZW1vcnkgbWFwISIpOwogICAgICAgICByYyA9IEVSUk9SX0lOVkFM OwpAQCAtNTc5LDYgKzU4MiwxNSBAQCBpbnQgbGlieGxfX2FyY2hfZG9tYWluX2NvbnN0cnVjdF9t ZW1tYXAobGlieGxfX2djICpnYywKICAgICAgICAgZTgyMFtucl0uYWRkciA9ICgodWludDY0X3Qp MSA8PCAzMik7CiAgICAgICAgIGU4MjBbbnJdLnNpemUgPSBoaWdobWVtX3NpemU7CiAgICAgICAg IGU4MjBbbnJdLnR5cGUgPSBFODIwX1JBTTsKKyAgICAgICAgbnIrKzsKKyAgICB9CisKKyAgICAv KiBFUEMgKi8KKyAgICBpZiAoZG9tLT5lcGNfYmFzZSAmJiBkb20tPmVwY19zaXplKSB7CisgICAg ICAgIGU4MjBbbnJdLmFkZHIgPSBkb20tPmVwY19iYXNlOworICAgICAgICBlODIwW25yXS5zaXpl ID0gZG9tLT5lcGNfc2l6ZTsKKyAgICAgICAgZTgyMFtucl0udHlwZSA9IEU4MjBfUkVTRVJWRUQ7 CisgICAgICAgIG5yKys7CiAgICAgfQogCiAgICAgaWYgKHhjX2RvbWFpbl9zZXRfbWVtb3J5X21h cChDVFgtPnhjaCwgZG9taWQsIGU4MjAsIGU4MjBfZW50cmllcykgIT0gMCkgewpkaWZmIC0tZ2l0 IGEvdG9vbHMveGwveGxfcGFyc2UuYyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmMKaW5kZXggOWE2OTJk NWFlNjQ0Li5lOTY2MTJiYzcxZjMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hsL3hsX3BhcnNlLmMKKysr IGIvdG9vbHMveGwveGxfcGFyc2UuYwpAQCAtODA0LDYgKzgwNCw2MCBAQCBpbnQgcGFyc2VfdXNi ZGV2X2NvbmZpZyhsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYsIGNoYXIgKnRva2VuKQogICAg IHJldHVybiAwOwogfQogCitzdGF0aWMgdWludDY0X3Qgc3dhcF91aW50NjQodWludDY0X3QgdSkK K3sKKyAgICB1ID0gKCh1IDw8IDgpICYgMHhGRjAwRkYwMEZGMDBGRjAwVUxMKSB8ICgodSA+PiA4 KSAmIDB4MDBGRjAwRkYwMEZGMDBGRlVMTCk7CisgICAgdSA9ICgodSA8PCAxNikgJiAweEZGRkYw MDAwRkZGRjAwMDBVTEwpIHwgKCh1ID4+IDE2KSAmIDB4MDAwMEZGRkYwMDAwRkZGRlVMTCk7Cisg ICAgcmV0dXJuICh1IDw8IDMyKSB8ICh1ID4+IDMyKTsKK30KKworaW50IHBhcnNlX3NneF9jb25m aWcobGlieGxfc2d4X2J1aWxkaW5mbyAqc2d4LCBjaGFyICp0b2tlbikKK3sKKyAgICBjaGFyICpv cGFyZzsKKyAgICBsb25nIGw7CisKKyAgICBpZiAoTUFUQ0hfT1BUSU9OKCJlcGMiLCB0b2tlbiwg b3BhcmcpKSB7CisgICAgICAgIGwgPSBzdHJ0b2wob3BhcmcsIE5VTEwsIDApOworCisgICAgICAg IC8qIEdldCBFUEMgc2l6ZS4gRVBDIGJhc2UgaXMgY2FsY3VsYXRlZCBieSB0b29sc3RhY2sgbGF0 ZXIuICovCisgICAgICAgIGlmIChsID49IDApIHsKKyAgICAgICAgICAgIHNneC0+ZXBja2IgPSBs ICogMTAyNDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoTUFUQ0hfT1BUSU9OKCJsZWhhc2gi LCB0b2tlbiwgb3BhcmcpKSB7CisgICAgICAgIGlmIChzdHJsZW4ob3BhcmcpICE9IDY0KSB7IC8q IG5vdCAyNTZiaXQgaGFzaCAqLworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICInbGVoYXNo PTwuLi4+JyByZXF1aXJlcyAyNTZiaXQgU0hBMjU2IGhhc2hcbiIpOworICAgICAgICAgICAgcmV0 dXJuIDE7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIGJ1ZlsxN107CisKKyAgICAgICAgbWVt c2V0KGJ1ZiwgMCwgMTcpOworCisgICAgICAgIG1lbWNweShidWYsIG9wYXJnLCAxNik7CisgICAg ICAgIG9wYXJnICs9IDE2OworICAgICAgICBzZ3gtPmxlaGFzaDAgPSBzd2FwX3VpbnQ2NChzdHJ0 b3VsbChidWYsIE5VTEwsIDE2KSk7CisKKyAgICAgICAgbWVtY3B5KGJ1Ziwgb3BhcmcsIDE2KTsK KyAgICAgICAgb3BhcmcgKz0gMTY7CisgICAgICAgIHNneC0+bGVoYXNoMSA9IHN3YXBfdWludDY0 KHN0cnRvdWxsKGJ1ZiwgTlVMTCwgMTYpKTsKKworICAgICAgICBtZW1jcHkoYnVmLCBvcGFyZywg MTYpOworICAgICAgICBvcGFyZyArPSAxNjsKKyAgICAgICAgc2d4LT5sZWhhc2gyID0gc3dhcF91 aW50NjQoc3RydG91bGwoYnVmLCBOVUxMLCAxNikpOworCisgICAgICAgIG1lbWNweShidWYsIG9w YXJnLCAxNik7CisgICAgICAgIG9wYXJnICs9IDE2OworICAgICAgICBzZ3gtPmxlaGFzaDMgPSBz d2FwX3VpbnQ2NChzdHJ0b3VsbChidWYsIE5VTEwsIDE2KSk7CisgICAgfSBlbHNlIGlmIChNQVRD SF9PUFRJT04oImxld3IiLCB0b2tlbiwgb3BhcmcpKSB7CisgICAgICAgIGxpYnhsX2RlZmJvb2xf c2V0KCZzZ3gtPmxld3IsICEhc3RydG91bChvcGFyZywgTlVMTCwgMCkpOworICAgIH0gZWxzZSB7 CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5rbm93biBzdHJpbmcgYCVzJyBpbiBzZ3ggY29u ZmlnXG4iLCB0b2tlbik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHJldHVybiAw OworfQorCiBpbnQgcGFyc2VfdmRpc3BsX2NvbmZpZyhsaWJ4bF9kZXZpY2VfdmRpc3BsICp2ZGlz cGwsIGNoYXIgKnRva2VuKQogewogICAgIGNoYXIgKm9wYXJnOwpAQCAtMTMyMyw2ICsxMzc3LDI4 IEBAIHZvaWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKICAg ICAgICAgaWYgKCF4bHVfY2ZnX2dldF9sb25nIChjb25maWcsICJyZG1fbWVtX2JvdW5kYXJ5Iiwg JmwsIDApKQogICAgICAgICAgICAgYl9pbmZvLT51Lmh2bS5yZG1fbWVtX2JvdW5kYXJ5X21lbWti ID0gbCAqIDEwMjQ7CiAKKyAgICAgICAgaWYgKCF4bHVfY2ZnX2dldF9zdHJpbmcoY29uZmlnLCAi c2d4IiwgJmJ1ZiwgMCkpIHsKKyAgICAgICAgICAgIGNoYXIgKmJ1ZjIgPSBzdHJkdXAoYnVmKTsK KyAgICAgICAgICAgIGNoYXIgKnA7CisKKyAgICAgICAgICAgIGJfaW5mby0+dS5odm0uc2d4Lmxl aGFzaDAgPSAwOworICAgICAgICAgICAgYl9pbmZvLT51Lmh2bS5zZ3gubGVoYXNoMSA9IDA7Cisg ICAgICAgICAgICBiX2luZm8tPnUuaHZtLnNneC5sZWhhc2gyID0gMDsKKyAgICAgICAgICAgIGJf aW5mby0+dS5odm0uc2d4LmxlaGFzaDMgPSAwOworCisgICAgICAgICAgICBwID0gc3RydG9rKGJ1 ZjIsICIsIik7CisgICAgICAgICAgICBpZiAoIXApCisgICAgICAgICAgICAgICAgZ290byBza2lw X3NneDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoKnAgPT0gJyAn KQorICAgICAgICAgICAgICAgICAgICBwKys7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlX3Nn eF9jb25maWcoJmJfaW5mby0+dS5odm0uc2d4LCBwKSkKKyAgICAgICAgICAgICAgICAgICAgZXhp dCgxKTsKKyAgICAgICAgICAgIH0gd2hpbGUgKChwID0gc3RydG9rKE5VTEwsICIsIikpICE9IE5V TEwpOworc2tpcF9zZ3g6CisgICAgICAgICAgICBmcmVlKGJ1ZjIpOworICAgICAgICB9CisKICAg ICAgICAgc3dpdGNoICh4bHVfY2ZnX2dldF9saXN0KGNvbmZpZywgIm1jYV9jYXBzIiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtY2FfY2FwcywgJm51bV9tY2FfY2FwcywgMSkp CiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX3BhcnNlLmggYi90b29scy94bC94 bF9wYXJzZS5oCmluZGV4IGNjNDU5ZmI0M2Y0YS4uMTRlYjY5YjhlNmFhIDEwMDY0NAotLS0gYS90 b29scy94bC94bF9wYXJzZS5oCisrKyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmgKQEAgLTMxLDYgKzMx LDcgQEAgdm9pZCBwYXJzZV9kaXNrX2NvbmZpZ19tdWx0aXN0cmluZyhYTFVfQ29uZmlnICoqY29u ZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfZGlz ayAqZGlzayk7CiBpbnQgcGFyc2VfdXNiY3RybF9jb25maWcobGlieGxfZGV2aWNlX3VzYmN0cmwg KnVzYmN0cmwsIGNoYXIgKnRva2VuKTsKIGludCBwYXJzZV91c2JkZXZfY29uZmlnKGxpYnhsX2Rl dmljZV91c2JkZXYgKnVzYmRldiwgY2hhciAqdG9rZW4pOworaW50IHBhcnNlX3NneF9jb25maWco bGlieGxfc2d4X2J1aWxkaW5mbyAqc2d4LCBjaGFyICp0b2tlbik7CiBpbnQgcGFyc2VfY3B1cmFu Z2UoY29uc3QgY2hhciAqY3B1LCBsaWJ4bF9iaXRtYXAgKmNwdW1hcCk7CiBpbnQgcGFyc2Vfbmlj X2NvbmZpZyhsaWJ4bF9kZXZpY2VfbmljICpuaWMsIFhMVV9Db25maWcgKipjb25maWcsIGNoYXIg KnRva2VuKTsKIGludCBwYXJzZV92ZGlzcGxfY29uZmlnKGxpYnhsX2RldmljZV92ZGlzcGwgKnZk aXNwbCwgY2hhciAqdG9rZW4pOwotLSAKMi4xNS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL3hlbi1kZXZlbA==