xref: /freebsd/sys/dev/usb/net/if_urndisreg.h (revision 71625ec9ad2a9bc8c09784fbd23b759830e0ee5f)
129311227SHans Petter Selasky /*	$OpenBSD: if_urndisreg.h,v 1.19 2013/11/21 14:08:05 mpi Exp $ */
229311227SHans Petter Selasky 
329311227SHans Petter Selasky /*
429311227SHans Petter Selasky  * Copyright (c) 2010 Jonathan Armani <armani@openbsd.org>
529311227SHans Petter Selasky  * Copyright (c) 2010 Fabien Romano <fabien@openbsd.org>
629311227SHans Petter Selasky  * Copyright (c) 2010 Michael Knudsen <mk@openbsd.org>
729311227SHans Petter Selasky  * All rights reserved.
829311227SHans Petter Selasky  *
929311227SHans Petter Selasky  * Permission to use, copy, modify, and distribute this software for any
1029311227SHans Petter Selasky  * purpose with or without fee is hereby granted, provided that the above
1129311227SHans Petter Selasky  * copyright notice and this permission notice appear in all copies.
1229311227SHans Petter Selasky  *
1329311227SHans Petter Selasky  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1429311227SHans Petter Selasky  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1529311227SHans Petter Selasky  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1629311227SHans Petter Selasky  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1729311227SHans Petter Selasky  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1829311227SHans Petter Selasky  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1929311227SHans Petter Selasky  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2029311227SHans Petter Selasky  */
2129311227SHans Petter Selasky 
2229311227SHans Petter Selasky #ifndef _IF_URNDISREG_H_
2329311227SHans Petter Selasky #define	_IF_URNDISREG_H_
2429311227SHans Petter Selasky 
2529311227SHans Petter Selasky #define	RNDIS_RESPONSE_LEN	1024	/* bytes */
2629311227SHans Petter Selasky #define	RNDIS_RX_MAXLEN		(16 * 1024)
2729311227SHans Petter Selasky #define	RNDIS_TX_FRAMES_MAX	8
2829311227SHans Petter Selasky #define	RNDIS_TX_MAXLEN		MCLBYTES
2929311227SHans Petter Selasky 
3029311227SHans Petter Selasky enum {
3129311227SHans Petter Selasky 	URNDIS_BULK_RX,
3229311227SHans Petter Selasky 	URNDIS_BULK_TX,
3329311227SHans Petter Selasky 	URNDIS_INTR_RX,
3429311227SHans Petter Selasky 	URNDIS_N_TRANSFER,
3529311227SHans Petter Selasky };
3629311227SHans Petter Selasky 
3729311227SHans Petter Selasky struct urndis_softc {
3829311227SHans Petter Selasky 	struct usb_ether sc_ue;
3929311227SHans Petter Selasky 	struct mtx sc_mtx;
4029311227SHans Petter Selasky 
4129311227SHans Petter Selasky 	/* RNDIS device info */
4229311227SHans Petter Selasky 	uint32_t sc_lim_pktsz;
4329311227SHans Petter Selasky 	uint32_t sc_filter;
4429311227SHans Petter Selasky 
4529311227SHans Petter Selasky 	struct usb_device *sc_udev;
4629311227SHans Petter Selasky 	struct usb_xfer *sc_xfer[URNDIS_N_TRANSFER];
4729311227SHans Petter Selasky 
4829311227SHans Petter Selasky 	uint8_t	sc_ifaceno_ctl;
4929311227SHans Petter Selasky 	uint8_t	sc_response_buf[RNDIS_RESPONSE_LEN] __aligned(4);
5029311227SHans Petter Selasky };
5129311227SHans Petter Selasky 
5229311227SHans Petter Selasky #define	URNDIS_LOCK(sc) mtx_lock(&(sc)->sc_mtx)
5329311227SHans Petter Selasky #define	URNDIS_UNLOCK(sc) mtx_unlock(&(sc)->sc_mtx)
54*99b5dd8fSHans Petter Selasky #define	URNDIS_LOCK_ASSERT(sc, what) mtx_assert(&(sc)->sc_mtx, (what))
5529311227SHans Petter Selasky 
5629311227SHans Petter Selasky #endif					/* _IF_URNDISREG_H_ */
57