Loading wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl +28 −22 Original line number Diff line number Diff line Loading @@ -80,24 +80,25 @@ interface IWifiChip { void startLoggingToDebugRingBuffer(in String ringName, in android.hardware.wifi.WifiDebugRingBufferVerboseLevel verboseLevel, in int maxIntervalInSec, in int minDataSizeInBytes); void stopLoggingToDebugRingBuffer(); void triggerSubsystemRestart(); const int NO_POWER_CAP_CONSTANT = 2147483647; void enableStaChannelForPeerNetwork(in android.hardware.wifi.IWifiChip.ChannelCategoryMask channelCategoryEnableFlag); const int NO_POWER_CAP_CONSTANT = 0x7FFFFFFF; @Backing(type="int") @VintfStability enum ChipCapabilityMask { DEBUG_MEMORY_FIRMWARE_DUMP = 1, DEBUG_MEMORY_DRIVER_DUMP = 2, DEBUG_RING_BUFFER_CONNECT_EVENT = 4, DEBUG_RING_BUFFER_POWER_EVENT = 8, DEBUG_RING_BUFFER_WAKELOCK_EVENT = 16, DEBUG_RING_BUFFER_VENDOR_DATA = 32, DEBUG_HOST_WAKE_REASON_STATS = 64, DEBUG_ERROR_ALERTS = 128, SET_TX_POWER_LIMIT = 256, D2D_RTT = 512, D2AP_RTT = 1024, USE_BODY_HEAD_SAR = 2048, SET_LATENCY_MODE = 4096, P2P_RAND_MAC = 8192, WIGIG = 16384, DEBUG_MEMORY_FIRMWARE_DUMP = (1 << 0), DEBUG_MEMORY_DRIVER_DUMP = (1 << 1), DEBUG_RING_BUFFER_CONNECT_EVENT = (1 << 2), DEBUG_RING_BUFFER_POWER_EVENT = (1 << 3), DEBUG_RING_BUFFER_WAKELOCK_EVENT = (1 << 4), DEBUG_RING_BUFFER_VENDOR_DATA = (1 << 5), DEBUG_HOST_WAKE_REASON_STATS = (1 << 6), DEBUG_ERROR_ALERTS = (1 << 7), SET_TX_POWER_LIMIT = (1 << 8), D2D_RTT = (1 << 9), D2AP_RTT = (1 << 10), USE_BODY_HEAD_SAR = (1 << 11), SET_LATENCY_MODE = (1 << 12), P2P_RAND_MAC = (1 << 13), WIGIG = (1 << 14), } @VintfStability parcelable ChipConcurrencyCombinationLimit { Loading Loading @@ -129,9 +130,9 @@ interface IWifiChip { } @Backing(type="int") @VintfStability enum CoexRestriction { WIFI_DIRECT = 1, SOFTAP = 2, WIFI_AWARE = 4, WIFI_DIRECT = (1 << 0), SOFTAP = (1 << 1), WIFI_AWARE = (1 << 2), } @VintfStability parcelable CoexUnsafeChannel { Loading Loading @@ -159,8 +160,13 @@ interface IWifiChip { } @Backing(type="int") @VintfStability enum UsableChannelFilter { CELLULAR_COEXISTENCE = 1, CONCURRENCY = 2, NAN_INSTANT_MODE = 4, CELLULAR_COEXISTENCE = (1 << 0), CONCURRENCY = (1 << 1), NAN_INSTANT_MODE = (1 << 2), } @Backing(type="int") @VintfStability enum ChannelCategoryMask { INDOOR_CHANNEL = (1 << 0), DFS_CHANNEL = (1 << 1), } } wifi/aidl/android/hardware/wifi/IWifiChip.aidl +25 −0 Original line number Diff line number Diff line Loading @@ -1106,4 +1106,29 @@ interface IWifiChip { * |WifiStatusCode.ERROR_UNKNOWN| */ void triggerSubsystemRestart(); /** * Channel category mask. */ @VintfStability @Backing(type="int") enum ChannelCategoryMask { INDOOR_CHANNEL = 1 << 0, DFS_CHANNEL = 1 << 1, } /** * API to enable or disable the feature of allowing current STA-connected channel for WFA GO, * SAP and Aware when the regulatory allows. * If the channel category is enabled and allowed by the regulatory, the HAL method * getUsableChannels() will contain the current STA-connected channel if that channel belongs * to that category. * @param channelCategoryEnableFlag bitmask of |ChannelCategoryMask|. * For each bit, 1 enables the channel category and 0 disables that channel category. * @throws ServiceSpecificException with one of the following values: * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, * |WifiStatusCode.ERROR_NOT_SUPPORTED|, * |WifiStatusCode.FAILURE_UNKNOWN| */ void enableStaChannelForPeerNetwork(in ChannelCategoryMask channelCategoryEnableFlag); } wifi/aidl/default/aidl_struct_util.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -3311,6 +3311,19 @@ bool convertLegacyWifiChipCapabilitiesToAidl( return true; } uint32_t convertAidlChannelCategoryToLegacy(uint32_t aidl_channel_category_mask) { uint32_t channel_category_mask = 0; if (aidl_channel_category_mask & static_cast<int32_t>(IWifiChip::ChannelCategoryMask::INDOOR_CHANNEL)) { channel_category_mask |= legacy_hal::WIFI_INDOOR_CHANNEL; } if (aidl_channel_category_mask & static_cast<int32_t>(IWifiChip::ChannelCategoryMask::DFS_CHANNEL)) { channel_category_mask |= legacy_hal::WIFI_DFS_CHANNEL; } return channel_category_mask; } } // namespace aidl_struct_util } // namespace wifi } // namespace hardware Loading wifi/aidl/default/aidl_struct_util.h +1 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,7 @@ bool convertLegacyNanBootstrappingRequestIndToAidl( bool convertLegacyNanBootstrappingConfirmIndToAidl( const legacy_hal::NanBootstrappingConfirmInd& legacy_ind, NanBootstrappingConfirmInd* aidl_ind); uint32_t convertAidlChannelCategoryToLegacy(uint32_t aidl_channel_category_mask); } // namespace aidl_struct_util } // namespace wifi } // namespace hardware Loading wifi/aidl/default/wifi_chip.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ namespace { using aidl::android::hardware::wifi::IfaceType; using aidl::android::hardware::wifi::IWifiChip; using CoexRestriction = aidl::android::hardware::wifi::IWifiChip::CoexRestriction; using ChannelCategoryMask = aidl::android::hardware::wifi::IWifiChip::ChannelCategoryMask; using android::base::unique_fd; constexpr char kCpioMagic[] = "070701"; Loading Loading @@ -685,6 +686,13 @@ ndk::ScopedAStatus WifiChip::getWifiChipCapabilities(WifiChipCapabilities* _aidl &WifiChip::getWifiChipCapabilitiesInternal, _aidl_return); } ndk::ScopedAStatus WifiChip::enableStaChannelForPeerNetwork( ChannelCategoryMask in_channelCategoryEnableFlag) { return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID, &WifiChip::enableStaChannelForPeerNetworkInternal, in_channelCategoryEnableFlag); } void WifiChip::invalidateAndRemoveAllIfaces() { invalidateAndClearBridgedApAll(); invalidateAndClearAll(ap_ifaces_); Loading Loading @@ -1428,6 +1436,14 @@ std::pair<WifiChipCapabilities, ndk::ScopedAStatus> WifiChip::getWifiChipCapabil return {aidl_chip_capabilities, ndk::ScopedAStatus::ok()}; } ndk::ScopedAStatus WifiChip::enableStaChannelForPeerNetworkInternal( ChannelCategoryMask channelCategoryEnableFlag) { auto legacy_status = legacy_hal_.lock()->enableStaChannelForPeerNetwork( aidl_struct_util::convertAidlChannelCategoryToLegacy( static_cast<uint32_t>(channelCategoryEnableFlag))); return createWifiStatusFromLegacyError(legacy_status); } ndk::ScopedAStatus WifiChip::triggerSubsystemRestartInternal() { auto legacy_status = legacy_hal_.lock()->triggerSubsystemRestart(); return createWifiStatusFromLegacyError(legacy_status); Loading Loading
wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl +28 −22 Original line number Diff line number Diff line Loading @@ -80,24 +80,25 @@ interface IWifiChip { void startLoggingToDebugRingBuffer(in String ringName, in android.hardware.wifi.WifiDebugRingBufferVerboseLevel verboseLevel, in int maxIntervalInSec, in int minDataSizeInBytes); void stopLoggingToDebugRingBuffer(); void triggerSubsystemRestart(); const int NO_POWER_CAP_CONSTANT = 2147483647; void enableStaChannelForPeerNetwork(in android.hardware.wifi.IWifiChip.ChannelCategoryMask channelCategoryEnableFlag); const int NO_POWER_CAP_CONSTANT = 0x7FFFFFFF; @Backing(type="int") @VintfStability enum ChipCapabilityMask { DEBUG_MEMORY_FIRMWARE_DUMP = 1, DEBUG_MEMORY_DRIVER_DUMP = 2, DEBUG_RING_BUFFER_CONNECT_EVENT = 4, DEBUG_RING_BUFFER_POWER_EVENT = 8, DEBUG_RING_BUFFER_WAKELOCK_EVENT = 16, DEBUG_RING_BUFFER_VENDOR_DATA = 32, DEBUG_HOST_WAKE_REASON_STATS = 64, DEBUG_ERROR_ALERTS = 128, SET_TX_POWER_LIMIT = 256, D2D_RTT = 512, D2AP_RTT = 1024, USE_BODY_HEAD_SAR = 2048, SET_LATENCY_MODE = 4096, P2P_RAND_MAC = 8192, WIGIG = 16384, DEBUG_MEMORY_FIRMWARE_DUMP = (1 << 0), DEBUG_MEMORY_DRIVER_DUMP = (1 << 1), DEBUG_RING_BUFFER_CONNECT_EVENT = (1 << 2), DEBUG_RING_BUFFER_POWER_EVENT = (1 << 3), DEBUG_RING_BUFFER_WAKELOCK_EVENT = (1 << 4), DEBUG_RING_BUFFER_VENDOR_DATA = (1 << 5), DEBUG_HOST_WAKE_REASON_STATS = (1 << 6), DEBUG_ERROR_ALERTS = (1 << 7), SET_TX_POWER_LIMIT = (1 << 8), D2D_RTT = (1 << 9), D2AP_RTT = (1 << 10), USE_BODY_HEAD_SAR = (1 << 11), SET_LATENCY_MODE = (1 << 12), P2P_RAND_MAC = (1 << 13), WIGIG = (1 << 14), } @VintfStability parcelable ChipConcurrencyCombinationLimit { Loading Loading @@ -129,9 +130,9 @@ interface IWifiChip { } @Backing(type="int") @VintfStability enum CoexRestriction { WIFI_DIRECT = 1, SOFTAP = 2, WIFI_AWARE = 4, WIFI_DIRECT = (1 << 0), SOFTAP = (1 << 1), WIFI_AWARE = (1 << 2), } @VintfStability parcelable CoexUnsafeChannel { Loading Loading @@ -159,8 +160,13 @@ interface IWifiChip { } @Backing(type="int") @VintfStability enum UsableChannelFilter { CELLULAR_COEXISTENCE = 1, CONCURRENCY = 2, NAN_INSTANT_MODE = 4, CELLULAR_COEXISTENCE = (1 << 0), CONCURRENCY = (1 << 1), NAN_INSTANT_MODE = (1 << 2), } @Backing(type="int") @VintfStability enum ChannelCategoryMask { INDOOR_CHANNEL = (1 << 0), DFS_CHANNEL = (1 << 1), } }
wifi/aidl/android/hardware/wifi/IWifiChip.aidl +25 −0 Original line number Diff line number Diff line Loading @@ -1106,4 +1106,29 @@ interface IWifiChip { * |WifiStatusCode.ERROR_UNKNOWN| */ void triggerSubsystemRestart(); /** * Channel category mask. */ @VintfStability @Backing(type="int") enum ChannelCategoryMask { INDOOR_CHANNEL = 1 << 0, DFS_CHANNEL = 1 << 1, } /** * API to enable or disable the feature of allowing current STA-connected channel for WFA GO, * SAP and Aware when the regulatory allows. * If the channel category is enabled and allowed by the regulatory, the HAL method * getUsableChannels() will contain the current STA-connected channel if that channel belongs * to that category. * @param channelCategoryEnableFlag bitmask of |ChannelCategoryMask|. * For each bit, 1 enables the channel category and 0 disables that channel category. * @throws ServiceSpecificException with one of the following values: * |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|, * |WifiStatusCode.ERROR_NOT_SUPPORTED|, * |WifiStatusCode.FAILURE_UNKNOWN| */ void enableStaChannelForPeerNetwork(in ChannelCategoryMask channelCategoryEnableFlag); }
wifi/aidl/default/aidl_struct_util.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -3311,6 +3311,19 @@ bool convertLegacyWifiChipCapabilitiesToAidl( return true; } uint32_t convertAidlChannelCategoryToLegacy(uint32_t aidl_channel_category_mask) { uint32_t channel_category_mask = 0; if (aidl_channel_category_mask & static_cast<int32_t>(IWifiChip::ChannelCategoryMask::INDOOR_CHANNEL)) { channel_category_mask |= legacy_hal::WIFI_INDOOR_CHANNEL; } if (aidl_channel_category_mask & static_cast<int32_t>(IWifiChip::ChannelCategoryMask::DFS_CHANNEL)) { channel_category_mask |= legacy_hal::WIFI_DFS_CHANNEL; } return channel_category_mask; } } // namespace aidl_struct_util } // namespace wifi } // namespace hardware Loading
wifi/aidl/default/aidl_struct_util.h +1 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,7 @@ bool convertLegacyNanBootstrappingRequestIndToAidl( bool convertLegacyNanBootstrappingConfirmIndToAidl( const legacy_hal::NanBootstrappingConfirmInd& legacy_ind, NanBootstrappingConfirmInd* aidl_ind); uint32_t convertAidlChannelCategoryToLegacy(uint32_t aidl_channel_category_mask); } // namespace aidl_struct_util } // namespace wifi } // namespace hardware Loading
wifi/aidl/default/wifi_chip.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ namespace { using aidl::android::hardware::wifi::IfaceType; using aidl::android::hardware::wifi::IWifiChip; using CoexRestriction = aidl::android::hardware::wifi::IWifiChip::CoexRestriction; using ChannelCategoryMask = aidl::android::hardware::wifi::IWifiChip::ChannelCategoryMask; using android::base::unique_fd; constexpr char kCpioMagic[] = "070701"; Loading Loading @@ -685,6 +686,13 @@ ndk::ScopedAStatus WifiChip::getWifiChipCapabilities(WifiChipCapabilities* _aidl &WifiChip::getWifiChipCapabilitiesInternal, _aidl_return); } ndk::ScopedAStatus WifiChip::enableStaChannelForPeerNetwork( ChannelCategoryMask in_channelCategoryEnableFlag) { return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID, &WifiChip::enableStaChannelForPeerNetworkInternal, in_channelCategoryEnableFlag); } void WifiChip::invalidateAndRemoveAllIfaces() { invalidateAndClearBridgedApAll(); invalidateAndClearAll(ap_ifaces_); Loading Loading @@ -1428,6 +1436,14 @@ std::pair<WifiChipCapabilities, ndk::ScopedAStatus> WifiChip::getWifiChipCapabil return {aidl_chip_capabilities, ndk::ScopedAStatus::ok()}; } ndk::ScopedAStatus WifiChip::enableStaChannelForPeerNetworkInternal( ChannelCategoryMask channelCategoryEnableFlag) { auto legacy_status = legacy_hal_.lock()->enableStaChannelForPeerNetwork( aidl_struct_util::convertAidlChannelCategoryToLegacy( static_cast<uint32_t>(channelCategoryEnableFlag))); return createWifiStatusFromLegacyError(legacy_status); } ndk::ScopedAStatus WifiChip::triggerSubsystemRestartInternal() { auto legacy_status = legacy_hal_.lock()->triggerSubsystemRestart(); return createWifiStatusFromLegacyError(legacy_status); Loading