root/include/asm-alpha/termios.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. trans_from_termio
  2. trans_to_termio

   1 #ifndef _ALPHA_TERMIOS_H
   2 #define _ALPHA_TERMIOS_H
   3 
   4 #include <linux/types.h>
   5 
   6 #include <asm/ioctl.h>
   7 
   8 struct sgttyb {
   9         char    sg_ispeed;
  10         char    sg_ospeed;
  11         char    sg_erase;
  12         char    sg_kill;
  13         short   sg_flags;
  14 };
  15 
  16 struct tchars {
  17         char    t_intrc;
  18         char    t_quitc;
  19         char    t_startc;
  20         char    t_stopc;
  21         char    t_eofc;
  22         char    t_brkc;
  23 };
  24 
  25 struct ltchars {
  26         char    t_suspc;
  27         char    t_dsuspc;
  28         char    t_rprntc;
  29         char    t_flushc;
  30         char    t_werasc;
  31         char    t_lnextc;
  32 };
  33 
  34 #define FIOCLEX         _IO('f', 1)
  35 #define FIONCLEX        _IO('f', 2)
  36 #define FIOASYNC        _IOW('f', 125, int)
  37 #define FIONBIO         _IOW('f', 126, int)
  38 #define FIONREAD        _IOR('f', 127, int)
  39 #define TIOCINQ         FIONREAD
  40 
  41 #define TIOCGETP        _IOR('t', 8, struct sgttyb)
  42 #define TIOCSETP        _IOW('t', 9, struct sgttyb)
  43 #define TIOCSETN        _IOW('t', 10, struct sgttyb)    /* TIOCSETP wo flush */
  44 
  45 #define TIOCSETC        _IOW('t', 17, struct tchars)
  46 #define TIOCGETC        _IOR('t', 18, struct tchars)
  47 #define TCGETS          _IOR('t', 19, struct termios)
  48 #define TCSETS          _IOW('t', 20, struct termios)
  49 #define TCSETSW         _IOW('t', 21, struct termios)
  50 #define TCSETSF         _IOW('t', 22, struct termios)
  51 
  52 #define TCGETA          _IOR('t', 23, struct termio)
  53 #define TCSETA          _IOW('t', 24, struct termio)
  54 #define TCSETAW         _IOW('t', 25, struct termio)
  55 #define TCSETAF         _IOW('t', 28, struct termio)
  56 
  57 #define TCSBRK          _IO('t', 29)
  58 #define TCXONC          _IO('t', 30)
  59 #define TCFLSH          _IO('t', 31)
  60 
  61 #define TIOCSWINSZ      _IOW('t', 103, struct winsize)
  62 #define TIOCGWINSZ      _IOR('t', 104, struct winsize)
  63 #define TIOCSTART       _IO('t', 110)           /* start output, like ^Q */
  64 #define TIOCSTOP        _IO('t', 111)           /* stop output, like ^S */
  65 #define TIOCOUTQ        _IOR('t', 115, int)     /* output queue size */
  66 
  67 #define TIOCGLTC        _IOR('t', 116, struct ltchars)
  68 #define TIOCSLTC        _IOW('t', 117, struct ltchars)
  69 #define TIOCSPGRP       _IOW('t', 118, int)
  70 #define TIOCGPGRP       _IOR('t', 119, int)
  71 
  72 #define TIOCEXCL        0x540C
  73 #define TIOCNXCL        0x540D
  74 #define TIOCSCTTY       0x540E
  75 
  76 #define TIOCSTI         0x5412
  77 #define TIOCMGET        0x5415
  78 #define TIOCMBIS        0x5416
  79 #define TIOCMBIC        0x5417
  80 #define TIOCMSET        0x5418
  81 #define TIOCGSOFTCAR    0x5419
  82 #define TIOCSSOFTCAR    0x541A
  83 #define TIOCLINUX       0x541C
  84 #define TIOCCONS        0x541D
  85 #define TIOCGSERIAL     0x541E
  86 #define TIOCSSERIAL     0x541F
  87 #define TIOCPKT         0x5420
  88 
  89 #define TIOCNOTTY       0x5422
  90 #define TIOCSETD        0x5423
  91 #define TIOCGETD        0x5424
  92 #define TCSBRKP         0x5425  /* Needed for POSIX tcsendbreak() */
  93 #define TIOCTTYGSTRUCT  0x5426  /* For debugging only */
  94 
  95 #define TIOCSERCONFIG   0x5453
  96 #define TIOCSERGWILD    0x5454
  97 #define TIOCSERSWILD    0x5455
  98 #define TIOCGLCKTRMIOS  0x5456
  99 #define TIOCSLCKTRMIOS  0x5457
 100 #define TIOCSERGSTRUCT  0x5458 /* For debugging only */
 101 #define TIOCSERGETLSR   0x5459 /* Get line status register */
 102 #define TIOCSERGETMULTI 0x545A /* Get multiport config  */
 103 #define TIOCSERSETMULTI 0x545B /* Set multiport config */
 104 
 105 /* Used for packet mode */
 106 #define TIOCPKT_DATA             0
 107 #define TIOCPKT_FLUSHREAD        1
 108 #define TIOCPKT_FLUSHWRITE       2
 109 #define TIOCPKT_STOP             4
 110 #define TIOCPKT_START            8
 111 #define TIOCPKT_NOSTOP          16
 112 #define TIOCPKT_DOSTOP          32
 113 
 114 struct winsize {
 115         unsigned short ws_row;
 116         unsigned short ws_col;
 117         unsigned short ws_xpixel;
 118         unsigned short ws_ypixel;
 119 };
 120 
 121 #define NCC 8
 122 struct termio {
 123         unsigned short c_iflag;         /* input mode flags */
 124         unsigned short c_oflag;         /* output mode flags */
 125         unsigned short c_cflag;         /* control mode flags */
 126         unsigned short c_lflag;         /* local mode flags */
 127         unsigned char c_line;           /* line discipline */
 128         unsigned char c_cc[NCC];        /* control characters */
 129 };
 130 
 131 #define NCCS 19
 132 struct termios {
 133         tcflag_t c_iflag;               /* input mode flags */
 134         tcflag_t c_oflag;               /* output mode flags */
 135         tcflag_t c_cflag;               /* control mode flags */
 136         tcflag_t c_lflag;               /* local mode flags */
 137         cc_t c_cc[NCCS];                /* control characters */
 138         cc_t c_line;                    /* line discipline (== c_cc[19]) */
 139         int c_ispeed;                   /* input speed */
 140         int c_ospeed;                   /* output speed */
 141 };
 142 
 143 /* c_cc characters */
 144 #define VEOF 0
 145 #define VEOL 1
 146 #define VEOL2 2
 147 #define VERASE 3
 148 #define VWERASE 4
 149 #define VKILL 5
 150 #define VREPRINT 6
 151 #define VSWTC 7
 152 #define VINTR 8
 153 #define VQUIT 9
 154 #define VSUSP 10
 155 #define VSTART 12
 156 #define VSTOP 13
 157 #define VLNEXT 14
 158 #define VDISCARD 15
 159 #define VMIN 16
 160 #define VTIME 17
 161 
 162 /*
 163  * ..and the same for c_cc in the termio structure.. 
 164  * Oh, how I love being backwardly compatible.
 165  */
 166 #define _VINTR  0
 167 #define _VQUIT  1
 168 #define _VERASE 2
 169 #define _VKILL  3
 170 #define _VEOF   4
 171 #define _VMIN   4
 172 #define _VEOL   5
 173 #define _VTIME  5
 174 #define _VEOL2  6
 175 #define _VSWTC  7
 176 
 177 #ifdef __KERNEL__
 178 /*      eof=^D          eol=\0          eol2=\0         erase=del
 179         werase=^W       kill=^U         reprint=^R      sxtc=\0
 180         intr=^C         quit=^\         susp=^Z         <OSF/1 VDSUSP>
 181         start=^Q        stop=^S         lnext=^V        discard=^U
 182         vmin=\1         vtime=\0
 183 */
 184 #define INIT_C_CC "\004\000\000\177\027\025\022\000\003\034\032\000\021\023\026\025\001\000"
 185 #endif
 186 
 187 /* c_iflag bits */
 188 #define IGNBRK  0000001
 189 #define BRKINT  0000002
 190 #define IGNPAR  0000004
 191 #define PARMRK  0000010
 192 #define INPCK   0000020
 193 #define ISTRIP  0000040
 194 #define INLCR   0000100
 195 #define IGNCR   0000200
 196 #define ICRNL   0000400
 197 #define IXON    0001000
 198 #define IXOFF   0002000
 199 #define IXANY   0004000
 200 #define IUCLC   0010000
 201 #define IMAXBEL 0020000
 202 
 203 /* c_oflag bits */
 204 #define OPOST   0000001
 205 #define ONLCR   0000002
 206 #define OLCUC   0000004
 207 
 208 #define OCRNL   0000010
 209 #define ONOCR   0000020
 210 #define ONLRET  0000040
 211 
 212 #define OFILL   00000100
 213 #define OFDEL   00000200
 214 #define NLDLY   00001400
 215 #define   NL0   00000000
 216 #define   NL1   00000400
 217 #define   NL2   00001000
 218 #define   NL3   00001400
 219 #define TABDLY  00006000
 220 #define   TAB0  00000000
 221 #define   TAB1  00002000
 222 #define   TAB2  00004000
 223 #define   TAB3  00006000
 224 #define CRDLY   00030000
 225 #define   CR0   00000000
 226 #define   CR1   00010000
 227 #define   CR2   00020000
 228 #define   CR3   00030000
 229 #define FFDLY   00040000
 230 #define   FF0   00000000
 231 #define   FF1   00040000
 232 #define BSDLY   00100000
 233 #define   BS0   00000000
 234 #define   BS1   00100000
 235 #define VTDLY   00200000
 236 #define   VT0   00000000
 237 #define   VT1   00200000
 238 #define XTABS   01000000 /* Hmm.. Linux/i386 considers this part of TABDLY.. */
 239 
 240 /* c_cflag bit meaning */
 241 #define CBAUD   0000377
 242 #define  B0     0000000         /* hang up */
 243 #define  B50    0000001
 244 #define  B75    0000002
 245 #define  B110   0000003
 246 #define  B134   0000004
 247 #define  B150   0000005
 248 #define  B200   0000006
 249 #define  B300   0000007
 250 #define  B600   0000010
 251 #define  B1200  0000011
 252 #define  B1800  0000012
 253 #define  B2400  0000013
 254 #define  B4800  0000014
 255 #define  B9600  0000015
 256 #define  B19200 0000016
 257 #define  B38400 0000017
 258 #define EXTA B19200
 259 #define EXTB B38400
 260 #define CBAUDEX 0000020
 261 #define  B57600   00020
 262 #define  B115200  00021
 263 #define  B230400  00022
 264 
 265 #define CSIZE   00001400
 266 #define   CS5   00000000
 267 #define   CS6   00000400
 268 #define   CS7   00001000
 269 #define   CS8   00001400
 270 
 271 #define CSTOPB  00002000
 272 #define CREAD   00004000
 273 #define PARENB  00010000
 274 #define PARODD  00020000
 275 #define HUPCL   00040000
 276 
 277 #define CLOCAL  00100000
 278 #define CRTSCTS   020000000000          /* flow control */
 279 
 280 /* c_lflag bits */
 281 #define ISIG    0x00000080
 282 #define ICANON  0x00000100
 283 #define XCASE   0x00004000
 284 #define ECHO    0x00000008
 285 #define ECHOE   0x00000002
 286 #define ECHOK   0x00000004
 287 #define ECHONL  0x00000010
 288 #define NOFLSH  0x80000000
 289 #define TOSTOP  0x00400000
 290 #define ECHOCTL 0x00000040
 291 #define ECHOPRT 0x00000020
 292 #define ECHOKE  0x00000001
 293 #define FLUSHO  0x00800000
 294 #define PENDIN  0x20000000
 295 #define IEXTEN  0x00000400
 296 
 297 /* modem lines */
 298 #define TIOCM_LE        0x001
 299 #define TIOCM_DTR       0x002
 300 #define TIOCM_RTS       0x004
 301 #define TIOCM_ST        0x008
 302 #define TIOCM_SR        0x010
 303 #define TIOCM_CTS       0x020
 304 #define TIOCM_CAR       0x040
 305 #define TIOCM_RNG       0x080
 306 #define TIOCM_DSR       0x100
 307 #define TIOCM_CD        TIOCM_CAR
 308 #define TIOCM_RI        TIOCM_RNG
 309 
 310 /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
 311 #define TIOCSER_TEMT    0x01    /* Transmitter physically empty */
 312 
 313 
 314 /* tcflow() and TCXONC use these */
 315 #define TCOOFF          0
 316 #define TCOON           1
 317 #define TCIOFF          2
 318 #define TCION           3
 319 
 320 /* tcflush() and TCFLSH use these */
 321 #define TCIFLUSH        0
 322 #define TCOFLUSH        1
 323 #define TCIOFLUSH       2
 324 
 325 /* tcsetattr uses these */
 326 #define TCSANOW         0
 327 #define TCSADRAIN       1
 328 #define TCSAFLUSH       2
 329 
 330 /* line disciplines */
 331 #define N_TTY           0
 332 #define N_SLIP          1
 333 #define N_MOUSE         2
 334 #define N_PPP           3
 335 
 336 #ifdef __KERNEL__
 337 
 338 /*
 339  * Translate a "termio" structure into a "termios". Ugh.
 340  */
 341 extern inline void trans_from_termio(struct termio * termio,
     /* [previous][next][first][last][top][bottom][index][help] */
 342         struct termios * termios)
 343 {
 344 #define SET_LOW_BITS(x,y)       ((x) = (0xffff0000 & (x)) | (y))
 345         SET_LOW_BITS(termios->c_iflag, termio->c_iflag);
 346         SET_LOW_BITS(termios->c_oflag, termio->c_oflag);
 347         SET_LOW_BITS(termios->c_cflag, termio->c_cflag);
 348         SET_LOW_BITS(termios->c_lflag, termio->c_lflag);
 349 #undef SET_LOW_BITS
 350         termios->c_cc[VINTR] = termio->c_cc[_VINTR];
 351         termios->c_cc[VQUIT] = termio->c_cc[_VQUIT];
 352         termios->c_cc[VERASE]= termio->c_cc[_VERASE];
 353         termios->c_cc[VKILL] = termio->c_cc[_VKILL];
 354         termios->c_cc[VEOF]  = termio->c_cc[_VEOF];
 355         termios->c_cc[VMIN]  = termio->c_cc[_VMIN];
 356         termios->c_cc[VEOL]  = termio->c_cc[_VEOL];
 357         termios->c_cc[VTIME] = termio->c_cc[_VTIME];
 358         termios->c_cc[VEOL2] = termio->c_cc[_VEOL2];
 359         termios->c_cc[VSWTC] = termio->c_cc[_VSWTC];
 360 }
 361 
 362 /*
 363  * Translate a "termios" structure into a "termio". Ugh.
 364  *
 365  * Note the "fun" _VMIN overloading.
 366  */
 367 extern inline void trans_to_termio(struct termios * termios,
     /* [previous][next][first][last][top][bottom][index][help] */
 368         struct termio * termio)
 369 {
 370         termio->c_iflag = termios->c_iflag;
 371         termio->c_oflag = termios->c_oflag;
 372         termio->c_cflag = termios->c_cflag;
 373         termio->c_lflag = termios->c_lflag;
 374         termio->c_line  = termios->c_line;
 375         termio->c_cc[_VINTR] = termios->c_cc[VINTR];
 376         termio->c_cc[_VQUIT] = termios->c_cc[VQUIT];
 377         termio->c_cc[_VERASE]= termios->c_cc[VERASE];
 378         termio->c_cc[_VKILL] = termios->c_cc[VKILL];
 379         termio->c_cc[_VEOF]  = termios->c_cc[VEOF];
 380         termio->c_cc[_VEOL]  = termios->c_cc[VEOL];
 381         termio->c_cc[_VEOL2] = termios->c_cc[VEOL2];
 382         termio->c_cc[_VSWTC] = termios->c_cc[VSWTC];
 383         if (!(termios->c_lflag & ICANON)) {
 384                 termio->c_cc[_VMIN]  = termios->c_cc[VMIN];
 385                 termio->c_cc[_VTIME] = termios->c_cc[VTIME];
 386         }
 387 }
 388 
 389 #endif  /* __KERNEL__ */
 390 
 391 #endif  /* _ALPHA_TERMIOS_H */

/* [previous][next][first][last][top][bottom][index][help] */