1*ee970480Sschwarze /* $OpenBSD: uchar.h,v 1.2 2023/09/05 23:16:01 schwarze Exp $ */ 246c354aaSschwarze /* 346c354aaSschwarze * Written by Ingo Schwarze <schwarze@openbsd.org> 446c354aaSschwarze * and placed in the public domain on March 19, 2022. 546c354aaSschwarze */ 646c354aaSschwarze 746c354aaSschwarze #ifndef _UCHAR_H_ 846c354aaSschwarze #define _UCHAR_H_ 946c354aaSschwarze 1046c354aaSschwarze #include <sys/cdefs.h> 1146c354aaSschwarze #include <sys/_types.h> 1246c354aaSschwarze 1346c354aaSschwarze #ifndef _MBSTATE_T_DEFINED_ 1446c354aaSschwarze #define _MBSTATE_T_DEFINED_ 1546c354aaSschwarze typedef __mbstate_t mbstate_t; 1646c354aaSschwarze #endif 1746c354aaSschwarze 1846c354aaSschwarze #ifndef _SIZE_T_DEFINED_ 1946c354aaSschwarze #define _SIZE_T_DEFINED_ 2046c354aaSschwarze typedef __size_t size_t; 2146c354aaSschwarze #endif 2246c354aaSschwarze 2346c354aaSschwarze #define __STDC_UTF_16__ 1 2446c354aaSschwarze #define __STDC_UTF_32__ 1 2546c354aaSschwarze 26*ee970480Sschwarze #if !defined(__cplusplus) || __cplusplus < 201103L 2746c354aaSschwarze typedef __uint16_t char16_t; 2846c354aaSschwarze typedef __uint32_t char32_t; 29*ee970480Sschwarze #endif 3046c354aaSschwarze 3146c354aaSschwarze __BEGIN_DECLS 3246c354aaSschwarze size_t mbrtoc16(char16_t * __restrict, const char * __restrict, size_t, 3346c354aaSschwarze mbstate_t * __restrict); 3446c354aaSschwarze size_t c16rtomb(char * __restrict, char16_t, mbstate_t * __restrict); 3546c354aaSschwarze size_t mbrtoc32(char32_t * __restrict, const char * __restrict, size_t, 3646c354aaSschwarze mbstate_t * __restrict); 3746c354aaSschwarze size_t c32rtomb(char * __restrict, char32_t, mbstate_t * __restrict); 3846c354aaSschwarze __END_DECLS 3946c354aaSschwarze 4046c354aaSschwarze #endif /* !_UCHAR_H_ */ 41