mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Instead of including wifi_hal.h in the legacy_hal namespace, import the types.
Including the header inside a namespace leads to ODR violations, which are normally benign but can cause problems if we want to use something like CFI in the wifi HAL. Change-Id: I80cc854632da7e18e5c208ba9210de44b31abbdb
This commit is contained in:
@@ -23,15 +23,9 @@
|
||||
#include <thread>
|
||||
#include <vector>
|
||||
|
||||
#include <hardware_legacy/wifi_hal.h>
|
||||
#include <wifi_system/interface_tool.h>
|
||||
|
||||
// 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.
|
||||
#include <sys/socket.h>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
@@ -40,9 +34,280 @@ 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
|
||||
// Import all the types defined inside the legacy HAL header files into this
|
||||
// namespace.
|
||||
#include <hardware_legacy/wifi_hal.h>
|
||||
using ::FRAME_TYPE_80211_MGMT;
|
||||
using ::FRAME_TYPE_ETHERNET_II;
|
||||
using ::FRAME_TYPE_UNKNOWN;
|
||||
using ::NAN_CHANNEL_24G_BAND;
|
||||
using ::NAN_CHANNEL_5G_BAND_HIGH;
|
||||
using ::NAN_CHANNEL_5G_BAND_LOW;
|
||||
using ::NAN_DISABLE_RANGE_REPORT;
|
||||
using ::NAN_DO_NOT_USE_SRF;
|
||||
using ::NAN_DP_CHANNEL_NOT_REQUESTED;
|
||||
using ::NAN_DP_CONFIG_NO_SECURITY;
|
||||
using ::NAN_DP_CONFIG_SECURITY;
|
||||
using ::NAN_DP_END;
|
||||
using ::NAN_DP_FORCE_CHANNEL_SETUP;
|
||||
using ::NAN_DP_INITIATOR_RESPONSE;
|
||||
using ::NAN_DP_INTERFACE_CREATE;
|
||||
using ::NAN_DP_INTERFACE_DELETE;
|
||||
using ::NAN_DP_REQUEST_ACCEPT;
|
||||
using ::NAN_DP_REQUEST_CHANNEL_SETUP;
|
||||
using ::NAN_DP_REQUEST_REJECT;
|
||||
using ::NAN_DP_RESPONDER_RESPONSE;
|
||||
using ::NAN_GET_CAPABILITIES;
|
||||
using ::NAN_MATCH_ALG_MATCH_CONTINUOUS;
|
||||
using ::NAN_MATCH_ALG_MATCH_NEVER;
|
||||
using ::NAN_MATCH_ALG_MATCH_ONCE;
|
||||
using ::NAN_PUBLISH_TYPE_SOLICITED;
|
||||
using ::NAN_PUBLISH_TYPE_UNSOLICITED;
|
||||
using ::NAN_PUBLISH_TYPE_UNSOLICITED_SOLICITED;
|
||||
using ::NAN_RANGING_AUTO_RESPONSE_DISABLE;
|
||||
using ::NAN_RANGING_AUTO_RESPONSE_ENABLE;
|
||||
using ::NAN_RANGING_DISABLE;
|
||||
using ::NAN_RANGING_ENABLE;
|
||||
using ::NAN_RESPONSE_BEACON_SDF_PAYLOAD;
|
||||
using ::NAN_RESPONSE_CONFIG;
|
||||
using ::NAN_RESPONSE_DISABLED;
|
||||
using ::NAN_RESPONSE_ENABLED;
|
||||
using ::NAN_RESPONSE_ERROR;
|
||||
using ::NAN_RESPONSE_PUBLISH;
|
||||
using ::NAN_RESPONSE_PUBLISH_CANCEL;
|
||||
using ::NAN_RESPONSE_STATS;
|
||||
using ::NAN_RESPONSE_SUBSCRIBE;
|
||||
using ::NAN_RESPONSE_SUBSCRIBE_CANCEL;
|
||||
using ::NAN_RESPONSE_TCA;
|
||||
using ::NAN_RESPONSE_TRANSMIT_FOLLOWUP;
|
||||
using ::NAN_SECURITY_KEY_INPUT_PASSPHRASE;
|
||||
using ::NAN_SECURITY_KEY_INPUT_PASSPHRASE;
|
||||
using ::NAN_SECURITY_KEY_INPUT_PMK;
|
||||
using ::NAN_SECURITY_KEY_INPUT_PMK;
|
||||
using ::NAN_SERVICE_ACCEPT_POLICY_ALL;
|
||||
using ::NAN_SERVICE_ACCEPT_POLICY_NONE;
|
||||
using ::NAN_SRF_ATTR_BLOOM_FILTER;
|
||||
using ::NAN_SRF_ATTR_PARTIAL_MAC_ADDR;
|
||||
using ::NAN_SRF_INCLUDE_DO_NOT_RESPOND;
|
||||
using ::NAN_SRF_INCLUDE_RESPOND;
|
||||
using ::NAN_SSI_NOT_REQUIRED_IN_MATCH_IND;
|
||||
using ::NAN_SSI_REQUIRED_IN_MATCH_IND;
|
||||
using ::NAN_STATUS_ALREADY_ENABLED;
|
||||
using ::NAN_STATUS_FOLLOWUP_QUEUE_FULL;
|
||||
using ::NAN_STATUS_INTERNAL_FAILURE;
|
||||
using ::NAN_STATUS_INVALID_NDP_ID;
|
||||
using ::NAN_STATUS_INVALID_PARAM;
|
||||
using ::NAN_STATUS_INVALID_PUBLISH_SUBSCRIBE_ID;
|
||||
using ::NAN_STATUS_INVALID_REQUESTOR_INSTANCE_ID;
|
||||
using ::NAN_STATUS_NAN_NOT_ALLOWED;
|
||||
using ::NAN_STATUS_NO_OTA_ACK;
|
||||
using ::NAN_STATUS_NO_RESOURCE_AVAILABLE;
|
||||
using ::NAN_STATUS_PROTOCOL_FAILURE;
|
||||
using ::NAN_STATUS_SUCCESS;
|
||||
using ::NAN_STATUS_UNSUPPORTED_CONCURRENCY_NAN_DISABLED;
|
||||
using ::NAN_SUBSCRIBE_TYPE_ACTIVE;
|
||||
using ::NAN_SUBSCRIBE_TYPE_PASSIVE;
|
||||
using ::NAN_TRANSMIT_IN_DW;
|
||||
using ::NAN_TRANSMIT_IN_FAW;
|
||||
using ::NAN_TX_PRIORITY_HIGH;
|
||||
using ::NAN_TX_PRIORITY_NORMAL;
|
||||
using ::NAN_TX_TYPE_BROADCAST;
|
||||
using ::NAN_TX_TYPE_UNICAST;
|
||||
using ::NAN_USE_SRF;
|
||||
using ::NanBeaconSdfPayloadInd;
|
||||
using ::NanCapabilities;
|
||||
using ::NanChannelInfo;
|
||||
using ::NanConfigRequest;
|
||||
using ::NanDataPathChannelCfg;
|
||||
using ::NanDataPathConfirmInd;
|
||||
using ::NanDataPathEndInd;
|
||||
using ::NanDataPathIndicationResponse;
|
||||
using ::NanDataPathInitiatorRequest;
|
||||
using ::NanDataPathRequestInd;
|
||||
using ::NanDataPathScheduleUpdateInd;
|
||||
using ::NanDisabledInd;
|
||||
using ::NanDiscEngEventInd;
|
||||
using ::NanEnableRequest;
|
||||
using ::NanFollowupInd;
|
||||
using ::NanMatchAlg;
|
||||
using ::NanMatchExpiredInd;
|
||||
using ::NanMatchInd;
|
||||
using ::NanPublishCancelRequest;
|
||||
using ::NanPublishRequest;
|
||||
using ::NanPublishTerminatedInd;
|
||||
using ::NanPublishType;
|
||||
using ::NanRangeReportInd;
|
||||
using ::NanRangeRequestInd;
|
||||
using ::NanResponseMsg;
|
||||
using ::NanSRFType;
|
||||
using ::NanStatusType;
|
||||
using ::NanSubscribeCancelRequest;
|
||||
using ::NanSubscribeRequest;
|
||||
using ::NanSubscribeTerminatedInd;
|
||||
using ::NanSubscribeType;
|
||||
using ::NanTransmitFollowupInd;
|
||||
using ::NanTransmitFollowupRequest;
|
||||
using ::NanTxType;
|
||||
using ::ROAMING_DISABLE;
|
||||
using ::ROAMING_ENABLE;
|
||||
using ::RTT_PEER_AP;
|
||||
using ::RTT_PEER_NAN;
|
||||
using ::RTT_PEER_P2P_CLIENT;
|
||||
using ::RTT_PEER_P2P_GO;
|
||||
using ::RTT_PEER_STA;
|
||||
using ::RTT_STATUS_ABORTED;
|
||||
using ::RTT_STATUS_FAILURE;
|
||||
using ::RTT_STATUS_FAIL_AP_ON_DIFF_CHANNEL;
|
||||
using ::RTT_STATUS_FAIL_BUSY_TRY_LATER;
|
||||
using ::RTT_STATUS_FAIL_FTM_PARAM_OVERRIDE;
|
||||
using ::RTT_STATUS_FAIL_INVALID_TS;
|
||||
using ::RTT_STATUS_FAIL_NOT_SCHEDULED_YET;
|
||||
using ::RTT_STATUS_FAIL_NO_CAPABILITY;
|
||||
using ::RTT_STATUS_FAIL_NO_RSP;
|
||||
using ::RTT_STATUS_FAIL_PROTOCOL;
|
||||
using ::RTT_STATUS_FAIL_REJECTED;
|
||||
using ::RTT_STATUS_FAIL_SCHEDULE;
|
||||
using ::RTT_STATUS_FAIL_TM_TIMEOUT;
|
||||
using ::RTT_STATUS_INVALID_REQ;
|
||||
using ::RTT_STATUS_NAN_RANGING_CONCURRENCY_NOT_SUPPORTED;
|
||||
using ::RTT_STATUS_NAN_RANGING_PROTOCOL_FAILURE;
|
||||
using ::RTT_STATUS_NO_WIFI;
|
||||
using ::RTT_STATUS_SUCCESS;
|
||||
using ::RTT_TYPE_1_SIDED;
|
||||
using ::RTT_TYPE_2_SIDED;
|
||||
using ::RX_PKT_FATE_DRV_DROP_FILTER;
|
||||
using ::RX_PKT_FATE_DRV_DROP_INVALID;
|
||||
using ::RX_PKT_FATE_DRV_DROP_NOBUFS;
|
||||
using ::RX_PKT_FATE_DRV_DROP_OTHER;
|
||||
using ::RX_PKT_FATE_DRV_QUEUED;
|
||||
using ::RX_PKT_FATE_FW_DROP_FILTER;
|
||||
using ::RX_PKT_FATE_FW_DROP_INVALID;
|
||||
using ::RX_PKT_FATE_FW_DROP_NOBUFS;
|
||||
using ::RX_PKT_FATE_FW_DROP_OTHER;
|
||||
using ::RX_PKT_FATE_FW_QUEUED;
|
||||
using ::RX_PKT_FATE_SUCCESS;
|
||||
using ::TX_PKT_FATE_ACKED;
|
||||
using ::TX_PKT_FATE_DRV_DROP_INVALID;
|
||||
using ::TX_PKT_FATE_DRV_DROP_NOBUFS;
|
||||
using ::TX_PKT_FATE_DRV_DROP_OTHER;
|
||||
using ::TX_PKT_FATE_DRV_QUEUED;
|
||||
using ::TX_PKT_FATE_FW_DROP_INVALID;
|
||||
using ::TX_PKT_FATE_FW_DROP_NOBUFS;
|
||||
using ::TX_PKT_FATE_FW_DROP_OTHER;
|
||||
using ::TX_PKT_FATE_FW_QUEUED;
|
||||
using ::TX_PKT_FATE_SENT;
|
||||
using ::WIFI_AC_BE;
|
||||
using ::WIFI_AC_BK;
|
||||
using ::WIFI_AC_VI;
|
||||
using ::WIFI_AC_VO;
|
||||
using ::WIFI_BAND_A;
|
||||
using ::WIFI_BAND_ABG;
|
||||
using ::WIFI_BAND_ABG_WITH_DFS;
|
||||
using ::WIFI_BAND_A_DFS;
|
||||
using ::WIFI_BAND_A_WITH_DFS;
|
||||
using ::WIFI_BAND_BG;
|
||||
using ::WIFI_BAND_UNSPECIFIED;
|
||||
using ::WIFI_CHAN_WIDTH_10;
|
||||
using ::WIFI_CHAN_WIDTH_160;
|
||||
using ::WIFI_CHAN_WIDTH_20;
|
||||
using ::WIFI_CHAN_WIDTH_40;
|
||||
using ::WIFI_CHAN_WIDTH_5;
|
||||
using ::WIFI_CHAN_WIDTH_5;
|
||||
using ::WIFI_CHAN_WIDTH_80;
|
||||
using ::WIFI_CHAN_WIDTH_80P80;
|
||||
using ::WIFI_CHAN_WIDTH_INVALID;
|
||||
using ::WIFI_DUAL_STA_NON_TRANSIENT_UNBIASED;
|
||||
using ::WIFI_DUAL_STA_TRANSIENT_PREFER_PRIMARY;
|
||||
using ::WIFI_ERROR_BUSY;
|
||||
using ::WIFI_ERROR_INVALID_ARGS;
|
||||
using ::WIFI_ERROR_INVALID_REQUEST_ID;
|
||||
using ::WIFI_ERROR_NONE;
|
||||
using ::WIFI_ERROR_NOT_AVAILABLE;
|
||||
using ::WIFI_ERROR_NOT_SUPPORTED;
|
||||
using ::WIFI_ERROR_OUT_OF_MEMORY;
|
||||
using ::WIFI_ERROR_TIMED_OUT;
|
||||
using ::WIFI_ERROR_TOO_MANY_REQUESTS;
|
||||
using ::WIFI_ERROR_UNINITIALIZED;
|
||||
using ::WIFI_ERROR_UNKNOWN;
|
||||
using ::WIFI_INTERFACE_TYPE_AP;
|
||||
using ::WIFI_INTERFACE_TYPE_NAN;
|
||||
using ::WIFI_INTERFACE_TYPE_P2P;
|
||||
using ::WIFI_INTERFACE_TYPE_STA;
|
||||
using ::WIFI_LATENCY_MODE_LOW;
|
||||
using ::WIFI_LATENCY_MODE_NORMAL;
|
||||
using ::WIFI_LOGGER_CONNECT_EVENT_SUPPORTED;
|
||||
using ::WIFI_LOGGER_DRIVER_DUMP_SUPPORTED;
|
||||
using ::WIFI_LOGGER_MEMORY_DUMP_SUPPORTED;
|
||||
using ::WIFI_LOGGER_PACKET_FATE_SUPPORTED;
|
||||
using ::WIFI_LOGGER_POWER_EVENT_SUPPORTED;
|
||||
using ::WIFI_LOGGER_WAKE_LOCK_SUPPORTED;
|
||||
using ::WIFI_MOTION_EXPECTED;
|
||||
using ::WIFI_MOTION_NOT_EXPECTED;
|
||||
using ::WIFI_MOTION_UNKNOWN;
|
||||
using ::WIFI_POWER_SCENARIO_ON_BODY_CELL_OFF;
|
||||
using ::WIFI_POWER_SCENARIO_ON_BODY_CELL_ON;
|
||||
using ::WIFI_POWER_SCENARIO_ON_HEAD_CELL_OFF;
|
||||
using ::WIFI_POWER_SCENARIO_ON_HEAD_CELL_ON;
|
||||
using ::WIFI_POWER_SCENARIO_VOICE_CALL;
|
||||
using ::WIFI_RTT_BW_10;
|
||||
using ::WIFI_RTT_BW_160;
|
||||
using ::WIFI_RTT_BW_20;
|
||||
using ::WIFI_RTT_BW_40;
|
||||
using ::WIFI_RTT_BW_5;
|
||||
using ::WIFI_RTT_BW_80;
|
||||
using ::WIFI_RTT_PREAMBLE_HE;
|
||||
using ::WIFI_RTT_PREAMBLE_HT;
|
||||
using ::WIFI_RTT_PREAMBLE_LEGACY;
|
||||
using ::WIFI_RTT_PREAMBLE_VHT;
|
||||
using ::WIFI_SCAN_FLAG_INTERRUPTED;
|
||||
using ::WIFI_SUCCESS;
|
||||
using ::WLAN_MAC_2_4_BAND;
|
||||
using ::WLAN_MAC_5_0_BAND;
|
||||
using ::WLAN_MAC_6_0_BAND;
|
||||
using ::frame_info;
|
||||
using ::frame_type;
|
||||
using ::fw_roaming_state_t;
|
||||
using ::mac_addr;
|
||||
using ::rtt_peer_type;
|
||||
using ::ssid_t;
|
||||
using ::transaction_id;
|
||||
using ::wifi_band;
|
||||
using ::wifi_cached_scan_results;
|
||||
using ::wifi_channel_info;
|
||||
using ::wifi_channel_stat;
|
||||
using ::wifi_channel_width;
|
||||
using ::wifi_coex_restriction;
|
||||
using ::wifi_coex_unsafe_channel;
|
||||
using ::wifi_error;
|
||||
using ::wifi_gscan_capabilities;
|
||||
using ::wifi_hal_fn;
|
||||
using ::wifi_information_element;
|
||||
using ::wifi_interface_type;
|
||||
using ::wifi_latency_mode;
|
||||
using ::wifi_lci_information;
|
||||
using ::wifi_lcr_information;
|
||||
using ::wifi_motion_pattern;
|
||||
using ::wifi_multi_sta_use_case;
|
||||
using ::wifi_power_scenario;
|
||||
using ::wifi_rate;
|
||||
using ::wifi_request_id;
|
||||
using ::wifi_ring_buffer_status;
|
||||
using ::wifi_roaming_capabilities;
|
||||
using ::wifi_roaming_config;
|
||||
using ::wifi_rtt_bw;
|
||||
using ::wifi_rtt_capabilities;
|
||||
using ::wifi_rtt_config;
|
||||
using ::wifi_rtt_preamble;
|
||||
using ::wifi_rtt_responder;
|
||||
using ::wifi_rtt_result;
|
||||
using ::wifi_rtt_status;
|
||||
using ::wifi_rtt_type;
|
||||
using ::wifi_rx_packet_fate;
|
||||
using ::wifi_rx_report;
|
||||
using ::wifi_scan_bucket_spec;
|
||||
using ::wifi_scan_cmd_params;
|
||||
using ::wifi_scan_result;
|
||||
using ::wifi_tx_packet_fate;
|
||||
using ::wifi_tx_report;
|
||||
|
||||
// APF capabilities supported by the iface.
|
||||
struct PacketFilterCapabilities {
|
||||
|
||||
@@ -17,13 +17,14 @@
|
||||
#ifndef WIFI_LEGACY_HAL_STUBS_H_
|
||||
#define WIFI_LEGACY_HAL_STUBS_H_
|
||||
|
||||
#include <hardware_legacy/wifi_hal.h>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace wifi {
|
||||
namespace V1_5 {
|
||||
namespace implementation {
|
||||
namespace legacy_hal {
|
||||
#include <hardware_legacy/wifi_hal.h>
|
||||
|
||||
bool initHalFuncTableWithStubs(wifi_hal_fn* hal_fn);
|
||||
} // namespace legacy_hal
|
||||
|
||||
Reference in New Issue
Block a user