Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / sys / ttycom.h @ 13

History | View | Annotate | Download (7.93 KB)

1 13 up20180614
/*        $NetBSD: ttycom.h,v 1.20 2012/10/19 16:49:21 apb Exp $        */
2
3
/*-
4
 * Copyright (c) 1982, 1986, 1990, 1993, 1994
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
 *        @(#)ttycom.h        8.1 (Berkeley) 3/28/94
37
 */
38
39
#ifndef        _SYS_TTYCOM_H_
40
#define        _SYS_TTYCOM_H_
41
42
#include <sys/syslimits.h>
43
#include <sys/ioccom.h>
44
45
/*
46
 * Tty ioctl's except for those supported only for backwards compatibility
47
 * with the old tty driver.
48
 */
49
50
/*
51
 * Window/terminal size structure.  This information is stored by the kernel
52
 * in order to provide a consistent interface, but is not used by the kernel.
53
 */
54
struct winsize {
55
        unsigned short        ws_row;                /* rows, in characters */
56
        unsigned short        ws_col;                /* columns, in characters */
57
        unsigned short        ws_xpixel;        /* horizontal size, pixels */
58
        unsigned short        ws_ypixel;        /* vertical size, pixels */
59
};
60
61
/* ptmget, for /dev/ptm pty getting ioctl TIOCPTMGET, and for TIOCPTSNAME */
62
struct ptmget {
63
        int        cfd;
64
        int        sfd;
65
        char        cn[PATH_MAX];
66
        char        sn[PATH_MAX];
67
};
68
69
#define _PATH_PTMDEV        "/dev/ptm"
70
71
#define                TIOCM_LE        0001                /* line enable */
72
#define                TIOCM_DTR        0002                /* data terminal ready */
73
#define                TIOCM_RTS        0004                /* request to send */
74
#define                TIOCM_ST        0010                /* secondary transmit */
75
#define                TIOCM_SR        0020                /* secondary receive */
76
#define                TIOCM_CTS        0040                /* clear to send */
77
#define                TIOCM_CAR        0100                /* carrier detect */
78
#define                TIOCM_CD        TIOCM_CAR
79
#define                TIOCM_RNG        0200                /* ring */
80
#define                TIOCM_RI        TIOCM_RNG
81
#define                TIOCM_DSR        0400                /* data set ready */
82
                                                /* 8-10 compat */
83
#define        TIOCEXCL         _IO('t', 13)                /* set exclusive use of tty */
84
#define        TIOCNXCL         _IO('t', 14)                /* reset exclusive use of tty */
85
                                                /* 15 unused */
86
#define        TIOCFLUSH        _IOW('t', 16, int)        /* flush buffers */
87
                                                /* 17-18 compat */
88
#define        TIOCGETA        _IOR('t', 19, struct termios) /* get termios struct */
89
#define        TIOCSETA        _IOW('t', 20, struct termios) /* set termios struct */
90
#define        TIOCSETAW        _IOW('t', 21, struct termios) /* drain output, set */
91
#define        TIOCSETAF        _IOW('t', 22, struct termios) /* drn out, fls in, set */
92
#define        TIOCGETD        _IOR('t', 26, int)        /* get line discipline (deprecated) */
93
#define        TIOCSETD        _IOW('t', 27, int)        /* set line discipline (deprecated) */
94
95
/*
96
 * This is the maximum length of a line discipline's name.
97
 */
98
#define        TTLINEDNAMELEN        32
99
typedef char linedn_t[TTLINEDNAMELEN];
100
#define TIOCGLINED        _IOR('t', 66, linedn_t)        /* get line discipline (new) */
101
#define TIOCSLINED        _IOW('t', 67, linedn_t)        /* set line discipline (new) */
102
                                                /* 127-124 compat */
103
#define        TIOCSBRK         _IO('t', 123)                /* set break bit */
104
#define        TIOCCBRK         _IO('t', 122)                /* clear break bit */
105
#define        TIOCSDTR         _IO('t', 121)                /* set data terminal ready */
106
#define        TIOCCDTR         _IO('t', 120)                /* clear data terminal ready */
107
#define        TIOCGPGRP        _IOR('t', 119, int)        /* get pgrp of tty */
108
#define        TIOCSPGRP        _IOW('t', 118, int)        /* set pgrp of tty */
109
                                                /* 117-116 compat */
