diff options
author | mdodd <mdodd@FreeBSD.org> | 2002-03-29 11:22:22 +0000 |
---|---|---|
committer | mdodd <mdodd@FreeBSD.org> | 2002-03-29 11:22:22 +0000 |
commit | 84c21f1d8ff69f47f8e2bef01392d5b39cf9ce02 (patch) | |
tree | acee2dafe452f857b35aa52d9223075e812b1e18 /sys/net/if_fddisubr.c | |
parent | fdbdd2f5af8ced636e98ffa82c0898512b04bfba (diff) | |
download | FreeBSD-src-84c21f1d8ff69f47f8e2bef01392d5b39cf9ce02.zip FreeBSD-src-84c21f1d8ff69f47f8e2bef01392d5b39cf9ce02.tar.gz |
- Merge the pdq driver (if_fpa and if_fea) from NetBSD.
Among other things this gets us ifmedia support.
- Update fddi_ifattach() to take an additional argument.
Diffstat (limited to 'sys/net/if_fddisubr.c')
-rw-r--r-- | sys/net/if_fddisubr.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c index 642e625..126cf92 100644 --- a/sys/net/if_fddisubr.c +++ b/sys/net/if_fddisubr.c @@ -94,8 +94,11 @@ extern u_char aarp_org_code[ 3 ]; static u_char fddibroadcastaddr[FDDI_ADDR_LEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; -static int fddi_resolvemulti(struct ifnet *, struct sockaddr **, +static int fddi_resolvemulti(struct ifnet *, struct sockaddr **, struct sockaddr *); +static int fddi_output(struct ifnet *, struct mbuf *, struct sockaddr *, + struct rtentry *); + #define IFP2AC(IFP) ((struct arpcom *)IFP) #define senderr(e) { error = (e); goto bad; } @@ -107,7 +110,7 @@ static int fddi_resolvemulti(struct ifnet *, struct sockaddr **, * packet leaves a multiple of 512 bytes of data in remainder. * Assumes that ifp is actually pointer to arpcom structure. */ -int +static int fddi_output(ifp, m, dst, rt0) struct ifnet *ifp; struct mbuf *m; @@ -519,8 +522,9 @@ dropanyway: * Perform common duties while attaching to interface list */ void -fddi_ifattach(ifp) +fddi_ifattach(ifp, bpf) struct ifnet *ifp; + int bpf; { struct ifaddr *ifa; struct sockaddr_dl *sdl; @@ -551,6 +555,9 @@ fddi_ifattach(ifp) sdl->sdl_alen = ifp->if_addrlen; bcopy(IFP2AC(ifp)->ac_enaddr, LLADDR(sdl), ifp->if_addrlen); + if (bpf) + bpfattach(ifp, DLT_FDDI, FDDI_HDR_LEN); + return; } |