/* SPDX-License-Identifier: GPL-2.0 */ /*! * @file coreconfigurator.h * @brief * @author * @sa coreconfigurator.c * @date 1 Mar 2012 * @version 1.0 */ #ifndef CORECONFIGURATOR_H #define CORECONFIGURATOR_H #include "wilc_wlan_if.h" #define NUM_BASIC_SWITCHES 45 #define NUM_FHSS_SWITCHES 0 #define NUM_RSSI 5 #ifdef MAC_802_11N #define NUM_11N_BASIC_SWITCHES 25 #define NUM_11N_HUT_SWITCHES 47 #else #define NUM_11N_BASIC_SWITCHES 0 #define NUM_11N_HUT_SWITCHES 0 #endif #define MAC_HDR_LEN 24 #define MAX_SSID_LEN 33 #define FCS_LEN 4 #define TIME_STAMP_LEN 8 #define BEACON_INTERVAL_LEN 2 #define CAP_INFO_LEN 2 #define STATUS_CODE_LEN 2 #define AID_LEN 2 #define IE_HDR_LEN 2 #define SET_CFG 0 #define GET_CFG 1 #define MAX_STRING_LEN 256 #define MAX_SURVEY_RESULT_FRAG_SIZE MAX_STRING_LEN #define SURVEY_RESULT_LENGTH 44 #define MAX_ASSOC_RESP_FRAME_SIZE MAX_STRING_LEN #define MAC_CONNECTED 1 #define MAC_DISCONNECTED 0 #define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb)) #define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw)) enum connect_status { SUCCESSFUL_STATUSCODE = 0, UNSPEC_FAIL = 1, UNSUP_CAP = 10, REASOC_NO_ASOC = 11, FAIL_OTHER = 12, UNSUPT_ALG = 13, AUTH_SEQ_FAIL = 14, CHLNG_FAIL = 15, AUTH_TIMEOUT = 16, AP_FULL = 17, UNSUP_RATE = 18, SHORT_PREAMBLE_UNSUP = 19, PBCC_UNSUP = 20, CHANNEL_AGIL_UNSUP = 21, SHORT_SLOT_UNSUP = 25, OFDM_DSSS_UNSUP = 26, CONNECT_STS_FORCE_16_BIT = 0xFFFF }; struct rssi_history_buffer { bool full; u8 index; s8 samples[NUM_RSSI]; }; struct network_info { s8 rssi; u16 cap_info; u8 ssid[MAX_SSID_LEN]; u8 ssid_len; u8 bssid[6]; u16 beacon_period; u8 dtim_period; u8 ch; unsigned long time_scan_cached; unsigned long time_scan; bool new_network; u8 found; u32 tsf_lo; u8 *ies; u16 ies_len; void *join_params; struct rssi_history_buffer rssi_history; u64 tsf_hi; }; struct connect_resp_info { u16 capability; u16 status; u16 assoc_id; u8 *ies; u16 ies_len; }; struct connect_info { u8 bssid[6]; u8 *req_ies; size_t req_ies_len; u8 *resp_ies; u16 resp_ies_len; u16 status; }; struct disconnect_info { u16 reason; u8 *ie; size_t ie_len; }; s32 wilc_parse_network_info(u8 *msg_buffer, struct network_info **ret_network_info); s32 wilc_parse_assoc_resp_info(u8 *buffer, u32 buffer_len, struct connect_resp_info **ret_connect_resp_info); void wilc_scan_complete_received(struct wilc *wilc, u8 *buffer, u32 length); void wilc_network_info_received(struct wilc *wilc, u8 *buffer, u32 length); void wilc_gnrl_async_info_received(struct wilc *wilc, u8 *buffer, u32 length); #endif