From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 2/4] libxl: add basic support for devices without backend Date: Tue, 20 Sep 2016 16:18:08 +0200 Message-ID: <1474381090-31962-3-git-send-email-jgross@suse.com> References: <1474381090-31962-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1474381090-31962-1-git-send-email-jgross@suse.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: George.Dunlap@eu.citrix.com, wei.liu2@citrix.com, ian.jackson@eu.citrix.com, Juergen Gross List-Id: xen-devel@lists.xenproject.org V2l0aCB0aGUgcGxhbm5lZCBzdXBwb3J0IG9mIEhWTSBVU0IgcGFzc3Rocm91Z2ggdmlhIHRoZSBV U0IgZW11bGF0aW9uCmNhcGFiaWxpdGllcyBvZiBxZW11IGxpYnhsIGhhcyB0byBzdXBwb3J0IGd1 ZXN0IGRldmljZXMgd2hpY2ggaGF2ZSBubwpiYWNrLSBhbmQgZnJvbnRlbmQuIEluZm9ybWF0aW9u IGFib3V0IHRob3NlIGRldmljZXMgd2lsbCBsaXZlIGluIHRoZQpsaWJ4bCBwYXJ0IG9mIFhlbnN0 b3JlIG9ubHkuCgpBZGQgc29tZSBiYXNpYyBzdXBwb3J0IHRvIGxpYnhsIHRvIGJlIGFibGUgdG8g Y29wZSB3aXRoIHRoaXMgc2NlbmFyaW8uCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxq Z3Jvc3NAc3VzZS5jb20+Ci0tLQpWNDogY29ycmVjdGVkIGxpYnhsX19kZXZpY2VfZGVzdHJveSgp IHRvIG5vdCB1c2UgYmVfcGF0aCBiZWluZyBOVUxMCi0tLQogdG9vbHMvbGlieGwvbGlieGxfZGV2 aWNlLmMgICAgICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t CiB0b29scy9saWJ4bC9saWJ4bF90eXBlc19pbnRlcm5hbC5pZGwgfCAgMSArCiB0b29scy9saWJ4 bC9saWJ4bF94c2hlbHAuYyAgICAgICAgICAgfCAgNiArKystCiAzIGZpbGVzIGNoYW5nZWQsIDUz IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhs L2xpYnhsX2RldmljZS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKaW5kZXggZGJmMTU3 ZC4uMWNjOTA5OCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKKysrIGIv dG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKQEAgLTExNCwxNSArMTE0LDIxIEBAIGludCBsaWJ4 bF9fZGV2aWNlX2dlbmVyaWNfYWRkKGxpYnhsX19nYyAqZ2MsIHhzX3RyYW5zYWN0aW9uX3QgdCwK ICAgICAgICAgbGlieGxfX2RldmljZSAqZGV2aWNlLCBjaGFyICoqYmVudHMsIGNoYXIgKipmZW50 cywgY2hhciAqKnJvX2ZlbnRzKQogewogICAgIGxpYnhsX2N0eCAqY3R4ID0gbGlieGxfX2djX293 bmVyKGdjKTsKLSAgICBjaGFyICpmcm9udGVuZF9wYXRoLCAqYmFja2VuZF9wYXRoLCAqbGlieGxf cGF0aDsKKyAgICBjaGFyICpmcm9udGVuZF9wYXRoID0gTlVMTCwgKmJhY2tlbmRfcGF0aCA9IE5V TEwsICpsaWJ4bF9wYXRoOwogICAgIHN0cnVjdCB4c19wZXJtaXNzaW9ucyBmcm9udGVuZF9wZXJt c1syXTsKICAgICBzdHJ1Y3QgeHNfcGVybWlzc2lvbnMgcm9fZnJvbnRlbmRfcGVybXNbMl07CiAg ICAgc3RydWN0IHhzX3Blcm1pc3Npb25zIGJhY2tlbmRfcGVybXNbMl07CiAgICAgaW50IGNyZWF0 ZV90cmFuc2FjdGlvbiA9IHQgPT0gWEJUX05VTEw7CisgICAgaW50IGxpYnhsX29ubHkgPSBkZXZp Y2UtPmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfTk9ORTsKICAgICBpbnQgcmM7 CiAKLSAgICBmcm9udGVuZF9wYXRoID0gbGlieGxfX2RldmljZV9mcm9udGVuZF9wYXRoKGdjLCBk ZXZpY2UpOwotICAgIGJhY2tlbmRfcGF0aCA9IGxpYnhsX19kZXZpY2VfYmFja2VuZF9wYXRoKGdj LCBkZXZpY2UpOworICAgIGlmIChsaWJ4bF9vbmx5KSB7CisgICAgICAgIC8qIGJlbnRzIHNob3Vs ZCBiZSBzZXQgYXMgdGhpcyBpcyB1c2VkIHRvIHNldHVwIGxpYnhsX3BhdGggY29udGVudC4gKi8K KyAgICAgICAgYXNzZXJ0KCFmZW50cyAmJiAhcm9fZmVudHMpOworICAgIH0gZWxzZSB7CisgICAg ICAgIGZyb250ZW5kX3BhdGggPSBsaWJ4bF9fZGV2aWNlX2Zyb250ZW5kX3BhdGgoZ2MsIGRldmlj ZSk7CisgICAgICAgIGJhY2tlbmRfcGF0aCA9IGxpYnhsX19kZXZpY2VfYmFja2VuZF9wYXRoKGdj LCBkZXZpY2UpOworICAgIH0KICAgICBsaWJ4bF9wYXRoID0gbGlieGxfX2RldmljZV9saWJ4bF9w YXRoKGdjLCBkZXZpY2UpOwogCiAgICAgZnJvbnRlbmRfcGVybXNbMF0uaWQgPSBkZXZpY2UtPmRv bWlkOwpAQCAtMTQ0LDEzICsxNTAsMTUgQEAgcmV0cnlfdHJhbnNhY3Rpb246CiAgICAgcmMgPSBs aWJ4bF9feHNfcm1fY2hlY2tlZChnYywgdCwgbGlieGxfcGF0aCk7CiAgICAgaWYgKHJjKSBnb3Rv IG91dDsKIAotICAgIHJjID0gbGlieGxfX3hzX3dyaXRlX2NoZWNrZWQoZ2MsIHQsIEdDU1BSSU5U RigiJXMvZnJvbnRlbmQiLGxpYnhsX3BhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZnJvbnRlbmRfcGF0aCk7Ci0gICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICBpZiAoIWxp YnhsX29ubHkpIHsKKyAgICAgICAgcmMgPSBsaWJ4bF9feHNfd3JpdGVfY2hlY2tlZChnYywgdCwg R0NTUFJJTlRGKCIlcy9mcm9udGVuZCIsbGlieGxfcGF0aCksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZnJvbnRlbmRfcGF0aCk7CisgICAgICAgIGlmIChyYykgZ290byBv dXQ7CiAKLSAgICByYyA9IGxpYnhsX194c193cml0ZV9jaGVja2VkKGdjLCB0LCBHQ1NQUklOVEYo IiVzL2JhY2tlbmQiLGxpYnhsX3BhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYmFja2VuZF9wYXRoKTsKLSAgICBpZiAocmMpIGdvdG8gb3V0OworICAgICAgICByYyA9IGxp YnhsX194c193cml0ZV9jaGVja2VkKGdjLCB0LCBHQ1NQUklOVEYoIiVzL2JhY2tlbmQiLGxpYnhs X3BhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tlbmRfcGF0 aCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgfQogCiAgICAgLyogeHh4IG11Y2gg b2YgdGhpcyBmdW5jdGlvbiBsYWNrcyBlcnJvciBjaGVja3MhICovCiAKQEAgLTE3OSwxMiArMTg3 LDE1IEBAIHJldHJ5X3RyYW5zYWN0aW9uOgogICAgIH0KIAogICAgIGlmIChiZW50cykgewotICAg ICAgICB4c19ybShjdHgtPnhzaCwgdCwgYmFja2VuZF9wYXRoKTsKLSAgICAgICAgeHNfbWtkaXIo Y3R4LT54c2gsIHQsIGJhY2tlbmRfcGF0aCk7Ci0gICAgICAgIHhzX3NldF9wZXJtaXNzaW9ucyhj dHgtPnhzaCwgdCwgYmFja2VuZF9wYXRoLCBiYWNrZW5kX3Blcm1zLCBBUlJBWV9TSVpFKGJhY2tl bmRfcGVybXMpKTsKLSAgICAgICAgeHNfd3JpdGUoY3R4LT54c2gsIHQsIEdDU1BSSU5URigiJXMv ZnJvbnRlbmQiLCBiYWNrZW5kX3BhdGgpLAotICAgICAgICAgICAgICAgICBmcm9udGVuZF9wYXRo LCBzdHJsZW4oZnJvbnRlbmRfcGF0aCkpOwotICAgICAgICBsaWJ4bF9feHNfd3JpdGV2KGdjLCB0 LCBiYWNrZW5kX3BhdGgsIGJlbnRzKTsKKyAgICAgICAgaWYgKCFsaWJ4bF9vbmx5KSB7CisgICAg ICAgICAgICB4c19ybShjdHgtPnhzaCwgdCwgYmFja2VuZF9wYXRoKTsKKyAgICAgICAgICAgIHhz X21rZGlyKGN0eC0+eHNoLCB0LCBiYWNrZW5kX3BhdGgpOworICAgICAgICAgICAgeHNfc2V0X3Bl cm1pc3Npb25zKGN0eC0+eHNoLCB0LCBiYWNrZW5kX3BhdGgsIGJhY2tlbmRfcGVybXMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRShiYWNrZW5kX3Blcm1zKSk7Cisg ICAgICAgICAgICB4c193cml0ZShjdHgtPnhzaCwgdCwgR0NTUFJJTlRGKCIlcy9mcm9udGVuZCIs IGJhY2tlbmRfcGF0aCksCisgICAgICAgICAgICAgICAgICAgICBmcm9udGVuZF9wYXRoLCBzdHJs ZW4oZnJvbnRlbmRfcGF0aCkpOworICAgICAgICAgICAgbGlieGxfX3hzX3dyaXRldihnYywgdCwg YmFja2VuZF9wYXRoLCBiZW50cyk7CisgICAgICAgIH0KIAogICAgICAgICAvKgogICAgICAgICAg KiBXZSBtYWtlIGEgY29weSBvZiBldmVyeXRoaW5nIGZvciB0aGUgYmFja2VuZCBpbiB0aGUgbGli eGwKQEAgLTE5NCw2ICsyMDUsOSBAQCByZXRyeV90cmFuc2FjdGlvbjoKICAgICAgICAgICogaW5z dGVhZC4gIEJ1dCB0aGVyZSBhcmUgc3RpbGwgcGxhY2VzIGluIGxpYnhsIHRoYXQgdHJ5IHRvCiAg ICAgICAgICAqIHJlY29uc3RydWN0IGEgY29uZmlnIGZyb20geGVuc3RvcmUuCiAgICAgICAgICAq CisgICAgICAgICAqIEZvciBkZXZpY2VzIHdpdGhvdXQgUFYgYmFja2VuZCAoZS5nLiBVU0IgZGV2 aWNlcyBlbXVsYXRlZCB2aWEgcWVtdSkKKyAgICAgICAgICogb25seSB0aGUgbGlieGwgcGF0aCBp cyB3cml0dGVuLgorICAgICAgICAgKgogICAgICAgICAgKiBUaGlzIGR1cGxpY2F0aW9uIHdpbGwg dHlwaWNhbGx5IHByb2R1Y2VzIGR1cGxpY2F0ZSBrZXlzCiAgICAgICAgICAqIHdoaWNoIHdpbGwg Z28gb3V0IG9mIGRhdGUsIGJ1dCB0aGF0J3MgT0sgYmVjYXVzZSBub3RoaW5nCiAgICAgICAgICAq IHJlYWRzIHRob3NlLiAgRm9yIGV4YW1wbGUsIHRoZXJlIGlzIHVzdWFsbHkKQEAgLTY3OSwxNCAr NjkzLDIxIEBAIHZvaWQgbGlieGxfX211bHRpZGV2X3ByZXBhcmVkKGxpYnhsX19lZ2MgKmVnYywK IAogaW50IGxpYnhsX19kZXZpY2VfZGVzdHJveShsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fZGV2aWNl ICpkZXYpCiB7Ci0gICAgY29uc3QgY2hhciAqYmVfcGF0aCA9IGxpYnhsX19kZXZpY2VfYmFja2Vu ZF9wYXRoKGdjLCBkZXYpOwotICAgIGNvbnN0IGNoYXIgKmZlX3BhdGggPSBsaWJ4bF9fZGV2aWNl X2Zyb250ZW5kX3BhdGgoZ2MsIGRldik7CisgICAgY29uc3QgY2hhciAqYmVfcGF0aCA9IE5VTEw7 CisgICAgY29uc3QgY2hhciAqZmVfcGF0aCA9IE5VTEw7CiAgICAgY29uc3QgY2hhciAqbGlieGxf cGF0aCA9IGxpYnhsX19kZXZpY2VfbGlieGxfcGF0aChnYywgZGV2KTsKLSAgICBjb25zdCBjaGFy ICp0YXBkaXNrX3BhdGggPSBHQ1NQUklOVEYoIiVzLyVzIiwgYmVfcGF0aCwgInRhcGRpc2stcGFy YW1zIik7Ci0gICAgY29uc3QgY2hhciAqdGFwZGlza19wYXJhbXM7CisgICAgY29uc3QgY2hhciAq dGFwZGlza19wYXRoID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICp0YXBkaXNrX3BhcmFtcyA9IE5V TEw7CiAgICAgeHNfdHJhbnNhY3Rpb25fdCB0ID0gMDsKICAgICBpbnQgcmM7CiAgICAgdWludDMy X3QgZG9taWQ7CisgICAgaW50IGxpYnhsX29ubHkgPSBkZXYtPmJhY2tlbmRfa2luZCA9PSBMSUJY TF9fREVWSUNFX0tJTkRfTk9ORTsKKworICAgIGlmICghbGlieGxfb25seSkgeworICAgICAgICBi ZV9wYXRoID0gbGlieGxfX2RldmljZV9iYWNrZW5kX3BhdGgoZ2MsIGRldik7CisgICAgICAgIGZl X3BhdGggPSBsaWJ4bF9fZGV2aWNlX2Zyb250ZW5kX3BhdGgoZ2MsIGRldik7CisgICAgICAgIHRh cGRpc2tfcGF0aCA9IEdDU1BSSU5URigiJXMvJXMiLCBiZV9wYXRoLCAidGFwZGlzay1wYXJhbXMi KTsKKyAgICB9CiAKICAgICByYyA9IGxpYnhsX19nZXRfZG9taWQoZ2MsICZkb21pZCk7CiAgICAg aWYgKHJjKSBnb3RvIG91dDsKQEAgLTY5NiwxOCArNzE3LDIxIEBAIGludCBsaWJ4bF9fZGV2aWNl X2Rlc3Ryb3kobGlieGxfX2djICpnYywgbGlieGxfX2RldmljZSAqZGV2KQogICAgICAgICBpZiAo cmMpIGdvdG8gb3V0OwogCiAgICAgICAgIC8qIE1heSBub3QgZXhpc3QgaWYgdGhpcyBpcyBub3Qg YSB0YXAgZGV2aWNlICovCi0gICAgICAgIHJjID0gbGlieGxfX3hzX3JlYWRfY2hlY2tlZChnYywg dCwgdGFwZGlza19wYXRoLCAmdGFwZGlza19wYXJhbXMpOwotICAgICAgICBpZiAocmMpIGdvdG8g b3V0OworICAgICAgICBpZiAodGFwZGlza19wYXRoKSB7CisgICAgICAgICAgICByYyA9IGxpYnhs X194c19yZWFkX2NoZWNrZWQoZ2MsIHQsIHRhcGRpc2tfcGF0aCwgJnRhcGRpc2tfcGFyYW1zKTsK KyAgICAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgICAgIH0KIAogICAgICAgICBpZiAo ZG9taWQgPT0gTElCWExfVE9PTFNUQUNLX0RPTUlEKSB7CiAgICAgICAgICAgICAvKgogICAgICAg ICAgICAgICogVGhlIHRvb2xzdGFjayBkb21haW4gaXMgaW4gY2hhcmdlIG9mIHJlbW92aW5nIHRo ZQogICAgICAgICAgICAgICogZnJvbnRlbmQgYW5kIGxpYnhsIHBhdGhzLgogICAgICAgICAgICAg ICovCi0gICAgICAgICAgICBsaWJ4bF9feHNfcGF0aF9jbGVhbnVwKGdjLCB0LCBmZV9wYXRoKTsK KyAgICAgICAgICAgIGlmICghbGlieGxfb25seSkKKyAgICAgICAgICAgICAgICBsaWJ4bF9feHNf cGF0aF9jbGVhbnVwKGdjLCB0LCBmZV9wYXRoKTsKICAgICAgICAgICAgIGxpYnhsX194c19wYXRo X2NsZWFudXAoZ2MsIHQsIGxpYnhsX3BhdGgpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChkZXYt PmJhY2tlbmRfZG9taWQgPT0gZG9taWQpIHsKKyAgICAgICAgaWYgKGRldi0+YmFja2VuZF9kb21p ZCA9PSBkb21pZCAmJiAhbGlieGxfb25seSkgewogICAgICAgICAgICAgLyoKICAgICAgICAgICAg ICAqIFRoZSBkcml2ZXIgZG9tYWluIGlzIGluIGNoYXJnZSBvZiByZW1vdmluZyB3aGF0IGl0IGNh bgogICAgICAgICAgICAgICogZnJvbSB0aGUgYmFja2VuZCBwYXRoLgpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvbGlieGxfdHlwZXNfaW50ZXJuYWwuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlw ZXNfaW50ZXJuYWwuaWRsCmluZGV4IDE3N2Y5YjcuLjgyZTVjMDcgMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnhsL2xpYnhsX3R5cGVzX2ludGVybmFsLmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90 eXBlc19pbnRlcm5hbC5pZGwKQEAgLTE0LDYgKzE0LDcgQEAgbGlieGxfX3FtcF9tZXNzYWdlX3R5 cGUgPSBFbnVtZXJhdGlvbigicW1wX21lc3NhZ2VfdHlwZSIsIFsKICAgICBdKQogCiBsaWJ4bF9f ZGV2aWNlX2tpbmQgPSBFbnVtZXJhdGlvbigiZGV2aWNlX2tpbmQiLCBbCisgICAgKDAsICJOT05F IiksCiAgICAgKDEsICJWSUYiKSwKICAgICAoMiwgIlZCRCIpLAogICAgICgzLCAiUURJU0siKSwK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3hzaGVscC5jIGIvdG9vbHMvbGlieGwvbGli eGxfeHNoZWxwLmMKaW5kZXggNDk4MmI1Mi4uYjNiYWM2ZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfeHNoZWxwLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfeHNoZWxwLmMKQEAgLTIw LDggKzIwLDEyIEBACiBjaGFyICoqbGlieGxfX3hzX2t2c19vZl9mbGV4YXJyYXkobGlieGxfX2dj ICpnYywgZmxleGFycmF5X3QgKmFycmF5KQogewogICAgIGNoYXIgKiprdnM7Ci0gICAgaW50IGks IGxlbmd0aCA9IGFycmF5LT5jb3VudDsKKyAgICBpbnQgaSwgbGVuZ3RoOwogCisgICAgaWYgKCFh cnJheSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBsZW5ndGggPSBhcnJheS0+Y291bnQ7 CiAgICAgaWYgKCFsZW5ndGgpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0tIAoyLjYuNgoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=