summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authormdodd <mdodd@FreeBSD.org>2002-03-29 09:37:56 +0000
committermdodd <mdodd@FreeBSD.org>2002-03-29 09:37:56 +0000
commitd6c218d60ac8158e4ee5977f2354a9571c44d831 (patch)
treed335e864f0249e4b68ca873833f412567c2ec973 /sys/net
parentb7241ccef04c3755f12b4020557c0e1c8420c7bf (diff)
downloadFreeBSD-src-d6c218d60ac8158e4ee5977f2354a9571c44d831.zip
FreeBSD-src-d6c218d60ac8158e4ee5977f2354a9571c44d831.tar.gz
- Simplify first arg of nd6_storelladdr().
- Use struct fddi_header where appropriate. - Use bcopy() rather than memcpy(). - Use FDDI_ADDR_LEN macro instead of ETHER_ADDR_LEN macro. - Add loadable module support.
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/if_fddisubr.c44
1 files changed, 29 insertions, 15 deletions
diff --git a/sys/net/if_fddisubr.c b/sys/net/if_fddisubr.c
index 1590450..05817b2 100644
--- a/sys/net/if_fddisubr.c
+++ b/sys/net/if_fddisubr.c
@@ -43,16 +43,20 @@
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/malloc.h>
#include <sys/mbuf.h>
+#include <sys/module.h>
#include <sys/socket.h>
-#include <sys/malloc.h>
+#include <sys/sockio.h>
#include <net/if.h>
-#include <net/netisr.h>
-#include <net/route.h>
#include <net/if_llc.h>
#include <net/if_dl.h>
#include <net/if_types.h>
+#include <net/netisr.h>
+#include <net/route.h>
+#include <net/bpf.h>
#include <net/fddi.h>
#if defined(INET) || defined(INET6)
@@ -151,7 +155,7 @@ fddi_output(ifp, m, dst, rt0)
#endif
#ifdef INET6
case AF_INET6:
- if (!nd6_storelladdr(&ac->ac_if, rt, m, dst, (u_char *)edst)) {
+ if (!nd6_storelladdr(ifp, rt, m, dst, (u_char *)edst)) {
/* Something bad happened */
return (0);
}
@@ -209,10 +213,10 @@ fddi_output(ifp, m, dst, rt0)
case pseudo_AF_HDRCMPLT:
{
- struct ether_header *eh;
+ struct fddi_header *fh;
hdrcmplt = 1;
- eh = (struct ether_header *)dst->sa_data;
- (void)memcpy((caddr_t)esrc, (caddr_t)eh->ether_shost, FDDI_ADDR_LEN);
+ fh = (struct fddi_header *)dst->sa_data;
+ bcopy((caddr_t)fh->fddi_shost, (caddr_t)esrc, FDDI_ADDR_LEN);
/* FALLTHROUGH */
}
@@ -221,7 +225,7 @@ fddi_output(ifp, m, dst, rt0)
struct ether_header *eh;
loop_copy = -1;
eh = (struct ether_header *)dst->sa_data;
- (void)memcpy((caddr_t)edst, (caddr_t)eh->ether_dhost, FDDI_ADDR_LEN);
+ bcopy((caddr_t)eh->ether_dhost, (caddr_t)edst, FDDI_ADDR_LEN);
if (*edst & 1)
m->m_flags |= (M_BCAST|M_MCAST);
type = eh->ether_type;
@@ -276,7 +280,7 @@ fddi_output(ifp, m, dst, rt0)
l->llc_control = LLC_UI;
l->llc_dsap = l->llc_ssap = LLC_SNAP_LSAP;
l->llc_snap.org_code[0] = l->llc_snap.org_code[1] = l->llc_snap.org_code[2] = 0;
- (void)memcpy((caddr_t) &l->llc_snap.ether_type, (caddr_t) &type,
+ bcopy((caddr_t)&type, (caddr_t)&l->llc_snap.ether_type,
sizeof(u_int16_t));
}
@@ -289,13 +293,12 @@ fddi_output(ifp, m, dst, rt0)
senderr(ENOBUFS);
fh = mtod(m, struct fddi_header *);
fh->fddi_fc = FDDIFC_LLC_ASYNC|FDDIFC_LLC_PRIO4;
- (void)memcpy((caddr_t)fh->fddi_dhost, (caddr_t)edst, FDDI_ADDR_LEN);
+ bcopy((caddr_t)edst, (caddr_t)fh->fddi_dhost, FDDI_ADDR_LEN);
queue_it:
if (hdrcmplt)
- (void)memcpy((caddr_t)fh->fddi_shost, (caddr_t)esrc,
- FDDI_ADDR_LEN);
+ bcopy((caddr_t)esrc, (caddr_t)fh->fddi_shost, FDDI_ADDR_LEN);
else
- (void)memcpy((caddr_t)fh->fddi_shost, (caddr_t)ac->ac_enaddr,
+ bcopy((caddr_t)ac->ac_enaddr, (caddr_t)fh->fddi_shost,
FDDI_ADDR_LEN);
/*
* If a simplex interface, and the packet is being sent to our
@@ -539,7 +542,7 @@ fddi_resolvemulti(ifp, llsa, sa)
sdl->sdl_index = ifp->if_index;
sdl->sdl_type = IFT_FDDI;
sdl->sdl_nlen = 0;
- sdl->sdl_alen = ETHER_ADDR_LEN; /* XXX */
+ sdl->sdl_alen = FDDI_ADDR_LEN;
sdl->sdl_slen = 0;
e_addr = LLADDR(sdl);
ETHER_MAP_IP_MULTICAST(&sin->sin_addr, e_addr);
@@ -568,7 +571,7 @@ fddi_resolvemulti(ifp, llsa, sa)
sdl->sdl_index = ifp->if_index;
sdl->sdl_type = IFT_FDDI;
sdl->sdl_nlen = 0;
- sdl->sdl_alen = ETHER_ADDR_LEN; /* XXX */
+ sdl->sdl_alen = FDDI_ADDR_LEN;
sdl->sdl_slen = 0;
e_addr = LLADDR(sdl);
ETHER_MAP_IPV6_MULTICAST(&sin6->sin6_addr, e_addr);
@@ -583,4 +586,15 @@ fddi_resolvemulti(ifp, llsa, sa)
*/
return (EAFNOSUPPORT);
}
+
+ return (0);
}
+
+static moduledata_t fddi_mod = {
+ "fddi", /* module name */
+ NULL, /* event handler */
+ 0 /* extra data */
+};
+
+DECLARE_MODULE(fddi, fddi_mod, SI_SUB_PSEUDO, SI_ORDER_ANY);
+MODULE_VERSION(fddi, 1);
OpenPOWER on IntegriCloud