From mboxrd@z Thu Jan 1 00:00:00 1970 From: Markus Mayer Subject: Re: [PATCH v3 0/7] lib: string: add functions to case-convert strings Date: Wed, 13 Jul 2016 15:52:38 -0700 Message-ID: <20160713225236.GA30571@lbrmn-mmayer.ric.broadcom.com> References: <1468017794-4818-1-git-send-email-mmayer@broadcom.com> <9b88baed-a067-fcfd-d087-66e36f3060d7@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Chris Metcalf , Rasmus Villemoes Cc: devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b@public.gmane.org, Kees Cook , linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, speakup-UPO/6gOIxNZglr+F8WMZYdi2O/JbrIOy@public.gmane.org, Linux Kernel , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, target-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Al Viro , Andrew Morton List-Id: linux-pm@vger.kernel.org T24gU2F0LCBKdWwgMDksIDIwMTYgYXQgMDk6MTE6MDVQTSAtMDcwMCwgTWFya3VzIE1heWVyIHdy b3RlOgo+IE9uIDkgSnVseSAyMDE2IGF0IDIwOjEzLCBDaHJpcyBNZXRjYWxmIDxjbWV0Y2FsZkBt ZWxsYW5veC5jb20+IHdyb3RlOgo+ID4gT24gNy84LzIwMTYgNjo0MyBQTSwgTWFya3VzIE1heWVy IHdyb3RlOgo+ID4+Cj4gPj4gVGhpcyBzZXJpZXMgaW50cm9kdWNlcyBhIGZhbWlseSBvZiBnZW5l cmljIHN0cmluZyBjYXNlIGNvbnZlcnNpb24KPiA+PiBmdW5jdGlvbnMuIFRoaXMga2luZCBvZiBm dW5jdGlvbmFsaXR5IGlzIG5lZWRlZCBpbiBzZXZlcmFsIHBsYWNlcyBpbgo+ID4+IHRoZSBrZXJu ZWwuIFJpZ2h0IG5vdywgZXZlcnlib2R5IHNlZW1zIHRvIGJlIGltcGxlbWVudGluZyB0aGVpciBv d24KPiA+PiBjb3B5IG9mIHRoaXMgZnVuY3Rpb25hbGl0eS4KPiA+Pgo+ID4+IEJhc2VkIG9uIHRo ZSBkaXNjdXNzaW9uIG9mIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoaXMgc2VyaWVzWzFdIGFu ZAo+ID4+IHRoZSB1c2UgY2FzZXMgZm91bmQgaW4gdGhlIGtlcm5lbCwgaXQgZG9lcyBsb29rIGxp a2UgaGF2aW5nIHNldmVyYWwKPiA+PiBmbGF2b3VycyBvZiBjYXNlIGNvbnZlcnNpb24gZnVuY3Rp b25zIGlzIGJlbmVmaWNpYWwuIFRoZSB1c2UgY2FzZXMgZmFsbAo+ID4+IGludG8gdGhyZWUgY2F0 ZWdvcmllczoKPiA+PiAgICAgIC0gY29weWluZyBhIHN0cmluZyBhbmQgY29udmVydGluZyB0aGUg Y2FzZSB3aGlsZSBzcGVjaWZ5aW5nIGEKPiA+PiAgICAgICAgbWF4aW11bSBsZW5ndGggdG8gbWlt aWMgc3RybGNweSgpCj4gPj4gICAgICAtIGNvcHlpbmcgYSBzdHJpbmcgYW5kIGNvbnZlcnRpbmcg dGhlIGNhc2Ugd2l0aG91dCBzcGVjaWZ5aW5nIGEKPiA+PiAgICAgICAgbGVuZ3RoIHRvIG1pbWlj IHN0cmNweSgpCj4gPj4gICAgICAtIGNvbnZlcnRpbmcgdGhlIGNhc2Ugb2YgYSBzdHJpbmcgaW4t cGxhY2UgKGkuZS4gbW9kaWZ5aW5nIHRoZQo+ID4+ICAgICAgICBzdHJpbmcgdGhhdCB3YXMgcGFz c2VkIGluKQo+ID4+Cj4gPj4gQ29uc2VxdWVudGx5LCBJIGFtIHByb3Bvc2luZyB0aGVzZSBuZXcg ZnVuY3Rpb25zOgo+ID4+ICAgICAgdm9pZCBzdHJsY3B5dG91cHBlcihjaGFyICpkc3QsIGNvbnN0 IGNoYXIgKnNyYywgc2l6ZV90IGxlbik7Cj4gPj4gICAgICB2b2lkIHN0cmxjcHl0b2xvd2VyKGNo YXIgKmRzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3QgbGVuKTsKPiA+PiAgICAgIHZvaWQgc3Ry Y3B5dG91cHBlcihjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYyk7Cj4gPj4gICAgICB2b2lkIHN0 cmNweXRvbG93ZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMpOwo+ID4+ICAgICAgdm9pZCBz dHJ0b3VwcGVyKGNoYXIgKnMpOwo+ID4+ICAgICAgdm9pZCBzdHJ0b2xvd2VyKGNoYXIgKnMpOwo+ ID4KPiA+Cj4gPiBZb3UgbWF5IHdhbnQgdG8gcmVhZCB0aGUgYXJ0aWNsZSBoZXJlOgo+ID4KPiA+ IGh0dHBzOi8vbHduLm5ldC9BcnRpY2xlcy82NTkyMTQvCj4gCj4gSSdsbCByZWFkIHRoYXQuIFRo YW5rcy4KCkl0IGRvZXNuJ3QgbG9vayBsaWtlIHRoZXJlIGlzIGdvaW5nIHRvIGJlIHRoZSBkYW5n ZXIgb2YgIm1hc3MgY2hhbmdlcyIuIApTbyBmYXIsIEkgaGF2ZSB0d28gQUNLcyAob25lIHdoZXJl IHRoZSBzZW1hbnRpY3MgZG9lc24ndCBjaGFuZ2UsCmJlY2F1c2UgaXQncyB1c2luZyBzdHJ0b2xv d2VyKCkpIGFuZCB0aGUgb3RoZXIgaW4gYSBkcml2ZXIgaW4gc3RhZ2luZy4KCkJ1dCBJIHVuZGVy c3RhbmQgdGhlIGNvbmNlcm4gYW5kIHdpbGwga2VlcCBhbiBleWUgb3V0IGlmIHRoZXJlIGFyZQpv dGhlciBBQ0tzLgogCj4gPiBhbmQgZm9sbG93IHVwIHNvbWUgb2YgdGhlIGRpc2N1c3Npb24gdGhy ZWFkcyBvbiBMS01MIGFib3V0IHRoZSBiZXN0Cj4gPiBzZW1hbnRpY3MgdG8gYWR2ZXJ0aXNlIGZv ciB0aGUgc3RybGNweS9zdHJzY3B5IHZhcmlhbnRzLiAgSXQgbWlnaHQKPiA+IGJlIGhlbHBmdWwg dG8gcmV0dXJuIHNvbWUga2luZCBvZiBvdmVyZmxvdy90cnVuY2F0aW9uIGVycm9yIGZyb20KPiA+ IHlvdXIgY29weSBmdW5jdGlvbnMgc28gcGVvcGxlIGNhbiBlcnJvci1jaGVjayB0aGUgcmVzdWx0 Lgo+IAo+IEkgYW0gaW5jbGluZWQgdG8gYWdyZWUuIEhvd2V2ZXIsIGV2ZXJ5Ym9keSBoYXMgYmVl biB0ZWxsaW5nIG1lIHRoYXQKPiB0aGVzZSBmdW5jdGlvbnMgc2hvdWxkIGJlIHZvaWQuIE9yaWdp bmFsbHkgdGhleSB3ZXJlbid0LgoKV2hhdCBhYm91dCBzb21ldGhpbmcgbGlrZSB0aGlzPyAgSXQg bWlnaHQgYWxzbyB3b3JrIHRvIGtlZXAgdGhlIGZvdXIKc3RhdGljIGlubGluZSBmdW5jdGlvbnMg YXMgInZvaWQiIChzaW5jZSB0aGV5IHdvbid0IGV2ZXIgcmV0dXJuIEUyQklHCmFueXdheSkgYW5k IGp1c3QgaGF2ZSBzdHJsY3B5dG8qIHJldHVybiBhbiBpbnRlZ2VyIChzaW5jZSB0aGF0J3Mgd2hl cmUKdGhlIGJ1ZmZlciBjb3VsZCBiZSB0b28gc21hbGwpLgoKUmFzbXVzLCB3aGF0J3MgeW91ciB0 YWtlPyAKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIGIvaW5jbHVkZS9saW51 eC9zdHJpbmcuaAppbmRleCBhZTgyZDEzLi42Y2M4NWRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xp bnV4L3N0cmluZy5oCisrKyBiL2luY2x1ZGUvbGludXgvc3RyaW5nLmgKQEAgLTExNiw4ICsxMTYs OCBAQCBleHRlcm4gdm9pZCAqIG1lbWNocihjb25zdCB2b2lkICosaW50LF9fa2VybmVsX3NpemVf dCk7CiAjZW5kaWYKIHZvaWQgKm1lbWNocl9pbnYoY29uc3Qgdm9pZCAqcywgaW50IGMsIHNpemVf dCBuKTsKIGNoYXIgKnN0cnJlcGxhY2UoY2hhciAqcywgY2hhciBvbGQsIGNoYXIgbmV3KTsKLWV4 dGVybiB2b2lkIHN0cmxjcHl0b3VwcGVyKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjLCBzaXpl X3QgbGVuKTsKLWV4dGVybiB2b2lkIHN0cmxjcHl0b2xvd2VyKGNoYXIgKmRzdCwgY29uc3QgY2hh ciAqc3JjLCBzaXplX3QgbGVuKTsKK2V4dGVybiBpbnQgc3RybGNweXRvdXBwZXIoY2hhciAqZHN0 LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBsZW4pOworZXh0ZXJuIGludCBzdHJsY3B5dG9sb3dl cihjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IGxlbik7CiAKIGV4dGVybiB2b2lk IGtmcmVlX2NvbnN0KGNvbnN0IHZvaWQgKngpOwogCkBAIC0xNzUsMzggKzE3NSw0NiBAQCBzdGF0 aWMgaW5saW5lIGNvbnN0IGNoYXIgKmtiYXNlbmFtZShjb25zdCBjaGFyICpwYXRoKQogICogc3Ry Y3B5dG91cHBlciAtIENvcHkgc3RyaW5nIGFuZCBjb252ZXJ0IHRvIHVwcGVyY2FzZS4KICAqIEBk c3Q6IFRoZSBidWZmZXIgdG8gc3RvcmUgdGhlIHJlc3VsdC4KICAqIEBzcmM6IFRoZSBzdHJpbmcg dG8gY29udmVydCB0byB1cHBlcmNhc2UuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNo YXJhY3RlcnMgY29waWVkLgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgc3RyY3B5dG91cHBlcihj aGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKK3N0YXRpYyBpbmxpbmUgaW50IHN0cmNweXRvdXBw ZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMpCiB7Ci0Jc3RybGNweXRvdXBwZXIoZHN0LCBz cmMsIH4oc2l6ZV90KTApOworCXJldHVybiBzdHJsY3B5dG91cHBlcihkc3QsIHNyYywgfihzaXpl X3QpMCk7CiB9CiAKIC8qKgogICogc3RyY3B5dG9sb3dlciAtIENvcHkgc3RyaW5nIGFuZCBjb252 ZXJ0IHRvIGxvd2VyY2FzZS4KICAqIEBkc3Q6IFRoZSBidWZmZXIgdG8gc3RvcmUgdGhlIHJlc3Vs dC4KICAqIEBzcmM6IFRoZSBzdHJpbmcgdG8gY29udmVydCB0byBsb3dlcmNhc2UuCisgKgorICog UmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29waWVkLgogICovCi1zdGF0aWMgaW5s aW5lIHZvaWQgc3RyY3B5dG9sb3dlcihjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKK3N0YXRp YyBpbmxpbmUgaW50IHN0cmNweXRvbG93ZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMpCiB7 Ci0Jc3RybGNweXRvbG93ZXIoZHN0LCBzcmMsIH4oc2l6ZV90KTApOworCXJldHVybiBzdHJsY3B5 dG9sb3dlcihkc3QsIHNyYywgfihzaXplX3QpMCk7CiB9CiAKIC8qKgogICogc3RydG91cHBlciAt IENvbnZlcnQgc3RyaW5nIHRvIHVwcGVyY2FzZS4KICAqIEBzOiBUaGUgc3RyaW5nIHRvIG9wZXJh dGUgb24uCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29waWVkLgog ICovCi1zdGF0aWMgaW5saW5lIHZvaWQgc3RydG91cHBlcihjaGFyICpzKQorc3RhdGljIGlubGlu ZSBpbnQgc3RydG91cHBlcihjaGFyICpzKQogewotCXN0cmxjcHl0b3VwcGVyKHMsIHMsIH4oc2l6 ZV90KTApOworCXJldHVybiBzdHJsY3B5dG91cHBlcihzLCBzLCB+KHNpemVfdCkwKTsKIH0KIAog LyoqCiAgKiBzdHJ0b2xvd2VyIC0gQ29udmVydCBzdHJpbmcgdG8gbG93ZXJjYXNlLgogICogQHM6 IFRoZSBzdHJpbmcgdG8gb3BlcmF0ZSBvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Yg Y2hhcmFjdGVycyBjb3BpZWQuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBzdHJ0b2xvd2VyKGNo YXIgKnMpCitzdGF0aWMgaW5saW5lIGludCBzdHJ0b2xvd2VyKGNoYXIgKnMpCiB7Ci0Jc3RybGNw eXRvbG93ZXIocywgcywgfihzaXplX3QpMCk7CisJcmV0dXJuIHN0cmxjcHl0b2xvd2VyKHMsIHMs IH4oc2l6ZV90KTApOwogfQogCiAjZW5kaWYgLyogX0xJTlVYX1NUUklOR19IXyAqLwpkaWZmIC0t Z2l0IGEvbGliL3N0cmluZy5jIGIvbGliL3N0cmluZy5jCmluZGV4IDc5MDNlMTAuLmQzNmQ1ZmIy IDEwMDY0NAotLS0gYS9saWIvc3RyaW5nLmMKKysrIGIvbGliL3N0cmluZy5jCkBAIC05NTgsMTcg Kzk1OCwyMSBAQCBFWFBPUlRfU1lNQk9MKHN0cnJlcGxhY2UpOwogICogQGRzdDogVGhlIGJ1ZmZl ciB0byBzdG9yZSB0aGUgcmVzdWx0LgogICogQHNyYzogVGhlIHN0cmluZyB0byBjb252ZXJ0IHRv IHVwcGVyY2FzZS4KICAqIEBsZW46IE1heGltdW0gc3RyaW5nIGxlbmd0aC4gTWF5IGJlIFNJWkVf TUFYIHRvIHNldCBubyBsaW1pdC4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFj dGVycyBjb3BpZWQgb3IgLUUyQklHIGlmIEBkc3Qgd2Fzbid0IGJpZyBlbm91Z2guCiAgKi8KLXZv aWQgc3RybGNweXRvdXBwZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBsZW4p CitpbnQgc3RybGNweXRvdXBwZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBs ZW4pCiB7CiAJc2l6ZV90IGk7CiAKIAlpZiAoIWxlbikKLQkJcmV0dXJuOworCQlyZXR1cm4gLUUy QklHOwogCiAJZm9yIChpID0gMDsgaSA8IGxlbiAmJiBzcmNbaV07ICsraSkKIAkJZHN0W2ldID0g dG91cHBlcihzcmNbaV0pOwogCWRzdFtpIDwgbGVuID8gaSA6IGkgLSAxXSA9ICdcMCc7CisKKwly ZXR1cm4gKGkgPCBsZW4pID8gaSA6IC1FMkJJRzsKIH0KIEVYUE9SVF9TWU1CT0woc3RybGNweXRv dXBwZXIpOwogCkBAIC05NzcsMTYgKzk4MSwyMCBAQCBFWFBPUlRfU1lNQk9MKHN0cmxjcHl0b3Vw cGVyKTsKICAqIEBkc3Q6IFRoZSBidWZmZXIgdG8gc3RvcmUgdGhlIHJlc3VsdC4KICAqIEBzcmM6 IFRoZSBzdHJpbmcgdG8gY29udmVydCB0byBsb3dlcmNhc2UuCiAgKiBAbGVuOiBNYXhpbXVtIHN0 cmluZyBsZW5ndGguIE1heSBiZSBTSVpFX01BWCB0byBzZXQgbm8gbGltaXQuCisgKgorICogUmV0 dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29waWVkIG9yIC1FMkJJRyBpZiBAZHN0IHdh c24ndCBiaWcgZW5vdWdoLgogICovCi12b2lkIHN0cmxjcHl0b2xvd2VyKGNoYXIgKmRzdCwgY29u c3QgY2hhciAqc3JjLCBzaXplX3QgbGVuKQoraW50IHN0cmxjcHl0b2xvd2VyKGNoYXIgKmRzdCwg Y29uc3QgY2hhciAqc3JjLCBzaXplX3QgbGVuKQogewogCXNpemVfdCBpOwogCiAJaWYgKCFsZW4p Ci0JCXJldHVybjsKKwkJcmV0dXJuIC1FMkJJRzsKIAogCWZvciAoaSA9IDA7IGkgPCBsZW4gJiYg c3JjW2ldOyArK2kpCiAJCWRzdFtpXSA9IHRvbG93ZXIoc3JjW2ldKTsKIAlkc3RbaSA8IGxlbiA/ IGkgOiBpIC0gMV0gPSAnXDAnOworCisJcmV0dXJuIChpIDwgbGVuKSA/IGkgOiAtRTJCSUc7CiB9 CiBFWFBPUlRfU1lNQk9MKHN0cmxjcHl0b2xvd2VyKTsKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9ub3V2ZWF1Cg==