1#ifndef _WCHAR_H_ 2#define _WCHAR_H_ 3 4 /* Indicate that we honor AEABI portability if requested. */ 5#if defined _AEABI_PORTABILITY_LEVEL && _AEABI_PORTABILITY_LEVEL != 0 && !defined _AEABI_PORTABLE 6# define _AEABI_PORTABLE 7#endif 8 9#include <_ansi.h> 10 11#include <sys/reent.h> 12 13#define __need_size_t 14#define __need_wchar_t 15#define __need_wint_t 16#define __need_NULL 17#include <stddef.h> 18 19#define __need___va_list 20#include <stdarg.h> 21 22/* For _mbstate_t definition. */ 23#include <sys/_types.h> 24 25/* For __STDC_ISO_10646__ */ 26#include <sys/features.h> 27 28#ifndef WEOF 29# define WEOF ((wint_t)-1) 30#endif 31 32#ifndef WCHAR_MIN 33#define WCHAR_MIN 0 34#endif 35 36#ifndef WCHAR_MAX 37#ifdef __WCHAR_MAX__ 38#define WCHAR_MAX __WCHAR_MAX__ 39#else 40#define WCHAR_MAX 0x7fffffffu 41#endif 42#endif 43 44_BEGIN_STD_C 45 46/* As required by POSIX.1-2008, declare tm as incomplete type. 47 The actual definition is in time.h. */ 48struct tm; 49 50#ifndef _MBSTATE_T 51#define _MBSTATE_T 52typedef _mbstate_t mbstate_t; 53#endif /* _MBSTATE_T */ 54 55wint_t _EXFUN(btowc, (int)); 56int _EXFUN(wctob, (wint_t)); 57size_t _EXFUN(mbrlen, (const char * , size_t, mbstate_t *)); 58size_t _EXFUN(mbrtowc, (wchar_t * , const char * , size_t, mbstate_t *)); 59size_t _EXFUN(_mbrtowc_r, (struct _reent *, wchar_t * , const char * , 60 size_t, mbstate_t *)); 61int _EXFUN(mbsinit, (const mbstate_t *)); 62size_t _EXFUN(mbsnrtowcs, (wchar_t * , const char ** , size_t, size_t, 63 mbstate_t *)); 64size_t _EXFUN(_mbsnrtowcs_r, (struct _reent *, wchar_t * , const char ** , 65 size_t, size_t, mbstate_t *)); 66size_t _EXFUN(mbsrtowcs, (wchar_t * , const char ** , size_t, mbstate_t *)); 67size_t _EXFUN(_mbsrtowcs_r, (struct _reent *, wchar_t * , const char ** , size_t, mbstate_t *)); 68size_t _EXFUN(wcrtomb, (char * , wchar_t, mbstate_t *)); 69size_t _EXFUN(_wcrtomb_r, (struct _reent *, char * , wchar_t, mbstate_t *)); 70size_t _EXFUN(wcsnrtombs, (char * , const wchar_t ** , size_t, size_t, 71 mbstate_t *)); 72size_t _EXFUN(_wcsnrtombs_r, (struct _reent *, char * , const wchar_t ** , 73 size_t, size_t, mbstate_t *)); 74size_t _EXFUN(wcsrtombs, (char * , const wchar_t ** , size_t, mbstate_t *)); 75size_t _EXFUN(_wcsrtombs_r, (struct _reent *, char * , const wchar_t ** , 76 size_t, mbstate_t *)); 77int _EXFUN(wcscasecmp, (const wchar_t *, const wchar_t *)); 78wchar_t *_EXFUN(wcscat, (wchar_t * , const wchar_t *)); 79wchar_t *_EXFUN(wcschr, (const wchar_t *, wchar_t)); 80int _EXFUN(wcscmp, (const wchar_t *, const wchar_t *)); 81int _EXFUN(wcscoll, (const wchar_t *, const wchar_t *)); 82wchar_t *_EXFUN(wcscpy, (wchar_t * , const wchar_t *)); 83wchar_t *_EXFUN(wcpcpy, (wchar_t * , const wchar_t *)); 84wchar_t *_EXFUN(wcsdup, (const wchar_t *)); 85wchar_t *_EXFUN(_wcsdup_r, (struct _reent *, const wchar_t * )); 86size_t _EXFUN(wcscspn, (const wchar_t *, const wchar_t *)); 87size_t _EXFUN(wcsftime, (wchar_t *, size_t, const wchar_t *, const struct tm *)); 88size_t _EXFUN(wcslcat, (wchar_t *, const wchar_t *, size_t)); 89size_t _EXFUN(wcslcpy, (wchar_t *, const wchar_t *, size_t)); 90size_t _EXFUN(wcslen, (const wchar_t *)); 91int _EXFUN(wcsncasecmp, (const wchar_t *, const wchar_t *, size_t)); 92wchar_t *_EXFUN(wcsncat, (wchar_t * , const wchar_t * , size_t)); 93int _EXFUN(wcsncmp, (const wchar_t *, const wchar_t *, size_t)); 94wchar_t *_EXFUN(wcsncpy, (wchar_t * , const wchar_t * , size_t)); 95wchar_t *_EXFUN(wcpncpy, (wchar_t * , const wchar_t * , size_t)); 96size_t _EXFUN(wcsnlen, (const wchar_t *, size_t)); 97wchar_t *_EXFUN(wcspbrk, (const wchar_t *, const wchar_t *)); 98wchar_t *_EXFUN(wcsrchr, (const wchar_t *, wchar_t)); 99size_t _EXFUN(wcsspn, (const wchar_t *, const wchar_t *)); 100wchar_t *_EXFUN(wcsstr, (const wchar_t *, const wchar_t *)); 101wchar_t *_EXFUN(wcstok, (wchar_t *, const wchar_t *, wchar_t **)); 102double _EXFUN(wcstod, (const wchar_t *, wchar_t **)); 103double _EXFUN(_wcstod_r, (struct _reent *, const wchar_t *, wchar_t **)); 104float _EXFUN(wcstof, (const wchar_t *, wchar_t **)); 105float _EXFUN(_wcstof_r, (struct _reent *, const wchar_t *, wchar_t **)); 106int _EXFUN(wcswidth, (const wchar_t *, size_t)); 107size_t _EXFUN(wcsxfrm, (wchar_t *, const wchar_t *, size_t)); 108int _EXFUN(wcwidth, (const wchar_t)); 109wchar_t *_EXFUN(wmemchr, (const wchar_t *, wchar_t, size_t)); 110int _EXFUN(wmemcmp, (const wchar_t *, const wchar_t *, size_t)); 111wchar_t *_EXFUN(wmemcpy, (wchar_t * , const wchar_t * , size_t)); 112wchar_t *_EXFUN(wmemmove, (wchar_t *, const wchar_t *, size_t)); 113wchar_t *_EXFUN(wmemset, (wchar_t *, wchar_t, size_t)); 114 115long _EXFUN(wcstol, (const wchar_t *, wchar_t **, int)); 116long long _EXFUN(wcstoll, (const wchar_t *, wchar_t **, int)); 117unsigned long _EXFUN(wcstoul, (const wchar_t *, wchar_t **, int)); 118unsigned long long _EXFUN(wcstoull, (const wchar_t *, wchar_t **, int)); 119long _EXFUN(_wcstol_r, (struct _reent *, const wchar_t *, wchar_t **, int)); 120long long _EXFUN(_wcstoll_r, (struct _reent *, const wchar_t *, wchar_t **, int)); 121unsigned long _EXFUN(_wcstoul_r, (struct _reent *, const wchar_t *, wchar_t **, int)); 122unsigned long long _EXFUN(_wcstoull_r, (struct _reent *, const wchar_t *, wchar_t **, int)); 123 124wint_t _EXFUN(fgetwc, (__FILE *)); 125wchar_t *_EXFUN(fgetws, (wchar_t *, int, __FILE *)); 126wint_t _EXFUN(fputwc, (wchar_t, __FILE *)); 127int _EXFUN(fputws, (const wchar_t *, __FILE *)); 128int _EXFUN (fwide, (__FILE *, int)); 129wint_t _EXFUN (getwc, (__FILE *)); 130wint_t _EXFUN (getwchar, (void)); 131wint_t _EXFUN(putwc, (wchar_t, __FILE *)); 132wint_t _EXFUN(putwchar, (wchar_t)); 133wint_t _EXFUN (ungetwc, (wint_t wc, __FILE *)); 134 135wint_t _EXFUN(_fgetwc_r, (struct _reent *, __FILE *)); 136wchar_t *_EXFUN(_fgetws_r, (struct _reent *, wchar_t *, int, __FILE *)); 137wint_t _EXFUN(_fputwc_r, (struct _reent *, wchar_t, __FILE *)); 138int _EXFUN(_fputws_r, (struct _reent *, const wchar_t *, __FILE *)); 139int _EXFUN (_fwide_r, (struct _reent *, __FILE *, int)); 140wint_t _EXFUN (_getwc_r, (struct _reent *, __FILE *)); 141wint_t _EXFUN (_getwchar_r, (struct _reent *ptr)); 142wint_t _EXFUN(_putwc_r, (struct _reent *, wchar_t, __FILE *)); 143wint_t _EXFUN(_putwchar_r, (struct _reent *, wchar_t)); 144wint_t _EXFUN (_ungetwc_r, (struct _reent *, wint_t wc, __FILE *)); 145 146__FILE *_EXFUN (open_wmemstream, (wchar_t **, size_t *)); 147__FILE *_EXFUN (_open_wmemstream_r, (struct _reent *, wchar_t **, size_t *)); 148 149#ifndef __VALIST 150#ifdef __GNUC__ 151#define __VALIST __gnuc_va_list 152#else 153#define __VALIST char* 154#endif 155#endif 156 157int _EXFUN(fwprintf, (__FILE *, const wchar_t *, ...)); 158int _EXFUN(swprintf, (wchar_t *, size_t, const wchar_t *, ...)); 159int _EXFUN(vfwprintf, (__FILE *, const wchar_t *, __VALIST)); 160int _EXFUN(vswprintf, (wchar_t *, size_t, const wchar_t *, __VALIST)); 161int _EXFUN(vwprintf, (const wchar_t *, __VALIST)); 162int _EXFUN(wprintf, (const wchar_t *, ...)); 163 164int _EXFUN(_fwprintf_r, (struct _reent *, __FILE *, const wchar_t *, ...)); 165int _EXFUN(_swprintf_r, (struct _reent *, wchar_t *, size_t, const wchar_t *, ...)); 166int _EXFUN(_vfwprintf_r, (struct _reent *, __FILE *, const wchar_t *, __VALIST)); 167int _EXFUN(_vswprintf_r, (struct _reent *, wchar_t *, size_t, const wchar_t *, __VALIST)); 168int _EXFUN(_vwprintf_r, (struct _reent *, const wchar_t *, __VALIST)); 169int _EXFUN(_wprintf_r, (struct _reent *, const wchar_t *, ...)); 170 171int _EXFUN(fwscanf, (__FILE *, const wchar_t *, ...)); 172int _EXFUN(swscanf, (const wchar_t *, const wchar_t *, ...)); 173int _EXFUN(vfwscanf, (__FILE *, const wchar_t *, __VALIST)); 174int _EXFUN(vswscanf, (const wchar_t *, const wchar_t *, __VALIST)); 175int _EXFUN(vwscanf, (const wchar_t *, __VALIST)); 176int _EXFUN(wscanf, (const wchar_t *, ...)); 177 178int _EXFUN(_fwscanf_r, (struct _reent *, __FILE *, const wchar_t *, ...)); 179int _EXFUN(_swscanf_r, (struct _reent *, const wchar_t *, const wchar_t *, ...)); 180int _EXFUN(_vfwscanf_r, (struct _reent *, __FILE *, const wchar_t *, __VALIST)); 181int _EXFUN(_vswscanf_r, (struct _reent *, const wchar_t *, const wchar_t *, __VALIST)); 182int _EXFUN(_vwscanf_r, (struct _reent *, const wchar_t *, __VALIST)); 183int _EXFUN(_wscanf_r, (struct _reent *, const wchar_t *, ...)); 184 185#define getwc(fp) fgetwc(fp) 186#define putwc(wc,fp) fputwc((wc), (fp)) 187#define getwchar() fgetwc(_REENT->_stdin) 188#define putwchar(wc) fputwc((wc), _REENT->_stdout) 189 190_END_STD_C 191 192#endif /* _WCHAR_H_ */ 193