1*ef8d499eSDavid van Moolenbroek #ifndef MINIX_NET_LWIP_MCAST_H 2*ef8d499eSDavid van Moolenbroek #define MINIX_NET_LWIP_MCAST_H 3*ef8d499eSDavid van Moolenbroek 4*ef8d499eSDavid van Moolenbroek struct mcast_member; 5*ef8d499eSDavid van Moolenbroek 6*ef8d499eSDavid van Moolenbroek struct mcast_head { 7*ef8d499eSDavid van Moolenbroek LIST_HEAD(, mcast_member) mh_list; 8*ef8d499eSDavid van Moolenbroek }; 9*ef8d499eSDavid van Moolenbroek 10*ef8d499eSDavid van Moolenbroek #define mcast_isempty(mcast_head) (LIST_EMPTY(&(mcast_head)->mh_list)) 11*ef8d499eSDavid van Moolenbroek 12*ef8d499eSDavid van Moolenbroek void mcast_init(void); 13*ef8d499eSDavid van Moolenbroek void mcast_reset(struct mcast_head * mcast_head); 14*ef8d499eSDavid van Moolenbroek int mcast_join(struct mcast_head * mcast_head, const ip_addr_t * group, 15*ef8d499eSDavid van Moolenbroek struct ifdev * ifdev); 16*ef8d499eSDavid van Moolenbroek int mcast_leave(struct mcast_head * mcast_head, const ip_addr_t * group, 17*ef8d499eSDavid van Moolenbroek struct ifdev * ifdev); 18*ef8d499eSDavid van Moolenbroek void mcast_leave_all(struct mcast_head * mcast_head); 19*ef8d499eSDavid van Moolenbroek void mcast_clear(struct ifdev * ifdev); 20*ef8d499eSDavid van Moolenbroek 21*ef8d499eSDavid van Moolenbroek #endif /* !MINIX_NET_LWIP_MCAST_H */ 22