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/cyvar.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 /*      $NetBSD: cyvar.h,v 1.9 2008/03/26 17:50:32 matt Exp $   */
    2 
    3 /*
    4  * cy_var.h
    5  *
    6  * Driver for Cyclades Cyclom-8/16/32 multiport serial cards
    7  * (currently not tested with Cyclom-32 cards)
    8  *
    9  * Timo Rossi, 1996
   10  *
   11  * Supports both ISA and PCI Cyclom cards
   12  */
   13 
   14 /* #define CY_DEBUG */
   15 #define CY_DEBUG1
   16 
   17 /*
   18  * Maximum number of ports per card
   19  */
   20 #define CY_MAX_PORTS            (CD1400_NO_OF_CHANNELS * CY_MAX_CD1400s)
   21 
   22 #define CY_RX_FIFO_THRESHOLD  6
   23 
   24 /*
   25  * Automatic RTS (or actually DTR, the RTS and DTR lines need to be
   26  * exchanged) handshake threshold used if CY_HW_RTS is defined
   27  */
   28 #define CY_RX_DTR_THRESHOLD   9
   29 
   30 /*
   31  * read/write cd1400 registers (when sc_softc-structure is available)
   32  */
   33 #define cd_read_reg(sc,chip,reg) bus_space_read_1(sc->sc_memt, \
   34     sc->sc_bsh, sc->sc_cd1400_offs[chip] + \
   35     (((reg << 1)) << sc->sc_bustype))
   36 
   37 #define cd_write_reg(sc,chip,reg,val) bus_space_write_1(sc->sc_memt, \
   38     sc->sc_bsh, sc->sc_cd1400_offs[chip] + \
   39     (((reg << 1))<< sc->sc_bustype), (val))
   40 
   41 /*
   42  * ibuf is a simple ring buffer. It is always used two
   43  * bytes at a time (status and data)
   44  */
   45 #define CY_IBUF_SIZE (2*512)
   46 
   47 /* software state for one port */
   48 struct cy_port {
   49         struct cy_softc *cy_softc;
   50         int             cy_port_num;
   51         int             cy_chip;
   52         int             cy_clock;
   53         struct tty     *cy_tty;
   54         int             cy_openflags;
   55         int             cy_fifo_overruns;
   56         int             cy_ibuf_overruns;
   57         u_char          cy_channel_control;     /* last CCR channel control
   58                                                  * command bits */
   59         u_char          cy_carrier_stat;        /* copied from MSVR2 */
   60         u_char          cy_flags;
   61         u_char         *cy_ibuf, *cy_ibuf_end;
   62         u_char         *cy_ibuf_rd_ptr, *cy_ibuf_wr_ptr;
   63 #ifdef CY_DEBUG1
   64         int             cy_rx_int_count;
   65         int             cy_tx_int_count;
   66         int             cy_modem_int_count;
   67         int             cy_start_count;
   68 #endif /* CY_DEBUG1 */
   69 };
   70 
   71 #define CY_F_CARRIER_CHANGED  0x01
   72 #define CY_F_START_BREAK      0x02
   73 #define CY_F_END_BREAK        0x04
   74 #define CY_F_STOP             0x08
   75 #define CY_F_SEND_NUL         0x10
   76 #define CY_F_START            0x20
   77 
   78 /* software state for one card */
   79 struct cy_softc {
   80         device_t        sc_dev;
   81         void           *sc_ih;
   82         bus_space_tag_t sc_memt;
   83         bus_space_handle_t sc_bsh;
   84         int             sc_bustype;
   85         int             sc_nchips;      /* Number of cd1400's on this card */
   86         int             sc_cd1400_offs[CY_MAX_CD1400s];
   87         struct cy_port  sc_ports[CY_MAX_PORTS];
   88         int             sc_nchannels;   /* total number of ports */
   89 #ifdef CY_DEBUG1
   90         int             sc_poll_count1;
   91         int             sc_poll_count2;
   92 #endif
   93 };
   94 
   95 int     cy_find(struct cy_softc *);
   96 void    cy_attach(struct cy_softc *);
   97 int     cy_intr(void *);

Cache object: e9ea5f4a5ef9f959d43bba0e07715d50


[ 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.