xref: /dragonfly/sys/net/if_poll.h (revision 73e0051e)
1 #ifndef _NET_IF_POLL_H_
2 #define _NET_IF_POLL_H_
3 
4 #ifdef _KERNEL
5 
6 struct lwkt_serialize;
7 struct ifnet;
8 
9 #define IFPOLL_CTX_MAX		32
10 
11 typedef	void	(*ifpoll_iofn_t)(struct ifnet *, void *, int);
12 typedef	void	(*ifpoll_stfn_t)(struct ifnet *, int);
13 
14 struct ifpoll_status {
15 	struct lwkt_serialize	*serializer;
16 	ifpoll_stfn_t		status_func;
17 };
18 
19 struct ifpoll_io {
20 	struct lwkt_serialize	*serializer;
21 	void			*arg;
22 	ifpoll_iofn_t		poll_func;
23 };
24 
25 struct ifpoll_info {
26 	struct ifnet		*ifpi_ifp;
27 	struct ifpoll_status	ifpi_status;
28 	struct ifpoll_io	ifpi_rx[IFPOLL_CTX_MAX];
29 	struct ifpoll_io	ifpi_tx[IFPOLL_CTX_MAX];
30 };
31 
32 #endif	/* _KERNEL */
33 
34 #endif	/* !_NET_IF_POLL_H_ */
35