#define IWINFO_80211_AC (1 << 4)
#define IWINFO_80211_AD (1 << 5)
#define IWINFO_80211_AX (1 << 6)
-
-#define IWINFO_CIPHER_NONE (1 << 0)
-#define IWINFO_CIPHER_WEP40 (1 << 1)
-#define IWINFO_CIPHER_TKIP (1 << 2)
-#define IWINFO_CIPHER_WRAP (1 << 3)
-#define IWINFO_CIPHER_CCMP (1 << 4)
-#define IWINFO_CIPHER_WEP104 (1 << 5)
-#define IWINFO_CIPHER_AESOCB (1 << 6)
-#define IWINFO_CIPHER_CKIP (1 << 7)
-#define IWINFO_CIPHER_GCMP (1 << 8)
-#define IWINFO_CIPHER_COUNT 9
+#define IWINFO_80211_COUNT 7
+
+#define IWINFO_BAND_24 (1 << 0)
+#define IWINFO_BAND_5 (1 << 1)
+#define IWINFO_BAND_6 (1 << 2)
+#define IWINFO_BAND_60 (1 << 3)
+#define IWINFO_BAND_COUNT 4
+
+#define IWINFO_CIPHER_NONE (1 << 0)
+#define IWINFO_CIPHER_WEP40 (1 << 1)
+#define IWINFO_CIPHER_TKIP (1 << 2)
+#define IWINFO_CIPHER_WRAP (1 << 3)
+#define IWINFO_CIPHER_CCMP (1 << 4)
+#define IWINFO_CIPHER_WEP104 (1 << 5)
+#define IWINFO_CIPHER_AESOCB (1 << 6)
+#define IWINFO_CIPHER_CKIP (1 << 7)
+#define IWINFO_CIPHER_GCMP (1 << 8)
+#define IWINFO_CIPHER_CCMP256 (1 << 9)
+#define IWINFO_CIPHER_GCMP256 (1 << 10)
+#define IWINFO_CIPHER_COUNT 11
#define IWINFO_KMGMT_NONE (1 << 0)
#define IWINFO_KMGMT_8021x (1 << 1)
#define IWINFO_FREQ_NO_HT40MINUS (1 << 3)
#define IWINFO_FREQ_NO_80MHZ (1 << 4)
#define IWINFO_FREQ_NO_160MHZ (1 << 5)
-#define IWINFO_FREQ_NO_2160MHZ (1 << 6)
+#define IWINFO_FREQ_NO_HE (1 << 6)
-extern const char *IWINFO_CIPHER_NAMES[IWINFO_CIPHER_COUNT];
-extern const char *IWINFO_KMGMT_NAMES[IWINFO_KMGMT_COUNT];
-extern const char *IWINFO_AUTH_NAMES[IWINFO_AUTH_COUNT];
+extern const char * const IWINFO_80211_NAMES[IWINFO_80211_COUNT];
+extern const char * const IWINFO_BAND_NAMES[IWINFO_BAND_COUNT];
+extern const char * const IWINFO_CIPHER_NAMES[IWINFO_CIPHER_COUNT];
+extern const char * const IWINFO_KMGMT_NAMES[IWINFO_KMGMT_COUNT];
+extern const char * const IWINFO_AUTH_NAMES[IWINFO_AUTH_COUNT];
enum iwinfo_opmode {
IWINFO_OPMODE_MESHPOINT = 7,
IWINFO_OPMODE_P2P_CLIENT = 8,
IWINFO_OPMODE_P2P_GO = 9,
+
+ IWINFO_OPMODE_COUNT = 10,
};
-extern const char *IWINFO_OPMODE_NAMES[];
+extern const char * const IWINFO_OPMODE_NAMES[IWINFO_OPMODE_COUNT];
enum iwinfo_htmode {
IWINFO_HTMODE_COUNT = 13
};
-extern const char *IWINFO_HTMODE_NAMES[IWINFO_HTMODE_COUNT];
+extern const char * const IWINFO_HTMODE_NAMES[IWINFO_HTMODE_COUNT];
struct iwinfo_rate_entry {
uint8_t center_chan_2;
};
-static const char *ht_secondary_offset[4] = {
- "no secondary",
- "above",
- "[reserved!]",
- "below",
-};
-
-
-static uint16_t ht_chan_width[2] = {
- 20, /* 20 MHz */
- 2040, /* 40 MHz or higher (refer to vht if supported) */
-};
-
-static uint16_t vht_chan_width[] = {
- [0] = 40, /* 40 MHz or lower (refer to ht to a more precise width) */
- [1] = 80, /* 80 MHz */
- [3] = 8080, /* 80+80 MHz */
- [2] = 160, /* 160 MHz */
-};
+extern const char * const ht_secondary_offset[4];
+/* 0 = 20 MHz
+ 1 = 40 MHz or higher (refer to vht if supported) */
+extern const uint16_t ht_chan_width[2];
+/* 0 = 40 MHz or lower (refer to ht to a more precise width)
+ 1 = 80 MHz
+ 2 = 160 MHz
+ 3 = 80+80 MHz */
+extern const uint16_t vht_chan_width[4];
struct iwinfo_scanlist_entry {
uint8_t mac[6];
struct iwinfo_iso3166_label {
uint16_t iso3166;
- char name[28];
+ const char name[28];
};
struct iwinfo_hardware_id {
extern const struct iwinfo_iso3166_label IWINFO_ISO3166_NAMES[];
-#define IWINFO_HARDWARE_FILE "/usr/share/libiwinfo/hardware.txt"
+#define IWINFO_HARDWARE_FILE "/usr/share/libiwinfo/devices.txt"
struct iwinfo_ops {
int (*countrylist)(const char *, char *, int *);
int (*survey)(const char *, char *, int *);
int (*lookup_phy)(const char *, char *);
+ int (*phy_path)(const char *phyname, const char **path);
void (*close)(void);
};