From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v2 6/9] libxl: Share logic for finding path between qemuu and pygrub Date: Mon, 21 Mar 2016 18:16:58 +0000 Message-ID: <1458584221-24426-7-git-send-email-george.dunlap@citrix.com> References: <1458584221-24426-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: <1458584221-24426-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 , George Dunlap , Stefano Stabellini , Anthony Perard , Ian Jackson , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org RnJvbTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgoKcWVtdSBj YW4gYWxzbyBhY2Nlc3MgZGlza3Mgd2hpY2ggd2lsbCBiZSBwcm92aWRlZCB3aXRoIGEgcWRpc2sg YmFja2VuZApkaXJlY3RseTsgYWRkIGEgZmxhZyB0byBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9s b2NhbF9wYXRoIHRvIGluZGljYXRlCndoZXRoZXIgdG8gY2hlY2sgZm9yIHFkaXNrIGRpcmVjdCBh Y2Nlc3MuCgpDYWxsIGxpYnhsX19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGgoKSBmb3IgbW9z dCBwYXRocy4gIElmIHdlIGNhbid0CmZpbmQgYSBsb2NhbCBwYXRoLCBwcmludCBhbiBlcnJvciBh bmQgc2tpcCB0aGUgZGlzaywgcmF0aGVyIHRoYW4gdXNpbmcKYSBib2d1cyBwYXRoLgoKTm93IGlm IHRoZXJlIGlzIG5vIGxvY2FsIGFjY2VzcyB0byB0aGUgZGlzayAoaS5lLiwgYmVjYXVzZSB0aGUg ZGlzawpoYXMgYSBub24tbG9jYWwgYmFja2VuZCwgb3IgcmVsaWVzIG9uIGEgY3VzdG9tIGhvdHBs dWcgc2NyaXB0KSwgbGlieGwKd2lsbCBub3cgcHJpbnQgYSB3YXJuaW5nIGFuZCBub3QgcHJvdmlk ZSB0aGUgZW11bGF0ZWQgZGlzaywgcmF0aGVyCnRoYW4gcHJvdmlkaW5nIGJvZ3VzIHBhcmFtZXRl cnMgdG8gcWVtdSB3aGljaCBjYXVzZSBpdCB0byBlcnJvciBvdXQuCihTdWNoIGRpc2tzIHdpbGwg c3RpbGwgYmUgYXZhaWxhYmxlIHZpYSB0aGUgUFYgYmFja2VuZC4pCgpJIGxlZnQgdGhlIGxpYnhs X19ibGt0YXBfZGV2cGF0aCBpbiB0aGUgcWVtdXUtc3BlY2lmaWMgY29kZSByYXRoZXIKdGhhbiBz aGFyaW5nIGl0IHdpdGggdGhlIHB5cmd1YiBjb2RlIGJlY2F1c2U6CgoxKSBXaGVuIHRoZSBweWdy dWIgcGF0aCBydW5zIHRoZSBndWVzdCBkaXNrcyBoYXZlIG5vdCB5ZXQgYmVlbiBzZXQgdXAKCjIp IGxpYnhsX19ibGt0YXBfZGV2cGF0aCgpIHdpbGwgZ2l2ZSB5b3UgdGhlIGV4aXN0aW5nIGRldnBh dGggaWYgaXQKYWxyZWFkeSBleGlzdHMsIGJ1dCB3aWxsIHNldCBvbmUgdXAgZm9yIHlvdSBpZiB5 b3UgZG9uJ3QuICBTbyBvbiB0aGUKcHlncnViIHBhdGgsIHRoaXMgd291bGQgZW5kIHVwIHNldHRp bmcgdXAgYSBuZXcgdGFwIGRldmljZS4KCjMpIFRoZXJlIGlzIG5vIHRhcC1zcGVjaWZpYyB0ZWFy ZG93biBjb2RlIG9uIHRoZSBweWdydWIgcGF0aCwgYW5kIEkKZG9uJ3Qgd2FudCB0byBhZGQgYW55 IChwYXJ0aWN1bGFybHkgc2luY2UgSSdtIGhvcGluZyB0byByZW1vdmUgdGFwZGlzawphbHRvZ2V0 aGVyIHNvb24pLgoKU2lnbmVkLW9mZi1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBl dS5jaXRyaXguY29tPgotLS0KQ2hhbmdlcyBzaW5jZSB2MToKLSBSZS1wb3J0IG9uIHRvcCBvZiBy ZXZpc2lvbnMgdG8gcHJldmlvdXMgcGF0Y2hlcwotIEFkZHJlc3MgbGluZSBsZW5ndGggaXNzdWVz Ci0gUmVtb3ZlIHN0cmF5IHNwYWNlIGF0IHRoZSBlbmQgb2YgYW4gaWYgKHh4eCApCi0gQnJlYWsg b3V0IGRldmljZW1vZGVsIGFyZ3VtZW50IHJlYXJyYW5nZW1lbnQgaW50byBhIHNlcGFyYXRlIHBh dGNoCi0gU3BlbGwgb3V0IGltcGxpY2F0aW9ucyBvZiB3YXJuaW5nIG1lc3NhZ2VzIHdoaWNoIHNr aXAgZW11bGF0ZWQgZGlza3MKCkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AY2l0cml4LmNv bT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBTdGVmYW5vIFN0YWJlbGxp bmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBjaXRyaXguY29tPgpDQzogQW50aG9ueSBQZXJhcmQgPGFu dGhvbnkucGVyYXJkQGNpdHJpeC5jb20+CkNDOiBSb2dlciBQYXUgTW9ubmUgPHJvZ2VyLnBhdUBj aXRyaXguY29tPgotLS0KIHRvb2xzL2xpYnhsL2xpYnhsLmMgICAgICAgICAgfCAxNyArKysrKysr KysrKysrKy0tLQogdG9vbHMvbGlieGwvbGlieGxfZG0uYyAgICAgICB8IDI3ICsrKysrKysrKysr KysrKysrKysrKysrLS0tLQogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCB8ICA4ICsrKysr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmMKaW5k ZXggMmQ3YTE1NC4uNjAyYmVjMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGwuYworKysg Yi90b29scy9saWJ4bC9saWJ4bC5jCkBAIC0zMDAwLDggKzMwMDAsOSBAQCBzdGF0aWMgY2hhciAq IGxpYnhsX19hbGxvY192ZGV2KGxpYnhsX19nYyAqZ2MsIHZvaWQgKmdldF92ZGV2X3VzZXIsCiAK IC8qIENhbGxiYWNrcyAqLwogCi1zdGF0aWMgY2hhciAqbGlieGxfX2RldmljZV9kaXNrX2ZpbmRf bG9jYWxfcGF0aChsaWJ4bF9fZ2MgKmdjLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2RldmljZV9kaXNrICpkaXNrKQorY2hhciAq bGlieGxfX2RldmljZV9kaXNrX2ZpbmRfbG9jYWxfcGF0aChsaWJ4bF9fZ2MgKmdjLCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfZGV2aWNlX2Rp c2sgKmRpc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg cWRpc2tfZGlyZWN0KQogewogICAgIGNoYXIgKnBhdGggPSBOVUxMOwogCkBAIC0zMDIyLDYgKzMw MjMsMTYgQEAgc3RhdGljIGNoYXIgKmxpYnhsX19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGgo bGlieGxfX2djICpnYywKICAgICAgICAgZ290byBvdXQ7CiAgICAgfSAKIAorICAgIC8qCisgICAg ICogSWYgd2UncmUgYmVpbmcgY2FsbGVkIGZvciBhIHFlbXUgcGF0aCwgd2UgY2FuIHBhc3MgdGhl IHRhcmdldAorICAgICAqIHN0cmluZyBkaXJlY3RseSBhcyB3ZWxsCisgICAgICovCisgICAgaWYg KHFkaXNrX2RpcmVjdCAmJiBkaXNrLT5iYWNrZW5kID09IExJQlhMX0RJU0tfQkFDS0VORF9RRElT SykgeworICAgICAgICBwYXRoID0gbGlieGxfX3N0cmR1cChnYywgZGlzay0+cGRldl9wYXRoKTsK KyAgICAgICAgTE9HKERFQlVHLCAiRGlyZWN0bHkgYWNjZXNzaW5nIGxvY2FsIFFESVNLIHRhcmdl dCAlcyIsIHBhdGgpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKICBvdXQ6CiAgICAgcmV0 dXJuIHBhdGg7CiB9CkBAIC0zMDQ2LDcgKzMwNTcsNyBAQCB2b2lkIGxpYnhsX19kZXZpY2VfZGlz a19sb2NhbF9pbml0aWF0ZV9hdHRhY2gobGlieGxfX2VnYyAqZWdjLAogCiAgICAgTE9HKERFQlVH LCAiVHJ5aW5nIHRvIGZpbmQgbG9jYWwgcGF0aCIpOwogCi0gICAgZGxzLT5kaXNrcGF0aCA9IGxp YnhsX19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGgoZ2MsIGluX2Rpc2spOworICAgIGRscy0+ ZGlza3BhdGggPSBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9sb2NhbF9wYXRoKGdjLCBpbl9kaXNr LCBmYWxzZSk7CiAgICAgaWYgKGRscy0+ZGlza3BhdGgpIHsKICAgICAgICAgTE9HKERFQlVHLCAi TG9jYWwgcGF0aCBmb3VuZCwgZXhlY3V0aW5nIGNhbGxiYWNrLiIpOwogICAgICAgICBkbHMtPmNh bGxiYWNrKGVnYywgZGxzLCAwKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMg Yi90b29scy9saWJ4bC9saWJ4bF9kbS5jCmluZGV4IGRmY2YxNDEuLjE0OTNiODQgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG0uYwpA QCAtMTE4MiwyMyArMTE4Miw0MiBAQCBzdGF0aWMgaW50IGxpYnhsX19idWlsZF9kZXZpY2VfbW9k ZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKIAogICAgICAgICAgICAgaWYgKGRpc2tzW2ldLmZv cm1hdCA9PSBMSUJYTF9ESVNLX0ZPUk1BVF9FTVBUWSkgewogICAgICAgICAgICAgICAgIGlmICgh ZGlza3NbaV0uaXNfY2Ryb20pIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HKFdBUk4sICJjYW5u b3Qgc3VwcG9ydCIiIGVtcHR5IGRpc2sgZm9ybWF0IGZvciAlcyIsCisgICAgICAgICAgICAgICAg ICAgIExPRyhXQVJOLCAiQ2Fubm90IHN1cHBvcnQgZW1wdHkgZGlzayBmb3JtYXQgZm9yICVzIiwK ICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2tzW2ldLnZkZXYpOwogICAgICAgICAgICAgICAg ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2Ugewog ICAgICAgICAgICAgICAgIGlmIChmb3JtYXQgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgICAg ICBMT0coV0FSTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFibGUgdG8gZGV0ZXJtaW5l IiIgZGlzayBpbWFnZSBmb3JtYXQgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgIlVuYWJs ZSB0byBkZXRlcm1pbmUgZGlzayBpbWFnZSBmb3JtYXQ6ICVzXG4iLAorICAgICAgICAgICAgICAg ICAgICAgICAgIkRpc2sgd2lsbCBiZSBhdmFpbGFibGUgdmlhIFBWIGRyaXZlcnMgYnV0IG5vdCBh cyBhbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICJlbXVsYXRlZCBkaXNrLiIsCiAgICAgICAg ICAgICAgICAgICAgICAgICBkaXNrc1tpXS52ZGV2KTsKICAgICAgICAgICAgICAgICAgICAgY29u dGludWU7CiAgICAgICAgICAgICAgICAgfQogCisgICAgICAgICAgICAgICAgLyogCisgICAgICAg ICAgICAgICAgICogV2UgY2FuJ3QgY2FsbCBsaWJ4bF9fYmxrdGFwX2RldnBhdGggZnJvbQorICAg ICAgICAgICAgICAgICAqIGxpYnhsX19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGggZm9yIG5v dyBiZWNhdXNlCisgICAgICAgICAgICAgICAgICogdGhlIGJvb3Rsb2FkZXIgaXMgY2FsbGVkIGJl Zm9yZSB0aGUgZGlza3MgYXJlIHNldAorICAgICAgICAgICAgICAgICAqIHVwLCBzbyB0aGlzIGZ1 bmN0aW9uIHdvdWxkIHNldCB1cCBhIGJsa3RhcCBub2RlLAorICAgICAgICAgICAgICAgICAqIGJ1 dCB0aGVyZSdzIG5vIFRBUCB0ZWFyLWRvd24gb24gZXJyb3IgY29uZGl0aW9ucyBpbgorICAgICAg ICAgICAgICAgICAqIHRoZSBib290bG9hZGVyIHBhdGguCisgICAgICAgICAgICAgICAgICovCiAg ICAgICAgICAgICAgICAgaWYgKGRpc2tzW2ldLmJhY2tlbmQgPT0gTElCWExfRElTS19CQUNLRU5E X1RBUCkKICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BhdGggPSBsaWJ4bF9fYmxrdGFwX2Rl dnBhdGgoZ2MsIGRpc2tzW2ldLnBkZXZfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlza3NbaV0uZm9ybWF0KTsKLSAgICAgICAg ICAgICAgICBlbHNlICAgICAKLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BhdGggPSBkaXNr c1tpXS5wZGV2X3BhdGg7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfcGF0aCA9IGxpYnhsX19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGgoZ2MsIAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmRpc2tzW2ldLCB0cnVlKTsKKworICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0X3BhdGgp IHsKKyAgICAgICAgICAgICAgICAgICAgTE9HKFdBUk4sICJObyB3YXkgdG8gZ2V0IGxvY2FsIGFj Y2VzcyBkaXNrIHRvIGltYWdlOiAlc1xuIgorICAgICAgICAgICAgICAgICAgICAgICAgIkRpc2sg d2lsbCBiZSBhdmFpbGFibGUgdmlhIFBWIGRyaXZlcnMgYnV0IG5vdCBhcyBhbiIKKyAgICAgICAg ICAgICAgICAgICAgICAgICJlbXVsYXRlZCBkaXNrLiIsCisgICAgICAgICAgICAgICAgICAgICAg ICBkaXNrc1tpXS52ZGV2KTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoZGlza3NbaV0uaXNf Y2Ryb20pIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCmluZGV4IDM0NWE3NjQuLjI2OGEyZjQgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxf aW50ZXJuYWwuaApAQCAtMjY4OCw2ICsyNjg4LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsaWJ4 bF9fZGV2aWNlX2Rpc2tfbG9jYWxfaW5pdChsaWJ4bF9fZGlza19sb2NhbF9zdGF0ZSAqZGxzKQog ICAgIGRscy0+cmMgPSAwOwogfQogCisvKiAKKyAqIFNlZSBpZiB3ZSBjYW4gZmluZCBhIHdheSB0 byBhY2Nlc3MgYSBkaXNrIGxvY2FsbHkKKyAqLworX2hpZGRlbiBjaGFyICogbGlieGxfX2Rldmlj ZV9kaXNrX2ZpbmRfbG9jYWxfcGF0aChsaWJ4bF9fZ2MgKmdjLCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfZGV2aWNlX2Rpc2sg KmRpc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvb2wgcWRpc2tfZGlyZWN0KTsKKworCiAvKiBNYWtlIGEgZGlzayBhdmFpbGFibGUgaW4gdGhp cyAodGhlIGNvbnRyb2wpIGRvbWFpbi4gQWx3YXlzIGNhbGxzCiAgKiBkbHMtPmNhbGxiYWNrIHdo ZW4gZmluaXNoZWQuCiAgKiBTdGF0ZSBJZGxlIC0+IEF0dGFjaGluZwotLSAKMi4xLjQKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=