00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef __LIBTTY_H__
00041 #define __LIBTTY_H__
00042 #include <libc.h>
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 struct winsize {
00054 unsigned short ws_row;
00055 unsigned short ws_col;
00056 unsigned short ws_xpixel;
00057 unsigned short ws_ypixel;
00058 };
00059
00060 #define TIOCM_LE 0001
00061 #define TIOCM_DTR 0002
00062 #define TIOCM_RTS 0004
00063 #define TIOCM_ST 0010
00064 #define TIOCM_SR 0020
00065 #define TIOCM_CTS 0040
00066 #define TIOCM_CAR 0100
00067 #define TIOCM_CD TIOCM_CAR
00068 #define TIOCM_RNG 0200
00069 #define TIOCM_RI TIOCM_RNG
00070 #define TIOCM_DSR 0400
00071
00072 #define TIOCEXCL _IO('t', 13)
00073 #define TIOCNXCL _IO('t', 14)
00074
00075 #define TIOCFLUSH _IOW('t', 16, int)
00076
00077 #define TIOCGETA _IOR('t', 19, struct termios)
00078 #define TIOCSETA _IOW('t', 20, struct termios)
00079 #define TIOCSETAW _IOW('t', 21, struct termios)
00080 #define TIOCSETAF _IOW('t', 22, struct termios)
00081 #define TIOCGETD _IOR('t', 26, int)
00082 #define TIOCSETD _IOW('t', 27, int)
00083
00084
00085
00086
00087 #define TTLINEDNAMELEN 32
00088 typedef char linedn_t[TTLINEDNAMELEN];
00089 #define TIOCGLINED _IOR('t', 66, linedn_t)
00090 #define TIOCSLINED _IOW('t', 67, linedn_t)
00091
00092 #define TIOCSBRK _IO('t', 123)
00093 #define TIOCCBRK _IO('t', 122)
00094 #define TIOCSDTR _IO('t', 121)
00095 #define TIOCCDTR _IO('t', 120)
00096 #define TIOCGPGRP _IOR('t', 119, pid_t)
00097 #define TIOCSPGRP _IOW('t', 118, pid_t)
00098
00099 #define TIOCOUTQ _IOR('t', 115, int)
00100 #define TIOCSTI _IOW('t', 114, char)
00101 #define TIOCNOTTY _IO('t', 113)
00102 #define TIOCPKT _IOW('t', 112, int)
00103 #define TIOCPKT_DATA 0x00
00104 #define TIOCPKT_FLUSHREAD 0x01
00105 #define TIOCPKT_FLUSHWRITE 0x02
00106 #define TIOCPKT_STOP 0x04
00107 #define TIOCPKT_START 0x08
00108 #define TIOCPKT_NOSTOP 0x10
00109 #define TIOCPKT_DOSTOP 0x20
00110 #define TIOCPKT_IOCTL 0x40
00111 #define TIOCSTOP _IO('t', 111)
00112 #define TIOCSTART _IO('t', 110)
00113 #define TIOCMSET _IOW('t', 109, int)
00114 #define TIOCMBIS _IOW('t', 108, int)
00115 #define TIOCMBIC _IOW('t', 107, int)
00116 #define TIOCMGET _IOR('t', 106, int)
00117 #define TIOCREMOTE _IOW('t', 105, int)
00118 #define TIOCGWINSZ _IOR('t', 104, struct winsize)
00119 #define TIOCSWINSZ _IOW('t', 103, struct winsize)
00120 #define TIOCUCNTL _IOW('t', 102, int)
00121 #define TIOCSTAT _IOW('t', 101, int)
00122 #define UIOCCMD(n) _IO('u', n)
00123 #define TIOCGSID _IOR('t', 99, int)
00124 #define TIOCCONS _IOW('t', 98, int)
00125 #define TIOCSCTTY _IO('t', 97)
00126 #define TIOCEXT _IOW('t', 96, int)
00127 #define TIOCSIG _IO('t', 95)
00128 #define TIOCDRAIN _IO('t', 94)
00129 #define TIOCGFLAGS _IOR('t', 93, int)
00130 #define TIOCSFLAGS _IOW('t', 92, int)
00131 #define TIOCFLAG_SOFTCAR 0x01
00132 #define TIOCFLAG_CLOCAL 0x02
00133 #define TIOCFLAG_CRTSCTS 0x04
00134 #define TIOCFLAG_MDMBUF 0x08
00135 #define TIOCFLAG_CDTRCTS 0x10
00136 #define TIOCDCDTIMESTAMP _IOR('t', 88, struct timeval)
00137
00138
00139 #define TIOCRCVFRAME _IOW('t', 69, struct mbuf *)
00140 #define TIOCXMTFRAME _IOW('t', 68, struct mbuf *)
00141
00142
00143
00144
00145 #define MAXTTYDEVNAME 15
00146 #define TIOCGNAME _IOR('t', 200, void *)
00147
00148
00149
00150 #define TTYDISC 0
00151 #define TABLDISC 3
00152 #define SLIPDISC 4
00153 #define PPPDISC 5
00154 #define STRIPDISC 6
00155 #define SUNKBDDISC 7
00156 #define SUNMSDISC 8
00157 #define HDLCDISC 9
00158 #define IRFRAMEDISC 10
00159
00160
00161
00162
00163
00164
00165
00166
00167 #define VEOF 0
00168 #define VEOL 1
00169 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00170 #define VEOL2 2
00171 #endif
00172 #define VERASE 3
00173 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00174 #define VWERASE 4
00175 #endif
00176 #define VKILL 5
00177 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00178 #define VREPRINT 6
00179 #endif
00180
00181 #define VINTR 8
00182 #define VQUIT 9
00183 #define VSUSP 10
00184 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00185 #define VDSUSP 11
00186 #endif
00187 #define VSTART 12
00188 #define VSTOP 13
00189 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00190 #define VLNEXT 14
00191 #define VDISCARD 15
00192 #endif
00193 #define VMIN 16
00194 #define VTIME 17
00195 #ifndef _POSIX_C_SOURCE
00196 #define VSTATUS 18
00197
00198 #endif
00199 #define NCCS 20
00200
00201 #define _POSIX_VDISABLE ((unsigned char)'\377')
00202
00203 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00204 #define CCEQ(val, c) (c == val ? val != _POSIX_VDISABLE : 0)
00205 #endif
00206
00207
00208
00209
00210 #define IGNBRK 0x00000001
00211 #define BRKINT 0x00000002
00212 #define IGNPAR 0x00000004
00213 #define PARMRK 0x00000008
00214 #define INPCK 0x00000010
00215 #define ISTRIP 0x00000020
00216 #define INLCR 0x00000040
00217 #define IGNCR 0x00000080
00218 #define ICRNL 0x00000100
00219 #define IXON 0x00000200
00220 #define IXOFF 0x00000400
00221 #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
00222 #define IXANY 0x00000800
00223 #endif
00224 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00225 #define IMAXBEL 0x00002000
00226 #endif
00227
00228
00229
00230
00231 #define OPOST 0x00000001
00232 #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
00233 #define ONLCR 0x00000002
00234 #endif
00235 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00236 #define OXTABS 0x00000004
00237 #define ONOEOT 0x00000008
00238 #endif
00239 #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
00240 #define OCRNL 0x00000010
00241 #define ONOCR 0x00000020
00242 #define ONLRET 0x00000040
00243 #endif
00244
00245
00246
00247
00248 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00249 #define CIGNORE 0x00000001
00250 #endif
00251 #define CSIZE 0x00000300
00252 #define CS5 0x00000000
00253 #define CS6 0x00000100
00254 #define CS7 0x00000200
00255 #define CS8 0x00000300
00256 #define CSTOPB 0x00000400
00257 #define CREAD 0x00000800
00258 #define PARENB 0x00001000
00259 #define PARODD 0x00002000
00260 #define HUPCL 0x00004000
00261 #define CLOCAL 0x00008000
00262 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00263 #define CRTSCTS 0x00010000
00264 #define CRTS_IFLOW CRTSCTS
00265 #define CCTS_OFLOW CRTSCTS
00266 #define CDTRCTS 0x00020000
00267 #define MDMBUF 0x00100000
00268 #define CHWFLOW (MDMBUF|CRTSCTS|CDTRCTS)
00269 #endif
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00281 #define ECHOKE 0x00000001
00282 #endif
00283 #define ECHOE 0x00000002
00284 #define ECHOK 0x00000004
00285 #define ECHO 0x00000008
00286 #define ECHONL 0x00000010
00287 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00288 #define ECHOPRT 0x00000020
00289 #define ECHOCTL 0x00000040
00290 #endif
00291 #define ISIG 0x00000080
00292 #define ICANON 0x00000100
00293 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00294 #define ALTWERASE 0x00000200
00295 #endif
00296 #define IEXTEN 0x00000400
00297 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00298 #define EXTPROC 0x00000800
00299 #endif
00300 #define TOSTOP 0x00400000
00301 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00302 #define FLUSHO 0x00800000
00303 #define NOKERNINFO 0x02000000
00304 #define PENDIN 0x20000000
00305 #endif
00306 #define NOFLSH 0x80000000
00307
00308 typedef unsigned int tcflag_t;
00309 typedef unsigned char cc_t;
00310 typedef unsigned int speed_t;
00311
00312 struct termios {
00313 tcflag_t c_iflag;
00314 tcflag_t c_oflag;
00315 tcflag_t c_cflag;
00316 tcflag_t c_lflag;
00317 cc_t c_cc[NCCS];
00318 int c_ispeed;
00319 int c_ospeed;
00320 };
00321
00322
00323
00324
00325 #define TCSANOW 0
00326 #define TCSADRAIN 1
00327 #define TCSAFLUSH 2
00328 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00329 #define TCSASOFT 0x10
00330 #endif
00331
00332
00333
00334
00335 #define B0 0
00336 #define B50 50
00337 #define B75 75
00338 #define B110 110
00339 #define B134 134
00340 #define B150 150
00341 #define B200 200
00342 #define B300 300
00343 #define B600 600
00344 #define B1200 1200
00345 #define B1800 1800
00346 #define B2400 2400
00347 #define B4800 4800
00348 #define B9600 9600
00349 #define B19200 19200
00350 #define B38400 38400
00351 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
00352 #define B7200 7200
00353 #define B14400 14400
00354 #define B28800 28800
00355 #define B57600 57600
00356 #define B76800 76800
00357 #define B115200 115200
00358 #define B230400 230400
00359 #define EXTA 19200
00360 #define EXTB 38400
00361 #endif
00362
00363
00364 #define TCIFLUSH 1
00365 #define TCOFLUSH 2
00366 #define TCIOFLUSH 3
00367 #define TCOOFF 1
00368 #define TCOON 2
00369 #define TCIOFF 3
00370 #define TCION 4
00371
00372 #include "termcap.h"
00373
00374
00375
00376 int tcsetpgrp(int fd, pid_t pgrp_id);
00377 pid_t tcgetpgrp(int fd);
00378 int tcgetattr(int fd, struct termios *t);
00379 int tcsetattr(int fd, int action, const struct termios *t);
00380 char *getpass(const char *prompt);
00381 int openpty2(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize *winp, int insecure);
00382 char *ttyname(int fd);
00383 void tty_dump(void);
00384 #endif