diff options
author | Heinrich Schuchardt <heinrich.schuchardt@canonical.com> | 2022-04-02 11:46:58 +0200 |
---|---|---|
committer | Heinrich Schuchardt <heinrich.schuchardt@canonical.com> | 2022-04-15 11:26:20 +0200 |
commit | 0121282d1aa449a037445a212e4fac53e2164893 (patch) | |
tree | 0ba072fadaffa94a75b6a4d85ead358c6823fd16 | |
parent | fe869e11c71a9a7e8f069426c594556aa3181507 (diff) | |
download | u-boot-0121282d1aa449a037445a212e4fac53e2164893.zip u-boot-0121282d1aa449a037445a212e4fac53e2164893.tar.gz u-boot-0121282d1aa449a037445a212e4fac53e2164893.tar.bz2 |
lib: convert u16_strlen() into a macro
The function u16_strlen() can be implemented as call to u16_strnlen().
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-rw-r--r-- | include/charset.h | 26 | ||||
-rw-r--r-- | lib/charset.c | 12 |
2 files changed, 14 insertions, 24 deletions
diff --git a/include/charset.h b/include/charset.h index b93d023..38908e0 100644 --- a/include/charset.h +++ b/include/charset.h @@ -201,18 +201,6 @@ int u16_strncmp(const u16 *s1, const u16 *s2, size_t n); #define u16_strcmp(s1, s2) u16_strncmp((s1), (s2), SIZE_MAX) /** - * u16_strlen - count non-zero words - * - * This function matches wsclen() if the -fshort-wchar compiler flag is set. - * In the EFI context we explicitly need a function handling u16 strings. - * - * @in: null terminated u16 string - * Return: number of non-zero words. - * This is not the number of utf-16 letters! - */ -size_t u16_strlen(const void *in); - -/** * u16_strsize() - count size of u16 string in bytes including the null * character * @@ -237,6 +225,20 @@ size_t u16_strsize(const void *in); size_t u16_strnlen(const u16 *in, size_t count); /** + * u16_strlen - count non-zero words + * + * This function matches wsclen() if the -fshort-wchar compiler flag is set. + * In the EFI context we explicitly need a function handling u16 strings. + * + * @in: null terminated u16 string + * Return: number of non-zero words. + * This is not the number of utf-16 letters! + */ +size_t u16_strlen(const void *in); + +#define u16_strlen(in) u16_strnlen(in, SIZE_MAX) + +/** * u16_strcpy() - copy u16 string * * Copy u16 string pointed to by src, including terminating null word, to diff --git a/lib/charset.c b/lib/charset.c index f44c58d..91cbe87 100644 --- a/lib/charset.c +++ b/lib/charset.c @@ -375,18 +375,6 @@ int u16_strncmp(const u16 *s1, const u16 *s2, size_t n) return ret; } -size_t u16_strlen(const void *in) -{ - const char *pos = in; - size_t ret; - - for (; pos[0] || pos[1]; pos += 2) - ; - ret = pos - (char *)in; - ret >>= 1; - return ret; -} - size_t __efi_runtime u16_strnlen(const u16 *in, size_t count) { size_t i; |