diff options
Diffstat (limited to 'sys/dev/lmc/if_lmcvar.h')
-rw-r--r-- | sys/dev/lmc/if_lmcvar.h | 180 |
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) */ |