1 #ifndef __HVMLOADER_CTYPE_H__
2 #define __HVMLOADER_CTYPE_H__
3 
4 #define _U      0x01    /* upper */
5 #define _L      0x02    /* lower */
6 #define _D      0x04    /* digit */
7 #define _C      0x08    /* cntrl */
8 #define _P      0x10    /* punct */
9 #define _S      0x20    /* white space (space/lf/tab) */
10 #define _X      0x40    /* hex digit */
11 #define _SP     0x80    /* hard space (0x20) */
12 
13 extern const unsigned char _ctype[];
14 
15 #define __ismask(x) (_ctype[(int)(unsigned char)(x)])
16 
17 #define isalnum(c)      ((__ismask(c)&(_U|_L|_D)) != 0)
18 #define isalpha(c)      ((__ismask(c)&(_U|_L)) != 0)
19 #define iscntrl(c)      ((__ismask(c)&(_C)) != 0)
20 #define isdigit(c)      ((__ismask(c)&(_D)) != 0)
21 #define isgraph(c)      ((__ismask(c)&(_P|_U|_L|_D)) != 0)
22 #define islower(c)      ((__ismask(c)&(_L)) != 0)
23 #define isprint(c)      ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
24 #define ispunct(c)      ((__ismask(c)&(_P)) != 0)
25 #define isspace(c)      ((__ismask(c)&(_S)) != 0)
26 #define isupper(c)      ((__ismask(c)&(_U)) != 0)
27 #define isxdigit(c)     ((__ismask(c)&(_D|_X)) != 0)
28 
29 #endif /* __HVMLOADER_CTYPE_H__ */
30