aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2022-04-02 11:46:58 +0200
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2022-04-15 11:26:20 +0200
commit0121282d1aa449a037445a212e4fac53e2164893 (patch)
tree0ba072fadaffa94a75b6a4d85ead358c6823fd16
parentfe869e11c71a9a7e8f069426c594556aa3181507 (diff)
downloadu-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.h26
-rw-r--r--lib/charset.c12
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;