From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 1/6] xen/vsprintf: Introduce %*pb[l] for printing bitmaps Date: Thu, 6 Sep 2018 13:08:11 +0100 Message-ID: <1536235696-31359-2-git-send-email-andrew.cooper3@citrix.com> References: <1536235696-31359-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1536235696-31359-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Dario Faggioli , Julien Grall , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIGZvcm1hdCBpZGVudGlmaWVyIGlzIGNvbnNpc3RlbnQgd2l0aCBMaW51eC4gIFRoZSBjb2Rl IGlzIGFkYXB0ZWQgZnJvbQpiaXRtYXBfc2NueyxsaXN0fXByaW50ZigpIGJ1dCBjbGVhbmVkIHVw LgoKVGhpcyBjaGFuZ2UgYWxsb3dzIGFsbCBjYWxsZXJzIHRvIGF2b2lkIG5lZWRpbmcgYSBzZWNv bmRhcnkgYnVmZmVyIHRvIHJlbmRlciBhCmNwdW1hc2svbm9kZW1hc2sgaW50by4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzog SmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0 cml4LmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDQzog U3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDQzogSnVsaWVuIEdy YWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5s YXBAZXUuY2l0cml4LmNvbT4KQ0M6IERhcmlvIEZhZ2dpb2xpIDxkZmFnZ2lvbGlAc3VzZS5jb20+ Ci0tLQogZG9jcy9taXNjL3ByaW50ay1mb3JtYXRzLnR4dCB8ICA4ICsrKysKIHhlbi9jb21tb24v dnNwcmludGYuYyAgICAgICAgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2RvY3MvbWlzYy9wcmludGstZm9ybWF0cy50eHQgYi9kb2NzL21pc2MvcHJpbnRrLWZvcm1h dHMudHh0CmluZGV4IDUyNTEwOGYuLmQwZTE1MzcgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy9wcmlu dGstZm9ybWF0cy50eHQKKysrIGIvZG9jcy9taXNjL3ByaW50ay1mb3JtYXRzLnR4dApAQCAtMTMs NiArMTMsMTQgQEAgUmF3IGJ1ZmZlciBhcyBoZXggc3RyaW5nOgogICAgICAgIFVwIHRvIDY0IGNo YXJhY3RlcnMuICBCdWZmZXIgbGVuZ3RoIGV4cGVjdGVkIHZpYSB0aGUgZmllbGRfd2lkdGgKICAg ICAgICBwYXJhbXRlci4gaS5lLiBwcmludGsoIiUqcGgiLCA4LCBidWZmZXIpOwogCitCaXRtYXBz IChlLmcuIGNwdW1hc2svbm9kZW1hc2spOgorCisgICAgICAgJSpwYiAgICA0MzIxCisgICAgICAg JSpwYmwgICAwLDUsOC05LDE0CisKKyAgICAgICBQcmludCBhIGJpdG1hcCBhcyBlaXRoZXIgYSBo ZXggc3RyaW5nLCBvciBhIHJhbmdlIGxpc3QuICBCaXRtYXAgbGVuZ3RoCisgICAgICAgKGluIGJp dHMpIGV4cGVjdGVkIHZpYSB0aGUgZmllbGRfd2lkdGggcGFyYW1ldGVyLgorCiBTeW1ib2wvRnVu Y3Rpb24gcG9pbnRlcnM6CiAKICAgICAgICAlcHMgICAgIFN5bWJvbCBuYW1lIHdpdGggY29uZGl0 aW9uIG9mZnNldCBhbmQgc2l6ZSAoaWZmIG9mZnNldCAhPSAwKQpkaWZmIC0tZ2l0IGEveGVuL2Nv bW1vbi92c3ByaW50Zi5jIGIveGVuL2NvbW1vbi92c3ByaW50Zi5jCmluZGV4IGY5MmZiNjcuLjE3 NTBlNWUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vdnNwcmludGYuYworKysgYi94ZW4vY29tbW9u L3ZzcHJpbnRmLmMKQEAgLTI2NCw2ICsyNjQsODggQEAgc3RhdGljIGNoYXIgKnN0cmluZyhjaGFy ICpzdHIsIGNoYXIgKmVuZCwgY29uc3QgY2hhciAqcywKICAgICByZXR1cm4gc3RyOwogfQogCisv KiBQcmludCBhIGJpdG1hcCBhcyAnMC0zLDYtMTUnICovCitzdGF0aWMgY2hhciAqcHJpbnRfYml0 bWFwX2xpc3QoY2hhciAqc3RyLCBjaGFyICplbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYml0bWFwLCBpbnQgbnJfYml0cykKK3sKKyAgICAv KiBjdXJyZW50IGJpdCBpcyAnY3VyJywgbW9zdCByZWNlbnRseSBzZWVuIHJhbmdlIGlzIFtyYm90 LCBydG9wXSAqLworICAgIGludCBjdXIsIHJib3QsIHJ0b3A7CisgICAgYm9vbCBmaXJzdCA9IHRy dWU7CisKKyAgICByYm90ID0gY3VyID0gZmluZF9maXJzdF9iaXQoYml0bWFwLCBucl9iaXRzKTsK KyAgICB3aGlsZSAoIGN1ciA8IG5yX2JpdHMgKQorICAgIHsKKyAgICAgICAgcnRvcCA9IGN1cjsK KyAgICAgICAgY3VyID0gZmluZF9uZXh0X2JpdChiaXRtYXAsIG5yX2JpdHMsIGN1ciArIDEpOwor CisgICAgICAgIGlmICggY3VyIDwgbnJfYml0cyAmJiBjdXIgPD0gcnRvcCArIDEgKQorICAgICAg ICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCAhZmlyc3QgKQorICAgICAgICB7CisgICAg ICAgICAgICBpZiAoIHN0ciA8IGVuZCApCisgICAgICAgICAgICAgICAgKnN0ciA9ICcsJzsKKyAg ICAgICAgICAgIHN0cisrOworICAgICAgICB9CisgICAgICAgIGZpcnN0ID0gZmFsc2U7CisKKyAg ICAgICAgc3RyID0gbnVtYmVyKHN0ciwgZW5kLCByYm90LCAxMCwgLTEsIC0xLCAwKTsKKyAgICAg ICAgaWYgKCByYm90IDwgcnRvcCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggc3RyIDwg ZW5kICkKKyAgICAgICAgICAgICAgICAqc3RyID0gJy0nOworICAgICAgICAgICAgc3RyKys7CisK KyAgICAgICAgICAgIHN0ciA9IG51bWJlcihzdHIsIGVuZCwgcnRvcCwgMTAsIC0xLCAtMSwgMCk7 CisgICAgICAgIH0KKworICAgICAgICByYm90ID0gY3VyOworICAgIH0KKworICAgIHJldHVybiBz dHI7Cit9CisKKy8qIFByaW50IGEgYml0bWFwIGFzIGEgY29tbWEgc2VwYXJhdGVkIGhleCBzdHJp bmcuICovCitzdGF0aWMgY2hhciAqcHJpbnRfYml0bWFwX3N0cmluZyhjaGFyICpzdHIsIGNoYXIg KmVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxv bmcgKmJpdG1hcCwgaW50IG5yX2JpdHMpCit7CisgICAgY29uc3QgdW5zaWduZWQgaW50IENIVU5L U1ogPSAzMjsKKyAgICB1bnNpZ25lZCBpbnQgY2h1bmtzejsKKyAgICBpbnQgaTsKKyAgICBib29s IGZpcnN0ID0gdHJ1ZTsKKworICAgIGNodW5rc3ogPSBucl9iaXRzICYgKENIVU5LU1ogLSAxKTsK KyAgICBpZiAoIGNodW5rc3ogPT0gMCApCisgICAgICAgIGNodW5rc3ogPSBDSFVOS1NaOworCisg ICAgLyoKKyAgICAgKiBGaXJzdCBpdGVyYXRpb24gY29wZXMgd2l0aCB0aGUgdHJhaWxpbmcgcGFy dGlhbCB3b3JkIGlmIG5yX2JpdHMgaXNuJ3QgYQorICAgICAqIHJvdW5kIG11bHRpcGxlIG9mIENI VU5LU1ouICBBbGwgc3Vic2VxdWVudCBpdGVyYXRpb25zIHdvcmsgb24gYQorICAgICAqIGNvbXBs ZXRlIENIVU5LU1ogYmxvY2suCisgICAgICovCisgICAgZm9yICggaSA9IFJPVU5EVVAobnJfYml0 cywgQ0hVTktTWikgLSBDSFVOS1NaOyBpID49IDA7IGkgLT0gQ0hVTktTWiApCisgICAgeworICAg ICAgICB1bnNpZ25lZCBpbnQgY2h1bmttYXNrID0gKDF1bGwgPDwgY2h1bmtzeikgLSAxOworICAg ICAgICB1bnNpZ25lZCBpbnQgd29yZCAgID0gaSAvIEJJVFNfUEVSX0xPTkc7CisgICAgICAgIHVu c2lnbmVkIGludCBvZmZzZXQgPSBpICUgQklUU19QRVJfTE9ORzsKKyAgICAgICAgdW5zaWduZWQg bG9uZyB2YWwgPSAoYml0bWFwW3dvcmRdID4+IG9mZnNldCkgJiBjaHVua21hc2s7CisKKyAgICAg ICAgaWYgKCAhZmlyc3QgKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIHN0ciA8IGVuZCAp CisgICAgICAgICAgICAgICAgKnN0ciA9ICcsJzsKKyAgICAgICAgICAgIHN0cisrOworICAgICAg ICB9CisgICAgICAgIGZpcnN0ID0gZmFsc2U7CisKKyAgICAgICAgc3RyID0gbnVtYmVyKHN0ciwg ZW5kLCB2YWwsIDE2LCBESVZfUk9VTkRfVVAoY2h1bmtzeiwgNCksIC0xLCBaRVJPUEFEKTsKKwor ICAgICAgICBjaHVua3N6ID0gQ0hVTktTWjsKKyAgICB9CisKKyAgICByZXR1cm4gc3RyOworfQor CiBzdGF0aWMgY2hhciAqcG9pbnRlcihjaGFyICpzdHIsIGNoYXIgKmVuZCwgY29uc3QgY2hhciAq KmZtdF9wdHIsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICphcmcsIGludCBmaWVs ZF93aWR0aCwgaW50IHByZWNpc2lvbiwKICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFncykK QEAgLTI3Myw2ICszNTUsMjEgQEAgc3RhdGljIGNoYXIgKnBvaW50ZXIoY2hhciAqc3RyLCBjaGFy ICplbmQsIGNvbnN0IGNoYXIgKipmbXRfcHRyLAogICAgIC8qIEN1c3RvbSAlcCBzdWZmaXhlcy4g U2VlIFhFTl9ST09UL2RvY3MvbWlzYy9wcmludGstZm9ybWF0cy50eHQgKi8KICAgICBzd2l0Y2gg KCBmbXRbMV0gKQogICAgIHsKKyAgICBjYXNlICdiJzogLyogQml0bWFwIGFzIGhleCwgb3IgbGlz dCAqLworICAgICAgICArKypmbXRfcHRyOworCisgICAgICAgIGlmICggZmllbGRfd2lkdGggPCAw ICkKKyAgICAgICAgICAgIHJldHVybiBzdHI7CisKKyAgICAgICAgaWYgKCBmbXRbMl0gPT0gJ2wn ICkKKyAgICAgICAgeworICAgICAgICAgICAgKysqZm10X3B0cjsKKworICAgICAgICAgICAgcmV0 dXJuIHByaW50X2JpdG1hcF9saXN0KHN0ciwgZW5kLCBhcmcsIGZpZWxkX3dpZHRoKTsKKyAgICAg ICAgfQorCisgICAgICAgIHJldHVybiBwcmludF9iaXRtYXBfc3RyaW5nKHN0ciwgZW5kLCBhcmcs IGZpZWxkX3dpZHRoKTsKKwogICAgIGNhc2UgJ2gnOiAvKiBSYXcgYnVmZmVyIGFzIGhleCBzdHJp bmcuICovCiAgICAgewogICAgICAgICBjb25zdCB1aW50OF90ICpoZXhfYnVmZmVyID0gYXJnOwot LSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs