1 /******************************************************************************
2 ###############################################################################
3 # Copyright (c) [2017-2020] [ICT/CAS] #
4 # Licensed under the ORAN Software License v1.0 (License) #
5 ###############################################################################
6 ******************************************************************************/
13 #include "vos_types.h"
16 * NOTE! This ctype does not handle EOF like the standard C
17 * library is required to.
20 #define _VOS_U 0x01 /* upper */
21 #define _VOS_L 0x02 /* lower */
22 #define _VOS_D 0x04 /* digit */
23 #define _VOS_C 0x08 /* cntrl */
24 #define _VOS_P 0x10 /* punct */
25 #define _VOS_S 0x20 /* white space (space/lf/tab) */
26 #define _VOS_X 0x40 /* hex digit */
27 #define _VOS_SP 0x80 /* hard space (0x20) */
29 extern unsigned char _vos_ctype[];
31 #define __vos_ismask(x) (_vos_ctype[(int)(unsigned char)(x)])
34 #define vos_isalnum(c) ((__vos_ismask(c)&(_VOS_U|_VOS_L|_VOS_D)) != 0)
37 #define vos_isalpha(c) ((__vos_ismask(c)&(_VOS_U|_VOS_L)) != 0)
40 #define vos_iscntrl(c) ((__vos_ismask(c)&(_VOS_C)) != 0)
43 #define vos_isdigit(c) ((__vos_ismask(c)&(_VOS_D)) != 0)
46 #define vos_isgraph(c) ((__vos_ismask(c)&(_VOS_P|_VOS_U|_VOS_L|_VOS_D)) != 0)
49 #define vos_islower(c) ((__vos_ismask(c)&(_VOS_L)) != 0)
52 #define vos_isprint(c) ((__vos_ismask(c)&(_VOS_P|_VOS_U|_VOS_L|_VOS_D|_VOS_SP)) != 0)
55 #define vos_ispunct(c) ((__vos_ismask(c)&(_VOS_P)) != 0)
58 #define vos_isspace(c) ((__vos_ismask(c)&(_VOS_S)) != 0)
61 #define vos_isupper(c) ((__vos_ismask(c)&(_VOS_U)) != 0)
64 #define vos_isxdigit(c) ((__vos_ismask(c)&(_VOS_D|_VOS_X)) != 0)
67 #define vos_isascii(c) (((unsigned char)(c))<=0x7f)
70 #define vos_toascii(c) (((unsigned char)(c))&0x7f)
73 UCHAR vos_tolower(UCHAR c);
76 UCHAR vos_toupper(UCHAR c);