diff options
author | 1996-07-03 17:21:17 +0000 | |
---|---|---|
committer | 1996-07-03 17:21:17 +0000 | |
commit | c143e3bd79a70fd982b51e377bf9259464d6b660 (patch) | |
tree | e6ca98067a4eb32e3887c2fa3f8ef790ae94fdd8 | |
parent | ported to FreeBSD 2.2-960612-SNAP. (diff) | |
download | wireguard-openbsd-c143e3bd79a70fd982b51e377bf9259464d6b660.tar.xz wireguard-openbsd-c143e3bd79a70fd982b51e377bf9259464d6b660.zip |
ported to FreeBSD 2.2-960612-SNAP.
-rw-r--r-- | sys/dev/ic/midway.c | 60 | ||||
-rw-r--r-- | sys/dev/ic/midwayreg.h | 12 | ||||
-rw-r--r-- | sys/dev/ic/midwayvar.h | 38 | ||||
-rw-r--r-- | sys/netnatm/natm.c | 25 | ||||
-rw-r--r-- | sys/netnatm/natm.h | 21 | ||||
-rw-r--r-- | sys/netnatm/natm_pcb.c | 4 | ||||
-rw-r--r-- | sys/netnatm/natm_proto.c | 19 |
7 files changed, 144 insertions, 35 deletions
diff --git a/sys/dev/ic/midway.c b/sys/dev/ic/midway.c index 152218367e4..95b052eb1f2 100644 --- a/sys/dev/ic/midway.c +++ b/sys/dev/ic/midway.c @@ -1,5 +1,5 @@ -/* $OpenBSD: midway.c,v 1.7 1996/06/29 23:22:31 chuck Exp $ */ -/* (sync'd to midway.c 1.56) */ +/* $OpenBSD: midway.c,v 1.8 1996/07/03 17:21:19 chuck Exp $ */ +/* (sync'd to midway.c 1.57) */ /* * @@ -81,11 +81,18 @@ #define INLINE inline #endif /* EN_DEBUG */ +#ifdef __FreeBSD__ +#include "en.h" +#endif + +#if NEN > 0 || !defined(__FreeBSD__) #include <sys/param.h> #include <sys/systm.h> #include <sys/types.h> +#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) #include <sys/device.h> +#endif #include <sys/ioctl.h> #include <sys/mbuf.h> #include <sys/socket.h> @@ -106,12 +113,21 @@ #endif -#ifndef sparc +#if !defined(sparc) && !defined(__FreeBSD__) #include <machine/bus.h> #endif +#if defined(__NetBSD__) || defined(__OpenBSD__) #include <dev/ic/midwayreg.h> #include <dev/ic/midwayvar.h> +#elif defined(__FreeBSD__) +#include <machine/cpufunc.h> /* for rdtsc proto for clock.h below */ +#include <machine/clock.h> /* for DELAY */ +#include <pci/midwayreg.h> +#include <pci/midwayvar.h> +#include <vm/pmap.h> /* for vtophys proto */ +#define IFF_NOTRAILERS 0 +#endif /* * params @@ -311,9 +327,8 @@ u_int32_t r, v; * prototypes */ -void en_attach __P((struct en_softc *)); STATIC int en_b2sz __P((int)); -#ifdef EN_DEBUG +#ifdef EN_DDBHOOK int en_dump __P((int,int)); int en_dumpmem __P((int,int,int)); #endif @@ -322,13 +337,11 @@ STATIC int en_dmaprobe_doit __P((struct en_softc *, u_int8_t *, u_int8_t *, int)); STATIC int en_dqneed __P((struct en_softc *, caddr_t, u_int)); STATIC void en_init __P((struct en_softc *)); -int en_intr __P((void *)); -STATIC int en_ioctl __P((struct ifnet *, u_long, caddr_t)); +STATIC int en_ioctl __P((struct ifnet *, EN_IOCTL_CMDT, caddr_t)); STATIC int en_k2sz __P((int)); STATIC void en_loadvc __P((struct en_softc *, int)); STATIC void en_mfix __P((struct en_softc *, struct mbuf *)); STATIC struct mbuf *en_mget __P((struct en_softc *, u_int, u_int *)); -STATIC void en_reset __P((struct en_softc *)); STATIC int en_rxctl __P((struct en_softc *, struct atm_pseudoioctl *, int)); STATIC void en_txdma __P((struct en_softc *, int)); STATIC void en_txlaunch __P((struct en_softc *, int, struct en_launch *)); @@ -518,9 +531,7 @@ struct en_softc *sc; { struct ifnet *ifp = &sc->enif; - bus_mem_addr_t membase; - const char *intrstr; - int retval, sz; + int sz; u_int32_t reg, lcv, check, ptr, sav, midvloc; /* @@ -579,7 +590,9 @@ done_probe: * link into network subsystem and prepare card */ +#if defined(__NetBSD__) || defined(__OpenBSD__) bcopy(sc->sc_dev.dv_xname, sc->enif.if_xname, IFNAMSIZ); +#endif sc->enif.if_softc = sc; ifp->if_flags = IFF_SIMPLEX|IFF_NOTRAILERS; ifp->if_ioctl = en_ioctl; @@ -745,6 +758,7 @@ struct en_softc *sc; * en_dmaprobe_doit: do actual testing */ +int en_dmaprobe_doit(sc, sp, dp, wmtry) struct en_softc *sc; @@ -866,7 +880,7 @@ int wmtry; STATIC int en_ioctl(ifp, cmd, data) struct ifnet *ifp; -u_long cmd; +EN_IOCTL_CMDT cmd; caddr_t data; { @@ -876,8 +890,9 @@ caddr_t data; struct atm_pseudoioctl *api = (struct atm_pseudoioctl *)data; #ifdef NATM struct atm_rawioctl *ario = (struct atm_rawioctl *)data; + int slot; #endif - int s, error = 0, slot; + int s, error = 0; s = splnet(); @@ -1061,7 +1076,7 @@ int on; * must en_init to recover. */ -STATIC void en_reset(sc) +void en_reset(sc) struct en_softc *sc; @@ -1140,7 +1155,7 @@ struct en_softc *sc; { int vc, slot; - u_int32_t reg, loc; + u_int32_t loc; if ((sc->enif.if_flags & IFF_UP) == 0) { #ifdef EN_DEBUG @@ -1313,7 +1328,7 @@ struct ifnet *ifp; if (atm_vpi || atm_vci > MID_N_VC) { printf("%s: output vpi=%d, vci=%d out of card range, dropping...\n", - ifp->if_xname, atm_vpi, atm_vci); + sc->sc_dev.dv_xname, atm_vpi, atm_vci); m_freem(m); continue; } @@ -1485,7 +1500,7 @@ int chan; struct mbuf *tmp; struct atm_pseudohdr *ap; struct en_launch launch; - int datalen, dtqneed, len, ncells, needalign; + int datalen, dtqneed, len, ncells; u_int8_t *cp; #ifdef EN_DEBUG @@ -1893,7 +1908,7 @@ done: * interrupt handler */ -int en_intr(arg) +EN_INTR_TYPE en_intr(arg) void *arg; @@ -1907,7 +1922,7 @@ void *arg; reg = EN_READ(sc, MID_INTACK); if ((reg & MID_INT_ANY) == 0) - return(0); /* not us */ + EN_INTR_RET(0); /* not us */ #ifdef EN_DEBUG printf("%s: interrupt=0x%b\n", sc->sc_dev.dv_xname, reg, MID_INTBITS); @@ -1929,7 +1944,7 @@ void *arg; en_reset(sc); en_init(sc); #endif - return(1); + EN_INTR_RET(1); /* for us */ } /******************* @@ -2143,7 +2158,7 @@ void *arg; sc->vtrash += MID_VTRASH(reg); #endif - return(1); + EN_INTR_RET(1); /* for us */ } @@ -2720,3 +2735,6 @@ int unit, addr, len; return(0); } #endif + + +#endif /* NEN > 0 || !defined(__FreeBSD__) */ diff --git a/sys/dev/ic/midwayreg.h b/sys/dev/ic/midwayreg.h index e2f04895ba4..01428c4d877 100644 --- a/sys/dev/ic/midwayreg.h +++ b/sys/dev/ic/midwayreg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: midwayreg.h,v 1.2 1996/06/26 04:07:02 chuck Exp $ */ +/* $OpenBSD: midwayreg.h,v 1.3 1996/07/03 17:21:17 chuck Exp $ */ /* * m i d w a y r e g . h @@ -8,8 +8,8 @@ * */ -#ifdef sparc -/* XXX: gross. sparc doesn't have machine/bus.h yet. */ +#if defined(sparc) || defined(__FreeBSD__) +/* XXX: gross. netbsd/sparc doesn't have machine/bus.h yet. */ typedef void * bus_chipset_tag_t; typedef u_int32_t pci_chipset_tag_t; typedef caddr_t bus_mem_handle_t; @@ -19,7 +19,11 @@ typedef caddr_t bus_mem_addr_t; #define bus_mem_read_4(t, h, o) ((void) t, (*(volatile u_int32_t *)((h) + (o)))) #define bus_mem_write_4(t, h, o, v) \ ((void) t, ((void)(*(volatile u_int32_t *)((h) + (o)) = (v)))) -#define vtophys(x) ((u_int32_t)(x)) + +#if defined(sparc) +#define vtophys(x) ((u_int32_t)(x)) /* sun4c dvma */ +#endif + #endif diff --git a/sys/dev/ic/midwayvar.h b/sys/dev/ic/midwayvar.h index f83b62f42ac..86b07f41548 100644 --- a/sys/dev/ic/midwayvar.h +++ b/sys/dev/ic/midwayvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: midwayvar.h,v 1.5 1996/06/29 23:22:35 chuck Exp $ */ +/* $OpenBSD: midwayvar.h,v 1.6 1996/07/03 17:21:18 chuck Exp $ */ /* * @@ -58,6 +58,39 @@ #define EN_MAXNRX ((2048-(EN_NTX*EN_TXSZ))/EN_RXSZ) /* largest possible NRX (depends on RAM size) */ + +#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) +#define EN_INTR_TYPE int +#define EN_INTR_RET(X) return(X) +#if defined(__NetBSD__) || defined(__OpenBSD__) +#define EN_IOCTL_CMDT u_long +#elif defined(__bsdi__) +#define EN_IOCTL_CMDT int +#endif + +#elif defined(__FreeBSD__) + +#define EN_INTR_TYPE void +#define EN_INTR_RET(X) return +#define EN_IOCTL_CMDT int + +struct device { + char dv_xname[IFNAMSIZ]; +}; + +#define DV_IFNET 1 + +struct cfdriver { + int zero; + char *name; + int one; + int cd_ndevs; + void *cd_devs[NEN]; +}; + +#endif + + /* * softc */ @@ -159,4 +192,5 @@ struct en_softc { */ void en_attach __P((struct en_softc *)); -int en_intr __P((void *)); +EN_INTR_TYPE en_intr __P((void *)); +void en_reset __P((struct en_softc *)); diff --git a/sys/netnatm/natm.c b/sys/netnatm/natm.c index 51da47eb433..289aeab3017 100644 --- a/sys/netnatm/natm.c +++ b/sys/netnatm/natm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: natm.c,v 1.1 1996/06/30 21:40:12 chuck Exp $ */ +/* $OpenBSD: natm.c,v 1.2 1996/07/03 17:24:29 chuck Exp $ */ /* * @@ -38,6 +38,7 @@ #include <sys/param.h> #include <sys/systm.h> +#include <sys/kernel.h> #include <sys/domain.h> #include <sys/ioctl.h> #include <sys/proc.h> @@ -48,6 +49,7 @@ #include <net/if.h> #include <net/if_atm.h> +#include <net/netisr.h> #include <net/radix.h> #include <net/route.h> @@ -65,12 +67,18 @@ u_long natm0_recvspace = 16*1024; * user requests */ +#if defined(__NetBSD__) || defined(__OpenBSD__) int natm_usrreq(so, req, m, nam, control, p) +#elif defined(__FreeBSD__) +int natm_usrreq(so, req, m, nam, control) +#endif struct socket *so; int req; struct mbuf *m, *nam, *control; +#if defined(__NetBSD__) || defined(__OpenBSD__) struct proc *p; +#endif { int error = 0, s, s2; @@ -82,7 +90,7 @@ struct proc *p; struct ifnet *ifp; int proto = so->so_proto->pr_protocol; - s = splsoftnet(); + s = SPLSOFTNET(); npcb = (struct natmpcb *) so->so_pcb; @@ -109,7 +117,7 @@ struct proc *p; break; } - so->so_pcb = npcb = npcb_alloc(M_WAITOK); + so->so_pcb = (caddr_t) (npcb = npcb_alloc(M_WAITOK)); npcb->npcb_socket = so; break; @@ -259,9 +267,15 @@ struct proc *p; case PRU_PEERADDR: /* fetch peer's address */ snatm = mtod(nam, struct sockaddr_natm *); + bzero(snatm, sizeof(*snatm)); nam->m_len = snatm->snatm_len = sizeof(*snatm); snatm->snatm_family = AF_NATM; +#if defined(__NetBSD__) || defined(__OpenBSD__) bcopy(npcb->npcb_ifp->if_xname, snatm->snatm_if, sizeof(snatm->snatm_if)); +#elif defined(__FreeBSD__) + sprintf(snatm->snatm_if, "%s%d", npcb->npcb_ifp->if_name, + npcb->npcb_ifp->if_unit); +#endif snatm->snatm_vci = npcb->npcb_vci; snatm->snatm_vpi = npcb->npcb_vpi; break; @@ -396,6 +410,11 @@ m->m_pkthdr.rcvif = NULL; /* null it out to be safe */ goto next; } +#if defined(__FreeBSD__) +NETISR_SET(NETISR_NATM, natmintr); +#endif + + /* * natm0_sysctl: not used, but here in case we want to add something * later... diff --git a/sys/netnatm/natm.h b/sys/netnatm/natm.h index 143d1623cc4..032c59d35fa 100644 --- a/sys/netnatm/natm.h +++ b/sys/netnatm/natm.h @@ -1,4 +1,4 @@ -/* $OpenBSD: natm.h,v 1.1 1996/06/30 21:40:14 chuck Exp $ */ +/* $OpenBSD: natm.h,v 1.2 1996/07/03 17:24:30 chuck Exp $ */ /* * @@ -57,6 +57,20 @@ struct sockaddr_natm { }; +#if defined(__FreeBSD__) && defined(KERNEL) + +#ifndef _KERNEL +#define _KERNEL +#endif + +#define SPLSOFTNET() splnet() + +#elif defined(__NetBSD__) || defined(__OpenBSD__) + +#define SPLSOFTNET() splsoftnet() + +#endif + #ifdef _KERNEL /* @@ -124,8 +138,13 @@ void npcb_free __P((struct natmpcb *, int)); struct natmpcb *npcb_add __P((struct natmpcb *, struct ifnet *, int, int)); /* natm.c */ +#if defined(__NetBSD__) || defined(__OpenBSD__) int natm_usrreq __P((struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct proc *)); +#elif defined(__FreeBSD__) +int natm_usrreq __P((struct socket *, int, struct mbuf *, + struct mbuf *, struct mbuf *)); +#endif int natm0_sysctl __P((int *, u_int, void *, size_t *, void *, size_t)); int natm5_sysctl __P((int *, u_int, void *, size_t *, void *, size_t)); void natmintr __P((void)); diff --git a/sys/netnatm/natm_pcb.c b/sys/netnatm/natm_pcb.c index 3be08a0c920..68c5ebc6776 100644 --- a/sys/netnatm/natm_pcb.c +++ b/sys/netnatm/natm_pcb.c @@ -1,4 +1,4 @@ -/* $OpenBSD: natm_pcb.c,v 1.1 1996/06/30 21:40:13 chuck Exp $ */ +/* $OpenBSD: natm_pcb.c,v 1.2 1996/07/03 17:24:29 chuck Exp $ */ /* * @@ -38,6 +38,8 @@ */ #include <sys/param.h> +#include <sys/systm.h> +#include <sys/queue.h> #include <sys/socket.h> #include <sys/protosw.h> #include <sys/domain.h> diff --git a/sys/netnatm/natm_proto.c b/sys/netnatm/natm_proto.c index 33eaf6b0f97..dbb3fe9eaad 100644 --- a/sys/netnatm/natm_proto.c +++ b/sys/netnatm/natm_proto.c @@ -1,4 +1,4 @@ -/* $OpenBSD: natm_proto.c,v 1.1 1996/06/30 21:40:14 chuck Exp $ */ +/* $OpenBSD: natm_proto.c,v 1.2 1996/07/03 17:24:29 chuck Exp $ */ /* * @@ -37,6 +37,9 @@ */ #include <sys/param.h> +#include <sys/systm.h> +#include <sys/kernel.h> +#include <sys/queue.h> #include <sys/socket.h> #include <sys/protosw.h> #include <sys/domain.h> @@ -58,12 +61,18 @@ struct protosw natmsw[] = { { SOCK_STREAM, &natmdomain, PROTO_NATMAAL5, PR_CONNREQUIRED, 0, 0, 0, 0, natm_usrreq, - 0, 0, 0, 0, natm5_sysctl + 0, 0, 0, 0, +#if defined(__NetBSD__) || defined(__OpenBSD__) + natm5_sysctl +#endif }, { SOCK_STREAM, &natmdomain, PROTO_NATMAAL0, PR_CONNREQUIRED, 0, 0, 0, 0, natm_usrreq, - 0, 0, 0, 0, natm0_sysctl + 0, 0, 0, 0, +#if defined(__NetBSD__) || defined(__OpenBSD__) + natm0_sysctl +#endif }, }; @@ -90,3 +99,7 @@ void natm_init() bzero(&natmintrq, sizeof(natmintrq)); natmintrq.ifq_maxlen = natmqmaxlen; } + +#if defined(__FreeBSD__) +DOMAIN_SET(natm); +#endif |