License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[linux-2.6-block.git] / drivers / staging / wilc1000 / coreconfigurator.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
c5c77ba1
JK
2
3/*!
4 * @file coreconfigurator.h
5 * @brief
6 * @author
7 * @sa coreconfigurator.c
8 * @date 1 Mar 2012
9 * @version 1.0
10 */
11
c5c77ba1
JK
12#ifndef CORECONFIGURATOR_H
13#define CORECONFIGURATOR_H
14
c5c77ba1 15#include "wilc_wlan_if.h"
36cca3ba 16
c5c77ba1 17#define NUM_BASIC_SWITCHES 45
13994d1e 18#define NUM_FHSS_SWITCHES 0
c5c77ba1 19
13994d1e 20#define NUM_RSSI 5
c5c77ba1
JK
21
22#ifdef MAC_802_11N
23#define NUM_11N_BASIC_SWITCHES 25
24#define NUM_11N_HUT_SWITCHES 47
36cca3ba 25#else
c5c77ba1
JK
26#define NUM_11N_BASIC_SWITCHES 0
27#define NUM_11N_HUT_SWITCHES 0
36cca3ba 28#endif
c5c77ba1 29
36cca3ba 30#define MAC_HDR_LEN 24
c5c77ba1
JK
31#define MAX_SSID_LEN 33
32#define FCS_LEN 4
33#define TIME_STAMP_LEN 8
34#define BEACON_INTERVAL_LEN 2
35#define CAP_INFO_LEN 2
36#define STATUS_CODE_LEN 2
37#define AID_LEN 2
38#define IE_HDR_LEN 2
39
c5c77ba1 40#define SET_CFG 0
c5c77ba1
JK
41#define GET_CFG 1
42
13994d1e
SK
43#define MAX_STRING_LEN 256
44#define MAX_SURVEY_RESULT_FRAG_SIZE MAX_STRING_LEN
45#define SURVEY_RESULT_LENGTH 44
46#define MAX_ASSOC_RESP_FRAME_SIZE MAX_STRING_LEN
c5c77ba1 47
13994d1e
SK
48#define MAC_CONNECTED 1
49#define MAC_DISCONNECTED 0
c5c77ba1 50
d85f5326 51#define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb))
4e4467fd 52#define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw))
c5c77ba1 53
b1d296b3 54enum connect_status {
13994d1e
SK
55 SUCCESSFUL_STATUSCODE = 0,
56 UNSPEC_FAIL = 1,
57 UNSUP_CAP = 10,
58 REASOC_NO_ASOC = 11,
59 FAIL_OTHER = 12,
60 UNSUPT_ALG = 13,
61 AUTH_SEQ_FAIL = 14,
62 CHLNG_FAIL = 15,
63 AUTH_TIMEOUT = 16,
64 AP_FULL = 17,
65 UNSUP_RATE = 18,
66 SHORT_PREAMBLE_UNSUP = 19,
67 PBCC_UNSUP = 20,
68 CHANNEL_AGIL_UNSUP = 21,
69 SHORT_SLOT_UNSUP = 25,
70 OFDM_DSSS_UNSUP = 26,
c5c77ba1 71 CONNECT_STS_FORCE_16_BIT = 0xFFFF
b1d296b3 72};
c5c77ba1 73
f3ae44fc 74struct rssi_history_buffer {
36d98c18
TK
75 bool full;
76 u8 index;
77 s8 samples[NUM_RSSI];
1d191e10 78};
36cca3ba 79
6b5180a0 80struct network_info {
5c23a291 81 s8 rssi;
fa5e2d15 82 u16 cap_info;
2a3ff58a 83 u8 ssid[MAX_SSID_LEN];
a36e89e9 84 u8 ssid_len;
38d3bb78 85 u8 bssid[6];
4b313e91 86 u16 beacon_period;
df340fdf 87 u8 dtim_period;
405a8c78 88 u8 ch;
264d70f4
LK
89 unsigned long time_scan_cached;
90 unsigned long time_scan;
d4020763 91 bool new_network;
a35d6e2d 92 u8 found;
afb70653 93 u32 tsf_lo;
390b6db0
LK
94 u8 *ies;
95 u16 ies_len;
cb64de7c 96 void *join_params;
6d642eaa 97 struct rssi_history_buffer rssi_history;
17d2f2b3 98 u64 tsf_hi;
6b5180a0 99};
c5c77ba1 100
40d96e1d 101struct connect_resp_info {
ba7b6ff5
LK
102 u16 capability;
103 u16 status;
104 u16 assoc_id;
105 u8 *ies;
106 u16 ies_len;
40d96e1d 107};
c5c77ba1 108
3b0437e1 109struct connect_info {
d4a24e08 110 u8 bssid[6];
4ff48570 111 u8 *req_ies;
4607f9cc 112 size_t req_ies_len;
61e1326f 113 u8 *resp_ies;
3e7477c2 114 u16 resp_ies_len;
134b4cf2 115 u16 status;
3b0437e1 116};
c5c77ba1 117
bb76df5a 118struct disconnect_info {
90f209da 119 u16 reason;
63d03e47 120 u8 *ie;
c5c77ba1 121 size_t ie_len;
bb76df5a 122};
c5c77ba1 123
6b5180a0
LK
124s32 wilc_parse_network_info(u8 *msg_buffer,
125 struct network_info **ret_network_info);
946a9ddb 126s32 wilc_parse_assoc_resp_info(u8 *buffer, u32 buffer_len,
40d96e1d 127 struct connect_resp_info **ret_connect_resp_info);
dade3c62 128void wilc_scan_complete_received(struct wilc *wilc, u8 *buffer, u32 length);
bdb27e64 129void wilc_network_info_received(struct wilc *wilc, u8 *buffer, u32 length);
28c82859 130void wilc_gnrl_async_info_received(struct wilc *wilc, u8 *buffer, u32 length);
c5c77ba1 131#endif