summaryrefslogtreecommitdiff
path: root/include/linux/unicode.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/unicode.h')
-rw-r--r--include/linux/unicode.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/unicode.h b/include/linux/unicode.h
index 77bb915fd1f0..526ca8b8391a 100644
--- a/include/linux/unicode.h
+++ b/include/linux/unicode.h
@@ -5,6 +5,8 @@
#include <linux/init.h>
#include <linux/dcache.h>
+struct utf8data;
+
#define UNICODE_MAJ_SHIFT 16
#define UNICODE_MIN_SHIFT 8
@@ -28,8 +30,25 @@ static inline u8 unicode_rev(unsigned int age)
return age & 0xff;
}
+/*
+ * Two normalization forms are supported:
+ * 1) NFDI
+ * - Apply unicode normalization form NFD.
+ * - Remove any Default_Ignorable_Code_Point.
+ * 2) NFDICF
+ * - Apply unicode normalization form NFD.
+ * - Remove any Default_Ignorable_Code_Point.
+ * - Apply a full casefold (C + F).
+ */
+enum utf8_normalization {
+ UTF8_NFDI = 0,
+ UTF8_NFDICF,
+ UTF8_NMAX,
+};
+
struct unicode_map {
unsigned int version;
+ const struct utf8data *ntab[UTF8_NMAX];
};
int utf8_validate(const struct unicode_map *um, const struct qstr *str);