wifi: Gscan struct conversion changes

am: 881d1f7823

Change-Id: I79d9bfa6433a2090c28c0a377e247ee408f58463
This commit is contained in:
Roshan Pius
2016-12-09 02:05:44 +00:00
committed by android-build-merger
2 changed files with 61 additions and 38 deletions

View File

@@ -26,30 +26,6 @@ namespace V1_0 {
namespace implementation {
namespace hidl_struct_util {
uint8_t convertHidlScanReportEventFlagToLegacy(
StaBackgroundScanBucketEventReportSchemeMask hidl_flag) {
using HidlFlag = StaBackgroundScanBucketEventReportSchemeMask;
switch (hidl_flag) {
case HidlFlag::EACH_SCAN:
return REPORT_EVENTS_EACH_SCAN;
case HidlFlag::FULL_RESULTS:
return REPORT_EVENTS_FULL_RESULTS;
case HidlFlag::NO_BATCH:
return REPORT_EVENTS_NO_BATCH;
};
}
StaScanDataFlagMask convertLegacyScanDataFlagToHidl(uint8_t legacy_flag) {
switch (legacy_flag) {
case legacy_hal::WIFI_SCAN_FLAG_INTERRUPTED:
return StaScanDataFlagMask::INTERRUPTED;
};
CHECK(false) << "Unknown legacy flag: " << legacy_flag;
// To silence the compiler warning about reaching the end of non-void
// function.
return {};
}
IWifiChip::ChipCapabilityMask convertLegacyLoggerFeatureToHidlChipCapability(
uint32_t feature) {
using HidlChipCaps = IWifiChip::ChipCapabilityMask;
@@ -257,7 +233,32 @@ bool convertLegacyApfCapabilitiesToHidl(
return true;
}
bool convertLegacyScanCapabilitiesToHidl(
uint8_t convertHidlGscanReportEventFlagToLegacy(
StaBackgroundScanBucketEventReportSchemeMask hidl_flag) {
using HidlFlag = StaBackgroundScanBucketEventReportSchemeMask;
switch (hidl_flag) {
case HidlFlag::EACH_SCAN:
return REPORT_EVENTS_EACH_SCAN;
case HidlFlag::FULL_RESULTS:
return REPORT_EVENTS_FULL_RESULTS;
case HidlFlag::NO_BATCH:
return REPORT_EVENTS_NO_BATCH;
};
CHECK(false);
}
StaScanDataFlagMask convertLegacyGscanDataFlagToHidl(uint8_t legacy_flag) {
switch (legacy_flag) {
case legacy_hal::WIFI_SCAN_FLAG_INTERRUPTED:
return StaScanDataFlagMask::INTERRUPTED;
};
CHECK(false) << "Unknown legacy flag: " << legacy_flag;
// To silence the compiler warning about reaching the end of non-void
// function.
return {};
}
bool convertLegacyGscanCapabilitiesToHidl(
const legacy_hal::wifi_gscan_capabilities& legacy_caps,
StaBackgroundScanCapabilities* hidl_caps) {
if (!hidl_caps) {
@@ -270,7 +271,27 @@ bool convertLegacyScanCapabilitiesToHidl(
return true;
}
bool convertHidlScanParamsToLegacy(
legacy_hal::wifi_band convertHidlGscanBandToLegacy(StaBackgroundScanBand band) {
switch (band) {
case StaBackgroundScanBand::BAND_UNSPECIFIED:
return legacy_hal::WIFI_BAND_UNSPECIFIED;
case StaBackgroundScanBand::BAND_24GHZ:
return legacy_hal::WIFI_BAND_BG;
case StaBackgroundScanBand::BAND_5GHZ:
return legacy_hal::WIFI_BAND_A;
case StaBackgroundScanBand::BAND_5GHZ_DFS:
return legacy_hal::WIFI_BAND_A_DFS;
case StaBackgroundScanBand::BAND_5GHZ_WITH_DFS:
return legacy_hal::WIFI_BAND_A_WITH_DFS;
case StaBackgroundScanBand::BAND_24GHZ_5GHZ:
return legacy_hal::WIFI_BAND_ABG;
case StaBackgroundScanBand::BAND_24GHZ_5GHZ_WITH_DFS:
return legacy_hal::WIFI_BAND_ABG_WITH_DFS;
};
CHECK(false);
}
bool convertHidlGscanParamsToLegacy(
const StaBackgroundScanParameters& hidl_scan_params,
legacy_hal::wifi_scan_cmd_params* legacy_scan_params) {
if (!legacy_scan_params) {
@@ -307,7 +328,7 @@ bool convertHidlScanParamsToLegacy(
if (hidl_bucket_spec.eventReportScheme &
static_cast<std::underlying_type<HidlFlag>::type>(flag)) {
legacy_bucket_spec.report_events |=
convertHidlScanReportEventFlagToLegacy(flag);
convertHidlGscanReportEventFlagToLegacy(flag);
}
}
// TODO(b/33194311): Expose these max limits in the HIDL interface.
@@ -365,7 +386,7 @@ bool convertLegacyIeBlobToHidl(const uint8_t* ie_blob,
return (next_ie == ies_end);
}
bool convertLegacyScanResultToHidl(
bool convertLegacyGscanResultToHidl(
const legacy_hal::wifi_scan_result& legacy_scan_result,
bool has_ie_data,
StaScanResult* hidl_scan_result) {
@@ -396,7 +417,7 @@ bool convertLegacyScanResultToHidl(
return true;
}
bool convertLegacyCachedScanResultsToHidl(
bool convertLegacyCachedGscanResultsToHidl(
const legacy_hal::wifi_cached_scan_results& legacy_cached_scan_result,
StaScanData* hidl_scan_data) {
if (!hidl_scan_data) {
@@ -406,7 +427,7 @@ bool convertLegacyCachedScanResultsToHidl(
if (legacy_cached_scan_result.flags & flag) {
hidl_scan_data->flags |=
static_cast<std::underlying_type<StaScanDataFlagMask>::type>(
convertLegacyScanDataFlagToHidl(flag));
convertLegacyGscanDataFlagToHidl(flag));
}
}
hidl_scan_data->bucketsScanned = legacy_cached_scan_result.buckets_scanned;
@@ -418,7 +439,7 @@ bool convertLegacyCachedScanResultsToHidl(
result_idx < legacy_cached_scan_result.num_results;
result_idx++) {
StaScanResult hidl_scan_result;
if (!convertLegacyScanResultToHidl(
if (!convertLegacyGscanResultToHidl(
legacy_cached_scan_result.results[result_idx],
false,
&hidl_scan_result)) {
@@ -430,17 +451,18 @@ bool convertLegacyCachedScanResultsToHidl(
return true;
}
bool convertLegacyVectorOfCachedScanResultsToHidl(
bool convertLegacyVectorOfCachedGscanResultsToHidl(
const std::vector<legacy_hal::wifi_cached_scan_results>&
legacy_cached_scan_results,
std::vector<StaScanData>* hidl_scan_datas) {
if (!hidl_scan_datas) {
return false;
}
hidl_scan_datas->clear();
for (const auto& legacy_cached_scan_result : legacy_cached_scan_results) {
StaScanData hidl_scan_data;
if (!convertLegacyCachedScanResultsToHidl(legacy_cached_scan_result,
&hidl_scan_data)) {
if (!convertLegacyCachedGscanResultsToHidl(legacy_cached_scan_result,
&hidl_scan_data)) {
return false;
}
hidl_scan_datas->push_back(hidl_scan_data);

View File

@@ -54,20 +54,21 @@ bool convertLegacyFeaturesToHidlStaCapabilities(
bool convertLegacyApfCapabilitiesToHidl(
const legacy_hal::PacketFilterCapabilities& legacy_caps,
StaApfPacketFilterCapabilities* hidl_caps);
bool convertLegacyScanCapabilitiesToHidl(
bool convertLegacyGscanCapabilitiesToHidl(
const legacy_hal::wifi_gscan_capabilities& legacy_caps,
StaBackgroundScanCapabilities* hidl_caps);
bool convertHidlScanParamsToLegacy(
legacy_hal::wifi_band convertHidlGscanBandToLegacy(StaBackgroundScanBand band);
bool convertHidlGscanParamsToLegacy(
const StaBackgroundScanParameters& hidl_scan_params,
legacy_hal::wifi_scan_cmd_params* legacy_scan_params);
// |has_ie_data| indicates whether or not the wifi_scan_result includes 802.11
// Information Elements (IEs)
bool convertLegacyScanResultToHidl(
bool convertLegacyGscanResultToHidl(
const legacy_hal::wifi_scan_result& legacy_scan_result,
bool has_ie_data,
StaScanResult* hidl_scan_result);
// |cached_results| is assumed to not include IEs.
bool convertLegacyVectorOfCachedScanResultsToHidl(
bool convertLegacyVectorOfCachedGscanResultsToHidl(
const std::vector<legacy_hal::wifi_cached_scan_results>&
legacy_cached_scan_results,
std::vector<StaScanData>* hidl_scan_datas);