status-go/vendor/modernc.org/libc/freebsd/table.cpp.c

4102 lines
91 KiB
C
Raw Normal View History

2024-03-07 11:42:38 +00:00
// +build ingore
// # @(#)COPYRIGHT 8.2 (Berkeley) 3/21/94
//
// The compilation of software known as FreeBSD is distributed under the
// following terms:
//
// Copyright (c) 1992-2021 The FreeBSD Project.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
// SUCH DAMAGE.
//
// The 4.4BSD and 4.4BSD-Lite software is distributed under the following
// terms:
//
// All of the documentation and software included in the 4.4BSD and 4.4BSD-Lite
// Releases is copyrighted by The Regents of the University of California.
//
// Copyright 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
// The Regents of the University of California. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. All advertising materials mentioning features or use of this software
// must display the following acknowledgement:
// This product includes software developed by the University of
// California, Berkeley and its contributors.
// 4. Neither the name of the University nor the names of its contributors
// may be used to endorse or promote products derived from this software
// without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
// SUCH DAMAGE.
//
// The Institute of Electrical and Electronics Engineers and the American
// National Standards Committee X3, on Information Processing Systems have
// given us permission to reprint portions of their documentation.
//
// In the following statement, the phrase ``this text'' refers to portions
// of the system documentation.
//
// Portions of this text are reprinted and reproduced in electronic form in
// the second BSD Networking Software Release, from IEEE Std 1003.1-1988, IEEE
// Standard Portable Operating System Interface for Computer Environments
// (POSIX), copyright C 1988 by the Institute of Electrical and Electronics
// Engineers, Inc. In the event of any discrepancy between these versions
// and the original IEEE Standard, the original IEEE Standard is the referee
// document.
//
// In the following statement, the phrase ``This material'' refers to portions
// of the system documentation.
//
// This material is reproduced with permission from American National
// Standards Committee X3, on Information Processing Systems. Computer and
// Business Equipment Manufacturers Association (CBEMA), 311 First St., NW,
// Suite 500, Washington, DC 20001-2178. The developmental work of
// Programming Language C was completed by the X3J11 Technical Committee.
//
// The views and conclusions contained in the software and documentation are
// those of the authors and should not be interpreted as representing official
// policies, either expressed or implied, of the Regents of the University
// of California.
//
//
// NOTE: The copyright of UC Berkeley's Berkeley Software Distribution ("BSD")
// source has been updated. The copyright addendum may be found at
// ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change and is
// included below.
//
// July 22, 1999
//
// To All Licensees, Distributors of Any Version of BSD:
//
// As you know, certain of the Berkeley Software Distribution ("BSD") source
// code files require that further distributions of products containing all or
// portions of the software, acknowledge within their advertising materials
// that such products contain software developed by UC Berkeley and its
// contributors.
//
// Specifically, the provision reads:
//
// " * 3. All advertising materials mentioning features or use of this software
// * must display the following acknowledgement:
// * This product includes software developed by the University of
// * California, Berkeley and its contributors."
//
// Effective immediately, licensees and distributors are no longer required to
// include the acknowledgement within advertising materials. Accordingly, the
// foregoing paragraph of those BSD Unix files containing it is hereby deleted
// in its entirety.
//
// William Hoskins
// Director, Office of Technology Licensing
// University of California, Berkeley
// Preprocessed and manualy edited https://github.com/freebsd/freebsd-src/blob/main/lib/libc/locale/table.c
/// __asm__(".ident\t\""
/// "$FreeBSD$"
/// "\"");
///
/// typedef signed char __int8_t;
/// typedef unsigned char __uint8_t;
/// typedef short __int16_t;
/// typedef unsigned short __uint16_t;
/// typedef int __int32_t;
/// typedef unsigned int __uint32_t;
///
/// typedef long __int64_t;
typedef unsigned long __uint64_t;
///
/// typedef __int32_t __clock_t;
/// typedef __int64_t __critical_t;
///
/// typedef double __double_t;
/// typedef float __float_t;
///
/// typedef __int64_t __intfptr_t;
/// typedef __int64_t __intptr_t;
///
/// typedef __int64_t __intmax_t;
/// typedef __int32_t __int_fast8_t;
/// typedef __int32_t __int_fast16_t;
/// typedef __int32_t __int_fast32_t;
/// typedef __int64_t __int_fast64_t;
/// typedef __int8_t __int_least8_t;
/// typedef __int16_t __int_least16_t;
/// typedef __int32_t __int_least32_t;
/// typedef __int64_t __int_least64_t;
///
/// typedef __int64_t __ptrdiff_t;
/// typedef __int64_t __register_t;
/// typedef __int64_t __segsz_t;
typedef __uint64_t __size_t;
/// typedef __int64_t __ssize_t;
/// typedef __int64_t __time_t;
/// typedef __uint64_t __uintfptr_t;
/// typedef __uint64_t __uintptr_t;
///
/// typedef __uint64_t __uintmax_t;
/// typedef __uint32_t __uint_fast8_t;
/// typedef __uint32_t __uint_fast16_t;
/// typedef __uint32_t __uint_fast32_t;
/// typedef __uint64_t __uint_fast64_t;
/// typedef __uint8_t __uint_least8_t;
/// typedef __uint16_t __uint_least16_t;
/// typedef __uint32_t __uint_least32_t;
/// typedef __uint64_t __uint_least64_t;
///
/// typedef __uint64_t __u_register_t;
/// typedef __uint64_t __vm_offset_t;
/// typedef __uint64_t __vm_paddr_t;
/// typedef __uint64_t __vm_size_t;
///
/// typedef int ___wchar_t;
///
/// typedef __int32_t __blksize_t;
/// typedef __int64_t __blkcnt_t;
/// typedef __int32_t __clockid_t;
/// typedef __uint32_t __fflags_t;
/// typedef __uint64_t __fsblkcnt_t;
/// typedef __uint64_t __fsfilcnt_t;
/// typedef __uint32_t __gid_t;
/// typedef __int64_t __id_t;
/// typedef __uint64_t __ino_t;
/// typedef long __key_t;
/// typedef __int32_t __lwpid_t;
/// typedef __uint16_t __mode_t;
/// typedef int __accmode_t;
/// typedef int __nl_item;
/// typedef __uint64_t __nlink_t;
/// typedef __int64_t __off_t;
/// typedef __int64_t __off64_t;
/// typedef __int32_t __pid_t;
/// typedef __int64_t __rlim_t;
///
///
/// typedef __uint8_t __sa_family_t;
/// typedef __uint32_t __socklen_t;
/// typedef long __suseconds_t;
/// typedef struct __timer *__timer_t;
/// typedef struct __mq *__mqd_t;
/// typedef __uint32_t __uid_t;
/// typedef unsigned int __useconds_t;
/// typedef int __cpuwhich_t;
/// typedef int __cpulevel_t;
/// typedef int __cpusetid_t;
/// typedef __int64_t __daddr_t;
///
typedef int __ct_rune_t;
typedef __ct_rune_t __rune_t;
/// typedef __ct_rune_t __wint_t;
///
///
///
/// typedef __uint_least16_t __char16_t;
/// typedef __uint_least32_t __char32_t;
///
///
///
///
///
///
///
/// typedef struct {
/// long long __max_align1 __attribute__((__aligned__(_Alignof(long long))));
///
/// long double __max_align2 __attribute__((__aligned__(_Alignof(long double))));
///
/// } __max_align_t;
///
/// typedef __uint64_t __dev_t;
///
/// typedef __uint32_t __fixpt_t;
///
///
///
///
///
/// typedef union {
/// char __mbstate8[128];
/// __int64_t _mbstateL;
/// } __mbstate_t;
///
/// typedef __uintmax_t __rman_res_t;
///
///
///
///
///
///
/// typedef __builtin_va_list __va_list;
///
///
///
///
///
///
/// typedef __va_list __gnuc_va_list;
///
///
///
///
/// unsigned long ___runetype(__ct_rune_t) __attribute__((__pure__));
/// __ct_rune_t ___tolower(__ct_rune_t) __attribute__((__pure__));
/// __ct_rune_t ___toupper(__ct_rune_t) __attribute__((__pure__));
///
///
/// extern int __mb_sb_limit;
typedef struct {
__rune_t __min;
__rune_t __max;
__rune_t __map;
unsigned long *__types;
} _RuneEntry;
typedef struct {
int __nranges;
_RuneEntry *__ranges;
} _RuneRange;
typedef struct {
char __magic[8];
char __encoding[32];
__rune_t (*__sgetrune)(const char *, __size_t, char const **);
int (*__sputrune)(__rune_t, char *, __size_t, char **);
__rune_t __invalid_rune;
unsigned long __runetype[(1 <<8 )];
__rune_t __maplower[(1 <<8 )];
__rune_t __mapupper[(1 <<8 )];
_RuneRange __runetype_ext;
_RuneRange __maplower_ext;
_RuneRange __mapupper_ext;
void *__variable;
int __variable_len;
} _RuneLocale;
///
/// extern const _RuneLocale _DefaultRuneLocale;
/// extern const _RuneLocale *_CurrentRuneLocale;
///
///
///
/// extern _Thread_local const _RuneLocale *_ThreadRuneLocale;
/// static __inline const _RuneLocale *__getCurrentRuneLocale(void)
/// {
///
/// if (_ThreadRuneLocale)
/// return _ThreadRuneLocale;
/// return _CurrentRuneLocale;
/// }
///
///
///
///
///
/// static __inline int
/// __maskrune(__ct_rune_t _c, unsigned long _f)
/// {
/// return ((_c < 0 || _c >= (1 <<8 )) ? ___runetype(_c) :
/// (__getCurrentRuneLocale())->__runetype[_c]) & _f;
/// }
///
/// static __inline int
/// __sbmaskrune(__ct_rune_t _c, unsigned long _f)
/// {
/// return (_c < 0 || _c >= __mb_sb_limit) ? 0 :
/// (__getCurrentRuneLocale())->__runetype[_c] & _f;
/// }
///
/// static __inline int
/// __istype(__ct_rune_t _c, unsigned long _f)
/// {
/// return (!!__maskrune(_c, _f));
/// }
///
/// static __inline int
/// __sbistype(__ct_rune_t _c, unsigned long _f)
/// {
/// return (!!__sbmaskrune(_c, _f));
/// }
///
/// static __inline int
/// __isctype(__ct_rune_t _c, unsigned long _f)
/// {
/// return (_c < 0 || _c >= 128) ? 0 :
/// !!(_DefaultRuneLocale.__runetype[_c] & _f);
/// }
///
/// static __inline __ct_rune_t
/// __toupper(__ct_rune_t _c)
/// {
/// return (_c < 0 || _c >= (1 <<8 )) ? ___toupper(_c) :
/// (__getCurrentRuneLocale())->__mapupper[_c];
/// }
///
/// static __inline __ct_rune_t
/// __sbtoupper(__ct_rune_t _c)
/// {
/// return (_c < 0 || _c >= __mb_sb_limit) ? _c :
/// (__getCurrentRuneLocale())->__mapupper[_c];
/// }
///
/// static __inline __ct_rune_t
/// __tolower(__ct_rune_t _c)
/// {
/// return (_c < 0 || _c >= (1 <<8 )) ? ___tolower(_c) :
/// (__getCurrentRuneLocale())->__maplower[_c];
/// }
///
/// static __inline __ct_rune_t
/// __sbtolower(__ct_rune_t _c)
/// {
/// return (_c < 0 || _c >= __mb_sb_limit) ? _c :
/// (__getCurrentRuneLocale())->__maplower[_c];
/// }
///
/// static __inline int
/// __wcwidth(__ct_rune_t _c)
/// {
/// unsigned int _x;
///
/// if (_c == 0)
/// return (0);
/// _x = (unsigned int)__maskrune(_c, 0xe0000000L|0x00040000L);
/// if ((_x & 0xe0000000L) != 0)
/// return ((_x & 0xe0000000L) >> 30);
/// return ((_x & 0x00040000L) != 0 ? 1 : -1);
/// }
///
///
///
/// int isalnum(int);
/// int isalpha(int);
/// int iscntrl(int);
/// int isdigit(int);
/// int isgraph(int);
/// int islower(int);
/// int isprint(int);
/// int ispunct(int);
/// int isspace(int);
/// int isupper(int);
/// int isxdigit(int);
/// int tolower(int);
/// int toupper(int);
///
///
/// int isascii(int);
/// int toascii(int);
///
///
///
/// int isblank(int);
///
///
///
/// int digittoint(int);
/// int ishexnumber(int);
/// int isideogram(int);
/// int isnumber(int);
/// int isphonogram(int);
/// int isrune(int);
/// int isspecial(int);
///
///
///
///
///
/// typedef struct _xlocale *locale_t;
///
///
///
///
/// unsigned long ___runetype_l(__ct_rune_t, locale_t) __attribute__((__pure__));
/// __ct_rune_t ___tolower_l(__ct_rune_t, locale_t) __attribute__((__pure__));
/// __ct_rune_t ___toupper_l(__ct_rune_t, locale_t) __attribute__((__pure__));
/// _RuneLocale *__runes_for_locale(locale_t, int*);
///
/// inline int
/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc);
/// inline int
/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc);
///
/// inline int
/// __sbmaskrune_l(__ct_rune_t __c, unsigned long __f, locale_t __loc)
/// {
/// int __limit;
/// _RuneLocale *runes = __runes_for_locale(__loc, &__limit);
/// return (__c < 0 || __c >= __limit) ? 0 :
/// runes->__runetype[__c] & __f;
/// }
///
/// inline int
/// __sbistype_l(__ct_rune_t __c, unsigned long __f, locale_t __loc)
/// {
/// return (!!__sbmaskrune_l(__c, __f, __loc));
/// }
///
///
///
///
///
///
///
/// inline int isalnum_l(int, locale_t); inline int isalnum_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L|0x00000400L|0x00400000L, __l); }
/// inline int isalpha_l(int, locale_t); inline int isalpha_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000100L, __l); }
/// inline int isblank_l(int, locale_t); inline int isblank_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00020000L, __l); }
/// inline int iscntrl_l(int, locale_t); inline int iscntrl_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000200L, __l); }
/// inline int isdigit_l(int, locale_t); inline int isdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L, __l); }
/// inline int isgraph_l(int, locale_t); inline int isgraph_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000800L, __l); }
/// inline int ishexnumber_l(int, locale_t); inline int ishexnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); }
/// inline int isideogram_l(int, locale_t); inline int isideogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00080000L, __l); }
/// inline int islower_l(int, locale_t); inline int islower_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00001000L, __l); }
/// inline int isnumber_l(int, locale_t); inline int isnumber_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00000400L|0x00400000L, __l); }
/// inline int isphonogram_l(int, locale_t); inline int isphonogram_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00200000L, __l); }
/// inline int isprint_l(int, locale_t); inline int isprint_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00040000L, __l); }
/// inline int ispunct_l(int, locale_t); inline int ispunct_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00002000L, __l); }
/// inline int isrune_l(int, locale_t); inline int isrune_l(int __c, locale_t __l) { return __sbistype_l(__c, 0xFFFFFF00L, __l); }
/// inline int isspace_l(int, locale_t); inline int isspace_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00004000L, __l); }
/// inline int isspecial_l(int, locale_t); inline int isspecial_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00100000L, __l); }
/// inline int isupper_l(int, locale_t); inline int isupper_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00008000L, __l); }
/// inline int isxdigit_l(int, locale_t); inline int isxdigit_l(int __c, locale_t __l) { return __sbistype_l(__c, 0x00010000L, __l); }
///
/// inline int digittoint_l(int, locale_t);
/// inline int tolower_l(int, locale_t);
/// inline int toupper_l(int, locale_t);
///
/// inline int digittoint_l(int __c, locale_t __l)
/// { return __sbmaskrune_l((__c), 0xFF, __l); }
///
/// inline int tolower_l(int __c, locale_t __l)
/// {
/// int __limit;
/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit);
/// return (__c < 0 || __c >= __limit) ? __c :
/// __runes->__maplower[__c];
/// }
/// inline int toupper_l(int __c, locale_t __l)
/// {
/// int __limit;
/// _RuneLocale *__runes = __runes_for_locale(__l, &__limit);
/// return (__c < 0 || __c >= __limit) ? __c :
/// __runes->__mapupper[__c];
/// }
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
/// typedef __mbstate_t mbstate_t;
///
///
///
///
/// typedef __size_t size_t;
///
///
///
///
///
/// typedef __va_list va_list;
///
///
///
///
///
///
/// typedef ___wchar_t wchar_t;
///
///
///
///
///
/// typedef __wint_t wint_t;
///
/// typedef struct __sFILE FILE;
///
/// struct tm;
///
///
/// wint_t btowc(int);
/// wint_t fgetwc(FILE *);
/// wchar_t *
/// fgetws(wchar_t * restrict, int, FILE * restrict);
/// wint_t fputwc(wchar_t, FILE *);
/// int fputws(const wchar_t * restrict, FILE * restrict);
/// int fwide(FILE *, int);
/// int fwprintf(FILE * restrict, const wchar_t * restrict, ...);
/// int fwscanf(FILE * restrict, const wchar_t * restrict, ...);
/// wint_t getwc(FILE *);
/// wint_t getwchar(void);
/// size_t mbrlen(const char * restrict, size_t, mbstate_t * restrict);
/// size_t mbrtowc(wchar_t * restrict, const char * restrict, size_t,
/// mbstate_t * restrict);
/// int mbsinit(const mbstate_t *);
/// size_t mbsrtowcs(wchar_t * restrict, const char ** restrict, size_t,
/// mbstate_t * restrict);
/// wint_t putwc(wchar_t, FILE *);
/// wint_t putwchar(wchar_t);
/// int swprintf(wchar_t * restrict, size_t n, const wchar_t * restrict,
/// ...);
/// int swscanf(const wchar_t * restrict, const wchar_t * restrict, ...);
/// wint_t ungetwc(wint_t, FILE *);
/// int vfwprintf(FILE * restrict, const wchar_t * restrict,
/// __va_list);
/// int vswprintf(wchar_t * restrict, size_t n, const wchar_t * restrict,
/// __va_list);
/// int vwprintf(const wchar_t * restrict, __va_list);
/// size_t wcrtomb(char * restrict, wchar_t, mbstate_t * restrict);
/// wchar_t *wcscat(wchar_t * restrict, const wchar_t * restrict);
/// wchar_t *wcschr(const wchar_t *, wchar_t) __attribute__((__pure__));
/// int wcscmp(const wchar_t *, const wchar_t *) __attribute__((__pure__));
/// int wcscoll(const wchar_t *, const wchar_t *);
/// wchar_t *wcscpy(wchar_t * restrict, const wchar_t * restrict);
/// size_t wcscspn(const wchar_t *, const wchar_t *) __attribute__((__pure__));
/// size_t wcsftime(wchar_t * restrict, size_t, const wchar_t * restrict,
/// const struct tm * restrict);
/// size_t wcslen(const wchar_t *) __attribute__((__pure__));
/// wchar_t *wcsncat(wchar_t * restrict, const wchar_t * restrict,
/// size_t);
/// int wcsncmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__));
/// wchar_t *wcsncpy(wchar_t * restrict , const wchar_t * restrict, size_t);
/// wchar_t *wcspbrk(const wchar_t *, const wchar_t *) __attribute__((__pure__));
/// wchar_t *wcsrchr(const wchar_t *, wchar_t) __attribute__((__pure__));
/// size_t wcsrtombs(char * restrict, const wchar_t ** restrict, size_t,
/// mbstate_t * restrict);
/// size_t wcsspn(const wchar_t *, const wchar_t *) __attribute__((__pure__));
/// wchar_t *wcsstr(const wchar_t * restrict, const wchar_t * restrict)
/// __attribute__((__pure__));
/// size_t wcsxfrm(wchar_t * restrict, const wchar_t * restrict, size_t);
/// int wctob(wint_t);
/// double wcstod(const wchar_t * restrict, wchar_t ** restrict);
/// wchar_t *wcstok(wchar_t * restrict, const wchar_t * restrict,
/// wchar_t ** restrict);
/// long wcstol(const wchar_t * restrict, wchar_t ** restrict, int);
/// unsigned long
/// wcstoul(const wchar_t * restrict, wchar_t ** restrict, int);
/// wchar_t *wmemchr(const wchar_t *, wchar_t, size_t) __attribute__((__pure__));
/// int wmemcmp(const wchar_t *, const wchar_t *, size_t) __attribute__((__pure__));
/// wchar_t *wmemcpy(wchar_t * restrict, const wchar_t * restrict, size_t);
/// wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
/// wchar_t *wmemset(wchar_t *, wchar_t, size_t);
/// int wprintf(const wchar_t * restrict, ...);
/// int wscanf(const wchar_t * restrict, ...);
///
///
/// extern FILE *__stdinp;
/// extern FILE *__stdoutp;
/// extern FILE *__stderrp;
///
/// int vfwscanf(FILE * restrict, const wchar_t * restrict,
/// __va_list);
/// int vswscanf(const wchar_t * restrict, const wchar_t * restrict,
/// __va_list);
/// int vwscanf(const wchar_t * restrict, __va_list);
/// float wcstof(const wchar_t * restrict, wchar_t ** restrict);
/// long double
/// wcstold(const wchar_t * restrict, wchar_t ** restrict);
///
///
/// long long
/// wcstoll(const wchar_t * restrict, wchar_t ** restrict, int);
///
/// unsigned long long
/// wcstoull(const wchar_t * restrict, wchar_t ** restrict, int);
///
///
///
///
/// int wcswidth(const wchar_t *, size_t);
/// int wcwidth(wchar_t);
///
///
///
///
/// size_t mbsnrtowcs(wchar_t * restrict, const char ** restrict, size_t,
/// size_t, mbstate_t * restrict);
/// FILE *open_wmemstream(wchar_t **, size_t *);
/// wchar_t *wcpcpy(wchar_t * restrict, const wchar_t * restrict);
/// wchar_t *wcpncpy(wchar_t * restrict, const wchar_t * restrict, size_t);
/// wchar_t *wcsdup(const wchar_t *) __attribute__((__malloc__));
/// int wcscasecmp(const wchar_t *, const wchar_t *);
/// int wcsncasecmp(const wchar_t *, const wchar_t *, size_t n);
/// size_t wcsnlen(const wchar_t *, size_t) __attribute__((__pure__));
/// size_t wcsnrtombs(char * restrict, const wchar_t ** restrict, size_t,
/// size_t, mbstate_t * restrict);
///
///
///
/// wchar_t *fgetwln(FILE * restrict, size_t * restrict);
/// size_t wcslcat(wchar_t *, const wchar_t *, size_t);
/// size_t wcslcpy(wchar_t *, const wchar_t *, size_t);
///
///
///
///
///
/// int wcscasecmp_l(const wchar_t *, const wchar_t *,
/// locale_t);
/// int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t,
/// locale_t);
/// int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
/// size_t wcsxfrm_l(wchar_t * restrict,
/// const wchar_t * restrict, size_t, locale_t);
///
///
///
///
///
///
///
///
///
///
///
///
/// struct lconv {
/// char *decimal_point;
/// char *thousands_sep;
/// char *grouping;
/// char *int_curr_symbol;
/// char *currency_symbol;
/// char *mon_decimal_point;
/// char *mon_thousands_sep;
/// char *mon_grouping;
/// char *positive_sign;
/// char *negative_sign;
/// char int_frac_digits;
/// char frac_digits;
/// char p_cs_precedes;
/// char p_sep_by_space;
/// char n_cs_precedes;
/// char n_sep_by_space;
/// char p_sign_posn;
/// char n_sign_posn;
/// char int_p_cs_precedes;
/// char int_n_cs_precedes;
/// char int_p_sep_by_space;
/// char int_n_sep_by_space;
/// char int_p_sign_posn;
/// char int_n_sign_posn;
/// };
///
///
/// struct lconv *localeconv(void);
/// char *setlocale(int, const char *);
///
///
///
///
/// locale_t duplocale(locale_t base);
/// void freelocale(locale_t loc);
/// locale_t newlocale(int mask, const char *locale, locale_t base);
/// const char *querylocale(int mask, locale_t loc);
/// locale_t uselocale(locale_t loc);
///
///
///
///
///
///
///
///
///
///
///
/// wint_t btowc_l(int, locale_t);
/// wint_t fgetwc_l(FILE *, locale_t);
/// wchar_t *fgetws_l(wchar_t * restrict, int, FILE * restrict,
/// locale_t);
/// wint_t fputwc_l(wchar_t, FILE *, locale_t);
/// int fputws_l(const wchar_t * restrict, FILE * restrict,
/// locale_t);
/// int fwprintf_l(FILE * restrict, locale_t,
/// const wchar_t * restrict, ...);
/// int fwscanf_l(FILE * restrict, locale_t,
/// const wchar_t * restrict, ...);
/// wint_t getwc_l(FILE *, locale_t);
/// wint_t getwchar_l(locale_t);
/// size_t mbrlen_l(const char * restrict, size_t,
/// mbstate_t * restrict, locale_t);
/// size_t mbrtowc_l(wchar_t * restrict,
/// const char * restrict, size_t,
/// mbstate_t * restrict, locale_t);
/// int mbsinit_l(const mbstate_t *, locale_t);
/// size_t mbsrtowcs_l(wchar_t * restrict,
/// const char ** restrict, size_t,
/// mbstate_t * restrict, locale_t);
/// wint_t putwc_l(wchar_t, FILE *, locale_t);
/// wint_t putwchar_l(wchar_t, locale_t);
/// int swprintf_l(wchar_t * restrict, size_t n, locale_t,
/// const wchar_t * restrict, ...);
/// int swscanf_l(const wchar_t * restrict, locale_t,
/// const wchar_t * restrict, ...);
/// wint_t ungetwc_l(wint_t, FILE *, locale_t);
/// int vfwprintf_l(FILE * restrict, locale_t,
/// const wchar_t * restrict, __va_list);
/// int vswprintf_l(wchar_t * restrict, size_t n, locale_t,
/// const wchar_t * restrict, __va_list);
/// int vwprintf_l(locale_t, const wchar_t * restrict,
/// __va_list);
/// size_t wcrtomb_l(char * restrict, wchar_t,
/// mbstate_t * restrict, locale_t);
/// size_t wcsftime_l(wchar_t * restrict, size_t,
/// const wchar_t * restrict,
/// const struct tm * restrict, locale_t);
/// size_t wcsrtombs_l(char * restrict,
/// const wchar_t ** restrict, size_t,
/// mbstate_t * restrict, locale_t);
/// double wcstod_l(const wchar_t * restrict,
/// wchar_t ** restrict, locale_t);
/// long wcstol_l(const wchar_t * restrict,
/// wchar_t ** restrict, int, locale_t);
/// unsigned long wcstoul_l(const wchar_t * restrict,
/// wchar_t ** restrict, int, locale_t);
/// int wcswidth_l(const wchar_t *, size_t, locale_t);
/// int wctob_l(wint_t, locale_t);
/// int wcwidth_l(wchar_t, locale_t);
/// int wprintf_l(locale_t, const wchar_t * restrict, ...);
/// int wscanf_l(locale_t, const wchar_t * restrict, ...);
/// int vfwscanf_l(FILE * restrict, locale_t,
/// const wchar_t * restrict, __va_list);
/// int vswscanf_l(const wchar_t * restrict, locale_t,
/// const wchar_t *restrict, __va_list);
/// int vwscanf_l(locale_t, const wchar_t * restrict,
/// __va_list);
/// float wcstof_l(const wchar_t * restrict,
/// wchar_t ** restrict, locale_t);
/// long double wcstold_l(const wchar_t * restrict,
/// wchar_t ** restrict, locale_t);
/// long long wcstoll_l(const wchar_t * restrict,
/// wchar_t ** restrict, int, locale_t);
/// unsigned long long wcstoull_l(const wchar_t * restrict,
/// wchar_t ** restrict, int, locale_t);
/// size_t mbsnrtowcs_l(wchar_t * restrict,
/// const char ** restrict, size_t, size_t,
/// mbstate_t * restrict, locale_t);
/// size_t wcsnrtombs_l(char * restrict,
/// const wchar_t ** restrict, size_t, size_t,
/// mbstate_t * restrict, locale_t);
///
///
///
///
///
/// struct lconv *localeconv_l(locale_t);
///
///
///
///
///
///
///
///
///
/// typedef __rune_t rune_t;
///
/// typedef struct {
/// int quot;
/// int rem;
/// } div_t;
///
/// typedef struct {
/// long quot;
/// long rem;
/// } ldiv_t;
///
///
///
///
///
/// double atof_l(const char *, locale_t);
/// int atoi_l(const char *, locale_t);
/// long atol_l(const char *, locale_t);
/// long long atoll_l(const char *, locale_t);
/// int mblen_l(const char *, size_t, locale_t);
/// size_t mbstowcs_l(wchar_t * restrict,
/// const char * restrict, size_t, locale_t);
/// int mbtowc_l(wchar_t * restrict,
/// const char * restrict, size_t, locale_t);
/// double strtod_l(const char *, char **, locale_t);
/// float strtof_l(const char *, char **, locale_t);
/// long strtol_l(const char *, char **, int, locale_t);
/// long double strtold_l(const char *, char **, locale_t);
/// long long strtoll_l(const char *, char **, int, locale_t);
/// unsigned long strtoul_l(const char *, char **, int, locale_t);
/// unsigned long long strtoull_l(const char *, char **, int, locale_t);
/// size_t wcstombs_l(char * restrict,
/// const wchar_t * restrict, size_t, locale_t);
/// int wctomb_l(char *, wchar_t, locale_t);
///
/// int ___mb_cur_max_l(locale_t);
///
///
/// extern int __mb_cur_max;
/// extern int ___mb_cur_max(void);
///
///
/// _Noreturn void abort(void);
/// int abs(int) __attribute__((__const__));
/// int atexit(void (* )(void));
/// double atof(const char *);
/// int atoi(const char *);
/// long atol(const char *);
/// void *bsearch(const void *, const void *, size_t,
/// size_t, int (*)(const void * , const void *));
/// void *calloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__))
/// __attribute__((__alloc_size__(1, 2)));
/// div_t div(int, int) __attribute__((__const__));
/// _Noreturn void exit(int);
/// void free(void *);
/// char *getenv(const char *);
/// long labs(long) __attribute__((__const__));
/// ldiv_t ldiv(long, long) __attribute__((__const__));
/// void *malloc(size_t) __attribute__((__malloc__)) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(1)));
/// int mblen(const char *, size_t);
/// size_t mbstowcs(wchar_t * restrict , const char * restrict, size_t);
/// int mbtowc(wchar_t * restrict, const char * restrict, size_t);
/// void qsort(void *, size_t, size_t,
/// int (* )(const void *, const void *));
/// int rand(void);
/// void *realloc(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2)));
/// void srand(unsigned);
/// double strtod(const char * restrict, char ** restrict);
/// float strtof(const char * restrict, char ** restrict);
/// long strtol(const char * restrict, char ** restrict, int);
/// long double
/// strtold(const char * restrict, char ** restrict);
/// unsigned long
/// strtoul(const char * restrict, char ** restrict, int);
/// int system(const char *);
/// int wctomb(char *, wchar_t);
/// size_t wcstombs(char * restrict, const wchar_t * restrict, size_t);
///
/// typedef struct {
/// long long quot;
/// long long rem;
/// } lldiv_t;
///
///
/// long long
/// atoll(const char *);
///
/// long long
/// llabs(long long) __attribute__((__const__));
///
/// lldiv_t lldiv(long long, long long) __attribute__((__const__));
///
/// long long
/// strtoll(const char * restrict, char ** restrict, int);
///
/// unsigned long long
/// strtoull(const char * restrict, char ** restrict, int);
///
///
/// _Noreturn void _Exit(int);
///
///
///
///
///
///
/// void * aligned_alloc(size_t, size_t) __attribute__((__malloc__)) __attribute__((__alloc_align__(1)))
/// __attribute__((__alloc_size__(2)));
/// int at_quick_exit(void (*)(void));
/// _Noreturn void
/// quick_exit(int);
///
///
///
///
///
/// char *realpath(const char * restrict, char * restrict);
///
///
/// int rand_r(unsigned *);
///
///
/// int posix_memalign(void **, size_t, size_t);
/// int setenv(const char *, const char *, int);
/// int unsetenv(const char *);
///
///
///
/// int getsubopt(char **, char *const *, char **);
///
/// char *mkdtemp(char *);
///
///
///
/// int mkstemp(char *);
///
/// long a64l(const char *);
/// double drand48(void);
///
/// double erand48(unsigned short[3]);
///
///
/// char *initstate(unsigned int, char *, size_t);
/// long jrand48(unsigned short[3]);
/// char *l64a(long);
/// void lcong48(unsigned short[7]);
/// long lrand48(void);
///
/// char *mktemp(char *);
///
///
/// long mrand48(void);
/// long nrand48(unsigned short[3]);
/// int putenv(char *);
/// long random(void);
/// unsigned short
/// *seed48(unsigned short[3]);
/// char *setstate( char *);
/// void srand48(long);
/// void srandom(unsigned int);
///
///
///
/// int grantpt(int);
/// int posix_openpt(int);
/// char *ptsname(int);
/// int unlockpt(int);
///
///
///
/// int ptsname_r(int, char *, size_t);
///
///
///
/// extern const char *malloc_conf;
/// extern void (*malloc_message)(void *, const char *);
///
/// void abort2(const char *, int, void **) __attribute__((__noreturn__));
/// __uint32_t
/// arc4random(void);
/// void arc4random_buf(void *, size_t);
/// __uint32_t
/// arc4random_uniform(__uint32_t);
///
///
///
///
///
///
/// char *getbsize(int *, long *);
///
/// char *cgetcap(char *, const char *, int);
/// int cgetclose(void);
/// int cgetent(char **, char **, const char *);
/// int cgetfirst(char **, char **);
/// int cgetmatch(const char *, const char *);
/// int cgetnext(char **, char **);
/// int cgetnum(char *, const char *, long *);
/// int cgetset(const char *);
/// int cgetstr(char *, const char *, char **);
/// int cgetustr(char *, const char *, char **);
///
/// int daemon(int, int);
/// int daemonfd(int, int);
/// char *devname(__dev_t, __mode_t);
/// char *devname_r(__dev_t, __mode_t, char *, int);
/// char *fdevname(int);
/// char *fdevname_r(int, char *, int);
/// int getloadavg(double [], int);
/// const char *
/// getprogname(void);
///
/// int heapsort(void *, size_t, size_t,
/// int (* )(const void *, const void *));
///
///
///
///
///
///
/// int l64a_r(long, char *, int);
/// int mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
///
///
///
/// int mkostemp(char *, int);
/// int mkostemps(char *, int, int);
/// int mkostempsat(int, char *, int, int);
/// void qsort_r(void *, size_t, size_t, void *,
/// int (*)(void *, const void *, const void *));
/// int radixsort(const unsigned char **, int, const unsigned char *,
/// unsigned);
/// void *reallocarray(void *, size_t, size_t) __attribute__((__warn_unused_result__))
/// __attribute__((__alloc_size__(2, 3)));
/// void *reallocf(void *, size_t) __attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2)));
/// int rpmatch(const char *);
/// void setprogname(const char *);
/// int sradixsort(const unsigned char **, int, const unsigned char *,
/// unsigned);
/// void srandomdev(void);
/// long long
/// strtonum(const char *, long long, long long, const char **);
///
///
/// __int64_t
/// strtoq(const char *, char **, int);
/// __uint64_t
/// strtouq(const char *, char **, int);
///
/// extern char *suboptarg;
///
///
///
///
///
///
/// typedef size_t rsize_t;
///
///
///
///
/// typedef int errno_t;
///
///
///
/// typedef void (*constraint_handler_t)(const char * restrict,
/// void * restrict, errno_t);
///
/// constraint_handler_t set_constraint_handler_s(constraint_handler_t handler);
///
/// _Noreturn void abort_handler_s(const char * restrict, void * restrict,
/// errno_t);
///
/// void ignore_handler_s(const char * restrict, void * restrict, errno_t);
///
/// errno_t qsort_s(void *, rsize_t, rsize_t,
/// int (*)(const void *, const void *, void *), void *);
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
/// typedef __int8_t int8_t;
///
///
///
///
/// typedef __int16_t int16_t;
///
///
///
///
/// typedef __int32_t int32_t;
///
///
///
///
/// typedef __int64_t int64_t;
///
///
///
///
/// typedef __uint8_t uint8_t;
///
///
///
///
/// typedef __uint16_t uint16_t;
///
///
///
///
/// typedef __uint32_t uint32_t;
///
///
///
///
/// typedef __uint64_t uint64_t;
///
///
///
///
/// typedef __intptr_t intptr_t;
///
///
///
/// typedef __uintptr_t uintptr_t;
///
///
///
/// typedef __intmax_t intmax_t;
///
///
///
/// typedef __uintmax_t uintmax_t;
///
///
/// typedef __int_least8_t int_least8_t;
/// typedef __int_least16_t int_least16_t;
/// typedef __int_least32_t int_least32_t;
/// typedef __int_least64_t int_least64_t;
///
/// typedef __uint_least8_t uint_least8_t;
/// typedef __uint_least16_t uint_least16_t;
/// typedef __uint_least32_t uint_least32_t;
/// typedef __uint_least64_t uint_least64_t;
///
/// typedef __int_fast8_t int_fast8_t;
/// typedef __int_fast16_t int_fast16_t;
/// typedef __int_fast32_t int_fast32_t;
/// typedef __int_fast64_t int_fast64_t;
///
/// typedef __uint_fast8_t uint_fast8_t;
/// typedef __uint_fast16_t uint_fast16_t;
/// typedef __uint_fast32_t uint_fast32_t;
/// typedef __uint_fast64_t uint_fast64_t;
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
/// struct pthread;
/// struct pthread_attr;
/// struct pthread_cond;
/// struct pthread_cond_attr;
/// struct pthread_mutex;
/// struct pthread_mutex_attr;
/// struct pthread_once;
/// struct pthread_rwlock;
/// struct pthread_rwlockattr;
/// struct pthread_barrier;
/// struct pthread_barrier_attr;
/// struct pthread_spinlock;
///
/// typedef struct pthread *pthread_t;
///
///
/// typedef struct pthread_attr *pthread_attr_t;
/// typedef struct pthread_mutex *pthread_mutex_t;
/// typedef struct pthread_mutex_attr *pthread_mutexattr_t;
/// typedef struct pthread_cond *pthread_cond_t;
/// typedef struct pthread_cond_attr *pthread_condattr_t;
/// typedef int pthread_key_t;
/// typedef struct pthread_once pthread_once_t;
/// typedef struct pthread_rwlock *pthread_rwlock_t;
/// typedef struct pthread_rwlockattr *pthread_rwlockattr_t;
/// typedef struct pthread_barrier *pthread_barrier_t;
/// typedef struct pthread_barrierattr *pthread_barrierattr_t;
/// typedef struct pthread_spinlock *pthread_spinlock_t;
///
///
///
///
///
///
///
/// typedef void *pthread_addr_t;
/// typedef void *(*pthread_startroutine_t)(void *);
///
///
///
///
/// struct pthread_once {
/// int state;
/// pthread_mutex_t mutex;
/// };
///
///
///
/// typedef unsigned char u_char;
/// typedef unsigned short u_short;
/// typedef unsigned int u_int;
/// typedef unsigned long u_long;
///
/// typedef unsigned short ushort;
/// typedef unsigned int uint;
///
/// typedef __uint8_t u_int8_t;
/// typedef __uint16_t u_int16_t;
/// typedef __uint32_t u_int32_t;
/// typedef __uint64_t u_int64_t;
///
/// typedef __uint64_t u_quad_t;
/// typedef __int64_t quad_t;
/// typedef quad_t * qaddr_t;
///
/// typedef char * caddr_t;
/// typedef const char * c_caddr_t;
///
///
/// typedef __blksize_t blksize_t;
///
///
///
/// typedef __cpuwhich_t cpuwhich_t;
/// typedef __cpulevel_t cpulevel_t;
/// typedef __cpusetid_t cpusetid_t;
///
///
/// typedef __blkcnt_t blkcnt_t;
///
///
///
///
/// typedef __clock_t clock_t;
///
///
///
///
/// typedef __clockid_t clockid_t;
///
///
///
/// typedef __critical_t critical_t;
/// typedef __daddr_t daddr_t;
///
///
/// typedef __dev_t dev_t;
///
///
///
///
/// typedef __fflags_t fflags_t;
///
///
///
/// typedef __fixpt_t fixpt_t;
///
///
/// typedef __fsblkcnt_t fsblkcnt_t;
/// typedef __fsfilcnt_t fsfilcnt_t;
///
///
///
///
/// typedef __gid_t gid_t;
///
///
///
///
/// typedef __uint32_t in_addr_t;
///
///
///
///
/// typedef __uint16_t in_port_t;
///
///
///
///
/// typedef __id_t id_t;
///
///
///
///
/// typedef __ino_t ino_t;
///
///
///
///
/// typedef __key_t key_t;
///
///
///
///
/// typedef __lwpid_t lwpid_t;
///
///
///
///
/// typedef __mode_t mode_t;
///
///
///
///
/// typedef __accmode_t accmode_t;
///
///
///
///
/// typedef __nlink_t nlink_t;
///
///
///
///
/// typedef __off_t off_t;
///
///
///
///
/// typedef __off64_t off64_t;
///
///
///
///
/// typedef __pid_t pid_t;
///
///
///
/// typedef __register_t register_t;
///
///
/// typedef __rlim_t rlim_t;
///
///
///
/// typedef __int64_t sbintime_t;
///
/// typedef __segsz_t segsz_t;
///
///
///
///
///
///
///
/// typedef __ssize_t ssize_t;
///
///
///
///
/// typedef __suseconds_t suseconds_t;
///
///
///
///
/// typedef __time_t time_t;
///
///
///
///
/// typedef __timer_t timer_t;
///
///
///
///
/// typedef __mqd_t mqd_t;
///
///
///
/// typedef __u_register_t u_register_t;
///
///
/// typedef __uid_t uid_t;
///
///
///
///
/// typedef __useconds_t useconds_t;
///
///
///
///
///
/// typedef unsigned long cap_ioctl_t;
///
///
///
///
/// struct cap_rights;
///
/// typedef struct cap_rights cap_rights_t;
///
/// typedef __uint64_t kpaddr_t;
/// typedef __uint64_t kvaddr_t;
/// typedef __uint64_t ksize_t;
/// typedef __int64_t kssize_t;
///
/// typedef __vm_offset_t vm_offset_t;
/// typedef __uint64_t vm_ooffset_t;
/// typedef __vm_paddr_t vm_paddr_t;
/// typedef __uint64_t vm_pindex_t;
/// typedef __vm_size_t vm_size_t;
///
/// typedef __rman_res_t rman_res_t;
///
/// static __inline __uint16_t
/// __bitcount16(__uint16_t _x)
/// {
///
/// _x = (_x & 0x5555) + ((_x & 0xaaaa) >> 1);
/// _x = (_x & 0x3333) + ((_x & 0xcccc) >> 2);
/// _x = (_x + (_x >> 4)) & 0x0f0f;
/// _x = (_x + (_x >> 8)) & 0x00ff;
/// return (_x);
/// }
///
/// static __inline __uint32_t
/// __bitcount32(__uint32_t _x)
/// {
///
/// _x = (_x & 0x55555555) + ((_x & 0xaaaaaaaa) >> 1);
/// _x = (_x & 0x33333333) + ((_x & 0xcccccccc) >> 2);
/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f;
/// _x = (_x + (_x >> 8));
/// _x = (_x + (_x >> 16)) & 0x000000ff;
/// return (_x);
/// }
///
///
/// static __inline __uint64_t
/// __bitcount64(__uint64_t _x)
/// {
///
/// _x = (_x & 0x5555555555555555) + ((_x & 0xaaaaaaaaaaaaaaaa) >> 1);
/// _x = (_x & 0x3333333333333333) + ((_x & 0xcccccccccccccccc) >> 2);
/// _x = (_x + (_x >> 4)) & 0x0f0f0f0f0f0f0f0f;
/// _x = (_x + (_x >> 8));
/// _x = (_x + (_x >> 16));
/// _x = (_x + (_x >> 32)) & 0x000000ff;
/// return (_x);
/// }
///
///
///
///
///
/// typedef struct __sigset {
/// __uint32_t __bits[4];
/// } __sigset_t;
///
///
///
/// struct timeval {
/// time_t tv_sec;
/// suseconds_t tv_usec;
/// };
///
///
///
///
///
/// struct timespec {
/// time_t tv_sec;
/// long tv_nsec;
/// };
///
///
/// struct itimerspec {
/// struct timespec it_interval;
/// struct timespec it_value;
/// };
///
///
/// typedef unsigned long __fd_mask;
///
/// typedef __fd_mask fd_mask;
///
///
///
///
/// typedef __sigset_t sigset_t;
///
/// typedef struct fd_set {
/// __fd_mask __fds_bits[(((1024) + (((sizeof(__fd_mask) * 8)) - 1)) / ((sizeof(__fd_mask) * 8)))];
/// } fd_set;
///
///
/// int pselect(int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
/// const struct timespec *restrict, const sigset_t *restrict);
///
///
///
/// int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
///
///
///
///
/// static __inline int
/// __major(dev_t _d)
/// {
/// return (((_d >> 32) & 0xffffff00) | ((_d >> 8) & 0xff));
/// }
///
/// static __inline int
/// __minor(dev_t _d)
/// {
/// return (((_d >> 24) & 0xff00) | (_d & 0xffff00ff));
/// }
///
/// static __inline dev_t
/// __makedev(int _Major, int _Minor)
/// {
/// return (((dev_t)(_Major & 0xffffff00) << 32) | ((_Major & 0xff) << 8) |
/// ((dev_t)(_Minor & 0xff00) << 24) | (_Minor & 0xffff00ff));
/// }
///
///
///
///
///
///
///
///
///
///
/// int ftruncate(int, off_t);
///
///
///
/// off_t lseek(int, off_t, int);
///
///
///
/// void * mmap(void *, size_t, int, int, int, off_t);
///
///
///
/// int truncate(const char *, off_t);
///
///
///
///
///
///
///
///
/// static __inline int atomic_cmpset_char(volatile u_char *dst, u_char expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_char(volatile u_char *dst, u_char *expect, u_char src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "char" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
/// static __inline int atomic_cmpset_short(volatile u_short *dst, u_short expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_short(volatile u_short *dst, u_short *expect, u_short src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "short" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
/// static __inline int atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_int(volatile u_int *dst, u_int *expect, u_int src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "int" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
/// static __inline int atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_cmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (expect) : "r" (src) : "memory", "cc"); return (res); } static __inline int atomic_fcmpset_long(volatile u_long *dst, u_long *expect, u_long src) { u_char res; __asm volatile( " " "lock ; " " " " cmpxchg %3,%1 ; " "# atomic_fcmpset_" "long" " " : "=@cce" (res), "+m" (*dst), "+a" (*expect) : "r" (src) : "memory", "cc"); return (res); };
///
///
///
///
///
/// static __inline u_int
/// atomic_fetchadd_int(volatile u_int *p, u_int v)
/// {
///
/// __asm volatile(
/// " " "lock ; " " "
/// " xaddl %0,%1 ; "
/// "# atomic_fetchadd_int"
/// : "+r" (v),
/// "+m" (*p)
/// : : "cc");
/// return (v);
/// }
///
///
///
///
///
/// static __inline u_long
/// atomic_fetchadd_long(volatile u_long *p, u_long v)
/// {
///
/// __asm volatile(
/// " " "lock ; " " "
/// " xaddq %0,%1 ; "
/// "# atomic_fetchadd_long"
/// : "+r" (v),
/// "+m" (*p)
/// : : "cc");
/// return (v);
/// }
///
/// static __inline int
/// atomic_testandset_int(volatile u_int *p, u_int v)
/// {
/// u_char res;
///
/// __asm volatile(
/// " " "lock ; " " "
/// " btsl %2,%1 ; "
/// "# atomic_testandset_int"
/// : "=@ccc" (res),
/// "+m" (*p)
/// : "Ir" (v & 0x1f)
/// : "cc");
/// return (res);
/// }
///
/// static __inline int
/// atomic_testandset_long(volatile u_long *p, u_int v)
/// {
/// u_char res;
///
/// __asm volatile(
/// " " "lock ; " " "
/// " btsq %2,%1 ; "
/// "# atomic_testandset_long"
/// : "=@ccc" (res),
/// "+m" (*p)
/// : "Jr" ((u_long)(v & 0x3f))
/// : "cc");
/// return (res);
/// }
///
/// static __inline int
/// atomic_testandclear_int(volatile u_int *p, u_int v)
/// {
/// u_char res;
///
/// __asm volatile(
/// " " "lock ; " " "
/// " btrl %2,%1 ; "
/// "# atomic_testandclear_int"
/// : "=@ccc" (res),
/// "+m" (*p)
/// : "Ir" (v & 0x1f)
/// : "cc");
/// return (res);
/// }
///
/// static __inline int
/// atomic_testandclear_long(volatile u_long *p, u_int v)
/// {
/// u_char res;
///
/// __asm volatile(
/// " " "lock ; " " "
/// " btrq %2,%1 ; "
/// "# atomic_testandclear_long"
/// : "=@ccc" (res),
/// "+m" (*p)
/// : "Jr" ((u_long)(v & 0x3f))
/// : "cc");
/// return (res);
/// }
///
/// static __inline void
/// __storeload_barrier(void)
/// {
///
/// __asm volatile("lock; addl $0,-8(%%rsp)" : : : "memory", "cc");
/// }
///
/// static __inline void
/// atomic_thread_fence_acq(void)
/// {
///
/// __asm volatile(" " : : : "memory");
/// }
///
/// static __inline void
/// atomic_thread_fence_rel(void)
/// {
///
/// __asm volatile(" " : : : "memory");
/// }
///
/// static __inline void
/// atomic_thread_fence_acq_rel(void)
/// {
///
/// __asm volatile(" " : : : "memory");
/// }
///
/// static __inline void
/// atomic_thread_fence_seq_cst(void)
/// {
///
/// __storeload_barrier();
/// }
///
///
///
/// static __inline void atomic_set_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_set_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "orb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_clear_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "cc"); } static __inline void atomic_clear_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "andb %b1,%0" : "+m" (*p) : "iq" (~v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_add_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_add_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "addb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_subtract_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "cc"); } static __inline void atomic_subtract_barr_char(volatile u_char *p, u_char v){ __asm volatile("lock ; " "subb %b1,%0" : "+m" (*p) : "iq" (v) : "memory", "cc"); } struct __hack;
///
/// static __inline void atomic_set_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "orw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_clear_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "andw %w1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_add_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "addw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_subtract_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_short(volatile u_short *p, u_short v){ __asm volatile("lock ; " "subw %w1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
///
/// static __inline void atomic_set_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_set_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "orl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_clear_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "cc"); } static __inline void atomic_clear_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "andl %1,%0" : "+m" (*p) : "ir" (~v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_add_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_add_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "addl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_subtract_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "cc"); } static __inline void atomic_subtract_barr_int(volatile u_int *p, u_int v){ __asm volatile("lock ; " "subl %1,%0" : "+m" (*p) : "ir" (v) : "memory", "cc"); } struct __hack;
///
/// static __inline void atomic_set_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_set_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "orq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_clear_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "cc"); } static __inline void atomic_clear_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "andq %1,%0" : "+m" (*p) : "er" (~v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_add_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_add_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "addq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
/// static __inline void atomic_subtract_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "cc"); } static __inline void atomic_subtract_barr_long(volatile u_long *p, u_long v){ __asm volatile("lock ; " "subq %1,%0" : "+m" (*p) : "er" (v) : "memory", "cc"); } struct __hack;
///
///
///
///
///
/// static __inline u_char atomic_load_acq_char(volatile u_char *p) { u_char res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_char(volatile u_char *p, u_char v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
/// static __inline u_short atomic_load_acq_short(volatile u_short *p) { u_short res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_short(volatile u_short *p, u_short v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
/// static __inline u_int atomic_load_acq_int(volatile u_int *p) { u_int res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_int(volatile u_int *p, u_int v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
/// static __inline u_long atomic_load_acq_long(volatile u_long *p) { u_long res; res = *p; __asm volatile(" " : : : "memory"); return (res); } struct __hack; static __inline void atomic_store_rel_long(volatile u_long *p, u_long v) { __asm volatile(" " : : : "memory"); *p = v; } struct __hack;
///
/// static __inline u_int
/// atomic_swap_int(volatile u_int *p, u_int v)
/// {
///
/// __asm volatile(
/// " xchgl %1,%0 ; "
/// "# atomic_swap_int"
/// : "+r" (v),
/// "+m" (*p));
/// return (v);
/// }
///
/// static __inline u_long
/// atomic_swap_long(volatile u_long *p, u_long v)
/// {
///
/// __asm volatile(
/// " xchgq %1,%0 ; "
/// "# atomic_swap_long"
/// : "+r" (v),
/// "+m" (*p));
/// return (v);
/// }
///
///
///
///
///
/// extern char *_PathLocale;
///
/// int __detect_path_locale(void);
/// int __wrap_setrunelocale(const char *);
///
///
/// enum {
/// XLC_COLLATE = 0,
/// XLC_CTYPE,
/// XLC_MONETARY,
/// XLC_NUMERIC,
/// XLC_TIME,
/// XLC_MESSAGES,
/// XLC_LAST
/// };
///
/// _Static_assert(XLC_LAST - XLC_COLLATE == 6, "XLC values should be contiguous");
/// _Static_assert(XLC_COLLATE ==
///
/// 1
///
/// - 1,
/// "XLC_COLLATE doesn't match the LC_COLLATE value.");
/// _Static_assert(XLC_CTYPE ==
///
/// 2
///
/// - 1,
/// "XLC_CTYPE doesn't match the LC_CTYPE value.");
/// _Static_assert(XLC_MONETARY ==
///
/// 3
///
/// - 1,
/// "XLC_MONETARY doesn't match the LC_MONETARY value.");
/// _Static_assert(XLC_NUMERIC ==
///
/// 4
///
/// - 1,
/// "XLC_NUMERIC doesn't match the LC_NUMERIC value.");
/// _Static_assert(XLC_TIME ==
///
/// 5
///
/// - 1,
/// "XLC_TIME doesn't match the LC_TIME value.");
/// _Static_assert(XLC_MESSAGES ==
///
/// 6
///
/// - 1,
/// "XLC_MESSAGES doesn't match the LC_MESSAGES value.");
///
/// struct xlocale_refcounted {
///
/// long retain_count;
///
/// void(*destructor)(void*);
/// };
///
///
///
///
///
///
///
/// struct xlocale_component {
/// struct xlocale_refcounted header;
///
/// char locale[31 +1];
///
/// char version[12];
/// };
///
///
///
///
/// struct _xlocale {
/// struct xlocale_refcounted header;
///
/// struct xlocale_component *components[XLC_LAST];
///
///
/// int monetary_locale_changed;
///
///
/// int using_monetary_locale;
///
///
/// int numeric_locale_changed;
///
///
/// int using_numeric_locale;
///
///
/// int using_time_locale;
///
///
/// int using_messages_locale;
///
/// struct lconv lconv;
///
/// char *csym;
/// };
///
///
///
///
/// __attribute__((unused)) static void*
/// xlocale_retain(void *val)
/// {
/// struct xlocale_refcounted *obj = val;
/// atomic_add_long(&(obj->retain_count), 1);
/// return (val);
/// }
///
///
///
///
/// __attribute__((unused)) static void
/// xlocale_release(void *val)
/// {
/// struct xlocale_refcounted *obj = val;
/// long count;
///
/// count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1;
/// if (count < 0 && obj->destructor !=
///
/// ((void *)0)
///
/// )
/// obj->destructor(obj);
/// }
///
///
///
///
///
/// extern void* __collate_load(const char*, locale_t);
/// extern void* __ctype_load(const char*, locale_t);
/// extern void* __messages_load(const char*, locale_t);
/// extern void* __monetary_load(const char*, locale_t);
/// extern void* __numeric_load(const char*, locale_t);
/// extern void* __time_load(const char*, locale_t);
///
/// extern struct _xlocale __xlocale_global_locale;
/// extern struct _xlocale __xlocale_C_locale;
///
///
///
///
/// void __set_thread_rune_locale(locale_t loc);
///
///
///
///
/// extern int __has_thread_locale;
///
///
///
///
///
/// extern _Thread_local locale_t __thread_locale;
///
///
///
///
///
///
///
/// static inline locale_t __get_locale(void)
/// {
///
/// if (!__has_thread_locale) {
/// return (&__xlocale_global_locale);
/// }
/// return (__thread_locale ? __thread_locale : &__xlocale_global_locale);
/// }
///
///
///
///
///
/// static inline locale_t get_real_locale(locale_t locale)
/// {
/// switch ((intptr_t)locale) {
/// case 0: return (&__xlocale_C_locale);
/// case -1: return (&__xlocale_global_locale);
/// default: return (locale);
/// }
/// }
///
///
///
///
///
///
///
///
/// struct xlocale_ctype {
/// struct xlocale_component header;
/// _RuneLocale *runes;
/// size_t (*__mbrtowc)(wchar_t *
///
/// restrict
///
/// , const char *
///
/// restrict
///
/// ,
/// size_t, mbstate_t *
///
/// restrict
///
/// );
/// int (*__mbsinit)(const mbstate_t *);
/// size_t (*__mbsnrtowcs)(wchar_t *
///
/// restrict
///
/// , const char **
///
/// restrict
///
/// ,
/// size_t, size_t, mbstate_t *
///
/// restrict
///
/// );
/// size_t (*__wcrtomb)(char *
///
/// restrict
///
/// , wchar_t, mbstate_t *
///
/// restrict
///
/// );
/// size_t (*__wcsnrtombs)(char *
///
/// restrict
///
/// , const wchar_t **
///
/// restrict
///
/// ,
/// size_t, size_t, mbstate_t *
///
/// restrict
///
/// );
/// int __mb_cur_max;
/// int __mb_sb_limit;
///
/// __mbstate_t mblen;
///
/// __mbstate_t mbrlen;
///
/// __mbstate_t mbrtoc16;
///
/// __mbstate_t mbrtoc32;
///
/// __mbstate_t mbrtowc;
///
/// __mbstate_t mbsnrtowcs;
///
/// __mbstate_t mbsrtowcs;
///
/// __mbstate_t mbtowc;
///
/// __mbstate_t c16rtomb;
///
/// __mbstate_t c32rtomb;
///
/// __mbstate_t wcrtomb;
///
/// __mbstate_t wcsnrtombs;
///
/// __mbstate_t wcsrtombs;
///
/// __mbstate_t wctomb;
/// };
///
/// extern struct xlocale_ctype __xlocale_global_ctype;
///
///
///
///
/// int _none_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _UTF8_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _GB18030_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _GB2312_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _GBK_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _BIG5_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _MSKanji_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
/// int _ascii_init(struct xlocale_ctype *, _RuneLocale *)
///
/// __attribute__((__visibility__("hidden")))
///
/// ;
///
/// typedef size_t (*mbrtowc_pfn_t)(wchar_t *
///
/// restrict
///
/// ,
/// const char *
///
/// restrict
///
/// , size_t, mbstate_t *
///
/// restrict
///
/// );
/// typedef size_t (*wcrtomb_pfn_t)(char *
///
/// restrict
///
/// , wchar_t,
/// mbstate_t *
///
/// restrict
///
/// );
/// size_t __mbsnrtowcs_std(wchar_t *
///
/// restrict
///
/// , const char **
///
/// restrict
///
/// ,
/// size_t, size_t, mbstate_t *
///
/// restrict
///
/// , mbrtowc_pfn_t);
/// size_t __wcsnrtombs_std(char *
///
/// restrict
///
/// , const wchar_t **
///
/// restrict
///
/// ,
/// size_t, size_t, mbstate_t *
///
/// restrict
///
/// , wcrtomb_pfn_t);
///
const _RuneLocale _DefaultRuneLocale = {
"RuneMagi"
,
"NONE",
((void *)0)
,
((void *)0)
,
0xFFFD,
{
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
|
0x00004000L
|
0x00020000L
,
0x00000200L
|
0x00004000L
,
0x00000200L
|
0x00004000L
,
0x00000200L
|
0x00004000L
,
0x00000200L
|
0x00004000L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00000200L
,
0x00004000L
|
0x00020000L
|
0x00040000L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|0,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|1,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|2,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|3,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|4,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|5,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|6,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|7,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|8,
0x00000400L
|
0x00040000L
|
0x00000800L
|
0x00010000L
|
0x00400000L
|9,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00008000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|10,
0x00008000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|11,
0x00008000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|12,
0x00008000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|13,
0x00008000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|14,
0x00008000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|15,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00008000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00001000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|10,
0x00001000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|11,
0x00001000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|12,
0x00001000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|13,
0x00001000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|14,
0x00001000L
|
0x00010000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
|15,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00001000L
|
0x00040000L
|
0x00000800L
|
0x00000100L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00002000L
|
0x00040000L
|
0x00000800L
,
0x00000200L
,
},
{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
0x60, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
},
{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
0x60, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
},
};
const _RuneLocale *_CurrentRuneLocale = &_DefaultRuneLocale;
/// _RuneLocale *
/// __runes_for_locale(locale_t locale, int *mb_sb_limit)
/// {
/// (locale = get_real_locale(locale));
/// struct xlocale_ctype *c = ((struct xlocale_ctype*)(locale)->components[XLC_CTYPE]);
/// *mb_sb_limit = c->__mb_sb_limit;
/// return c->runes;
/// }