4102 lines
91 KiB
C
4102 lines
91 KiB
C
// +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;
|
|
/// }
|