root/include/asm-sparc/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 /* $Id: termios.h,v 1.11 1996/02/10 04:31:03 davem Exp $ */
   2 #ifndef _SPARC_TERMIOS_H
   3 #define _SPARC_TERMIOS_H
   4 
   5 #include <linux/types.h>
   6 
   7 #include <asm/ioctl.h>
   8 
   9 struct sgttyb {
  10         char    sg_ispeed;
  11         char    sg_ospeed;
  12         char    sg_erase;
  13         char    sg_kill;
  14         short   sg_flags;
  15 };
  16 
  17 struct tchars {
  18         char    t_intrc;
  19         char    t_quitc;
  20         char    t_startc;
  21         char    t_stopc;
  22         char    t_eofc;
  23         char    t_brkc;
  24 };
  25 
  26 struct ltchars {
  27         char    t_suspc;
  28         char    t_dsuspc;
  29         char    t_rprntc;
  30         char    t_flushc;
  31         char    t_werasc;
  32         char    t_lnextc;
  33 };
  34 
  35 struct sunos_ttysize {
  36         int st_lines;   /* Lines on the terminal */
  37         int st_columns; /* Columns on the terminal */
  38 };
  39 
  40 /* Big T */
  41 #define TCGETA          _IOR('T', 1, struct termio)
  42 #define TCSETA          _IOW('T', 2, struct termio)
  43 #define TCSETAW         _IOW('T', 3, struct termio)
  44 #define TCSETAF         _IOW('T', 4, struct termio)
  45 #define TCSBRK          _IO('T', 5)
  46 #define TCXONC          _IO('T', 6)
  47 #define TCFLSH          _IO('T', 7)
  48 #define TCGETS          _IOR('T', 8, struct termios)
  49 #define TCSETS          _IOW('T', 9, struct termios)
  50 #define TCSETSW         _IOW('T', 10, struct termios)
  51 #define TCSETSF         _IOW('T', 11, struct termios)
  52 
  53 /* SCARY Rutgers local SunOS kernel hackery, perhaps I will support it
  54  * someday.  This is completely bogus, I know...
  55  */
  56 #define TCGETSTAT       _IO('T', 200) /* Rutgers specific */
  57 #define TCSETSTAT       _IO('T', 201) /* Rutgers specific */
  58 
  59 /* Little t */
  60 #define TIOCGETD        _IOR('t', 0, int)
  61 #define TIOCSETD        _IOW('t', 1, int)
  62 #define TIOCHPCL        _IO('t', 2) /* SunOS Specific */
  63 #define TIOCMODG        _IOR('t', 3, int) /* SunOS Specific */
  64 #define TIOCMODS        _IOW('t', 4, int) /* SunOS Specific */
  65 #define TIOCGETP        _IOR('t', 8, struct sgttyb) /* SunOS Specific */
  66 #define TIOCSETP        _IOW('t', 9, struct sgttyb) /* SunOS Specific */
  67 #define TIOCSETN        _IOW('t', 10, struct sgttyb) /* SunOS Specific */
  68 #define TIOCEXCL        _IO('t', 13)
  69 #define TIOCNXCL        _IO('t', 14)
  70 #define TIOCFLUSH       _IOW('t', 16, int) /* SunOS Specific */
  71 #define TIOCSETC        _IOW('t', 17, struct tchars) /* SunOS Specific */
  72 #define TIOCGETC        _IOR('t', 18, struct tchars) /* SunOS Specific */
  73 #define TIOCTCNTL       _IOW('t', 32, int) /* SunOS Specific */
  74 #define TIOCSIGNAL      _IOW('t', 33, int) /* SunOS Specific */
  75 #define TIOCSETX        _IOW('t', 34, int) /* SunOS Specific */
  76 #define TIOCGETX        _IOR('t', 35, int) /* SunOS Specific */
  77 #define TIOCCONS        _IO('t', 36)
  78 #define TIOCSSIZE       _IOW('t', 37, struct sunos_ttysize) /* SunOS Specific */
  79 #define TIOCGSIZE       _IOR('t', 38, struct sunos_ttysize) /* SunOS Specific */
  80 #define TIOCGSOFTCAR    _IOR('t', 100, int)
  81 #define TIOCSSOFTCAR    _IOW('t', 101, int)
  82 #define TIOCUCNTL       _IOW('t', 102, int) /* SunOS Specific */
  83 #define TIOCSWINSZ      _IOW('t', 103, struct winsize)
  84 #define TIOCGWINSZ      _IOR('t', 104, struct winsize)
  85 #define TIOCREMOTE      _IOW('t', 105, int) /* SunOS Specific */
  86 #define TIOCMGET        _IOR('t', 106, int)
  87 #define TIOCMBIC        _IOW('t', 107, int)
  88 #define TIOCMBIS        _IOW('t', 108, int)
  89 #define TIOCMSET        _IOW('t', 109, int)
  90 #define TIOCSTART       _IO('t', 110) /* SunOS Specific */
  91 #define TIOCSTOP        _IO('t', 111) /* SunOS Specific */
  92 #define TIOCPKT         _IOW('t', 112, int)
  93 #define TIOCNOTTY       _IO('t', 113)
  94 #define TIOCSTI         _IOW('t', 114, char)
  95 #define TIOCOUTQ        _IOR('t', 115, int)
  96 #define TIOCGLTC        _IOR('t', 116, struct ltchars) /* SunOS Specific */
  97 #define TIOCSLTC        _IOW('t', 117, struct ltchars) /* SunOS Specific */
  98 /* 118 is the non-posix setpgrp tty ioctl */
  99 /* 119 is the non-posix getpgrp tty ioctl */
 100 #define TIOCCDTR        _IO('t', 120) /* SunOS Specific */
 101 #define TIOCSDTR        _IO('t', 121) /* SunOS Specific */
 102 #define TIOCCBRK        _IO('t', 122) /* SunOS Specific */
 103 #define TIOCSBRK        _IO('t', 123) /* SunOS Specific */
 104 #define TIOCLGET        _IOW('t', 124, int) /* SunOS Specific */
 105 #define TIOCLSET        _IOW('t', 125, int) /* SunOS Specific */
 106 #define TIOCLBIC        _IOW('t', 126, int) /* SunOS Specific */
 107 #define TIOCLBIS        _IOW('t', 127, int) /* SunOS Specific */
 108 #define TIOCISPACE      _IOR('t', 128, int) /* SunOS Specific */
 109 #define TIOCISIZE       _IOR('t', 129, int) /* SunOS Specific */
 110 #define TIOCSPGRP       _IOW('t', 130, int)
 111 #define TIOCGPGRP       _IOR('t', 131, int)
 112 #define TIOCSCTTY       _IO('t', 132)
 113 
 114 /* Little f */
 115 #define FIOCLEX         _IO('f', 1)
 116 #define FIONCLEX        _IO('f', 2)
 117 #define FIOASYNC        _IOW('f', 125, int)
 118 #define FIONBIO         _IOW('f', 126, int)
 119 #define FIONREAD        _IOR('f', 127, int)
 120 #define TIOCINQ         FIONREAD
 121 
 122 /* Linux specific, no SunOS equivalent. */
 123 #define TIOCLINUX       0x541C
 124 #define TIOCGSERIAL     0x541E
 125 #define TIOCSSERIAL     0x541F
 126 #define TCSBRKP         0x5425
 127 #define TIOCTTYGSTRUCT  0x5426
 128 #define TIOCSERCONFIG   0x5453
 129 #define TIOCSERGWILD    0x5454
 130 #define TIOCSERSWILD    0x5455
 131 #define TIOCGLCKTRMIOS  0x5456
 132 #define TIOCSLCKTRMIOS  0x5457
 133 #define TIOCSERGSTRUCT  0x5458 /* For debugging only */
 134 #define TIOCSERGETLSR   0x5459 /* Get line status register */
 135 #define TIOCSERGETMULTI 0x545A /* Get multiport config  */
 136 #define TIOCSERSETMULTI 0x545B /* Set multiport config */
 137 
 138 /* Used for packet mode */
 139 #define TIOCPKT_DATA             0
 140 #define TIOCPKT_FLUSHREAD        1
 141 #define TIOCPKT_FLUSHWRITE       2
 142 #define TIOCPKT_STOP             4
 143 #define TIOCPKT_START            8
 144 #define TIOCPKT_NOSTOP          16
 145 #define TIOCPKT_DOSTOP          32
 146 
 147 struct winsize {
 148         unsigned short ws_row;
 149         unsigned short ws_col;
 150         unsigned short ws_xpixel;
 151         unsigned short ws_ypixel;
 152 };
 153 
 154 #define NCC 8
 155 struct termio {
 156         unsigned short c_iflag;         /* input mode flags */
 157         unsigned short c_oflag;         /* output mode flags */
 158         unsigned short c_cflag;         /* control mode flags */
 159         unsigned short c_lflag;         /* local mode flags */
 160         unsigned char c_line;           /* line discipline */
 161         unsigned char c_cc[NCC];        /* control characters */
 162 };
 163 
 164 #define NCCS 17
 165 struct termios {
 166         tcflag_t c_iflag;               /* input mode flags */
 167         tcflag_t c_oflag;               /* output mode flags */
 168         tcflag_t c_cflag;               /* control mode flags */
 169         tcflag_t c_lflag;               /* local mode flags */
 170         cc_t c_line;                    /* line discipline */
 171         cc_t c_cc[NCCS];                /* control characters */
 172 };
 173 
 174 /* c_cc characters */
 175 #define VINTR    0
 176 #define VQUIT    1
 177 #define VERASE   2
 178 #define VKILL    3
 179 #define VEOF     4
 180 #define VEOL     5
 181 #define VEOL2    6
 182 #define VSWTC    7
 183 #define VSTART   8
 184 #define VSTOP    9
 185 #define VSUSP    10
 186 #define VDSUSP   11  /* SunOS POSIX nicety I do believe... */
 187 #define VREPRINT 12
 188 #define VDISCARD 13
 189 #define VWERASE  14
 190 #define VLNEXT   15
 191 #define VMIN     VEOF
 192 #define VTIME    VEOL
 193 
 194 #ifdef __KERNEL__
 195 /*      intr=^C         quit=^|         erase=del       kill=^U
 196         eof/vmin=\1     eol/vtime=\0    eol2=\0         sxtc=\0
 197         start=^Q        stop=^S         susp=^Z         dsusp=^Y
 198         reprint=^R      discard=^U      werase=^W       lnext=^V
 199 */
 200 #define INIT_C_CC "\003\034\177\025\001\000\000\000\021\023\032\031\022\025\027\026"
 201 #endif
 202 
 203 /* c_iflag bits */
 204 #define IGNBRK  0x00000001
 205 #define BRKINT  0x00000002
 206 #define IGNPAR  0x00000004
 207 #define PARMRK  0x00000008
 208 #define INPCK   0x00000010
 209 #define ISTRIP  0x00000020
 210 #define INLCR   0x00000040
 211 #define IGNCR   0x00000080
 212 #define ICRNL   0x00000100
 213 #define IUCLC   0x00000200
 214 #define IXON    0x00000400
 215 #define IXANY   0x00000800
 216 #define IXOFF   0x00001000
 217 #define IMAXBEL 0x00002000
 218 
 219 /* c_oflag bits */
 220 #define OPOST   0x00000001
 221 #define OLCUC   0x00000002
 222 #define ONLCR   0x00000004
 223 #define OCRNL   0x00000008
 224 #define ONOCR   0x00000010
 225 #define ONLRET  0x00000020
 226 #define OFILL   0x00000040
 227 #define OFDEL   0x00000080
 228 #define NLDLY   0x00000100
 229 #define   NL0   0x00000000
 230 #define   NL1   0x00000100
 231 #define CRDLY   0x00000600
 232 #define   CR0   0x00000000
 233 #define   CR1   0x00000200
 234 #define   CR2   0x00000400
 235 #define   CR3   0x00000600
 236 #define TABDLY  0x00001800
 237 #define   TAB0  0x00000000
 238 #define   TAB1  0x00000800
 239 #define   TAB2  0x00001000
 240 #define   TAB3  0x00001800
 241 #define   XTABS 0x00001800
 242 #define BSDLY   0x00002000
 243 #define   BS0   0x00000000
 244 #define   BS1   0x00002000
 245 #define VTDLY   0x00004000
 246 #define   VT0   0x00000000
 247 #define   VT1   0x00004000
 248 #define FFDLY   0x00008000
 249 #define   FF0   0x00000000
 250 #define   FF1   0x00008000
 251 #define PAGEOUT 0x00010000  /* SUNOS specific */
 252 #define WRAP    0x00020000  /* SUNOS specific */
 253 
 254 /* c_cflag bit meaning */
 255 #define CBAUD   0x0000000f
 256 #define  B0     0x00000000   /* hang up */
 257 #define  B50    0x00000001
 258 #define  B75    0x00000002
 259 #define  B110   0x00000003
 260 #define  B134   0x00000004
 261 #define  B150   0x00000005
 262 #define  B200   0x00000006
 263 #define  B300   0x00000007
 264 #define  B600   0x00000008
 265 #define  B1200  0x00000009
 266 #define  B1800  0x0000000a
 267 #define  B2400  0x0000000b
 268 #define  B4800  0x0000000c
 269 #define  B9600  0x0000000d
 270 #define  B19200 0x0000000e
 271 #define  B38400 0x0000000f
 272 #define EXTA    B19200
 273 #define EXTB    B38400
 274 #define  CSIZE  0x00000030
 275 #define   CS5   0x00000000
 276 #define   CS6   0x00000010
 277 #define   CS7   0x00000020
 278 #define   CS8   0x00000030
 279 #define CSTOPB  0x00000040
 280 #define CREAD   0x00000080
 281 #define PARENB  0x00000100
 282 #define PARODD  0x00000200
 283 #define HUPCL   0x00000400
 284 #define CLOCAL  0x00000800
 285 /* We'll never see these speeds with the Zilogs' but for completeness... */
 286 #define CBAUDEX 0x00010000
 287 #define  B57600  0x00010001
 288 #define  B115200 0x00010002
 289 #define  B230400 0x00010003
 290 #define CIBAUD    0x000f0000  /* input baud rate (not used) */
 291 #define CRTSCTS   0x80000000  /* flow control */
 292 
 293 /* c_lflag bits */
 294 #define ISIG    0x00000001
 295 #define ICANON  0x00000002
 296 #define XCASE   0x00000004
 297 #define ECHO    0x00000008
 298 #define ECHOE   0x00000010
 299 #define ECHOK   0x00000020
 300 #define ECHONL  0x00000040
 301 #define NOFLSH  0x00000080
 302 #define TOSTOP  0x00000100
 303 #define ECHOCTL 0x00000200
 304 #define ECHOPRT 0x00000400
 305 #define ECHOKE  0x00000800
 306 #define DEFECHO 0x00001000  /* SUNOS thing, what is it? */
 307 #define FLUSHO  0x00002000
 308 #define PENDIN  0x00004000
 309 #define IEXTEN  0x00008000
 310 
 311 /* modem lines */
 312 #define TIOCM_LE        0x001
 313 #define TIOCM_DTR       0x002
 314 #define TIOCM_RTS       0x004
 315 #define TIOCM_ST        0x008
 316 #define TIOCM_SR        0x010
 317 #define TIOCM_CTS       0x020
 318 #define TIOCM_CAR       0x040
 319 #define TIOCM_RNG       0x080
 320 #define TIOCM_DSR       0x100
 321 #define TIOCM_CD        TIOCM_CAR
 322 #define TIOCM_RI        TIOCM_RNG
 323 
 324 /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
 325 #define TIOCSER_TEMT    0x01    /* Transmitter physically empty */
 326 
 327 
 328 /* tcflow() and TCXONC use these */
 329 #define TCOOFF          0
 330 #define TCOON           1
 331 #define TCIOFF          2
 332 #define TCION           3
 333 
 334 /* tcflush() and TCFLSH use these */
 335 #define TCIFLUSH        0
 336 #define TCOFLUSH        1
 337 #define TCIOFLUSH       2
 338 
 339 /* tcsetattr uses these */
 340 #define TCSANOW         0
 341 #define TCSADRAIN       1
 342 #define TCSAFLUSH       2
 343 
 344 /* line disciplines */
 345 #define N_TTY           0
 346 #define N_SLIP          1
 347 #define N_MOUSE         2
 348 #define N_PPP           3
 349 
 350 #ifdef __KERNEL__
 351 
 352 /*
 353  * Translate a "termio" structure into a "termios". Ugh.
 354  */
 355 extern inline void trans_from_termio(struct termio * termio,
     /* [previous][next][first][last][top][bottom][index][help] */
 356         struct termios * termios)
 357 {
 358 #define SET_LOW_BITS(x,y)       ((x) = (0xffff0000 & (x)) | (y))
 359         SET_LOW_BITS(termios->c_iflag, termio->c_iflag);
 360         SET_LOW_BITS(termios->c_oflag, termio->c_oflag);
 361         SET_LOW_BITS(termios->c_cflag, termio->c_cflag);
 362         SET_LOW_BITS(termios->c_lflag, termio->c_lflag);
 363 #undef SET_LOW_BITS
 364         memcpy(termios->c_cc, termio->c_cc, NCC);
 365 }
 366 
 367 /*
 368  * Translate a "termios" structure into a "termio". Ugh.
 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         memcpy(termio->c_cc, termios->c_cc, NCC);
 379 }
 380 
 381 #endif  /* __KERNEL__ */
 382 
 383 #endif /* _SPARC_TERMIOS_H */

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