1//! Terminal I/O stream operations.
2
3#[cfg(not(target_os = "wasi"))]
4mod cf;
5#[cfg(not(target_os = "wasi"))]
6mod constants;
7#[cfg(not(target_os = "wasi"))]
8mod tc;
9#[cfg(not(windows))]
10mod tty;
11
12#[cfg(not(target_os = "wasi"))]
13pub 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)))]
25pub 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)))]
37pub 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)))]
49pub 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)))]
61pub 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)))]
75pub 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)))]
89pub 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)))]
103pub 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)))]
117pub 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)))]
126pub 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)))]
139pub 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)))]
152pub 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)))]
161pub use constants::B921600;
162#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
163pub 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)))]
177pub 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)))]
193pub 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)))]
206pub 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)))]
218pub 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)))]
232pub 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)))]
245pub use constants::CIBAUD;
246#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
247pub 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)))]
262pub 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)))]
276pub 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)))]
292pub 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)))]
308pub 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)))]
324pub 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)))]
337pub use constants::CRDLY;
338#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
339pub use constants::CREAD;
340#[cfg(not(any(
341    target_os = "ios",
342    target_os = "macos",
343    target_os = "redox",
344    target_os = "wasi"
345)))]
346pub use constants::CRTSCTS;
347#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
348pub use constants::CS5;
349#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
350pub use constants::CS6;
351#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
352pub use constants::CS7;
353#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
354pub use constants::CS8;
355#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
356pub use constants::CSIZE;
357#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
358pub use constants::CSTOPB;
359#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
360pub use constants::ECHO;
361#[cfg(not(any(
362    target_os = "ios",
363    target_os = "macos",
364    target_os = "redox",
365    target_os = "wasi"
366)))]
367pub use constants::ECHOCTL;
368#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
369pub use constants::ECHOE;
370#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
371pub use constants::ECHOK;
372#[cfg(not(any(
373    target_os = "ios",
374    target_os = "macos",
375    target_os = "redox",
376    target_os = "wasi"
377)))]
378pub use constants::ECHOKE;
379#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
380pub use constants::ECHONL;
381#[cfg(not(any(
382    target_os = "ios",
383    target_os = "macos",
384    target_os = "redox",
385    target_os = "wasi"
386)))]
387pub 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)))]
398pub 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)))]
409pub 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)))]
417pub 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)))]
431pub 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)))]
447pub 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)))]
461pub use constants::FFDLY;
462#[cfg(not(any(
463    target_os = "ios",
464    target_os = "macos",
465    target_os = "redox",
466    target_os = "wasi"
467)))]
468pub use constants::FLUSHO;
469#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
470pub use constants::HUPCL;
471#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
472pub use constants::ICRNL;
473#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
474pub use constants::IEXTEN;
475#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
476pub use constants::IGNBRK;
477#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
478pub use constants::IGNCR;
479#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
480pub 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)))]
488pub use constants::IMAXBEL;
489#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
490pub use constants::INLCR;
491#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
492pub use constants::INPCK;
493#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
494pub use constants::ISIG;
495#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
496pub 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))]
504pub 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)))]
519pub use constants::IUTF8;
520#[cfg(not(any(
521    target_os = "ios",
522    target_os = "macos",
523    target_os = "redox",
524    target_os = "wasi"
525)))]
526pub use constants::IXANY;
527#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
528pub use constants::IXOFF;
529#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
530pub 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)))]
544pub 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)))]
558pub 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)))]
571pub use constants::NLDLY;
572#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
573pub use constants::NOFLSH;
574#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
575pub 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)))]
585pub 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)))]
595pub 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)))]
605pub use constants::OLCUC;
606#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
607pub use constants::ONLCR;
608#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
609pub use constants::ONLRET;
610#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
611pub use constants::ONOCR;
612#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
613pub use constants::OPOST;
614#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
615pub use constants::PARENB;
616#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
617pub use constants::PARMRK;
618#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
619pub use constants::PARODD;
620#[cfg(not(any(
621    target_os = "ios",
622    target_os = "macos",
623    target_os = "redox",
624    target_os = "wasi"
625)))]
626pub 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)))]
639pub 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)))]
655pub 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)))]
671pub 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)))]
686pub 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)))]
698pub use constants::TABDLY;
699#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))]
700pub 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)))]
713pub 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)))]
727pub 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)))]
743pub 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)))]
757pub use constants::VTDLY;
758#[cfg(any(linux_raw, all(libc, any(target_arch = "s390x", target_os = "haiku"))))]
759pub 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)))]
773pub use constants::XTABS;
774#[cfg(not(target_os = "wasi"))]
775pub 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")))]
781pub use constants::{VDISCARD, VLNEXT, VREPRINT, VWERASE};
782#[cfg(not(target_os = "wasi"))]
783pub 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))]
789pub use tty::isatty;
790#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))]
791#[cfg(feature = "procfs")]
792pub use tty::ttyname;
793