X-Git-Url: https://git.stricted.de/?a=blobdiff_plain;f=common.h;h=7f270a35e0d177a3434357bff619d419063b83cc;hb=47e18f37d0b9942a39c87c449e53bfb8f05106b1;hp=61d12dcc227775fd494f6b03501214b98461f559;hpb=d919889a135c636281febe705e436ad6ac467526;p=GitHub%2FMotorolaMobilityLLC%2Fhardware-samsung_slsi-scsc_wifibt-wifi_hal.git diff --git a/common.h b/common.h index 61d12dc..7f270a3 100755 --- a/common.h +++ b/common.h @@ -4,6 +4,9 @@ #ifndef __WIFI_HAL_COMMON_H__ #define __WIFI_HAL_COMMON_H__ +#ifdef LOG_TAG +#undef LOG_TAG +#endif #define LOG_TAG "WifiHAL" #include @@ -16,6 +19,11 @@ #define DEFAULT_CMD_SIZE (64) #define DOT11_OUI_LEN 3 +typedef struct { + int num_bssid; + mac_addr bssids[MAX_BLACKLIST_BSSID]; +} wifi_bssid_params; + /* Vendor OUI - This is a unique identifier that identifies organization. Lets code Android specific functions with Google OUI; although vendors can do more @@ -25,6 +33,69 @@ const uint32_t GOOGLE_OUI = 0x001A11; /* TODO: define vendor OUI here */ +typedef enum { + + GSCAN_ATTRIBUTE_NUM_BUCKETS = 10, + GSCAN_ATTRIBUTE_BASE_PERIOD, + GSCAN_ATTRIBUTE_BUCKETS_BAND, + GSCAN_ATTRIBUTE_BUCKET_ID, + GSCAN_ATTRIBUTE_BUCKET_PERIOD, + GSCAN_ATTRIBUTE_BUCKET_NUM_CHANNELS, + GSCAN_ATTRIBUTE_BUCKET_CHANNELS, + GSCAN_ATTRIBUTE_NUM_AP_PER_SCAN, + GSCAN_ATTRIBUTE_REPORT_THRESHOLD, + GSCAN_ATTRIBUTE_NUM_SCANS_TO_CACHE, + GSCAN_ATTRIBUTE_REPORT_THRESHOLD_NUM_SCANS, + GSCAN_ATTRIBUTE_BAND = GSCAN_ATTRIBUTE_BUCKETS_BAND, + + GSCAN_ATTRIBUTE_ENABLE_FEATURE = 20, + GSCAN_ATTRIBUTE_SCAN_RESULTS_COMPLETE, /* indicates no more results */ + GSCAN_ATTRIBUTE_REPORT_EVENTS, + + /* remaining reserved for additional attributes */ + GSCAN_ATTRIBUTE_NUM_OF_RESULTS = 30, + GSCAN_ATTRIBUTE_SCAN_RESULTS, /* flat array of wifi_scan_result */ + GSCAN_ATTRIBUTE_NUM_CHANNELS, + GSCAN_ATTRIBUTE_CHANNEL_LIST, + GSCAN_ATTRIBUTE_SCAN_ID, + GSCAN_ATTRIBUTE_SCAN_FLAGS, + GSCAN_ATTRIBUTE_SCAN_BUCKET_BIT, + + /* remaining reserved for additional attributes */ + + GSCAN_ATTRIBUTE_SSID = 40, + GSCAN_ATTRIBUTE_BSSID, + GSCAN_ATTRIBUTE_CHANNEL, + GSCAN_ATTRIBUTE_RSSI, + GSCAN_ATTRIBUTE_TIMESTAMP, + GSCAN_ATTRIBUTE_RTT, + GSCAN_ATTRIBUTE_RTTSD, + + /* remaining reserved for additional attributes */ + + GSCAN_ATTRIBUTE_HOTLIST_BSSIDS = 50, + GSCAN_ATTRIBUTE_RSSI_LOW, + GSCAN_ATTRIBUTE_RSSI_HIGH, + GSCAN_ATTRIBUTE_HOTLIST_ELEM, + GSCAN_ATTRIBUTE_HOTLIST_FLUSH, + GSCAN_ATTRIBUTE_CHANNEL_NUMBER, + + /* remaining reserved for additional attributes */ + GSCAN_ATTRIBUTE_RSSI_SAMPLE_SIZE = 60, + GSCAN_ATTRIBUTE_LOST_AP_SAMPLE_SIZE, + GSCAN_ATTRIBUTE_MIN_BREACHING, + GSCAN_ATTRIBUTE_SIGNIFICANT_CHANGE_BSSIDS, + + GSCAN_ATTRIBUTE_BUCKET_STEP_COUNT = 70, + GSCAN_ATTRIBUTE_BUCKET_EXPONENT, + GSCAN_ATTRIBUTE_BUCKET_MAX_PERIOD, + + GSCAN_ATTRIBUTE_NUM_BSSID, + GSCAN_ATTRIBUTE_BLACKLIST_BSSID, + + GSCAN_ATTRIBUTE_MAX + +} GSCAN_ATTRIBUTE; /* This enum defines ranges for various commands; commands themselves @@ -55,10 +126,17 @@ typedef enum { ANDROID_NL80211_SUBCMD_LSTATS_RANGE_START = 0x1200, ANDROID_NL80211_SUBCMD_LSTATS_RANGE_END = 0x12FF, + /* define all Logger related commands between 0x1400 and 0x14FF */ + ANDROID_NL80211_SUBCMD_DEBUG_RANGE_START = 0x1400, + ANDROID_NL80211_SUBCMD_DEBUG_RANGE_END = 0x14FF, + /* define all wifi offload related commands between 0x1400 and 0x14FF */ ANDROID_NL80211_SUBCMD_WIFI_OFFLOAD_RANGE_START = 0x1400, ANDROID_NL80211_SUBCMD_WIFI_OFFLOAD_RANGE_END = 0x14FF, + /* Range for NAN commands */ + ANDROID_NL80211_SUBCMD_NAN_RANGE_START = 0x1500, + ANDROID_NL80211_SUBCMD_NAN_RANGE_END = 0x15FF, /* This is reserved for future usage */ } ANDROID_VENDOR_SUB_COMMAND; @@ -77,7 +155,33 @@ typedef enum { SLSI_NL80211_VENDOR_SUBCMD_SET_GSCAN_OUI, SLSI_NL80211_VENDOR_SUBCMD_SET_NODFS, SLSI_NL80211_VENDOR_SUBCMD_START_KEEP_ALIVE_OFFLOAD, - SLSI_NL80211_VENDOR_SUBCMD_STOP_KEEP_ALIVE_OFFLOAD + SLSI_NL80211_VENDOR_SUBCMD_STOP_KEEP_ALIVE_OFFLOAD, + SLSI_NL80211_VENDOR_SUBCMD_SET_BSSID_BLACKLIST, + SLSI_NL80211_VENDOR_SUBCMD_SET_EPNO_LIST, + SLSI_NL80211_VENDOR_SUBCMD_SET_HS_LIST, + SLSI_NL80211_VENDOR_SUBCMD_RESET_HS_LIST, + SLSI_NL80211_VENDOR_SUBCMD_SET_RSSI_MONITOR, + SLSI_NL80211_VENDOR_SUBCMD_LLS_SET_INFO, + SLSI_NL80211_VENDOR_SUBCMD_LLS_GET_INFO, + SLSI_NL80211_VENDOR_SUBCMD_LLS_CLEAR_INFO, + SLSI_NL80211_VENDOR_SUBCMD_GET_FEATURE_SET, + SLSI_NL80211_VENDOR_SUBCMD_SET_COUNTRY_CODE, + SLSI_NL80211_VENDOR_SUBCMD_CONFIGURE_ND_OFFLOAD, + SLSI_NL80211_VENDOR_SUBCMD_GET_ROAMING_CAPABILITIES, + SLSI_NL80211_VENDOR_SUBCMD_SET_ROAMING_STATE, + + SLSI_NL80211_VENDOR_SUBCMD_NAN_ENABLE = ANDROID_NL80211_SUBCMD_NAN_RANGE_START, + SLSI_NL80211_VENDOR_SUBCMD_NAN_DISABLE, + SLSI_NL80211_VENDOR_SUBCMD_NAN_PUBLISH, + SLSI_NL80211_VENDOR_SUBCMD_NAN_PUBLISHCANCEL, + SLSI_NL80211_VENDOR_SUBCMD_NAN_SUBSCRIBE, + SLSI_NL80211_VENDOR_SUBCMD_NAN_SUBSCRIBECANCEL, + SLSI_NL80211_VENDOR_SUBCMD_NAN_TXFOLLOWUP, + SLSI_NL80211_VENDOR_SUBCMD_NAN_CONFIG, + SLSI_NL80211_VENDOR_SUBCMD_NAN_CAPABILITIES, + SLSI_NL80211_VENDOR_SUBCMD_RTT_GET_CAPABILITIES = ANDROID_NL80211_SUBCMD_RTT_RANGE_START, + SLSI_NL80211_VENDOR_SUBCMD_RTT_RANGE_START, + SLSI_NL80211_VENDOR_SUBCMD_RTT_RANGE_CANCEL } WIFI_SUB_COMMAND; typedef enum { @@ -86,7 +190,27 @@ typedef enum { GSCAN_EVENT_SCAN_RESULTS_AVAILABLE, GSCAN_EVENT_FULL_SCAN_RESULTS, GSCAN_EVENT_COMPLETE_SCAN, - GSCAN_EVENT_HOTLIST_RESULTS_LOST + GSCAN_EVENT_HOTLIST_RESULTS_LOST, + WIFI_SUBCMD_KEY_MGMT_ROAM_AUTH, /* Handled by supplicant. not in Wifi-HAL */ + WIFI_HANGED_EVENT, + WIFI_EPNO_EVENT, + WIFI_HOTSPOT_MATCH, + WIFI_RSSI_REPORT_EVENT, + ENHANCE_LOGGER_RING_EVENT, + ENHANCE_LOGGER_MEM_DUMP_EVENT, + /* NAN events start */ + SLSI_NAN_EVENT_RESPONSE, + SLSI_NAN_EVENT_PUBLISH_TERMINATED, + SLSI_NAN_EVENT_MATCH, + SLSI_NAN_EVENT_MATCH_EXPIRED, + SLSI_NAN_EVENT_SUBSCRIBE_TERMINATED, + SLSI_NAN_EVENT_FOLLOWUP, + SLSI_NAN_EVENT_DISCOVERY_ENGINE, + SLSI_NAN_EVENT_DISABLED, + /* NAN events end */ + SLSI_RTT_RESULT_EVENT, + SLSI_RTT_EVENT_COMPLETE + } WIFI_EVENT; typedef void (*wifi_internal_event_handler) (wifi_handle handle, int events); @@ -152,6 +276,7 @@ wifi_error wifi_register_cmd(wifi_handle handle, int id, WifiCommand *cmd); WifiCommand *wifi_unregister_cmd(wifi_handle handle, int id); WifiCommand *wifi_get_cmd(wifi_handle handle, int id); void wifi_unregister_cmd(wifi_handle handle, WifiCommand *cmd); +wifi_error wifi_cancel_cmd(wifi_request_id id, wifi_interface_handle iface); interface_info *getIfaceInfo(wifi_interface_handle); wifi_handle getWifiHandle(wifi_interface_handle handle); @@ -166,5 +291,12 @@ wifi_interface_handle getIfaceHandle(interface_info *info); #define min(x, y) ((x) < (y) ? (x) : (y)) #define max(x, y) ((x) > (y) ? (x) : (y)) +#define NULL_CHECK_RETURN(ptr, str, ret) \ + do { \ + if (!(ptr)) { \ + ALOGE("%s(): null pointer - #ptr (%s)\n", __FUNCTION__, str); \ + return ret; \ + } \ + } while (0) #endif