From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v3 6/9] libxl: Share logic for finding path between qemuu and pygrub Date: Thu, 24 Mar 2016 17:22:37 +0000 Message-ID: <1458840160-26733-7-git-send-email-george.dunlap@citrix.com> References: <1458840160-26733-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: <1458840160-26733-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 dS5jaXRyaXguY29tPgotLS0KQ2hhbmdlcyBzaW5jZSB2MjoKLSBGaXggc3RyYXkgY29tbWEKCkNo YW5nZXMgc2luY2UgdjE6Ci0gUmUtcG9ydCBvbiB0b3Agb2YgcmV2aXNpb25zIHRvIHByZXZpb3Vz IHBhdGNoZXMKLSBBZGRyZXNzIGxpbmUgbGVuZ3RoIGlzc3VlcwotIFJlbW92ZSBzdHJheSBzcGFj ZSBhdCB0aGUgZW5kIG9mIGFuIGlmICh4eHggKQotIEJyZWFrIG91dCBkZXZpY2Vtb2RlbCBhcmd1 bWVudCByZWFycmFuZ2VtZW50IGludG8gYSBzZXBhcmF0ZSBwYXRjaAotIFNwZWxsIG91dCBpbXBs aWNhdGlvbnMgb2Ygd2FybmluZyBtZXNzYWdlcyB3aGljaCBza2lwIGVtdWxhdGVkIGRpc2tzCgpD QzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGNpdHJpeC5jb20+CkNDOiBXZWkgTGl1IDx3ZWku bGl1MkBjaXRyaXguY29tPgpDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0YWJlbGxp bmlAY2l0cml4LmNvbT4KQ0M6IEFudGhvbnkgUGVyYXJkIDxhbnRob255LnBlcmFyZEBjaXRyaXgu Y29tPgpDQzogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0tCiB0b29s cy9saWJ4bC9saWJ4bC5jICAgICAgICAgIHwgMTcgKysrKysrKysrKysrKystLS0KIHRvb2xzL2xp YnhsL2xpYnhsX2RtLmMgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIHRv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggfCAgOCArKysrKysrKwogMyBmaWxlcyBjaGFuZ2Vk LCA0NSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnhsL2xpYnhsLmMgYi90b29scy9saWJ4bC9saWJ4bC5jCmluZGV4IDJkN2ExNTQuLjYwMmJlYzIg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGwu YwpAQCAtMzAwMCw4ICszMDAwLDkgQEAgc3RhdGljIGNoYXIgKiBsaWJ4bF9fYWxsb2NfdmRldihs aWJ4bF9fZ2MgKmdjLCB2b2lkICpnZXRfdmRldl91c2VyLAogCiAvKiBDYWxsYmFja3MgKi8KIAot c3RhdGljIGNoYXIgKmxpYnhsX19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGgobGlieGxfX2dj ICpnYywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaykKK2NoYXIgKmxpYnhsX19kZXZpY2VfZGlza19m aW5kX2xvY2FsX3BhdGgobGlieGxfX2djICpnYywgCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2RldmljZV9kaXNrICpkaXNrLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHFkaXNrX2RpcmVjdCkKIHsKICAg ICBjaGFyICpwYXRoID0gTlVMTDsKIApAQCAtMzAyMiw2ICszMDIzLDE2IEBAIHN0YXRpYyBjaGFy ICpsaWJ4bF9fZGV2aWNlX2Rpc2tfZmluZF9sb2NhbF9wYXRoKGxpYnhsX19nYyAqZ2MsCiAgICAg ICAgIGdvdG8gb3V0OwogICAgIH0gCiAKKyAgICAvKgorICAgICAqIElmIHdlJ3JlIGJlaW5nIGNh bGxlZCBmb3IgYSBxZW11IHBhdGgsIHdlIGNhbiBwYXNzIHRoZSB0YXJnZXQKKyAgICAgKiBzdHJp bmcgZGlyZWN0bHkgYXMgd2VsbAorICAgICAqLworICAgIGlmIChxZGlza19kaXJlY3QgJiYgZGlz ay0+YmFja2VuZCA9PSBMSUJYTF9ESVNLX0JBQ0tFTkRfUURJU0spIHsKKyAgICAgICAgcGF0aCA9 IGxpYnhsX19zdHJkdXAoZ2MsIGRpc2stPnBkZXZfcGF0aCk7CisgICAgICAgIExPRyhERUJVRywg IkRpcmVjdGx5IGFjY2Vzc2luZyBsb2NhbCBRRElTSyB0YXJnZXQgJXMiLCBwYXRoKTsKKyAgICAg ICAgZ290byBvdXQ7CisgICAgfQorCiAgb3V0OgogICAgIHJldHVybiBwYXRoOwogfQpAQCAtMzA0 Niw3ICszMDU3LDcgQEAgdm9pZCBsaWJ4bF9fZGV2aWNlX2Rpc2tfbG9jYWxfaW5pdGlhdGVfYXR0 YWNoKGxpYnhsX19lZ2MgKmVnYywKIAogICAgIExPRyhERUJVRywgIlRyeWluZyB0byBmaW5kIGxv Y2FsIHBhdGgiKTsKIAotICAgIGRscy0+ZGlza3BhdGggPSBsaWJ4bF9fZGV2aWNlX2Rpc2tfZmlu ZF9sb2NhbF9wYXRoKGdjLCBpbl9kaXNrKTsKKyAgICBkbHMtPmRpc2twYXRoID0gbGlieGxfX2Rl dmljZV9kaXNrX2ZpbmRfbG9jYWxfcGF0aChnYywgaW5fZGlzaywgZmFsc2UpOwogICAgIGlmIChk bHMtPmRpc2twYXRoKSB7CiAgICAgICAgIExPRyhERUJVRywgIkxvY2FsIHBhdGggZm91bmQsIGV4 ZWN1dGluZyBjYWxsYmFjay4iKTsKICAgICAgICAgZGxzLT5jYWxsYmFjayhlZ2MsIGRscywgMCk7 CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMvbGlieGwvbGlieGxf ZG0uYwppbmRleCAxZWZmZDcxLi4yZWVmNTNhIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4 bF9kbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAgLTExODgsMjMgKzExODgsNDIg QEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3NfbmV3KGxpYnhsX19n YyAqZ2MsCiAKICAgICAgICAgICAgIGlmIChkaXNrc1tpXS5mb3JtYXQgPT0gTElCWExfRElTS19G T1JNQVRfRU1QVFkpIHsKICAgICAgICAgICAgICAgICBpZiAoIWRpc2tzW2ldLmlzX2Nkcm9tKSB7 Ci0gICAgICAgICAgICAgICAgICAgIExPRyhXQVJOLCAiY2Fubm90IHN1cHBvcnQiIiBlbXB0eSBk aXNrIGZvcm1hdCBmb3IgJXMiLAorICAgICAgICAgICAgICAgICAgICBMT0coV0FSTiwgIkNhbm5v dCBzdXBwb3J0IGVtcHR5IGRpc2sgZm9ybWF0IGZvciAlcyIsCiAgICAgICAgICAgICAgICAgICAg ICAgICBkaXNrc1tpXS52ZGV2KTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAo Zm9ybWF0ID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICAgICAgTE9HKFdBUk4sCi0gICAgICAg ICAgICAgICAgICAgICAgICAidW5hYmxlIHRvIGRldGVybWluZSIiIGRpc2sgaW1hZ2UgZm9ybWF0 ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gZGV0ZXJtaW5lIGRpc2sg aW1hZ2UgZm9ybWF0OiAlc1xuIgorICAgICAgICAgICAgICAgICAgICAgICAgIkRpc2sgd2lsbCBi ZSBhdmFpbGFibGUgdmlhIFBWIGRyaXZlcnMgYnV0IG5vdCBhcyBhbiIKKyAgICAgICAgICAgICAg ICAgICAgICAgICJlbXVsYXRlZCBkaXNrLiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBkaXNr c1tpXS52ZGV2KTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAg ICAgfQogCisgICAgICAgICAgICAgICAgLyogCisgICAgICAgICAgICAgICAgICogV2UgY2FuJ3Qg Y2FsbCBsaWJ4bF9fYmxrdGFwX2RldnBhdGggZnJvbQorICAgICAgICAgICAgICAgICAqIGxpYnhs X19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGggZm9yIG5vdyBiZWNhdXNlCisgICAgICAgICAg ICAgICAgICogdGhlIGJvb3Rsb2FkZXIgaXMgY2FsbGVkIGJlZm9yZSB0aGUgZGlza3MgYXJlIHNl dAorICAgICAgICAgICAgICAgICAqIHVwLCBzbyB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldCB1cCBh IGJsa3RhcCBub2RlLAorICAgICAgICAgICAgICAgICAqIGJ1dCB0aGVyZSdzIG5vIFRBUCB0ZWFy LWRvd24gb24gZXJyb3IgY29uZGl0aW9ucyBpbgorICAgICAgICAgICAgICAgICAqIHRoZSBib290 bG9hZGVyIHBhdGguCisgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgaWYgKGRp c2tzW2ldLmJhY2tlbmQgPT0gTElCWExfRElTS19CQUNLRU5EX1RBUCkKICAgICAgICAgICAgICAg ICAgICAgdGFyZ2V0X3BhdGggPSBsaWJ4bF9fYmxrdGFwX2RldnBhdGgoZ2MsIGRpc2tzW2ldLnBk ZXZfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGlza3NbaV0uZm9ybWF0KTsKLSAgICAgICAgICAgICAgICBlbHNlICAgICAKLSAg ICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BhdGggPSBkaXNrc1tpXS5wZGV2X3BhdGg7CisgICAg ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcGF0aCA9IGxpYnhs X19kZXZpY2VfZGlza19maW5kX2xvY2FsX3BhdGgoZ2MsIAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRpc2tzW2ldLCB0cnVlKTsK KworICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0X3BhdGgpIHsKKyAgICAgICAgICAgICAgICAg ICAgTE9HKFdBUk4sICJObyB3YXkgdG8gZ2V0IGxvY2FsIGFjY2VzcyBkaXNrIHRvIGltYWdlOiAl c1xuIgorICAgICAgICAgICAgICAgICAgICAgICAgIkRpc2sgd2lsbCBiZSBhdmFpbGFibGUgdmlh IFBWIGRyaXZlcnMgYnV0IG5vdCBhcyBhbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICJlbXVs YXRlZCBkaXNrLiIsCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNrc1tpXS52ZGV2KTsKKyAg ICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgfQogCiAgICAgICAgICAgICBpZiAoZGlza3NbaV0uaXNfY2Ryb20pIHsKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5h bC5oCmluZGV4IDM0NWE3NjQuLjI2OGEyZjQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaApAQCAtMjY4OCw2 ICsyNjg4LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsaWJ4bF9fZGV2aWNlX2Rpc2tfbG9jYWxf aW5pdChsaWJ4bF9fZGlza19sb2NhbF9zdGF0ZSAqZGxzKQogICAgIGRscy0+cmMgPSAwOwogfQog CisvKiAKKyAqIFNlZSBpZiB3ZSBjYW4gZmluZCBhIHdheSB0byBhY2Nlc3MgYSBkaXNrIGxvY2Fs bHkKKyAqLworX2hpZGRlbiBjaGFyICogbGlieGxfX2RldmljZV9kaXNrX2ZpbmRfbG9jYWxfcGF0 aChsaWJ4bF9fZ2MgKmdjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcWRpc2tfZGlyZWN0KTsK KworCiAvKiBNYWtlIGEgZGlzayBhdmFpbGFibGUgaW4gdGhpcyAodGhlIGNvbnRyb2wpIGRvbWFp bi4gQWx3YXlzIGNhbGxzCiAgKiBkbHMtPmNhbGxiYWNrIHdoZW4gZmluaXNoZWQuCiAgKiBTdGF0 ZSBJZGxlIC0+IEF0dGFjaGluZwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=