| 3679 | #endif |
| 3680 | |
| 3681 | static int |
| 3682 | igmp_modevent(module_t mod, int type, void *unused __unused) |
| 3683 | { |
| 3684 | |
| 3685 | switch (type) { |
| 3686 | case MOD_LOAD: |
| 3687 | CTR1(KTR_IGMPV3, "%s: initializing", __func__); |
| 3688 | IGMP_LOCK_INIT(); |
| 3689 | m_raopt = igmp_ra_alloc(); |
| 3690 | netisr_register(&igmp_nh); |
| 3691 | break; |
| 3692 | case MOD_UNLOAD: |
| 3693 | CTR1(KTR_IGMPV3, "%s: tearing down", __func__); |
| 3694 | netisr_unregister(&igmp_nh); |
| 3695 | m_free(m_raopt); |
| 3696 | m_raopt = NULL; |
| 3697 | IGMP_LOCK_DESTROY(); |
| 3698 | break; |
| 3699 | default: |
| 3700 | return (EOPNOTSUPP); |
| 3701 | } |
| 3702 | return (0); |
| 3703 | } |
| 3704 | |
| 3705 | static moduledata_t igmp_mod = { |
| 3706 | "igmp", |
nothing calls this directly
no test coverage detected