xref: /dflybsd-src/contrib/wpa_supplicant/src/drivers/netlink.h (revision bcf9aa4feb4a2fdf8ceac276d271a57f4b27e13d)
1*3ff40c12SJohn Marino /*
2*3ff40c12SJohn Marino  * Netlink helper functions for driver wrappers
3*3ff40c12SJohn Marino  * Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi>
4*3ff40c12SJohn Marino  *
5*3ff40c12SJohn Marino  * This software may be distributed under the terms of the BSD license.
6*3ff40c12SJohn Marino  * See README for more details.
7*3ff40c12SJohn Marino  */
8*3ff40c12SJohn Marino 
9*3ff40c12SJohn Marino #ifndef NETLINK_H
10*3ff40c12SJohn Marino #define NETLINK_H
11*3ff40c12SJohn Marino 
12*3ff40c12SJohn Marino struct netlink_data;
13*3ff40c12SJohn Marino struct ifinfomsg;
14*3ff40c12SJohn Marino 
15*3ff40c12SJohn Marino struct netlink_config {
16*3ff40c12SJohn Marino 	void *ctx;
17*3ff40c12SJohn Marino 	void (*newlink_cb)(void *ctx, struct ifinfomsg *ifi, u8 *buf,
18*3ff40c12SJohn Marino 			   size_t len);
19*3ff40c12SJohn Marino 	void (*dellink_cb)(void *ctx, struct ifinfomsg *ifi, u8 *buf,
20*3ff40c12SJohn Marino 			   size_t len);
21*3ff40c12SJohn Marino };
22*3ff40c12SJohn Marino 
23*3ff40c12SJohn Marino struct netlink_data * netlink_init(struct netlink_config *cfg);
24*3ff40c12SJohn Marino void netlink_deinit(struct netlink_data *netlink);
25*3ff40c12SJohn Marino int netlink_send_oper_ifla(struct netlink_data *netlink, int ifindex,
26*3ff40c12SJohn Marino 			   int linkmode, int operstate);
27*3ff40c12SJohn Marino 
28*3ff40c12SJohn Marino #endif /* NETLINK_H */
29