• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //! Terminal I/O stream operations.
2 
3 #[cfg(not(target_os = "wasi"))]
4 mod cf;
5 #[cfg(not(target_os = "wasi"))]
6 mod constants;
7 #[cfg(not(target_os = "wasi"))]
8 mod tc;
9 #[cfg(not(windows))]
10 mod tty;
11 
12 #[cfg(not(target_os = "wasi"))]
13 pub use cf::{cfgetispeed, cfgetospeed, cfmakeraw, cfsetispeed, cfsetospeed, cfsetspeed};
14 #[cfg(not(any(
15     target_os = "dragonfly",
16     target_os = "freebsd",
17     target_os = "haiku",
18     target_os = "ios",
19     target_os = "macos",
20     target_os = "netbsd",
21     target_os = "openbsd",
22     target_os = "solaris",
23     target_os = "wasi",
24 )))]
25 pub use constants::B1000000;
26 #[cfg(not(any(
27     target_os = "dragonfly",
28     target_os = "freebsd",
29     target_os = "haiku",
30     target_os = "ios",
31     target_os = "macos",
32     target_os = "netbsd",
33     target_os = "openbsd",
34     target_os = "solaris",
35     target_os = "wasi",
36 )))]
37 pub use constants::B1152000;
38 #[cfg(not(any(
39     target_os = "dragonfly",
40     target_os = "freebsd",
41     target_os = "haiku",
42     target_os = "ios",
43     target_os = "macos",
44     target_os = "netbsd",
45     target_os = "openbsd",
46     target_os = "solaris",
47     target_os = "wasi",
48 )))]
49 pub use constants::B1500000;
50 #[cfg(not(any(
51     target_os = "dragonfly",
52     target_os = "freebsd",
53     target_os = "haiku",
54     target_os = "ios",
55     target_os = "macos",
56     target_os = "netbsd",
57     target_os = "openbsd",
58     target_os = "solaris",
59     target_os = "wasi",
60 )))]
61 pub use constants::B2000000;
62 #[cfg(not(any(
63     target_arch = "sparc",
64     target_arch = "sparc64",
65     target_os = "dragonfly",
66     target_os = "freebsd",
67     target_os = "haiku",
68     target_os = "ios",
69     target_os = "macos",
70     target_os = "netbsd",
71     target_os = "openbsd",
72     target_os = "solaris",
73     target_os = "wasi",
74 )))]
75 pub use constants::B2500000;
76 #[cfg(not(any(
77     target_arch = "sparc",
78     target_arch = "sparc64",
79     target_os = "dragonfly",
80     target_os = "freebsd",
81     target_os = "haiku",
82     target_os = "ios",
83     target_os = "macos",
84     target_os = "netbsd",
85     target_os = "openbsd",
86     target_os = "solaris",
87     target_os = "wasi",
88 )))]
89 pub use constants::B3000000;
90 #[cfg(not(any(
91     target_arch = "sparc",
92     target_arch = "sparc64",
93     target_os = "dragonfly",
94     target_os = "freebsd",
95     target_os = "haiku",
96     target_os = "ios",
97     target_os = "macos",
98     target_os = "netbsd",
99     target_os = "openbsd",
100     target_os = "solaris",
101     target_os = "wasi",
102 )))]
103 pub use constants::B3500000;
104 #[cfg(not(any(
105     target_arch = "sparc",
106     target_arch = "sparc64",
107     target_os = "dragonfly",
108     target_os = "freebsd",
109     target_os = "haiku",
110     target_os = "ios",
111     target_os = "macos",
112     target_os = "netbsd",
113     target_os = "openbsd",
114     target_os = "solaris",
115     target_os = "wasi",
116 )))]
117 pub use constants::B4000000;
118 #[cfg(not(any(
119     target_os = "dragonfly",
120     target_os = "haiku",
121     target_os = "ios",
122     target_os = "macos",
123     target_os = "openbsd",
124     target_os = "wasi",
125 )))]
126 pub use constants::B460800;
127 #[cfg(not(any(
128     target_os = "dragonfly",
129     target_os = "freebsd",
130     target_os = "haiku",
131     target_os = "illumos",
132     target_os = "ios",
133     target_os = "macos",
134     target_os = "netbsd",
135     target_os = "openbsd",
136     target_os = "solaris",
137     target_os = "wasi",
138 )))]
139 pub use constants::B500000;
140 #[cfg(not(any(
141     target_os = "dragonfly",
142     target_os = "freebsd",
143     target_os = "haiku",
144     target_os = "illumos",
145     target_os = "ios",
146     target_os = "macos",
147     target_os = "netbsd",
148     target_os = "openbsd",
149     target_os = "solaris",
150     target_os = "wasi",
151 )))]
152 pub use constants::B576000;
153 #[cfg(not(any(
154     target_os = "dragonfly",
155     target_os = "haiku",
156     target_os = "ios",
157     target_os = "macos",
158     target_os = "openbsd",
159     target_os = "wasi",
160 )))]
161 pub use constants::B921600;
162 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
163 pub use constants::BRKINT;
164 #[cfg(not(any(
165     target_os = "dragonfly",
166     target_os = "freebsd",
167     target_os = "fuchsia",
168     target_os = "illumos",
169     target_os = "ios",
170     target_os = "macos",
171     target_os = "netbsd",
172     target_os = "openbsd",
173     target_os = "redox",
174     target_os = "solaris",
175     target_os = "wasi",
176 )))]
177 pub use constants::BS0;
178 #[cfg(not(any(
179     all(libc, target_env = "musl"),
180     target_os = "dragonfly",
181     target_os = "emscripten",
182     target_os = "freebsd",
183     target_os = "fuchsia",
184     target_os = "illumos",
185     target_os = "ios",
186     target_os = "macos",
187     target_os = "netbsd",
188     target_os = "openbsd",
189     target_os = "redox",
190     target_os = "solaris",
191     target_os = "wasi",
192 )))]
193 pub use constants::BS1;
194 #[cfg(not(any(
195     target_os = "dragonfly",
196     target_os = "freebsd",
197     target_os = "illumos",
198     target_os = "ios",
199     target_os = "macos",
200     target_os = "netbsd",
201     target_os = "openbsd",
202     target_os = "redox",
203     target_os = "solaris",
204     target_os = "wasi",
205 )))]
206 pub use constants::BSDLY;
207 #[cfg(not(any(
208     target_os = "dragonfly",
209     target_os = "freebsd",
210     target_os = "haiku",
211     target_os = "ios",
212     target_os = "macos",
213     target_os = "netbsd",
214     target_os = "openbsd",
215     target_os = "redox",
216     target_os = "wasi",
217 )))]
218 pub use constants::CBAUD;
219 #[cfg(not(any(
220     target_os = "dragonfly",
221     target_os = "freebsd",
222     target_os = "haiku",
223     target_os = "illumos",
224     target_os = "ios",
225     target_os = "macos",
226     target_os = "netbsd",
227     target_os = "openbsd",
228     target_os = "redox",
229     target_os = "solaris",
230     target_os = "wasi",
231 )))]
232 pub use constants::CBAUDEX;
233 #[cfg(not(any(
234     target_os = "dragonfly",
235     target_os = "emscripten",
236     target_os = "freebsd",
237     target_os = "haiku",
238     target_os = "ios",
239     target_os = "macos",
240     target_os = "netbsd",
241     target_os = "openbsd",
242     target_os = "redox",
243     target_os = "wasi",
244 )))]
245 pub use constants::CIBAUD;
246 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
247 pub use constants::CLOCAL;
248 #[cfg(not(any(
249     target_os = "dragonfly",
250     target_os = "emscripten",
251     target_os = "freebsd",
252     target_os = "haiku",
253     target_os = "illumos",
254     target_os = "ios",
255     target_os = "macos",
256     target_os = "netbsd",
257     target_os = "openbsd",
258     target_os = "redox",
259     target_os = "solaris",
260     target_os = "wasi",
261 )))]
262 pub use constants::CMSPAR;
263 #[cfg(not(any(
264     target_os = "dragonfly",
265     target_os = "freebsd",
266     target_os = "fuchsia",
267     target_os = "illumos",
268     target_os = "ios",
269     target_os = "macos",
270     target_os = "netbsd",
271     target_os = "openbsd",
272     target_os = "redox",
273     target_os = "solaris",
274     target_os = "wasi",
275 )))]
276 pub use constants::CR0;
277 #[cfg(not(any(
278     all(libc, target_env = "musl"),
279     target_os = "dragonfly",
280     target_os = "emscripten",
281     target_os = "freebsd",
282     target_os = "fuchsia",
283     target_os = "illumos",
284     target_os = "ios",
285     target_os = "macos",
286     target_os = "netbsd",
287     target_os = "openbsd",
288     target_os = "redox",
289     target_os = "solaris",
290     target_os = "wasi",
291 )))]
292 pub use constants::CR1;
293 #[cfg(not(any(
294     all(libc, target_env = "musl"),
295     target_os = "dragonfly",
296     target_os = "emscripten",
297     target_os = "freebsd",
298     target_os = "fuchsia",
299     target_os = "illumos",
300     target_os = "ios",
301     target_os = "macos",
302     target_os = "netbsd",
303     target_os = "openbsd",
304     target_os = "redox",
305     target_os = "solaris",
306     target_os = "wasi",
307 )))]
308 pub use constants::CR2;
309 #[cfg(not(any(
310     all(libc, target_env = "musl"),
311     target_os = "dragonfly",
312     target_os = "emscripten",
313     target_os = "freebsd",
314     target_os = "fuchsia",
315     target_os = "illumos",
316     target_os = "ios",
317     target_os = "macos",
318     target_os = "netbsd",
319     target_os = "openbsd",
320     target_os = "redox",
321     target_os = "solaris",
322     target_os = "wasi",
323 )))]
324 pub use constants::CR3;
325 #[cfg(not(any(
326     target_os = "dragonfly",
327     target_os = "freebsd",
328     target_os = "illumos",
329     target_os = "ios",
330     target_os = "macos",
331     target_os = "netbsd",
332     target_os = "openbsd",
333     target_os = "redox",
334     target_os = "solaris",
335     target_os = "wasi",
336 )))]
337 pub use constants::CRDLY;
338 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
339 pub use constants::CREAD;
340 #[cfg(not(any(
341     target_os = "ios",
342     target_os = "macos",
343     target_os = "redox",
344     target_os = "wasi"
345 )))]
346 pub use constants::CRTSCTS;
347 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
348 pub use constants::CS5;
349 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
350 pub use constants::CS6;
351 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
352 pub use constants::CS7;
353 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
354 pub use constants::CS8;
355 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
356 pub use constants::CSIZE;
357 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
358 pub use constants::CSTOPB;
359 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
360 pub use constants::ECHO;
361 #[cfg(not(any(
362     target_os = "ios",
363     target_os = "macos",
364     target_os = "redox",
365     target_os = "wasi"
366 )))]
367 pub use constants::ECHOCTL;
368 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
369 pub use constants::ECHOE;
370 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
371 pub use constants::ECHOK;
372 #[cfg(not(any(
373     target_os = "ios",
374     target_os = "macos",
375     target_os = "redox",
376     target_os = "wasi"
377 )))]
378 pub use constants::ECHOKE;
379 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
380 pub use constants::ECHONL;
381 #[cfg(not(any(
382     target_os = "ios",
383     target_os = "macos",
384     target_os = "redox",
385     target_os = "wasi"
386 )))]
387 pub use constants::ECHOPRT;
388 #[cfg(not(any(
389     target_os = "emscripten",
390     target_os = "haiku",
391     target_os = "illumos",
392     target_os = "ios",
393     target_os = "macos",
394     target_os = "redox",
395     target_os = "solaris",
396     target_os = "wasi",
397 )))]
398 pub use constants::EXTA;
399 #[cfg(not(any(
400     target_os = "emscripten",
401     target_os = "haiku",
402     target_os = "illumos",
403     target_os = "ios",
404     target_os = "macos",
405     target_os = "redox",
406     target_os = "solaris",
407     target_os = "wasi",
408 )))]
409 pub use constants::EXTB;
410 #[cfg(not(any(
411     target_os = "haiku",
412     target_os = "ios",
413     target_os = "macos",
414     target_os = "redox",
415     target_os = "wasi",
416 )))]
417 pub use constants::EXTPROC;
418 #[cfg(not(any(
419     target_os = "dragonfly",
420     target_os = "freebsd",
421     target_os = "fuchsia",
422     target_os = "illumos",
423     target_os = "ios",
424     target_os = "macos",
425     target_os = "netbsd",
426     target_os = "openbsd",
427     target_os = "redox",
428     target_os = "solaris",
429     target_os = "wasi",
430 )))]
431 pub use constants::FF0;
432 #[cfg(not(any(
433     all(libc, target_env = "musl"),
434     target_os = "dragonfly",
435     target_os = "emscripten",
436     target_os = "freebsd",
437     target_os = "fuchsia",
438     target_os = "illumos",
439     target_os = "ios",
440     target_os = "macos",
441     target_os = "netbsd",
442     target_os = "openbsd",
443     target_os = "redox",
444     target_os = "solaris",
445     target_os = "wasi",
446 )))]
447 pub use constants::FF1;
448 #[cfg(not(any(
449     all(libc, target_env = "musl"),
450     target_os = "dragonfly",
451     target_os = "freebsd",
452     target_os = "illumos",
453     target_os = "ios",
454     target_os = "macos",
455     target_os = "netbsd",
456     target_os = "openbsd",
457     target_os = "redox",
458     target_os = "solaris",
459     target_os = "wasi",
460 )))]
461 pub use constants::FFDLY;
462 #[cfg(not(any(
463     target_os = "ios",
464     target_os = "macos",
465     target_os = "redox",
466     target_os = "wasi"
467 )))]
468 pub use constants::FLUSHO;
469 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
470 pub use constants::HUPCL;
471 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
472 pub use constants::ICRNL;
473 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
474 pub use constants::IEXTEN;
475 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
476 pub use constants::IGNBRK;
477 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
478 pub use constants::IGNCR;
479 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
480 pub use constants::IGNPAR;
481 #[cfg(not(any(
482     target_os = "haiku",
483     target_os = "ios",
484     target_os = "macos",
485     target_os = "redox",
486     target_os = "wasi",
487 )))]
488 pub use constants::IMAXBEL;
489 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
490 pub use constants::INLCR;
491 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
492 pub use constants::INPCK;
493 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
494 pub use constants::ISIG;
495 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
496 pub use constants::ISTRIP;
497 #[cfg(any(
498     linux_raw,
499     all(
500         libc,
501         any(target_os = "haiku", target_os = "illumos", target_os = "solaris"),
502     )
503 ))]
504 pub use constants::IUCLC;
505 #[cfg(not(any(
506     target_os = "dragonfly",
507     target_os = "emscripten",
508     target_os = "freebsd",
509     target_os = "haiku",
510     target_os = "illumos",
511     target_os = "ios",
512     target_os = "macos",
513     target_os = "netbsd",
514     target_os = "openbsd",
515     target_os = "redox",
516     target_os = "solaris",
517     target_os = "wasi",
518 )))]
519 pub use constants::IUTF8;
520 #[cfg(not(any(
521     target_os = "ios",
522     target_os = "macos",
523     target_os = "redox",
524     target_os = "wasi"
525 )))]
526 pub use constants::IXANY;
527 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
528 pub use constants::IXOFF;
529 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
530 pub use constants::IXON;
531 #[cfg(not(any(
532     target_os = "dragonfly",
533     target_os = "freebsd",
534     target_os = "fuchsia",
535     target_os = "illumos",
536     target_os = "ios",
537     target_os = "macos",
538     target_os = "netbsd",
539     target_os = "openbsd",
540     target_os = "redox",
541     target_os = "solaris",
542     target_os = "wasi",
543 )))]
544 pub use constants::NL0;
545 #[cfg(not(any(
546     target_os = "dragonfly",
547     target_os = "freebsd",
548     target_os = "fuchsia",
549     target_os = "illumos",
550     target_os = "ios",
551     target_os = "macos",
552     target_os = "netbsd",
553     target_os = "openbsd",
554     target_os = "redox",
555     target_os = "solaris",
556     target_os = "wasi",
557 )))]
558 pub use constants::NL1;
559 #[cfg(not(any(
560     target_os = "dragonfly",
561     target_os = "freebsd",
562     target_os = "illumos",
563     target_os = "ios",
564     target_os = "macos",
565     target_os = "netbsd",
566     target_os = "openbsd",
567     target_os = "redox",
568     target_os = "solaris",
569     target_os = "wasi",
570 )))]
571 pub use constants::NLDLY;
572 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
573 pub use constants::NOFLSH;
574 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
575 pub use constants::OCRNL;
576 #[cfg(not(any(
577     target_os = "dragonfly",
578     target_os = "freebsd",
579     target_os = "ios",
580     target_os = "macos",
581     target_os = "netbsd",
582     target_os = "openbsd",
583     target_os = "wasi",
584 )))]
585 pub use constants::OFDEL;
586 #[cfg(not(any(
587     target_os = "dragonfly",
588     target_os = "freebsd",
589     target_os = "ios",
590     target_os = "macos",
591     target_os = "netbsd",
592     target_os = "openbsd",
593     target_os = "wasi",
594 )))]
595 pub use constants::OFILL;
596 #[cfg(not(any(
597     target_os = "dragonfly",
598     target_os = "freebsd",
599     target_os = "ios",
600     target_os = "macos",
601     target_os = "netbsd",
602     target_os = "redox",
603     target_os = "wasi",
604 )))]
605 pub use constants::OLCUC;
606 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
607 pub use constants::ONLCR;
608 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
609 pub use constants::ONLRET;
610 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
611 pub use constants::ONOCR;
612 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
613 pub use constants::OPOST;
614 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
615 pub use constants::PARENB;
616 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
617 pub use constants::PARMRK;
618 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
619 pub use constants::PARODD;
620 #[cfg(not(any(
621     target_os = "ios",
622     target_os = "macos",
623     target_os = "redox",
624     target_os = "wasi"
625 )))]
626 pub use constants::PENDIN;
627 #[cfg(not(any(
628     target_os = "dragonfly",
629     target_os = "fuchsia",
630     target_os = "illumos",
631     target_os = "ios",
632     target_os = "macos",
633     target_os = "netbsd",
634     target_os = "openbsd",
635     target_os = "redox",
636     target_os = "solaris",
637     target_os = "wasi",
638 )))]
639 pub use constants::TAB0;
640 #[cfg(not(any(
641     all(libc, target_env = "musl"),
642     target_os = "dragonfly",
643     target_os = "emscripten",
644     target_os = "freebsd",
645     target_os = "fuchsia",
646     target_os = "illumos",
647     target_os = "ios",
648     target_os = "macos",
649     target_os = "netbsd",
650     target_os = "openbsd",
651     target_os = "redox",
652     target_os = "solaris",
653     target_os = "wasi",
654 )))]
655 pub use constants::TAB1;
656 #[cfg(not(any(
657     all(libc, target_env = "musl"),
658     target_os = "dragonfly",
659     target_os = "emscripten",
660     target_os = "freebsd",
661     target_os = "fuchsia",
662     target_os = "illumos",
663     target_os = "ios",
664     target_os = "macos",
665     target_os = "netbsd",
666     target_os = "openbsd",
667     target_os = "redox",
668     target_os = "solaris",
669     target_os = "wasi",
670 )))]
671 pub use constants::TAB2;
672 #[cfg(not(any(
673     all(libc, target_env = "musl"),
674     target_os = "dragonfly",
675     target_os = "emscripten",
676     target_os = "fuchsia",
677     target_os = "illumos",
678     target_os = "ios",
679     target_os = "macos",
680     target_os = "netbsd",
681     target_os = "openbsd",
682     target_os = "redox",
683     target_os = "solaris",
684     target_os = "wasi",
685 )))]
686 pub use constants::TAB3;
687 #[cfg(not(any(
688     target_os = "dragonfly",
689     target_os = "ios",
690     target_os = "macos",
691     target_os = "netbsd",
692     target_os = "openbsd",
693     target_os = "illumos",
694     target_os = "redox",
695     target_os = "solaris",
696     target_os = "wasi",
697 )))]
698 pub use constants::TABDLY;
699 #[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
700 pub use constants::TOSTOP;
701 #[cfg(not(any(
702     target_os = "dragonfly",
703     target_os = "freebsd",
704     target_os = "haiku",
705     target_os = "illumos",
706     target_os = "ios",
707     target_os = "macos",
708     target_os = "netbsd",
709     target_os = "openbsd",
710     target_os = "solaris",
711     target_os = "wasi",
712 )))]
713 pub use constants::VSWTC;
714 #[cfg(not(any(
715     target_os = "dragonfly",
716     target_os = "freebsd",
717     target_os = "fuchsia",
718     target_os = "illumos",
719     target_os = "ios",
720     target_os = "macos",
721     target_os = "netbsd",
722     target_os = "openbsd",
723     target_os = "redox",
724     target_os = "solaris",
725     target_os = "wasi",
726 )))]
727 pub use constants::VT0;
728 #[cfg(not(any(
729     all(libc, target_env = "musl"),
730     target_os = "dragonfly",
731     target_os = "emscripten",
732     target_os = "freebsd",
733     target_os = "fuchsia",
734     target_os = "illumos",
735     target_os = "ios",
736     target_os = "macos",
737     target_os = "netbsd",
738     target_os = "openbsd",
739     target_os = "redox",
740     target_os = "solaris",
741     target_os = "wasi",
742 )))]
743 pub use constants::VT1;
744 #[cfg(not(any(
745     all(libc, target_env = "musl"),
746     target_os = "dragonfly",
747     target_os = "freebsd",
748     target_os = "illumos",
749     target_os = "ios",
750     target_os = "macos",
751     target_os = "netbsd",
752     target_os = "openbsd",
753     target_os = "redox",
754     target_os = "solaris",
755     target_os = "wasi",
756 )))]
757 pub use constants::VTDLY;
758 #[cfg(any(linux_raw, all(libc, any(target_arch = "s390x", target_os = "haiku"))))]
759 pub use constants::XCASE;
760 #[cfg(not(any(
761     target_os = "dragonfly",
762     target_os = "freebsd",
763     target_os = "haiku",
764     target_os = "illumos",
765     target_os = "ios",
766     target_os = "macos",
767     target_os = "netbsd",
768     target_os = "openbsd",
769     target_os = "redox",
770     target_os = "solaris",
771     target_os = "wasi",
772 )))]
773 pub use constants::XTABS;
774 #[cfg(not(target_os = "wasi"))]
775 pub use constants::{
776     speed_value, B0, B110, B115200, B1200, B134, B150, B1800, B19200, B200, B230400, B2400, B300,
777     B38400, B4800, B50, B57600, B600, B75, B9600, ICANON, VEOF, VEOL, VEOL2, VERASE, VINTR, VKILL,
778     VMIN, VQUIT, VSTART, VSTOP, VSUSP, VTIME,
779 };
780 #[cfg(not(any(target_os = "haiku", target_os = "wasi")))]
781 pub use constants::{VDISCARD, VLNEXT, VREPRINT, VWERASE};
782 #[cfg(not(target_os = "wasi"))]
783 pub use tc::{
784     tcdrain, tcflow, tcflush, tcgetattr, tcgetpgrp, tcgetsid, tcgetwinsize, tcsendbreak, tcsetattr,
785     tcsetpgrp, tcsetwinsize, Action, OptionalActions, QueueSelector, Speed, Tcflag, Termios,
786     Winsize,
787 };
788 #[cfg(not(windows))]
789 pub use tty::isatty;
790 #[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
791 #[cfg(feature = "procfs")]
792 pub use tty::ttyname;
793