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

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