2 * iwinfo - Wireless Information Library - NL80211 Headers
4 * Copyright (C) 2010 Jo-Philipp Wich <xm@subsignal.org>
6 * The iwinfo library is free software: you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License version 2
8 * as published by the Free Software Foundation.
10 * The iwinfo library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 * See the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with the iwinfo library. If not, see http://www.gnu.org/licenses/.
19 #ifndef __IWINFO_NL80211_H_
20 #define __IWINFO_NL80211_H_
29 #include <netlink/netlink.h>
30 #include <netlink/genl/genl.h>
31 #include <netlink/genl/family.h>
32 #include <netlink/genl/ctrl.h>
35 #include "iwinfo/utils.h"
36 #include "iwinfo/api/nl80211.h"
38 struct nl80211_state
{
39 struct nl_sock
*nl_sock
;
40 struct nl_cache
*nl_cache
;
41 struct genl_family
*nl80211
;
44 struct nl80211_msg_conveyor
{
49 struct nl80211_rssi_rate
{
54 struct nl80211_array_buf
{
59 int nl80211_probe(const char *ifname
);
60 int nl80211_get_mode(const char *ifname
, char *buf
);
61 int nl80211_get_ssid(const char *ifname
, char *buf
);
62 int nl80211_get_bssid(const char *ifname
, char *buf
);
63 int nl80211_get_country(const char *ifname
, char *buf
);
64 int nl80211_get_channel(const char *ifname
, int *buf
);
65 int nl80211_get_frequency(const char *ifname
, int *buf
);
66 int nl80211_get_txpower(const char *ifname
, int *buf
);
67 int nl80211_get_bitrate(const char *ifname
, int *buf
);
68 int nl80211_get_signal(const char *ifname
, int *buf
);
69 int nl80211_get_noise(const char *ifname
, int *buf
);
70 int nl80211_get_quality(const char *ifname
, int *buf
);
71 int nl80211_get_quality_max(const char *ifname
, int *buf
);
72 int nl80211_get_encryption(const char *ifname
, char *buf
);
73 int nl80211_get_assoclist(const char *ifname
, char *buf
, int *len
);
74 int nl80211_get_txpwrlist(const char *ifname
, char *buf
, int *len
);
75 int nl80211_get_scanlist(const char *ifname
, char *buf
, int *len
);
76 int nl80211_get_freqlist(const char *ifname
, char *buf
, int *len
);
77 int nl80211_get_countrylist(const char *ifname
, char *buf
, int *len
);
78 int nl80211_get_hwmodelist(const char *ifname
, int *buf
);
79 int nl80211_get_mbssid_support(const char *ifname
, int *buf
);
80 void nl80211_close(void);
82 static const struct iwinfo_ops nl80211_ops
= {
83 .channel
= nl80211_get_channel
,
84 .frequency
= nl80211_get_frequency
,
85 .txpower
= nl80211_get_txpower
,
86 .bitrate
= nl80211_get_bitrate
,
87 .signal
= nl80211_get_signal
,
88 .noise
= nl80211_get_noise
,
89 .quality
= nl80211_get_quality
,
90 .quality_max
= nl80211_get_quality_max
,
91 .mbssid_support
= nl80211_get_mbssid_support
,
92 .hwmodelist
= nl80211_get_hwmodelist
,
93 .mode
= nl80211_get_mode
,
94 .ssid
= nl80211_get_ssid
,
95 .bssid
= nl80211_get_bssid
,
96 .country
= nl80211_get_country
,
97 .encryption
= nl80211_get_encryption
,
98 .assoclist
= nl80211_get_assoclist
,
99 .txpwrlist
= nl80211_get_txpwrlist
,
100 .scanlist
= nl80211_get_scanlist
,
101 .freqlist
= nl80211_get_freqlist
,
102 .countrylist
= nl80211_get_countrylist
,
103 .close
= nl80211_close