[BACK]Return to tty_conf.c CVS log [TXT][DIR] Up to [local] / sys / kern

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