[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <29ff4981-ed4d-d87b-f6e2-112234f6a10a@cogentembedded.com>
Date: Mon, 6 Feb 2017 19:48:39 +0300
From: Sergei Shtylyov <sergei.shtylyov@...entembedded.com>
To: Richard Leitner <richard.leitner@...data.com>,
linux-usb@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, devicetree@...r.kernel.org,
gregkh@...uxfoundation.org, robh+dt@...nel.org,
mark.rutland@....com, akpm@...ux-foundation.org,
andriy.shevchenko@...ux.intel.com, keescook@...omium.org,
dev@...l1n.net
Subject: Re: [PATCH v3 1/3] lib/string: introduce ascii2utf16le() helper
Hello!
On 02/06/2017 05:03 PM, Richard Leitner wrote:
> For USB string descriptors we need to convert ASCII strings to UTF16-LE.
> Therefore make a simple helper function (based on ascii2desc from
> drivers/usb/core/hcd.c) for that purpose.
>
> Signed-off-by: Richard Leitner <richard.leitner@...data.com>
[...]
> diff --git a/lib/string.c b/lib/string.c
> index ed83562..a113e3e 100644
> --- a/lib/string.c
> +++ b/lib/string.c
> @@ -952,3 +952,29 @@ char *strreplace(char *s, char old, char new)
> return s;
> }
> EXPORT_SYMBOL(strreplace);
> +
> +/**
> + * ascii2utf16le() - Helper routine for producing UTF-16LE string descriptors
> + * @s: Null-terminated ASCII (actually ISO-8859-1) string
> + * @buf: Buffer for UTF-16LE string
> + * @len: Length (in bytes; may be odd) of UTF-16LE buffer.
> + *
> + * Return: The number of bytes filled in: 2*strlen(s) or @len, whichever is less
> + */
> +unsigned int ascii2utf16le(char const *s, u8 *buf, unsigned int len)
> +{
> + unsigned int n, t = 2 * strlen(s);
> +
> + if (len > t)
> + len = t;
> + n = len;
> + while (n--) {
> + t = (unsigned char)*s++;
> + *buf++ = t;
> + if (!n--)
> + break;
> + *buf++ = t >> 8;
Isn't it always 0?
> + }
> + return len;
> +}
> +EXPORT_SYMBOL(ascii2utf16le);
MBR, Sergei
Powered by blists - more mailing lists