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, 20 Jul 2016 13:28:16 -0700 Message-ID: <20160720202816.GA18480@lbrmn-mmayer.ric.broadcom.com> References: <1468017794-4818-1-git-send-email-mmayer@broadcom.com> <9b88baed-a067-fcfd-d087-66e36f3060d7@mellanox.com> <20160713225236.GA30571@lbrmn-mmayer.ric.broadcom.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20160713225236.GA30571-opzSsqMRwNylyEujtbL6/5Ym1tgvmhRUMm0uRHvK7Nw@public.gmane.org> 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 T24gV2VkLCBKdWwgMTMsIDIwMTYgYXQgMDM6NTI6MzhQTSAtMDcwMCwgTWFya3VzIE1heWVyIHdy b3RlOgo+IE9uIFNhdCwgSnVsIDA5LCAyMDE2IGF0IDA5OjExOjA1UE0gLTA3MDAsIE1hcmt1cyBN YXllciB3cm90ZToKPj4gT24gOSBKdWx5IDIwMTYgYXQgMjA6MTMsIENocmlzIE1ldGNhbGYgPGNt ZXRjYWxmQG1lbGxhbm94LmNvbT4gd3JvdGU6Cj4+PiBPbiA3LzgvMjAxNiA2OjQzIFBNLCBNYXJr dXMgTWF5ZXIgd3JvdGU6Cj4+Pj4KPj4+PiBUaGlzIHNlcmllcyBpbnRyb2R1Y2VzIGEgZmFtaWx5 IG9mIGdlbmVyaWMgc3RyaW5nIGNhc2UgY29udmVyc2lvbgo+Pj4+IGZ1bmN0aW9ucy4gVGhpcyBr aW5kIG9mIGZ1bmN0aW9uYWxpdHkgaXMgbmVlZGVkIGluIHNldmVyYWwgcGxhY2VzIGluCj4+Pj4g dGhlIGtlcm5lbC4gUmlnaHQgbm93LCBldmVyeWJvZHkgc2VlbXMgdG8gYmUgaW1wbGVtZW50aW5n IHRoZWlyIG93bgo+Pj4+IGNvcHkgb2YgdGhpcyBmdW5jdGlvbmFsaXR5Lgo+Pj4+Cj4+Pj4gQmFz ZWQgb24gdGhlIGRpc2N1c3Npb24gb2YgdGhlIHByZXZpb3VzIHZlcnNpb24gb2YgdGhpcyBzZXJp ZXNbMV0gYW5kCj4+Pj4gdGhlIHVzZSBjYXNlcyBmb3VuZCBpbiB0aGUga2VybmVsLCBpdCBkb2Vz IGxvb2sgbGlrZSBoYXZpbmcgc2V2ZXJhbAo+Pj4+IGZsYXZvdXJzIG9mIGNhc2UgY29udmVyc2lv biBmdW5jdGlvbnMgaXMgYmVuZWZpY2lhbC4gVGhlIHVzZSBjYXNlcyBmYWxsCj4+Pj4gaW50byB0 aHJlZSBjYXRlZ29yaWVzOgo+Pj4+ICAgICAgLSBjb3B5aW5nIGEgc3RyaW5nIGFuZCBjb252ZXJ0 aW5nIHRoZSBjYXNlIHdoaWxlIHNwZWNpZnlpbmcgYQo+Pj4+ICAgICAgICBtYXhpbXVtIGxlbmd0 aCB0byBtaW1pYyBzdHJsY3B5KCkKPj4+PiAgICAgIC0gY29weWluZyBhIHN0cmluZyBhbmQgY29u dmVydGluZyB0aGUgY2FzZSB3aXRob3V0IHNwZWNpZnlpbmcgYQo+Pj4+ICAgICAgICBsZW5ndGgg dG8gbWltaWMgc3RyY3B5KCkKPj4+PiAgICAgIC0gY29udmVydGluZyB0aGUgY2FzZSBvZiBhIHN0 cmluZyBpbi1wbGFjZSAoaS5lLiBtb2RpZnlpbmcgdGhlCj4+Pj4gICAgICAgIHN0cmluZyB0aGF0 IHdhcyBwYXNzZWQgaW4pCj4+Pj4KPj4+PiBDb25zZXF1ZW50bHksIEkgYW0gcHJvcG9zaW5nIHRo ZXNlIG5ldyBmdW5jdGlvbnM6Cj4+Pj4gICAgICB2b2lkIHN0cmxjcHl0b3VwcGVyKGNoYXIgKmRz dCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3QgbGVuKTsKPj4+PiAgICAgIHZvaWQgc3RybGNweXRv bG93ZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBsZW4pOwo+Pj4+ICAgICAg dm9pZCBzdHJjcHl0b3VwcGVyKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjKTsKPj4+PiAgICAg IHZvaWQgc3RyY3B5dG9sb3dlcihjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYyk7Cj4+Pj4gICAg ICB2b2lkIHN0cnRvdXBwZXIoY2hhciAqcyk7Cj4+Pj4gICAgICB2b2lkIHN0cnRvbG93ZXIoY2hh ciAqcyk7Cj4+Pgo+Pj4KPj4+IFlvdSBtYXkgd2FudCB0byByZWFkIHRoZSBhcnRpY2xlIGhlcmU6 Cj4+Pgo+Pj4gaHR0cHM6Ly9sd24ubmV0L0FydGljbGVzLzY1OTIxNC8KPj4gCj4+IEknbGwgcmVh ZCB0aGF0LiBUaGFua3MuCj4gCj4gSXQgZG9lc24ndCBsb29rIGxpa2UgdGhlcmUgaXMgZ29pbmcg dG8gYmUgdGhlIGRhbmdlciBvZiAibWFzcyBjaGFuZ2VzIi4gCj4gU28gZmFyLCBJIGhhdmUgdHdv IEFDS3MgKG9uZSB3aGVyZSB0aGUgc2VtYW50aWNzIGRvZXNuJ3QgY2hhbmdlLAo+IGJlY2F1c2Ug aXQncyB1c2luZyBzdHJ0b2xvd2VyKCkpIGFuZCB0aGUgb3RoZXIgaW4gYSBkcml2ZXIgaW4gc3Rh Z2luZy4KPiAKPiBCdXQgSSB1bmRlcnN0YW5kIHRoZSBjb25jZXJuIGFuZCB3aWxsIGtlZXAgYW4g ZXllIG91dCBpZiB0aGVyZSBhcmUKPiBvdGhlciBBQ0tzLgo+ICAKPj4+IGFuZCBmb2xsb3cgdXAg c29tZSBvZiB0aGUgZGlzY3Vzc2lvbiB0aHJlYWRzIG9uIExLTUwgYWJvdXQgdGhlIGJlc3QKPj4+ IHNlbWFudGljcyB0byBhZHZlcnRpc2UgZm9yIHRoZSBzdHJsY3B5L3N0cnNjcHkgdmFyaWFudHMu ICBJdCBtaWdodAo+Pj4gYmUgaGVscGZ1bCB0byByZXR1cm4gc29tZSBraW5kIG9mIG92ZXJmbG93 L3RydW5jYXRpb24gZXJyb3IgZnJvbQo+Pj4geW91ciBjb3B5IGZ1bmN0aW9ucyBzbyBwZW9wbGUg Y2FuIGVycm9yLWNoZWNrIHRoZSByZXN1bHQuCj4+IAo+PiBJIGFtIGluY2xpbmVkIHRvIGFncmVl LiBIb3dldmVyLCBldmVyeWJvZHkgaGFzIGJlZW4gdGVsbGluZyBtZSB0aGF0Cj4+IHRoZXNlIGZ1 bmN0aW9ucyBzaG91bGQgYmUgdm9pZC4gT3JpZ2luYWxseSB0aGV5IHdlcmVuJ3QuCj4gCj4gV2hh dCBhYm91dCBzb21ldGhpbmcgbGlrZSB0aGlzPyAgSXQgbWlnaHQgYWxzbyB3b3JrIHRvIGtlZXAg dGhlIGZvdXIKPiBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBhcyAidm9pZCIgKHNpbmNlIHRoZXkg d29uJ3QgZXZlciByZXR1cm4gRTJCSUcKPiBhbnl3YXkpIGFuZCBqdXN0IGhhdmUgc3RybGNweXRv KiByZXR1cm4gYW4gaW50ZWdlciAoc2luY2UgdGhhdCdzIHdoZXJlCj4gdGhlIGJ1ZmZlciBjb3Vs ZCBiZSB0b28gc21hbGwpLgo+IAo+IFJhc211cywgd2hhdCdzIHlvdXIgdGFrZT8gCgpQaW5nLiBB bnkgdGhvdWdodHMgb24gdGhpcyBwcm9wb3NhbD8gRG9lcyBpdCBtYWtlIHNlbnNlIGZvciBtZSB0 byBzZW50IG91dCBhCm5ldyByZXZpc2lvbiBvZiB0aGUgcGF0Y2ggc2V0IGluY29ycG9yYXRpbmcg dGhlc2UgY2hhbmdlcyAtLSBhdCBsZWFzdCBmb3IKdGhlIHN0cmxjcHl0byogZnVuY3Rpb25zPwoK VGhhbmtzLAotTWFya3VzCiAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zdHJpbmcuaCBi L2luY2x1ZGUvbGludXgvc3RyaW5nLmgKPiBpbmRleCBhZTgyZDEzLi42Y2M4NWRjIDEwMDY0NAo+ IC0tLSBhL2luY2x1ZGUvbGludXgvc3RyaW5nLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L3N0cmlu Zy5oCj4gQEAgLTExNiw4ICsxMTYsOCBAQCBleHRlcm4gdm9pZCAqIG1lbWNocihjb25zdCB2b2lk ICosaW50LF9fa2VybmVsX3NpemVfdCk7Cj4gICNlbmRpZgo+ICB2b2lkICptZW1jaHJfaW52KGNv bnN0IHZvaWQgKnMsIGludCBjLCBzaXplX3Qgbik7Cj4gIGNoYXIgKnN0cnJlcGxhY2UoY2hhciAq cywgY2hhciBvbGQsIGNoYXIgbmV3KTsKPiAtZXh0ZXJuIHZvaWQgc3RybGNweXRvdXBwZXIoY2hh ciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBsZW4pOwo+IC1leHRlcm4gdm9pZCBzdHJs Y3B5dG9sb3dlcihjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IGxlbik7Cj4gK2V4 dGVybiBpbnQgc3RybGNweXRvdXBwZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVf dCBsZW4pOwo+ICtleHRlcm4gaW50IHN0cmxjcHl0b2xvd2VyKGNoYXIgKmRzdCwgY29uc3QgY2hh ciAqc3JjLCBzaXplX3QgbGVuKTsKPiAgCj4gIGV4dGVybiB2b2lkIGtmcmVlX2NvbnN0KGNvbnN0 IHZvaWQgKngpOwo+ICAKPiBAQCAtMTc1LDM4ICsxNzUsNDYgQEAgc3RhdGljIGlubGluZSBjb25z dCBjaGFyICprYmFzZW5hbWUoY29uc3QgY2hhciAqcGF0aCkKPiAgICogc3RyY3B5dG91cHBlciAt IENvcHkgc3RyaW5nIGFuZCBjb252ZXJ0IHRvIHVwcGVyY2FzZS4KPiAgICogQGRzdDogVGhlIGJ1 ZmZlciB0byBzdG9yZSB0aGUgcmVzdWx0Lgo+ICAgKiBAc3JjOiBUaGUgc3RyaW5nIHRvIGNvbnZl cnQgdG8gdXBwZXJjYXNlLgo+ICsgKgo+ICsgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFj dGVycyBjb3BpZWQuCj4gICAqLwo+IC1zdGF0aWMgaW5saW5lIHZvaWQgc3RyY3B5dG91cHBlcihj aGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKPiArc3RhdGljIGlubGluZSBpbnQgc3RyY3B5dG91 cHBlcihjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYykKPiAgewo+IC0Jc3RybGNweXRvdXBwZXIo ZHN0LCBzcmMsIH4oc2l6ZV90KTApOwo+ICsJcmV0dXJuIHN0cmxjcHl0b3VwcGVyKGRzdCwgc3Jj LCB+KHNpemVfdCkwKTsKPiAgfQo+ICAKPiAgLyoqCj4gICAqIHN0cmNweXRvbG93ZXIgLSBDb3B5 IHN0cmluZyBhbmQgY29udmVydCB0byBsb3dlcmNhc2UuCj4gICAqIEBkc3Q6IFRoZSBidWZmZXIg dG8gc3RvcmUgdGhlIHJlc3VsdC4KPiAgICogQHNyYzogVGhlIHN0cmluZyB0byBjb252ZXJ0IHRv IGxvd2VyY2FzZS4KPiArICoKPiArICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMg Y29waWVkLgo+ICAgKi8KPiAtc3RhdGljIGlubGluZSB2b2lkIHN0cmNweXRvbG93ZXIoY2hhciAq ZHN0LCBjb25zdCBjaGFyICpzcmMpCj4gK3N0YXRpYyBpbmxpbmUgaW50IHN0cmNweXRvbG93ZXIo Y2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMpCj4gIHsKPiAtCXN0cmxjcHl0b2xvd2VyKGRzdCwg c3JjLCB+KHNpemVfdCkwKTsKPiArCXJldHVybiBzdHJsY3B5dG9sb3dlcihkc3QsIHNyYywgfihz aXplX3QpMCk7Cj4gIH0KPiAgCj4gIC8qKgo+ICAgKiBzdHJ0b3VwcGVyIC0gQ29udmVydCBzdHJp bmcgdG8gdXBwZXJjYXNlLgo+ICAgKiBAczogVGhlIHN0cmluZyB0byBvcGVyYXRlIG9uLgo+ICsg Kgo+ICsgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBjb3BpZWQuCj4gICAqLwo+ IC1zdGF0aWMgaW5saW5lIHZvaWQgc3RydG91cHBlcihjaGFyICpzKQo+ICtzdGF0aWMgaW5saW5l IGludCBzdHJ0b3VwcGVyKGNoYXIgKnMpCj4gIHsKPiAtCXN0cmxjcHl0b3VwcGVyKHMsIHMsIH4o c2l6ZV90KTApOwo+ICsJcmV0dXJuIHN0cmxjcHl0b3VwcGVyKHMsIHMsIH4oc2l6ZV90KTApOwo+ ICB9Cj4gIAo+ICAvKioKPiAgICogc3RydG9sb3dlciAtIENvbnZlcnQgc3RyaW5nIHRvIGxvd2Vy Y2FzZS4KPiAgICogQHM6IFRoZSBzdHJpbmcgdG8gb3BlcmF0ZSBvbi4KPiArICoKPiArICogUmV0 dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29waWVkLgo+ICAgKi8KPiAtc3RhdGljIGlu bGluZSB2b2lkIHN0cnRvbG93ZXIoY2hhciAqcykKPiArc3RhdGljIGlubGluZSBpbnQgc3RydG9s b3dlcihjaGFyICpzKQo+ICB7Cj4gLQlzdHJsY3B5dG9sb3dlcihzLCBzLCB+KHNpemVfdCkwKTsK PiArCXJldHVybiBzdHJsY3B5dG9sb3dlcihzLCBzLCB+KHNpemVfdCkwKTsKPiAgfQo+ICAKPiAg I2VuZGlmIC8qIF9MSU5VWF9TVFJJTkdfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvbGliL3N0cmluZy5j IGIvbGliL3N0cmluZy5jCj4gaW5kZXggNzkwM2UxMC4uZDM2ZDVmYjIgMTAwNjQ0Cj4gLS0tIGEv bGliL3N0cmluZy5jCj4gKysrIGIvbGliL3N0cmluZy5jCj4gQEAgLTk1OCwxNyArOTU4LDIxIEBA IEVYUE9SVF9TWU1CT0woc3RycmVwbGFjZSk7Cj4gICAqIEBkc3Q6IFRoZSBidWZmZXIgdG8gc3Rv cmUgdGhlIHJlc3VsdC4KPiAgICogQHNyYzogVGhlIHN0cmluZyB0byBjb252ZXJ0IHRvIHVwcGVy Y2FzZS4KPiAgICogQGxlbjogTWF4aW11bSBzdHJpbmcgbGVuZ3RoLiBNYXkgYmUgU0laRV9NQVgg dG8gc2V0IG5vIGxpbWl0Lgo+ICsgKgo+ICsgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFj dGVycyBjb3BpZWQgb3IgLUUyQklHIGlmIEBkc3Qgd2Fzbid0IGJpZyBlbm91Z2guCj4gICAqLwo+ IC12b2lkIHN0cmxjcHl0b3VwcGVyKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3Qg bGVuKQo+ICtpbnQgc3RybGNweXRvdXBwZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNp emVfdCBsZW4pCj4gIHsKPiAgCXNpemVfdCBpOwo+ICAKPiAgCWlmICghbGVuKQo+IC0JCXJldHVy bjsKPiArCQlyZXR1cm4gLUUyQklHOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBsZW4gJiYgc3Jj W2ldOyArK2kpCj4gIAkJZHN0W2ldID0gdG91cHBlcihzcmNbaV0pOwo+ICAJZHN0W2kgPCBsZW4g PyBpIDogaSAtIDFdID0gJ1wwJzsKPiArCj4gKwlyZXR1cm4gKGkgPCBsZW4pID8gaSA6IC1FMkJJ RzsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKHN0cmxjcHl0b3VwcGVyKTsKPiAgCj4gQEAgLTk3Nywx NiArOTgxLDIwIEBAIEVYUE9SVF9TWU1CT0woc3RybGNweXRvdXBwZXIpOwo+ICAgKiBAZHN0OiBU aGUgYnVmZmVyIHRvIHN0b3JlIHRoZSByZXN1bHQuCj4gICAqIEBzcmM6IFRoZSBzdHJpbmcgdG8g Y29udmVydCB0byBsb3dlcmNhc2UuCj4gICAqIEBsZW46IE1heGltdW0gc3RyaW5nIGxlbmd0aC4g TWF5IGJlIFNJWkVfTUFYIHRvIHNldCBubyBsaW1pdC4KPiArICoKPiArICogUmV0dXJucyB0aGUg bnVtYmVyIG9mIGNoYXJhY3RlcnMgY29waWVkIG9yIC1FMkJJRyBpZiBAZHN0IHdhc24ndCBiaWcg ZW5vdWdoLgo+ICAgKi8KPiAtdm9pZCBzdHJsY3B5dG9sb3dlcihjaGFyICpkc3QsIGNvbnN0IGNo YXIgKnNyYywgc2l6ZV90IGxlbikKPiAraW50IHN0cmxjcHl0b2xvd2VyKGNoYXIgKmRzdCwgY29u c3QgY2hhciAqc3JjLCBzaXplX3QgbGVuKQo+ICB7Cj4gIAlzaXplX3QgaTsKPiAgCj4gIAlpZiAo IWxlbikKPiAtCQlyZXR1cm47Cj4gKwkJcmV0dXJuIC1FMkJJRzsKPiAgCj4gIAlmb3IgKGkgPSAw OyBpIDwgbGVuICYmIHNyY1tpXTsgKytpKQo+ICAJCWRzdFtpXSA9IHRvbG93ZXIoc3JjW2ldKTsK PiAgCWRzdFtpIDwgbGVuID8gaSA6IGkgLSAxXSA9ICdcMCc7Cj4gKwo+ICsJcmV0dXJuIChpIDwg bGVuKSA/IGkgOiAtRTJCSUc7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChzdHJsY3B5dG9sb3dlcik7 Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUg bWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91dmVhdQo=