Home | History | Annotate | Line # | Download | only in usb
if_cdcereg.h revision 1.2.76.1
      1 /*	$NetBSD: if_cdcereg.h,v 1.2.76.1 2009/05/04 08:13:20 yamt Exp $ */
      2 
      3 /*
      4  * Copyright (c) 1997, 1998, 1999, 2000-2003 Bill Paul <wpaul (at) windriver.com>
      5  * Copyright (c) 2003 Craig Boston
      6  * Copyright (c) 2004 Daniel Hartmeier
      7  * All rights reserved.
      8  *
      9  * Redistribution and use in source and binary forms, with or without
     10  * modification, are permitted provided that the following conditions
     11  * are met:
     12  * 1. Redistributions of source code must retain the above copyright
     13  *    notice, this list of conditions and the following disclaimer.
     14  * 2. Redistributions in binary form must reproduce the above copyright
     15  *    notice, this list of conditions and the following disclaimer in the
     16  *    documentation and/or other materials provided with the distribution.
     17  * 3. All advertising materials mentioning features or use of this software
     18  *    must display the following acknowledgement:
     19  *	This product includes software developed by Bill Paul.
     20  * 4. Neither the name of the author nor the names of any co-contributors
     21  *    may be used to endorse or promote products derived from this software
     22  *    without specific prior written permission.
     23  *
     24  * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
     25  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     26  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     27  * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul, THE VOICES IN HIS HEAD OR
     28  * THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     29  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     30  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     31  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     32  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     33  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     34  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     35  */
     36 
     37 #define CDCE_RX_LIST_CNT	1
     38 #define CDCE_TX_LIST_CNT	1
     39 #define CDCE_BUFSZ		1542
     40 
     41 struct cdce_type {
     42 	struct usb_devno	 cdce_dev;
     43 	u_int16_t		 cdce_flags;
     44 #define CDCE_ZAURUS	1
     45 #define CDCE_NO_UNION	2
     46 };
     47 
     48 struct cdce_softc;
     49 
     50 struct cdce_chain {
     51 	struct cdce_softc	*cdce_sc;
     52 	usbd_xfer_handle	 cdce_xfer;
     53 	char			*cdce_buf;
     54 	struct mbuf		*cdce_mbuf;
     55 	int			 cdce_accum;
     56 	int			 cdce_idx;
     57 };
     58 
     59 struct cdce_cdata {
     60 	struct cdce_chain	 cdce_rx_chain[CDCE_RX_LIST_CNT];
     61 	struct cdce_chain	 cdce_tx_chain[CDCE_TX_LIST_CNT];
     62 	int			 cdce_tx_prod;
     63 	int			 cdce_tx_cons;
     64 	int			 cdce_tx_cnt;
     65 	int			 cdce_rx_prod;
     66 };
     67 
     68 struct cdce_softc {
     69 	USBBASEDEVICE		 cdce_dev;
     70 	struct ethercom		 cdce_ec;
     71 #if NRND > 0
     72 	rndsource_element_t	 rnd_source;
     73 #endif
     74 #define GET_IFP(sc) (&(sc)->cdce_ec.ec_if)
     75 	usbd_device_handle	 cdce_udev;
     76 	usbd_interface_handle	 cdce_ctl_iface;
     77 	usbd_interface_handle	 cdce_data_iface;
     78 	int			 cdce_bulkin_no;
     79 	usbd_pipe_handle	 cdce_bulkin_pipe;
     80 	int			 cdce_bulkout_no;
     81 	usbd_pipe_handle	 cdce_bulkout_pipe;
     82 	char			 cdce_dying;
     83 	int			 cdce_unit;
     84 	struct cdce_cdata	 cdce_cdata;
     85 	int			 cdce_rxeof_errors;
     86 	u_int16_t		 cdce_flags;
     87 	char			 cdce_attached;
     88 };
     89