diff options
author | harti <harti@FreeBSD.org> | 2003-04-29 08:07:44 +0000 |
---|---|---|
committer | harti <harti@FreeBSD.org> | 2003-04-29 08:07:44 +0000 |
commit | 434086177ff1782e5033d3ef3944a029b263f85b (patch) | |
tree | 631feff583589aa3eebd1ddb28044891f36cc315 /sys/net | |
parent | db92d84028d043a57be76ff4d516386f5736053e (diff) | |
download | FreeBSD-src-434086177ff1782e5033d3ef3944a029b263f85b.zip FreeBSD-src-434086177ff1782e5033d3ef3944a029b263f85b.tar.gz |
Add module data and version to the atm_subr and reference this info from the
(currently) only consumer (en).
Add a sysctl node hw.atm where the atm drivers will hook on their hardware
sysctl sub-trees.
Make atm_ifattach call if_attach and remove the corresponding call to if_attach
from en. Create atm_ifdetach and use that in en.
While the last change actually changes the interface this is not a problem in
practice because the only other consumer of this API is an older LANAI driver
on the net, that is not ready for current anyway.
Reviewed by: -atm
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_atm.h | 1 | ||||
-rw-r--r-- | sys/net/if_atmsubr.c | 26 |
2 files changed, 26 insertions, 1 deletions
diff --git a/sys/net/if_atm.h b/sys/net/if_atm.h index f09f7a6..b8a34a8 100644 --- a/sys/net/if_atm.h +++ b/sys/net/if_atm.h @@ -99,6 +99,7 @@ struct atmllc { #ifdef _KERNEL void atm_ifattach(struct ifnet *); +void atm_ifdetach(struct ifnet *); void atm_input(struct ifnet *, struct atm_pseudohdr *, struct mbuf *, void *); int atm_output(struct ifnet *, struct mbuf *, struct sockaddr *, diff --git a/sys/net/if_atmsubr.c b/sys/net/if_atmsubr.c index 7fbf1e8..ac1c8da 100644 --- a/sys/net/if_atmsubr.c +++ b/sys/net/if_atmsubr.c @@ -45,11 +45,14 @@ #include <sys/param.h> #include <sys/systm.h> +#include <sys/kernel.h> +#include <sys/module.h> #include <sys/mac.h> #include <sys/mbuf.h> #include <sys/socket.h> #include <sys/sockio.h> #include <sys/errno.h> +#include <sys/sysctl.h> #include <net/if.h> #include <net/netisr.h> @@ -68,6 +71,8 @@ #include <netnatm/natm.h> #endif +SYSCTL_NODE(_hw, OID_AUTO, atm, CTLFLAG_RW, 0, "ATM hardware"); + #ifndef ETHERTYPE_IPV6 #define ETHERTYPE_IPV6 0x86dd #endif @@ -283,7 +288,7 @@ atm_input(ifp, ah, m, rxhand) } /* - * Perform common duties while attaching to interface list + * Perform common duties while attaching to interface list. */ void atm_ifattach(ifp) @@ -295,6 +300,7 @@ atm_ifattach(ifp) ifp->if_type = IFT_ATM; ifp->if_addrlen = 0; ifp->if_hdrlen = 0; + if_attach(ifp); ifp->if_mtu = ATMMTU; ifp->if_output = atm_output; #if 0 @@ -321,3 +327,21 @@ atm_ifattach(ifp) } } + +/* + * Common stuff for detaching an ATM interface + */ +void +atm_ifdetach(struct ifnet *ifp) +{ + if_detach(ifp); +} + +static moduledata_t atm_mod = { + "atm", + NULL, + 0 +}; + +DECLARE_MODULE(atm, atm_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); +MODULE_VERSION(atm, 1); |