Introduce common hw features
authorJanusz Dziedzic <janusz.dziedzic@tieto.com>
Thu, 8 Jan 2015 11:48:29 +0000 (12:48 +0100)
committerJouni Malinen <j@w1.fi>
Sat, 10 Jan 2015 15:35:53 +0000 (17:35 +0200)
Introduce wpa_supplicant/hostapd hw features.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
hostapd/Android.mk
hostapd/Makefile
src/common/hw_features_common.c [new file with mode: 0644]
src/common/hw_features_common.h [new file with mode: 0644]
wpa_supplicant/Android.mk
wpa_supplicant/Makefile

index d6d04c5..d5aac6d 100644 (file)
@@ -134,6 +134,7 @@ OBJS += src/utils/ip_addr.c
 
 OBJS += src/common/ieee802_11_common.c
 OBJS += src/common/wpa_common.c
+OBJS += src/common/hw_features_common.c
 
 OBJS += src/eapol_auth/eapol_auth_sm.c
 
index ef1aa6f..bf10435 100644 (file)
@@ -115,6 +115,7 @@ OBJS += ../src/utils/ip_addr.o
 
 OBJS += ../src/common/ieee802_11_common.o
 OBJS += ../src/common/wpa_common.o
+OBJS += ../src/common/hw_features_common.o
 
 OBJS += ../src/eapol_auth/eapol_auth_sm.o
 
diff --git a/src/common/hw_features_common.c b/src/common/hw_features_common.c
new file mode 100644 (file)
index 0000000..be2b837
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * Common hostapd/wpa_supplicant HW features
+ * Copyright (c) 2002-2013, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2015, Qualcomm Atheros, Inc.
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#include "includes.h"
+
+#include "common.h"
+#include "defs.h"
+#include "hw_features_common.h"
+
+
+struct hostapd_channel_data * hw_get_channel_chan(struct hostapd_hw_modes *mode,
+                                                 int chan, int *freq)
+{
+       int i;
+
+       if (freq)
+               *freq = 0;
+
+       if (!mode)
+               return NULL;
+
+       for (i = 0; i < mode->num_channels; i++) {
+               struct hostapd_channel_data *ch = &mode->channels[i];
+               if (ch->chan == chan) {
+                       if (freq)
+                               *freq = ch->freq;
+                       return ch;
+               }
+       }
+
+       return NULL;
+}
+
+
+struct hostapd_channel_data * hw_get_channel_freq(struct hostapd_hw_modes *mode,
+                                                 int freq, int *chan)
+{
+       int i;
+
+       if (chan)
+               *chan = 0;
+
+       if (!mode)
+               return NULL;
+
+       for (i = 0; i < mode->num_channels; i++) {
+               struct hostapd_channel_data *ch = &mode->channels[i];
+               if (ch->freq == freq) {
+                       if (chan)
+                               *chan = ch->chan;
+                       return ch;
+               }
+       }
+
+       return NULL;
+}
+
+
+int hw_get_freq(struct hostapd_hw_modes *mode, int chan)
+{
+       int freq;
+
+       hw_get_channel_chan(mode, chan, &freq);
+
+       return freq;
+}
+
+
+int hw_get_chan(struct hostapd_hw_modes *mode, int freq)
+{
+       int chan;
+
+       hw_get_channel_freq(mode, freq, &chan);
+
+       return chan;
+}
diff --git a/src/common/hw_features_common.h b/src/common/hw_features_common.h
new file mode 100644 (file)
index 0000000..90d5f59
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Common hostapd/wpa_supplicant HW features
+ * Copyright (c) 2002-2013, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2015, Qualcomm Atheros, Inc.
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef HW_FEATURES_COMMON_H
+#define HW_FEATURES_COMMON_H
+
+#include "drivers/driver.h"
+
+struct hostapd_channel_data * hw_get_channel_chan(struct hostapd_hw_modes *mode,
+                                                 int chan, int *freq);
+struct hostapd_channel_data * hw_get_channel_freq(struct hostapd_hw_modes *mode,
+                                                 int freq, int *chan);
+
+int hw_get_freq(struct hostapd_hw_modes *mode, int chan);
+int hw_get_chan(struct hostapd_hw_modes *mode, int freq);
+
+#endif /* HW_FEATURES_COMMON_H */
index 7d7f1b6..7a11311 100644 (file)
@@ -1401,6 +1401,7 @@ L_CFLAGS += -DCONFIG_SME
 endif
 
 OBJS += src/common/ieee802_11_common.c
+OBJS += src/common/hw_features_common.c
 
 ifdef NEED_EAP_COMMON
 OBJS += src/eap_common/eap_common.c
index 438d61e..6b506d3 100644 (file)
@@ -1421,6 +1421,7 @@ CFLAGS += -DCONFIG_SME
 endif
 
 OBJS += ../src/common/ieee802_11_common.o
+OBJS += ../src/common/hw_features_common.o
 
 ifdef NEED_EAP_COMMON
 OBJS += ../src/eap_common/eap_common.o