1*7591b6e0Smikeb /* $OpenBSD: if_urndisreg.h,v 1.20 2016/09/16 11:13:37 mikeb Exp $ */ 2f8bfa4e2Smk 3f8bfa4e2Smk /* 418b419daSfabien * Copyright (c) 2010 Jonathan Armani <armani@openbsd.org> 518b419daSfabien * Copyright (c) 2010 Fabien Romano <fabien@openbsd.org> 6f8bfa4e2Smk * Copyright (c) 2010 Michael Knudsen <mk@openbsd.org> 7f8bfa4e2Smk * All rights reserved. 8f8bfa4e2Smk * 9f8bfa4e2Smk * Permission to use, copy, modify, and distribute this software for any 10f8bfa4e2Smk * purpose with or without fee is hereby granted, provided that the above 11f8bfa4e2Smk * copyright notice and this permission notice appear in all copies. 12f8bfa4e2Smk * 13f8bfa4e2Smk * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 14f8bfa4e2Smk * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 15f8bfa4e2Smk * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 16f8bfa4e2Smk * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 17f8bfa4e2Smk * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 18f8bfa4e2Smk * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 19f8bfa4e2Smk * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 20f8bfa4e2Smk */ 21f8bfa4e2Smk 22f8bfa4e2Smk #define RNDIS_RX_LIST_CNT 1 23f8bfa4e2Smk #define RNDIS_TX_LIST_CNT 1 2460ea0ce4Sckuethe #define RNDIS_BUFSZ 1562 25f8bfa4e2Smk 26f8bfa4e2Smk struct urndis_chain { 270497a875Smk struct urndis_softc *sc_softc; 28ab0b1be7Smglocker struct usbd_xfer *sc_xfer; 29f8bfa4e2Smk char *sc_buf; 30f8bfa4e2Smk struct mbuf *sc_mbuf; 31f8bfa4e2Smk int sc_idx; 32f8bfa4e2Smk }; 33f8bfa4e2Smk 34f8bfa4e2Smk struct urndis_cdata { 35f8bfa4e2Smk struct urndis_chain sc_rx_chain[RNDIS_RX_LIST_CNT]; 36f8bfa4e2Smk struct urndis_chain sc_tx_chain[RNDIS_TX_LIST_CNT]; 37f8bfa4e2Smk int sc_tx_cnt; 38f8bfa4e2Smk }; 39f8bfa4e2Smk 40f8bfa4e2Smk #define GET_IFP(sc) (&(sc)->sc_arpcom.ac_if) 41f8bfa4e2Smk struct urndis_softc { 42f8bfa4e2Smk struct device sc_dev; 43f8bfa4e2Smk 44b896039bSmpi char sc_attached; 45f8bfa4e2Smk struct arpcom sc_arpcom; 46f8bfa4e2Smk 47f8bfa4e2Smk /* RNDIS device info */ 48f8bfa4e2Smk u_int32_t sc_lim_pktsz; 49f8bfa4e2Smk u_int32_t sc_filter; 50f8bfa4e2Smk 51f8bfa4e2Smk /* USB goo */ 52ab0b1be7Smglocker struct usbd_device *sc_udev; 53f8bfa4e2Smk int sc_ifaceno_ctl; 54ab0b1be7Smglocker struct usbd_interface *sc_iface_data; 55f8bfa4e2Smk 56a87747bfSmk struct timeval sc_rx_notice; 57f8bfa4e2Smk int sc_bulkin_no; 58ab0b1be7Smglocker struct usbd_pipe *sc_bulkin_pipe; 59f8bfa4e2Smk int sc_bulkout_no; 60ab0b1be7Smglocker struct usbd_pipe *sc_bulkout_pipe; 61f8bfa4e2Smk 62f8bfa4e2Smk struct urndis_cdata sc_data; 63f8bfa4e2Smk }; 64