Annotation of sys/kern/tty_conf.c, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: tty_conf.c,v 1.11 2006/08/03 16:13:24 mbalmer Exp $ */
2: /* $NetBSD: tty_conf.c,v 1.18 1996/05/19 17:17:55 jonathan Exp $ */
3:
4: /*-
5: * Copyright (c) 1982, 1986, 1991, 1993
6: * The Regents of the University of California. All rights reserved.
7: * (c) UNIX System Laboratories, Inc.
8: * All or some portions of this file are derived from material licensed
9: * to the University of California by American Telephone and Telegraph
10: * Co. or Unix System Laboratories, Inc. and are reproduced herein with
11: * the permission of UNIX System Laboratories, Inc.
12: *
13: * Redistribution and use in source and binary forms, with or without
14: * modification, are permitted provided that the following conditions
15: * are met:
16: * 1. Redistributions of source code must retain the above copyright
17: * notice, this list of conditions and the following disclaimer.
18: * 2. Redistributions in binary form must reproduce the above copyright
19: * notice, this list of conditions and the following disclaimer in the
20: * documentation and/or other materials provided with the distribution.
21: * 3. Neither the name of the University nor the names of its contributors
22: * may be used to endorse or promote products derived from this software
23: * without specific prior written permission.
24: *
25: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
26: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
29: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35: * SUCH DAMAGE.
36: *
37: * @(#)tty_conf.c 8.4 (Berkeley) 1/21/94
38: */
39:
40: #include <sys/param.h>
41: #include <sys/systm.h>
42: #include <sys/ioctl.h>
43: #include <sys/proc.h>
44: #include <sys/tty.h>
45: #include <sys/conf.h>
46:
47: #define ttynodisc ((int (*)(dev_t, struct tty *))enodev)
48: #define ttyerrclose ((int (*)(struct tty *, int flags))enodev)
49: #define ttyerrio ((int (*)(struct tty *, struct uio *, int))enodev)
50: #define ttyerrinput ((int (*)(int c, struct tty *))enodev)
51: #define ttyerrstart ((int (*)(struct tty *))enodev)
52:
53: int nullioctl(struct tty *, u_long, caddr_t, int, struct proc *);
54:
55: #include "sl.h"
56: #if NSL > 0
57: int slopen(dev_t dev, struct tty *tp);
58: int slclose(struct tty *tp, int flags);
59: int sltioctl(struct tty *tp, u_long cmd, caddr_t data,
60: int flag, struct proc *p);
61: int slinput(int c, struct tty *tp);
62: int slstart(struct tty *tp);
63: #endif
64:
65: #include "ppp.h"
66: #if NPPP > 0
67: int pppopen(dev_t dev, struct tty *tp);
68: int pppclose(struct tty *tp, int flags);
69: int ppptioctl(struct tty *tp, u_long cmd, caddr_t data,
70: int flag, struct proc *p);
71: int pppinput(int c, struct tty *tp);
72: int pppstart(struct tty *tp);
73: int pppread(struct tty *tp, struct uio *uio, int flag);
74: int pppwrite(struct tty *tp, struct uio *uio, int flag);
75: #endif
76:
77: #include "strip.h"
78: #if NSTRIP > 0
79: int stripopen(dev_t dev, struct tty *tp);
80: int stripclose(struct tty *tp, int flags);
81: int striptioctl(struct tty *tp, u_long cmd, caddr_t data,
82: int flag, struct proc *p);
83: int stripinput(int c, struct tty *tp);
84: int stripstart(struct tty *tp);
85: #endif
86:
87: #include "nmea.h"
88: #if NNMEA > 0
89: int nmeaopen(dev_t, struct tty *);
90: int nmeaclose(struct tty *, int);
91: int nmeainput(int, struct tty *);
92: #endif
93:
94: struct linesw linesw[] =
95: {
96: { ttyopen, ttylclose, ttread, ttwrite, nullioctl,
97: ttyinput, ttstart, ttymodem }, /* 0- termios */
98:
99: { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl,
100: ttyerrinput, ttyerrstart, nullmodem }, /* 1- defunct */
101:
102: #if defined(COMPAT_43) || defined(COMPAT_FREEBSD) || defined(COMPAT_BSDOS)
103: { ttyopen, ttylclose, ttread, ttwrite, nullioctl,
104: ttyinput, ttstart, ttymodem }, /* 2- old NTTYDISC */
105: #else
106: { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl,
107: ttyerrinput, ttyerrstart, nullmodem }, /* 2- defunct */
108: #endif
109:
110: /* 3- TABLDISC (defunct) */
111: { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl,
112: ttyerrinput, ttyerrstart, nullmodem },
113:
114: #if NSL > 0
115: { slopen, slclose, ttyerrio, ttyerrio, sltioctl,
116: slinput, slstart, nullmodem }, /* 4- SLIPDISC */
117: #else
118: { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl,
119: ttyerrinput, ttyerrstart, nullmodem },
120: #endif
121:
122: #if NPPP > 0
123: { pppopen, pppclose, pppread, pppwrite, ppptioctl,
124: pppinput, pppstart, ttymodem }, /* 5- PPPDISC */
125: #else
126: { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl,
127: ttyerrinput, ttyerrstart, nullmodem },
128: #endif
129:
130: #if NSTRIP > 0
131: { stripopen, stripclose, ttyerrio, ttyerrio, striptioctl,
132: stripinput, stripstart, nullmodem }, /* 6- STRIPDISC */
133: #else
134: { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl,
135: ttyerrinput, ttyerrstart, nullmodem },
136: #endif
137:
138: #if NNMEA > 0
139: { nmeaopen, nmeaclose, ttread, ttwrite, nullioctl,
140: nmeainput, ttstart, ttymodem }, /* 7- NMEADISC */
141: #else
142: { ttynodisc, ttyerrclose, ttyerrio, ttyerrio, nullioctl,
143: ttyerrinput, ttyerrstart, nullmodem },
144: #endif
145: };
146:
147: int nlinesw = sizeof (linesw) / sizeof (linesw[0]);
148:
149: /*
150: * Do nothing specific version of line
151: * discipline specific ioctl command.
152: */
153: /*ARGSUSED*/
154: int
155: nullioctl(struct tty *tp, u_long cmd, char *data, int flags, struct proc *p)
156: {
157:
158: #ifdef lint
159: tp = tp; data = data; flags = flags; p = p;
160: #endif
161: return (-1);
162: }
CVSweb