xref: /minix3/minix/net/lwip/mcast.h (revision ef8d499e2d2af900e9b2ab297171d7b088652482)
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