From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH RFC 2/4] libxl: Share logic for finding path between qemuu and pygrub Date: Wed, 2 Mar 2016 11:14:02 +0000 Message-ID: <1456917244-2908-3-git-send-email-george.dunlap@citrix.com> References: <1456917244-2908-1-git-send-email-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1456917244-2908-1-git-send-email-george.dunlap@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Wei Liu , Ian Campbell , George Dunlap , Stefano Stabellini , Anthony Perard , Ian Jackson , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org RnJvbTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgoKcWVtdSBj YW4gYWxzbyBhY2Nlc3MgZGlza3Mgd2hpY2ggd2lsbCBiZSBwcm92aWRlZCB3aXRoIGEgcWRpc2sg YmFja2VuZApkaXJlY3RseTsgYWRkIGEgZmxhZyB0byBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9s b2NhbF9wYXRoIHRvIGluZGljYXRlCndoZXRoZXIgdG8gY2hlY2sgZm9yIHFkaXNrIGRpcmVjdCBh Y2Nlc3MuCgpSZW9yZ2FuaXplIHRoZSBxZW11dSBkaXNrIGFyZ3VtZW50IGNvZGUgdG8gbWFrZSBh IGNsZWFuIHNlcGFyYXRpb24KYmV0d2VlbiBmaW5kaW5nIGEgZmlsZSB0byB1c2UgKGlmIGFueSks IGFuZCBjb25zdHJ1Y3RpbmcgdGhlCnBhcmFtZXRlcnMuCgpPbmx5IHVzZSBxZW11X2Rpc2tfZm9y bWF0X3N0cmluZygpIGluIGNpcmN1bXN0YW5jZXMgd2hlcmUgcWVtdSBtYXkgYmUKaW50ZXJwcmV0 aW5nIHRoZSBkaXNrIChpLmUuLCBiYWNrZW5kPT1RRElTSykuICBJbiBhbGwgb3RoZXIgY2FzZXMs IGl0CnNob3VsZCB1c2UgUkFXLgoKU2hhcmUgYXMgbXVjaCBhcyBwb3NzaWJsZSBiZXR3ZWVuIHRo ZSBpc19jZHJvbSBwYXRoIGFuZCB0aGUgbm9ybWFsIHBhdGguCgpDYWxsIGxpYnhsX19kZXZpY2Vf ZGlza19maW5kX2xvY2FsX3BhdGgoKSBmb3IgbW9zdCBwYXRocy4gIElmIHdlIGNhbid0IGZpbmQK YSBsb2NhbCBwYXRoLCBwcmludCBhbiBlcnJvciBhbmQgc2tpcCB0aGUgZGlzaywgcmF0aGVyIHRo YW4gdXNpbmcgYSBib2d1cyBwYXRoLgoKVGhpcyBzaG91bGQgZml4IHR3byBidWdzOgoKKiBJbiB0 aGUgY2FzZSBvZiBhIGJsb2NrIHNjcmlwdCwgb3IgYSBub24tZG9tMCBiYWNrZW5kLCBxZW11dSB3 aWxsIG5vdwpwcmludCBhIHdhcm5pbmcgYW5kIHNraXAgdGhlIGRpc2ssIHJhdGhlciB0aGFuIGFk ZGluZyBib2d1cwpwYXJhbWV0ZXJzIHRoYXQgd2lsbCBjYXVzZSBxZW11dSB0byBlcnJvciBvdXQu CgoqIFlvdSBzaG91bGQgbm93IGJlIGFibGUgdG8gdXNlIGFueSBiYWNrZW5kIGZvciBhIGNkcm9t IHRoYXQgeW91IGNhbgp1c2UgZm9yIGEgbm9ybWFsIGRpc2suICAoQmVmb3JlIGl0IHdhcyBsaW1p dGVkIHRvIFJBVyBmaWxlcyBvciB0aGluZ3MKdGhhdCBxZW11IGNvdWxkIGhhbmRsZSBkaXJlY3Rs eS4pCgpJIGxlZnQgdGhlIGxpYnhsX19ibGt0YXBfZGV2cGF0aCBpbiB0aGUgcWVtdXUtc3BlY2lm aWMgY29kZSByYXRoZXIgdGhhbiBzaGFyaW5nCml0IHdpdGggdGhlIHB5cmd1YiBjb2RlIGJlY2F1 c2U6CgoxKSBXaGVuIHRoZSBweWdydWIgcGF0aCBydW5zIHRoZSBndWVzdCBkaXNrcyBoYXZlIG5v dCB5ZXQgYmVlbiBzZXQgdXAKCjIpIGxpYnhsX19ibGt0YXBfZGV2cGF0aCgpIHdpbGwgZ2l2ZSB5 b3UgdGhlIGV4aXN0aW5nIGRldnBhdGggaWYgaXQKYWxyZWFkeSBleGlzdHMsIGJ1dCB3aWxsIHNl dCBvbmUgdXAgZm9yIHlvdSBpZiB5b3UgZG9uJ3QuICBTbyBvbiB0aGUgcHlncnViIHBhdGgsCnRo aXMgd291bGQgZW5kIHVwIHNldHRpbmcgdXAgYSBuZXcgdGFwIGRldmljZS4KCjMpIFRoZXJlIGlz IG5vIFRBUC1zcGVjaWZpYyB0ZWFyZG93biBjb2RlIG9uIHRoZSBweWdydWIgcGF0aCwgYW5kIEkK ZG9uJ3Qgd2FudCB0byBhZGQgYW55IChwYXJ0aWN1bGFybHkgc2luY2UgSSdtIGhvcGluZyB0byBy ZW1vdmUgdGFwZGlzawphbHRvZ2V0aGVyIHNvb24pLgoKU2lnbmVkLW9mZi1ieTogR2VvcmdlIER1 bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgotLS0KQ0M6IElhbiBDYW1wYmVsbCA8 aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+CkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AY2l0 cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBTdGVmYW5vIFN0 YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBjaXRyaXguY29tPgpDQzogQW50aG9ueSBQZXJh cmQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+CkNDOiBSb2dlciBQYXUgTW9ubmUgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgotLS0KIHRvb2xzL2xpYnhsL2xpYnhsLmMgICAgICAgICAgfCAxNyAr KysrKysrKysrLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2RtLmMgICAgICAgfCA2NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuaCB8ICA4ICsrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCAy NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5jIGIvdG9vbHMv bGlieGwvbGlieGwuYwppbmRleCBiYjY2NjI0Li4yZjY2YzNhIDEwMDY0NAotLS0gYS90b29scy9s aWJ4bC9saWJ4bC5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmMKQEAgLTMwMTYsOCArMzAxNiw5 IEBAIHN0YXRpYyBjaGFyICogbGlieGxfX2FsbG9jX3ZkZXYobGlieGxfX2djICpnYywgdm9pZCAq Z2V0X3ZkZXZfdXNlciwKIAogLyogQ2FsbGJhY2tzICovCiAKLXN0YXRpYyBjaGFyICogbGlieGxf X2RldmljZV9kaXNrX2ZpbmRfbG9jYWxfcGF0aChsaWJ4bF9fZ2MgKmdjLCAKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9kZXZpY2Vf ZGlzayAqZGlzaykgeworY2hhciAqIGxpYnhsX19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGgo bGlieGxfX2djICpnYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgcWRpc2tfZGlyZWN0KSB7CiAgICAgY2hhciAqcGF0aCA9 IE5VTEw7CiAKICAgICAvKiBObyBsb2NhbCBwYXRocyBmb3IgZHJpdmVyIGRvbWFpbnMgKi8KQEAg LTMwMzgsNiArMzAzOSwxNiBAQCBzdGF0aWMgY2hhciAqIGxpYnhsX19kZXZpY2VfZGlza19maW5k X2xvY2FsX3BhdGgobGlieGxfX2djICpnYywKICAgICAgICAgZ290byBvdXQ7CiAgICAgfSAKIAor ICAgIC8qCisgICAgICogSWYgd2UncmUgYmVpbmcgY2FsbGVkIGZvciBhIHFlbXUgcGF0aCwgd2Ug Y2FuIHBhc3MgdGhlIHRhcmdldAorICAgICAqIHN0cmluZyBkaXJlY3RseSBhcyB3ZWxsCisgICAg ICovCisgICAgaWYgKHFkaXNrX2RpcmVjdCAmJiBkaXNrLT5iYWNrZW5kID09IExJQlhMX0RJU0tf QkFDS0VORF9RRElTSyApIHsKKyAgICAgICAgcGF0aCA9IGxpYnhsX19zdHJkdXAoZ2MsIGRpc2st PnBkZXZfcGF0aCk7CisgICAgICAgIExPRyhERUJVRywgIkRpcmVjdGx5IGFjY2Vzc2luZyBsb2Nh bCBRRElTSyB0YXJnZXQgJXMiLCBwYXRoKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCiAg b3V0OgogICAgIHJldHVybiBwYXRoOwogfQpAQCAtMzA2Miw3ICszMDczLDcgQEAgdm9pZCBsaWJ4 bF9fZGV2aWNlX2Rpc2tfbG9jYWxfaW5pdGlhdGVfYXR0YWNoKGxpYnhsX19lZ2MgKmVnYywKIAog ICAgIExPRyhERUJVRywgIlRyeWluZyB0byBmaW5kIGxvY2FsIHBhdGgiKTsKIAotICAgIGlmICgo ZGxzLT5kaXNrcGF0aCA9IGxpYnhsX19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGgoZ2MsIGlu X2Rpc2spKSkgeworICAgIGlmICgoZGxzLT5kaXNrcGF0aCA9IGxpYnhsX19kZXZpY2VfZGlza19m aW5kX2xvY2FsX3BhdGgoZ2MsIGluX2Rpc2ssIGZhbHNlKSkpIHsKICAgICAgICAgTE9HKERFQlVH LCAiTG9jYWwgcGF0aCBmb3VuZCwgZXhlY3V0aW5nIGNhbGxiYWNrLiIpOwogICAgICAgICBkbHMt PmNhbGxiYWNrKGVnYywgZGxzLCAwKTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvdG9vbHMv bGlieGwvbGlieGxfZG0uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKaW5kZXggNGFjYTM4ZS4u OTE3ZWJiZiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG0uYworKysgYi90b29scy9s aWJ4bC9saWJ4bF9kbS5jCkBAIC0xMTYxLDkgKzExNjEsOSBAQCBzdGF0aWMgaW50IGxpYnhsX19i dWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKICAgICAgICAgICAgIGlu dCBkaXNrLCBwYXJ0OwogICAgICAgICAgICAgaW50IGRldl9udW1iZXIgPQogICAgICAgICAgICAg ICAgIGxpYnhsX19kZXZpY2VfZGlza19kZXZfbnVtYmVyKGRpc2tzW2ldLnZkZXYsICZkaXNrLCAm cGFydCk7Ci0gICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQgPSBxZW11X2Rpc2tfZm9ybWF0 X3N0cmluZyhkaXNrc1tpXS5mb3JtYXQpOworICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0 OwogICAgICAgICAgICAgY2hhciAqZHJpdmU7Ci0gICAgICAgICAgICBjb25zdCBjaGFyICpwZGV2 X3BhdGg7CisgICAgICAgICAgICBjb25zdCBjaGFyICp0YXJnZXRfcGF0aDsKIAogICAgICAgICAg ICAgaWYgKGRldl9udW1iZXIgPT0gLTEpIHsKICAgICAgICAgICAgICAgICBMT0coV0FSTiwgInVu YWJsZSB0byBkZXRlcm1pbmUiIiBkaXNrIG51bWJlciBmb3IgJXMiLApAQCAtMTE3MSwyMiArMTE3 MSwyMiBAQCBzdGF0aWMgaW50IGxpYnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGli eGxfX2djICpnYywKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KIAot ICAgICAgICAgICAgaWYgKGRpc2tzW2ldLmlzX2Nkcm9tKSB7Ci0gICAgICAgICAgICAgICAgaWYg KGRpc2tzW2ldLmZvcm1hdCA9PSBMSUJYTF9ESVNLX0ZPUk1BVF9FTVBUWSkKLSAgICAgICAgICAg ICAgICAgICAgZHJpdmUgPSBsaWJ4bF9fc3ByaW50ZgotICAgICAgICAgICAgICAgICAgICAgICAg KGdjLCAiaWY9aWRlLGluZGV4PSVkLHJlYWRvbmx5PSVzLG1lZGlhPWNkcm9tLGNhY2hlPXdyaXRl YmFjayxpZD1pZGUtJWkiLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2ssIGRpc2tzW2ld LnJlYWR3cml0ZSA/ICJvZmYiIDogIm9uIiwgZGV2X251bWJlcik7Ci0gICAgICAgICAgICAgICAg ZWxzZQotICAgICAgICAgICAgICAgICAgICBkcml2ZSA9IGxpYnhsX19zcHJpbnRmCi0gICAgICAg ICAgICAgICAgICAgICAgICAoZ2MsICJmaWxlPSVzLGlmPWlkZSxpbmRleD0lZCxyZWFkb25seT0l cyxtZWRpYT1jZHJvbSxmb3JtYXQ9JXMsY2FjaGU9d3JpdGViYWNrLGlkPWlkZS0laSIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgZGlza3NbaV0ucGRldl9wYXRoLCBkaXNrLCBkaXNrc1tpXS5y ZWFkd3JpdGUgPyAib2ZmIiA6ICJvbiIsIGZvcm1hdCwgZGV2X251bWJlcik7Ci0gICAgICAgICAg ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChkaXNrc1tpXS5mb3JtYXQgPT0gTElCWExf RElTS19GT1JNQVRfRU1QVFkpIHsKKyAgICAgICAgICAgIC8qIAorICAgICAgICAgICAgICogSWYg cWVtdSBpc24ndCBkb2luZyB0aGUgaW50ZXJwcmV0aW5nLCB0aGUgcGFyYW1ldGVyIGlzCisgICAg ICAgICAgICAgKiBhbHdheXMgcmF3CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChk aXNrc1tpXS5iYWNrZW5kID09IExJQlhMX0RJU0tfQkFDS0VORF9RRElTSykKKyAgICAgICAgICAg ICAgICBmb3JtYXQgPSBxZW11X2Rpc2tfZm9ybWF0X3N0cmluZyhkaXNrc1tpXS5mb3JtYXQpOwor ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZvcm1hdCA9IHFlbXVfZGlza19mb3Jt YXRfc3RyaW5nKExJQlhMX0RJU0tfRk9STUFUX1JBVyk7CisKKyAgICAgICAgICAgIGlmIChkaXNr c1tpXS5mb3JtYXQgPT0gTElCWExfRElTS19GT1JNQVRfRU1QVFkpIHsKKyAgICAgICAgICAgICAg ICBpZiAoIWRpc2tzW2ldLmlzX2Nkcm9tKSB7CiAgICAgICAgICAgICAgICAgICAgIExPRyhXQVJO LCAiY2Fubm90IHN1cHBvcnQiIiBlbXB0eSBkaXNrIGZvcm1hdCBmb3IgJXMiLAogICAgICAgICAg ICAgICAgICAgICAgICAgZGlza3NbaV0udmRldik7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwogICAgICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg ICAgICAgICBpZiAoZm9ybWF0ID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICAgICAgTE9HKFdB Uk4sCiAgICAgICAgICAgICAgICAgICAgICAgICAidW5hYmxlIHRvIGRldGVybWluZSIiIGRpc2sg aW1hZ2UgZm9ybWF0ICVzIiwKQEAgLTExOTQsMTQgKzExOTQsMzYgQEAgc3RhdGljIGludCBsaWJ4 bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3NfbmV3KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg IGlmIChkaXNrc1tpXS5iYWNrZW5kID09IExJQlhMX0RJU0tfQkFDS0VORF9UQVApIHsKLSAgICAg ICAgICAgICAgICAgICAgZm9ybWF0ID0gcWVtdV9kaXNrX2Zvcm1hdF9zdHJpbmcoTElCWExfRElT S19GT1JNQVRfUkFXKTsKLSAgICAgICAgICAgICAgICAgICAgcGRldl9wYXRoID0gbGlieGxfX2Js a3RhcF9kZXZwYXRoKGdjLCBkaXNrc1tpXS5wZGV2X3BhdGgsCisgICAgICAgICAgICAgICAgLyog CisgICAgICAgICAgICAgICAgICogV2UgY2FuJ3QgY2FsbCBsaWJ4bF9fYmxrdGFwX2RldnBhdGgg ZnJvbQorICAgICAgICAgICAgICAgICAqIGxpYnhsX19kZXZpY2VfZGlza19maW5kX2xvY2FsX3Bh dGggZm9yIG5vdyBiZWNhdXNlCisgICAgICAgICAgICAgICAgICogdGhlIGJvb3Rsb2FkZXIgaXMg Y2FsbGVkIGJlZm9yZSB0aGUgZGlza3MgYXJlIHNldAorICAgICAgICAgICAgICAgICAqIHVwLCBz byB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldCB1cCBhIGJsa3RhcCBub2RlLAorICAgICAgICAgICAg ICAgICAqIGJ1dCB0aGVyZSdzIG5vIFRBUCB0ZWFyLWRvd24gb24gZXJyb3IgY29uZGl0aW9ucyBp bgorICAgICAgICAgICAgICAgICAqIHRoZSBib290bG9hZGVyIHBhdGguCisgICAgICAgICAgICAg ICAgICovCisgICAgICAgICAgICAgICAgaWYgKGRpc2tzW2ldLmJhY2tlbmQgPT0gTElCWExfRElT S19CQUNLRU5EX1RBUCkKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BhdGggPSBsaWJ4bF9f YmxrdGFwX2RldnBhdGgoZ2MsIGRpc2tzW2ldLnBkZXZfcGF0aCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2tzW2ldLmZvcm1hdCk7Ci0g ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcGRldl9wYXRoID0g ZGlza3NbaV0ucGRldl9wYXRoOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg ICAgICAgdGFyZ2V0X3BhdGggPSBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9sb2NhbF9wYXRoKGdj LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZkaXNrc1tpXSwgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRhcmdl dF9wYXRoKSB7CisgICAgICAgICAgICAgICAgICAgIExPRyhXQVJOLCAiTm8gd2F5IHRvIGdldCBs b2NhbCBhY2Nlc3MgZGlzayB0byBpbWFnZTogJXMiLCBkaXNrc1tpXS52ZGV2KTsKKyAgICAgICAg ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor CisgICAgICAgICAgICBpZiAoZGlza3NbaV0uaXNfY2Ryb20pIHsKKyAgICAgICAgICAgICAgICBk cml2ZSA9IGxpYnhsX19zcHJpbnRmCisgICAgICAgICAgICAgICAgICAgIChnYywgImlmPWlkZSxp bmRleD0lZCxyZWFkb25seT0lcyxtZWRpYT1jZHJvbSxjYWNoZT13cml0ZWJhY2ssaWQ9aWRlLSVp IiwKKyAgICAgICAgICAgICAgICAgICAgIGRpc2ssIGRpc2tzW2ldLnJlYWR3cml0ZSA/ICJvZmYi IDogIm9uIiwgZGV2X251bWJlcik7CiAKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0X3BhdGgp CisgICAgICAgICAgICAgICAgICAgIGRyaXZlID0gbGlieGxfX3NwcmludGYoZ2MsICIlcyxmaWxl PSVzLGZvcm1hdD0lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZHJpdmUsIHRhcmdldF9wYXRoLCBmb3JtYXQpOworICAgICAgICAgICAgfSBlbHNlIHsKICAg ICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqIEV4cGxpY2l0IHNkIGRpc2tzIGFy ZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy4KICAgICAgICAgICAgICAgICAgKgpAQCAtMTIxMSw3ICsx MjMzLDcgQEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3NfbmV3KGxp YnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAgaWYgKHN0cm5jbXAoZGlza3NbaV0udmRldiwg InNkIiwgMikgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICBkcml2ZSA9IGxpYnhsX19zcHJp bnRmCiAgICAgICAgICAgICAgICAgICAgICAgICAoZ2MsICJmaWxlPSVzLGlmPXNjc2ksYnVzPTAs dW5pdD0lZCxmb3JtYXQ9JXMscmVhZG9ubHk9JXMsY2FjaGU9d3JpdGViYWNrIiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICBwZGV2X3BhdGgsIGRpc2ssIGZvcm1hdCwgZGlza3NbaV0ucmVhZHdy aXRlID8gIm9mZiIgOiAib24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcGF0 aCwgZGlzaywgZm9ybWF0LCBkaXNrc1tpXS5yZWFkd3JpdGUgPyAib2ZmIiA6ICJvbiIpOwogICAg ICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RybmNtcChkaXNrc1tpXS52ZGV2LCAieHZkIiwgMykg PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAgICAgKiBE byBub3QgYWRkIGFueSBlbXVsYXRlZCBkaXNrIHdoZW4gUFYgZGlzayBhcmUKQEAgLTEyMjUsNyAr MTI0Nyw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhs aWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg IGZsZXhhcnJheV92YXBwZW5kKGRtX2FyZ3MsICItZHJpdmUiLAogICAgICAgICAgICAgICAgICAg ICAgICAgR0NTUFJJTlRGKCJmaWxlPSVzLGlmPW5vbmUsaWQ9YWhjaWRpc2stJWQsZm9ybWF0PSVz LGNhY2hlPXdyaXRlYmFjayIsCi0gICAgICAgICAgICAgICAgICAgICAgICBwZGV2X3BhdGgsIGRp c2ssIGZvcm1hdCksCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcGF0aCwgZGlzaywg Zm9ybWF0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICItZGV2aWNlIiwgR0NTUFJJTlRGKCJp ZGUtaGQsYnVzPWFoY2kwLiVkLHVuaXQ9MCxkcml2ZT1haGNpZGlzay0lZCIsCiAgICAgICAgICAg ICAgICAgICAgICAgICBkaXNrLCBkaXNrKSwgTlVMTCk7CiAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlOwpAQCAtMTIzNiw3ICsxMjU4LDcgQEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2 aWNlX21vZGVsX2FyZ3NfbmV3KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgZHJpdmUgPSBsaWJ4bF9fc3ByaW50ZgogICAgICAgICAgICAg ICAgICAgICAgICAgKGdjLCAiZmlsZT0lcyxpZj1pZGUsaW5kZXg9JWQsbWVkaWE9ZGlzayxmb3Jt YXQ9JXMsY2FjaGU9d3JpdGViYWNrIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2X3Bh dGgsIGRpc2ssIGZvcm1hdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BhdGgs IGRpc2ssIGZvcm1hdCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg ICAgICAgY29udGludWU7IC8qIERvIG5vdCBlbXVsYXRlIHRoaXMgZGlzayAqLwogICAgICAgICAg ICAgICAgIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCmluZGV4IGExYWFlOTcuLjI2NWI4YTIgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxf aW50ZXJuYWwuaApAQCAtMjY3MCw2ICsyNjcwLDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsaWJ4 bF9fZGV2aWNlX2Rpc2tfbG9jYWxfaW5pdChsaWJ4bF9fZGlza19sb2NhbF9zdGF0ZSAqZGxzKQog ICAgIGRscy0+cmMgPSAwOwogfQogCisvKiAKKyAqIFNlZSBpZiB3ZSBjYW4gZmluZCBhIHdheSB0 byBhY2Nlc3MgYSBkaXNrIGxvY2FsbHkKKyAqLworX2hpZGRlbiBjaGFyICogbGlieGxfX2Rldmlj ZV9kaXNrX2ZpbmRfbG9jYWxfcGF0aChsaWJ4bF9fZ2MgKmdjLCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfZGV2aWNlX2Rpc2sg KmRpc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvb2wgcWRpc2tfZGlyZWN0KTsKKworCiAvKiBNYWtlIGEgZGlzayBhdmFpbGFibGUgaW4gdGhp cyAodGhlIGNvbnRyb2wpIGRvbWFpbi4gQWx3YXlzIGNhbGxzCiAgKiBkbHMtPmNhbGxiYWNrIHdo ZW4gZmluaXNoZWQuCiAgKiBTdGF0ZSBJZGxlIC0+IEF0dGFjaGluZwotLSAKMi4xLjQKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=