- source.zip
- source
- Common
- ddk_build.bat
- drvCppLib
- drvCppLibTest
- drvSingleModeTest
- drvUtils
- HideDriver.sln
- HideDriver
- HideDriverGUI
- STLPort
- Utils
- UtilsPortable
- UtilsPortableUnitTest
- bin.zip
- bin
- HideDriver.sys
- HideDriverGUI.exe
|
/*
* Copyright (c) 1999
* Silicon Graphics Computer Systems, Inc.
*
* Copyright (c) 1999
* Boris Fomitchev
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*
*/
#ifndef _STLP_C_LOCALE_H
# define _STLP_C_LOCALE_H
/*
* Implementation dependent definitions
*/
#ifdef __cplusplus
# include <stl/_config.h>
#endif
#if defined(__sgi)
# if defined(ROOT_65) /* IRIX 6.5.x */
# include <sgidefs.h>
# include <standards.h>
# include <wchar.h>
# include <ctype.h>
# else
/* IRIX pre-6.5 */
# include <sgidefs.h>
# include <standards.h>
# if !defined(_SIZE_T) && !defined(_SIZE_T_)
# define _SIZE_T
# if (_MIPS_SZLONG == 32)
typedef unsigned int size_t;
# endif
# if (_MIPS_SZLONG == 64)
typedef unsigned long size_t;
# endif
# endif
# ifndef _WCHAR_T
# define _WCHAR_T
# if (_MIPS_SZLONG == 32)
typedef long wchar_t;
# endif
# if (_MIPS_SZLONG == 64)
typedef __int32_t wchar_t;
# endif
# endif /* _WCHAR_T */
# ifndef _WINT_T
# define _WINT_T
# if (_MIPS_SZLONG == 32)
typedef long wint_t;
# endif
# if (_MIPS_SZLONG == 64)
typedef __int32_t wint_t;
# endif
# endif /* _WINT_T */
# ifndef _MBSTATE_T
# define _MBSTATE_T
# ifdef _MSC_VER
typedef int mbstate_t;
# else
typedef char mbstate_t;
# endif
# endif /* _MBSTATE_T */
# endif /* ROOT65 */
# else /* __sgi */
# ifdef __cplusplus
# ifndef _STLP_CSTDDEF
# include <cstddef>
# endif
# ifndef _STLP_CWCHAR_H
# include <stl/_cwchar.h>
# endif
# ifndef _STLP_CCTYPE
# include <cctype>
# endif
# else
# include <stddef.h>
# include <wchar.h>
# include <ctype.h>
# endif
#endif /* __sgi */
/*
* GENERAL FRAMEWORK
*/
struct _Locale_ctype;
struct _Locale_numeric;
struct _Locale_time;
struct _Locale_collate;
struct _Locale_monetary;
struct _Locale_messages;
/*
Bitmask macros.
*/
/*
* For narrow characters, we expose the lookup table interface.
*/
/* Internal bitmask macros, os-specific. */
#if defined(__sgi) /* IRIX */
#define _Locale_S 0x00000008 /* Spacing character */
#define _Locale_A 0x00004000 /* Alphabetical characters only */
#define _Locale_B 0x00000040 /* Obsolete: was space char only */
#define _Locale_PR 0x00008000 /* Printable characters only */
#define _Locale_G 0x40000000 /* Graphic characters only */
#define _Locale_BL 0x80000000 /* The blank character class */
/* Public bitmask macros, must be defined for every OS. These values, of
* course, are specific to IRIX. */
#define _Locale_CNTRL 0x00000020 /* Control character */
#define _Locale_UPPER 0x00000001 /* Upper case */
#define _Locale_LOWER 0x00000002 /* Lower case */
#define _Locale_DIGIT 0x00000004 /* Numeral (digit) */
#define _Locale_XDIGIT 0x00000080 /* heXadecimal digit */
#define _Locale_PUNCT 0x00000010 /* Punctuation */
#define _Locale_SPACE (_Locale_S | _Locale_BL)
#define _Locale_PRINT (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \
_Locale_DIGIT | _Locale_A | _Locale_XDIGIT | \
_Locale_PR)
#define _Locale_ALPHA _Locale_A
/*
* All of these except for graph and blank are from the C standard;
* graph and blank are XPG4. (graph in XPG4 doesn't mean quite the
* same thing as graph in the C++ library)
*/
#endif /* IRIX */
#if defined( __Lynx__ )
/* azov: On Lynx isalpha defined as (_U | _L), which gives us a mask
* unusable in ctype_table. So we have to redefine it and use hard-coded
* numbers (to avoid potential clashes if system headers change).
*
* P.S. Actually, I see no reason in using platform-specific masks -
* having just one set of masks for all platforms should work just as
* well - we only use them internally and they don't have to be equal
* to whatever defined in local ctype.h
*
*/
# define _Locale_CNTRL 040 /* _C, Control character */
# define _Locale_UPPER 01 /* _U, Upper case */
# define _Locale_LOWER 02 /* _L, Lower case */
# define _Locale_DIGIT 04 /* _N, Numeral (digit) */
# define _Locale_XDIGIT 0200 /* _X, heXadecimal digit */
# define _Locale_PUNCT 020 /* _P, Punctuation */
# define _Locale_SPACE 010 /* _S, Spacing */
# define _Locale_ALPHA 040000 /* none, Alphanumerical */
# define _Locale_PRINT (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \
_Locale_DIGIT | _Locale_ALPHA | _Locale_XDIGIT |\
_Locale_SPACE ) /* Printable */
# endif /* __Lynx__ */
#if defined(__GNUC__) || defined (__BORLANDC__) || defined (__COMO__)
# if defined (__CYGWIN__)
# define _Locale_CNTRL 040
# define _Locale_UPPER 02
# define _Locale_LOWER 01
# define _Locale_DIGIT 04
# define _Locale_XDIGIT ( 0100 | _Locale_DIGIT )
# define _Locale_PUNCT 020
# define _Locale_SPACE 010
# define _Locale_ALPHA (_Locale_UPPER | _Locale_LOWER)
# define _Locale_PRINT (_Locale_ALPHA | _Locale_DIGIT | _Locale_PUNCT | 0200 )
# elif defined (__FreeBSD__)
# define _Locale_CNTRL _CTYPE_C
# define _Locale_UPPER _CTYPE_U
# define _Locale_LOWER _CTYPE_L
# define _Locale_DIGIT _CTYPE_D
# define _Locale_XDIGIT _CTYPE_X
# define _Locale_PUNCT _CTYPE_P
# define _Locale_SPACE _CTYPE_S
# define _Locale_PRINT _CTYPE_R
# define _Locale_ALPHA _CTYPE_A
# elif defined (__NetBSD__) || defined (__amigaos__)
# define _Locale_CNTRL _C
# define _Locale_UPPER _U
# define _Locale_LOWER _L
# define _Locale_DIGIT _N
# define _Locale_XDIGIT (_N|_X)
# define _Locale_PUNCT _P
# define _Locale_SPACE _S
# define _Locale_PRINT (_P|_U|_L|_N|_B)
# define _Locale_ALPHA (_U|_L)
# elif defined(__EMX__) /* OS/2 with emx runtime */
# define _Locale_CNTRL _CNTRL
# define _Locale_UPPER _UPPER
# define _Locale_LOWER _LOWER
# define _Locale_DIGIT _DIGIT
# define _Locale_XDIGIT _XDIGIT
# define _Locale_PUNCT _PUNCT
# define _Locale_SPACE _SPACE
# define _Locale_PRINT _PRINT
# define _Locale_ALPHA (_UPPER|_LOWER)
# elif defined(_STLP_USE_GLIBC) /* linux, using the gnu compiler */
/* This section uses macros defined in the gnu libc ctype.h header */
# define _Locale_CNTRL _IScntrl
# define _Locale_UPPER _ISupper
# define _Locale_LOWER _ISlower
# define _Locale_DIGIT _ISdigit
# define _Locale_XDIGIT _ISxdigit
# define _Locale_PUNCT _ISpunct
# define _Locale_SPACE _ISspace
# define _Locale_PRINT _ISprint
# define _Locale_ALPHA _ISalpha
# endif /* GLIBC */
#endif /* gnu */
#if ( defined(__sun) && defined (__SVR4) ) \
|| (defined (__digital__) && defined (__unix__)) \
|| defined(_AIX)
/* fbp : condition from AT&T code*/
#if !(defined(__XPG4_CHAR_CLASS__) || defined(_XPG4_2) || \
(defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 == 4))) && ! defined (_ISCNTRL)
/* fbp : on 2.5.1, the defines are different ;( */
// # if ( defined (__sun) && defined (__SVR4) && ! defined (_ISCNTRL) )
# define _ISCNTRL _C
# define _ISUPPER _U
# define _ISLOWER _L
# define _ISDIGIT _N
# define _ISXDIGIT _X
# define _ISPUNCT _P
# define _ISSPACE _S
# define _ISPRINT (_P | _U | _L | _N | _B)
# define _ISALPHA (_U | _L)
# endif
# define _Locale_CNTRL _ISCNTRL
# define _Locale_UPPER _ISUPPER
# define _Locale_LOWER _ISLOWER
# define _Locale_DIGIT _ISDIGIT
# define _Locale_XDIGIT _ISXDIGIT
# define _Locale_PUNCT _ISPUNCT
# define _Locale_SPACE _ISSPACE
# define _Locale_PRINT _ISPRINT
# define _Locale_ALPHA _ISALPHA
#elif defined (__MWERKS__)
# define _Locale_CNTRL __control_char
# define _Locale_UPPER __upper_case
# define _Locale_LOWER __lower_case
# define _Locale_DIGIT __digit
# define _Locale_XDIGIT __hex_digit
# define _Locale_PUNCT __punctuation
# define _Locale_SPACE __space_char
# define _Locale_PRINT __printable
# define _Locale_ALPHA __alphanumeric
#elif defined (__BORLANDC__)
# define _Locale_CNTRL _IS_CTL
# define _Locale_UPPER _IS_UPP
# define _Locale_LOWER _IS_LOW
# define _Locale_DIGIT _IS_DIG
# define _Locale_XDIGIT _IS_HEX
# define _Locale_PUNCT _IS_PUN
# define _Locale_SPACE _IS_SP
# define _Locale_PRINT (_IS_SP|_IS_PUN|_IS_UPP|_IS_LOW|_IS_DIG)
# define _Locale_ALPHA _IS_ALPHA
#elif defined (_MSC_VER) || defined (__MINGW32__)
# define _Locale_CNTRL _CONTROL
# define _Locale_UPPER _UPPER
# define _Locale_LOWER _LOWER
# define _Locale_DIGIT _DIGIT
# define _Locale_XDIGIT _HEX
# define _Locale_PUNCT _PUNCT
# define _Locale_SPACE _SPACE
# define _Locale_PRINT (_ALPHA | _DIGIT | _BLANK | _PUNCT)
// is this one has to be so complex ?
# define _Locale_ALPHA ( _ALPHA & ~ (_UPPER | _LOWER ))
#elif defined (__DMC__)
# define _Locale_CNTRL _CONTROL
# define _Locale_UPPER _UPPER
# define _Locale_LOWER _LOWER
# define _Locale_DIGIT _DIGIT
# define _Locale_XDIGIT _HEX
# define _Locale_PUNCT _PUNCT
# define _Locale_SPACE _SPACE
# define _Locale_PRINT (_UPPER | _LOWER | _DIGIT | _PUNCT | _SPACE)
# define _Locale_ALPHA _ALPHA
#elif defined(__MRC__) || defined(__SC__) //*TY 02/24/2000 - added support for MPW
# define _Locale_CNTRL _CTL
# define _Locale_UPPER _UPP
# define _Locale_LOWER _LOW
# define _Locale_DIGIT _DIG
# define _Locale_XDIGIT _HEX
# define _Locale_PUNCT _PUN
# define _Locale_SPACE _BLA
# define _Locale_PRINT (_UPP | _LOW | _DIG | _PUN | _BLA)
# define _Locale_ALPHA (_UPP | _LOW)
#elif defined(__MLCCPP__)
# define _Locale_CNTRL 1
# define _Locale_UPPER 2
# define _Locale_LOWER 4
# define _Locale_DIGIT 8
# define _Locale_XDIGIT 16
# define _Locale_PUNCT 32
# define _Locale_SPACE 64
# define _Locale_PRINT 128
# define _Locale_ALPHA 256
# elif defined (__GNUC__) && defined (__APPLE__)
# define _Locale_CNTRL _C
# define _Locale_UPPER _U
# define _Locale_LOWER _L
# define _Locale_DIGIT _D
# define _Locale_XDIGIT _X
# define _Locale_PUNCT _P
# define _Locale_SPACE _S
# define _Locale_PRINT _R
# define _Locale_ALPHA _A
# elif defined (__hpux) || defined (__osf__)
# if defined(__HP_aCC) && !defined(_INCLUDE_HPUX_SOURCE)
# define _ISALPHA 0x001
# define _ISALNUM 0x002
# define _ISBLANK 0x004
# define _ISCNTRL 0x008
# define _ISDIGIT 0x010
# define _ISGRAPH 0x020
# define _ISLOWER 0x040
# define _ISPRINT 0x080
# define _ISPUNCT 0x100
# define _ISSPACE 0x200
# define _ISUPPER 0x400
# define _ISXDIGIT 0x800
# endif
# define _Locale_CNTRL _ISCNTRL
# define _Locale_UPPER _ISUPPER
# define _Locale_LOWER _ISLOWER
# define _Locale_DIGIT _ISDIGIT
# define _Locale_XDIGIT _ISXDIGIT
# define _Locale_PUNCT _ISPUNCT
# define _Locale_SPACE _ISSPACE
# define _Locale_PRINT _ISPRINT
# define _Locale_ALPHA _ISALPHA
# elif defined (__MVS__) || defined(__OS400__)
# define _Locale_CNTRL __ISCNTRL
# define _Locale_UPPER __ISUPPER
# define _Locale_LOWER __ISLOWER
# define _Locale_DIGIT __ISDIGIT
# define _Locale_XDIGIT __ISXDIGIT
# define _Locale_PUNCT __ISPUNCT
# define _Locale_SPACE __ISSPACE
# define _Locale_PRINT __ISPRINT
# define _Locale_ALPHA __ISALPHA
# elif defined (__QNXNTO__) || defined (__WATCOMC__)
# define _Locale_CNTRL _CNTRL
# define _Locale_UPPER _UPPER
# define _Locale_LOWER _LOWER
# define _Locale_DIGIT _DIGIT
# define _Locale_XDIGIT _XDIGT
# define _Locale_PUNCT _PUNCT
# define _Locale_SPACE _SPACE
# define _Locale_PRINT _PRINT
# define _Locale_ALPHA (_UPPER | _LOWER)
#elif defined (__DJGPP)
# define _Locale_CNTRL __dj_ISCNTRL
# define _Locale_UPPER __dj_ISUPPER
# define _Locale_LOWER __dj_ISLOWER
# define _Locale_DIGIT __dj_ISDIGIT
# define _Locale_XDIGIT __dj_ISXDIGIT
# define _Locale_PUNCT __dj_ISPUNCT
# define _Locale_SPACE __dj_ISSPACE
# define _Locale_PRINT __dj_ISPRINT
# define _Locale_ALPHA __dj_ISALPHA
#elif defined (_STLP_SCO_OPENSERVER)
# define _Locale_CNTRL _C
# define _Locale_UPPER _U
# define _Locale_LOWER _L
# define _Locale_DIGIT _N
# define _Locale_XDIGIT _X
# define _Locale_PUNCT _P
# define _Locale_SPACE _S
# define _Locale_PRINT _R
# define _Locale_ALPHA _A
#elif defined (__NCR_SVR)
# define _Locale_CNTRL _C
# define _Locale_UPPER _U
# define _Locale_LOWER _L
# define _Locale_DIGIT _N
# define _Locale_XDIGIT _X
# define _Locale_PUNCT _P
# define _Locale_SPACE _S
# define _Locale_PRINT (_P | _U | _L | _N | _B)
# define _Locale_ALPHA (_U | _L)
#elif defined (_CRAY)
# define _Locale_CNTRL _CNTRL
# define _Locale_UPPER _UPPER
# define _Locale_LOWER _LOWER
# define _Locale_DIGIT _DIGIT
# define _Locale_XDIGIT _XDIGIT
# define _Locale_PUNCT _PUNCT
# define _Locale_SPACE _SPACE
# define _Locale_PRINT _PRINT
# define _Locale_ALPHA _ALPHA
#endif
# endif /* _STLP_C_LOCALE_H */
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
ApriorIT is a software research and development company specializing in cybersecurity and data management technology engineering. We work for a broad range of clients from Fortune 500 technology leaders to small innovative startups building unique solutions.
As Apriorit offers integrated research&development services for the software projects in such areas as endpoint security, network security, data security, embedded Systems, and virtualization, we have strong kernel and driver development skills, huge system programming expertise, and are reals fans of research projects.
Our specialty is reverse engineering, we apply it for security testing and security-related projects.
A separate department of Apriorit works on large-scale business SaaS solutions, handling tasks from business analysis, data architecture design, and web development to performance optimization and DevOps.
Official site: https://www.apriorit.com
Clutch profile: https://clutch.co/profile/apriorit
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.