| 1 | /*	$OpenBSD: uchar.h,v 1.2 2023/09/05 23:16:01 schwarze Exp $	*/ |
| 2 | /* |
| 3 | * Written by Ingo Schwarze <schwarze@openbsd.org> |
| 4 | * and placed in the public domain on March 19, 2022. |
| 5 | */ |
| 6 | |
| 7 | #ifndef _UCHAR_H_ |
| 8 | #define _UCHAR_H_ |
| 9 | |
| 10 | #include <sys/cdefs.h> |
| 11 | #include <sys/_types.h> |
| 12 | |
| 13 | #ifndef _MBSTATE_T_DEFINED_ |
| 14 | #define _MBSTATE_T_DEFINED_ |
| 15 | typedef __mbstate_t	mbstate_t; |
| 16 | #endif |
| 17 | |
| 18 | #ifndef _SIZE_T_DEFINED_ |
| 19 | #define _SIZE_T_DEFINED_ |
| 20 | typedef __size_t	size_t; |
| 21 | #endif |
| 22 | |
| 23 | #define __STDC_UTF_16__	1 |
| 24 | #define __STDC_UTF_32__	1 |
| 25 | |
| 26 | #if !defined(__cplusplus) || __cplusplus < 201103L |
| 27 | typedef __uint16_t	char16_t; |
| 28 | typedef __uint32_t	char32_t; |
| 29 | #endif |
| 30 | |
| 31 | __BEGIN_DECLS |
| 32 | size_t	mbrtoc16(char16_t * __restrict, const char * __restrict, size_t, |
| 33 | 	 mbstate_t * __restrict); |
| 34 | size_t	c16rtomb(char * __restrict, char16_t, mbstate_t * __restrict); |
| 35 | size_t	mbrtoc32(char32_t * __restrict, const char * __restrict, size_t, |
| 36 | 	 mbstate_t * __restrict); |
| 37 | size_t	c32rtomb(char * __restrict, char32_t, mbstate_t * __restrict); |
| 38 | __END_DECLS |
| 39 | |
| 40 | #endif /* !_UCHAR_H_ */ |