diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/nls.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/nls.h b/include/linux/nls.h index 6a882208301a..52b1a76c1b43 100644 --- a/include/linux/nls.h +++ b/include/linux/nls.h | |||
| @@ -58,6 +58,25 @@ static inline int nls_strnicmp(struct nls_table *t, const unsigned char *s1, | |||
| 58 | return 0; | 58 | return 0; |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | /* | ||
| 62 | * nls_nullsize - return length of null character for codepage | ||
| 63 | * @codepage - codepage for which to return length of NULL terminator | ||
| 64 | * | ||
| 65 | * Since we can't guarantee that the null terminator will be a particular | ||
| 66 | * length, we have to check against the codepage. If there's a problem | ||
| 67 | * determining it, assume a single-byte NULL terminator. | ||
| 68 | */ | ||
| 69 | static inline int | ||
| 70 | nls_nullsize(const struct nls_table *codepage) | ||
| 71 | { | ||
| 72 | int charlen; | ||
| 73 | char tmp[NLS_MAX_CHARSET_SIZE]; | ||
| 74 | |||
| 75 | charlen = codepage->uni2char(0, tmp, NLS_MAX_CHARSET_SIZE); | ||
| 76 | |||
| 77 | return charlen > 0 ? charlen : 1; | ||
| 78 | } | ||
| 79 | |||
| 61 | #define MODULE_ALIAS_NLS(name) MODULE_ALIAS("nls_" __stringify(name)) | 80 | #define MODULE_ALIAS_NLS(name) MODULE_ALIAS("nls_" __stringify(name)) |
| 62 | 81 | ||
| 63 | #endif /* _LINUX_NLS_H */ | 82 | #endif /* _LINUX_NLS_H */ |
