1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/*
23 * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24 * Use is subject to license terms.
25 *
26 * Copyright 2015 PALO, Richard.  All rights reserved.
27 */
28
29#ifndef	_SYS_CTYPE_H
30#define	_SYS_CTYPE_H
31
32#include <sys/types.h>
33
34#ifdef	__cplusplus
35extern "C" {
36#endif
37
38#define	ISDIGIT(_c) \
39	((_c) >= '0' && (_c) <= '9')
40
41#define	ISXDIGIT(_c) \
42	(ISDIGIT(_c) || \
43	((_c) >= 'a' && (_c) <= 'f') || \
44	((_c) >= 'A' && (_c) <= 'F'))
45
46#define	ISLOWER(_c) \
47	((_c) >= 'a' && (_c) <= 'z')
48
49#define	ISUPPER(_c) \
50	((_c) >= 'A' && (_c) <= 'Z')
51
52#define	ISALPHA(_c) \
53	(ISUPPER(_c) || \
54	ISLOWER(_c))
55
56#define	ISALNUM(_c) \
57	(ISALPHA(_c) || \
58	ISDIGIT(_c))
59
60#define	ISPRINT(_c) \
61	((_c) >= ' ' && (_c) <= '~')
62
63#define	ISSPACE(_c) \
64	((_c) == ' ' || \
65	(_c) == '\t' || \
66	(_c) == '\r' || \
67	(_c) == '\n')
68
69static __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
70isdigit(char c)
71{
72	return (ISDIGIT(c));
73}
74#pragma inline(isdigit)
75
76static __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
77isxdigit(char c)
78{
79	return (ISXDIGIT(c));
80}
81#pragma inline(isxdigit)
82
83static __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
84islower(char c)
85{
86	return (ISLOWER(c));
87}
88#pragma inline(islower)
89
90static __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
91isupper(char c)
92{
93	return (ISUPPER(c));
94}
95#pragma inline(isupper)
96
97static __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
98isalpha(char c)
99{
100	return (ISALPHA(c));
101}
102#pragma inline(isalpha)
103
104static __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
105isalnum(char c)
106{
107	return (ISALNUM(c));
108}
109#pragma inline(isalnum)
110
111static __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
112isprint(char c)
113{
114	return (ISPRINT(c));
115}
116#pragma inline(isprint)
117
118static __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
119isspace(char c)
120{
121	return (ISSPACE(c));
122}
123#pragma inline(isspace)
124
125#ifdef	__cplusplus
126}
127#endif
128
129#endif	/* _SYS_CTYPE_H */
130