1 /*        $NetBSD: ioctl_compat.h,v 1.17 2015/09/06 06:01:02 dholland Exp $     */
2 
3 /*
4  * Copyright (c) 1990, 1993
5  *        The Regents of the University of California.  All rights reserved.
6  * (c) UNIX System Laboratories, Inc.
7  * All or some portions of this file are derived from material licensed
8  * to the University of California by American Telephone and Telegraph
9  * Co. or Unix System Laboratories, Inc. and are reproduced herein with
10  * the permission of UNIX System Laboratories, Inc.
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  * 1. Redistributions of source code must retain the above copyright
16  *    notice, this list of conditions and the following disclaimer.
17  * 2. Redistributions in binary form must reproduce the above copyright
18  *    notice, this list of conditions and the following disclaimer in the
19  *    documentation and/or other materials provided with the distribution.
20  * 3. Neither the name of the University nor the names of its contributors
21  *    may be used to endorse or promote products derived from this software
22  *    without specific prior written permission.
23  *
24  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34  * SUCH DAMAGE.
35  *
36  *        @(#)ioctl_compat.h  8.4 (Berkeley) 1/21/94
37  */
38 
39 #ifndef _SYS_IOCTL_COMPAT_H_
40 #define   _SYS_IOCTL_COMPAT_H_
41 
42 #include <sys/ioccom.h>
43 #include <sys/ttychars.h>
44 #include <sys/ttydev.h>
45 
46 struct tchars {
47           char      t_intrc;  /* interrupt */
48           char      t_quitc;  /* quit */
49           char      t_startc; /* start output */
50           char      t_stopc;  /* stop output */
51           char      t_eofc;             /* end-of-file */
52           char      t_brkc;             /* input delimiter (like nl) */
53 };
54 
55 struct ltchars {
56           char      t_suspc;  /* stop process signal */
57           char      t_dsuspc; /* delayed stop process signal */
58           char      t_rprntc; /* reprint line */
59           char      t_flushc; /* flush output (toggles) */
60           char      t_werasc; /* word erase */
61           char      t_lnextc; /* literal next character */
62 };
63 
64 /*
65  * Structure for TIOCGETP and TIOCSETP ioctls.
66  */
67 #ifndef _SGTTYB_
68 #define   _SGTTYB_
69 struct sgttyb {
70           char      sg_ispeed;                    /* input speed */
71           char      sg_ospeed;                    /* output speed */
72           char      sg_erase;           /* erase character */
73           char      sg_kill;            /* kill character */
74           short     sg_flags;           /* mode flags */
75 };
76 #endif
77 
78 #ifdef USE_OLD_TTY
79 # undef  TIOCGETD
80 # define TIOCGETD   _IOR('t', 0, int)   /* get line discipline */
81 # undef  TIOCSETD
82 # define TIOCSETD   _IOW('t', 1, int)   /* set line discipline */
83 #else
84 # define OTIOCGETD  _IOR('t', 0, int)   /* get line discipline */
85 # define OTIOCSETD  _IOW('t', 1, int)   /* set line discipline */
86 #endif
87 #define   TIOCHPCL  _IO('t', 2)                   /* hang up on last close */
88 #define   TIOCGETP  _IOR('t', 8,struct sgttyb)/* get parameters -- gtty */
89 #define   TIOCSETP  _IOW('t', 9,struct sgttyb)/* set parameters -- stty */
90 #define   TIOCSETN  _IOW('t',10,struct sgttyb)/* as above, but no flushtty*/
91 #define   TIOCSETC  _IOW('t',17,struct tchars)/* set special characters */
92 #define   TIOCGETC  _IOR('t',18,struct tchars)/* get special characters */
93 /*
94  * The entries marked as termios below, are common and should have the
95  * same values.
96  */
97 #define             TANDEM              0x00000001          /* send stopc on out q full */
98 #define             CBREAK              0x00000002          /* half-cooked mode */
99 #define             LCASE               0x00000004          /* simulate lower case */
100 /* termios          ECHO                0x00000008             enable echoing */
101 #define             CRMOD               0x00000010          /* map \r to \r\n on output */
102 #define             RAW                 0x00000020          /* no i/o processing */
103 #define             ODDP                0x00000040          /* get/send odd parity */
104 #define             EVENP               0x00000080          /* get/send even parity */
105 #define             ANYP                0x000000c0          /* get any parity/send none */
106 #define             NLDELAY             0x00000300          /* \n delay */
107 #define                       NL0       0x00000000
108 #define                       NL1       0x00000100          /* tty 37 */
109 #define                       NL2       0x00000200          /* vt05 */
110 #define                       NL3       0x00000300
111 #define             TBDELAY             0x00000c00          /* horizontal tab delay */
112 #define                       TAB0      0x00000000
113 #define                       TAB1      0x00000400          /* tty 37 */
114 #define                       TAB2      0x00000800
115 #define             XTABS               0x00000c00          /* expand tabs on output */
116 #define             CRDELAY             0x00003000          /* \r delay */
117 #define                       CR0       0x00000000
118 #define                       CR1       0x00001000          /* tn 300 */
119 #define                       CR2       0x00002000          /* tty 37 */
120 #define                       CR3       0x00003000          /* concept 100 */
121 #define             VTDELAY             0x00004000          /* vertical tab delay */
122 #define                       FF0       0x00000000
123 #define                       FF1       0x00004000          /* tty 37 */
124 #define             BSDELAY             0x00008000          /* \b delay */
125 #define                       BS0       0x00000000
126 #define                       BS1       0x00008000
127 #define             ALLDELAY  (NLDELAY|TBDELAY|CRDELAY|VTDELAY|BSDELAY)
128 #define             CRTBS               0x00010000          /* do backspacing for crt */
129 #define             PRTERA              0x00020000          /* \ ... / erase */
130 #define             CRTERA              0x00040000          /* " \b " to wipe out char */
131 #define             TILDE               0x00080000          /* hazeltine tilde kludge */
132 /* termios          MDMBUF              0x00100000             DTR/DCD hardware flow control */
133 #define             LITOUT              0x00200000          /* literal output */
134 /* termios          TOSTOP              0x00400000             stop background jobs on output */
135 /* termios          FLUSHO              0x00800000             output being flushed (state) */
136 #define             NOHANG              0x01000000          /* (no-op) was no SIGHUP on carrier drop */
137 #define             L001000             0x02000000
138 #define             CRTKIL              0x04000000          /* kill line with " \b " */
139 #define             PASS8               0x08000000
140 #define             CTLECH              0x10000000          /* echo control chars as ^X */
141 /* termios          PENDIN              0x20000000             re-echo input buffer at next read */
142 #define             DECCTQ              0x40000000          /* only ^Q starts after ^S */
143 /* termios          NOFLSH              0x80000000             don't flush output on signal */
144 #define   TIOCLBIS  _IOW('t', 127, int) /* bis local mode bits */
145 #define   TIOCLBIC  _IOW('t', 126, int) /* bic local mode bits */
146 #define   TIOCLSET  _IOW('t', 125, int) /* set entire local mode word */
147 #define   TIOCLGET  _IOR('t', 124, int) /* get local modes */
148 #define             LCRTBS              (CRTBS>>16)
149 #define             LPRTERA             (PRTERA>>16)
150 #define             LCRTERA             (CRTERA>>16)
151 #define             LTILDE              (TILDE>>16)
152 #define             LMDMBUF             (MDMBUF>>16)
153 #define             LLITOUT             (LITOUT>>16)
154 #define             LTOSTOP             (TOSTOP>>16)
155 #define             LFLUSHO             (FLUSHO>>16)
156 #define             LNOHANG             (NOHANG>>16)
157 #define             LCRTKIL             (CRTKIL>>16)
158 #define             LPASS8              (PASS8>>16)
159 #define             LCTLECH             (CTLECH>>16)
160 #define             LPENDIN             (PENDIN>>16)
161 #define             LDECCTQ             (DECCTQ>>16)
162 #define             LNOFLSH             (NOFLSH>>16)
163 #define   TIOCSLTC  _IOW('t',117,struct ltchars)/* set local special chars*/
164 #define   TIOCGLTC  _IOR('t',116,struct ltchars)/* get local special chars*/
165 #define OTIOCCONS   _IO('t', 98)        /* for hp300 -- sans int arg */
166 #define   OTTYDISC  0
167 #define   NETLDISC  1
168 #define   NTTYDISC  2
169 
170 #endif /* !_SYS_IOCTL_COMPAT_H_ */
171