Print this page
    
OS-2834 ship lx brand
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/uts/common/sys/termios.h
          +++ new/usr/src/uts/common/sys/termios.h
   1    1  /*
   2    2   * CDDL HEADER START
   3    3   *
   4    4   * The contents of this file are subject to the terms of the
   5    5   * Common Development and Distribution License (the "License").
   6    6   * You may not use this file except in compliance with the License.
   7    7   *
   8    8   * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9    9   * or http://www.opensolaris.org/os/licensing.
  10   10   * See the License for the specific language governing permissions
  11   11   * and limitations under the License.
  12   12   *
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
  22   22  /*        All Rights Reserved   */
  23   23  
  24   24  
  25   25  /*
  26   26   * Copyright 2014 Garrett D'Amore <garrett@damore.org>
  27   27   *
  28   28   * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
  29   29   */
  30   30  
  31   31  #ifndef _SYS_TERMIOS_H
  32   32  #define _SYS_TERMIOS_H
  33   33  
  34   34  #include <sys/feature_tests.h>
  35   35  
  36   36  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
  37   37  #include <sys/ttydev.h>
  38   38  #include <sys/time.h>
  39   39  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
  40   40  
  41   41  #include <sys/types.h>
  42   42  
  43   43  #ifdef  __cplusplus
  44   44  extern "C" {
  45   45  #endif
  46   46  
  47   47  /*
  48   48   * _POSIX_VDISABLE has been defined in <sys/termios.h> since the
  49   49   * introduction of the header. The POSIX standard, IEEE Std.
  50   50   * 1003.1-1988 also required  the existence of _POSIX_VDISABLE in
  51   51   * this header. Subsequent versions of the IEEE Standard as well
  52   52   * as the X/Open specifications required that _POSIX_VDISABLE be
  53   53   * defined in <unistd.h> while still allowing for it's existence
  54   54   * here. With the introduction of XPG6, _POSIX_VDISABLE can only
  55   55   * be defined in <unistd.h>.
  56   56   */
  57   57  #if !defined(_XPG6) || defined(__EXTENSIONS__)
  58   58  #ifndef _POSIX_VDISABLE
  59   59  #define _POSIX_VDISABLE 0 /* Disable special character functions */
  60   60  #endif
  61   61  #endif /* !defined(_XPG6) || defined(__EXTENSIONS__) */
  62   62  
  63   63  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
  64   64  #define CTRL(c) ((c)&037)
  65   65  #define IBSHIFT 16
  66   66  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
  67   67  
  68   68  /* required by termio.h and VCEOF/VCEOL */
  69   69  #define _NCC    8
  70   70  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
  71   71  #define NCC     _NCC
  72   72  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
  73   73  
  74   74  /* some defines required by POSIX */
  75   75  #define NCCS    19
  76   76  
  77   77  /*
  78   78   * types defined by POSIX. These are better off in types.h, but
  79   79   * the standard says that they have to be in termios.h.
  80   80   */
  81   81  typedef unsigned int tcflag_t;
  82   82  typedef unsigned char cc_t;
  83   83  typedef unsigned int speed_t;
  84   84  
  85   85  /*
  86   86   * Ioctl control packet
  87   87   */
  88   88  struct termios {
  89   89          tcflag_t        c_iflag;        /* input modes */
  90   90          tcflag_t        c_oflag;        /* output modes */
  91   91          tcflag_t        c_cflag;        /* control modes */
  92   92          tcflag_t        c_lflag;        /* line discipline modes */
  93   93          cc_t            c_cc[NCCS];     /* control chars */
  94   94  };
  95   95  
  96   96  /*
  97   97   * POSIX termios functions
  98   98   * These functions get mapped into ioctls.
  99   99   */
 100  100  
 101  101  #ifndef _KERNEL
 102  102  
 103  103  extern speed_t cfgetospeed(const struct termios *);
 104  104  extern int cfsetospeed(struct termios *, speed_t);
 105  105  extern speed_t cfgetispeed(const struct termios *);
 106  106  extern int cfsetispeed(struct termios *, speed_t);
 107  107  extern int tcgetattr(int, struct termios *);
 108  108  extern int tcsetattr(int, int, const struct termios *);
 109  109  extern int tcsendbreak(int, int);
 110  110  extern int tcdrain(int);
 111  111  extern int tcflush(int, int);
 112  112  extern int tcflow(int, int);
 113  113  
 114  114  #if !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2) || defined(__EXTENSIONS__)
 115  115  
 116  116  extern pid_t tcgetsid(int);
 117  117  
 118  118  #endif /* !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2) ... */
 119  119  
 120  120  #endif
 121  121  
 122  122  /* control characters */
 123  123  #define VINTR   0
 124  124  #define VQUIT   1
 125  125  #define VERASE  2
 126  126  #define VKILL   3
 127  127  #define VEOF    4
 128  128  #define VEOL    5
 129  129  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 130  130  #define VEOL2   6
 131  131  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 132  132  #define VMIN    4
 133  133  #define VTIME   5
 134  134  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 135  135  #define VSWTCH  7
 136  136  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 137  137  #define VSTART          8
 138  138  #define VSTOP           9
 139  139  #define VSUSP           10
 140  140  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 141  141  #define VDSUSP          11
 142  142  #define VREPRINT        12
 143  143  #define VDISCARD        13
 144  144  #define VWERASE         14
 145  145  #define VLNEXT          15
 146  146  #define VSTATUS         16
 147  147  /* 17 through 19 reserved for future use */
 148  148  
 149  149  /*
 150  150   * control characters form Xenix termio.h
 151  151   */
 152  152  #define VCEOF   NCC             /* RESERVED true EOF char (V7 compatability) */
 153  153  #define VCEOL   (NCC + 1)       /* RESERVED true EOL char */
 154  154  
 155  155  #define CNUL    0
 156  156  #define CDEL    0177
 157  157  
 158  158  /* S5 default control chars */
 159  159  /* CINTR, CERASE and CKILL modified to SunOS traditional values */
 160  160  #define CESC    '\\'
 161  161  #define CINTR   CTRL('c')
 162  162  #define CQUIT   034     /* FS, cntl | */
 163  163  #define CERASE  0177    /* DEL */
 164  164  #define CKILL   CTRL('u')
 165  165  #define CEOT    04
 166  166  #define CEOL    0
 167  167  #define CEOL2   0
 168  168  #define CEOF    04      /* cntl d */
 169  169  #define CSTART  021     /* cntl q */
 170  170  #define CSTOP   023     /* cntl s */
 171  171  #define CSWTCH  032     /* cntl z */
 172  172  #define CNSWTCH 0
 173  173  #define CSUSP   CTRL('z')
 174  174  #define CDSUSP  CTRL('y')
 175  175  #define CRPRNT  CTRL('r')
 176  176  #define CFLUSH  CTRL('o')
 177  177  #define CWERASE CTRL('w')
 178  178  #define CLNEXT  CTRL('v')
 179  179  #define CSTATUS CTRL('t')
 180  180  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 181  181  
 182  182  
 183  183  /* input modes */
 184  184  #define IGNBRK  0000001
 185  185  #define BRKINT  0000002
 186  186  #define IGNPAR  0000004
 187  187  #define PARMRK  0000010
 188  188  #define INPCK   0000020
 189  189  #define ISTRIP  0000040
 190  190  #define INLCR   0000100
 191  191  #define IGNCR   0000200
 192  192  #define ICRNL   0000400
 193  193  #if !defined(_POSIX_C_SOURCE) || \
 194  194          (defined(_XOPEN_SOURCE) && !defined(_XPG6)) || \
 195  195          defined(__EXTENSIONS__)
 196  196  #define IUCLC   0001000
 197  197  #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
 198  198  #define IXON    0002000
 199  199  #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
 200  200          defined(__EXTENSIONS__)
 201  201  #define IXANY   0004000
 202  202  #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
 203  203  #define IXOFF   0010000
 204  204  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 205  205  #define IMAXBEL 0020000
 206  206  #define DOSMODE 0100000  /* for 386 compatibility */
 207  207  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 208  208  
 209  209  /* output modes */
 210  210  #define OPOST   0000001
 211  211  #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
 212  212          defined(__EXTENSIONS__)
 213  213  #if !defined(_XPG6) || defined(__EXTENSIONS__)
 214  214  #define OLCUC   0000002
 215  215  #endif
 216  216  #define ONLCR   0000004
 217  217  #define OCRNL   0000010
 218  218  #define ONOCR   0000020
 219  219  #define ONLRET  0000040
 220  220  #define OFILL   0000100
 221  221  #define OFDEL   0000200
 222  222  #define NLDLY   0000400
 223  223  #define NL0     0
 224  224  #define NL1     0000400
 225  225  #define CRDLY   0003000
 226  226  #define CR0     0
 227  227  #define CR1     0001000
 228  228  #define CR2     0002000
 229  229  #define CR3     0003000
 230  230  #define TABDLY  0014000
 231  231  #define TAB0    0
 232  232  #define TAB1    0004000
 233  233  #define TAB2    0010000
 234  234  #define TAB3    0014000
 235  235  #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
 236  236  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 237  237  #define XTABS   0014000
 238  238  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 239  239  #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
 240  240          defined(__EXTENSIONS__)
 241  241  #define BSDLY   0020000
 242  242  #define BS0     0
 243  243  #define BS1     0020000
 244  244  #define VTDLY   0040000
 245  245  #define VT0     0
 246  246  #define VT1     0040000
 247  247  #define FFDLY   0100000
 248  248  #define FF0     0
 249  249  #define FF1     0100000
 250  250  #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
 251  251  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 252  252  #define PAGEOUT 0200000
 253  253  #define WRAP    0400000
 254  254  
 255  255  /* control modes */
 256  256  #define CBAUD   0000017
 257  257  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 258  258  #define CSIZE   0000060
 259  259  #define CS5     0
 260  260  #define CS6     0000020
 261  261  #define CS7     0000040
 262  262  #define CS8     0000060
 263  263  #define CSTOPB  0000100
 264  264  #define CREAD   0000200
 265  265  #define PARENB  0000400
 266  266  #define PARODD  0001000
 267  267  #define HUPCL   0002000
 268  268  #define CLOCAL  0004000
 269  269  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 270  270  #define RCV1EN  0010000
 271  271  #define XMT1EN  0020000
 272  272  #define LOBLK   0040000
 273  273  #define XCLUDE  0100000         /* *V7* exclusive use coming fron XENIX */
 274  274  #define CRTSXOFF 010000000000
 275  275  #define CRTSCTS 020000000000
 276  276  #define CIBAUD  03600000
 277  277  #define PAREXT  04000000
 278  278  #define CBAUDEXT 010000000
 279  279  #define CIBAUDEXT 020000000
 280  280  
 281  281  /*
 282  282   * 4.4BSD hardware flow control flags
 283  283   */
 284  284  #define CRTS_IFLOW 010000000000
 285  285  #define CCTS_OFLOW 020000000000
 286  286  
 287  287  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 288  288  
 289  289  /* line discipline 0 modes */
 290  290  #define ISIG    0000001
 291  291  #define ICANON  0000002
 292  292  #if !defined(_POSIX_C_SOURCE) || \
 293  293          (defined(_XOPEN_SOURCE) && !defined(_XPG6)) || \
 294  294          defined(__EXTENSIONS__)
 295  295  #define XCASE   0000004
 296  296  #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
 297  297  #define ECHO    0000010
 298  298  #define ECHOE   0000020
 299  299  #define ECHOK   0000040
 300  300  #define ECHONL  0000100
 301  301  #define NOFLSH  0000200
 302  302  #define TOSTOP  0000400
 303  303  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 304  304  #define ECHOCTL 0001000
 305  305  #define ECHOPRT 0002000
 306  306  #define ECHOKE  0004000
 307  307  #define DEFECHO 0010000
 308  308  #define FLUSHO  0020000
 309  309  #define PENDIN  0040000
 310  310  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 311  311  
 312  312  #define IEXTEN  0100000  /* POSIX flag - enable POSIX extensions */
 313  313  #define _TIOC   ('T'<<8)
 314  314  
 315  315  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 316  316  
 317  317  #define TIOC    _TIOC
 318  318  
 319  319  #define TCGETA  (_TIOC|1)
 320  320  #define TCSETA  (_TIOC|2)
 321  321  #define TCSETAW (_TIOC|3)
 322  322  #define TCSETAF (_TIOC|4)
 323  323  #define TCSBRK  (_TIOC|5)
 324  324  #define TCXONC  (_TIOC|6)
 325  325  #define TCFLSH  (_TIOC|7)
 326  326  
 327  327  /* Slots reserved for 386/XENIX compatibility - keyboard control */
 328  328  
 329  329  #define TIOCKBON        (_TIOC|8)
 330  330  #define TIOCKBOF        (_TIOC|9)
 331  331  #define KBENABLED       (_TIOC|10)
 332  332  
 333  333  #ifndef IOCTYPE
 334  334  #define IOCTYPE 0xff00
 335  335  #endif
 336  336  
 337  337  #define TCDSET  (_TIOC|32)
 338  338  #define RTS_TOG (_TIOC|33)      /* 386 - "RTS" toggle define 8A1 protocol */
 339  339  
 340  340  #define TIOCGWINSZ (_TIOC|104)
 341  341  #define TIOCSWINSZ (_TIOC|103)
 342  342  
 343  343  /*
 344  344   * Softcarrier ioctls
 345  345   */
 346  346  #define TIOCGSOFTCAR (_TIOC|105)
 347  347  #define TIOCSSOFTCAR (_TIOC|106)
 348  348  
 349  349  
 350  350  /* termios ioctls */
 351  351  
 352  352  #define TCGETS          (_TIOC|13)
 353  353  #define TCSETS          (_TIOC|14)
  
    | 
      ↓ open down ↓ | 
    353 lines elided | 
    
      ↑ open up ↑ | 
  
 354  354  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 355  355  #define TCSANOW         (_TIOC|14) /* same as TCSETS */
 356  356  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 357  357  #define TCSETSW         (_TIOC|15)
 358  358  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 359  359  #define TCSADRAIN       (_TIOC|15) /* same as TCSETSW */
 360  360  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 361  361  #define TCSETSF         (_TIOC|16)
 362  362  
 363  363  /*
      364 + * linux terminal ioctls we need to be aware of
      365 + */
      366 +#define TIOCSETLD       (_TIOC|123)     /* set line discipline parms */
      367 +#define TIOCGETLD       (_TIOC|124)     /* get line discipline parms */
      368 +
      369 +/*
      370 + * The VMIN and VTIME and solaris overlap with VEOF and VEOL - This is
      371 + * perfectly legal except, linux expects them to be separate. So we keep
      372 + * them separately.
      373 + */
      374 +struct lx_cc {
      375 +        unsigned char veof;     /* veof value */
      376 +        unsigned char veol;     /* veol value */
      377 +        unsigned char vmin;     /* vmin value */
      378 +        unsigned char vtime;    /* vtime value */
      379 +};
      380 +
      381 +/*
 364  382   * NTP PPS ioctls
 365  383   */
 366  384  #define TIOCGPPS        (_TIOC|125)
 367  385  #define TIOCSPPS        (_TIOC|126)
 368  386  #define TIOCGPPSEV      (_TIOC|127)
 369  387  
 370  388  /* Argument filled in by TIOCGPPSEV */
 371  389  struct ppsclockev {
 372  390          struct timeval tv;
 373  391          uint_t serial;
 374  392  };
 375  393  
 376  394  #if defined(_SYSCALL32)
 377  395  struct ppsclockev32 {
 378  396          struct timeval32 tv;
 379  397          uint32_t serial;
 380  398  };
 381  399  #endif /* _SYSCALL32 */
 382  400  
 383  401  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 384  402  
 385  403  #define TCSAFLUSH       (_TIOC|16) /* same as TCSETSF */
 386  404  
 387  405  /* termios option flags */
 388  406  
 389  407  #define TCIFLUSH        0  /* flush data received but not read */
 390  408  #define TCOFLUSH        1  /* flush data written but not transmitted */
 391  409  #define TCIOFLUSH       2  /* flush both data both input and output queues */
 392  410  
 393  411  #define TCOOFF          0  /* suspend output */
 394  412  #define TCOON           1  /* restart suspended output */
 395  413  #define TCIOFF          2  /* suspend input */
 396  414  #define TCION           3  /* restart suspended input */
 397  415  
 398  416  /* TIOC ioctls for BSD, ptys, job control and modem control */
 399  417  
 400  418  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 401  419  #define tIOC    ('t'<<8)
 402  420  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 403  421  
 404  422  /* Slots for 386/XENIX compatibility */
 405  423  /* BSD includes these ioctls in ttold.h */
 406  424  
 407  425  #ifndef _SYS_TTOLD_H
 408  426  
 409  427  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 410  428  #define TIOCGETD        (tIOC|0)
 411  429  #define TIOCSETD        (tIOC|1)
 412  430  #define TIOCHPCL        (tIOC|2)
 413  431  #define TIOCGETP        (tIOC|8)
 414  432  #define TIOCSETP        (tIOC|9)
 415  433  #define TIOCSETN        (tIOC|10)
 416  434  #define TIOCEXCL        (tIOC|13)
 417  435  #define TIOCNXCL        (tIOC|14)
 418  436  #define TIOCFLUSH       (tIOC|16)
 419  437  #define TIOCSETC        (tIOC|17)
 420  438  #define TIOCGETC        (tIOC|18)
 421  439  /*
 422  440   * BSD ioctls that are not the same as XENIX are included here.
 423  441   * There are also some relevant ioctls from SUN/BSD sys/ttycom.h
 424  442   * BSD pty ioctls like TIOCPKT are not supported in SVR4.
 425  443   */
 426  444  
 427  445  #define TIOCLBIS        (tIOC|127)      /* bis local mode bits */
 428  446  #define TIOCLBIC        (tIOC|126)      /* bic local mode bits */
 429  447  #define TIOCLSET        (tIOC|125)      /* set entire local mode word */
 430  448  #define TIOCLGET        (tIOC|124)      /* get local modes */
 431  449  #define TIOCSBRK        (tIOC|123)      /* set break bit */
 432  450  #define TIOCCBRK        (tIOC|122)      /* clear break bit */
 433  451  #define TIOCSDTR        (tIOC|121)      /* set data terminal ready */
 434  452  #define TIOCCDTR        (tIOC|120)      /* clear data terminal ready */
 435  453  #define TIOCSLTC        (tIOC|117)      /* set local special chars */
 436  454  #define TIOCGLTC        (tIOC|116)      /* get local special chars */
 437  455  #define TIOCOUTQ        (tIOC|115)      /* driver output queue size */
 438  456  #define TIOCNOTTY       (tIOC|113)      /* void tty association */
 439  457  #define TIOCSCTTY       (tIOC|132)      /* get a ctty */
 440  458  #define TIOCSTOP        (tIOC|111)      /* stop output, like ^S */
 441  459  #define TIOCSTART       (tIOC|110)      /* start output, like ^Q */
 442  460  #define TIOCSILOOP      (tIOC|109)      /* private to Sun; do not use */
 443  461  #define TIOCCILOOP      (tIOC|108)      /* private to Sun; do not use */
 444  462  
 445  463  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 446  464  
 447  465  #endif /* end _SYS_TTOLD_H */
 448  466  
 449  467  /* POSIX job control ioctls */
 450  468  
 451  469  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 452  470  #define TIOCGPGRP       (tIOC|20)       /* get pgrp of tty */
 453  471  #define TIOCSPGRP       (tIOC|21)       /* set pgrp of tty */
 454  472  #define TIOCGSID        (tIOC|22)       /* get session id on ctty */
 455  473  
 456  474  /* Miscellaneous */
 457  475  #define TIOCSTI         (tIOC|23)       /* simulate terminal input */
 458  476  
 459  477  /* Modem control */
 460  478  #define TIOCMSET        (tIOC|26)       /* set all modem bits */
 461  479  #define TIOCMBIS        (tIOC|27)       /* bis modem bits */
 462  480  #define TIOCMBIC        (tIOC|28)       /* bic modem bits */
 463  481  #define TIOCMGET        (tIOC|29)       /* get all modem bits */
 464  482  #define         TIOCM_LE        0001            /* line enable */
 465  483  #define         TIOCM_DTR       0002            /* data terminal ready */
 466  484  #define         TIOCM_RTS       0004            /* request to send */
 467  485  #define         TIOCM_ST        0010            /* secondary transmit */
 468  486  #define         TIOCM_SR        0020            /* secondary receive */
 469  487  #define         TIOCM_CTS       0040            /* clear to send */
 470  488  #define         TIOCM_CAR       0100            /* carrier detect */
 471  489  #define         TIOCM_CD        TIOCM_CAR
 472  490  #define         TIOCM_RNG       0200            /* ring */
 473  491  #define         TIOCM_RI        TIOCM_RNG
 474  492  #define         TIOCM_DSR       0400            /* data set ready */
 475  493  
 476  494  /* pseudo-tty */
 477  495  
 478  496  #define TIOCREMOTE      (tIOC|30)       /* remote input editing */
 479  497  #define TIOCSIGNAL      (tIOC|31)       /* pty: send signal to slave */
 480  498  
 481  499  
 482  500  /* Some more 386 xenix stuff */
 483  501  
 484  502  #define LDIOC   ('D'<<8)
 485  503  
 486  504  #define LDOPEN  (LDIOC|0)
 487  505  #define LDCLOSE (LDIOC|1)
 488  506  #define LDCHG   (LDIOC|2)
 489  507  #define LDGETT  (LDIOC|8)
 490  508  #define LDSETT  (LDIOC|9)
 491  509  
 492  510  /* Slots for 386 compatibility */
 493  511  
 494  512  #define LDSMAP  (LDIOC|110)
 495  513  #define LDGMAP  (LDIOC|111)
 496  514  #define LDNMAP  (LDIOC|112)
 497  515  #define LDEMAP  (LDIOC|113)
 498  516  #define LDDMAP  (LDIOC|114)
 499  517  
 500  518  /*
 501  519   * These are retained for 386/XENIX compatibility.
 502  520   */
 503  521  
 504  522  #define DIOC            ('d'<<8)
 505  523  #define DIOCGETP        (DIOC|8)                /* V7 */
 506  524  #define DIOCSETP        (DIOC|9)                /* V7 */
 507  525  
 508  526  /*
 509  527   * Returns a non-zero value if there
 510  528   * are characters in the input queue.
 511  529   *
 512  530   * XXX - somebody is confused here.  V7 had no such "ioctl", although XENIX may
 513  531   * have added it; 4BSD had FIONREAD, which returned the number of characters
 514  532   * waiting, and was supposed to work on all descriptors (i.e., every driver
 515  533   * should make a stab at implementing it).
 516  534   */
 517  535  #define FIORDCHK        (('f'<<8)|3)            /* V7 */
 518  536  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 519  537  
 520  538  /*
 521  539   * Speeds
 522  540   */
 523  541  #define B0      0
 524  542  #define B50     1
 525  543  #define B75     2
 526  544  #define B110    3
 527  545  #define B134    4
 528  546  #define B150    5
 529  547  #define B200    6
 530  548  #define B300    7
 531  549  #define B600    8
 532  550  #define B1200   9
 533  551  #define B1800   10
 534  552  #define B2400   11
 535  553  #define B4800   12
 536  554  #define B9600   13
 537  555  #define B19200  14
 538  556  #define B38400  15
 539  557  #define B57600  16
 540  558  #define B76800  17
 541  559  #define B115200 18
 542  560  #define B153600 19
 543  561  #define B230400 20
 544  562  #define B307200 21
 545  563  #define B460800 22
 546  564  #define B921600 23
 547  565  
 548  566  #ifndef _SYS_TTOLD_H
 549  567  
 550  568  #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
 551  569  /* Windowing structure to support JWINSIZE/TIOCSWINSZ/TIOCGWINSZ */
 552  570  struct winsize {
 553  571          unsigned short ws_row;  /* rows, in characters */
 554  572          unsigned short ws_col;  /* columns, in character */
 555  573          unsigned short ws_xpixel;       /* horizontal size, pixels */
 556  574          unsigned short ws_ypixel;       /* vertical size, pixels */
 557  575  };
 558  576  #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
 559  577  
 560  578  #endif /* end _SYS_TTOLD_H */
 561  579  
 562  580  #ifdef  __cplusplus
 563  581  }
 564  582  #endif
 565  583  
 566  584  #endif  /* _SYS_TERMIOS_H */
  
    | 
      ↓ open down ↓ | 
    193 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX