17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * CDDL HEADER START 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 59acbbeafSnn * Common Development and Distribution License (the "License"). 69acbbeafSnn * You may not use this file except in compliance with the License. 77c478bd9Sstevel@tonic-gate * 87c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 97c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 107c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 117c478bd9Sstevel@tonic-gate * and limitations under the License. 127c478bd9Sstevel@tonic-gate * 137c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 147c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 157c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 167c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 177c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 187c478bd9Sstevel@tonic-gate * 197c478bd9Sstevel@tonic-gate * CDDL HEADER END 207c478bd9Sstevel@tonic-gate */ 217c478bd9Sstevel@tonic-gate /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 227c478bd9Sstevel@tonic-gate /* All Rights Reserved */ 237c478bd9Sstevel@tonic-gate 247c478bd9Sstevel@tonic-gate 257c478bd9Sstevel@tonic-gate /* 26*eb5a5c78SSurya Prakki * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved. 277c478bd9Sstevel@tonic-gate */ 287c478bd9Sstevel@tonic-gate 297c478bd9Sstevel@tonic-gate #ifndef _SYS_TERMIOS_H 307c478bd9Sstevel@tonic-gate #define _SYS_TERMIOS_H 317c478bd9Sstevel@tonic-gate 327c478bd9Sstevel@tonic-gate #include <sys/feature_tests.h> 337c478bd9Sstevel@tonic-gate 347c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 357c478bd9Sstevel@tonic-gate #include <sys/ttydev.h> 367c478bd9Sstevel@tonic-gate #include <sys/time.h> 377c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 387c478bd9Sstevel@tonic-gate 397c478bd9Sstevel@tonic-gate #include <sys/types.h> 407c478bd9Sstevel@tonic-gate 417c478bd9Sstevel@tonic-gate #ifdef __cplusplus 427c478bd9Sstevel@tonic-gate extern "C" { 437c478bd9Sstevel@tonic-gate #endif 447c478bd9Sstevel@tonic-gate 457c478bd9Sstevel@tonic-gate /* 467c478bd9Sstevel@tonic-gate * _POSIX_VDISABLE has been defined in <sys/termios.h> since the 477c478bd9Sstevel@tonic-gate * introduction of the header. The POSIX standard, IEEE Std. 487c478bd9Sstevel@tonic-gate * 1003.1-1988 also required the existence of _POSIX_VDISABLE in 497c478bd9Sstevel@tonic-gate * this header. Subsequent versions of the IEEE Standard as well 507c478bd9Sstevel@tonic-gate * as the X/Open specifications required that _POSIX_VDISABLE be 517c478bd9Sstevel@tonic-gate * defined in <unistd.h> while still allowing for it's existence 527c478bd9Sstevel@tonic-gate * here. With the introduction of XPG6, _POSIX_VDISABLE can only 537c478bd9Sstevel@tonic-gate * be defined in <unistd.h>. 547c478bd9Sstevel@tonic-gate */ 557c478bd9Sstevel@tonic-gate #if !defined(_XPG6) || defined(__EXTENSIONS__) 567c478bd9Sstevel@tonic-gate #ifndef _POSIX_VDISABLE 577c478bd9Sstevel@tonic-gate #define _POSIX_VDISABLE 0 /* Disable special character functions */ 587c478bd9Sstevel@tonic-gate #endif 597c478bd9Sstevel@tonic-gate #endif /* !defined(_XPG6) || defined(__EXTENSIONS__) */ 607c478bd9Sstevel@tonic-gate 617c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 627c478bd9Sstevel@tonic-gate #define CTRL(c) ((c)&037) 637c478bd9Sstevel@tonic-gate #define IBSHIFT 16 647c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 657c478bd9Sstevel@tonic-gate 667c478bd9Sstevel@tonic-gate /* required by termio.h and VCEOF/VCEOL */ 677c478bd9Sstevel@tonic-gate #define _NCC 8 687c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 697c478bd9Sstevel@tonic-gate #define NCC _NCC 707c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 717c478bd9Sstevel@tonic-gate 727c478bd9Sstevel@tonic-gate /* some defines required by POSIX */ 737c478bd9Sstevel@tonic-gate #define NCCS 19 747c478bd9Sstevel@tonic-gate 757c478bd9Sstevel@tonic-gate /* 767c478bd9Sstevel@tonic-gate * types defined by POSIX. These are better off in types.h, but 777c478bd9Sstevel@tonic-gate * the standard says that they have to be in termios.h. 787c478bd9Sstevel@tonic-gate */ 797c478bd9Sstevel@tonic-gate typedef unsigned int tcflag_t; 807c478bd9Sstevel@tonic-gate typedef unsigned char cc_t; 817c478bd9Sstevel@tonic-gate typedef unsigned int speed_t; 827c478bd9Sstevel@tonic-gate 837c478bd9Sstevel@tonic-gate /* 847c478bd9Sstevel@tonic-gate * Ioctl control packet 857c478bd9Sstevel@tonic-gate */ 867c478bd9Sstevel@tonic-gate struct termios { 877c478bd9Sstevel@tonic-gate tcflag_t c_iflag; /* input modes */ 887c478bd9Sstevel@tonic-gate tcflag_t c_oflag; /* output modes */ 897c478bd9Sstevel@tonic-gate tcflag_t c_cflag; /* control modes */ 907c478bd9Sstevel@tonic-gate tcflag_t c_lflag; /* line discipline modes */ 917c478bd9Sstevel@tonic-gate cc_t c_cc[NCCS]; /* control chars */ 927c478bd9Sstevel@tonic-gate }; 937c478bd9Sstevel@tonic-gate 947c478bd9Sstevel@tonic-gate /* 957c478bd9Sstevel@tonic-gate * POSIX termios functions 967c478bd9Sstevel@tonic-gate * These functions get mapped into ioctls. 977c478bd9Sstevel@tonic-gate */ 987c478bd9Sstevel@tonic-gate 997c478bd9Sstevel@tonic-gate #ifndef _KERNEL 1007c478bd9Sstevel@tonic-gate 1017c478bd9Sstevel@tonic-gate #if defined(__STDC__) 1027c478bd9Sstevel@tonic-gate 1037c478bd9Sstevel@tonic-gate extern speed_t cfgetospeed(const struct termios *); 1047c478bd9Sstevel@tonic-gate extern int cfsetospeed(struct termios *, speed_t); 1057c478bd9Sstevel@tonic-gate extern speed_t cfgetispeed(const struct termios *); 1067c478bd9Sstevel@tonic-gate extern int cfsetispeed(struct termios *, speed_t); 1077c478bd9Sstevel@tonic-gate extern int tcgetattr(int, struct termios *); 1087c478bd9Sstevel@tonic-gate extern int tcsetattr(int, int, const struct termios *); 1097c478bd9Sstevel@tonic-gate extern int tcsendbreak(int, int); 1107c478bd9Sstevel@tonic-gate extern int tcdrain(int); 1117c478bd9Sstevel@tonic-gate extern int tcflush(int, int); 1127c478bd9Sstevel@tonic-gate extern int tcflow(int, int); 1137c478bd9Sstevel@tonic-gate 1147c478bd9Sstevel@tonic-gate #else 1157c478bd9Sstevel@tonic-gate 1167c478bd9Sstevel@tonic-gate extern speed_t cfgetospeed(); 1177c478bd9Sstevel@tonic-gate extern int cfsetospeed(); 1187c478bd9Sstevel@tonic-gate extern speed_t cfgetispeed(); 1197c478bd9Sstevel@tonic-gate extern int cfsetispeed(); 1207c478bd9Sstevel@tonic-gate extern int tcgetattr(); 1217c478bd9Sstevel@tonic-gate extern int tcsetattr(); 1227c478bd9Sstevel@tonic-gate extern int tcsendbreak(); 1237c478bd9Sstevel@tonic-gate extern int tcdrain(); 1247c478bd9Sstevel@tonic-gate extern int tcflush(); 1257c478bd9Sstevel@tonic-gate extern int tcflow(); 1267c478bd9Sstevel@tonic-gate 1277c478bd9Sstevel@tonic-gate #endif /* __STDC__ */ 1287c478bd9Sstevel@tonic-gate 1297c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2) || defined(__EXTENSIONS__) 1307c478bd9Sstevel@tonic-gate 1317c478bd9Sstevel@tonic-gate #if defined(__STDC__) 1327c478bd9Sstevel@tonic-gate extern pid_t tcgetsid(int); 1337c478bd9Sstevel@tonic-gate #else 1347c478bd9Sstevel@tonic-gate extern pid_t tcgetsid(); 1357c478bd9Sstevel@tonic-gate #endif /* __STDC__ */ 1367c478bd9Sstevel@tonic-gate 1377c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2) ... */ 1387c478bd9Sstevel@tonic-gate 1397c478bd9Sstevel@tonic-gate #endif 1407c478bd9Sstevel@tonic-gate 1417c478bd9Sstevel@tonic-gate /* control characters */ 1427c478bd9Sstevel@tonic-gate #define VINTR 0 1437c478bd9Sstevel@tonic-gate #define VQUIT 1 1447c478bd9Sstevel@tonic-gate #define VERASE 2 1457c478bd9Sstevel@tonic-gate #define VKILL 3 1467c478bd9Sstevel@tonic-gate #define VEOF 4 1477c478bd9Sstevel@tonic-gate #define VEOL 5 1487c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 1497c478bd9Sstevel@tonic-gate #define VEOL2 6 1507c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 1517c478bd9Sstevel@tonic-gate #define VMIN 4 1527c478bd9Sstevel@tonic-gate #define VTIME 5 1537c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 1547c478bd9Sstevel@tonic-gate #define VSWTCH 7 1557c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 1567c478bd9Sstevel@tonic-gate #define VSTART 8 1577c478bd9Sstevel@tonic-gate #define VSTOP 9 1587c478bd9Sstevel@tonic-gate #define VSUSP 10 1597c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 1607c478bd9Sstevel@tonic-gate #define VDSUSP 11 1617c478bd9Sstevel@tonic-gate #define VREPRINT 12 1627c478bd9Sstevel@tonic-gate #define VDISCARD 13 1637c478bd9Sstevel@tonic-gate #define VWERASE 14 1647c478bd9Sstevel@tonic-gate #define VLNEXT 15 1657c478bd9Sstevel@tonic-gate /* 16 thru 19 reserved for future use */ 1667c478bd9Sstevel@tonic-gate 1677c478bd9Sstevel@tonic-gate /* 1687c478bd9Sstevel@tonic-gate * control characters form Xenix termio.h 1697c478bd9Sstevel@tonic-gate */ 1707c478bd9Sstevel@tonic-gate #define VCEOF NCC /* RESERVED true EOF char (V7 compatability) */ 1717c478bd9Sstevel@tonic-gate #define VCEOL (NCC + 1) /* RESERVED true EOL char */ 1727c478bd9Sstevel@tonic-gate 1737c478bd9Sstevel@tonic-gate #define CNUL 0 1747c478bd9Sstevel@tonic-gate #define CDEL 0177 1757c478bd9Sstevel@tonic-gate 1767c478bd9Sstevel@tonic-gate /* S5 default control chars */ 1777c478bd9Sstevel@tonic-gate /* CINTR, CERASE and CKILL modified to SunOS traditional values */ 1787c478bd9Sstevel@tonic-gate #define CESC '\\' 1797c478bd9Sstevel@tonic-gate #define CINTR CTRL('c') 1807c478bd9Sstevel@tonic-gate #define CQUIT 034 /* FS, cntl | */ 1817c478bd9Sstevel@tonic-gate #define CERASE 0177 /* DEL */ 1827c478bd9Sstevel@tonic-gate #define CKILL CTRL('u') 1837c478bd9Sstevel@tonic-gate #define CEOT 04 1847c478bd9Sstevel@tonic-gate #define CEOL 0 1857c478bd9Sstevel@tonic-gate #define CEOL2 0 1867c478bd9Sstevel@tonic-gate #define CEOF 04 /* cntl d */ 1877c478bd9Sstevel@tonic-gate #define CSTART 021 /* cntl q */ 1887c478bd9Sstevel@tonic-gate #define CSTOP 023 /* cntl s */ 1897c478bd9Sstevel@tonic-gate #define CSWTCH 032 /* cntl z */ 1907c478bd9Sstevel@tonic-gate #define CNSWTCH 0 1917c478bd9Sstevel@tonic-gate #define CSUSP CTRL('z') 1927c478bd9Sstevel@tonic-gate #define CDSUSP CTRL('y') 1937c478bd9Sstevel@tonic-gate #define CRPRNT CTRL('r') 1947c478bd9Sstevel@tonic-gate #define CFLUSH CTRL('o') 1957c478bd9Sstevel@tonic-gate #define CWERASE CTRL('w') 1967c478bd9Sstevel@tonic-gate #define CLNEXT CTRL('v') 1977c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 1987c478bd9Sstevel@tonic-gate 1997c478bd9Sstevel@tonic-gate 2007c478bd9Sstevel@tonic-gate /* input modes */ 2017c478bd9Sstevel@tonic-gate #define IGNBRK 0000001 2027c478bd9Sstevel@tonic-gate #define BRKINT 0000002 2037c478bd9Sstevel@tonic-gate #define IGNPAR 0000004 2047c478bd9Sstevel@tonic-gate #define PARMRK 0000010 2057c478bd9Sstevel@tonic-gate #define INPCK 0000020 2067c478bd9Sstevel@tonic-gate #define ISTRIP 0000040 2077c478bd9Sstevel@tonic-gate #define INLCR 0000100 2087c478bd9Sstevel@tonic-gate #define IGNCR 0000200 2097c478bd9Sstevel@tonic-gate #define ICRNL 0000400 2107c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || \ 2117c478bd9Sstevel@tonic-gate (defined(_XOPEN_SOURCE) && !defined(_XPG6)) || \ 2127c478bd9Sstevel@tonic-gate defined(__EXTENSIONS__) 2137c478bd9Sstevel@tonic-gate #define IUCLC 0001000 2147c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */ 2157c478bd9Sstevel@tonic-gate #define IXON 0002000 2167c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ 2177c478bd9Sstevel@tonic-gate defined(__EXTENSIONS__) 2187c478bd9Sstevel@tonic-gate #define IXANY 0004000 2197c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */ 2207c478bd9Sstevel@tonic-gate #define IXOFF 0010000 2217c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 2227c478bd9Sstevel@tonic-gate #define IMAXBEL 0020000 2237c478bd9Sstevel@tonic-gate #define DOSMODE 0100000 /* for 386 compatibility */ 2247c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 2257c478bd9Sstevel@tonic-gate 2267c478bd9Sstevel@tonic-gate /* output modes */ 2277c478bd9Sstevel@tonic-gate #define OPOST 0000001 2287c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ 2297c478bd9Sstevel@tonic-gate defined(__EXTENSIONS__) 2307c478bd9Sstevel@tonic-gate #if !defined(_XPG6) || defined(__EXTENSIONS__) 2317c478bd9Sstevel@tonic-gate #define OLCUC 0000002 2327c478bd9Sstevel@tonic-gate #endif 2337c478bd9Sstevel@tonic-gate #define ONLCR 0000004 2347c478bd9Sstevel@tonic-gate #define OCRNL 0000010 2357c478bd9Sstevel@tonic-gate #define ONOCR 0000020 2367c478bd9Sstevel@tonic-gate #define ONLRET 0000040 2377c478bd9Sstevel@tonic-gate #define OFILL 0000100 2387c478bd9Sstevel@tonic-gate #define OFDEL 0000200 2397c478bd9Sstevel@tonic-gate #define NLDLY 0000400 2407c478bd9Sstevel@tonic-gate #define NL0 0 2417c478bd9Sstevel@tonic-gate #define NL1 0000400 2427c478bd9Sstevel@tonic-gate #define CRDLY 0003000 2437c478bd9Sstevel@tonic-gate #define CR0 0 2447c478bd9Sstevel@tonic-gate #define CR1 0001000 2457c478bd9Sstevel@tonic-gate #define CR2 0002000 2467c478bd9Sstevel@tonic-gate #define CR3 0003000 2477c478bd9Sstevel@tonic-gate #define TABDLY 0014000 2487c478bd9Sstevel@tonic-gate #define TAB0 0 2497c478bd9Sstevel@tonic-gate #define TAB1 0004000 2507c478bd9Sstevel@tonic-gate #define TAB2 0010000 2517c478bd9Sstevel@tonic-gate #define TAB3 0014000 2527c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */ 2537c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 2547c478bd9Sstevel@tonic-gate #define XTABS 0014000 2557c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 2567c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ 2577c478bd9Sstevel@tonic-gate defined(__EXTENSIONS__) 2587c478bd9Sstevel@tonic-gate #define BSDLY 0020000 2597c478bd9Sstevel@tonic-gate #define BS0 0 2607c478bd9Sstevel@tonic-gate #define BS1 0020000 2617c478bd9Sstevel@tonic-gate #define VTDLY 0040000 2627c478bd9Sstevel@tonic-gate #define VT0 0 2637c478bd9Sstevel@tonic-gate #define VT1 0040000 2647c478bd9Sstevel@tonic-gate #define FFDLY 0100000 2657c478bd9Sstevel@tonic-gate #define FF0 0 2667c478bd9Sstevel@tonic-gate #define FF1 0100000 2677c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */ 2687c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 2697c478bd9Sstevel@tonic-gate #define PAGEOUT 0200000 2707c478bd9Sstevel@tonic-gate #define WRAP 0400000 2717c478bd9Sstevel@tonic-gate 2727c478bd9Sstevel@tonic-gate /* control modes */ 2737c478bd9Sstevel@tonic-gate #define CBAUD 0000017 2747c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 2757c478bd9Sstevel@tonic-gate #define CSIZE 0000060 2767c478bd9Sstevel@tonic-gate #define CS5 0 2777c478bd9Sstevel@tonic-gate #define CS6 0000020 2787c478bd9Sstevel@tonic-gate #define CS7 0000040 2797c478bd9Sstevel@tonic-gate #define CS8 0000060 2807c478bd9Sstevel@tonic-gate #define CSTOPB 0000100 2817c478bd9Sstevel@tonic-gate #define CREAD 0000200 2827c478bd9Sstevel@tonic-gate #define PARENB 0000400 2837c478bd9Sstevel@tonic-gate #define PARODD 0001000 2847c478bd9Sstevel@tonic-gate #define HUPCL 0002000 2857c478bd9Sstevel@tonic-gate #define CLOCAL 0004000 2867c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 2877c478bd9Sstevel@tonic-gate #define RCV1EN 0010000 2887c478bd9Sstevel@tonic-gate #define XMT1EN 0020000 2897c478bd9Sstevel@tonic-gate #define LOBLK 0040000 2907c478bd9Sstevel@tonic-gate #define XCLUDE 0100000 /* *V7* exclusive use coming fron XENIX */ 2917c478bd9Sstevel@tonic-gate #define CRTSXOFF 010000000000 2927c478bd9Sstevel@tonic-gate #define CRTSCTS 020000000000 2937c478bd9Sstevel@tonic-gate #define CIBAUD 03600000 2947c478bd9Sstevel@tonic-gate #define PAREXT 04000000 2957c478bd9Sstevel@tonic-gate #define CBAUDEXT 010000000 2967c478bd9Sstevel@tonic-gate #define CIBAUDEXT 020000000 2977c478bd9Sstevel@tonic-gate 2987c478bd9Sstevel@tonic-gate /* 2997c478bd9Sstevel@tonic-gate * 4.4BSD hardware flow control flags 3007c478bd9Sstevel@tonic-gate */ 3017c478bd9Sstevel@tonic-gate #define CRTS_IFLOW 010000000000 3027c478bd9Sstevel@tonic-gate #define CCTS_OFLOW 020000000000 3037c478bd9Sstevel@tonic-gate 3047c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 3057c478bd9Sstevel@tonic-gate 3067c478bd9Sstevel@tonic-gate /* line discipline 0 modes */ 3077c478bd9Sstevel@tonic-gate #define ISIG 0000001 3087c478bd9Sstevel@tonic-gate #define ICANON 0000002 3097c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || \ 3107c478bd9Sstevel@tonic-gate (defined(_XOPEN_SOURCE) && !defined(_XPG6)) || \ 3117c478bd9Sstevel@tonic-gate defined(__EXTENSIONS__) 3127c478bd9Sstevel@tonic-gate #define XCASE 0000004 3137c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */ 3147c478bd9Sstevel@tonic-gate #define ECHO 0000010 3157c478bd9Sstevel@tonic-gate #define ECHOE 0000020 3167c478bd9Sstevel@tonic-gate #define ECHOK 0000040 3177c478bd9Sstevel@tonic-gate #define ECHONL 0000100 3187c478bd9Sstevel@tonic-gate #define NOFLSH 0000200 3197c478bd9Sstevel@tonic-gate #define TOSTOP 0000400 3207c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 3217c478bd9Sstevel@tonic-gate #define ECHOCTL 0001000 3227c478bd9Sstevel@tonic-gate #define ECHOPRT 0002000 3237c478bd9Sstevel@tonic-gate #define ECHOKE 0004000 3247c478bd9Sstevel@tonic-gate #define DEFECHO 0010000 3257c478bd9Sstevel@tonic-gate #define FLUSHO 0020000 3267c478bd9Sstevel@tonic-gate #define PENDIN 0040000 3277c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 3287c478bd9Sstevel@tonic-gate 3297c478bd9Sstevel@tonic-gate #define IEXTEN 0100000 /* POSIX flag - enable POSIX extensions */ 3307c478bd9Sstevel@tonic-gate #define _TIOC ('T'<<8) 3317c478bd9Sstevel@tonic-gate 3327c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 3337c478bd9Sstevel@tonic-gate 3347c478bd9Sstevel@tonic-gate #define TIOC _TIOC 3357c478bd9Sstevel@tonic-gate 3367c478bd9Sstevel@tonic-gate #define TCGETA (_TIOC|1) 3377c478bd9Sstevel@tonic-gate #define TCSETA (_TIOC|2) 3387c478bd9Sstevel@tonic-gate #define TCSETAW (_TIOC|3) 3397c478bd9Sstevel@tonic-gate #define TCSETAF (_TIOC|4) 3407c478bd9Sstevel@tonic-gate #define TCSBRK (_TIOC|5) 3417c478bd9Sstevel@tonic-gate #define TCXONC (_TIOC|6) 3427c478bd9Sstevel@tonic-gate #define TCFLSH (_TIOC|7) 3437c478bd9Sstevel@tonic-gate 3447c478bd9Sstevel@tonic-gate /* Slots reserved for 386/XENIX compatibility - keyboard control */ 3457c478bd9Sstevel@tonic-gate 3467c478bd9Sstevel@tonic-gate #define TIOCKBON (_TIOC|8) 3477c478bd9Sstevel@tonic-gate #define TIOCKBOF (_TIOC|9) 3487c478bd9Sstevel@tonic-gate #define KBENABLED (_TIOC|10) 3497c478bd9Sstevel@tonic-gate 3507c478bd9Sstevel@tonic-gate #ifndef IOCTYPE 3517c478bd9Sstevel@tonic-gate #define IOCTYPE 0xff00 3527c478bd9Sstevel@tonic-gate #endif 3537c478bd9Sstevel@tonic-gate 3547c478bd9Sstevel@tonic-gate #define TCDSET (_TIOC|32) 3557c478bd9Sstevel@tonic-gate #define RTS_TOG (_TIOC|33) /* 386 - "RTS" toggle define 8A1 protocol */ 3567c478bd9Sstevel@tonic-gate 3577c478bd9Sstevel@tonic-gate #define TIOCGWINSZ (_TIOC|104) 3587c478bd9Sstevel@tonic-gate #define TIOCSWINSZ (_TIOC|103) 3597c478bd9Sstevel@tonic-gate 3607c478bd9Sstevel@tonic-gate /* 3617c478bd9Sstevel@tonic-gate * Softcarrier ioctls 3627c478bd9Sstevel@tonic-gate */ 3637c478bd9Sstevel@tonic-gate #define TIOCGSOFTCAR (_TIOC|105) 3647c478bd9Sstevel@tonic-gate #define TIOCSSOFTCAR (_TIOC|106) 3657c478bd9Sstevel@tonic-gate 3667c478bd9Sstevel@tonic-gate 3677c478bd9Sstevel@tonic-gate /* termios ioctls */ 3687c478bd9Sstevel@tonic-gate 3697c478bd9Sstevel@tonic-gate #define TCGETS (_TIOC|13) 3707c478bd9Sstevel@tonic-gate #define TCSETS (_TIOC|14) 3717c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 3727c478bd9Sstevel@tonic-gate #define TCSANOW (_TIOC|14) /* same as TCSETS */ 3737c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 3747c478bd9Sstevel@tonic-gate #define TCSETSW (_TIOC|15) 3757c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 3767c478bd9Sstevel@tonic-gate #define TCSADRAIN (_TIOC|15) /* same as TCSETSW */ 3777c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 3787c478bd9Sstevel@tonic-gate #define TCSETSF (_TIOC|16) 3797c478bd9Sstevel@tonic-gate 3807c478bd9Sstevel@tonic-gate /* 3817c478bd9Sstevel@tonic-gate * NTP PPS ioctls 3827c478bd9Sstevel@tonic-gate */ 3837c478bd9Sstevel@tonic-gate #define TIOCGPPS (_TIOC|125) 3847c478bd9Sstevel@tonic-gate #define TIOCSPPS (_TIOC|126) 3857c478bd9Sstevel@tonic-gate #define TIOCGPPSEV (_TIOC|127) 3867c478bd9Sstevel@tonic-gate 3877c478bd9Sstevel@tonic-gate /* Argument filled in by TIOCGPPSEV */ 3887c478bd9Sstevel@tonic-gate struct ppsclockev { 3897c478bd9Sstevel@tonic-gate struct timeval tv; 3907c478bd9Sstevel@tonic-gate uint_t serial; 3917c478bd9Sstevel@tonic-gate }; 3927c478bd9Sstevel@tonic-gate 3937c478bd9Sstevel@tonic-gate #if defined(_SYSCALL32) 3947c478bd9Sstevel@tonic-gate struct ppsclockev32 { 3957c478bd9Sstevel@tonic-gate struct timeval32 tv; 3967c478bd9Sstevel@tonic-gate uint32_t serial; 3977c478bd9Sstevel@tonic-gate }; 3987c478bd9Sstevel@tonic-gate #endif /* _SYSCALL32 */ 3997c478bd9Sstevel@tonic-gate 4007c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 4017c478bd9Sstevel@tonic-gate 4027c478bd9Sstevel@tonic-gate #define TCSAFLUSH (_TIOC|16) /* same as TCSETSF */ 4037c478bd9Sstevel@tonic-gate 4047c478bd9Sstevel@tonic-gate /* termios option flags */ 4057c478bd9Sstevel@tonic-gate 4067c478bd9Sstevel@tonic-gate #define TCIFLUSH 0 /* flush data received but not read */ 4077c478bd9Sstevel@tonic-gate #define TCOFLUSH 1 /* flush data written but not transmitted */ 4087c478bd9Sstevel@tonic-gate #define TCIOFLUSH 2 /* flush both data both input and output queues */ 4097c478bd9Sstevel@tonic-gate 4107c478bd9Sstevel@tonic-gate #define TCOOFF 0 /* suspend output */ 4117c478bd9Sstevel@tonic-gate #define TCOON 1 /* restart suspended output */ 4127c478bd9Sstevel@tonic-gate #define TCIOFF 2 /* suspend input */ 4137c478bd9Sstevel@tonic-gate #define TCION 3 /* restart suspended input */ 4147c478bd9Sstevel@tonic-gate 4157c478bd9Sstevel@tonic-gate /* TIOC ioctls for BSD, ptys, job control and modem control */ 4167c478bd9Sstevel@tonic-gate 4177c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 4187c478bd9Sstevel@tonic-gate #define tIOC ('t'<<8) 4197c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 4207c478bd9Sstevel@tonic-gate 4217c478bd9Sstevel@tonic-gate /* Slots for 386/XENIX compatibility */ 4227c478bd9Sstevel@tonic-gate /* BSD includes these ioctls in ttold.h */ 4237c478bd9Sstevel@tonic-gate 4247c478bd9Sstevel@tonic-gate #ifndef _SYS_TTOLD_H 4257c478bd9Sstevel@tonic-gate 4267c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 4277c478bd9Sstevel@tonic-gate #define TIOCGETD (tIOC|0) 4287c478bd9Sstevel@tonic-gate #define TIOCSETD (tIOC|1) 4297c478bd9Sstevel@tonic-gate #define TIOCHPCL (tIOC|2) 4307c478bd9Sstevel@tonic-gate #define TIOCGETP (tIOC|8) 4317c478bd9Sstevel@tonic-gate #define TIOCSETP (tIOC|9) 4327c478bd9Sstevel@tonic-gate #define TIOCSETN (tIOC|10) 4337c478bd9Sstevel@tonic-gate #define TIOCEXCL (tIOC|13) 4347c478bd9Sstevel@tonic-gate #define TIOCNXCL (tIOC|14) 4357c478bd9Sstevel@tonic-gate #define TIOCFLUSH (tIOC|16) 4367c478bd9Sstevel@tonic-gate #define TIOCSETC (tIOC|17) 4377c478bd9Sstevel@tonic-gate #define TIOCGETC (tIOC|18) 4387c478bd9Sstevel@tonic-gate /* 4397c478bd9Sstevel@tonic-gate * BSD ioctls that are not the same as XENIX are included here. 4407c478bd9Sstevel@tonic-gate * There are also some relevant ioctls from SUN/BSD sys/ttycom.h 4417c478bd9Sstevel@tonic-gate * BSD pty ioctls like TIOCPKT are not supported in SVR4. 4427c478bd9Sstevel@tonic-gate */ 4437c478bd9Sstevel@tonic-gate 4447c478bd9Sstevel@tonic-gate #define TIOCLBIS (tIOC|127) /* bis local mode bits */ 4457c478bd9Sstevel@tonic-gate #define TIOCLBIC (tIOC|126) /* bic local mode bits */ 4467c478bd9Sstevel@tonic-gate #define TIOCLSET (tIOC|125) /* set entire local mode word */ 4477c478bd9Sstevel@tonic-gate #define TIOCLGET (tIOC|124) /* get local modes */ 4487c478bd9Sstevel@tonic-gate #define TIOCSBRK (tIOC|123) /* set break bit */ 4497c478bd9Sstevel@tonic-gate #define TIOCCBRK (tIOC|122) /* clear break bit */ 4507c478bd9Sstevel@tonic-gate #define TIOCSDTR (tIOC|121) /* set data terminal ready */ 4517c478bd9Sstevel@tonic-gate #define TIOCCDTR (tIOC|120) /* clear data terminal ready */ 4527c478bd9Sstevel@tonic-gate #define TIOCSLTC (tIOC|117) /* set local special chars */ 4537c478bd9Sstevel@tonic-gate #define TIOCGLTC (tIOC|116) /* get local special chars */ 4547c478bd9Sstevel@tonic-gate #define TIOCOUTQ (tIOC|115) /* driver output queue size */ 4557c478bd9Sstevel@tonic-gate #define TIOCNOTTY (tIOC|113) /* void tty association */ 4569acbbeafSnn #define TIOCSCTTY (tIOC|132) /* get a ctty */ 4577c478bd9Sstevel@tonic-gate #define TIOCSTOP (tIOC|111) /* stop output, like ^S */ 4587c478bd9Sstevel@tonic-gate #define TIOCSTART (tIOC|110) /* start output, like ^Q */ 4597c478bd9Sstevel@tonic-gate #define TIOCSILOOP (tIOC|109) /* private to Sun; do not use */ 460de81e71eSTim Marsland #define TIOCCILOOP (tIOC|108) /* private to Sun; do not use */ 4617c478bd9Sstevel@tonic-gate 4627c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 4637c478bd9Sstevel@tonic-gate 4647c478bd9Sstevel@tonic-gate #endif /* end _SYS_TTOLD_H */ 4657c478bd9Sstevel@tonic-gate 4667c478bd9Sstevel@tonic-gate /* POSIX job control ioctls */ 4677c478bd9Sstevel@tonic-gate 4687c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 4697c478bd9Sstevel@tonic-gate #define TIOCGPGRP (tIOC|20) /* get pgrp of tty */ 4707c478bd9Sstevel@tonic-gate #define TIOCSPGRP (tIOC|21) /* set pgrp of tty */ 4717c478bd9Sstevel@tonic-gate #define TIOCGSID (tIOC|22) /* get session id on ctty */ 4727c478bd9Sstevel@tonic-gate 4737c478bd9Sstevel@tonic-gate /* Miscellaneous */ 4747c478bd9Sstevel@tonic-gate #define TIOCSTI (tIOC|23) /* simulate terminal input */ 4757c478bd9Sstevel@tonic-gate 4767c478bd9Sstevel@tonic-gate /* Modem control */ 4777c478bd9Sstevel@tonic-gate #define TIOCMSET (tIOC|26) /* set all modem bits */ 4787c478bd9Sstevel@tonic-gate #define TIOCMBIS (tIOC|27) /* bis modem bits */ 4797c478bd9Sstevel@tonic-gate #define TIOCMBIC (tIOC|28) /* bic modem bits */ 4807c478bd9Sstevel@tonic-gate #define TIOCMGET (tIOC|29) /* get all modem bits */ 4817c478bd9Sstevel@tonic-gate #define TIOCM_LE 0001 /* line enable */ 4827c478bd9Sstevel@tonic-gate #define TIOCM_DTR 0002 /* data terminal ready */ 4837c478bd9Sstevel@tonic-gate #define TIOCM_RTS 0004 /* request to send */ 4847c478bd9Sstevel@tonic-gate #define TIOCM_ST 0010 /* secondary transmit */ 4857c478bd9Sstevel@tonic-gate #define TIOCM_SR 0020 /* secondary receive */ 4867c478bd9Sstevel@tonic-gate #define TIOCM_CTS 0040 /* clear to send */ 4877c478bd9Sstevel@tonic-gate #define TIOCM_CAR 0100 /* carrier detect */ 4887c478bd9Sstevel@tonic-gate #define TIOCM_CD TIOCM_CAR 4897c478bd9Sstevel@tonic-gate #define TIOCM_RNG 0200 /* ring */ 4907c478bd9Sstevel@tonic-gate #define TIOCM_RI TIOCM_RNG 4917c478bd9Sstevel@tonic-gate #define TIOCM_DSR 0400 /* data set ready */ 4927c478bd9Sstevel@tonic-gate 4937c478bd9Sstevel@tonic-gate /* pseudo-tty */ 4947c478bd9Sstevel@tonic-gate 4957c478bd9Sstevel@tonic-gate #define TIOCREMOTE (tIOC|30) /* remote input editing */ 4967c478bd9Sstevel@tonic-gate #define TIOCSIGNAL (tIOC|31) /* pty: send signal to slave */ 4977c478bd9Sstevel@tonic-gate 4987c478bd9Sstevel@tonic-gate 4997c478bd9Sstevel@tonic-gate /* Some more 386 xenix stuff */ 5007c478bd9Sstevel@tonic-gate 5017c478bd9Sstevel@tonic-gate #define LDIOC ('D'<<8) 5027c478bd9Sstevel@tonic-gate 5037c478bd9Sstevel@tonic-gate #define LDOPEN (LDIOC|0) 5047c478bd9Sstevel@tonic-gate #define LDCLOSE (LDIOC|1) 5057c478bd9Sstevel@tonic-gate #define LDCHG (LDIOC|2) 5067c478bd9Sstevel@tonic-gate #define LDGETT (LDIOC|8) 5077c478bd9Sstevel@tonic-gate #define LDSETT (LDIOC|9) 5087c478bd9Sstevel@tonic-gate 5097c478bd9Sstevel@tonic-gate /* Slots for 386 compatibility */ 5107c478bd9Sstevel@tonic-gate 5117c478bd9Sstevel@tonic-gate #define LDSMAP (LDIOC|110) 5127c478bd9Sstevel@tonic-gate #define LDGMAP (LDIOC|111) 5137c478bd9Sstevel@tonic-gate #define LDNMAP (LDIOC|112) 5147c478bd9Sstevel@tonic-gate #define LDEMAP (LDIOC|113) 5157c478bd9Sstevel@tonic-gate #define LDDMAP (LDIOC|114) 5167c478bd9Sstevel@tonic-gate 5177c478bd9Sstevel@tonic-gate /* 5187c478bd9Sstevel@tonic-gate * These are retained for 386/XENIX compatibility. 5197c478bd9Sstevel@tonic-gate */ 5207c478bd9Sstevel@tonic-gate 5217c478bd9Sstevel@tonic-gate #define DIOC ('d'<<8) 5227c478bd9Sstevel@tonic-gate #define DIOCGETP (DIOC|8) /* V7 */ 5237c478bd9Sstevel@tonic-gate #define DIOCSETP (DIOC|9) /* V7 */ 5247c478bd9Sstevel@tonic-gate 5257c478bd9Sstevel@tonic-gate /* 5267c478bd9Sstevel@tonic-gate * Returns a non-zero value if there 5277c478bd9Sstevel@tonic-gate * are characters in the input queue. 5287c478bd9Sstevel@tonic-gate * 5297c478bd9Sstevel@tonic-gate * XXX - somebody is confused here. V7 had no such "ioctl", although XENIX may 5307c478bd9Sstevel@tonic-gate * have added it; 4BSD had FIONREAD, which returned the number of characters 5317c478bd9Sstevel@tonic-gate * waiting, and was supposed to work on all descriptors (i.e., every driver 5327c478bd9Sstevel@tonic-gate * should make a stab at implementing it). 5337c478bd9Sstevel@tonic-gate */ 5347c478bd9Sstevel@tonic-gate #define FIORDCHK (('f'<<8)|3) /* V7 */ 5357c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 5367c478bd9Sstevel@tonic-gate 5377c478bd9Sstevel@tonic-gate /* 5387c478bd9Sstevel@tonic-gate * Speeds 5397c478bd9Sstevel@tonic-gate */ 5407c478bd9Sstevel@tonic-gate #define B0 0 5417c478bd9Sstevel@tonic-gate #define B50 1 5427c478bd9Sstevel@tonic-gate #define B75 2 5437c478bd9Sstevel@tonic-gate #define B110 3 5447c478bd9Sstevel@tonic-gate #define B134 4 5457c478bd9Sstevel@tonic-gate #define B150 5 5467c478bd9Sstevel@tonic-gate #define B200 6 5477c478bd9Sstevel@tonic-gate #define B300 7 5487c478bd9Sstevel@tonic-gate #define B600 8 5497c478bd9Sstevel@tonic-gate #define B1200 9 5507c478bd9Sstevel@tonic-gate #define B1800 10 5517c478bd9Sstevel@tonic-gate #define B2400 11 5527c478bd9Sstevel@tonic-gate #define B4800 12 5537c478bd9Sstevel@tonic-gate #define B9600 13 5547c478bd9Sstevel@tonic-gate #define B19200 14 5557c478bd9Sstevel@tonic-gate #define B38400 15 5567c478bd9Sstevel@tonic-gate #define B57600 16 5577c478bd9Sstevel@tonic-gate #define B76800 17 5587c478bd9Sstevel@tonic-gate #define B115200 18 5597c478bd9Sstevel@tonic-gate #define B153600 19 5607c478bd9Sstevel@tonic-gate #define B230400 20 5617c478bd9Sstevel@tonic-gate #define B307200 21 5627c478bd9Sstevel@tonic-gate #define B460800 22 563de81e71eSTim Marsland #define B921600 23 5647c478bd9Sstevel@tonic-gate 5657c478bd9Sstevel@tonic-gate #ifndef _SYS_TTOLD_H 5667c478bd9Sstevel@tonic-gate 5677c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) 5687c478bd9Sstevel@tonic-gate /* Windowing structure to support JWINSIZE/TIOCSWINSZ/TIOCGWINSZ */ 5697c478bd9Sstevel@tonic-gate struct winsize { 5707c478bd9Sstevel@tonic-gate unsigned short ws_row; /* rows, in characters */ 5717c478bd9Sstevel@tonic-gate unsigned short ws_col; /* columns, in character */ 5727c478bd9Sstevel@tonic-gate unsigned short ws_xpixel; /* horizontal size, pixels */ 5737c478bd9Sstevel@tonic-gate unsigned short ws_ypixel; /* vertical size, pixels */ 5747c478bd9Sstevel@tonic-gate }; 5757c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */ 5767c478bd9Sstevel@tonic-gate 5777c478bd9Sstevel@tonic-gate #endif /* end _SYS_TTOLD_H */ 5787c478bd9Sstevel@tonic-gate 5797c478bd9Sstevel@tonic-gate #ifdef __cplusplus 5807c478bd9Sstevel@tonic-gate } 5817c478bd9Sstevel@tonic-gate #endif 5827c478bd9Sstevel@tonic-gate 5837c478bd9Sstevel@tonic-gate #endif /* _SYS_TERMIOS_H */ 584