From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v1 09/12] libxl: add Qdisk backend launch helper Date: Wed, 2 Oct 2013 11:24:31 +0200 Message-ID: <1380705874-58491-10-git-send-email-roger.pau@citrix.com> References: <1380705874-58491-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1VRIfl-0008Ch-MS for xen-devel@lists.xenproject.org; Wed, 02 Oct 2013 09:24:46 +0000 In-Reply-To: <1380705874-58491-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Anthony PERARD , Stefano Stabellini , Ian Jackson , Ian Campbell , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org Q3VycmVudCBRZW11IGxhdW5jaCBmdW5jdGlvbnMgaW4gbGlieGwgcmVxdWlyZSB0aGUgdXNhZ2Ug b2YgZGF0YQpzdHJ1Y3R1cmVzIG9ubHkgYXZhaWFsYmUgb24gZG9tYWluIGNyZWF0aW9uLiBBbGwg dGhpcyBpbmZvcm1hdGlvbiBpcwpub3QgbmVlZCBpbiBvcmRlciB0byBsYXVuY2ggYSBRZW11IGlu c3RhbmNlIHRvIHNlcnZlIFFkaXNrIGJhY2tlbmRzLApzbyBpbnRyb2R1Y2UgYSBuZXcgc2ltcGxp ZmllZCBoZWxwZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBsYXVuY2gKUWVtdS9RZGlzaywgdGhhdCB3 aWxsIGJlIHVzZWQgdG8gbGF1bmNoIFFkaXNrIGluIGRyaXZlciBkb21haW5zLgoKU2lnbmVkLW9m Zi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNjOiBJYW4gSmFj a3NvbiA8SWFuLkphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBDYW1wYmVsbCA8aWFuLmNh bXBiZWxsQGNpdHJpeC5jb20+CkNjOiBBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0 cml4LmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5pQGV1LmNp dHJpeC5jb20+Ci0tLQogdG9vbHMvbGlieGwvbGlieGxfZG0uYyAgICAgICB8ICAxNDkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiB0b29scy9saWJ4bC9saWJ4bF9p bnRlcm5hbC5oIHwgICAxNyArKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIv dG9vbHMvbGlieGwvbGlieGxfZG0uYwppbmRleCA3YzBlM2NlLi4wNGUxZWQ3IDEwMDY0NAotLS0g YS90b29scy9saWJ4bC9saWJ4bF9kbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAg LTEzMDgsMTggKzEzMDgsMTIzIEBAIHN0YXRpYyB2b2lkIGRldmljZV9tb2RlbF9zcGF3bl9vdXRj b21lKGxpYnhsX19lZ2MgKmVnYywKICAgICBkbXNzLT5jYWxsYmFjayhlZ2MsIGRtc3MsIHJjKTsK IH0KIAotaW50IGxpYnhsX19kZXN0cm95X2RldmljZV9tb2RlbChsaWJ4bF9fZ2MgKmdjLCB1aW50 MzJfdCBkb21pZCkKKy8qIGNhbGxiYWNrcyBwYXNzZWQgaW4gbGlieGxfX3NwYXduX3NwYXduIGZv ciBRZGlzayBhdHRhY2ggKi8KK3N0YXRpYyB2b2lkIHFkaXNrX2NvbmZpcm0obGlieGxfX2VnYyAq ZWdjLCBsaWJ4bF9fc3Bhd25fc3RhdGUgKnNwYXduLAorICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICp4c2RhdGEpOworc3RhdGljIHZvaWQgcWRpc2tfc3RhcnR1cF9mYWlsZWQo bGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxf X3NwYXduX3N0YXRlICpzcGF3bik7CitzdGF0aWMgdm9pZCBxZGlza19kZXRhY2hlZChsaWJ4bF9f ZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3Bhd25fc3RhdGUg KnNwYXduKTsKKwordm9pZCBsaWJ4bF9fc3Bhd25fcWRpc2tfYmFja2VuZChsaWJ4bF9fZWdjICpl Z2MsIGxpYnhsX19zcGF3bl9xZGlza19zdGF0ZSAqc3FzKQogewotICAgIGNoYXIgKnBpZDsKLSAg ICBpbnQgcmV0OworICAgIFNUQVRFX0FPX0dDKHNxcy0+c3Bhd24uYW8pOworICAgIGZsZXhhcnJh eV90ICpkbV9hcmdzOworICAgIGNoYXIgKiphcmdzOworICAgIGNoYXIgKmxvZ2ZpbGUgPSBOVUxM OworICAgIGNvbnN0IGNoYXIgKmRtOworICAgIGludCBsb2dmaWxlX3csIG51bGwsIHJjOworICAg IHVpbnQzMl90IGRvbWlkID0gc3FzLT5ndWVzdF9kb21pZDsKKworICAgIC8qIEFsd2F5cyB1c2Ug cWVtdS14ZW4gYXMgZGV2aWNlIG1vZGVsICovCisgICAgZG0gPSBxZW11X3hlbl9wYXRoKGdjKTsK KworICAgIGRtX2FyZ3MgPSBmbGV4YXJyYXlfbWFrZShnYywgMTUsIDEpOworICAgIGZsZXhhcnJh eV92YXBwZW5kKGRtX2FyZ3MsIGRtLCAiLXhlbi1kb21pZCIsCisgICAgICAgICAgICAgICAgICAg ICAgR0NTUFJJTlRGKCIlZCIsIGRvbWlkKSwgTlVMTCk7CisgICAgZmxleGFycmF5X2FwcGVuZChk bV9hcmdzLCAiLXhlbi1hdHRhY2giKTsKKyAgICBmbGV4YXJyYXlfdmFwcGVuZChkbV9hcmdzLCAi LW5hbWUiLAorICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiZG9tYWluLSV1IiwgZG9t aWQpLCBOVUxMKTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kKGRtX2FyZ3MsICItbm9ncmFwaGljIik7 CisgICAgZmxleGFycmF5X3ZhcHBlbmQoZG1fYXJncywgIi1NIiwgInhlbnB2IiwgTlVMTCk7Cisg ICAgZmxleGFycmF5X3ZhcHBlbmQoZG1fYXJncywgIi1tb25pdG9yIiwgIi9kZXYvbnVsbCIsIE5V TEwpOworICAgIGZsZXhhcnJheV92YXBwZW5kKGRtX2FyZ3MsICItc2VyaWFsIiwgIi9kZXYvbnVs bCIsIE5VTEwpOworICAgIGZsZXhhcnJheV92YXBwZW5kKGRtX2FyZ3MsICItcGFyYWxsZWwiLCAi L2Rldi9udWxsIiwgTlVMTCk7CisgICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCBOVUxMKTsK KyAgICBhcmdzID0gKGNoYXIgKiopIGZsZXhhcnJheV9jb250ZW50cyhkbV9hcmdzKTsKIAotICAg IHBpZCA9IGxpYnhsX194c19yZWFkKGdjLCBYQlRfTlVMTCwgbGlieGxfX3NwcmludGYoZ2MsICIv bG9jYWwvZG9tYWluLyVkL2ltYWdlL2RldmljZS1tb2RlbC1waWQiLCBkb21pZCkpOwotICAgIGlm ICghcGlkIHx8ICFhdG9pKHBpZCkpIHsKLSAgICAgICAgTE9HKEVSUk9SLCAiY291bGQgbm90IGZp bmQgZGV2aWNlLW1vZGVsJ3MgcGlkIGZvciBkb20gJXUiLCBkb21pZCk7Ci0gICAgICAgIHJldCA9 IEVSUk9SX0ZBSUw7CisgICAgbGlieGxfY3JlYXRlX2xvZ2ZpbGUoQ1RYLCBHQ1NQUklOVEYoInFk aXNrLSV1IiwgZG9taWQpLCAmbG9nZmlsZSk7CisgICAgbG9nZmlsZV93ID0gb3Blbihsb2dmaWxl LCBPX1dST05MWXxPX0NSRUFUfE9fQVBQRU5ELCAwNjQ0KTsKKyAgICBpZiAobG9nZmlsZV93IDwg MCkgeworICAgICAgICBmcmVlKGxvZ2ZpbGUpOworICAgICAgICByYyA9IGxvZ2ZpbGVfdzsKKyAg ICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgZnJlZShsb2dmaWxlKTsKKyAgICBudWxsID0g b3BlbigiL2Rldi9udWxsIiwgT19SRE9OTFkpOworCisgICAgc3FzLT5zcGF3bi53aGF0ID0gR0NT UFJJTlRGKCJkb21haW4gJXUgUWRpc2sgYmFja2VuZCIsIGRvbWlkKTsKKyAgICBzcXMtPnNwYXdu LnhzcGF0aCA9IEdDU1BSSU5URigiZGV2aWNlLW1vZGVsLyV1L3N0YXRlIiwgZG9taWQpOworICAg IHNxcy0+c3Bhd24udGltZW91dF9tcyA9IExJQlhMX0RFVklDRV9NT0RFTF9TVEFSVF9USU1FT1VU ICogMTAwMDsKKyAgICAvKgorICAgICAqIFdlIGNhbm5vdCBzYXZlIFFlbXUgcGlkIGFueXdoZXJl IGluIHRoZSB4ZW5zdG9yZSBndWVzdCBkaXIsCisgICAgICogYmVjYXVzZSB3ZSB3aWxsIGNhbGwg dGhpcyBmcm9tIHVucHJpdmlsZWdlZCBkcml2ZXIgZG9tYWlucywKKyAgICAgKiBzbyBzYXZlIGl0 IGluIHRoZSBjdXJyZW50IGRvbWFpbiBsaWJ4bCBwcml2YXRlIGRpci4KKyAgICAgKi8KKyAgICBz cXMtPnNwYXduLnBpZHBhdGggPSBHQ1NQUklOVEYoImxpYnhsLyV1L3FkaXNrLWJhY2tlbmQtcGlk IiwgZG9taWQpOworICAgIHNxcy0+c3Bhd24ubWlkcHJvY19jYiA9IGxpYnhsX19zcGF3bl9yZWNv cmRfcGlkOworICAgIHNxcy0+c3Bhd24uY29uZmlybV9jYiA9IHFkaXNrX2NvbmZpcm07CisgICAg c3FzLT5zcGF3bi5mYWlsdXJlX2NiID0gcWRpc2tfc3RhcnR1cF9mYWlsZWQ7CisgICAgc3FzLT5z cGF3bi5kZXRhY2hlZF9jYiA9IHFkaXNrX2RldGFjaGVkOworICAgIHJjID0gbGlieGxfX3NwYXdu X3NwYXduKGVnYywgJnNxcy0+c3Bhd24pOworICAgIGlmIChyYyA8IDApCisgICAgICAgIGdvdG8g ZXJyb3I7CisgICAgaWYgKCFyYykgeyAvKiBpbm5lciBjaGlsZCAqLworICAgICAgICBzZXRzaWQo KTsKKyAgICAgICAgbGlieGxfX2V4ZWMoZ2MsIG51bGwsIGxvZ2ZpbGVfdywgbG9nZmlsZV93LCBk bSwgYXJncywgTlVMTCk7CisgICAgfQorCisgICAgcmV0dXJuOworCitlcnJvcjoKKyAgICBhc3Nl cnQocmMpOworICAgIHNxcy0+Y2FsbGJhY2soZWdjLCBzcXMsIHJjKTsKKyAgICByZXR1cm47Cit9 CisKK3N0YXRpYyB2b2lkIHFkaXNrX2NvbmZpcm0obGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fc3Bh d25fc3RhdGUgKnNwYXduLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp4 c2RhdGEpCit7CisgICAgU1RBVEVfQU9fR0Moc3Bhd24tPmFvKTsKKworICAgIGlmICgheHNkYXRh KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3RyY21wKHhzZGF0YSwgInJ1bm5pbmciKSkK KyAgICAgICAgcmV0dXJuOworCisgICAgbGlieGxfX3NwYXduX2luaXRpYXRlX2RldGFjaChnYywg c3Bhd24pOworfQorCitzdGF0aWMgdm9pZCBxZGlza19zdGFydHVwX2ZhaWxlZChsaWJ4bF9fZWdj ICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3Bhd25fc3Rh dGUgKnNwYXduKQoreworICAgIGxpYnhsX19zcGF3bl9xZGlza19zdGF0ZSAqc3FzID0gQ09OVEFJ TkVSX09GKHNwYXduLCAqc3FzLCBzcGF3bik7CisgICAgc3FzLT5jYWxsYmFjayhlZ2MsIHNxcywg RVJST1JfRkFJTCk7Cit9CisKK3N0YXRpYyB2b2lkIHFkaXNrX2RldGFjaGVkKGxpYnhsX19lZ2Mg KmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zcGF3bl9zdGF0ZSAqc3Bh d24pCit7CisgICAgbGlieGxfX3NwYXduX3FkaXNrX3N0YXRlICpzcXMgPSBDT05UQUlORVJfT0Yo c3Bhd24sICpzcXMsIHNwYXduKTsKKyAgICBzcXMtPmNhbGxiYWNrKGVnYywgc3FzLCAwKTsKK30K KworLyogR2VuZXJpYyBmdW5jdGlvbiB0byBzaWduYWwgYSBRZW11IGluc3RhbmNlIHRvIGV4aXQg Ki8KK3N0YXRpYyBpbnQga2lsbF9kZXZpY2VfbW9kZWwobGlieGxfX2djICpnYywgY29uc3QgY2hh ciAqeHNfcGF0aF9waWQpCit7CisgICAgY29uc3QgY2hhciAqeHNfcGlkOworICAgIGludCByZXQs IHBpZDsKKworICAgIHJldCA9IGxpYnhsX194c19yZWFkX2NoZWNrZWQoZ2MsIFhCVF9OVUxMLCB4 c19wYXRoX3BpZCwgJnhzX3BpZCk7CisgICAgaWYgKHJldCB8fCAheHNfcGlkKSB7CisgICAgICAg IExPRyhFUlJPUiwgInVuYWJsZSB0byBmaW5kIGRldmljZSBtb2RlbCBwaWQgaW4gJXMiLCB4c19w YXRoX3BpZCk7CisgICAgICAgIHJldCA9IHJldCA/IDogRVJST1JfRkFJTDsKICAgICAgICAgZ290 byBvdXQ7CiAgICAgfQotICAgIHJldCA9IGtpbGwoYXRvaShwaWQpLCBTSUdIVVApOworICAgIHBp ZCA9IGF0b2koeHNfcGlkKTsKKworICAgIHJldCA9IGtpbGwocGlkLCBTSUdIVVApOwogICAgIGlm IChyZXQgPCAwICYmIGVycm5vID09IEVTUkNIKSB7CiAgICAgICAgIExPRyhFUlJPUiwgIkRldmlj ZSBNb2RlbCBhbHJlYWR5IGV4aXRlZCIpOwogICAgICAgICByZXQgPSAwOwpAQCAtMTMyNyw3ICsx NDMyLDcgQEAgaW50IGxpYnhsX19kZXN0cm95X2RldmljZV9tb2RlbChsaWJ4bF9fZ2MgKmdjLCB1 aW50MzJfdCBkb21pZCkKICAgICAgICAgTE9HKERFQlVHLCAiRGV2aWNlIE1vZGVsIHNpZ25hbGVk Iik7CiAgICAgICAgIHJldCA9IDA7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgTE9HRShFUlJPUiwg ImZhaWxlZCB0byBraWxsIERldmljZSBNb2RlbCBbJWRdIiwgYXRvaShwaWQpKTsKKyAgICAgICAg TE9HRShFUlJPUiwgImZhaWxlZCB0byBraWxsIERldmljZSBNb2RlbCBbJWRdIiwgcGlkKTsKICAg ICAgICAgcmV0ID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQpAQCAtMTMz Niw2ICsxNDQxLDMyIEBAIG91dDoKICAgICByZXR1cm4gcmV0OwogfQogCisvKiBIZWxwZXIgdG8g ZGVzdHJveSBhIFFkaXNrIGJhY2tlbmQgKi8KK2ludCBsaWJ4bF9fZGVzdHJveV9xZGlza19iYWNr ZW5kKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkKQoreworICAgIGNoYXIgKnBpZF9wYXRo OworICAgIGludCByYzsKKworICAgIHBpZF9wYXRoID0gR0NTUFJJTlRGKCJsaWJ4bC8ldS9xZGlz ay1iYWNrZW5kLXBpZCIsIGRvbWlkKTsKKworICAgIHJjID0ga2lsbF9kZXZpY2VfbW9kZWwoZ2Ms IHBpZF9wYXRoKTsKKyAgICBpZiAocmMpCisgICAgICAgIGdvdG8gb3V0OworCisgICAgbGlieGxf X3hzX3JtX2NoZWNrZWQoZ2MsIFhCVF9OVUxMLCBwaWRfcGF0aCk7CisgICAgbGlieGxfX3hzX3Jt X2NoZWNrZWQoZ2MsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5U RigiZGV2aWNlLW1vZGVsLyV1IiwgZG9taWQpKTsKKworb3V0OgorICAgIHJldHVybiByYzsKK30K KworaW50IGxpYnhsX19kZXN0cm95X2RldmljZV9tb2RlbChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJf dCBkb21pZCkKK3sKKyAgICByZXR1cm4ga2lsbF9kZXZpY2VfbW9kZWwoZ2MsCisgICAgICAgICAg ICAgICAgR0NTUFJJTlRGKCIvbG9jYWwvZG9tYWluLyVkL2ltYWdlL2RldmljZS1tb2RlbC1waWQi LCBkb21pZCkpOworfQorCiBpbnQgbGlieGxfX25lZWRfeGVucHZfcWVtdShsaWJ4bF9fZ2MgKmdj LAogICAgICAgICBpbnQgbnJfY29uc29sZXMsIGxpYnhsX19kZXZpY2VfY29uc29sZSAqY29uc29s ZXMsCiAgICAgICAgIGludCBucl92ZmJzLCBsaWJ4bF9kZXZpY2VfdmZiICp2ZmJzLApkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2lu dGVybmFsLmgKaW5kZXggN2I4NmZiNC4uYzFmNGUzMCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0y NTAyLDYgKzI1MDIsMjMgQEAgX2hpZGRlbiB2b2lkIGxpYnhsX19zcGF3bl9zdHViX2RtKGxpYnhs X19lZ2MgKmVnYywgbGlieGxfX3N0dWJfZG1fc3Bhd25fc3RhdGUqKTsKIAogX2hpZGRlbiBjaGFy ICpsaWJ4bF9fc3R1Yl9kbV9uYW1lKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKiBndWVzdF9u YW1lKTsKIAorLyogUWRpc2sgYmFja2VuZCBsYXVuY2ggaGVscGVycyAqLworCit0eXBlZGVmIHN0 cnVjdCBsaWJ4bF9fc3Bhd25fcWRpc2tfc3RhdGUgbGlieGxfX3NwYXduX3FkaXNrX3N0YXRlOwor Cit0eXBlZGVmIHZvaWQgbGlieGxfX3FkaXNrX3NwYXduX2NiKGxpYnhsX19lZ2MgKmVnYywgbGli eGxfX3NwYXduX3FkaXNrX3N0YXRlKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IHJjIC8qIGlmICEwLCBlcnJvciB3YXMgbG9nZ2VkICovKTsKKworc3RydWN0IGxpYnhs X19zcGF3bl9xZGlza19zdGF0ZSB7CisgICAgdWludDMyX3QgZ3Vlc3RfZG9taWQ7CisgICAgbGli eGxfX3NwYXduX3N0YXRlIHNwYXduOworICAgIGxpYnhsX19xZGlza19zcGF3bl9jYiAqY2FsbGJh Y2s7Cit9OworCitfaGlkZGVuIHZvaWQgbGlieGxfX3NwYXduX3FkaXNrX2JhY2tlbmQobGlieGxf X2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X19zcGF3bl9xZGlza19zdGF0ZSAqc3FzKTsKK19oaWRkZW4gaW50IGxpYnhsX19kZXN0cm95X3Fk aXNrX2JhY2tlbmQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQpOworCiAvKi0tLS0tIERv bWFpbiBjcmVhdGlvbiAtLS0tLSovCiAKIHR5cGVkZWYgc3RydWN0IGxpYnhsX19kb21haW5fY3Jl YXRlX3N0YXRlIGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlOwotLSAKMS43LjcuNSAoQXBwbGUg R2l0LTI2KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==