xref: /dragonfly/sys/net/if_poll.h (revision 548a3528)
1 #ifndef _NET_IF_POLL_H_
2 #define _NET_IF_POLL_H_
3 
4 #ifdef _KERNEL
5 
6 struct sysctl_ctx_list;
7 struct sysctl_oid;
8 struct lwkt_serialize;
9 struct ifnet;
10 
11 typedef	void	(*ifpoll_iofn_t)(struct ifnet *, void *, int);
12 typedef	void	(*ifpoll_stfn_t)(struct ifnet *);
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[MAXCPU];
29 	struct ifpoll_io	ifpi_tx[MAXCPU];
30 };
31 
32 struct ifpoll_compat {
33 	int			ifpc_stcount;
34 	int			ifpc_stfrac;
35 
36 	int			ifpc_cpuid;
37 	struct lwkt_serialize	*ifpc_serializer;
38 };
39 
40 void	ifpoll_compat_setup(struct ifpoll_compat *, struct sysctl_ctx_list *,
41 	    struct sysctl_oid *, int, struct lwkt_serialize *);
42 
43 #endif	/* _KERNEL */
44 
45 #endif	/* !_NET_IF_POLL_H_ */
46