The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/ic/comvar.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $OpenBSD: comvar.h,v 1.59 2022/01/11 11:51:14 uaa Exp $ */
    2 /*      $NetBSD: comvar.h,v 1.5 1996/05/05 19:50:47 christos Exp $      */
    3 
    4 /*
    5  * Copyright (c) 1997 - 1998, Jason Downs.  All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
   17  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   19  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
   20  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   22  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
   23  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   26  * SUCH DAMAGE.
   27  */
   28 /*
   29  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
   30  *
   31  * Redistribution and use in source and binary forms, with or without
   32  * modification, are permitted provided that the following conditions
   33  * are met:
   34  * 1. Redistributions of source code must retain the above copyright
   35  *    notice, this list of conditions and the following disclaimer.
   36  * 2. Redistributions in binary form must reproduce the above copyright
   37  *    notice, this list of conditions and the following disclaimer in the
   38  *    documentation and/or other materials provided with the distribution.
   39  * 3. All advertising materials mentioning features or use of this software
   40  *    must display the following acknowledgement:
   41  *      This product includes software developed by Christopher G. Demetriou
   42  *      for the NetBSD Project.
   43  * 4. The name of the author may not be used to endorse or promote products
   44  *    derived from this software without specific prior written permission
   45  *
   46  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
   47  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   48  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   49  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
   50  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   51  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   52  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   53  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   54  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   55  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   56  */
   57 
   58 #include <sys/timeout.h>
   59 
   60 struct commulti_attach_args {
   61         int             ca_slave;               /* slave number */
   62 
   63         bus_space_tag_t ca_iot;
   64         bus_space_handle_t ca_ioh;
   65         int             ca_iobase;
   66         int             ca_noien;
   67 };
   68 
   69 #define COM_IBUFSIZE    (32 * 512)
   70 #define COM_IHIGHWATER  ((3 * COM_IBUFSIZE) / 4)
   71 
   72 struct com_softc {
   73         struct device sc_dev;
   74         void *sc_ih;
   75         bus_space_tag_t sc_iot;
   76         struct tty *sc_tty;
   77         struct timeout sc_dtr_tmo;
   78         struct timeout sc_diag_tmo;
   79         void *sc_si;
   80 
   81         int sc_overflows;
   82         int sc_floods;
   83         int sc_errors;
   84 
   85         int sc_halt;
   86 
   87         bus_addr_t sc_iobase;
   88         int sc_frequency;
   89 
   90         bus_space_handle_t sc_ioh;
   91         u_char sc_reg_width;
   92         u_char sc_reg_shift;
   93 
   94         u_char sc_uarttype;
   95 #define COM_UART_UNKNOWN        0x00            /* unknown */
   96 #define COM_UART_8250           0x01            /* no fifo */
   97 #define COM_UART_16450          0x02            /* no fifo */
   98 #define COM_UART_16550          0x03            /* no working fifo */
   99 #define COM_UART_16550A         0x04            /* 16 byte fifo */
  100 #define COM_UART_ST16650        0x05            /* no working fifo */
  101 #define COM_UART_ST16650V2      0x06            /* 32 byte fifo */
  102 #define COM_UART_TI16750        0x07            /* 64 byte fifo */
  103 #define COM_UART_ST16C654       0x08            /* 64 bytes fifo */
  104 #define COM_UART_XR16850        0x10            /* 128 byte fifo */
  105 #define COM_UART_OX16C950       0x11            /* 128 byte fifo */
  106 #define COM_UART_XR17V35X       0x12            /* 256 byte fifo */
  107 #define COM_UART_DW_APB         0x13            /* configurable */
  108 
  109         u_char sc_hwflags;
  110 #define COM_HW_NOIEN    0x01
  111 #define COM_HW_FIFO     0x02
  112 #define COM_HW_SIR      0x20
  113 #define COM_HW_CONSOLE  0x40
  114         u_char sc_swflags;
  115 #define COM_SW_SOFTCAR  0x01
  116 #define COM_SW_CLOCAL   0x02
  117 #define COM_SW_CRTSCTS  0x04
  118 #define COM_SW_MDMBUF   0x08
  119 #define COM_SW_PPS      0x10
  120 #define COM_SW_DEAD     0x20
  121         int     sc_fifolen;
  122         u_char sc_msr, sc_mcr, sc_lcr, sc_ier;
  123         u_char sc_dtr;
  124 
  125         u_char  sc_cua;
  126 
  127         u_char  sc_initialize;          /* force initialization */
  128 
  129         u_char *sc_ibuf, *sc_ibufp, *sc_ibufhigh, *sc_ibufend;
  130         u_char sc_ibufs[2][COM_IBUFSIZE];
  131 
  132         /* power management hooks */
  133         int (*enable)(struct com_softc *);
  134         void (*disable)(struct com_softc *);
  135         int enabled;
  136 };
  137 
  138 uint8_t com_read_reg(struct com_softc *, bus_size_t);
  139 void    com_write_reg(struct com_softc *, bus_size_t, uint8_t);
  140 
  141 int     comprobe1(bus_space_tag_t, bus_space_handle_t);
  142 int     comstop(struct tty *, int);
  143 int     comintr(void *);
  144 int     com_detach(struct device *, int);
  145 int     com_activate(struct device *, int);
  146 void    com_resume(struct com_softc *);
  147 
  148 void    comdiag(void *);
  149 int     comspeed(long, long);
  150 u_char  com_cflag2lcr(tcflag_t); /* XXX undefined */
  151 int     comparam(struct tty *, struct termios *);
  152 void    comstart(struct tty *);
  153 void    comsoft(void *);
  154 
  155 uint8_t comcn_read_reg(bus_size_t);
  156 void    comcn_write_reg(bus_size_t, uint8_t);
  157 
  158 struct consdev;
  159 int     comcnattach(bus_space_tag_t, bus_addr_t, int, int, tcflag_t);
  160 void    comcnprobe(struct consdev *);
  161 void    comcninit(struct consdev *);
  162 int     comcngetc(dev_t);
  163 void    comcnputc(dev_t, int);
  164 void    comcnpollc(dev_t, int);
  165 void    com_raisedtr(void *);
  166 
  167 void com_attach_subr(struct com_softc *);
  168 
  169 extern int comdefaultrate;
  170 extern int comconsrate;
  171 extern int comconsfreq;
  172 extern bus_addr_t comconsaddr;
  173 extern bus_addr_t comsiraddr;
  174 extern int comconsattached;
  175 extern bus_space_tag_t comconsiot;
  176 extern bus_space_handle_t comconsioh;
  177 extern int comconsunit;
  178 extern tcflag_t comconscflag;
  179 extern u_char comcons_reg_width;
  180 extern u_char comcons_reg_shift;

Cache object: 3b8e600f0b098f43ef7a0c0345cfd181


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.