]> git.proxmox.com Git - mirror_edk2.git/blame - StdLib/Include/sys/_ctype.h
Update or add comments to files and functions for use by Doxygen.
[mirror_edk2.git] / StdLib / Include / sys / _ctype.h
CommitLineData
2aa62f2b 1/** @file\r
2 Implementation specific support for Single-byte character classification and\r
3 case conversion macros and function declarations.\r
4\r
5 This file is intended to only be included by <ctype.h>.\r
6\r
7 Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
8 This program and the accompanying materials are licensed and made available under\r
9 the terms and conditions of the BSD License that accompanies this distribution.\r
10 The full text of the license may be found at\r
11 http://opensource.org/licenses/bsd-license.\r
12\r
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
2aa62f2b 15**/\r
16#ifndef _CTYPE_H\r
17#error This file, <sys/_ctype.h>, may only be included by <ctype.h>.\r
18#endif\r
19\r
20__BEGIN_DECLS\r
681cc25c 21extern const UINT16 *_cClass; ///< Locale independent pointer to Character Classification Table.\r
22extern const UINT8 *_uConvT; ///< Locale independent pointer to Lowercase to Uppercase Conversion Table.\r
23extern const UINT8 *_lConvT; ///< Locale independent pointer to Uppercase to Lowercase Conversion Table.\r
2aa62f2b 24\r
681cc25c 25extern int __isCClass( int _c, unsigned int mask); ///< Internal character classification function.\r
2aa62f2b 26__END_DECLS\r
27\r
28\r
681cc25c 29/** Character Class bit masks.\r
30@{\r
31**/\r
32#define _CC 0x0001U ///< Control Characters\r
33#define _CW 0x0002U ///< White Space\r
34#define _CP 0x0004U ///< Punctuation\r
35#define _CD 0x0008U ///< Digits [0-9]\r
36#define _CU 0x0010U ///< Uppercase Letter [A-Z]\r
37#define _CL 0x0020U ///< Lowercase Letter [a-z]\r
38#define _CX 0x0040U ///< Hexadecimal Digits [A-Fa-f]\r
2aa62f2b 39#define _C0 0x0080U\r
681cc25c 40#define _CS 0x0100U ///< Space Characters, ' ' in C locale\r
41#define _CG 0x0200U ///< Graphic Characters\r
42#define _CB 0x0400U ///< Blank Characters, ' ' and '\t' in C locale\r
2aa62f2b 43#define _C4 0x0800U\r
681cc25c 44#define _XA 0x1000U ///< eXtra Alpha characters not in _CU or _CL\r
2aa62f2b 45#define _C6 0x2000U\r
46#define _C7 0x4000U\r
47#define _C8 0x8000U\r
681cc25c 48/// @}\r
2aa62f2b 49\r
50#ifndef NO_CTYPE_MACROS\r
51 #define __isCClass( _c, mask) (((_c) < 0 || (_c) > 127) ? 0 : (_cClass[(_c)] & (mask)))\r
52 #define __toLower( _c) ((__isCClass( ((int)_c), (_CU))) ? _lConvT[(_c)] : (_c))\r
53 #define __toUpper( _c) ((__isCClass( ((int)_c), (_CL))) ? _uConvT[(_c)] : (_c))\r
54#endif /* NO_CTYPE_MACROS */\r
55\r
56/* Macros used by implementation functions */\r
57#define __isHexLetter(_c) (__isCClass( (int)c, (_CX)))\r
58\r
59#ifdef _CTYPE_PRIVATE\r
60 #define _CTYPE_NUM_CHARS (256)\r
61\r
62 #define _CTYPE_ID "BSDCTYPE"\r
63 #define _CTYPE_REV 2\r
64\r
65 extern const UINT16 _C_CharClassTable[];\r
66 extern const UINT8 _C_ToUpperTable[];\r
67 extern const UINT8 _C_ToLowerTable[];\r
68#endif\r