From mboxrd@z Thu Jan 1 00:00:00 1970 From: Markus Mayer Subject: [PATCH v5 1/7] lib: string: add functions to case-convert strings Date: Wed, 10 Aug 2016 14:04:51 -0700 Message-ID: <1470863097-21138-2-git-send-email-mmayer@broadcom.com> References: <1470863097-21138-1-git-send-email-mmayer@broadcom.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470863097-21138-1-git-send-email-mmayer-dY08KVG/lbpWk0Htik3J/w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Andrew Morton , Al Viro , Rasmus Villemoes , Chris Metcalf , Kees Cook Cc: devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b@public.gmane.org, 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-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, target-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-scsi@vger.kernel.org QWRkIGEgY29sbGVjdGlvbiBvZiBnZW5lcmljIGZ1bmN0aW9ucyB0byBjb252ZXJ0IHN0cmluZ3Mg dG8gbG93ZXJjYXNlCm9yIHVwcGVyY2FzZS4KCkNoYW5naW5nIHRoZSBjYXNlIG9mIGEgc3RyaW5n ICh3aXRoIG9yIHdpdGhvdXQgY29weWluZyBpdCBmaXJzdCkgc2VlbXMKdG8gYmUgYSByZWN1cnJp bmcgcmVxdWlyZW1lbnQgaW4gdGhlIGtlcm5lbCB0aGF0IGlzIGN1cnJlbnRseSBiZWluZwpzb2x2 ZWQgYnkgc2V2ZXJhbCBkdXBsaWNhdGVkIGltcGxlbWVudGF0aW9ucyBkb2luZyB0aGUgc2FtZSB0 aGluZy4gVGhpcwpjaGFuZ2UgYWltcyBhdCByZWR1Y2luZyB0aGlzIGNvZGUgZHVwbGljYXRpb24u CgpUaGUgbmV3IGZ1bmN0aW9ucyBhcmUKICAgIGludCBzdHJsY3B5dG91cHBlcihjaGFyICpkc3Qs IGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IGxlbik7CiAgICBpbnQgc3RybGNweXRvbG93ZXIoY2hh ciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBsZW4pOwogICAgdm9pZCBzdHJjcHl0b3Vw cGVyKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjKTsKICAgIHZvaWQgc3RyY3B5dG9sb3dlcihj aGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYyk7CiAgICB2b2lkIHN0cnRvdXBwZXIoY2hhciAqcyk7 CiAgICB2b2lkIHN0cnRvbG93ZXIoY2hhciAqcyk7CgpUaGUgInN0cltsXWNweXRvKiIgdmVyc2lv bnMgb2YgdGhlIGZ1bmN0aW9uIHRha2UgYSBkZXN0aW5hdGlvbiBzdHJpbmcKYW5kIGEgc291cmNl IHN0cmluZyBhcyBhcmd1bWVudHMuIFRoZSAic3RybGNweXRvKiIgdmVyc2lvbnMgYWRkaXRpb25h bGx5CnRha2UgYSBsZW5ndGggYXJndW1lbnQgbGlrZSBzdHJsY3B5KCkgaXRzZWxmLiBMYXN0bHks IHRoZSBzdHJ0byoKZnVuY3Rpb25zIHRha2UgYSBzaW5nbGUgc3RyaW5nIGFyZ3VtZW50IGFuZCBt b2RpZnkgdGhlIHBhc3NlZC1pbiBzdHJpbmcuCgpzdHJsY3B5dG91cHBlcigpIGFuZCBzdHJsY3B5 dG9sb3dlcigpIHJldHVybiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMKY29waWVkIG9yIC1FMkJJ RyBpZiB0aGUgZGVzdGluYXRpb24gc3RyaW5nIHdhcyB0cnVuY2F0ZWQuCgpMaWtlIHN0cmxjcHko KSwgYW5kIHVubGlrZSBzdHJuY3B5KCksIHRoZSBmdW5jdGlvbnMgZ3VhcmFudGVlIE5VTEwKdGVy bWluYXRpb24gb2YgdGhlIGRlc3RpbmF0aW9uIHN0cmluZy4KClNpZ25lZC1vZmYtYnk6IE1hcmt1 cyBNYXllciA8bW1heWVyQGJyb2FkY29tLmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L3N0cmluZy5o IHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL3N0cmlu Zy5jICAgICAgICAgICB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvc3RyaW5nLmggYi9pbmNsdWRlL2xpbnV4L3N0cmluZy5oCmluZGV4IDI2 YjZmNmEuLjI1N2Q3OTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc3RyaW5nLmgKKysrIGIv aW5jbHVkZS9saW51eC9zdHJpbmcuaApAQCAtMTE2LDYgKzExNiw4IEBAIGV4dGVybiB2b2lkICog bWVtY2hyKGNvbnN0IHZvaWQgKixpbnQsX19rZXJuZWxfc2l6ZV90KTsKICNlbmRpZgogdm9pZCAq bWVtY2hyX2ludihjb25zdCB2b2lkICpzLCBpbnQgYywgc2l6ZV90IG4pOwogY2hhciAqc3RycmVw bGFjZShjaGFyICpzLCBjaGFyIG9sZCwgY2hhciBuZXcpOworZXh0ZXJuIGludCBzdHJsY3B5dG91 cHBlcihjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IGxlbik7CitleHRlcm4gaW50 IHN0cmxjcHl0b2xvd2VyKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3QgbGVuKTsK IAogZXh0ZXJuIHZvaWQga2ZyZWVfY29uc3QoY29uc3Qgdm9pZCAqeCk7CiAKQEAgLTE2OSw0ICsx NzEsNDIgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyICprYmFzZW5hbWUoY29uc3QgY2hhciAq cGF0aCkKIAlyZXR1cm4gdGFpbCA/IHRhaWwgKyAxIDogcGF0aDsKIH0KIAorLyoqCisgKiBzdHJj cHl0b3VwcGVyIC0gQ29weSBzdHJpbmcgYW5kIGNvbnZlcnQgdG8gdXBwZXJjYXNlLgorICogQGRz dDogVGhlIGJ1ZmZlciB0byBzdG9yZSB0aGUgcmVzdWx0LgorICogQHNyYzogVGhlIHN0cmluZyB0 byBjb252ZXJ0IHRvIHVwcGVyY2FzZS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHN0cmNweXRv dXBwZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMpCit7CisJc3RybGNweXRvdXBwZXIoZHN0 LCBzcmMsIH4oc2l6ZV90KTApOworfQorCisvKioKKyAqIHN0cmNweXRvbG93ZXIgLSBDb3B5IHN0 cmluZyBhbmQgY29udmVydCB0byBsb3dlcmNhc2UuCisgKiBAZHN0OiBUaGUgYnVmZmVyIHRvIHN0 b3JlIHRoZSByZXN1bHQuCisgKiBAc3JjOiBUaGUgc3RyaW5nIHRvIGNvbnZlcnQgdG8gbG93ZXJj YXNlLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgc3RyY3B5dG9sb3dlcihjaGFyICpkc3QsIGNv bnN0IGNoYXIgKnNyYykKK3sKKwlzdHJsY3B5dG9sb3dlcihkc3QsIHNyYywgfihzaXplX3QpMCk7 Cit9CisKKy8qKgorICogc3RydG91cHBlciAtIENvbnZlcnQgc3RyaW5nIHRvIHVwcGVyY2FzZS4K KyAqIEBzOiBUaGUgc3RyaW5nIHRvIG9wZXJhdGUgb24uCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9p ZCBzdHJ0b3VwcGVyKGNoYXIgKnMpCit7CisJc3RybGNweXRvdXBwZXIocywgcywgfihzaXplX3Qp MCk7Cit9CisKKy8qKgorICogc3RydG9sb3dlciAtIENvbnZlcnQgc3RyaW5nIHRvIGxvd2VyY2Fz ZS4KKyAqIEBzOiBUaGUgc3RyaW5nIHRvIG9wZXJhdGUgb24uCisgKi8KK3N0YXRpYyBpbmxpbmUg dm9pZCBzdHJ0b2xvd2VyKGNoYXIgKnMpCit7CisJc3RybGNweXRvbG93ZXIocywgcywgfihzaXpl X3QpMCk7Cit9CisKICNlbmRpZiAvKiBfTElOVVhfU1RSSU5HX0hfICovCmRpZmYgLS1naXQgYS9s aWIvc3RyaW5nLmMgYi9saWIvc3RyaW5nLmMKaW5kZXggZWQ4MzU2Mi4uZDM2ZDVmYjIgMTAwNjQ0 Ci0tLSBhL2xpYi9zdHJpbmcuYworKysgYi9saWIvc3RyaW5nLmMKQEAgLTk1MiwzICs5NTIsNDkg QEAgY2hhciAqc3RycmVwbGFjZShjaGFyICpzLCBjaGFyIG9sZCwgY2hhciBuZXcpCiAJcmV0dXJu IHM7CiB9CiBFWFBPUlRfU1lNQk9MKHN0cnJlcGxhY2UpOworCisvKioKKyAqIHN0cmxjcHl0b3Vw cGVyIC0gQ29weSBhIGxlbmd0aC1saW1pdGVkIHN0cmluZyBhbmQgY29udmVydCB0byB1cHBlcmNh c2UuCisgKiBAZHN0OiBUaGUgYnVmZmVyIHRvIHN0b3JlIHRoZSByZXN1bHQuCisgKiBAc3JjOiBU aGUgc3RyaW5nIHRvIGNvbnZlcnQgdG8gdXBwZXJjYXNlLgorICogQGxlbjogTWF4aW11bSBzdHJp bmcgbGVuZ3RoLiBNYXkgYmUgU0laRV9NQVggdG8gc2V0IG5vIGxpbWl0LgorICoKKyAqIFJldHVy bnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGNvcGllZCBvciAtRTJCSUcgaWYgQGRzdCB3YXNu J3QgYmlnIGVub3VnaC4KKyAqLworaW50IHN0cmxjcHl0b3VwcGVyKGNoYXIgKmRzdCwgY29uc3Qg Y2hhciAqc3JjLCBzaXplX3QgbGVuKQoreworCXNpemVfdCBpOworCisJaWYgKCFsZW4pCisJCXJl dHVybiAtRTJCSUc7CisKKwlmb3IgKGkgPSAwOyBpIDwgbGVuICYmIHNyY1tpXTsgKytpKQorCQlk c3RbaV0gPSB0b3VwcGVyKHNyY1tpXSk7CisJZHN0W2kgPCBsZW4gPyBpIDogaSAtIDFdID0gJ1ww JzsKKworCXJldHVybiAoaSA8IGxlbikgPyBpIDogLUUyQklHOworfQorRVhQT1JUX1NZTUJPTChz dHJsY3B5dG91cHBlcik7CisKKy8qKgorICogc3RybGNweXRvbG93ZXIgLSBDb3B5IGEgbGVuZ3Ro LWxpbWl0ZWQgc3RyaW5nIGFuZCBjb252ZXJ0IHRvIGxvd2VyY2FzZS4KKyAqIEBkc3Q6IFRoZSBi dWZmZXIgdG8gc3RvcmUgdGhlIHJlc3VsdC4KKyAqIEBzcmM6IFRoZSBzdHJpbmcgdG8gY29udmVy dCB0byBsb3dlcmNhc2UuCisgKiBAbGVuOiBNYXhpbXVtIHN0cmluZyBsZW5ndGguIE1heSBiZSBT SVpFX01BWCB0byBzZXQgbm8gbGltaXQuCisgKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNo YXJhY3RlcnMgY29waWVkIG9yIC1FMkJJRyBpZiBAZHN0IHdhc24ndCBiaWcgZW5vdWdoLgorICov CitpbnQgc3RybGNweXRvbG93ZXIoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBs ZW4pCit7CisJc2l6ZV90IGk7CisKKwlpZiAoIWxlbikKKwkJcmV0dXJuIC1FMkJJRzsKKworCWZv ciAoaSA9IDA7IGkgPCBsZW4gJiYgc3JjW2ldOyArK2kpCisJCWRzdFtpXSA9IHRvbG93ZXIoc3Jj W2ldKTsKKwlkc3RbaSA8IGxlbiA/IGkgOiBpIC0gMV0gPSAnXDAnOworCisJcmV0dXJuIChpIDwg bGVuKSA/IGkgOiAtRTJCSUc7Cit9CitFWFBPUlRfU1lNQk9MKHN0cmxjcHl0b2xvd2VyKTsKLS0g CjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpO b3V2ZWF1IG1haWxpbmcgbGlzdApOb3V2ZWF1QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25vdXZlYXUK