mmc: fsl_esdhc: Fix SDR104 and HS200 support
[oweals/u-boot.git] / include / charset.h
index 65087f76d1fc386385055e7f922850f71ecf4b64..5564f3bce569c7829eff715166cb74afdaa076a1 100644 (file)
@@ -46,18 +46,19 @@ int utf8_put(s32 code, char **dst);
  *
  * @src:               utf-8 string
  * @count:             maximum number of code points to convert
- * Return:             length in bytes after conversion to utf-16 without the
+ * Return:             length in u16 after conversion to utf-16 without the
  *                     trailing \0. If an invalid UTF-8 sequence is hit one
- *                     word will be reserved for a replacement character.
+ *                     u16 will be reserved for a replacement character.
  */
 size_t utf8_utf16_strnlen(const char *src, size_t count);
 
 /**
  * utf8_utf16_strlen() - length of a utf-8 string after conversion to utf-16
  *
- * @src:               utf-8 string
- * Return:             length in bytes after conversion to utf-16 without the
- *                     trailing \0. -1 if the utf-8 string is not valid.
+ * @a:                 utf-8 string
+ * Return:             length in u16 after conversion to utf-16 without the
+ *                     trailing \0. If an invalid UTF-8 sequence is hit one
+ *                     u16 will be reserved for a replacement character.
  */
 #define utf8_utf16_strlen(a) utf8_utf16_strnlen((a), SIZE_MAX)
 
@@ -74,8 +75,8 @@ int utf8_utf16_strncpy(u16 **dst, const char *src, size_t count);
 /**
  * utf8_utf16_strcpy() - copy utf-8 string to utf-16 string
  *
- * @dst:               destination buffer
- * @src:               source buffer
+ * @d:                 destination buffer
+ * @s:                 source buffer
  * Return:             -1 if the input parameters are invalid
  */
 #define utf8_utf16_strcpy(d, s) utf8_utf16_strncpy((d), (s), SIZE_MAX)
@@ -125,9 +126,10 @@ size_t utf16_utf8_strnlen(const u16 *src, size_t count);
 /**
  * utf16_utf8_strlen() - length of a utf-16 string after conversion to utf-8
  *
- * @src:               utf-16 string
+ * @a:                 utf-16 string
  * Return:             length in bytes after conversion to utf-8 without the
- *                     trailing \0. -1 if the utf-16 string is not valid.
+ *                     trailing \0. If an invalid UTF-16 sequence is hit one
+ *                     byte will be reserved for a replacement character.
  */
 #define utf16_utf8_strlen(a) utf16_utf8_strnlen((a), SIZE_MAX)
 
@@ -144,8 +146,8 @@ int utf16_utf8_strncpy(char **dst, const u16 *src, size_t count);
 /**
  * utf16_utf8_strcpy() - copy utf-16 string to utf-8 string
  *
- * @dst:               destination buffer
- * @src:               source buffer
+ * @d:                 destination buffer
+ * @s:                 source buffer
  * Return:             -1 if the input parameters are invalid
  */
 #define utf16_utf8_strcpy(d, s) utf16_utf8_strncpy((d), (s), SIZE_MAX)
@@ -166,6 +168,33 @@ s32 utf_to_lower(const s32 code);
  */
 s32 utf_to_upper(const s32 code);
 
+/**
+ * u16_strncmp() - compare two u16 string
+ *
+ * @s1:                first string to compare
+ * @s2:                second string to compare
+ * @n:         maximum number of u16 to compare
+ * Return:     0  if the first n u16 are the same in s1 and s2
+ *             < 0 if the first different u16 in s1 is less than the
+ *             corresponding u16 in s2
+ *             > 0 if the first different u16 in s1 is greater than the
+ *             corresponding u16 in s2
+ */
+int u16_strncmp(const u16 *s1, const u16 *s2, size_t n);
+
+/**
+ * u16_strcmp() - compare two u16 string
+ *
+ * @s1:                first string to compare
+ * @s2:                second string to compare
+ * Return:     0  if the first n u16 are the same in s1 and s2
+ *             < 0 if the first different u16 in s1 is less than the
+ *             corresponding u16 in s2
+ *             > 0 if the first different u16 in s1 is greater than the
+ *             corresponding u16 in s2
+ */
+#define u16_strcmp(s1, s2)     u16_strncmp((s1), (s2), SIZE_MAX)
+
 /**
  * u16_strlen - count non-zero words
  *
@@ -173,10 +202,21 @@ s32 utf_to_upper(const s32 code);
  * In the EFI context we explicitly need a function handling u16 strings.
  *
  * @in:                        null terminated u16 string
- * ReturnValue:                number of non-zero words.
+ * Return:             number of non-zero words.
  *                     This is not the number of utf-16 letters!
  */
-size_t u16_strlen(const u16 *in);
+size_t u16_strlen(const void *in);
+
+/**
+ * u16_strsize() - count size of u16 string in bytes including the null
+ *                character
+ *
+ * Counts the number of bytes occupied by a u16 string
+ *
+ * @in:                        null terminated u16 string
+ * Return:             bytes in a u16 string
+ */
+size_t u16_strsize(const void *in);
 
 /**
  * u16_strlen - count non-zero words
@@ -186,7 +226,7 @@ size_t u16_strlen(const u16 *in);
  *
  * @in:                        null terminated u16 string
  * @count:             maximum number of words to count
- * ReturnValue:                number of non-zero words.
+ * Return:             number of non-zero words.
  *                     This is not the number of utf-16 letters!
  */
 size_t u16_strnlen(const u16 *in, size_t count);
@@ -212,7 +252,7 @@ u16 *u16_strcpy(u16 *dest, const u16 *src);
  * @src:               source buffer (null terminated)
  * Return:             allocated new buffer on success, NULL on failure
  */
-u16 *u16_strdup(const u16 *src);
+u16 *u16_strdup(const void *src);
 
 /**
  * utf16_to_utf8() - Convert an utf16 string to utf8
@@ -223,10 +263,10 @@ u16 *u16_strdup(const u16 *src);
  * NOTE that a single utf16 character can generate up to 3 utf8
  * characters.  See MAX_UTF8_PER_UTF16.
  *
- * @dest   the destination buffer to write the utf8 characters
- * @src    the source utf16 string
- * @size   the number of utf16 characters to convert
- * @return the pointer to the first unwritten byte in 'dest'
+ * @dest:      the destination buffer to write the utf8 characters
+ * @src:       the source utf16 string
+ * @size:      the number of utf16 characters to convert
+ * Return:     the pointer to the first unwritten byte in 'dest'
  */
 uint8_t *utf16_to_utf8(uint8_t *dest, const uint16_t *src, size_t size);