110
#define        TIOCOUTQ        _IOR('t', 115, int)        /* output queue size */
111
#define        TIOCSTI                _IOW('t', 114, char)        /* simulate terminal input */
112
#define        TIOCNOTTY         _IO('t', 113)                /* void tty association */
113
#define        TIOCPKT                _IOW('t', 112, int)        /* pty: set/clear packet mode */
114
#define                TIOCPKT_DATA                0x00        /* data packet */
115
#define                TIOCPKT_FLUSHREAD        0x01        /* flush packet */
116
#define                TIOCPKT_FLUSHWRITE        0x02        /* flush packet */
117
#define                TIOCPKT_STOP                0x04        /* stop output */
118
#define                TIOCPKT_START                0x08        /* start output */
119
#define                TIOCPKT_NOSTOP                0x10        /* no more ^S, ^Q */
120
#define                TIOCPKT_DOSTOP                0x20        /* now do ^S ^Q */
121
#define                TIOCPKT_IOCTL                0x40        /* state change of pty driver */
122
#define        TIOCSTOP         _IO('t', 111)                /* stop output, like ^S */
123
#define        TIOCSTART         _IO('t', 110)                /* start output, like ^Q */
124
#define        TIOCMSET        _IOW('t', 109, int)        /* set all modem bits */
125
#define        TIOCMBIS        _IOW('t', 108, int)        /* bis modem bits */
126
#define        TIOCMBIC        _IOW('t', 107, int)        /* bic modem bits */
127
#define        TIOCMGET        _IOR('t', 106, int)        /* get all modem bits */
128
#define        TIOCREMOTE        _IOW('t', 105, int)        /* remote input editing */
129
#define        TIOCGWINSZ        _IOR('t', 104, struct winsize)        /* get window size */
130
#define        TIOCSWINSZ        _IOW('t', 103, struct winsize)        /* set window size */
131
#define        TIOCUCNTL        _IOW('t', 102, int)        /* pty: set/clr usr cntl mode */
132
#define        TIOCSTAT        _IOW('t', 101, int)        /* generate status message */
133
#define                UIOCCMD(n)        _IO('u', n)        /* usr cntl op "n" */
134
#define        TIOCGSID        _IOR('t', 99, int)        /* get session id */
135
#define        TIOCCONS        _IOW('t', 98, int)        /* become virtual console */
136
#define        TIOCSCTTY         _IO('t', 97)                /* become controlling tty */
137
#define        TIOCEXT                _IOW('t', 96, int)        /* pty: external processing */
138
#define        TIOCSIG                 _IO('t', 95)                /* pty: generate signal */
139
#define        TIOCDRAIN         _IO('t', 94)                /* wait till output drained */
140
#define        TIOCGFLAGS        _IOR('t', 93, int)        /* get device flags */
141
#define        TIOCSFLAGS        _IOW('t', 92, int)        /* set device flags */
142
#define                TIOCFLAG_SOFTCAR        0x01        /* ignore hardware carrier */
143
#define                TIOCFLAG_CLOCAL                0x02        /* set clocal on open */
144
#define                TIOCFLAG_CRTSCTS        0x04        /* set crtscts on open */
145
#define                TIOCFLAG_MDMBUF                0x08        /* set mdmbuf on open */
146
#define                TIOCFLAG_CDTRCTS        0x10        /* set cdtrcts on open */
147
#define        TIOCDCDTIMESTAMP _IOR('t', 88, struct timeval) /* get timestamp of last
148
                                                 * Cd rise, stamp next rise */
149
150
#define        TIOCRCVFRAME        _IOW('t', 69, struct mbuf *)/* data frame received */
151
#define        TIOCXMTFRAME        _IOW('t', 68, struct mbuf *)/* data frame transmit */
152
153
#define TIOCPTMGET          _IOR('t', 70, struct ptmget)        /* get ptys */
154
#define TIOCGRANTPT          _IO('t', 71)                         /* grantpt(3) */
155
#define TIOCPTSNAME          _IOR('t', 72, struct ptmget)        /* ptsname(3) */
156
157
#define TIOCSQSIZE         _IOW('t', 128, int)        /* set queue size */
158
#define TIOCGQSIZE         _IOR('t', 129, int)        /* get queue size */
159
160
#define        TTYDISC                0                /* termios tty line discipline */
161
#define        TABLDISC        3                /* tablet discipline */
162
#define        SLIPDISC        4                /* serial IP discipline */
163
#define        PPPDISC                5                /* ppp discipline */
164
#define        STRIPDISC        6                /* metricom wireless IP discipline */
165
#define        HDLCDISC        9                /* HDLC discipline */
166
167
#if defined(__minix)
168
169
/* Terminal ioctls. Use big T. */
170
#define TIOCSFON        _IOW_BIG(1, u8_t [8192])        /* new font */
171
172
/* Keyboard ioctls. */
173
#define KIOCBELL        _IOW('k', 1, struct kio_bell)
174
#define KIOCSLEDS       _IOW('k', 2, struct kio_leds)
175
#define KIOCSMAP        _IOW('k', 3, keymap_t)
176
177
#endif /* defined(__minix) */
178
179
#endif /* !_SYS_TTYCOM_H_ */