From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 4/6] libxl: add basic support for devices without backend Date: Thu, 8 Sep 2016 09:20:24 +0200 Message-ID: <1473319226-27221-5-git-send-email-jgross@suse.com> References: <1473319226-27221-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: <1473319226-27221-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+Ci0tLQogdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMgICAgICAgICAg IHwgNTkgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB0b29scy9saWJ4bC9s aWJ4bF90eXBlc19pbnRlcm5hbC5pZGwgfCAgMSArCiB0b29scy9saWJ4bC9saWJ4bF94c2hlbHAu YyAgICAgICAgICAgfCAgNiArKystCiAzIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyks IDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RldmljZS5j IGIvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKaW5kZXggOWM3N2I2Mi4uNTIxMWYyMCAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKKysrIGIvdG9vbHMvbGlieGwvbGli eGxfZGV2aWNlLmMKQEAgLTExNCwxNSArMTE0LDIxIEBAIGludCBsaWJ4bF9fZGV2aWNlX2dlbmVy aWNfYWRkKGxpYnhsX19nYyAqZ2MsIHhzX3RyYW5zYWN0aW9uX3QgdCwKICAgICAgICAgbGlieGxf X2RldmljZSAqZGV2aWNlLCBjaGFyICoqYmVudHMsIGNoYXIgKipmZW50cywgY2hhciAqKnJvX2Zl bnRzKQogewogICAgIGxpYnhsX2N0eCAqY3R4ID0gbGlieGxfX2djX293bmVyKGdjKTsKLSAgICBj aGFyICpmcm9udGVuZF9wYXRoLCAqYmFja2VuZF9wYXRoLCAqbGlieGxfcGF0aDsKKyAgICBjaGFy ICpmcm9udGVuZF9wYXRoID0gTlVMTCwgKmJhY2tlbmRfcGF0aCA9IE5VTEwsICpsaWJ4bF9wYXRo OwogICAgIHN0cnVjdCB4c19wZXJtaXNzaW9ucyBmcm9udGVuZF9wZXJtc1syXTsKICAgICBzdHJ1 Y3QgeHNfcGVybWlzc2lvbnMgcm9fZnJvbnRlbmRfcGVybXNbMl07CiAgICAgc3RydWN0IHhzX3Bl cm1pc3Npb25zIGJhY2tlbmRfcGVybXNbMl07CiAgICAgaW50IGNyZWF0ZV90cmFuc2FjdGlvbiA9 IHQgPT0gWEJUX05VTEw7CisgICAgaW50IGxpYnhsX29ubHkgPSBkZXZpY2UtPmJhY2tlbmRfa2lu ZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfTk9ORTsKICAgICBpbnQgcmM7CiAKLSAgICBmcm9udGVu ZF9wYXRoID0gbGlieGxfX2RldmljZV9mcm9udGVuZF9wYXRoKGdjLCBkZXZpY2UpOwotICAgIGJh Y2tlbmRfcGF0aCA9IGxpYnhsX19kZXZpY2VfYmFja2VuZF9wYXRoKGdjLCBkZXZpY2UpOworICAg IGlmIChsaWJ4bF9vbmx5KSB7CisgICAgICAgIC8qIGJlbnRzIHNob3VsZCBiZSBzZXQgYXMgdGhp cyBpcyB1c2VkIHRvIHNldHVwIGxpYnhsX3BhdGggY29udGVudC4gKi8KKyAgICAgICAgYXNzZXJ0 KCFmZW50cyAmJiAhcm9fZmVudHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZyb250ZW5kX3Bh dGggPSBsaWJ4bF9fZGV2aWNlX2Zyb250ZW5kX3BhdGgoZ2MsIGRldmljZSk7CisgICAgICAgIGJh Y2tlbmRfcGF0aCA9IGxpYnhsX19kZXZpY2VfYmFja2VuZF9wYXRoKGdjLCBkZXZpY2UpOworICAg IH0KICAgICBsaWJ4bF9wYXRoID0gbGlieGxfX2RldmljZV9saWJ4bF9wYXRoKGdjLCBkZXZpY2Up OwogCiAgICAgZnJvbnRlbmRfcGVybXNbMF0uaWQgPSBkZXZpY2UtPmRvbWlkOwpAQCAtMTQ0LDEz ICsxNTAsMTUgQEAgcmV0cnlfdHJhbnNhY3Rpb246CiAgICAgcmMgPSBsaWJ4bF9feHNfcm1fY2hl Y2tlZChnYywgdCwgbGlieGxfcGF0aCk7CiAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAotICAgIHJj ID0gbGlieGxfX3hzX3dyaXRlX2NoZWNrZWQoZ2MsIHQsIEdDU1BSSU5URigiJXMvZnJvbnRlbmQi LGxpYnhsX3BhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbnRlbmRf cGF0aCk7Ci0gICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICBpZiAoIWxpYnhsX29ubHkpIHsKKyAg ICAgICAgcmMgPSBsaWJ4bF9feHNfd3JpdGVfY2hlY2tlZChnYywgdCwgR0NTUFJJTlRGKCIlcy9m cm9udGVuZCIsbGlieGxfcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZnJvbnRlbmRfcGF0aCk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CiAKLSAgICByYyA9 IGxpYnhsX194c193cml0ZV9jaGVja2VkKGdjLCB0LCBHQ1NQUklOVEYoIiVzL2JhY2tlbmQiLGxp YnhsX3BhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2VuZF9wYXRo KTsKLSAgICBpZiAocmMpIGdvdG8gb3V0OworICAgICAgICByYyA9IGxpYnhsX194c193cml0ZV9j aGVja2VkKGdjLCB0LCBHQ1NQUklOVEYoIiVzL2JhY2tlbmQiLGxpYnhsX3BhdGgpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tlbmRfcGF0aCk7CisgICAgICAgIGlm IChyYykgZ290byBvdXQ7CisgICAgfQogCiAgICAgLyogeHh4IG11Y2ggb2YgdGhpcyBmdW5jdGlv biBsYWNrcyBlcnJvciBjaGVja3MhICovCiAKQEAgLTE3OSwxMiArMTg3LDE1IEBAIHJldHJ5X3Ry YW5zYWN0aW9uOgogICAgIH0KIAogICAgIGlmIChiZW50cykgewotICAgICAgICB4c19ybShjdHgt PnhzaCwgdCwgYmFja2VuZF9wYXRoKTsKLSAgICAgICAgeHNfbWtkaXIoY3R4LT54c2gsIHQsIGJh Y2tlbmRfcGF0aCk7Ci0gICAgICAgIHhzX3NldF9wZXJtaXNzaW9ucyhjdHgtPnhzaCwgdCwgYmFj a2VuZF9wYXRoLCBiYWNrZW5kX3Blcm1zLCBBUlJBWV9TSVpFKGJhY2tlbmRfcGVybXMpKTsKLSAg ICAgICAgeHNfd3JpdGUoY3R4LT54c2gsIHQsIEdDU1BSSU5URigiJXMvZnJvbnRlbmQiLCBiYWNr ZW5kX3BhdGgpLAotICAgICAgICAgICAgICAgICBmcm9udGVuZF9wYXRoLCBzdHJsZW4oZnJvbnRl bmRfcGF0aCkpOwotICAgICAgICBsaWJ4bF9feHNfd3JpdGV2KGdjLCB0LCBiYWNrZW5kX3BhdGgs IGJlbnRzKTsKKyAgICAgICAgaWYgKCFsaWJ4bF9vbmx5KSB7CisgICAgICAgICAgICB4c19ybShj dHgtPnhzaCwgdCwgYmFja2VuZF9wYXRoKTsKKyAgICAgICAgICAgIHhzX21rZGlyKGN0eC0+eHNo LCB0LCBiYWNrZW5kX3BhdGgpOworICAgICAgICAgICAgeHNfc2V0X3Blcm1pc3Npb25zKGN0eC0+ eHNoLCB0LCBiYWNrZW5kX3BhdGgsIGJhY2tlbmRfcGVybXMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQVJSQVlfU0laRShiYWNrZW5kX3Blcm1zKSk7CisgICAgICAgICAgICB4c193 cml0ZShjdHgtPnhzaCwgdCwgR0NTUFJJTlRGKCIlcy9mcm9udGVuZCIsIGJhY2tlbmRfcGF0aCks CisgICAgICAgICAgICAgICAgICAgICBmcm9udGVuZF9wYXRoLCBzdHJsZW4oZnJvbnRlbmRfcGF0 aCkpOworICAgICAgICAgICAgbGlieGxfX3hzX3dyaXRldihnYywgdCwgYmFja2VuZF9wYXRoLCBi ZW50cyk7CisgICAgICAgIH0KIAogICAgICAgICAvKgogICAgICAgICAgKiBXZSBtYWtlIGEgY29w eSBvZiBldmVyeXRoaW5nIGZvciB0aGUgYmFja2VuZCBpbiB0aGUgbGlieGwKQEAgLTE5NCw2ICsy MDUsOSBAQCByZXRyeV90cmFuc2FjdGlvbjoKICAgICAgICAgICogaW5zdGVhZC4gIEJ1dCB0aGVy ZSBhcmUgc3RpbGwgcGxhY2VzIGluIGxpYnhsIHRoYXQgdHJ5IHRvCiAgICAgICAgICAqIHJlY29u c3RydWN0IGEgY29uZmlnIGZyb20geGVuc3RvcmUuCiAgICAgICAgICAqCisgICAgICAgICAqIEZv ciBkZXZpY2VzIHdpdGhvdXQgYmFja2VuZCAoZS5nLiBVU0IgZGV2aWNlcyBlbXVsYXRlZCB2aWEg cWVtdSkKKyAgICAgICAgICogb25seSB0aGUgbGlieGwgcGF0aCBpcyB3cml0dGVuLgorICAgICAg ICAgKgogICAgICAgICAgKiBUaGlzIGR1cGxpY2F0aW9uIHdpbGwgdHlwaWNhbGx5IHByb2R1Y2Vz IGR1cGxpY2F0ZSBrZXlzCiAgICAgICAgICAqIHdoaWNoIHdpbGwgZ28gb3V0IG9mIGRhdGUsIGJ1 dCB0aGF0J3MgT0sgYmVjYXVzZSBub3RoaW5nCiAgICAgICAgICAqIHJlYWRzIHRob3NlLiAgRm9y IGV4YW1wbGUsIHRoZXJlIGlzIHVzdWFsbHkKQEAgLTY2MiwxMiArNjc2LDE4IEBAIHZvaWQgbGli eGxfX211bHRpZGV2X3ByZXBhcmVkKGxpYnhsX19lZ2MgKmVnYywKIAogaW50IGxpYnhsX19kZXZp Y2VfZGVzdHJveShsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9fZGV2aWNlICpkZXYpCiB7Ci0gICAgY29u c3QgY2hhciAqYmVfcGF0aCA9IGxpYnhsX19kZXZpY2VfYmFja2VuZF9wYXRoKGdjLCBkZXYpOwot ICAgIGNvbnN0IGNoYXIgKmZlX3BhdGggPSBsaWJ4bF9fZGV2aWNlX2Zyb250ZW5kX3BhdGgoZ2Ms IGRldik7CisgICAgY29uc3QgY2hhciAqYmVfcGF0aCA9IE5VTEw7CisgICAgY29uc3QgY2hhciAq ZmVfcGF0aCA9IE5VTEw7CiAgICAgY29uc3QgY2hhciAqbGlieGxfcGF0aCA9IGxpYnhsX19kZXZp Y2VfbGlieGxfcGF0aChnYywgZGV2KTsKICAgICB4c190cmFuc2FjdGlvbl90IHQgPSAwOwogICAg IGludCByYzsKICAgICB1aW50MzJfdCBkb21pZDsKKyAgICBpbnQgbGlieGxfb25seSA9IGRldi0+ YmFja2VuZF9raW5kID09IExJQlhMX19ERVZJQ0VfS0lORF9OT05FOworCisgICAgaWYgKCFsaWJ4 bF9vbmx5KSB7CisgICAgICAgIGJlX3BhdGggPSBsaWJ4bF9fZGV2aWNlX2JhY2tlbmRfcGF0aChn YywgZGV2KTsKKyAgICAgICAgZmVfcGF0aCA9IGxpYnhsX19kZXZpY2VfZnJvbnRlbmRfcGF0aChn YywgZGV2KTsKKyAgICB9CiAKICAgICByYyA9IGxpYnhsX19nZXRfZG9taWQoZ2MsICZkb21pZCk7 CiAgICAgaWYgKHJjKSBnb3RvIG91dDsKQEAgLTY4MSwxMCArNzAxLDExIEBAIGludCBsaWJ4bF9f ZGV2aWNlX2Rlc3Ryb3kobGlieGxfX2djICpnYywgbGlieGxfX2RldmljZSAqZGV2KQogICAgICAg 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=