blob: 1635341e3f2f0b6c82c33cb5cc599216a1031d4f [file] [log] [blame]
Etan Cohenc5700402017-03-08 16:43:38 -08001/*
Gabriel Biren631a8112022-12-01 22:29:32 +00002 * Copyright (C) 2016 The Android Open Source Project
Etan Cohenc5700402017-03-08 16:43:38 -08003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef WIFI_FEATURE_FLAGS_H_
18#define WIFI_FEATURE_FLAGS_H_
19
Gabriel Biren631a8112022-12-01 22:29:32 +000020#include <android/hardware/wifi/1.6/IWifiChip.h>
Tomasz Wasilczykb424da72018-11-15 11:52:57 -080021
Etan Cohenc5700402017-03-08 16:43:38 -080022namespace android {
23namespace hardware {
24namespace wifi {
Gabriel Biren631a8112022-12-01 22:29:32 +000025namespace V1_6 {
26namespace implementation {
Roshan Pius200a17d2017-11-01 13:03:35 -070027namespace feature_flags {
Etan Cohenc5700402017-03-08 16:43:38 -080028
Tomasz Wasilczykb424da72018-11-15 11:52:57 -080029namespace chip_mode_ids {
30// These mode ID's should be unique (even across combo versions). Refer to
Gabriel Biren631a8112022-12-01 22:29:32 +000031// handleChipConfiguration() for it's usage.
32constexpr V1_0::ChipModeId kInvalid = UINT32_MAX;
Tomasz Wasilczykb424da72018-11-15 11:52:57 -080033// Mode ID's for V1
Gabriel Biren631a8112022-12-01 22:29:32 +000034constexpr V1_0::ChipModeId kV1Sta = 0;
35constexpr V1_0::ChipModeId kV1Ap = 1;
Tomasz Wasilczykb424da72018-11-15 11:52:57 -080036// Mode ID for V3
Gabriel Biren631a8112022-12-01 22:29:32 +000037constexpr V1_0::ChipModeId kV3 = 3;
Tomasz Wasilczykb424da72018-11-15 11:52:57 -080038} // namespace chip_mode_ids
39
Etan Cohenc5700402017-03-08 16:43:38 -080040class WifiFeatureFlags {
Ahmed ElArabawy687ce132022-01-11 16:42:48 -080041 public:
Roshan Pius200a17d2017-11-01 13:03:35 -070042 WifiFeatureFlags();
43 virtual ~WifiFeatureFlags() = default;
44
Gabriel Biren631a8112022-12-01 22:29:32 +000045 virtual std::vector<V1_6::IWifiChip::ChipMode> getChipModes(bool is_primary);
Roshan Pius2272ff82020-11-12 09:37:40 -080046
Ahmed ElArabawy687ce132022-01-11 16:42:48 -080047 private:
Gabriel Biren631a8112022-12-01 22:29:32 +000048 std::vector<V1_6::IWifiChip::ChipMode> getChipModesForPrimary();
Etan Cohenc5700402017-03-08 16:43:38 -080049};
50
Roshan Pius200a17d2017-11-01 13:03:35 -070051} // namespace feature_flags
Gabriel Biren631a8112022-12-01 22:29:32 +000052} // namespace implementation
53} // namespace V1_6
Etan Cohenc5700402017-03-08 16:43:38 -080054} // namespace wifi
55} // namespace hardware
56} // namespace android
Etan Cohenc5700402017-03-08 16:43:38 -080057
58#endif // WIFI_FEATURE_FLAGS_H_