From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH RFC 43/59] libxl: Add bitmap support Date: Wed, 28 Dec 2016 20:14:36 -0500 Message-ID: <1482974092-15891-43-git-send-email-ronladred@gmail.com> References: <1482974092-15891-1-git-send-email-ronladred@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1482974092-15891-1-git-send-email-ronladred@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel , Ian Jackson , Wei Liu , George Dunlap , George Dunlap List-Id: xen-devel@lists.xenproject.org RnJvbTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgoKTWFrZSB0aGUg c3RydWN0dXJlIGNvbXBhdGlibGUgc28gdGhhdCB3ZSBjYW4ganVzdCBjb3B5IHRoaW5ncyBvdXQg b3IKaW4uCgpVc2UgaXQgdG8gY29tcGxldGUgdGhlIENwdXBvb2wgc3RydWN0dXJlLgoKU2lnbmVk LW9mZi1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgotLS0KIGxp YnhsLmdvIHwgMTA0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlieGwuZ28gYi9saWJ4bC5nbwppbmRleCAyN2U3 NzY2Li4zZjZiYTAxIDEwMDY0NAotLS0gYS9saWJ4bC5nbworKysgYi9saWJ4bC5nbwpAQCAtMjAs OCArMjAsOCBAQCBwYWNrYWdlIG1haW4KIAogLyoKICNjZ28gTERGTEFHUzogLWx4ZW5saWdodCAt bHlhamxfcyAtbHhlbmdudHRhYiAtbHhlbnN0b3JlIC1seGVuZ3Vlc3QgLWx4ZW50b29sbG9nIC1s eGVuZXZ0Y2huIC1seGVuY3RybCAtbGJsa3RhcGN0bCAtbHhlbmZvcmVpZ25tZW1vcnkgLWx4ZW5j YWxsIC1seiAtbHV1aWQgLWx1dGlsCi0jaW5jbHVkZSA8bGlieGwuaD4KICNpbmNsdWRlIDxzdGRs aWIuaD4KKyNpbmNsdWRlIDxsaWJ4bC5oPgogKi8KIGltcG9ydCAiQyIKIApAQCAtNzIsNiArNzIs NyBAQCBmdW5jIChDdHggKkNvbnRleHQpIENsb3NlKCkgKGVyciBlcnJvcikgewogCXJldHVybgog fQogCisvLyBCdWlsdGlucwogdHlwZSBEb21pZCB1aW50MzIKIAogdHlwZSBNZW1LQiB1aW50NjQK QEAgLTE2MCw4ICsxNjEsNjYgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBEb21haW5VbnBhdXNlKElk IERvbWlkKSAoZXJyIGVycm9yKSB7CiAvLyAgICAgdWludDMyX3Qgc2l6ZTsgICAgICAgICAgLyog bnVtYmVyIG9mIGJ5dGVzIGluIG1hcCAqLwogLy8gICAgIHVpbnQ4X3QgKm1hcDsKIC8vIH0gbGli eGxfYml0bWFwOwotLy8gdm9pZCBsaWJ4bF9iaXRtYXBfaW5pdChsaWJ4bF9iaXRtYXAgKm1hcCk7 Ci0vLyB2b2lkIGxpYnhsX2JpdG1hcF9kaXNwb3NlKGxpYnhsX2JpdG1hcCAqbWFwKTsKKworLy8g SW1wbGVtZW50IHRoZSBHbyBiaXRtYXAgdHlwZSBzdWNoIHRoYXQgdGhlIHVuZGVybHlpbmcgZGF0 YSBjYW4KKy8vIGVhc2lseSBiZSBjb3BpZWQgaW4gYW5kIG91dC4gIE5CIHRoYXQgd2Ugc3RpbGwg aGF2ZSB0byBkbyBjb3BpZXMKKy8vIGJvdGggZGlyZWN0aW9ucywgYmVjYXVzZSBjZ28gcnVudGlt ZSByZXN0cmljdGlvbnMgZm9yYmlkIHBhc3NpbmcgdG8KKy8vIGEgQyBmdW5jdGlvbiBhIHBvaW50 ZXIgdG8gYSBHby1hbGxvY2F0ZWQgc3RydWN0dXJlIHdoaWNoIGNvbnRhaW5zIGEKKy8vIHBvaW50 ZXIuCit0eXBlIEJpdG1hcCBzdHJ1Y3QgeworCWJpdG1hcCBbXUMudWludDhfdAorfQorCitmdW5j IChibSAqQml0bWFwKSBBbGxvYyhtYXggaW50KSB7CisJYm0uYml0bWFwID0gbWFrZShbXUMudWlu dDhfdCwgKG1heCArIDcpIC8gOCkKK30KKworLy8gUmV0dXJuIGEgR28gYml0bWFwIHdoaWNoIGlz IGEgY29weSBvZiB0aGUgcmVmZXJyZWQgQyBiaXRtYXAuCitmdW5jIGJpdG1hcENUb0dvKGNibSAq Qy5saWJ4bF9iaXRtYXApIChibSBCaXRtYXApIHsKKwkvLyBBbGxvYyBhIEdvIHNsaWNlIGZvciB0 aGUgYnl0ZXMKKwlzaXplIDo9IGludChjYm0uc2l6ZSkKKwlibS5BbGxvYyhzaXplKjgpCisKKwkv LyBNYWtlIGEgc2xpY2UgcG9pbnRpbmcgdG8gdGhlIEMgYXJyYXkKKwltYXBzbGljZSA6PSAoKlsx IDw8IDMwXUMudWludDhfdCkodW5zYWZlLlBvaW50ZXIoY2JtLl9tYXApKVs6c2l6ZTpzaXplXQor CisJLy8gQW5kIGNvcHkgdGhlIEMgYXJyYXkgaW50byB0aGUgR28gYXJyYXkKKwljb3B5KGJtLmJp dG1hcCwgbWFwc2xpY2UpCisKKwlyZXR1cm4KK30KKworZnVuYyAoYm0gKkJpdG1hcCkgVGVzdChi aXQgaW50KSAoYm9vbCkgeworCXViaXQgOj0gdWludChiaXQpCisJaWYgKGJpdCA+IGJtLk1heCgp KSB7CisJCXJldHVybiBmYWxzZQorCX0KKwkKKwlyZXR1cm4gKGJtLmJpdG1hcFtiaXQgLyA4XSAm ICgxIDw8ICh1Yml0ICYgNykpKSAhPSAwCit9CisKKy8vIEZJWE1FOiBEbyB3ZSByZWFsbHkganVz dCB3YW50IHRvIHNpbGVudGx5IGZhaWwgaGVyZT8KK2Z1bmMgKGJtICpCaXRtYXApIFNldChiaXQg aW50KSB7CisJdWJpdCA6PSB1aW50KGJpdCkKKwlpZiAoYml0ID4gYm0uTWF4KCkpIHsKKwkJcmV0 dXJuCisJfQorCQorCWJtLmJpdG1hcFtiaXQgLyA4XSB8PSAxIDw8ICh1Yml0ICYgNykKK30KKwor ZnVuYyAoYm0gKkJpdG1hcCkgQ2xlYXIoYml0IGludCkgeworCXViaXQgOj0gdWludChiaXQpCisJ aWYgKGJpdCA+IGJtLk1heCgpKSB7CisJCXJldHVybgorCX0KKwkKKwlibS5iaXRtYXBbYml0IC8g OF0gJj0gXigxIDw8ICh1Yml0ICYgNykpCit9CisKK2Z1bmMgKGJtICpCaXRtYXApIE1heCgpIChp bnQpIHsKKwlyZXR1cm4gbGVuKGJtLmJpdG1hcCkgKiA4Cit9CiAKIC8vICMgQ29uc2lzdGVudCB3 aXRoIHZhbHVlcyBkZWZpbmVkIGluIGRvbWN0bC5oCiAvLyAjIEV4Y2VwdCB1bmtub3duIHdoaWNo IHdlIGhhdmUgbWFkZSB1cApAQCAtMjIyLDcgKzI4MSw3IEBAIHR5cGUgQ3B1cG9vbEluZm8gc3Ry dWN0IHsKIAlQb29sTmFtZSBzdHJpbmcKIAlTY2hlZHVsZXIgU2NoZWR1bGVyCiAJRG9tYWluQ291 bnQgaW50Ci0JLy8gUHVudCBvbiBjcHVtYXAgZm9yIG5vdworCUNwdU1hcCBCaXRtYXAKIH0KIAog Ly8gbGlieGxfY3B1cG9vbGluZm8gKiBsaWJ4bF9saXN0X2NwdXBvb2wobGlieGxfY3R4KiwgaW50 ICpuYl9wb29sX291dCk7CkBAIC0yNDgsNiArMzA3LDcgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBM aXN0Q3B1cG9vbCgpIChsaXN0IFtdQ3B1cG9vbEluZm8pIHsKIAkJaW5mby5Qb29sTmFtZSA9IEMu R29TdHJpbmcoY3B1cG9vbExpc3RTbGljZVtpXS5wb29sX25hbWUpCiAJCWluZm8uU2NoZWR1bGVy ID0gU2NoZWR1bGVyKGNwdXBvb2xMaXN0U2xpY2VbaV0uc2NoZWQpCiAJCWluZm8uRG9tYWluQ291 bnQgPSBpbnQoY3B1cG9vbExpc3RTbGljZVtpXS5uX2RvbSkKKwkJaW5mby5DcHVNYXAgPSBiaXRt YXBDVG9HbygmY3B1cG9vbExpc3RTbGljZVtpXS5jcHVtYXApCiAKIAkJbGlzdCA9IGFwcGVuZChs aXN0LCBpbmZvKQogCX0KQEAgLTI2OCw2ICszMjgsMjQgQEAgZnVuYyAoQ3R4ICpDb250ZXh0KSBD cHVwb29sRmluZEJ5TmFtZShuYW1lIHN0cmluZykgKGluZm8gQ3B1cG9vbEluZm8sIGZvdW5kIGJv b2wKIAlyZXR1cm4KIH0KIAorLy8gaW50IGxpYnhsX2NwdXBvb2xfY3JlYXRlKGxpYnhsX2N0eCAq Y3R4LCBjb25zdCBjaGFyICpuYW1lLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X3NjaGVkdWxlciBzY2hlZCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9iaXRt YXAgY3B1bWFwLCBsaWJ4bF91dWlkICp1dWlkLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90ICpwb29saWQpOworLy8gaW50IGxpYnhsX2NwdXBvb2xfZGVzdHJveShsaWJ4bF9j dHggKmN0eCwgdWludDMyX3QgcG9vbGlkKTsKKy8vIGludCBsaWJ4bF9jcHVwb29sX3JlbmFtZShs aWJ4bF9jdHggKmN0eCwgY29uc3QgY2hhciAqbmFtZSwgdWludDMyX3QgcG9vbGlkKTsKKy8vIGlu dCBsaWJ4bF9jcHVwb29sX2NwdWFkZChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcG9vbGlkLCBp bnQgY3B1KTsKKy8vIGludCBsaWJ4bF9jcHVwb29sX2NwdWFkZF9ub2RlKGxpYnhsX2N0eCAqY3R4 LCB1aW50MzJfdCBwb29saWQsIGludCBub2RlLCBpbnQgKmNwdXMpOworLy8gaW50IGxpYnhsX2Nw dXBvb2xfY3B1YWRkX2NwdW1hcChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcG9vbGlkLAorLy8g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9iaXRtYXAgKmNwdW1h cCk7CisvLyBpbnQgbGlieGxfY3B1cG9vbF9jcHVyZW1vdmUobGlieGxfY3R4ICpjdHgsIHVpbnQz Ml90IHBvb2xpZCwgaW50IGNwdSk7CisvLyBpbnQgbGlieGxfY3B1cG9vbF9jcHVyZW1vdmVfbm9k ZShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcG9vbGlkLCBpbnQgbm9kZSwgaW50ICpjcHVzKTsK Ky8vIGludCBsaWJ4bF9jcHVwb29sX2NwdXJlbW92ZV9jcHVtYXAobGlieGxfY3R4ICpjdHgsIHVp bnQzMl90IHBvb2xpZCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgbGlieGxfYml0bWFwICpjcHVtYXApOworLy8gaW50IGxpYnhsX2NwdXBvb2xfbW92ZWRvbWFp bihsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgcG9vbGlkLCB1aW50MzJfdCBkb21pZCk7CisvLyBp bnQgbGlieGxfY3B1cG9vbF9pbmZvKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9jcHVwb29saW5mbyAq aW5mbywgdWludDMyX3QgcG9vbGlkKTsKKworCQogZnVuYyBYbFRlc3QoQXJncyBbXXN0cmluZykg ewogCXZhciBDdHggQ29udGV4dAogCkBAIC0yOTAsNyArMzY4LDIxIEBAIGZ1bmMgWGxUZXN0KEFy Z3MgW11zdHJpbmcpIHsKIAkJCWZtdC5QcmludGYoIkVycm9yOiAldlxuIiwgZXJyKQogCQl9CiAK LQkJZm10LlByaW50ZigiYTogJWQgYjogJXMgYzogJWRcbiIsIGEsIGIsIGludChjKSkgCisJCWZt dC5QcmludGYoImE6ICVkIGI6ICVzIGM6ICVkXG4iLCBhLCBiLCBpbnQoYykpCisKKwkJcG9vbC5D cHVNYXAuU2V0KDEpCisJCXBvb2wuQ3B1TWFwLlNldCgyKQorCQlwb29sLkNwdU1hcC5DbGVhcigy KQorCQkKKwkJZm10LlByaW50ZigiY3B1bWFwOiAiKQorCQlmb3IgaSA6PSAwOyBpIDwgcG9vbC5D cHVNYXAuTWF4KCkgOyBpKysgeworCQkJaWYgcG9vbC5DcHVNYXAuVGVzdChpKSB7CisJCQkJZm10 LlByaW50ZigieCIpCisJCQl9IGVsc2UgeworCQkJCWZtdC5QcmludGYoIi0iKQorCQkJfQorCQl9 CisJCWZtdC5QcmludGYoIlxuIikKIAl9IGVsc2UgewogCQlmbXQuUHJpbnRmKCJzY2hlZGJlbmNo IG5vdCBmb3VuZCIpCiAJfQpAQCAtMzAwLDcgKzM5Miw3IEBAIGZ1bmMgWGxUZXN0KEFyZ3MgW11z dHJpbmcpIHsKIAlpZiBmb3VuZCB7CiAJCWZtdC5QcmludGYoIiV2XG4iLCBwb29sKQogCX0gZWxz ZSB7Ci0JCWZtdC5QcmludGYoInNjaGVkYm5jaCBub3QgZm91bmQiKQorCQlmbXQuUHJpbnRmKCJz Y2hlZGJuY2ggbm90IGZvdW5kXG4iKQogCX0KIAogCUN0eC5DbG9zZSgpCi0tIAoyLjcuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=