From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v3 03/11] libxl: add generic function to get and free device list Date: Tue, 27 Jun 2017 13:03:19 +0300 Message-ID: <1498557807-10810-4-git-send-email-al1img@gmail.com> References: <1498557807-10810-1-git-send-email-al1img@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dPnLP-0007E6-TT for xen-devel@lists.xenproject.org; Tue, 27 Jun 2017 10:03:40 +0000 Received: by mail-lf0-f66.google.com with SMTP id t72so2312535lff.0 for ; Tue, 27 Jun 2017 03:03:38 -0700 (PDT) In-Reply-To: <1498557807-10810-1-git-send-email-al1img@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: wei.liu2@citrix.com, ian.jackson@eu.citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKQWRk IGxpYnhsX19kZXZpY2VfbGlzdCwgbGlieGxfX2RldmljZV9saXN0X2ZyZWUuCkRldmljZSBsaXN0 IGlzIGNyZWF0ZWQgZnJvbSBsaWJ4bCB4ZW4gc3RvcmUgZW50cmllcy4KSW4gb3JkZXIgdG8gZmls bCBsaWJ4bCBkZXZpY2Ugc3RydWN0dXJlIGZyb20geGVuIHN0b3JlLAp0aGUgZGV2aWNlIGhhbmRs aW5nIGZyYW1ld29yayBleHRlbmRlZCB3aXRoIGZyb21feGVuc3RvcmUgY2FsbGJhY2suCk9uIHRo aXMgY2FsbGJhY2sgbGlieGxfZGV2aWNlIHNoYWxsIGJlIGZpbGxlZCB3aXRoIGRhdGEgZnJvbQpi ZSB4ZW4gc3RvcmUgZGlyZWN0b3J5LgoKU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEdyeXRzb3Yg PG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgotLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2Rldmlj ZS5jICAgfCA3NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog dG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCB8ICA4ICsrKysrCiB0b29scy9saWJ4bC9saWJ4 bF92ZGlzcGwuYyAgIHwgMTcgKysrKysrKystLQogMyBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2Rl dmljZS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKaW5kZXggMDAzNTZhZi4uOGJjZmEy YiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKKysrIGIvdG9vbHMvbGli eGwvbGlieGxfZGV2aWNlLmMKQEAgLTE3OTMsNiArMTc5Myw4MiBAQCBvdXQ6CiAgICAgcmV0dXJu IEFPX0NSRUFURV9GQUlMKHJjKTsKIH0KIAordm9pZCogbGlieGxfX2RldmljZV9saXN0KGNvbnN0 IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSAqZHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBpbnQgKm51bSkKK3sKKyAgICBHQ19JTklU KGN0eCk7CisKKyAgICB2b2lkICpyID0gTlVMTDsKKyAgICB2b2lkICpsaXN0ID0gTlVMTDsKKyAg ICB2b2lkICppdGVtID0gTlVMTDsKKyAgICBjaGFyICpsaWJ4bF9wYXRoOworICAgIGNoYXIgKmJl X3BhdGg7CisgICAgY2hhcioqIGRpciA9IE5VTEw7CisgICAgdW5zaWduZWQgaW50IG5kaXJzID0g MDsKKyAgICBpbnQgcmM7CisKKyAgICAqbnVtID0gMDsKKworICAgIGxpYnhsX3BhdGggPSBHQ1NQ UklOVEYoIiVzL2RldmljZS8lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f eHNfbGlieGxfcGF0aChnYywgZG9taWQpLCBkdC0+dHlwZSk7CisKKyAgICBkaXIgPSBsaWJ4bF9f eHNfZGlyZWN0b3J5KGdjLCBYQlRfTlVMTCwgbGlieGxfcGF0aCwgJm5kaXJzKTsKKworICAgIGlm IChkaXIgJiYgbmRpcnMpIHsKKyAgICAgICAgbGlzdCA9IG1hbGxvYyhkdC0+ZGV2X2VsZW1fc2l6 ZSAqIG5kaXJzKTsKKyAgICAgICAgdm9pZCAqZW5kID0gKHVpbnQ4X3QqKWxpc3QgKyBuZGlycyAq IGR0LT5kZXZfZWxlbV9zaXplOworICAgICAgICBpdGVtID0gbGlzdDsKKworICAgICAgICB3aGls ZShpdGVtIDwgZW5kKSB7CisgICAgICAgICAgICBiZV9wYXRoID0gbGlieGxfX3hzX3JlYWQoZ2Ms IFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5U RigiJXMvJXMvYmFja2VuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfcGF0aCwgKmRpcikpOworCisgICAgICAgICAgICBkdC0+aW5pdChpdGVtKTsKKworICAg ICAgICAgICAgaWYgKGR0LT5mcm9tX3hlbnN0b3JlKQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgIHJjID0gZHQtPmZyb21feGVuc3RvcmUoZ2MsIGJlX3BhdGgsIGF0b2koKmRpciksIGl0 ZW0pOworICAgICAgICAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgICAgICAgICB9CisK KyAgICAgICAgICAgIGl0ZW0gPSAodWludDhfdCopaXRlbSArIGR0LT5kZXZfZWxlbV9zaXplOwor ICAgICAgICAgICAgKytkaXI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqbnVtID0gbmRpcnM7 CisgICAgciA9IGxpc3Q7CisgICAgbGlzdCA9IE5VTEw7CisKK291dDoKKworICAgIGlmIChsaXN0 KSB7CisgICAgICAgICpudW0gPSAwOworICAgICAgICB3aGlsZShpdGVtID49IGxpc3QpIHsKKyAg ICAgICAgICAgIGl0ZW0gPSAodWludDhfdCopaXRlbSAtIGR0LT5kZXZfZWxlbV9zaXplOworICAg ICAgICAgICAgZHQtPmRpc3Bvc2UoaXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgZnJlZShsaXN0 KTsKKyAgICB9CisKKyAgICBHQ19GUkVFOworCisgICAgcmV0dXJuIHI7Cit9CisKK3ZvaWQgbGli eGxfX2RldmljZV9saXN0X2ZyZWUoY29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90eXBlICpkdCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqbGlzdCwgaW50IG51bSkKK3sKKyAg ICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgeworICAgICAgICBkdC0+ ZGlzcG9zZSgodWludDhfdCopbGlzdCArIGkgKiBkdC0+ZGV2X2VsZW1fc2l6ZSk7CisgICAgfQor CisgICAgZnJlZShsaXN0KTsKK30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6 IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oCmluZGV4IGFmZTY2NTIuLmMxOTI1NTkgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJu YWwuaApAQCAtMzQ4NCwxMSArMzQ4NCwxMyBAQCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUgewog ICAgIHZvaWQgKCphZGQpKGxpYnhsX19lZ2MgKiwgbGlieGxfX2FvICosIHVpbnQzMl90LCBsaWJ4 bF9kb21haW5fY29uZmlnICosCiAgICAgICAgICAgICAgICAgbGlieGxfX211bHRpZGV2ICopOwog ICAgIHZvaWQgKigqbGlzdCkobGlieGxfY3R4ICosIHVpbnQzMl90LCBpbnQgKik7CisgICAgdm9p ZCAoKmluaXQpKHZvaWQgKik7CiAgICAgdm9pZCAoKmRpc3Bvc2UpKHZvaWQgKik7CiAgICAgaW50 ICgqY29tcGFyZSkodm9pZCAqLCB2b2lkICopOwogICAgIHZvaWQgKCptZXJnZSkobGlieGxfY3R4 ICosIHZvaWQgKiwgdm9pZCAqKTsKICAgICBpbnQgKCpkbV9uZWVkZWQpKHZvaWQgKiwgdW5zaWdu ZWQpOwogICAgIHZvaWQgKCp1cGRhdGVfY29uZmlnKShsaWJ4bF9fZ2MgKiwgdm9pZCAqLCB2b2lk ICopOworICAgIGludCAoKmZyb21feGVuc3RvcmUpKGxpYnhsX19nYyAqLCBjb25zdCBjaGFyICos IHVpbnQzMl90LCB2b2lkICopOwogfTsKIAogI2RlZmluZSBERUZJTkVfREVWSUNFX1RZUEVfU1RS VUNUX1gobmFtZSwgc25hbWUsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTM1 MDAsNiArMzUwMiw3IEBAIHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSB7CiAgICAgICAgIC5hZGQg ICAgICAgICAgID0gbGlieGxfX2FkZF8gIyMgbmFtZSAjIyBzLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgICAgICAubGlzdCAgICAgICAgICA9ICh2b2lkICooKikobGlieGxfY3R4 ICosIHVpbnQzMl90LCBpbnQgKikpICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9kZXZpY2VfICMjIHNuYW1lICMjIF9saXN0LCAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgIC5pbml0ICAgICAgICAgID0gKHZvaWQgKCopKHZvaWQgKikpbGlieGxfZGV2 aWNlXyAjIyBzbmFtZSAjIyBfaW5pdCwgICAgXAogICAgICAgICAuZGlzcG9zZSAgICAgICA9ICh2 b2lkICgqKSh2b2lkICopKWxpYnhsX2RldmljZV8gIyMgc25hbWUgIyMgX2Rpc3Bvc2UsIFwKICAg ICAgICAgLmNvbXBhcmUgICAgICAgPSAoaW50ICgqKSh2b2lkICosIHZvaWQgKikpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2 aWNlXyAjIyBzbmFtZSAjIyBfY29tcGFyZSwgICAgICAgICAgICAgICAgICAgXApAQCAtMzUzNCw2 ICszNTM3LDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSBsaWJ4bF9f dnRwbV9kZXZ0eXBlOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSBsaWJ4 bF9fdXNiY3RybF9kZXZ0eXBlOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlw ZSBsaWJ4bF9fdXNiZGV2X2RldnR5cGU7CiBleHRlcm4gY29uc3Qgc3RydWN0IGxpYnhsX2Rldmlj ZV90eXBlIGxpYnhsX19wY2lkZXZfZGV2dHlwZTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgbGlieGxf ZGV2aWNlX3R5cGUgbGlieGxfX3ZkaXNwbF9kZXZ0eXBlOwogCiBleHRlcm4gY29uc3Qgc3RydWN0 IGxpYnhsX2RldmljZV90eXBlICpkZXZpY2VfdHlwZV90YmxbXTsKIApAQCAtNDM1MCw2ICs0MzU0 LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBsaWJ4bF9fYWNwaV9kZWZib29sX3ZhbChjb25zdCBs aWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9pbmZvCiAgICAgcmV0dXJuIGxpYnhsX2RlZmJvb2xf dmFsKGJfaW5mby0+YWNwaSkgJiYKICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwoYl9pbmZv LT51Lmh2bS5hY3BpKTsKIH0KK3ZvaWQqIGxpYnhsX19kZXZpY2VfbGlzdChjb25zdCBzdHJ1Y3Qg bGlieGxfZGV2aWNlX3R5cGUgKmR0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2N0 eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50ICpudW0pOwordm9pZCBsaWJ4bF9fZGV2aWNlX2xp c3RfZnJlZShjb25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUgKmR0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2b2lkICpsaXN0LCBpbnQgbnVtKTsKICNlbmRpZgogCiAvKgpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdmRpc3BsLmMgYi90b29scy9saWJ4bC9saWJ4bF92 ZGlzcGwuYwppbmRleCAyNjU4ZTI1Li5hNjI4YWRjIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9s aWJ4bF92ZGlzcGwuYworKysgYi90b29scy9saWJ4bC9saWJ4bF92ZGlzcGwuYwpAQCAtMjEsNiAr MjEsMTUgQEAgc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX2Zyb21fdmRpc3BsKGxpYnhsX19nYyAq Z2MsIHVpbnQzMl90IGRvbWlkLAogICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgbGlieGxf X2Zyb21feGVuc3RvcmVfdmRpc3BsKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKmJlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkZXZpZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV92ZGlz cGwgKnZkaXNwbCkKK3sKKyAgICB2ZGlzcGwtPmRldmlkID0gZGV2aWQ7CisKKyAgICByZXR1cm4g bGlieGxfX2JhY2tlbmRwYXRoX3BhcnNlX2RvbWlkKGdjLCBiZV9wYXRoLCAmdmRpc3BsLT5iYWNr ZW5kX2RvbWlkKTsKK30KKwogc3RhdGljIHZvaWQgbGlieGxfX3VwZGF0ZV9jb25maWdfdmRpc3Bs KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfZGV2aWNlX3ZkaXNwbCAqZHN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX2RldmljZV92ZGlzcGwgKnNyYykKQEAgLTQ0LDEyICs1MywxMiBAQCBz dGF0aWMgdm9pZCBsaWJ4bF9fZGV2aWNlX3ZkaXNwbF9hZGQobGlieGxfX2VnYyAqZWdjLCB1aW50 MzJfdCBkb21pZCwKIGxpYnhsX2RldmljZV92ZGlzcGwgKmxpYnhsX2RldmljZV92ZGlzcGxfbGlz dChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpudW0pCiB7Ci0gICAgcmV0dXJuIE5VTEw7Cisg ICAgcmV0dXJuIGxpYnhsX19kZXZpY2VfbGlzdCgmbGlieGxfX3ZkaXNwbF9kZXZ0eXBlLCBjdHgs IGRvbWlkLCBudW0pOwogfQogCiB2b2lkIGxpYnhsX2RldmljZV92ZGlzcGxfbGlzdF9mcmVlKGxp YnhsX2RldmljZV92ZGlzcGwqIGxpc3QsIGludCBudW0pCiB7Ci0KKyAgICBsaWJ4bF9fZGV2aWNl X2xpc3RfZnJlZSgmbGlieGxfX3ZkaXNwbF9kZXZ0eXBlLCBsaXN0LCBudW0pOwogfQogCiBpbnQg bGlieGxfZGV2aWNlX3ZkaXNwbF9nZXRpbmZvKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21p ZCwKQEAgLTY1LDcgKzc0LDkgQEAgTElCWExfREVGSU5FX0RFVklDRV9SRU1PVkUodmRpc3BsKQog CiBERUZJTkVfREVWSUNFX1RZUEVfU1RSVUNUKHZkaXNwbCwKICAgICAudXBkYXRlX2NvbmZpZyA9 ICh2b2lkICgqKShsaWJ4bF9fZ2MgKiwgdm9pZCAqLCB2b2lkICopKQotICAgICAgICAgICAgICAg ICAgICAgbGlieGxfX3VwZGF0ZV9jb25maWdfdmRpc3BsCisgICAgICAgICAgICAgICAgICAgICBs aWJ4bF9fdXBkYXRlX2NvbmZpZ192ZGlzcGwsCisgICAgLmZyb21feGVuc3RvcmUgPSAoaW50ICgq KShsaWJ4bF9fZ2MgKiwgY29uc3QgY2hhciAqLCB1aW50MzJfdCwgdm9pZCAqKSkKKyAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX19mcm9tX3hlbnN0b3JlX3ZkaXNwbAogKTsKIAogLyoKLS0gCjIu Ny40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==