wifi: Move legacy hal types to a new namespace (1/2)
To prevent typename conflicts between the types in
"hardware_legacy/wifi_hal.h" and the HIDL interface,
Move all the legacy HAL types under a separate namespace (legacy_hal).
This is especially needed for Nan data types. Some of the typenames are
exactly the same in the legacy HAL header file and the HIDL interface.
Related changes,
Remove the use of |HalTool| class. This causes compilation failures
because it tries to include wifi_hal.h as well (but, that is now wrapped
inside a namespace).
Bug: 32242225
Test: Compiles
Change-Id: I937877798b81aea280d1797833745ae97fb02dc9
diff --git a/wifi/1.0/default/wifi_legacy_hal.cpp b/wifi/1.0/default/wifi_legacy_hal.cpp
index cb254c3..a27f131 100644
--- a/wifi/1.0/default/wifi_legacy_hal.cpp
+++ b/wifi/1.0/default/wifi_legacy_hal.cpp
@@ -16,14 +16,19 @@
#include <array>
-#include "wifi_legacy_hal.h"
-
#include <android-base/logging.h>
#include <cutils/properties.h>
-#include <wifi_system/hal_tool.h>
#include <wifi_system/interface_tool.h>
-namespace {
+#include "wifi_legacy_hal.h"
+
+namespace android {
+namespace hardware {
+namespace wifi {
+namespace V1_0 {
+namespace implementation {
+namespace legacy_hal {
+// Constants used in the class.
static constexpr uint32_t kMaxVersionStringLength = 256;
// Legacy HAL functions accept "C" style function pointers, so use global
@@ -52,13 +57,8 @@
on_firmware_memory_dump_internal_callback(buffer, buffer_size);
}
}
-}
+// End of the free-standing "C" style callbacks.
-namespace android {
-namespace hardware {
-namespace wifi {
-namespace V1_0 {
-namespace implementation {
WifiLegacyHal::WifiLegacyHal()
: global_handle_(nullptr),
wlan_interface_handle_(nullptr),
@@ -69,9 +69,11 @@
CHECK(!global_handle_ && !wlan_interface_handle_ &&
!awaiting_event_loop_termination_);
- android::wifi_system::HalTool hal_tool;
android::wifi_system::InterfaceTool if_tool;
- if (!hal_tool.InitFunctionTable(&global_func_table_)) {
+ // TODO: Add back the HAL Tool if we need to. All we need from the HAL tool
+ // for now is this function call which we can directly call.
+ wifi_error status = init_wifi_vendor_hal_func_table(&global_func_table_);
+ if (status != WIFI_SUCCESS) {
LOG(ERROR) << "Failed to initialize legacy hal function table";
return WIFI_ERROR_UNKNOWN;
}
@@ -81,7 +83,7 @@
}
LOG(INFO) << "Starting legacy HAL";
- wifi_error status = global_func_table_.wifi_initialize(&global_handle_);
+ status = global_func_table_.wifi_initialize(&global_handle_);
if (status != WIFI_SUCCESS || !global_handle_) {
LOG(ERROR) << "Failed to retrieve global handle";
return status;
@@ -228,6 +230,8 @@
on_driver_memory_dump_internal_callback = nullptr;
on_firmware_memory_dump_internal_callback = nullptr;
}
+
+} // namespace legacy_hal
} // namespace implementation
} // namespace V1_0
} // namespace wifi
diff --git a/wifi/1.0/default/wifi_legacy_hal.h b/wifi/1.0/default/wifi_legacy_hal.h
index d817184..7957c14 100644
--- a/wifi/1.0/default/wifi_legacy_hal.h
+++ b/wifi/1.0/default/wifi_legacy_hal.h
@@ -21,13 +21,17 @@
#include <thread>
#include <vector>
-#include <hardware_legacy/wifi_hal.h>
-
namespace android {
namespace hardware {
namespace wifi {
namespace V1_0 {
namespace implementation {
+// This is in a separate namespace to prevent typename conflicts between
+// the legacy HAL types and the HIDL interface types.
+namespace legacy_hal {
+// Wrap all the types defined inside the legacy HAL header files inside this
+// namespace.
+#include <hardware_legacy/wifi_hal.h>
/**
* Class that encapsulates all legacy HAL interactions.
@@ -71,6 +75,7 @@
bool awaiting_event_loop_termination_;
};
+} // namespace legacy_hal
} // namespace implementation
} // namespace V1_0
} // namespace wifi