[BACK]Return to ucomvar.h CVS log [TXT][DIR] Up to [local] / sys / dev / usb

Annotation of sys/dev/usb/ucomvar.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: ucomvar.h,v 1.16 2007/06/14 08:08:21 mbalmer Exp $ */
                      2: /*     $NetBSD: ucomvar.h,v 1.10 2001/12/31 12:15:21 augustss Exp $    */
                      3:
                      4: /*
                      5:  * Copyright (c) 1999 The NetBSD Foundation, Inc.
                      6:  * All rights reserved.
                      7:  *
                      8:  * This code is derived from software contributed to The NetBSD Foundation
                      9:  * by Lennart Augustsson (lennart@augustsson.net) at
                     10:  * Carlstedt Research & Technology.
                     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. All advertising materials mentioning features or use of this software
                     21:  *    must display the following acknowledgement:
                     22:  *        This product includes software developed by the NetBSD
                     23:  *        Foundation, Inc. and its contributors.
                     24:  * 4. Neither the name of The NetBSD Foundation nor the names of its
                     25:  *    contributors may be used to endorse or promote products derived
                     26:  *    from this software without specific prior written permission.
                     27:  *
                     28:  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
                     29:  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
                     30:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
                     31:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
                     32:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
                     33:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
                     34:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
                     35:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
                     36:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
                     37:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     38:  * POSSIBILITY OF SUCH DAMAGE.
                     39:  */
                     40:
                     41: #define UCOMBUSCF_PORTNO               0
                     42: #define UCOMBUSCF_PORTNO_DEFAULT       -1
                     43:
                     44: #define ucomcf_portno cf_loc[UCOMBUSCF_PORTNO]
                     45: #define UCOM_UNK_PORTNO UCOMBUSCF_PORTNO_DEFAULT
                     46:
                     47: struct ucom_softc;
                     48:
                     49: struct ucom_methods {
                     50:        void (*ucom_get_status)(void *sc, int portno, u_char *lsr, u_char *msr);
                     51:        void (*ucom_set)(void *sc, int portno, int reg, int onoff);
                     52: #define UCOM_SET_DTR 1
                     53: #define UCOM_SET_RTS 2
                     54: #define UCOM_SET_BREAK 3
                     55:        int (*ucom_param)(void *sc, int portno, struct termios *);
                     56:        int (*ucom_ioctl)(void *sc, int portno, u_long cmd,
                     57:                          caddr_t data, int flag, struct proc *p);
                     58:        int (*ucom_open)(void *sc, int portno);
                     59:        void (*ucom_close)(void *sc, int portno);
                     60:        void (*ucom_read)(void *sc, int portno, u_char **ptr, u_int32_t *count);
                     61:        void (*ucom_write)(void *sc, int portno, u_char *to, u_char *from,
                     62:                           u_int32_t *count);
                     63: };
                     64:
                     65: /* modem control register */
                     66: #define        UMCR_RTS        0x02    /* Request To Send */
                     67: #define        UMCR_DTR        0x01    /* Data Terminal Ready */
                     68:
                     69: /* line status register */
                     70: #define        ULSR_RCV_FIFO   0x80
                     71: #define        ULSR_TSRE       0x40    /* Transmitter empty: byte sent */
                     72: #define        ULSR_TXRDY      0x20    /* Transmitter buffer empty */
                     73: #define        ULSR_BI         0x10    /* Break detected */
                     74: #define        ULSR_FE         0x08    /* Framing error: bad stop bit */
                     75: #define        ULSR_PE         0x04    /* Parity error */
                     76: #define        ULSR_OE         0x02    /* Overrun, lost incoming byte */
                     77: #define        ULSR_RXRDY      0x01    /* Byte ready in Receive Buffer */
                     78: #define        ULSR_RCV_MASK   0x1f    /* Mask for incoming data or error */
                     79:
                     80: /* modem status register */
                     81: /* All deltas are from the last read of the MSR. */
                     82: #define        UMSR_DCD        0x80    /* Current Data Carrier Detect */
                     83: #define        UMSR_RI         0x40    /* Current Ring Indicator */
                     84: #define        UMSR_DSR        0x20    /* Current Data Set Ready */
                     85: #define        UMSR_CTS        0x10    /* Current Clear to Send */
                     86: #define        UMSR_DDCD       0x08    /* DCD has changed state */
                     87: #define        UMSR_TERI       0x04    /* RI has toggled low to high */
                     88: #define        UMSR_DDSR       0x02    /* DSR has changed state */
                     89: #define        UMSR_DCTS       0x01    /* CTS has changed state */
                     90:
                     91: struct ucom_attach_args {
                     92:        int portno;
                     93:        int bulkin;
                     94:        int bulkout;
                     95:        struct uhidev_softc *uhidev;
                     96:        u_int ibufsize;
                     97:        u_int ibufsizepad;
                     98:        u_int obufsize;
                     99:        u_int opkthdrlen;
                    100:        const char *info;       /* attach message */
                    101:        usbd_device_handle device;
                    102:        usbd_interface_handle iface;
                    103:        struct ucom_methods *methods;
                    104:        void *arg;
                    105: };
                    106:
                    107: int ucomsubmatch(struct device *, void *, void *);
                    108:
                    109: int ucomprint(void *aux, const char *pnp);
                    110: void ucom_status_change(struct ucom_softc *);

CVSweb