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 #define TIOCMIWAIT      0x545C  /* wait for a change on serial input line(s) */
 106 #define TIOCGICOUNT     0x545D  /* read serial port inline interrupt counts */
 107 
 108 /* Used for packet mode */
 109 #define TIOCPKT_DATA             0
 110 #define TIOCPKT_FLUSHREAD        1
 111 #define TIOCPKT_FLUSHWRITE       2
 112 #define TIOCPKT_STOP             4
 113 #define TIOCPKT_START            8
 114 #define TIOCPKT_NOSTOP          16
 115 #define TIOCPKT_DOSTOP          32
 116 
 117 struct winsize {
 118         unsigned short ws_row;
 119         unsigned short ws_col;
 120         unsigned short ws_xpixel;
 121         unsigned short ws_ypixel;
 122 };
 123 
 124 #define NCC 8
 125 struct termio {
 126         unsigned short c_iflag;         /* input mode flags */
 127         unsigned short c_oflag;         /* output mode flags */
 128         unsigned short c_cflag;         /* control mode flags */
 129         unsigned short c_lflag;         /* local mode flags */
 130         unsigned char c_line;           /* line discipline */
 131         unsigned char c_cc[NCC];        /* control characters */
 132 };
 133 
 134 #define NCCS 19
 135 struct termios {
 136         tcflag_t c_iflag;               /* input mode flags */
 137         tcflag_t c_oflag;               /* output mode flags */
 138         tcflag_t c_cflag;               /* control mode flags */
 139         tcflag_t c_lflag;               /* local mode flags */
 140         cc_t c_cc[NCCS];                /* control characters */
 141         cc_t c_line;                    /* line discipline (== c_cc[19]) */
 142         int c_ispeed;                   /* input speed */
 143         int c_ospeed;                   /* output speed */
 144 };
 145 
 146 /* c_cc characters */
 147 #define VEOF 0
 148 #define VEOL 1
 149 #define VEOL2 2
 150 #define VERASE 3
 151 #define VWERASE 4
 152 #define VKILL 5
 153 #define VREPRINT 6
 154 #define VSWTC 7
 155 #define VINTR 8
 156 #define VQUIT 9
 157 #define VSUSP 10
 158 #define VSTART 12
 159 #define VSTOP 13
 160 #define VLNEXT 14
 161 #define VDISCARD 15
 162 #define VMIN 16
 163 #define VTIME 17
 164 
 165 /*
 166  * ..and the same for c_cc in the termio structure.. 
 167  * Oh, how I love being backwardly compatible.
 168  */
 169 #define _VINTR  0
 170 #define _VQUIT  1
 171 #define _VERASE 2
 172 #define _VKILL  3
 173 #define _VEOF   4
 174 #define _VMIN   4
 175 #define _VEOL   5
 176 #define _VTIME  5
 177 #define _VEOL2  6
 178 #define _VSWTC  7
 179 
 180 #ifdef __KERNEL__
 181 /*      eof=^D          eol=\0          eol2=\0         erase=del
 182         werase=^W       kill=^U         reprint=^R      sxtc=\0
 183         intr=^C         quit=^\         susp=^Z         <OSF/1 VDSUSP>
 184         start=^Q        stop=^S         lnext=^V        discard=^U
 185         vmin=\1         vtime=\0
 186 */
 187 #define INIT_C_CC "\004\000\000\177\027\025\022\000\003\034\032\000\021\023\026\025\001\000"
 188 #endif
 189 
 190 /* c_iflag bits */
 191 #define IGNBRK  0000001
 192 #define BRKINT  0000002
 193 #define IGNPAR  0000004
 194 #define PARMRK  0000010
 195 #define INPCK   0000020
 196 #define ISTRIP  0000040
 197 #define INLCR   0000100
 198 #define IGNCR   0000200
 199 #define ICRNL   0000400
 200 #define IXON    0001000
 201 #define IXOFF   0002000
 202 #define IXANY   0004000
 203 #define IUCLC   0010000
 204 #define IMAXBEL 0020000
 205 
 206 /* c_oflag bits */
 207 #define OPOST   0000001
 208 #define ONLCR   0000002
 209 #define OLCUC   0000004
 210 
 211 #define OCRNL   0000010
 212 #define ONOCR   0000020
 213 #define ONLRET  0000040
 214 
 215 #define OFILL   00000100
 216 #define OFDEL   00000200
 217 #define NLDLY   00001400
 218 #define   NL0   00000000
 219 #define   NL1   00000400
 220 #define   NL2   00001000
 221 #define   NL3   00001400
 222 #define TABDLY  00006000
 223 #define   TAB0  00000000
 224 #define   TAB1  00002000
 225 #define   TAB2  00004000
 226 #define   TAB3  00006000
 227 #define CRDLY   00030000
 228 #define   CR0   00000000
 229 #define   CR1   00010000
 230 #define   CR2   00020000
 231 #define   CR3   00030000
 232 #define FFDLY   00040000
 233 #define   FF0   00000000
 234 #define   FF1   00040000
 235 #define BSDLY   00100000
 236 #define   BS0   00000000
 237 #define   BS1   00100000
 238 #define VTDLY   00200000
 239 #define   VT0   00000000
 240 #define   VT1   00200000
 241 #define XTABS   01000000 /* Hmm.. Linux/i386 considers this part of TABDLY.. */
 242 
 243 /* c_cflag bit meaning */
 244 #define CBAUD   0000017
 245 #define  B0     0000000         /* hang up */
 246 #define  B50    0000001
 247 #define  B75    0000002
 248 #define  B110   0000003
 249 #define  B134   0000004
 250 #define  B150   0000005
 251 #define  B200   0000006
 252 #define  B300   0000007
 253 #define  B600   0000010
 254 #define  B1200  0000011
 255 #define  B1800  0000012
 256 #define  B2400  0000013
 257 #define  B4800  0000014
 258 #define  B9600  0000015
 259 #define  B19200 0000016
 260 #define  B38400 0000017
 261 #define EXTA B19200
 262 #define EXTB B38400
 263 #define CBAUDEX 0000020
 264 #define  B57600   00020
 265 #define  B115200  00021
 266 #define  B230400  00022
 267 
 268 #define CSIZE   00001400
 269 #define   CS5   00000000
 270 #define   CS6   00000400
 271 #define   CS7   00001000
 272 #define   CS8   00001400
 273 
 274 #define CSTOPB  00002000
 275 #define CREAD   00004000
 276 #define PARENB  00010000
 277 #define PARODD  00020000
 278 #define HUPCL   00040000
 279 
 280 #define CLOCAL  00100000
 281 #define CRTSCTS   020000000000          /* flow control */
 282 
 283 /* c_lflag bits */
 284 #define ISIG    0x00000080
 285 #define ICANON  0x00000100
 286 #define XCASE   0x00004000
 287 #define ECHO    0x00000008
 288 #define ECHOE   0x00000002
 289 #define ECHOK   0x00000004
 290 #define ECHONL  0x00000010
 291 #define NOFLSH  0x80000000
 292 #define TOSTOP  0x00400000
 293 #define ECHOCTL 0x00000040
 294 #define ECHOPRT 0x00000020
 295 #define ECHOKE  0x00000001
 296 #define FLUSHO  0x00800000
 297 #define PENDIN  0x20000000
 298 #define IEXTEN  0x00000400
 299 
 300 /* modem lines */
 301 #define TIOCM_LE        0x001
 302 #define TIOCM_DTR       0x002
 303 #define TIOCM_RTS       0x004
 304 #define TIOCM_ST        0x008
 305 #define TIOCM_SR        0x010
 306 #define TIOCM_CTS       0x020
 307 #define TIOCM_CAR       0x040
 308 #define TIOCM_RNG       0x080
 309 #define TIOCM_DSR       0x100
 310 #define TIOCM_CD        TIOCM_CAR
 311 #define TIOCM_RI        TIOCM_RNG
 312 
 313 /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
 314 #define TIOCSER_TEMT    0x01    /* Transmitter physically empty */
 315 
 316 
 317 /* tcflow() and TCXONC use these */
 318 #define TCOOFF          0
 319 #define TCOON           1
 320 #define TCIOFF          2
 321 #define TCION           3
 322 
 323 /* tcflush() and TCFLSH use these */
 324 #define TCIFLUSH        0
 325 #define TCOFLUSH        1
 326 #define TCIOFLUSH       2
 327 
 328 /* tcsetattr uses these */
 329 #define TCSANOW         0
 330 #define TCSADRAIN       1
 331 #define TCSAFLUSH       2
 332 
 333 /* line disciplines */
 334 #define N_TTY           0
 335 #define N_SLIP          1
 336 #define N_MOUSE         2
 337 #define N_PPP           3
 338 
 339 #ifdef __KERNEL__
 340 
 341 /*
 342  * Translate a "termio" structure into a "termios". Ugh.
 343  */
 344 extern inline void trans_from_termio(struct termio * termio,
     /* [previous][next][first][last][top][bottom][index][help] */
 345         struct termios * termios)
 346 {
 347 #define SET_LOW_BITS(x,y)       ((x) = (0xffff0000 & (x)) | (y))
 348         SET_LOW_BITS(termios->c_iflag, termio->c_iflag);
 349         SET_LOW_BITS(termios->c_oflag, termio->c_oflag);
 350         SET_LOW_BITS(termios->c_cflag, termio->c_cflag);
 351         SET_LOW_BITS(termios->c_lflag, termio->c_lflag);
 352 #undef SET_LOW_BITS
 353         termios->c_cc[VINTR] = termio->c_cc[_VINTR];
 354         termios->c_cc[VQUIT] = termio->c_cc[_VQUIT];
 355         termios->c_cc[VERASE]= termio->c_cc[_VERASE];
 356         termios->c_cc[VKILL] = termio->c_cc[_VKILL];
 357         termios->c_cc[VEOF]  = termio->c_cc[_VEOF];
 358         termios->c_cc[VMIN]  = termio->c_cc[_VMIN];
 359         termios->c_cc[VEOL]  = termio->c_cc[_VEOL];
 360         termios->c_cc[VTIME] = termio->c_cc[_VTIME];
 361         termios->c_cc[VEOL2] = termio->c_cc[_VEOL2];
 362         termios->c_cc[VSWTC] = termio->c_cc[_VSWTC];
 363 }
 364 
 365 /*
 366  * Translate a "termios" structure into a "termio". Ugh.
 367  *
 368  * Note the "fun" _VMIN overloading.
 369  */
 370 extern inline void trans_to_termio(struct termios * termios,
     /* [previous][next][first][last][top][bottom][index][help] */
 371         struct termio * termio)
 372 {
 373         termio->c_iflag = termios->c_iflag;
 374         termio->c_oflag = termios->c_oflag;
 375         termio->c_cflag = termios->c_cflag;
 376         termio->c_lflag = termios->c_lflag;
 377         termio->c_line  = termios->c_line;
 378         termio->c_cc[_VINTR] = termios->c_cc[VINTR];
 379         termio->c_cc[_VQUIT] = termios->c_cc[VQUIT];
 380         termio->c_cc[_VERASE]= termios->c_cc[VERASE];
 381         termio->c_cc[_VKILL] = termios->c_cc[VKILL];
 382         termio->c_cc[_VEOF]  = termios->c_cc[VEOF];
 383         termio->c_cc[_VEOL]  = termios->c_cc[VEOL];
 384         termio->c_cc[_VEOL2] = termios->c_cc[VEOL2];
 385         termio->c_cc[_VSWTC] = termios->c_cc[VSWTC];
 386         if (!(termios->c_lflag & ICANON)) {
 387                 termio->c_cc[_VMIN]  = termios->c_cc[VMIN];
 388                 termio->c_cc[_VTIME] = termios->c_cc[VTIME];
 389         }
 390 }
 391 
 392 #endif  /* __KERNEL__ */
 393 
 394 #endif  /* _ALPHA_TERMIOS_H */

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