Merge zeep.eecs.umich.edu:/m5/Bitkeeper/alpha-system
[gem5.git] / system / alpha / h / libc.h
1 #ifndef __LIBC_H_LOADED
2 #define __LIBC_H_LOADED
3 /*****************************************************************************
4
5 Copyright © 1993, 1994 Digital Equipment Corporation,
6 Maynard, Massachusetts.
7
8 All Rights Reserved
9
10 Permission to use, copy, modify, and distribute this software and its
11 documentation for any purpose and without fee is hereby granted, provided
12 that the copyright notice and this permission notice appear in all copies
13 of software and supporting documentation, and that the name of Digital not
14 be used in advertising or publicity pertaining to distribution of the software
15 without specific, written prior permission. Digital grants this permission
16 provided that you prominently mark, as not part of the original, any
17 modifications made to this software or documentation.
18
19 Digital Equipment Corporation disclaims all warranties and/or guarantees
20 with regard to this software, including all implied warranties of fitness for
21 a particular purpose and merchantability, and makes no representations
22 regarding the use of, or the results of the use of, the software and
23 documentation in terms of correctness, accuracy, reliability, currentness or
24 otherwise; and you rely on the software, documentation and results solely at
25 your own risk.
26
27 ******************************************************************************/
28
29 /*
30 * $Id: libc.h,v 1.1.1.1 1997/10/30 23:27:16 verghese Exp $;
31 *
32 * $Log: libc.h,v $
33 * Revision 1.1.1.1 1997/10/30 23:27:16 verghese
34 * current 10/29/97
35 *
36 * Revision 1.2 1995/02/27 19:21:55 fdh
37 * Change the name of the Ctype Macros.
38 *
39 * Revision 1.1 1995/02/14 18:53:21 fdh
40 * Initial revision
41 *
42 */
43
44 #define _ISMACRO(c,x) ((int) (_CTYPES[c] & (x)))
45
46 #define _isalnum(c) _ISMACRO(c,_ISALNUM_)
47 #define _isalpha(c) _ISMACRO(c,_ISALPHA_)
48 #define _isascii(c) _ISMACRO(c,_ISASCII_)
49 #define _iscntrl(c) _ISMACRO(c,_ISCNTRL_)
50 #define _isdigit(c) _ISMACRO(c,_ISDIGIT_)
51 #define _isgraph(c) _ISMACRO(c,_ISGRAPH_)
52 #define _islower(c) _ISMACRO(c,_ISLOWER_)
53 #define _isprint(c) _ISMACRO(c,_ISPRINT_)
54 #define _ispunct(c) _ISMACRO(c,_ISPUNCT_)
55 #define _isspace(c) _ISMACRO(c,_ISSPACE_)
56 #define _isupper(c) _ISMACRO(c,_ISUPPER_)
57 #define _isxdigit(c) _ISMACRO(c,_ISXDIGIT_)
58
59 #define _ISALNUM_ 0x0001
60 #define _ISALPHA_ 0x0002
61 #define _ISASCII_ 0x0004
62 #define _ISCNTRL_ 0x0008
63 #define _ISDIGIT_ 0x0010
64 #define _ISGRAPH_ 0x0020
65 #define _ISLOWER_ 0x0040
66 #define _ISPRINT_ 0x0080
67 #define _ISPUNCT_ 0x0100
68 #define _ISSPACE_ 0x0200
69 #define _ISUPPER_ 0x0400
70 #define _ISXDIGIT_ 0x0800
71
72 const uw _CTYPES[] =
73 {
74 /* 0 '\000'*/ _ISASCII_|_ISCNTRL_,
75 /* 1 '\001'*/ _ISASCII_|_ISCNTRL_,
76 /* 2 '\002'*/ _ISASCII_|_ISCNTRL_,
77 /* 3 '\003'*/ _ISASCII_|_ISCNTRL_,
78 /* 4 '\004'*/ _ISASCII_|_ISCNTRL_,
79 /* 5 '\005'*/ _ISASCII_|_ISCNTRL_,
80 /* 6 '\006'*/ _ISASCII_|_ISCNTRL_,
81 /* 7 '\007'*/ _ISASCII_|_ISCNTRL_,
82 /* 8 '\010'*/ _ISASCII_|_ISCNTRL_,
83 /* 9 '\011'*/ _ISASCII_|_ISCNTRL_|_ISSPACE_,
84 /* 10 '\012'*/ _ISASCII_|_ISCNTRL_|_ISSPACE_,
85 /* 11 '\013'*/ _ISASCII_|_ISCNTRL_|_ISSPACE_,
86 /* 12 '\014'*/ _ISASCII_|_ISCNTRL_|_ISSPACE_,
87 /* 13 '\015'*/ _ISASCII_|_ISCNTRL_|_ISSPACE_,
88 /* 14 '\016'*/ _ISASCII_|_ISCNTRL_,
89 /* 15 '\017'*/ _ISASCII_|_ISCNTRL_,
90 /* 16 '\020'*/ _ISASCII_|_ISCNTRL_,
91 /* 17 '\021'*/ _ISASCII_|_ISCNTRL_,
92 /* 18 '\022'*/ _ISASCII_|_ISCNTRL_,
93 /* 19 '\023'*/ _ISASCII_|_ISCNTRL_,
94 /* 20 '\024'*/ _ISASCII_|_ISCNTRL_,
95 /* 21 '\025'*/ _ISASCII_|_ISCNTRL_,
96 /* 22 '\026'*/ _ISASCII_|_ISCNTRL_,
97 /* 23 '\027'*/ _ISASCII_|_ISCNTRL_,
98 /* 24 '\030'*/ _ISASCII_|_ISCNTRL_,
99 /* 25 '\031'*/ _ISASCII_|_ISCNTRL_,
100 /* 26 '\032'*/ _ISASCII_|_ISCNTRL_,
101 /* 27 '\033'*/ _ISASCII_|_ISCNTRL_,
102 /* 28 '\034'*/ _ISASCII_|_ISCNTRL_,
103 /* 29 '\035'*/ _ISASCII_|_ISCNTRL_,
104 /* 30 '\036'*/ _ISASCII_|_ISCNTRL_,
105 /* 31 '\037'*/ _ISASCII_|_ISCNTRL_,
106 /* 32 '\040'*/ _ISASCII_|_ISPRINT_|_ISSPACE_,
107 /* 33 '!'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
108 /* 34 '"'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
109 /* 35 '#'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
110 /* 36 '$'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
111 /* 37 '%'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
112 /* 38 '&'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
113 /* 39 '''*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
114 /* 40 '('*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
115 /* 41 ')'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
116 /* 42 '*'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
117 /* 43 '+'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
118 /* 44 ','*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
119 /* 45 '-'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
120 /* 46 '.'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
121 /* 47 '/'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
122 /* 48 '0'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
123 /* 49 '1'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
124 /* 50 '2'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
125 /* 51 '3'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
126 /* 52 '4'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
127 /* 53 '5'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
128 /* 54 '6'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
129 /* 55 '7'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
130 /* 56 '8'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
131 /* 57 '9'*/ _ISALNUM_|_ISASCII_|_ISDIGIT_|_ISGRAPH_|_ISPRINT_|_ISXDIGIT_,
132 /* 58 ':'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
133 /* 59 ';'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
134 /* 60 '<'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
135 /* 61 '='*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
136 /* 62 '>'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
137 /* 63 '?'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
138 /* 64 '@'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
139 /* 65 'A'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_|_ISXDIGIT_,
140 /* 66 'B'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_|_ISXDIGIT_,
141 /* 67 'C'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_|_ISXDIGIT_,
142 /* 68 'D'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_|_ISXDIGIT_,
143 /* 69 'E'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_|_ISXDIGIT_,
144 /* 70 'F'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_|_ISXDIGIT_,
145 /* 71 'G'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
146 /* 72 'H'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
147 /* 73 'I'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
148 /* 74 'J'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
149 /* 75 'K'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
150 /* 76 'L'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
151 /* 77 'M'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
152 /* 78 'N'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
153 /* 79 'O'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
154 /* 80 'P'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
155 /* 81 'Q'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
156 /* 82 'R'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
157 /* 83 'S'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
158 /* 84 'T'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
159 /* 85 'U'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
160 /* 86 'V'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
161 /* 87 'W'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
162 /* 88 'X'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
163 /* 89 'Y'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
164 /* 90 'Z'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISPRINT_|_ISUPPER_,
165 /* 91 '['*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
166 /* 92 '\'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
167 /* 93 ']'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
168 /* 94 '^'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
169 /* 95 '_'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
170 /* 96 '`'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
171 /* 97 'a'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_|_ISXDIGIT_,
172 /* 98 'b'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_|_ISXDIGIT_,
173 /* 99 'c'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_|_ISXDIGIT_,
174 /* 100 'd'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_|_ISXDIGIT_,
175 /* 101 'e'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_|_ISXDIGIT_,
176 /* 102 'f'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_|_ISXDIGIT_,
177 /* 103 'g'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
178 /* 104 'h'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
179 /* 105 'i'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
180 /* 106 'j'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
181 /* 107 'k'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
182 /* 108 'l'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
183 /* 109 'm'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
184 /* 110 'n'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
185 /* 111 'o'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
186 /* 112 'p'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
187 /* 113 'q'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
188 /* 114 'r'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
189 /* 115 's'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
190 /* 116 't'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
191 /* 117 'u'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
192 /* 118 'v'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
193 /* 119 'w'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
194 /* 120 'x'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
195 /* 121 'y'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
196 /* 122 'z'*/ _ISALNUM_|_ISALPHA_|_ISASCII_|_ISGRAPH_|_ISLOWER_|_ISPRINT_,
197 /* 123 '{'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
198 /* 124 '|'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
199 /* 125 '}'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
200 /* 126 '~'*/ _ISASCII_|_ISGRAPH_|_ISPRINT_|_ISPUNCT_,
201 /* 127 '\177'*/ _ISASCII_|_ISCNTRL_
202 };
203
204 #endif /* __LIBC_H_LOADED */