mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Merge "Uprev Wifi HAL to 1.3"
This commit is contained in:
committed by
Android (Google) Code Review
commit
165ce94032
@@ -437,7 +437,7 @@
|
||||
</hal>
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.hardware.wifi</name>
|
||||
<version>1.0-2</version>
|
||||
<version>1.0-3</version>
|
||||
<interface>
|
||||
<name>IWifi</name>
|
||||
<instance>default</instance>
|
||||
|
||||
20
wifi/1.3/Android.bp
Normal file
20
wifi/1.3/Android.bp
Normal file
@@ -0,0 +1,20 @@
|
||||
// This file is autogenerated by hidl-gen -Landroidbp.
|
||||
|
||||
hidl_interface {
|
||||
name: "android.hardware.wifi@1.3",
|
||||
root: "android.hardware",
|
||||
vndk: {
|
||||
enabled: true,
|
||||
},
|
||||
srcs: [
|
||||
"IWifi.hal",
|
||||
],
|
||||
interfaces: [
|
||||
"android.hardware.wifi@1.0",
|
||||
"android.hardware.wifi@1.1",
|
||||
"android.hardware.wifi@1.2",
|
||||
"android.hidl.base@1.0",
|
||||
],
|
||||
gen_java: true,
|
||||
}
|
||||
|
||||
28
wifi/1.3/IWifi.hal
Normal file
28
wifi/1.3/IWifi.hal
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.hardware.wifi@1.3;
|
||||
|
||||
import @1.2::IWifi;
|
||||
|
||||
/**
|
||||
* This is the root of the HAL module and is the interface returned when
|
||||
* loading an implementation of the Wi-Fi HAL. There must be at most one
|
||||
* module loaded in the system.
|
||||
* IWifi.getChip() must return @1.2::IWifiChip
|
||||
*/
|
||||
interface IWifi extends @1.2::IWifi {
|
||||
};
|
||||
@@ -58,7 +58,8 @@ LOCAL_SHARED_LIBRARIES := \
|
||||
libwifi-system-iface \
|
||||
android.hardware.wifi@1.0 \
|
||||
android.hardware.wifi@1.1 \
|
||||
android.hardware.wifi@1.2
|
||||
android.hardware.wifi@1.2 \
|
||||
android.hardware.wifi@1.3
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
@@ -84,7 +85,8 @@ LOCAL_SHARED_LIBRARIES := \
|
||||
libwifi-system-iface \
|
||||
android.hardware.wifi@1.0 \
|
||||
android.hardware.wifi@1.1 \
|
||||
android.hardware.wifi@1.2
|
||||
android.hardware.wifi@1.2 \
|
||||
android.hardware.wifi@1.3
|
||||
LOCAL_STATIC_LIBRARIES := \
|
||||
android.hardware.wifi@1.0-service-lib
|
||||
LOCAL_INIT_RC := android.hardware.wifi@1.0-service.rc
|
||||
@@ -120,5 +122,6 @@ LOCAL_SHARED_LIBRARIES := \
|
||||
libwifi-system-iface \
|
||||
android.hardware.wifi@1.0 \
|
||||
android.hardware.wifi@1.1 \
|
||||
android.hardware.wifi@1.2
|
||||
android.hardware.wifi@1.2 \
|
||||
android.hardware.wifi@1.3
|
||||
include $(BUILD_NATIVE_TEST)
|
||||
@@ -52,7 +52,7 @@ class HidlDeathHandler : public android::hardware::hidl_death_recipient {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace hidl_callback_util {
|
||||
template <typename CallbackType>
|
||||
@@ -117,7 +117,7 @@ class HidlCallbackHandler {
|
||||
|
||||
} // namespace hidl_callback_util
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -23,7 +23,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace hidl_return_util {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
@@ -113,7 +113,7 @@ Return<void> validateAndCall(
|
||||
|
||||
} // namespace hidl_return_util
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -22,7 +22,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace hidl_struct_util {
|
||||
|
||||
@@ -69,9 +69,9 @@ convertLegacyLoggerFeatureToHidlStaIfaceCapability(uint32_t feature) {
|
||||
return {};
|
||||
}
|
||||
|
||||
IWifiChip::ChipCapabilityMask convertLegacyFeatureToHidlChipCapability(
|
||||
V1_2::IWifiChip::ChipCapabilityMask convertLegacyFeatureToHidlChipCapability(
|
||||
uint32_t feature) {
|
||||
using HidlChipCaps = IWifiChip::ChipCapabilityMask;
|
||||
using HidlChipCaps = V1_2::IWifiChip::ChipCapabilityMask;
|
||||
switch (feature) {
|
||||
case WIFI_FEATURE_SET_TX_POWER_LIMIT:
|
||||
return HidlChipCaps::SET_TX_POWER_LIMIT;
|
||||
@@ -139,9 +139,9 @@ bool convertLegacyFeaturesToHidlChipCapabilities(
|
||||
convertLegacyLoggerFeatureToHidlChipCapability(feature);
|
||||
}
|
||||
}
|
||||
for (const auto feature : {WIFI_FEATURE_SET_TX_POWER_LIMIT,
|
||||
WIFI_FEATURE_USE_BODY_HEAD_SAR,
|
||||
WIFI_FEATURE_D2D_RTT, WIFI_FEATURE_D2AP_RTT}) {
|
||||
for (const auto feature :
|
||||
{WIFI_FEATURE_SET_TX_POWER_LIMIT, WIFI_FEATURE_USE_BODY_HEAD_SAR,
|
||||
WIFI_FEATURE_D2D_RTT, WIFI_FEATURE_D2AP_RTT}) {
|
||||
if (feature & legacy_feature_set) {
|
||||
*hidl_caps |= convertLegacyFeatureToHidlChipCapability(feature);
|
||||
}
|
||||
@@ -267,26 +267,26 @@ legacy_hal::wifi_power_scenario convertHidlTxPowerScenarioToLegacy(
|
||||
V1_1::IWifiChip::TxPowerScenario hidl_scenario) {
|
||||
switch (hidl_scenario) {
|
||||
// This is the only supported scenario for V1_1
|
||||
case V1_1::IWifiChip::TxPowerScenario::VOICE_CALL:
|
||||
case V1_1::IWifiChip::TxPowerScenario::VOICE_CALL:
|
||||
return legacy_hal::WIFI_POWER_SCENARIO_VOICE_CALL;
|
||||
};
|
||||
CHECK(false);
|
||||
}
|
||||
|
||||
legacy_hal::wifi_power_scenario convertHidlTxPowerScenarioToLegacy_1_2(
|
||||
IWifiChip::TxPowerScenario hidl_scenario) {
|
||||
V1_2::IWifiChip::TxPowerScenario hidl_scenario) {
|
||||
switch (hidl_scenario) {
|
||||
// This is the only supported scenario for V1_1
|
||||
case IWifiChip::TxPowerScenario::VOICE_CALL:
|
||||
case V1_2::IWifiChip::TxPowerScenario::VOICE_CALL:
|
||||
return legacy_hal::WIFI_POWER_SCENARIO_VOICE_CALL;
|
||||
// Those are the supported scenarios for V1_2
|
||||
case IWifiChip::TxPowerScenario::ON_HEAD_CELL_OFF:
|
||||
case V1_2::IWifiChip::TxPowerScenario::ON_HEAD_CELL_OFF:
|
||||
return legacy_hal::WIFI_POWER_SCENARIO_ON_HEAD_CELL_OFF;
|
||||
case IWifiChip::TxPowerScenario::ON_HEAD_CELL_ON:
|
||||
case V1_2::IWifiChip::TxPowerScenario::ON_HEAD_CELL_ON:
|
||||
return legacy_hal::WIFI_POWER_SCENARIO_ON_HEAD_CELL_ON;
|
||||
case IWifiChip::TxPowerScenario::ON_BODY_CELL_OFF:
|
||||
case V1_2::IWifiChip::TxPowerScenario::ON_BODY_CELL_OFF:
|
||||
return legacy_hal::WIFI_POWER_SCENARIO_ON_BODY_CELL_OFF;
|
||||
case IWifiChip::TxPowerScenario::ON_BODY_CELL_ON:
|
||||
case V1_2::IWifiChip::TxPowerScenario::ON_BODY_CELL_ON:
|
||||
return legacy_hal::WIFI_POWER_SCENARIO_ON_BODY_CELL_ON;
|
||||
};
|
||||
CHECK(false);
|
||||
@@ -294,7 +294,7 @@ legacy_hal::wifi_power_scenario convertHidlTxPowerScenarioToLegacy_1_2(
|
||||
|
||||
bool convertLegacyWifiMacInfoToHidl(
|
||||
const legacy_hal::WifiMacInfo& legacy_mac_info,
|
||||
IWifiChipEventCallback::RadioModeInfo* hidl_radio_mode_info) {
|
||||
V1_2::IWifiChipEventCallback::RadioModeInfo* hidl_radio_mode_info) {
|
||||
if (!hidl_radio_mode_info) {
|
||||
return false;
|
||||
}
|
||||
@@ -313,9 +313,9 @@ bool convertLegacyWifiMacInfoToHidl(
|
||||
} else {
|
||||
hidl_radio_mode_info->bandInfo = WifiBand::BAND_UNSPECIFIED;
|
||||
}
|
||||
std::vector<IWifiChipEventCallback::IfaceInfo> iface_info_vec;
|
||||
std::vector<V1_2::IWifiChipEventCallback::IfaceInfo> iface_info_vec;
|
||||
for (const auto& legacy_iface_info : legacy_mac_info.iface_infos) {
|
||||
IWifiChipEventCallback::IfaceInfo iface_info;
|
||||
V1_2::IWifiChipEventCallback::IfaceInfo iface_info;
|
||||
iface_info.name = legacy_iface_info.name;
|
||||
iface_info.channel = legacy_iface_info.channel;
|
||||
iface_info_vec.push_back(iface_info);
|
||||
@@ -326,14 +326,15 @@ bool convertLegacyWifiMacInfoToHidl(
|
||||
|
||||
bool convertLegacyWifiMacInfosToHidl(
|
||||
const std::vector<legacy_hal::WifiMacInfo>& legacy_mac_infos,
|
||||
std::vector<IWifiChipEventCallback::RadioModeInfo>* hidl_radio_mode_infos) {
|
||||
std::vector<V1_2::IWifiChipEventCallback::RadioModeInfo>*
|
||||
hidl_radio_mode_infos) {
|
||||
if (!hidl_radio_mode_infos) {
|
||||
return false;
|
||||
}
|
||||
*hidl_radio_mode_infos = {};
|
||||
|
||||
for (const auto& legacy_mac_info : legacy_mac_infos) {
|
||||
IWifiChipEventCallback::RadioModeInfo hidl_radio_mode_info;
|
||||
V1_2::IWifiChipEventCallback::RadioModeInfo hidl_radio_mode_info;
|
||||
if (!convertLegacyWifiMacInfoToHidl(legacy_mac_info,
|
||||
&hidl_radio_mode_info)) {
|
||||
return false;
|
||||
@@ -1197,7 +1198,7 @@ bool convertHidlNanEnableRequestToLegacy(
|
||||
|
||||
bool convertHidlNanEnableRequest_1_2ToLegacy(
|
||||
const NanEnableRequest& hidl_request1,
|
||||
const NanConfigRequestSupplemental& hidl_request2,
|
||||
const V1_2::NanConfigRequestSupplemental& hidl_request2,
|
||||
legacy_hal::NanEnableRequest* legacy_request) {
|
||||
if (!legacy_request) {
|
||||
LOG(ERROR)
|
||||
@@ -1708,7 +1709,7 @@ bool convertHidlNanConfigRequestToLegacy(
|
||||
|
||||
bool convertHidlNanConfigRequest_1_2ToLegacy(
|
||||
const NanConfigRequest& hidl_request1,
|
||||
const NanConfigRequestSupplemental& hidl_request2,
|
||||
const V1_2::NanConfigRequestSupplemental& hidl_request2,
|
||||
legacy_hal::NanConfigRequest* legacy_request) {
|
||||
if (!legacy_request) {
|
||||
LOG(ERROR) << "convertHidlNanConfigRequest_1_2ToLegacy: legacy_request "
|
||||
@@ -2039,7 +2040,7 @@ bool convertLegacyNanDataPathRequestIndToHidl(
|
||||
|
||||
bool convertLegacyNdpChannelInfoToHidl(
|
||||
const legacy_hal::NanChannelInfo& legacy_struct,
|
||||
NanDataPathChannelInfo* hidl_struct) {
|
||||
V1_2::NanDataPathChannelInfo* hidl_struct) {
|
||||
if (!hidl_struct) {
|
||||
LOG(ERROR) << "convertLegacyNdpChannelInfoToHidl: hidl_struct is null";
|
||||
return false;
|
||||
@@ -2056,7 +2057,7 @@ bool convertLegacyNdpChannelInfoToHidl(
|
||||
|
||||
bool convertLegacyNanDataPathConfirmIndToHidl(
|
||||
const legacy_hal::NanDataPathConfirmInd& legacy_ind,
|
||||
NanDataPathConfirmInd* hidl_ind) {
|
||||
V1_2::NanDataPathConfirmInd* hidl_ind) {
|
||||
if (!hidl_ind) {
|
||||
LOG(ERROR)
|
||||
<< "convertLegacyNanDataPathConfirmIndToHidl: hidl_ind is null";
|
||||
@@ -2077,9 +2078,9 @@ bool convertLegacyNanDataPathConfirmIndToHidl(
|
||||
convertLegacyNanStatusTypeToHidl(legacy_ind.reason_code);
|
||||
hidl_ind->V1_0.status.description = ""; // TODO: b/34059183
|
||||
|
||||
std::vector<NanDataPathChannelInfo> channelInfo;
|
||||
std::vector<V1_2::NanDataPathChannelInfo> channelInfo;
|
||||
for (unsigned int i = 0; i < legacy_ind.num_channels; ++i) {
|
||||
NanDataPathChannelInfo hidl_struct;
|
||||
V1_2::NanDataPathChannelInfo hidl_struct;
|
||||
if (!convertLegacyNdpChannelInfoToHidl(legacy_ind.channel_info[i],
|
||||
&hidl_struct)) {
|
||||
return false;
|
||||
@@ -2093,7 +2094,7 @@ bool convertLegacyNanDataPathConfirmIndToHidl(
|
||||
|
||||
bool convertLegacyNanDataPathScheduleUpdateIndToHidl(
|
||||
const legacy_hal::NanDataPathScheduleUpdateInd& legacy_ind,
|
||||
NanDataPathScheduleUpdateInd* hidl_ind) {
|
||||
V1_2::NanDataPathScheduleUpdateInd* hidl_ind) {
|
||||
if (!hidl_ind) {
|
||||
LOG(ERROR) << "convertLegacyNanDataPathScheduleUpdateIndToHidl: "
|
||||
"hidl_ind is null";
|
||||
@@ -2103,9 +2104,9 @@ bool convertLegacyNanDataPathScheduleUpdateIndToHidl(
|
||||
|
||||
hidl_ind->peerDiscoveryAddress =
|
||||
hidl_array<uint8_t, 6>(legacy_ind.peer_mac_addr);
|
||||
std::vector<NanDataPathChannelInfo> channelInfo;
|
||||
std::vector<V1_2::NanDataPathChannelInfo> channelInfo;
|
||||
for (unsigned int i = 0; i < legacy_ind.num_channels; ++i) {
|
||||
NanDataPathChannelInfo hidl_struct;
|
||||
V1_2::NanDataPathChannelInfo hidl_struct;
|
||||
if (!convertLegacyNdpChannelInfoToHidl(legacy_ind.channel_info[i],
|
||||
&hidl_struct)) {
|
||||
return false;
|
||||
@@ -2616,7 +2617,7 @@ bool convertLegacyVectorOfRttResultToHidl(
|
||||
}
|
||||
} // namespace hidl_struct_util
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -36,7 +36,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace hidl_struct_util {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
@@ -57,10 +57,11 @@ bool convertLegacyWakeReasonStatsToHidl(
|
||||
legacy_hal::wifi_power_scenario convertHidlTxPowerScenarioToLegacy(
|
||||
V1_1::IWifiChip::TxPowerScenario hidl_scenario);
|
||||
legacy_hal::wifi_power_scenario convertHidlTxPowerScenarioToLegacy_1_2(
|
||||
IWifiChip::TxPowerScenario hidl_scenario);
|
||||
V1_2::IWifiChip::TxPowerScenario hidl_scenario);
|
||||
bool convertLegacyWifiMacInfosToHidl(
|
||||
const std::vector<legacy_hal::WifiMacInfo>& legacy_mac_infos,
|
||||
std::vector<IWifiChipEventCallback::RadioModeInfo>* hidl_radio_mode_infos);
|
||||
std::vector<V1_2::IWifiChipEventCallback::RadioModeInfo>*
|
||||
hidl_radio_mode_infos);
|
||||
|
||||
// STA iface conversion methods.
|
||||
bool convertLegacyFeaturesToHidlStaCapabilities(
|
||||
@@ -115,11 +116,11 @@ bool convertHidlNanConfigRequestToLegacy(
|
||||
legacy_hal::NanConfigRequest* legacy_request);
|
||||
bool convertHidlNanEnableRequest_1_2ToLegacy(
|
||||
const NanEnableRequest& hidl_request1,
|
||||
const NanConfigRequestSupplemental& hidl_request2,
|
||||
const V1_2::NanConfigRequestSupplemental& hidl_request2,
|
||||
legacy_hal::NanEnableRequest* legacy_request);
|
||||
bool convertHidlNanConfigRequest_1_2ToLegacy(
|
||||
const NanConfigRequest& hidl_request1,
|
||||
const NanConfigRequestSupplemental& hidl_request2,
|
||||
const V1_2::NanConfigRequestSupplemental& hidl_request2,
|
||||
legacy_hal::NanConfigRequest* legacy_request);
|
||||
bool convertHidlNanPublishRequestToLegacy(
|
||||
const NanPublishRequest& hidl_request,
|
||||
@@ -152,10 +153,10 @@ bool convertLegacyNanDataPathRequestIndToHidl(
|
||||
NanDataPathRequestInd* hidl_ind);
|
||||
bool convertLegacyNanDataPathConfirmIndToHidl(
|
||||
const legacy_hal::NanDataPathConfirmInd& legacy_ind,
|
||||
NanDataPathConfirmInd* hidl_ind);
|
||||
V1_2::NanDataPathConfirmInd* hidl_ind);
|
||||
bool convertLegacyNanDataPathScheduleUpdateIndToHidl(
|
||||
const legacy_hal::NanDataPathScheduleUpdateInd& legacy_ind,
|
||||
NanDataPathScheduleUpdateInd* hidl_ind);
|
||||
V1_2::NanDataPathScheduleUpdateInd* hidl_ind);
|
||||
|
||||
// RTT controller conversion methods.
|
||||
bool convertHidlVectorOfRttConfigToLegacy(
|
||||
@@ -184,7 +185,7 @@ bool convertLegacyVectorOfRttResultToHidl(
|
||||
std::vector<RttResult>* hidl_results);
|
||||
} // namespace hidl_struct_util
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -23,7 +23,7 @@ std::recursive_mutex g_mutex;
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace hidl_sync_util {
|
||||
|
||||
@@ -33,7 +33,7 @@ std::unique_lock<std::recursive_mutex> acquireGlobalLock() {
|
||||
|
||||
} // namespace hidl_sync_util
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,13 +24,13 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace hidl_sync_util {
|
||||
std::unique_lock<std::recursive_mutex> acquireGlobalLock();
|
||||
} // namespace hidl_sync_util
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -21,7 +21,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
|
||||
Ringbuffer::Ringbuffer(size_t maxSize) : size_(0), maxSize_(maxSize) {}
|
||||
@@ -48,7 +48,7 @@ const std::list<std::vector<uint8_t>>& Ringbuffer::getData() const {
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -23,7 +23,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
|
||||
/**
|
||||
@@ -45,7 +45,7 @@ class Ringbuffer {
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -26,10 +26,10 @@
|
||||
|
||||
using android::hardware::configureRpcThreadpool;
|
||||
using android::hardware::joinRpcThreadpool;
|
||||
using android::hardware::wifi::V1_2::implementation::feature_flags::
|
||||
using android::hardware::wifi::V1_3::implementation::feature_flags::
|
||||
WifiFeatureFlags;
|
||||
using android::hardware::wifi::V1_2::implementation::legacy_hal::WifiLegacyHal;
|
||||
using android::hardware::wifi::V1_2::implementation::mode_controller::
|
||||
using android::hardware::wifi::V1_3::implementation::legacy_hal::WifiLegacyHal;
|
||||
using android::hardware::wifi::V1_3::implementation::mode_controller::
|
||||
WifiModeController;
|
||||
|
||||
int main(int /*argc*/, char** argv) {
|
||||
@@ -40,8 +40,8 @@ int main(int /*argc*/, char** argv) {
|
||||
configureRpcThreadpool(1, true /* callerWillJoin */);
|
||||
|
||||
// Setup hwbinder service
|
||||
android::sp<android::hardware::wifi::V1_2::IWifi> service =
|
||||
new android::hardware::wifi::V1_2::implementation::Wifi(
|
||||
android::sp<android::hardware::wifi::V1_3::IWifi> service =
|
||||
new android::hardware::wifi::V1_3::implementation::Wifi(
|
||||
std::make_shared<WifiLegacyHal>(),
|
||||
std::make_shared<WifiModeController>(),
|
||||
std::make_shared<WifiFeatureFlags>());
|
||||
@@ -34,7 +34,7 @@ constexpr char kIfaceName2[] = "wlan1";
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
|
||||
@@ -54,7 +54,8 @@ TEST_F(HidlStructUtilTest, CanConvertLegacyWifiMacInfosToHidlWithOneMac) {
|
||||
legacy_mac_info1.iface_infos.push_back(legacy_iface_info2);
|
||||
legacy_mac_infos.push_back(legacy_mac_info1);
|
||||
|
||||
std::vector<IWifiChipEventCallback::RadioModeInfo> hidl_radio_mode_infos;
|
||||
std::vector<V1_2::IWifiChipEventCallback::RadioModeInfo>
|
||||
hidl_radio_mode_infos;
|
||||
ASSERT_TRUE(hidl_struct_util::convertLegacyWifiMacInfosToHidl(
|
||||
legacy_mac_infos, &hidl_radio_mode_infos));
|
||||
|
||||
@@ -88,18 +89,20 @@ TEST_F(HidlStructUtilTest, CanConvertLegacyWifiMacInfosToHidlWithTwoMac) {
|
||||
legacy_mac_info2.iface_infos.push_back(legacy_iface_info2);
|
||||
legacy_mac_infos.push_back(legacy_mac_info2);
|
||||
|
||||
std::vector<IWifiChipEventCallback::RadioModeInfo> hidl_radio_mode_infos;
|
||||
std::vector<V1_2::IWifiChipEventCallback::RadioModeInfo>
|
||||
hidl_radio_mode_infos;
|
||||
ASSERT_TRUE(hidl_struct_util::convertLegacyWifiMacInfosToHidl(
|
||||
legacy_mac_infos, &hidl_radio_mode_infos));
|
||||
|
||||
ASSERT_EQ(2u, hidl_radio_mode_infos.size());
|
||||
|
||||
// Find mac info 1.
|
||||
const auto hidl_radio_mode_info1 = std::find_if(
|
||||
hidl_radio_mode_infos.begin(), hidl_radio_mode_infos.end(),
|
||||
[&legacy_mac_info1](const IWifiChipEventCallback::RadioModeInfo& x) {
|
||||
return x.radioId == legacy_mac_info1.wlan_mac_id;
|
||||
});
|
||||
const auto hidl_radio_mode_info1 =
|
||||
std::find_if(hidl_radio_mode_infos.begin(), hidl_radio_mode_infos.end(),
|
||||
[&legacy_mac_info1](
|
||||
const V1_2::IWifiChipEventCallback::RadioModeInfo& x) {
|
||||
return x.radioId == legacy_mac_info1.wlan_mac_id;
|
||||
});
|
||||
ASSERT_NE(hidl_radio_mode_infos.end(), hidl_radio_mode_info1);
|
||||
EXPECT_EQ(WifiBand::BAND_5GHZ, hidl_radio_mode_info1->bandInfo);
|
||||
ASSERT_EQ(1u, hidl_radio_mode_info1->ifaceInfos.size());
|
||||
@@ -109,11 +112,12 @@ TEST_F(HidlStructUtilTest, CanConvertLegacyWifiMacInfosToHidlWithTwoMac) {
|
||||
hidl_iface_info1.channel);
|
||||
|
||||
// Find mac info 2.
|
||||
const auto hidl_radio_mode_info2 = std::find_if(
|
||||
hidl_radio_mode_infos.begin(), hidl_radio_mode_infos.end(),
|
||||
[&legacy_mac_info2](const IWifiChipEventCallback::RadioModeInfo& x) {
|
||||
return x.radioId == legacy_mac_info2.wlan_mac_id;
|
||||
});
|
||||
const auto hidl_radio_mode_info2 =
|
||||
std::find_if(hidl_radio_mode_infos.begin(), hidl_radio_mode_infos.end(),
|
||||
[&legacy_mac_info2](
|
||||
const V1_2::IWifiChipEventCallback::RadioModeInfo& x) {
|
||||
return x.radioId == legacy_mac_info2.wlan_mac_id;
|
||||
});
|
||||
ASSERT_NE(hidl_radio_mode_infos.end(), hidl_radio_mode_info2);
|
||||
EXPECT_EQ(WifiBand::BAND_24GHZ, hidl_radio_mode_info2->bandInfo);
|
||||
ASSERT_EQ(1u, hidl_radio_mode_info2->ifaceInfos.size());
|
||||
@@ -123,7 +127,7 @@ TEST_F(HidlStructUtilTest, CanConvertLegacyWifiMacInfosToHidlWithTwoMac) {
|
||||
hidl_iface_info2.channel);
|
||||
}
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -21,7 +21,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace feature_flags {
|
||||
|
||||
@@ -29,7 +29,7 @@ MockWifiFeatureFlags::MockWifiFeatureFlags() {}
|
||||
|
||||
} // namespace feature_flags
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace feature_flags {
|
||||
|
||||
@@ -39,7 +39,7 @@ class MockWifiFeatureFlags : public WifiFeatureFlags {
|
||||
|
||||
} // namespace feature_flags
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,14 +24,14 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace legacy_hal {
|
||||
|
||||
MockWifiLegacyHal::MockWifiLegacyHal() : WifiLegacyHal() {}
|
||||
} // namespace legacy_hal
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace legacy_hal {
|
||||
|
||||
@@ -49,7 +49,7 @@ class MockWifiLegacyHal : public WifiLegacyHal {
|
||||
};
|
||||
} // namespace legacy_hal
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,14 +24,14 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace mode_controller {
|
||||
|
||||
MockWifiModeController::MockWifiModeController() : WifiModeController() {}
|
||||
} // namespace mode_controller
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace mode_controller {
|
||||
|
||||
@@ -38,7 +38,7 @@ class MockWifiModeController : public WifiModeController {
|
||||
};
|
||||
} // namespace mode_controller
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@ using testing::Test;
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
|
||||
class RingbufferTest : public Test {
|
||||
@@ -91,7 +91,7 @@ TEST_F(RingbufferTest, OversizedAppendDoesNotDropExistingData) {
|
||||
EXPECT_EQ(input, buffer_.getData().front());
|
||||
}
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -38,7 +38,7 @@ constexpr ChipId kFakeChipId = 5;
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
|
||||
class WifiChipTest : public Test {
|
||||
@@ -542,38 +542,38 @@ TEST_F(WifiChipV2_AwareIfaceCombinationTest,
|
||||
|
||||
////////// V1 Iface Combinations when AP creation is disabled //////////
|
||||
class WifiChipV1_AwareDisabledApIfaceCombinationTest : public WifiChipTest {
|
||||
public:
|
||||
void SetUp() override {
|
||||
setupV1_AwareDisabledApIfaceCombination();
|
||||
WifiChipTest::SetUp();
|
||||
}
|
||||
public:
|
||||
void SetUp() override {
|
||||
setupV1_AwareDisabledApIfaceCombination();
|
||||
WifiChipTest::SetUp();
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(WifiChipV1_AwareDisabledApIfaceCombinationTest,
|
||||
StaMode_CreateSta_ShouldSucceed) {
|
||||
findModeAndConfigureForIfaceType(IfaceType::STA);
|
||||
ASSERT_FALSE(createIface(IfaceType::STA).empty());
|
||||
ASSERT_TRUE(createIface(IfaceType::AP).empty());
|
||||
findModeAndConfigureForIfaceType(IfaceType::STA);
|
||||
ASSERT_FALSE(createIface(IfaceType::STA).empty());
|
||||
ASSERT_TRUE(createIface(IfaceType::AP).empty());
|
||||
}
|
||||
|
||||
////////// V2 Iface Combinations when AP creation is disabled //////////
|
||||
class WifiChipV2_AwareDisabledApIfaceCombinationTest: public WifiChipTest {
|
||||
public:
|
||||
void SetUp() override {
|
||||
setupV2_AwareDisabledApIfaceCombination();
|
||||
WifiChipTest::SetUp();
|
||||
}
|
||||
class WifiChipV2_AwareDisabledApIfaceCombinationTest : public WifiChipTest {
|
||||
public:
|
||||
void SetUp() override {
|
||||
setupV2_AwareDisabledApIfaceCombination();
|
||||
WifiChipTest::SetUp();
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(WifiChipV2_AwareDisabledApIfaceCombinationTest,
|
||||
CreateSta_ShouldSucceed) {
|
||||
findModeAndConfigureForIfaceType(IfaceType::STA);
|
||||
ASSERT_FALSE(createIface(IfaceType::STA).empty());
|
||||
ASSERT_TRUE(createIface(IfaceType::AP).empty());
|
||||
findModeAndConfigureForIfaceType(IfaceType::STA);
|
||||
ASSERT_FALSE(createIface(IfaceType::STA).empty());
|
||||
ASSERT_TRUE(createIface(IfaceType::AP).empty());
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -28,7 +28,7 @@ static constexpr android::hardware::wifi::V1_0::ChipId kChipId = 0;
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using hidl_return_util::validateAndCall;
|
||||
using hidl_return_util::validateAndCallWithLock;
|
||||
@@ -206,7 +206,7 @@ WifiStatus Wifi::stopLegacyHalAndDeinitializeModeController(
|
||||
return createWifiStatus(WifiStatusCode::SUCCESS);
|
||||
}
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <functional>
|
||||
|
||||
#include <android-base/macros.h>
|
||||
#include <android/hardware/wifi/1.2/IWifi.h>
|
||||
#include <android/hardware/wifi/1.3/IWifi.h>
|
||||
#include <utils/Looper.h>
|
||||
|
||||
#include "hidl_callback_util.h"
|
||||
@@ -32,13 +32,13 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
|
||||
/**
|
||||
* Root HIDL interface object used to control the Wifi HAL.
|
||||
*/
|
||||
class Wifi : public V1_2::IWifi {
|
||||
class Wifi : public V1_3::IWifi {
|
||||
public:
|
||||
Wifi(const std::shared_ptr<legacy_hal::WifiLegacyHal> legacy_hal,
|
||||
const std::shared_ptr<mode_controller::WifiModeController>
|
||||
@@ -88,7 +88,7 @@ class Wifi : public V1_2::IWifi {
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using hidl_return_util::validateAndCall;
|
||||
|
||||
@@ -93,7 +93,7 @@ WifiApIface::getValidFrequenciesForBandInternal(WifiBand band) {
|
||||
return {createWifiStatusFromLegacyError(legacy_status), valid_frequencies};
|
||||
}
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -25,7 +25,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
|
||||
@@ -65,7 +65,7 @@ class WifiApIface : public V1_0::IWifiApIface {
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -28,13 +28,13 @@
|
||||
#include "wifi_status_util.h"
|
||||
|
||||
namespace {
|
||||
using android::sp;
|
||||
using android::base::unique_fd;
|
||||
using android::hardware::hidl_string;
|
||||
using android::hardware::hidl_vec;
|
||||
using android::hardware::wifi::V1_0::ChipModeId;
|
||||
using android::hardware::wifi::V1_0::IfaceType;
|
||||
using android::hardware::wifi::V1_0::IWifiChip;
|
||||
using android::sp;
|
||||
|
||||
constexpr ChipModeId kInvalidModeId = UINT32_MAX;
|
||||
// These mode ID's should be unique (even across combo versions). Refer to
|
||||
@@ -304,7 +304,7 @@ std::vector<char> makeCharVec(const std::string& str) {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using hidl_return_util::validateAndCall;
|
||||
using hidl_return_util::validateAndCallWithLock;
|
||||
@@ -335,7 +335,7 @@ void WifiChip::invalidate() {
|
||||
|
||||
bool WifiChip::isValid() { return is_valid_; }
|
||||
|
||||
std::set<sp<IWifiChipEventCallback>> WifiChip::getEventCallbacks() {
|
||||
std::set<sp<V1_2::IWifiChipEventCallback>> WifiChip::getEventCallbacks() {
|
||||
return event_cb_handler_.getCallbacks();
|
||||
}
|
||||
|
||||
@@ -344,6 +344,7 @@ Return<void> WifiChip::getId(getId_cb hidl_status_cb) {
|
||||
&WifiChip::getIdInternal, hidl_status_cb);
|
||||
}
|
||||
|
||||
// Deprecated support for this callback
|
||||
Return<void> WifiChip::registerEventCallback(
|
||||
const sp<V1_0::IWifiChipEventCallback>& event_callback,
|
||||
registerEventCallback_cb hidl_status_cb) {
|
||||
@@ -546,7 +547,8 @@ Return<void> WifiChip::enableDebugErrorAlerts(
|
||||
}
|
||||
|
||||
Return<void> WifiChip::selectTxPowerScenario(
|
||||
V1_1::IWifiChip::TxPowerScenario scenario, selectTxPowerScenario_cb hidl_status_cb) {
|
||||
V1_1::IWifiChip::TxPowerScenario scenario,
|
||||
selectTxPowerScenario_cb hidl_status_cb) {
|
||||
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID,
|
||||
&WifiChip::selectTxPowerScenarioInternal,
|
||||
hidl_status_cb, scenario);
|
||||
@@ -560,7 +562,7 @@ Return<void> WifiChip::resetTxPowerScenario(
|
||||
}
|
||||
|
||||
Return<void> WifiChip::registerEventCallback_1_2(
|
||||
const sp<IWifiChipEventCallback>& event_callback,
|
||||
const sp<V1_2::IWifiChipEventCallback>& event_callback,
|
||||
registerEventCallback_cb hidl_status_cb) {
|
||||
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID,
|
||||
&WifiChip::registerEventCallbackInternal_1_2,
|
||||
@@ -568,9 +570,10 @@ Return<void> WifiChip::registerEventCallback_1_2(
|
||||
}
|
||||
|
||||
Return<void> WifiChip::selectTxPowerScenario_1_2(
|
||||
TxPowerScenario scenario, selectTxPowerScenario_cb hidl_status_cb) {
|
||||
TxPowerScenario scenario, selectTxPowerScenario_cb hidl_status_cb) {
|
||||
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID,
|
||||
&WifiChip::selectTxPowerScenarioInternal_1_2, hidl_status_cb, scenario);
|
||||
&WifiChip::selectTxPowerScenarioInternal_1_2,
|
||||
hidl_status_cb, scenario);
|
||||
}
|
||||
|
||||
Return<void> WifiChip::debug(const hidl_handle& handle,
|
||||
@@ -1036,7 +1039,7 @@ WifiStatus WifiChip::enableDebugErrorAlertsInternal(bool enable) {
|
||||
}
|
||||
|
||||
WifiStatus WifiChip::selectTxPowerScenarioInternal(
|
||||
V1_1::IWifiChip::TxPowerScenario scenario) {
|
||||
V1_1::IWifiChip::TxPowerScenario scenario) {
|
||||
auto legacy_status = legacy_hal_.lock()->selectTxPowerScenario(
|
||||
getWlan0IfaceName(),
|
||||
hidl_struct_util::convertHidlTxPowerScenarioToLegacy(scenario));
|
||||
@@ -1050,14 +1053,15 @@ WifiStatus WifiChip::resetTxPowerScenarioInternal() {
|
||||
}
|
||||
|
||||
WifiStatus WifiChip::registerEventCallbackInternal_1_2(
|
||||
const sp<IWifiChipEventCallback>& event_callback) {
|
||||
const sp<V1_2::IWifiChipEventCallback>& event_callback) {
|
||||
if (!event_cb_handler_.addCallback(event_callback)) {
|
||||
return createWifiStatus(WifiStatusCode::ERROR_UNKNOWN);
|
||||
}
|
||||
return createWifiStatus(WifiStatusCode::SUCCESS);
|
||||
}
|
||||
|
||||
WifiStatus WifiChip::selectTxPowerScenarioInternal_1_2(TxPowerScenario scenario) {
|
||||
WifiStatus WifiChip::selectTxPowerScenarioInternal_1_2(
|
||||
TxPowerScenario scenario) {
|
||||
auto legacy_status = legacy_hal_.lock()->selectTxPowerScenario(
|
||||
getWlan0IfaceName(),
|
||||
hidl_struct_util::convertHidlTxPowerScenarioToLegacy_1_2(scenario));
|
||||
@@ -1156,7 +1160,7 @@ WifiStatus WifiChip::registerRadioModeChangeCallback() {
|
||||
LOG(ERROR) << "Callback invoked on an invalid object";
|
||||
return;
|
||||
}
|
||||
std::vector<IWifiChipEventCallback::RadioModeInfo>
|
||||
std::vector<V1_2::IWifiChipEventCallback::RadioModeInfo>
|
||||
hidl_radio_mode_infos;
|
||||
if (!hidl_struct_util::convertLegacyWifiMacInfosToHidl(
|
||||
mac_infos, &hidl_radio_mode_infos)) {
|
||||
@@ -1212,15 +1216,14 @@ void WifiChip::populateModes() {
|
||||
const IWifiChip::ChipIfaceCombination chip_iface_combination_2 = {
|
||||
{chip_iface_combination_limit_1, chip_iface_combination_limit_3}};
|
||||
if (feature_flags_.lock()->isApDisabled()) {
|
||||
const IWifiChip::ChipMode chip_mode = {
|
||||
kV2ChipModeId,
|
||||
{chip_iface_combination_2}};
|
||||
modes_ = {chip_mode};
|
||||
const IWifiChip::ChipMode chip_mode = {kV2ChipModeId,
|
||||
{chip_iface_combination_2}};
|
||||
modes_ = {chip_mode};
|
||||
} else {
|
||||
const IWifiChip::ChipMode chip_mode = {
|
||||
kV2ChipModeId,
|
||||
{chip_iface_combination_1, chip_iface_combination_2}};
|
||||
modes_ = {chip_mode};
|
||||
const IWifiChip::ChipMode chip_mode = {
|
||||
kV2ChipModeId,
|
||||
{chip_iface_combination_1, chip_iface_combination_2}};
|
||||
modes_ = {chip_mode};
|
||||
}
|
||||
} else {
|
||||
// V1 Iface combinations for Mode Id = 0. (STA Mode)
|
||||
@@ -1246,9 +1249,9 @@ void WifiChip::populateModes() {
|
||||
const IWifiChip::ChipMode ap_chip_mode = {kV1ApChipModeId,
|
||||
{ap_chip_iface_combination}};
|
||||
if (feature_flags_.lock()->isApDisabled()) {
|
||||
modes_ = {sta_chip_mode};
|
||||
modes_ = {sta_chip_mode};
|
||||
} else {
|
||||
modes_ = {sta_chip_mode, ap_chip_mode};
|
||||
modes_ = {sta_chip_mode, ap_chip_mode};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1415,7 +1418,7 @@ bool WifiChip::writeRingbufferFilesInternal() {
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -37,7 +37,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
|
||||
@@ -69,10 +69,11 @@ class WifiChip : public V1_2::IWifiChip {
|
||||
// marked valid before processing them.
|
||||
void invalidate();
|
||||
bool isValid();
|
||||
std::set<sp<IWifiChipEventCallback>> getEventCallbacks();
|
||||
std::set<sp<V1_2::IWifiChipEventCallback>> getEventCallbacks();
|
||||
|
||||
// HIDL methods exposed.
|
||||
Return<void> getId(getId_cb hidl_status_cb) override;
|
||||
// Deprecated support for this callback
|
||||
Return<void> registerEventCallback(
|
||||
const sp<V1_0::IWifiChipEventCallback>& event_callback,
|
||||
registerEventCallback_cb hidl_status_cb) override;
|
||||
@@ -137,18 +138,20 @@ class WifiChip : public V1_2::IWifiChip {
|
||||
Return<void> resetTxPowerScenario(
|
||||
resetTxPowerScenario_cb hidl_status_cb) override;
|
||||
Return<void> registerEventCallback_1_2(
|
||||
const sp<IWifiChipEventCallback>& event_callback,
|
||||
const sp<V1_2::IWifiChipEventCallback>& event_callback,
|
||||
registerEventCallback_1_2_cb hidl_status_cb) override;
|
||||
Return<void> selectTxPowerScenario_1_2(
|
||||
TxPowerScenario scenario,
|
||||
selectTxPowerScenario_cb hidl_status_cb) override;
|
||||
Return<void> debug(const hidl_handle& handle,
|
||||
const hidl_vec<hidl_string>& options) override;
|
||||
|
||||
private:
|
||||
void invalidateAndRemoveAllIfaces();
|
||||
|
||||
// Corresponding worker functions for the HIDL methods.
|
||||
std::pair<WifiStatus, ChipId> getIdInternal();
|
||||
// Deprecated support for this callback
|
||||
WifiStatus registerEventCallbackInternal(
|
||||
const sp<V1_0::IWifiChipEventCallback>& event_callback);
|
||||
std::pair<WifiStatus, uint32_t> getCapabilitiesInternal();
|
||||
@@ -195,10 +198,11 @@ class WifiChip : public V1_2::IWifiChip {
|
||||
std::pair<WifiStatus, WifiDebugHostWakeReasonStats>
|
||||
getDebugHostWakeReasonStatsInternal();
|
||||
WifiStatus enableDebugErrorAlertsInternal(bool enable);
|
||||
WifiStatus selectTxPowerScenarioInternal(V1_1::IWifiChip::TxPowerScenario scenario);
|
||||
WifiStatus selectTxPowerScenarioInternal(
|
||||
V1_1::IWifiChip::TxPowerScenario scenario);
|
||||
WifiStatus resetTxPowerScenarioInternal();
|
||||
WifiStatus registerEventCallbackInternal_1_2(
|
||||
const sp<IWifiChipEventCallback>& event_callback);
|
||||
const sp<V1_2::IWifiChipEventCallback>& event_callback);
|
||||
WifiStatus selectTxPowerScenarioInternal_1_2(TxPowerScenario scenario);
|
||||
WifiStatus handleChipConfiguration(
|
||||
std::unique_lock<std::recursive_mutex>* lock, ChipModeId mode_id);
|
||||
@@ -236,14 +240,14 @@ class WifiChip : public V1_2::IWifiChip {
|
||||
// registration mechanism. Use this to check if we have already
|
||||
// registered a callback.
|
||||
bool debug_ring_buffer_cb_registered_;
|
||||
hidl_callback_util::HidlCallbackHandler<IWifiChipEventCallback>
|
||||
hidl_callback_util::HidlCallbackHandler<V1_2::IWifiChipEventCallback>
|
||||
event_cb_handler_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(WifiChip);
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -38,7 +38,7 @@ static const bool wifiHidlFeatureDisableAp = false;
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace feature_flags {
|
||||
|
||||
@@ -47,13 +47,11 @@ bool WifiFeatureFlags::isAwareSupported() { return wifiHidlFeatureAware; }
|
||||
bool WifiFeatureFlags::isDualInterfaceSupported() {
|
||||
return wifiHidlFeatureDualInterface;
|
||||
}
|
||||
bool WifiFeatureFlags::isApDisabled() {
|
||||
return wifiHidlFeatureDisableAp;
|
||||
}
|
||||
bool WifiFeatureFlags::isApDisabled() { return wifiHidlFeatureDisableAp; }
|
||||
|
||||
} // namespace feature_flags
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -20,7 +20,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace feature_flags {
|
||||
|
||||
@@ -36,7 +36,7 @@ class WifiFeatureFlags {
|
||||
|
||||
} // namespace feature_flags
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -48,7 +48,7 @@ std::vector<char> makeCharVec(const std::string& str) {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace legacy_hal {
|
||||
// Legacy HAL functions accept "C" style function pointers, so use global
|
||||
@@ -1417,7 +1417,7 @@ void WifiLegacyHal::invalidate() {
|
||||
|
||||
} // namespace legacy_hal
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -27,14 +27,15 @@
|
||||
|
||||
// HACK: The include inside the namespace below also transitively includes a
|
||||
// bunch of libc headers into the namespace, which leads to functions like
|
||||
// socketpair being defined in android::hardware::wifi::V1_1::implementation::legacy_hal.
|
||||
// Include this one particular header as a hacky workaround until that's fixed.
|
||||
// socketpair being defined in
|
||||
// android::hardware::wifi::V1_1::implementation::legacy_hal. Include this one
|
||||
// particular header as a hacky workaround until that's fixed.
|
||||
#include <sys/socket.h>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
// This is in a separate namespace to prevent typename conflicts between
|
||||
// the legacy HAL types and the HIDL interface types.
|
||||
@@ -106,7 +107,8 @@ struct NanCallbackHandlers {
|
||||
on_event_transmit_follow_up;
|
||||
std::function<void(const NanRangeRequestInd&)> on_event_range_request;
|
||||
std::function<void(const NanRangeReportInd&)> on_event_range_report;
|
||||
std::function<void(const NanDataPathScheduleUpdateInd&)> on_event_schedule_update;
|
||||
std::function<void(const NanDataPathScheduleUpdateInd&)>
|
||||
on_event_schedule_update;
|
||||
};
|
||||
|
||||
// Full scan results contain IE info and are hence passed by reference, to
|
||||
@@ -389,7 +391,7 @@ class WifiLegacyHal {
|
||||
|
||||
} // namespace legacy_hal
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -20,7 +20,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace legacy_hal {
|
||||
template <typename>
|
||||
@@ -141,7 +141,7 @@ bool initHalFuncTableWithStubs(wifi_hal_fn* hal_fn) {
|
||||
}
|
||||
} // namespace legacy_hal
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -20,7 +20,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace legacy_hal {
|
||||
#include <hardware_legacy/wifi_hal.h>
|
||||
@@ -28,7 +28,7 @@ namespace legacy_hal {
|
||||
bool initHalFuncTableWithStubs(wifi_hal_fn* hal_fn);
|
||||
} // namespace legacy_hal
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -48,7 +48,7 @@ int convertIfaceTypeToFirmwareMode(IfaceType type) {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace mode_controller {
|
||||
|
||||
@@ -85,7 +85,7 @@ bool WifiModeController::deinitialize() {
|
||||
}
|
||||
} // namespace mode_controller
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
namespace mode_controller {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
@@ -55,7 +55,7 @@ class WifiModeController {
|
||||
|
||||
} // namespace mode_controller
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using hidl_return_util::validateAndCall;
|
||||
|
||||
@@ -420,7 +420,7 @@ WifiNanIface::WifiNanIface(
|
||||
LOG(ERROR) << "Callback invoked on an invalid object";
|
||||
return;
|
||||
}
|
||||
NanDataPathConfirmInd hidl_struct;
|
||||
V1_2::NanDataPathConfirmInd hidl_struct;
|
||||
if (!hidl_struct_util::convertLegacyNanDataPathConfirmIndToHidl(
|
||||
msg, &hidl_struct)) {
|
||||
LOG(ERROR) << "Failed to convert nan capabilities response";
|
||||
@@ -477,7 +477,7 @@ WifiNanIface::WifiNanIface(
|
||||
LOG(ERROR) << "Callback invoked on an invalid object";
|
||||
return;
|
||||
}
|
||||
NanDataPathScheduleUpdateInd hidl_struct;
|
||||
V1_2::NanDataPathScheduleUpdateInd hidl_struct;
|
||||
if (!hidl_struct_util::convertLegacyNanDataPathScheduleUpdateIndToHidl(
|
||||
msg, &hidl_struct)) {
|
||||
LOG(ERROR) << "Failed to convert nan capabilities response";
|
||||
@@ -655,7 +655,7 @@ Return<void> WifiNanIface::terminateDataPathRequest(
|
||||
}
|
||||
|
||||
Return<void> WifiNanIface::registerEventCallback_1_2(
|
||||
const sp<IWifiNanIfaceEventCallback>& callback,
|
||||
const sp<V1_2::IWifiNanIfaceEventCallback>& callback,
|
||||
registerEventCallback_1_2_cb hidl_status_cb) {
|
||||
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
|
||||
&WifiNanIface::registerEventCallback_1_2Internal,
|
||||
@@ -664,7 +664,7 @@ Return<void> WifiNanIface::registerEventCallback_1_2(
|
||||
|
||||
Return<void> WifiNanIface::enableRequest_1_2(
|
||||
uint16_t cmd_id, const NanEnableRequest& msg1,
|
||||
const NanConfigRequestSupplemental& msg2,
|
||||
const V1_2::NanConfigRequestSupplemental& msg2,
|
||||
enableRequest_1_2_cb hidl_status_cb) {
|
||||
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
|
||||
&WifiNanIface::enableRequest_1_2Internal,
|
||||
@@ -673,7 +673,7 @@ Return<void> WifiNanIface::enableRequest_1_2(
|
||||
|
||||
Return<void> WifiNanIface::configRequest_1_2(
|
||||
uint16_t cmd_id, const NanConfigRequest& msg1,
|
||||
const NanConfigRequestSupplemental& msg2,
|
||||
const V1_2::NanConfigRequestSupplemental& msg2,
|
||||
configRequest_1_2_cb hidl_status_cb) {
|
||||
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
|
||||
&WifiNanIface::configRequest_1_2Internal,
|
||||
@@ -832,7 +832,7 @@ WifiStatus WifiNanIface::registerEventCallback_1_2Internal(
|
||||
|
||||
WifiStatus WifiNanIface::enableRequest_1_2Internal(
|
||||
uint16_t cmd_id, const NanEnableRequest& msg1,
|
||||
const NanConfigRequestSupplemental& msg2) {
|
||||
const V1_2::NanConfigRequestSupplemental& msg2) {
|
||||
legacy_hal::NanEnableRequest legacy_msg;
|
||||
if (!hidl_struct_util::convertHidlNanEnableRequest_1_2ToLegacy(
|
||||
msg1, msg2, &legacy_msg)) {
|
||||
@@ -845,7 +845,7 @@ WifiStatus WifiNanIface::enableRequest_1_2Internal(
|
||||
|
||||
WifiStatus WifiNanIface::configRequest_1_2Internal(
|
||||
uint16_t cmd_id, const NanConfigRequest& msg1,
|
||||
const NanConfigRequestSupplemental& msg2) {
|
||||
const V1_2::NanConfigRequestSupplemental& msg2) {
|
||||
legacy_hal::NanConfigRequest legacy_msg;
|
||||
if (!hidl_struct_util::convertHidlNanConfigRequest_1_2ToLegacy(
|
||||
msg1, msg2, &legacy_msg)) {
|
||||
@@ -857,7 +857,7 @@ WifiStatus WifiNanIface::configRequest_1_2Internal(
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -27,7 +27,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
|
||||
@@ -89,15 +89,15 @@ class WifiNanIface : public V1_2::IWifiNanIface {
|
||||
terminateDataPathRequest_cb hidl_status_cb) override;
|
||||
|
||||
Return<void> registerEventCallback_1_2(
|
||||
const sp<IWifiNanIfaceEventCallback>& callback,
|
||||
const sp<V1_2::IWifiNanIfaceEventCallback>& callback,
|
||||
registerEventCallback_1_2_cb hidl_status_cb) override;
|
||||
Return<void> enableRequest_1_2(
|
||||
uint16_t cmd_id, const NanEnableRequest& msg1,
|
||||
const NanConfigRequestSupplemental& msg2,
|
||||
const V1_2::NanConfigRequestSupplemental& msg2,
|
||||
enableRequest_1_2_cb hidl_status_cb) override;
|
||||
Return<void> configRequest_1_2(
|
||||
uint16_t cmd_id, const NanConfigRequest& msg1,
|
||||
const NanConfigRequestSupplemental& msg2,
|
||||
const V1_2::NanConfigRequestSupplemental& msg2,
|
||||
configRequest_1_2_cb hidl_status_cb) override;
|
||||
|
||||
private:
|
||||
@@ -135,10 +135,10 @@ class WifiNanIface : public V1_2::IWifiNanIface {
|
||||
const sp<V1_2::IWifiNanIfaceEventCallback>& callback);
|
||||
WifiStatus enableRequest_1_2Internal(
|
||||
uint16_t cmd_id, const NanEnableRequest& msg1,
|
||||
const NanConfigRequestSupplemental& msg2);
|
||||
const V1_2::NanConfigRequestSupplemental& msg2);
|
||||
WifiStatus configRequest_1_2Internal(
|
||||
uint16_t cmd_id, const NanConfigRequest& msg,
|
||||
const NanConfigRequestSupplemental& msg2);
|
||||
const V1_2::NanConfigRequestSupplemental& msg2);
|
||||
|
||||
// all 1_0 and descendant callbacks
|
||||
std::set<sp<V1_0::IWifiNanIfaceEventCallback>> getEventCallbacks();
|
||||
@@ -157,7 +157,7 @@ class WifiNanIface : public V1_2::IWifiNanIface {
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -23,7 +23,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using hidl_return_util::validateAndCall;
|
||||
|
||||
@@ -60,7 +60,7 @@ std::pair<WifiStatus, IfaceType> WifiP2pIface::getTypeInternal() {
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -25,7 +25,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
|
||||
@@ -58,7 +58,7 @@ class WifiP2pIface : public V1_0::IWifiP2pIface {
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using hidl_return_util::validateAndCall;
|
||||
|
||||
@@ -269,7 +269,7 @@ WifiStatus WifiRttController::disableResponderInternal(uint32_t cmd_id) {
|
||||
return createWifiStatusFromLegacyError(legacy_status);
|
||||
}
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -27,7 +27,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
|
||||
/**
|
||||
@@ -97,7 +97,7 @@ class WifiRttController : public V1_0::IWifiRttController {
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using hidl_return_util::validateAndCall;
|
||||
|
||||
@@ -622,7 +622,7 @@ WifiStatus WifiStaIface::setMacAddressInternal(
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -29,7 +29,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
|
||||
@@ -163,7 +163,7 @@ class WifiStaIface : public V1_2::IWifiStaIface {
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -19,7 +19,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
|
||||
std::string legacyErrorToString(legacy_hal::wifi_error error) {
|
||||
@@ -100,7 +100,7 @@ WifiStatus createWifiStatusFromLegacyError(legacy_hal::wifi_error error) {
|
||||
}
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_2 {
|
||||
namespace V1_3 {
|
||||
namespace implementation {
|
||||
using namespace android::hardware::wifi::V1_0;
|
||||
|
||||
@@ -37,7 +37,7 @@ WifiStatus createWifiStatusFromLegacyError(legacy_hal::wifi_error error,
|
||||
WifiStatus createWifiStatusFromLegacyError(legacy_hal::wifi_error error);
|
||||
|
||||
} // namespace implementation
|
||||
} // namespace V1_2
|
||||
} // namespace V1_3
|
||||
} // namespace wifi
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
Reference in New Issue
Block a user