summaryrefslogtreecommitdiffstats
path: root/sys/dev/lmc/if_lmcvar.h
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2000-04-26 20:16:56 +0000
committerphk <phk@FreeBSD.org>2000-04-26 20:16:56 +0000
commitc816580dfb530d84c2396d9f0d10a9f8e44d4ea4 (patch)
tree9754dfd8db6a41796c38824d131bd2d9369933e2 /sys/dev/lmc/if_lmcvar.h
parenta0363301237e7450b90e5d8fe9242958c75bd43d (diff)
downloadFreeBSD-src-c816580dfb530d84c2396d9f0d10a9f8e44d4ea4.zip
FreeBSD-src-c816580dfb530d84c2396d9f0d10a9f8e44d4ea4.tar.gz
Driver for DEC "Tulip" based WAN cards from LanMedia Corporation.
This driver should support both the SSI (V.35 etc) E1/T1 unchannelized, DS3 and HSSI cards. Only tested on the SSI card. More info at: http://www.lanmedia.com Thanks to LanMedia for donating two LMC1000P cards. if_de.c driver modified by: LanMedia NetGraphification by: Stephen Kiernan <sk-ports@vegamuse.org>
Diffstat (limited to 'sys/dev/lmc/if_lmcvar.h')
-rw-r--r--sys/dev/lmc/if_lmcvar.h180
1 files changed, 47 insertions, 133 deletions
diff --git a/sys/dev/lmc/if_lmcvar.h b/sys/dev/lmc/if_lmcvar.h
index 48bee6b..58b02b0 100644
--- a/sys/dev/lmc/if_lmcvar.h
+++ b/sys/dev/lmc/if_lmcvar.h
@@ -1,10 +1,7 @@
-/* $FreeBSD$ */
-/* From NetBSD: if_devar.h,v 1.21 1997/10/16 22:02:32 matt Exp */
-/* $Id: if_lmcvar.h,v 1.6 1999/01/12 14:16:58 explorer Exp $ */
-
/*-
* Copyright (c) 1994-1997 Matt Thomas (matt@3am-software.com)
* Copyright (c) LAN Media Corporation 1998, 1999.
+ * Copyright (c) 2000 Stephen Kiernan (sk-ports@vegamuse.org)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -25,10 +22,14 @@
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ * From NetBSD: if_devar.h,v 1.21 1997/10/16 22:02:32 matt Exp
+ * $Id: if_lmcvar.h,v 1.6 1999/01/12 14:16:58 explorer Exp $
*/
-#if !defined(_DEVAR_H)
-#define _DEVAR_H
+#if !defined(_DEV_LMC_IF_LMCVAR_H)
+#define _DEV_LMC_IF_LMCVAR_H
#define LMC_MTU 1500
#define PPP_HEADER_LEN 4
@@ -50,33 +51,12 @@
#define PCI_PRODUCT_LMC_T1 0x0006
#endif
-#if defined(__NetBSD__)
-
-#include "rnd.h"
-#if NRND > 0
-#include <sys/rnd.h>
-#endif
-
-typedef bus_addr_t lmc_csrptr_t;
-
-#define LMC_CSR_READ(sc, csr) \
- bus_space_read_4((sc)->lmc_bustag, (sc)->lmc_bushandle, (sc)->lmc_csrs.csr)
-#define LMC_CSR_WRITE(sc, csr, val) \
- bus_space_write_4((sc)->lmc_bustag, (sc)->lmc_bushandle, (sc)->lmc_csrs.csr, (val))
-
-#define LMC_CSR_READBYTE(sc, csr) \
- bus_space_read_1((sc)->lmc_bustag, (sc)->lmc_bushandle, (sc)->lmc_csrs.csr)
-#define LMC_CSR_WRITEBYTE(sc, csr, val) \
- bus_space_write_1((sc)->lmc_bustag, (sc)->lmc_bushandle, (sc)->lmc_csrs.csr, (val))
-#endif /* __NetBSD__ */
-
#ifdef LMC_IOMAPPED
#define LMC_EISA_CSRSIZE 16
#define LMC_EISA_CSROFFSET 0
#define LMC_PCI_CSRSIZE 8
#define LMC_PCI_CSROFFSET 0
-#if !defined(__NetBSD__)
typedef u_int16_t lmc_csrptr_t;
#define LMC_CSR_READ(sc, csr) (inl((sc)->lmc_csrs.csr))
@@ -84,14 +64,12 @@ typedef u_int16_t lmc_csrptr_t;
#define LMC_CSR_READBYTE(sc, csr) (inb((sc)->lmc_csrs.csr))
#define LMC_CSR_WRITEBYTE(sc, csr, val) outb((sc)->lmc_csrs.csr, val)
-#endif /* __NetBSD__ */
#else /* LMC_IOMAPPED */
#define LMC_PCI_CSRSIZE 8
#define LMC_PCI_CSROFFSET 0
-#if !defined(__NetBSD__)
typedef volatile u_int32_t *lmc_csrptr_t;
/*
@@ -101,7 +79,6 @@ typedef volatile u_int32_t *lmc_csrptr_t;
*/
#define LMC_CSR_READ(sc, csr) (0 + *(sc)->lmc_csrs.csr)
#define LMC_CSR_WRITE(sc, csr, val) ((void)(*(sc)->lmc_csrs.csr = (val)))
-#endif /* __NetBSD__ */
#endif /* LMC_IOMAPPED */
@@ -257,29 +234,9 @@ typedef struct {
*
*/
struct lmc___softc {
-#if defined(__bsdi__)
- struct device lmc_dev; /* base device */
- struct isadev lmc_id; /* ISA device */
- struct intrhand lmc_ih; /* intrrupt vectoring */
- struct atshutdown lmc_ats; /* shutdown hook */
- struct p2pcom lmc_p2pcom; /* point-to-point common stuff */
-
-#define lmc_if lmc_p2pcom.p2p_if /* network-visible interface */
-#endif /* __bsdi__ */
-
-#if defined(__NetBSD__)
- struct device lmc_dev; /* base device */
- void *lmc_ih; /* intrrupt vectoring */
- void *lmc_ats; /* shutdown hook */
- bus_space_tag_t lmc_bustag;
- bus_space_handle_t lmc_bushandle; /* CSR region handle */
- pci_chipset_tag_t lmc_pc;
-#endif
-#if defined(__NetBSD__) || defined(__FreeBSD__)
- struct sppp lmc_sppp;
-#define lmc_if lmc_sppp.pp_if
-#endif
+ const char *lmc_name;
+ int lmc_unit;
u_int8_t lmc_enaddr[6]; /* yes, a small hack... */
lmc_regfile_t lmc_csrs;
@@ -312,29 +269,54 @@ struct lmc___softc {
lmc_ctl_t ictl;
LMC_XINFO lmc_xinfo;
-#if defined(__NetBSD__)
- struct device *lmc_pci_busno; /* needed for multiport boards */
-#else
u_int8_t lmc_pci_busno; /* needed for multiport boards */
-#endif
u_int8_t lmc_pci_devno; /* needed for multiport boards */
-#if defined(__FreeBSD__)
tulip_desc_t *lmc_rxdescs;
tulip_desc_t *lmc_txdescs;
-#else
- tulip_desc_t lmc_rxdescs[LMC_RXDESCS];
- tulip_desc_t lmc_txdescs[LMC_TXDESCS];
-#endif
-#if defined(__NetBSD__) && NRND > 0
- rndsource_element_t lmc_rndsource;
-#endif
u_int32_t lmc_crcSize;
char lmc_timing; /* for HSSI and SSI */
u_int16_t t1_alarm1_status;
u_int16_t t1_alarm2_status;
+ int lmc_running;
+ char lmc_nodename[NG_NODELEN + 1];
+ int lmc_datahooks;
+ node_p lmc_node;
+ hook_p lmc_hook;
+ hook_p lmc_debug_hook;
+ struct ifqueue lmc_xmitq_hipri;
+ struct ifqueue lmc_xmitq;
+ struct callout_handle lmc_handle;
+ char lmc_xmit_busy;
+ int lmc_out_dog;
+ u_long lmc_inbytes, lmc_outbytes; /* stats */
+ u_long lmc_lastinbytes, lmc_lastoutbytes; /* a second ago */
+ u_long lmc_inrate, lmc_outrate; /* highest rate seen */
+ u_long lmc_inlast; /* last input N secs ago */
+ u_long lmc_out_deficit; /* output since last input */
+ u_long lmc_oerrors, lmc_ierrors;
+ u_long lmc_opackets, lmc_ipackets;
+};
+
+
+#define LMC_DOG_HOLDOFF 6 /* dog holds off for 6 secs */
+#define LMC_QUITE_A_WHILE 300 /* 5 MINUTES */
+#define LMC_LOTS_OF_PACKETS 100
+
+/* Node type name and type cookie */
+#define NG_LMC_NODE_TYPE "lmc"
+#define NG_LMC_COOKIE 956095698
+/* Netgraph hooks */
+#define NG_LMC_HOOK_DEBUG "debug"
+#define NG_LMC_HOOK_CONTROL "control"
+#define NG_LMC_HOOK_RAW "rawdata"
+
+/* Netgraph commands understood by this node type */
+enum {
+ NGM_LMC_SET_CTL = 1,
+ NGM_LMC_GET_CTL,
};
/*
@@ -432,70 +414,19 @@ static const char * const lmc_status_bits[] = {
*/
#define LMC_MAX_DEVICES 32
-#if defined(__FreeBSD__)
typedef void ifnet_ret_t;
typedef int ioctl_cmd_t;
static lmc_softc_t *tulips[LMC_MAX_DEVICES];
-#if BSD >= 199506
#define LMC_IFP_TO_SOFTC(ifp) ((lmc_softc_t *)((ifp)->if_softc))
-#if NBPFILTER > 0
-#define LMC_BPF_MTAP(sc, m) bpf_mtap(&(sc)->lmc_sppp.pp_if, m)
-#define LMC_BPF_TAP(sc, p, l) bpf_tap(&(sc)->lmc_sppp.pp_if, p, l)
-#define LMC_BPF_ATTACH(sc) bpfattach(&(sc)->lmc_sppp.pp_if, DLT_PPP, PPP_HEADER_LEN)
-#endif
#define lmc_intrfunc_t void
#define LMC_VOID_INTRFUNC
#define IFF_NOTRAILERS 0
#define CLBYTES PAGE_SIZE
#define LMC_EADDR_FMT "%6D"
#define LMC_EADDR_ARGS(addr) addr, ":"
-#else
-extern int bootverbose;
-#define LMC_IFP_TO_SOFTC(ifp) (LMC_UNIT_TO_SOFTC((ifp)->if_unit))
-#include <sys/devconf.h>
-#define LMC_DEVCONF
-#endif
#define LMC_UNIT_TO_SOFTC(unit) (tulips[unit])
#define LMC_BURSTSIZE(unit) pci_max_burst_len
#define loudprintf if (bootverbose) printf
-#endif
-
-#if defined(__bsdi__)
-typedef int ifnet_ret_t;
-typedef u_long ioctl_cmd_t;
-extern struct cfdriver lmccd;
-#define LMC_UNIT_TO_SOFTC(unit) ((lmc_softc_t *)lmccd.cd_devs[unit])
-#define LMC_IFP_TO_SOFTC(ifp) (LMC_UNIT_TO_SOFTC((ifp)->if_unit))
-#define loudprintf aprint_verbose
-#define MCNT(x) (sizeof(x) / sizeof(struct ifmedia_entry))
-#define lmc_unit lmc_dev.dv_unit
-#define lmc_name lmc_p2pcom.p2p_if.if_name
-#define LMC_BPF_MTAP(sc, m)
-#define LMC_BPF_TAP(sc, p, l)
-#define LMC_BPF_ATTACH(sc)
-#endif /* __bsdi__ */
-
-#if defined(__NetBSD__)
-typedef void ifnet_ret_t;
-typedef u_long ioctl_cmd_t;
-extern struct cfattach de_ca;
-extern struct cfdriver de_cd;
-#define LMC_UNIT_TO_SOFTC(unit) ((lmc_softc_t *) de_cd.cd_devs[unit])
-#define LMC_IFP_TO_SOFTC(ifp) ((lmc_softc_t *)((ifp)->if_softc))
-#define lmc_unit lmc_dev.dv_unit
-#define lmc_xname lmc_if.if_xname
-#define LMC_RAISESPL() splnet()
-#define LMC_RAISESOFTSPL() splsoftnet()
-#define LMC_RESTORESPL(s) splx(s)
-#define lmc_enaddr lmc_enaddr
-#define loudprintf printf
-#define LMC_PRINTF_FMT "%s"
-#define LMC_PRINTF_ARGS sc->lmc_xname
-#if defined(__alpha__)
-/* XXX XXX NEED REAL DMA MAPPING SUPPORT XXX XXX */
-#define LMC_KVATOPHYS(sc, va) alpha_XXX_dmamap((vm_offset_t)(va))
-#endif
-#endif /* __NetBSD__ */
#ifndef LMC_PRINTF_FMT
#define LMC_PRINTF_FMT "%s%d"
@@ -508,23 +439,6 @@ extern struct cfdriver de_cd;
#define LMC_BURSTSIZE(unit) 3
#endif
-#ifndef lmc_unit
-#define lmc_unit lmc_sppp.pp_if.if_unit
-#endif
-
-#ifndef lmc_name
-#define lmc_name lmc_sppp.pp_if.if_name
-#endif
-
-#if !defined(lmc_bpf)
-#if defined(__NetBSD__) || defined(__FreeBSD__)
-#define lmc_bpf lmc_sppp.pp_if.if_bpf
-#endif
-#if defined(__bsdi__)
-#define lmc_bpf lmc_if.if_bpf
-#endif
-#endif
-
#if !defined(lmc_intrfunc_t)
#define lmc_intrfunc_t int
#endif
@@ -575,4 +489,4 @@ extern struct cfdriver de_cd;
typedef int lmc_spl_t;
-#endif /* !defined(_DEVAR_H) */
+#endif /* !defined(_DEV_LMC_IF_LMCVAR_H) */
OpenPOWER on IntegriCloud