diff options
Diffstat (limited to 'qcwcn/wifi_hal/wifihal_internal.h')
-rwxr-xr-x | qcwcn/wifi_hal/wifihal_internal.h | 86 |
1 files changed, 80 insertions, 6 deletions
diff --git a/qcwcn/wifi_hal/wifihal_internal.h b/qcwcn/wifi_hal/wifihal_internal.h index ef72317..379cc48 100755 --- a/qcwcn/wifi_hal/wifihal_internal.h +++ b/qcwcn/wifi_hal/wifihal_internal.h @@ -30,20 +30,31 @@ #define __WIFI_HAL_LOWI_INTERNAL_H__ /* - * The file defines the interface by which wifihal can call LOWI for the purposes - * of initialization, rtt and gscan. - */ + * The file defines the interface by which wifihal can call LOWI for the + * purposes of initialization, rtt and gscan. + */ #include "wifi_hal.h" +#define WIFIHAL_LOWI_MAJOR_VERSION 1 +#define WIFIHAL_LOWI_MINOR_VERSION 1 +#define WIFIHAL_LOWI_MICRO_VERSION 0 + +/* LOWI supported capabilities bit masks */ +#define ONE_SIDED_RANGING_SUPPORTED 0x00000001 +#define DUAL_SIDED_RANGING_SUPPORED 0x00000002 +#define GSCAN_SUPPORTED 0x00000004 + /* - * This structure is a table of function pointers to the functions - * used by the wifihal to interface with LOWI - */ + * This structure is a table of function pointers to the functions + * used by the wifihal to interface with LOWI + */ typedef struct { + /* lowi-client interface functions */ int (*init)(); int (*destroy)(); + /* rtt functions */ int (*get_rtt_capabilities)(wifi_interface_handle iface, wifi_rtt_capabilities *capabilities); int (*rtt_range_request)(u32 request_id, @@ -54,6 +65,69 @@ typedef struct int (*rtt_range_cancel)(u32 request_id, u32 num_devices, mac_addr addr[]); + /* Additional lowi-client interface functions */ + int (*get_lowi_version) (u16* major_version, + u16* minor_version, + u16* micro_version); + int (*get_lowi_capabilities)(u32* capabilities); + /* gscan functions */ + wifi_error (*get_valid_channels)(wifi_interface_handle iface, + u32 band, + u32 max_channels, + wifi_channel *channels, + int *num_channels); + + wifi_error (*get_gscan_capabilities)(wifi_interface_handle handle, + wifi_gscan_capabilities *capabilities); + + wifi_error (*start_gscan)(wifi_request_id request_id, + wifi_interface_handle iface, + wifi_scan_cmd_params params, + wifi_scan_result_handler handler); + + wifi_error (*stop_gscan)(wifi_request_id request_id, + wifi_interface_handle iface); + + wifi_error (*get_cached_gscan_results)(wifi_interface_handle iface, + byte flush, + u32 max, + wifi_cached_scan_results *results, + int *num); + + wifi_error (*set_bssid_hotlist)(wifi_request_id request_id, + wifi_interface_handle iface, + wifi_bssid_hotlist_params params, + wifi_hotlist_ap_found_handler handler); + + wifi_error (*reset_bssid_hotlist)(wifi_request_id request_id, + wifi_interface_handle iface); + + wifi_error (*set_significant_change_handler)(wifi_request_id id, + wifi_interface_handle iface, + wifi_significant_change_params params, + wifi_significant_change_handler handler); + + wifi_error (*reset_significant_change_handler)(wifi_request_id id, + wifi_interface_handle iface); + + wifi_error (*set_ssid_hotlist)(wifi_request_id id, + wifi_interface_handle iface, + wifi_ssid_hotlist_params params, + wifi_hotlist_ssid_handler handler); + + wifi_error (*reset_ssid_hotlist)(wifi_request_id id, + wifi_interface_handle iface); + + // API to configure the LCI. Used in RTT Responder mode only + wifi_error (*rtt_set_lci)(wifi_request_id id, + wifi_interface_handle iface, + wifi_lci_information *lci); + + // API to configure the LCR. Used in RTT Responder mode only. + wifi_error (*rtt_set_lcr)(wifi_request_id id, + wifi_interface_handle iface, + wifi_lcr_information *lcr); + } lowi_cb_table_t; /* |