1 # 23 "../../../common/kmdb/kmdb_terminfo_skel.c"
2 
3 /*
4  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
5  * Use is subject to license terms.
6  */
7 
8 #pragma ident	"%Z%%M%	%I%	%E% SMI"
9 
10 /*
11  * kmdb_terminfo_skel.c is the skeleton used to generate
12  * kmdb_terminfo.c, which contains the kmdb-specific version
13  * of terminfo.
14  */
15 
16 #include <strings.h>
17 #include <unistd.h>
18 #include <curses.h>
19 
20 #include <mdb/mdb_io.h>
21 #include <mdb/mdb_debug.h>
22 #include <mdb/mdb.h>
23 
24 typedef enum {
25 	TIO_ATTR_REQSTR,
26 	TIO_ATTR_STR,
27 	TIO_ATTR_BOOL,
28 	TIO_ATTR_INT
29 } termio_attr_type_t;
30 
31 typedef struct {
32 	const char *ta_name;
33 	termio_attr_type_t ta_type;
34 	const void *ta_data;
35 } termio_attr_t;
36 
37 typedef struct {
38 	const char *td_name;
39 	const termio_attr_t *td_data;
40 } termio_desc_t;
41 
42 # 1 "dynamic ansi data from tigen"
43 static const termio_attr_t ansi_attrs[] = {
44 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\033\133\104" },
45 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\133\103" },
46 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\133\101" },
47 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\033\133\102" },
48 	{ "pad", TIO_ATTR_STR, (void *)NULL },
49 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\133\113" },
50 	{ "am", TIO_ATTR_BOOL, (void *)1 },
51 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
52 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
53 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
54 	{ "xon", TIO_ATTR_BOOL, (void *)0 },
55 	{ "cols", TIO_ATTR_INT, (void *)80 },
56 	{ "lines", TIO_ATTR_INT, (void *)24 },
57 	{ "pb", TIO_ATTR_INT, (void *)-1 },
58 	{ "smso", TIO_ATTR_STR, (void *)"\033\133\067\155" },
59 	{ "rmso", TIO_ATTR_STR, (void *)"\033\133\155" },
60 	{ "smul", TIO_ATTR_STR, (void *)"\033\133\064\155" },
61 	{ "rmul", TIO_ATTR_STR, (void *)"\033\133\155" },
62 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
63 	{ "smacs", TIO_ATTR_STR, (void *)"\033\133\061\061\155" },
64 	{ "rmacs", TIO_ATTR_STR, (void *)"\033\133\061\060\155" },
65 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
66 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
67 	{ "rev", TIO_ATTR_STR, (void *)"\033\133\067\155" },
68 	{ "bold", TIO_ATTR_STR, (void *)"\033\133\061\155" },
69 	{ "dim", TIO_ATTR_STR, (void *)NULL },
70 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\133\060\073\061\060\155" },
71 	{ "smir", TIO_ATTR_STR, (void *)NULL },
72 	{ "rmir", TIO_ATTR_STR, (void *)NULL },
73 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
74 	{ "ip", TIO_ATTR_STR, (void *)NULL },
75 	{ "clear", TIO_ATTR_STR, (void *)"\033\133\110\033\133\112" },
76 	{ "cnorm", TIO_ATTR_STR, (void *)NULL },
77 	{ "nel", TIO_ATTR_STR, (void *)"\015\033\133\123" },
78 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
79 	{ NULL, NULL, NULL }
80 };
81 
82 # 1 "dynamic at386 data from tigen"
83 static const termio_attr_t at386_attrs[] = {
84 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\033\133\104" },
85 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\133\103" },
86 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\133\101" },
87 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\033\133\102" },
88 	{ "pad", TIO_ATTR_STR, (void *)NULL },
89 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\133\113" },
90 	{ "am", TIO_ATTR_BOOL, (void *)1 },
91 	{ "bw", TIO_ATTR_BOOL, (void *)1 },
92 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
93 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
94 	{ "xon", TIO_ATTR_BOOL, (void *)1 },
95 	{ "cols", TIO_ATTR_INT, (void *)80 },
96 	{ "lines", TIO_ATTR_INT, (void *)25 },
97 	{ "pb", TIO_ATTR_INT, (void *)-1 },
98 	{ "smso", TIO_ATTR_STR, (void *)"\033\133\067\155" },
99 	{ "rmso", TIO_ATTR_STR, (void *)"\033\133\155" },
100 	{ "smul", TIO_ATTR_STR, (void *)"\033\133\064\155" },
101 	{ "rmul", TIO_ATTR_STR, (void *)"\033\133\155" },
102 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
103 	{ "smacs", TIO_ATTR_STR, (void *)"\033\133\061\062\155" },
104 	{ "rmacs", TIO_ATTR_STR, (void *)"\033\133\061\060\155" },
105 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
106 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
107 	{ "rev", TIO_ATTR_STR, (void *)"\033\133\067\155" },
108 	{ "bold", TIO_ATTR_STR, (void *)"\033\133\061\155" },
109 	{ "dim", TIO_ATTR_STR, (void *)"\033\133\062\155" },
110 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\133\060\073\061\060\155" },
111 	{ "smir", TIO_ATTR_STR, (void *)NULL },
112 	{ "rmir", TIO_ATTR_STR, (void *)NULL },
113 	{ "ich1", TIO_ATTR_STR, (void *)"\033\133\061\100" },
114 	{ "ip", TIO_ATTR_STR, (void *)NULL },
115 	{ "clear", TIO_ATTR_STR, (void *)"\033\133\062\112\033\133\110" },
116 	{ "cnorm", TIO_ATTR_STR, (void *)"\033\133\075\061\103" },
117 	{ "nel", TIO_ATTR_STR, (void *)"\015\033\133\123" },
118 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
119 	{ NULL, NULL, NULL }
120 };
121 
122 # 1 "dynamic dtterm data from tigen"
123 static const termio_attr_t dtterm_attrs[] = {
124 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
125 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\133\103" },
126 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\133\101" },
127 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
128 	{ "pad", TIO_ATTR_STR, (void *)NULL },
129 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\133\113" },
130 	{ "am", TIO_ATTR_BOOL, (void *)1 },
131 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
132 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
133 	{ "xenl", TIO_ATTR_BOOL, (void *)1 },
134 	{ "xon", TIO_ATTR_BOOL, (void *)1 },
135 	{ "cols", TIO_ATTR_INT, (void *)80 },
136 	{ "lines", TIO_ATTR_INT, (void *)24 },
137 	{ "pb", TIO_ATTR_INT, (void *)-1 },
138 	{ "smso", TIO_ATTR_STR, (void *)"\033\133\062\073\067\155" },
139 	{ "rmso", TIO_ATTR_STR, (void *)"\033\133\062\062\073\062\067\155" },
140 	{ "smul", TIO_ATTR_STR, (void *)"\033\133\064\155" },
141 	{ "rmul", TIO_ATTR_STR, (void *)"\033\133\062\064\155" },
142 	{ "enacs", TIO_ATTR_STR, (void *)"\033\050\102\033\051\060" },
143 	{ "smacs", TIO_ATTR_STR, (void *)"\016" },
144 	{ "rmacs", TIO_ATTR_STR, (void *)"\017" },
145 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
146 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
147 	{ "rev", TIO_ATTR_STR, (void *)"\033\133\067\155" },
148 	{ "bold", TIO_ATTR_STR, (void *)"\033\133\061\155" },
149 	{ "dim", TIO_ATTR_STR, (void *)"\033\133\062\155" },
150 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\133\155\017" },
151 	{ "smir", TIO_ATTR_STR, (void *)"\033\133\064\150" },
152 	{ "rmir", TIO_ATTR_STR, (void *)"\033\133\064\154" },
153 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
154 	{ "ip", TIO_ATTR_STR, (void *)NULL },
155 	{ "clear", TIO_ATTR_STR, (void *)"\033\133\110\033\133\112" },
156 	{ "cnorm", TIO_ATTR_STR, (void *)"\033\133\077\062\065\150" },
157 	{ "nel", TIO_ATTR_STR, (void *)"\033\105" },
158 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
159 	{ NULL, NULL, NULL }
160 };
161 
162 # 1 "dynamic h19 data from tigen"
163 static const termio_attr_t h19_attrs[] = {
164 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
165 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\103" },
166 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\101" },
167 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\033\102" },
168 	{ "pad", TIO_ATTR_STR, (void *)NULL },
169 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\113" },
170 	{ "am", TIO_ATTR_BOOL, (void *)1 },
171 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
172 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
173 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
174 	{ "xon", TIO_ATTR_BOOL, (void *)0 },
175 	{ "cols", TIO_ATTR_INT, (void *)80 },
176 	{ "lines", TIO_ATTR_INT, (void *)24 },
177 	{ "pb", TIO_ATTR_INT, (void *)-1 },
178 	{ "smso", TIO_ATTR_STR, (void *)"\033\160" },
179 	{ "rmso", TIO_ATTR_STR, (void *)"\033\161" },
180 	{ "smul", TIO_ATTR_STR, (void *)NULL },
181 	{ "rmul", TIO_ATTR_STR, (void *)NULL },
182 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
183 	{ "smacs", TIO_ATTR_STR, (void *)"\033\106" },
184 	{ "rmacs", TIO_ATTR_STR, (void *)"\033\107" },
185 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
186 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
187 	{ "rev", TIO_ATTR_STR, (void *)NULL },
188 	{ "bold", TIO_ATTR_STR, (void *)NULL },
189 	{ "dim", TIO_ATTR_STR, (void *)NULL },
190 	{ "sgr0", TIO_ATTR_STR, (void *)NULL },
191 	{ "smir", TIO_ATTR_STR, (void *)"\033\100" },
192 	{ "rmir", TIO_ATTR_STR, (void *)"\033\117" },
193 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
194 	{ "ip", TIO_ATTR_STR, (void *)"\074\061\056\065\057\076" },
195 	{ "clear", TIO_ATTR_STR, (void *)"\033\105" },
196 	{ "cnorm", TIO_ATTR_STR, (void *)"\033\171\064" },
197 	{ "nel", TIO_ATTR_STR, (void *)NULL },
198 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
199 	{ NULL, NULL, NULL }
200 };
201 
202 # 1 "dynamic sun data from tigen"
203 static const termio_attr_t sun_attrs[] = {
204 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
205 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\133\103" },
206 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\133\101" },
207 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
208 	{ "pad", TIO_ATTR_STR, (void *)NULL },
209 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\133\113" },
210 	{ "am", TIO_ATTR_BOOL, (void *)1 },
211 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
212 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
213 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
214 	{ "xon", TIO_ATTR_BOOL, (void *)0 },
215 	{ "cols", TIO_ATTR_INT, (void *)80 },
216 	{ "lines", TIO_ATTR_INT, (void *)34 },
217 	{ "pb", TIO_ATTR_INT, (void *)-1 },
218 	{ "smso", TIO_ATTR_STR, (void *)"\033\133\067\155" },
219 	{ "rmso", TIO_ATTR_STR, (void *)"\033\133\155" },
220 	{ "smul", TIO_ATTR_STR, (void *)NULL },
221 	{ "rmul", TIO_ATTR_STR, (void *)NULL },
222 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
223 	{ "smacs", TIO_ATTR_STR, (void *)NULL },
224 	{ "rmacs", TIO_ATTR_STR, (void *)NULL },
225 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
226 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
227 	{ "rev", TIO_ATTR_STR, (void *)"\033\133\067\155" },
228 	{ "bold", TIO_ATTR_STR, (void *)NULL },
229 	{ "dim", TIO_ATTR_STR, (void *)NULL },
230 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\133\155" },
231 	{ "smir", TIO_ATTR_STR, (void *)NULL },
232 	{ "rmir", TIO_ATTR_STR, (void *)NULL },
233 	{ "ich1", TIO_ATTR_STR, (void *)"\033\133\100" },
234 	{ "ip", TIO_ATTR_STR, (void *)NULL },
235 	{ "clear", TIO_ATTR_STR, (void *)"\014" },
236 	{ "cnorm", TIO_ATTR_STR, (void *)NULL },
237 	{ "nel", TIO_ATTR_STR, (void *)NULL },
238 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
239 	{ NULL, NULL, NULL }
240 };
241 
242 # 1 "dynamic sun-cmd data from tigen"
243 static const termio_attr_t sun_cmd_attrs[] = {
244 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
245 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\133\103" },
246 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\133\101" },
247 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
248 	{ "pad", TIO_ATTR_STR, (void *)NULL },
249 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\133\113" },
250 	{ "am", TIO_ATTR_BOOL, (void *)1 },
251 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
252 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
253 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
254 	{ "xon", TIO_ATTR_BOOL, (void *)0 },
255 	{ "cols", TIO_ATTR_INT, (void *)80 },
256 	{ "lines", TIO_ATTR_INT, (void *)35 },
257 	{ "pb", TIO_ATTR_INT, (void *)-1 },
258 	{ "smso", TIO_ATTR_STR, (void *)"\033\133\067\155" },
259 	{ "rmso", TIO_ATTR_STR, (void *)"\033\133\155" },
260 	{ "smul", TIO_ATTR_STR, (void *)NULL },
261 	{ "rmul", TIO_ATTR_STR, (void *)NULL },
262 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
263 	{ "smacs", TIO_ATTR_STR, (void *)NULL },
264 	{ "rmacs", TIO_ATTR_STR, (void *)NULL },
265 	{ "smcup", TIO_ATTR_STR, (void *)"\033\133\076\064\154" },
266 	{ "rmcup", TIO_ATTR_STR, (void *)"\033\133\076\064\150" },
267 	{ "rev", TIO_ATTR_STR, (void *)"\033\133\067\155" },
268 	{ "bold", TIO_ATTR_STR, (void *)NULL },
269 	{ "dim", TIO_ATTR_STR, (void *)NULL },
270 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\133\155" },
271 	{ "smir", TIO_ATTR_STR, (void *)NULL },
272 	{ "rmir", TIO_ATTR_STR, (void *)NULL },
273 	{ "ich1", TIO_ATTR_STR, (void *)"\033\133\100" },
274 	{ "ip", TIO_ATTR_STR, (void *)NULL },
275 	{ "clear", TIO_ATTR_STR, (void *)"\014" },
276 	{ "cnorm", TIO_ATTR_STR, (void *)NULL },
277 	{ "nel", TIO_ATTR_STR, (void *)NULL },
278 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
279 	{ NULL, NULL, NULL }
280 };
281 
282 # 1 "dynamic sun-color data from tigen"
283 static const termio_attr_t sun_color_attrs[] = {
284 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
285 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\133\103" },
286 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\133\101" },
287 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
288 	{ "pad", TIO_ATTR_STR, (void *)NULL },
289 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\133\113" },
290 	{ "am", TIO_ATTR_BOOL, (void *)1 },
291 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
292 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
293 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
294 	{ "xon", TIO_ATTR_BOOL, (void *)0 },
295 	{ "cols", TIO_ATTR_INT, (void *)80 },
296 	{ "lines", TIO_ATTR_INT, (void *)34 },
297 	{ "pb", TIO_ATTR_INT, (void *)-1 },
298 	{ "smso", TIO_ATTR_STR, (void *)"\033\133\061\155" },
299 	{ "rmso", TIO_ATTR_STR, (void *)"\033\133\155" },
300 	{ "smul", TIO_ATTR_STR, (void *)NULL },
301 	{ "rmul", TIO_ATTR_STR, (void *)NULL },
302 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
303 	{ "smacs", TIO_ATTR_STR, (void *)NULL },
304 	{ "rmacs", TIO_ATTR_STR, (void *)NULL },
305 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
306 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
307 	{ "rev", TIO_ATTR_STR, (void *)"\033\133\067\155" },
308 	{ "bold", TIO_ATTR_STR, (void *)NULL },
309 	{ "dim", TIO_ATTR_STR, (void *)NULL },
310 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\133\155" },
311 	{ "smir", TIO_ATTR_STR, (void *)NULL },
312 	{ "rmir", TIO_ATTR_STR, (void *)NULL },
313 	{ "ich1", TIO_ATTR_STR, (void *)"\033\133\100" },
314 	{ "ip", TIO_ATTR_STR, (void *)NULL },
315 	{ "clear", TIO_ATTR_STR, (void *)"\014" },
316 	{ "cnorm", TIO_ATTR_STR, (void *)NULL },
317 	{ "nel", TIO_ATTR_STR, (void *)NULL },
318 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
319 	{ NULL, NULL, NULL }
320 };
321 
322 # 1 "dynamic vt100 data from tigen"
323 static const termio_attr_t vt100_attrs[] = {
324 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
325 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\133\103" },
326 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\133\101" },
327 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
328 	{ "pad", TIO_ATTR_STR, (void *)NULL },
329 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\133\113" },
330 	{ "am", TIO_ATTR_BOOL, (void *)1 },
331 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
332 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
333 	{ "xenl", TIO_ATTR_BOOL, (void *)1 },
334 	{ "xon", TIO_ATTR_BOOL, (void *)1 },
335 	{ "cols", TIO_ATTR_INT, (void *)80 },
336 	{ "lines", TIO_ATTR_INT, (void *)24 },
337 	{ "pb", TIO_ATTR_INT, (void *)-1 },
338 	{ "smso", TIO_ATTR_STR, (void *)"\033\133\067\155" },
339 	{ "rmso", TIO_ATTR_STR, (void *)"\033\133\155" },
340 	{ "smul", TIO_ATTR_STR, (void *)"\033\133\064\155" },
341 	{ "rmul", TIO_ATTR_STR, (void *)"\033\133\155" },
342 	{ "enacs", TIO_ATTR_STR, (void *)"\033\050\102\033\051\060" },
343 	{ "smacs", TIO_ATTR_STR, (void *)"\016" },
344 	{ "rmacs", TIO_ATTR_STR, (void *)"\017" },
345 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
346 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
347 	{ "rev", TIO_ATTR_STR, (void *)"\033\133\067\155" },
348 	{ "bold", TIO_ATTR_STR, (void *)"\033\133\061\155" },
349 	{ "dim", TIO_ATTR_STR, (void *)NULL },
350 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\133\155\017" },
351 	{ "smir", TIO_ATTR_STR, (void *)NULL },
352 	{ "rmir", TIO_ATTR_STR, (void *)NULL },
353 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
354 	{ "ip", TIO_ATTR_STR, (void *)NULL },
355 	{ "clear", TIO_ATTR_STR, (void *)"\033\133\110\033\133\112" },
356 	{ "cnorm", TIO_ATTR_STR, (void *)NULL },
357 	{ "nel", TIO_ATTR_STR, (void *)NULL },
358 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
359 	{ NULL, NULL, NULL }
360 };
361 
362 # 1 "dynamic vt52 data from tigen"
363 static const termio_attr_t vt52_attrs[] = {
364 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\033\104" },
365 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\103" },
366 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\101" },
367 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\033\102" },
368 	{ "pad", TIO_ATTR_STR, (void *)NULL },
369 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\113" },
370 	{ "am", TIO_ATTR_BOOL, (void *)0 },
371 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
372 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
373 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
374 	{ "xon", TIO_ATTR_BOOL, (void *)0 },
375 	{ "cols", TIO_ATTR_INT, (void *)80 },
376 	{ "lines", TIO_ATTR_INT, (void *)24 },
377 	{ "pb", TIO_ATTR_INT, (void *)-1 },
378 	{ "smso", TIO_ATTR_STR, (void *)NULL },
379 	{ "rmso", TIO_ATTR_STR, (void *)NULL },
380 	{ "smul", TIO_ATTR_STR, (void *)NULL },
381 	{ "rmul", TIO_ATTR_STR, (void *)NULL },
382 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
383 	{ "smacs", TIO_ATTR_STR, (void *)"\033\106" },
384 	{ "rmacs", TIO_ATTR_STR, (void *)"\033\107" },
385 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
386 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
387 	{ "rev", TIO_ATTR_STR, (void *)NULL },
388 	{ "bold", TIO_ATTR_STR, (void *)NULL },
389 	{ "dim", TIO_ATTR_STR, (void *)NULL },
390 	{ "sgr0", TIO_ATTR_STR, (void *)NULL },
391 	{ "smir", TIO_ATTR_STR, (void *)NULL },
392 	{ "rmir", TIO_ATTR_STR, (void *)NULL },
393 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
394 	{ "ip", TIO_ATTR_STR, (void *)NULL },
395 	{ "clear", TIO_ATTR_STR, (void *)"\033\110\033\112" },
396 	{ "cnorm", TIO_ATTR_STR, (void *)NULL },
397 	{ "nel", TIO_ATTR_STR, (void *)"\015\012" },
398 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
399 	{ NULL, NULL, NULL }
400 };
401 
402 # 1 "dynamic wyse30 data from tigen"
403 static const termio_attr_t wyse30_attrs[] = {
404 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
405 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\014" },
406 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\013" },
407 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
408 	{ "pad", TIO_ATTR_STR, (void *)NULL },
409 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\124" },
410 	{ "am", TIO_ATTR_BOOL, (void *)1 },
411 	{ "bw", TIO_ATTR_BOOL, (void *)1 },
412 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
413 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
414 	{ "xon", TIO_ATTR_BOOL, (void *)1 },
415 	{ "cols", TIO_ATTR_INT, (void *)80 },
416 	{ "lines", TIO_ATTR_INT, (void *)24 },
417 	{ "pb", TIO_ATTR_INT, (void *)-1 },
418 	{ "smso", TIO_ATTR_STR, (void *)"\033\140\067\033\051" },
419 	{ "rmso", TIO_ATTR_STR, (void *)"\033\050" },
420 	{ "smul", TIO_ATTR_STR, (void *)NULL },
421 	{ "rmul", TIO_ATTR_STR, (void *)NULL },
422 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
423 	{ "smacs", TIO_ATTR_STR, (void *)"\033\110\002" },
424 	{ "rmacs", TIO_ATTR_STR, (void *)"\033\110\003" },
425 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
426 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
427 	{ "rev", TIO_ATTR_STR, (void *)NULL },
428 	{ "bold", TIO_ATTR_STR, (void *)NULL },
429 	{ "dim", TIO_ATTR_STR, (void *)"\033\140\067\033\051" },
430 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\050\033\110\003" },
431 	{ "smir", TIO_ATTR_STR, (void *)"\033\161" },
432 	{ "rmir", TIO_ATTR_STR, (void *)"\033\162" },
433 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
434 	{ "ip", TIO_ATTR_STR, (void *)NULL },
435 	{ "clear", TIO_ATTR_STR, (void *)"\033\053" },
436 	{ "cnorm", TIO_ATTR_STR, (void *)"\033\140\061" },
437 	{ "nel", TIO_ATTR_STR, (void *)"\015\012" },
438 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
439 	{ NULL, NULL, NULL }
440 };
441 
442 # 1 "dynamic wyse50 data from tigen"
443 static const termio_attr_t wyse50_attrs[] = {
444 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
445 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\014" },
446 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\013" },
447 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
448 	{ "pad", TIO_ATTR_STR, (void *)NULL },
449 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\124" },
450 	{ "am", TIO_ATTR_BOOL, (void *)1 },
451 	{ "bw", TIO_ATTR_BOOL, (void *)1 },
452 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
453 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
454 	{ "xon", TIO_ATTR_BOOL, (void *)1 },
455 	{ "cols", TIO_ATTR_INT, (void *)80 },
456 	{ "lines", TIO_ATTR_INT, (void *)24 },
457 	{ "pb", TIO_ATTR_INT, (void *)-1 },
458 	{ "smso", TIO_ATTR_STR, (void *)"\033\140\066\033\051" },
459 	{ "rmso", TIO_ATTR_STR, (void *)"\033\050" },
460 	{ "smul", TIO_ATTR_STR, (void *)NULL },
461 	{ "rmul", TIO_ATTR_STR, (void *)NULL },
462 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
463 	{ "smacs", TIO_ATTR_STR, (void *)"\033\110\002" },
464 	{ "rmacs", TIO_ATTR_STR, (void *)"\033\110\003" },
465 	{ "smcup", TIO_ATTR_STR, (void *)NULL },
466 	{ "rmcup", TIO_ATTR_STR, (void *)NULL },
467 	{ "rev", TIO_ATTR_STR, (void *)"\033\140\066\033\051" },
468 	{ "bold", TIO_ATTR_STR, (void *)NULL },
469 	{ "dim", TIO_ATTR_STR, (void *)"\033\140\067\033\051" },
470 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\050\033\110\003" },
471 	{ "smir", TIO_ATTR_STR, (void *)"\033\161" },
472 	{ "rmir", TIO_ATTR_STR, (void *)"\033\162" },
473 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
474 	{ "ip", TIO_ATTR_STR, (void *)NULL },
475 	{ "clear", TIO_ATTR_STR, (void *)"\033\053" },
476 	{ "cnorm", TIO_ATTR_STR, (void *)"\033\140\061" },
477 	{ "nel", TIO_ATTR_STR, (void *)"\015\012" },
478 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
479 	{ NULL, NULL, NULL }
480 };
481 
482 # 1 "dynamic wyse60 data from tigen"
483 static const termio_attr_t wyse60_attrs[] = {
484 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
485 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\014" },
486 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\013" },
487 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
488 	{ "pad", TIO_ATTR_STR, (void *)NULL },
489 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\124" },
490 	{ "am", TIO_ATTR_BOOL, (void *)1 },
491 	{ "bw", TIO_ATTR_BOOL, (void *)1 },
492 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
493 	{ "xenl", TIO_ATTR_BOOL, (void *)0 },
494 	{ "xon", TIO_ATTR_BOOL, (void *)0 },
495 	{ "cols", TIO_ATTR_INT, (void *)80 },
496 	{ "lines", TIO_ATTR_INT, (void *)24 },
497 	{ "pb", TIO_ATTR_INT, (void *)-1 },
498 	{ "smso", TIO_ATTR_STR, (void *)"\033\107\164" },
499 	{ "rmso", TIO_ATTR_STR, (void *)"\033\107\060" },
500 	{ "smul", TIO_ATTR_STR, (void *)"\033\107\070" },
501 	{ "rmul", TIO_ATTR_STR, (void *)"\033\107\060" },
502 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
503 	{ "smacs", TIO_ATTR_STR, (void *)"\033\143\105" },
504 	{ "rmacs", TIO_ATTR_STR, (void *)"\033\143\104" },
505 	{ "smcup", TIO_ATTR_STR, (void *)"\033\167\060" },
506 	{ "rmcup", TIO_ATTR_STR, (void *)"\033\167\061" },
507 	{ "rev", TIO_ATTR_STR, (void *)"\033\107\064" },
508 	{ "bold", TIO_ATTR_STR, (void *)NULL },
509 	{ "dim", TIO_ATTR_STR, (void *)"\033\107\160" },
510 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\050\033\110\003\033\107\060\033\143\104" },
511 	{ "smir", TIO_ATTR_STR, (void *)"\033\161" },
512 	{ "rmir", TIO_ATTR_STR, (void *)"\033\162" },
513 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
514 	{ "ip", TIO_ATTR_STR, (void *)NULL },
515 	{ "clear", TIO_ATTR_STR, (void *)"\033\053" },
516 	{ "cnorm", TIO_ATTR_STR, (void *)"\033\140\061" },
517 	{ "nel", TIO_ATTR_STR, (void *)"\015\012" },
518 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
519 	{ NULL, NULL, NULL }
520 };
521 
522 # 1 "dynamic xterm data from tigen"
523 static const termio_attr_t xterm_attrs[] = {
524 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
525 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\133\103" },
526 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\133\101" },
527 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
528 	{ "pad", TIO_ATTR_STR, (void *)NULL },
529 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\133\113" },
530 	{ "am", TIO_ATTR_BOOL, (void *)1 },
531 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
532 	{ "npc", TIO_ATTR_BOOL, (void *)1 },
533 	{ "xenl", TIO_ATTR_BOOL, (void *)1 },
534 	{ "xon", TIO_ATTR_BOOL, (void *)0 },
535 	{ "cols", TIO_ATTR_INT, (void *)80 },
536 	{ "lines", TIO_ATTR_INT, (void *)24 },
537 	{ "pb", TIO_ATTR_INT, (void *)-1 },
538 	{ "smso", TIO_ATTR_STR, (void *)"\033\133\067\155" },
539 	{ "rmso", TIO_ATTR_STR, (void *)"\033\133\062\067\155" },
540 	{ "smul", TIO_ATTR_STR, (void *)"\033\133\064\155" },
541 	{ "rmul", TIO_ATTR_STR, (void *)"\033\133\062\064\155" },
542 	{ "enacs", TIO_ATTR_STR, (void *)NULL },
543 	{ "smacs", TIO_ATTR_STR, (void *)"\033\050\060" },
544 	{ "rmacs", TIO_ATTR_STR, (void *)"\033\050\102" },
545 	{ "smcup", TIO_ATTR_STR, (void *)"\033\133\077\061\060\064\071\150" },
546 	{ "rmcup", TIO_ATTR_STR, (void *)"\033\133\077\061\060\064\071\154" },
547 	{ "rev", TIO_ATTR_STR, (void *)"\033\133\067\155" },
548 	{ "bold", TIO_ATTR_STR, (void *)"\033\133\061\155" },
549 	{ "dim", TIO_ATTR_STR, (void *)NULL },
550 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\050\102\033\133\155" },
551 	{ "smir", TIO_ATTR_STR, (void *)"\033\133\064\150" },
552 	{ "rmir", TIO_ATTR_STR, (void *)"\033\133\064\154" },
553 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
554 	{ "ip", TIO_ATTR_STR, (void *)NULL },
555 	{ "clear", TIO_ATTR_STR, (void *)"\033\133\110\033\133\062\112" },
556 	{ "cnorm", TIO_ATTR_STR, (void *)"\033\133\077\061\062\154\033\133\077\062\065\150" },
557 	{ "nel", TIO_ATTR_STR, (void *)NULL },
558 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
559 	{ NULL, NULL, NULL }
560 };
561 
562 # 1 "dynamic xterms data from tigen"
563 static const termio_attr_t xterms_attrs[] = {
564 	{ "cub1", TIO_ATTR_REQSTR, (void *)"\010" },
565 	{ "cuf1", TIO_ATTR_REQSTR, (void *)"\033\133\103" },
566 	{ "cuu1", TIO_ATTR_REQSTR, (void *)"\033\133\101" },
567 	{ "cud1", TIO_ATTR_REQSTR, (void *)"\012" },
568 	{ "pad", TIO_ATTR_STR, (void *)NULL },
569 	{ "el", TIO_ATTR_REQSTR, (void *)"\033\133\113" },
570 	{ "am", TIO_ATTR_BOOL, (void *)1 },
571 	{ "bw", TIO_ATTR_BOOL, (void *)0 },
572 	{ "npc", TIO_ATTR_BOOL, (void *)0 },
573 	{ "xenl", TIO_ATTR_BOOL, (void *)1 },
574 	{ "xon", TIO_ATTR_BOOL, (void *)0 },
575 	{ "cols", TIO_ATTR_INT, (void *)80 },
576 	{ "lines", TIO_ATTR_INT, (void *)24 },
577 	{ "pb", TIO_ATTR_INT, (void *)-1 },
578 	{ "smso", TIO_ATTR_STR, (void *)"\033\133\067\155" },
579 	{ "rmso", TIO_ATTR_STR, (void *)"\033\133\155" },
580 	{ "smul", TIO_ATTR_STR, (void *)"\033\133\064\155" },
581 	{ "rmul", TIO_ATTR_STR, (void *)"\033\133\155" },
582 	{ "enacs", TIO_ATTR_STR, (void *)"\033\051\060" },
583 	{ "smacs", TIO_ATTR_STR, (void *)"\016" },
584 	{ "rmacs", TIO_ATTR_STR, (void *)"\017" },
585 	{ "smcup", TIO_ATTR_STR, (void *)"\033\067\033\133\077\064\067\150" },
586 	{ "rmcup", TIO_ATTR_STR, (void *)"\033\133\062\112\033\133\077\064\067\154\033\070" },
587 	{ "rev", TIO_ATTR_STR, (void *)"\033\133\067\155" },
588 	{ "bold", TIO_ATTR_STR, (void *)"\033\133\061\155" },
589 	{ "dim", TIO_ATTR_STR, (void *)NULL },
590 	{ "sgr0", TIO_ATTR_STR, (void *)"\033\133\155" },
591 	{ "smir", TIO_ATTR_STR, (void *)"\033\133\064\150" },
592 	{ "rmir", TIO_ATTR_STR, (void *)"\033\133\064\154" },
593 	{ "ich1", TIO_ATTR_STR, (void *)NULL },
594 	{ "ip", TIO_ATTR_STR, (void *)NULL },
595 	{ "clear", TIO_ATTR_STR, (void *)"\033\133\110\033\133\062\112" },
596 	{ "cnorm", TIO_ATTR_STR, (void *)NULL },
597 	{ "nel", TIO_ATTR_STR, (void *)NULL },
598 	{ "cr", TIO_ATTR_STR, (void *)"\015" },
599 	{ NULL, NULL, NULL }
600 };
601 
602 # 1 "dynamic array from tigen"
603 static const termio_desc_t termio_db[] = {
604 	{ "ansi", ansi_attrs },
605 	{ "at386", at386_attrs },
606 	{ "dtterm", dtterm_attrs },
607 	{ "h19", h19_attrs },
608 	{ "sun", sun_attrs },
609 	{ "sun-cmd", sun_cmd_attrs },
610 	{ "sun-color", sun_color_attrs },
611 	{ "vt100", vt100_attrs },
612 	{ "vt52", vt52_attrs },
613 	{ "wyse30", wyse30_attrs },
614 	{ "wyse50", wyse50_attrs },
615 	{ "wyse60", wyse60_attrs },
616 	{ "xterm", xterm_attrs },
617 	{ "xterms", xterms_attrs },
618 	{ NULL, NULL }
619 };
620 # 73 "../../../common/kmdb/kmdb_terminfo_skel.c"
621 
622 static const termio_desc_t *tdp;
623 
624 /*ARGSUSED*/
625 int
626 setupterm(char *name, int fd, int *err)
627 {
628 	for (tdp = termio_db; tdp->td_name != NULL; tdp++) {
629 		if (strcmp(tdp->td_name, name) == 0)
630 			return (OK);
631 	}
632 
633 	*err = 0;
634 	return (ERR);
635 }
636 
637 int
638 restartterm(char *name, int fd, int *err)
639 {
640 	const termio_desc_t *otdp = tdp;
641 	int status;
642 
643 	if ((status = setupterm(name, fd, err)) != OK)
644 		tdp = otdp; /* restore old terminal settings */
645 
646 	return (status);
647 }
648 
649 const char *
650 tigetstr(const char *name)
651 {
652 	const termio_attr_t *tap;
653 
654 	for (tap = tdp->td_data; tap->ta_name != NULL; tap++) {
655 		if (strcmp(tap->ta_name, name) == 0) {
656 			if (tap->ta_type == TIO_ATTR_REQSTR ||
657 			    tap->ta_type == TIO_ATTR_STR)
658 				return (tap->ta_data);
659 			else
660 				return ((char *)-1);
661 		}
662 	}
663 
664 	return (NULL);
665 }
666 
667 int
668 tigetflag(const char *name)
669 {
670 	const termio_attr_t *tap;
671 
672 	for (tap = tdp->td_data; tap->ta_name != NULL; tap++) {
673 		if (strcmp(tap->ta_name, name) == 0) {
674 			if (tap->ta_type == TIO_ATTR_BOOL)
675 				return ((uintptr_t)tap->ta_data);
676 			else
677 				return (-1);
678 		}
679 	}
680 
681 	return (0);
682 }
683 
684 int
685 tigetnum(const char *name)
686 {
687 	const termio_attr_t *tap;
688 
689 	for (tap = tdp->td_data; tap->ta_name != NULL; tap++) {
690 		if (strcmp(tap->ta_name, name) == 0) {
691 			if (tap->ta_type == TIO_ATTR_INT)
692 				return ((uintptr_t)tap->ta_data);
693 			else
694 				return (-2);
695 		}
696 	}
697 
698 	return (-1);
699 }
700 
701