Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/dev/broadcom/brcm80211/brcmfmac/fwil.h
178665 views
1
// SPDX-License-Identifier: ISC
2
/*
3
* Copyright (c) 2012 Broadcom Corporation
4
*/
5
6
#ifndef _fwil_h_
7
#define _fwil_h_
8
9
#include "debug.h"
10
11
/*******************************************************************************
12
* Dongle command codes that are interpreted by firmware
13
******************************************************************************/
14
#define BRCMF_C_GET_VERSION 1
15
#define BRCMF_C_UP 2
16
#define BRCMF_C_DOWN 3
17
#define BRCMF_C_SET_PROMISC 10
18
#define BRCMF_C_GET_RATE 12
19
#define BRCMF_C_GET_INFRA 19
20
#define BRCMF_C_SET_INFRA 20
21
#define BRCMF_C_GET_AUTH 21
22
#define BRCMF_C_SET_AUTH 22
23
#define BRCMF_C_GET_BSSID 23
24
#define BRCMF_C_GET_SSID 25
25
#define BRCMF_C_SET_SSID 26
26
#define BRCMF_C_TERMINATED 28
27
#define BRCMF_C_GET_CHANNEL 29
28
#define BRCMF_C_SET_CHANNEL 30
29
#define BRCMF_C_GET_SRL 31
30
#define BRCMF_C_SET_SRL 32
31
#define BRCMF_C_GET_LRL 33
32
#define BRCMF_C_SET_LRL 34
33
#define BRCMF_C_GET_RADIO 37
34
#define BRCMF_C_SET_RADIO 38
35
#define BRCMF_C_GET_PHYTYPE 39
36
#define BRCMF_C_SET_KEY 45
37
#define BRCMF_C_GET_REGULATORY 46
38
#define BRCMF_C_SET_REGULATORY 47
39
#define BRCMF_C_SET_PASSIVE_SCAN 49
40
#define BRCMF_C_SCAN 50
41
#define BRCMF_C_SCAN_RESULTS 51
42
#define BRCMF_C_DISASSOC 52
43
#define BRCMF_C_REASSOC 53
44
#define BRCMF_C_SET_ROAM_TRIGGER 55
45
#define BRCMF_C_SET_ROAM_DELTA 57
46
#define BRCMF_C_GET_BCNPRD 75
47
#define BRCMF_C_SET_BCNPRD 76
48
#define BRCMF_C_GET_DTIMPRD 77
49
#define BRCMF_C_SET_DTIMPRD 78
50
#define BRCMF_C_SET_COUNTRY 84
51
#define BRCMF_C_GET_PM 85
52
#define BRCMF_C_SET_PM 86
53
#define BRCMF_C_GET_REVINFO 98
54
#define BRCMF_C_GET_MONITOR 107
55
#define BRCMF_C_SET_MONITOR 108
56
#define BRCMF_C_GET_CURR_RATESET 114
57
#define BRCMF_C_GET_AP 117
58
#define BRCMF_C_SET_AP 118
59
#define BRCMF_C_SET_SCB_AUTHORIZE 121
60
#define BRCMF_C_SET_SCB_DEAUTHORIZE 122
61
#define BRCMF_C_GET_RSSI 127
62
#define BRCMF_C_GET_WSEC 133
63
#define BRCMF_C_SET_WSEC 134
64
#define BRCMF_C_GET_PHY_NOISE 135
65
#define BRCMF_C_GET_BSS_INFO 136
66
#define BRCMF_C_GET_GET_PKTCNTS 137
67
#define BRCMF_C_GET_BANDLIST 140
68
#define BRCMF_C_SET_SCB_TIMEOUT 158
69
#define BRCMF_C_GET_ASSOCLIST 159
70
#define BRCMF_C_GET_PHYLIST 180
71
#define BRCMF_C_SET_SCAN_CHANNEL_TIME 185
72
#define BRCMF_C_SET_SCAN_UNASSOC_TIME 187
73
#define BRCMF_C_SCB_DEAUTHENTICATE_FOR_REASON 201
74
#define BRCMF_C_SET_ASSOC_PREFER 205
75
#define BRCMF_C_GET_VALID_CHANNELS 217
76
#define BRCMF_C_SET_FAKEFRAG 219
77
#define BRCMF_C_GET_KEY_PRIMARY 235
78
#define BRCMF_C_SET_KEY_PRIMARY 236
79
#define BRCMF_C_SET_SCAN_PASSIVE_TIME 258
80
#define BRCMF_C_GET_VAR 262
81
#define BRCMF_C_SET_VAR 263
82
#define BRCMF_C_SET_WSEC_PMK 268
83
84
s32 brcmf_fil_cmd_data_set(struct brcmf_if *ifp, u32 cmd, void *data, u32 len);
85
s32 brcmf_fil_cmd_data_get(struct brcmf_if *ifp, u32 cmd, void *data, u32 len);
86
static inline
87
s32 brcmf_fil_cmd_int_set(struct brcmf_if *ifp, u32 cmd, u32 data)
88
{
89
s32 err;
90
__le32 data_le = cpu_to_le32(data);
91
92
brcmf_dbg(FIL, "ifidx=%d, cmd=%d, value=%d\n", ifp->ifidx, cmd, data);
93
err = brcmf_fil_cmd_data_set(ifp, cmd, &data_le, sizeof(data_le));
94
95
return err;
96
}
97
static inline
98
s32 brcmf_fil_cmd_int_get(struct brcmf_if *ifp, u32 cmd, u32 *data)
99
{
100
s32 err;
101
102
err = brcmf_fil_cmd_data_get(ifp, cmd, data, sizeof(*data));
103
if (err == 0)
104
*data = le32_to_cpu(*(__le32 *)data);
105
brcmf_dbg(FIL, "ifidx=%d, cmd=%d, value=%d\n", ifp->ifidx, cmd, *data);
106
107
return err;
108
}
109
static inline
110
s32 brcmf_fil_cmd_int_query(struct brcmf_if *ifp, u32 cmd, u32 *data)
111
{
112
__le32 *data_le = (__le32 *)data;
113
114
*data_le = cpu_to_le32(*data);
115
return brcmf_fil_cmd_int_get(ifp, cmd, data);
116
}
117
118
s32 brcmf_fil_iovar_data_set(struct brcmf_if *ifp, const char *name,
119
const void *data, u32 len);
120
s32 brcmf_fil_iovar_data_get(struct brcmf_if *ifp, const char *name, void *data,
121
u32 len);
122
static inline
123
s32 brcmf_fil_iovar_int_set(struct brcmf_if *ifp, const char *name, u32 data)
124
{
125
__le32 data_le = cpu_to_le32(data);
126
127
return brcmf_fil_iovar_data_set(ifp, name, &data_le, sizeof(data_le));
128
}
129
static inline
130
s32 brcmf_fil_iovar_int_get(struct brcmf_if *ifp, const char *name, u32 *data)
131
{
132
s32 err;
133
134
err = brcmf_fil_iovar_data_get(ifp, name, data, sizeof(*data));
135
if (err == 0)
136
*data = le32_to_cpu(*(__le32 *)data);
137
return err;
138
}
139
static inline
140
s32 brcmf_fil_iovar_int_query(struct brcmf_if *ifp, const char *name, u32 *data)
141
{
142
__le32 *data_le = (__le32 *)data;
143
144
*data_le = cpu_to_le32(*data);
145
return brcmf_fil_iovar_int_get(ifp, name, data);
146
}
147
148
149
s32 brcmf_fil_bsscfg_data_set(struct brcmf_if *ifp, const char *name,
150
#if defined(__linux__)
151
void *data, u32 len);
152
#elif defined(__FreeBSD__)
153
const void *data, u32 len);
154
#endif
155
s32 brcmf_fil_bsscfg_data_get(struct brcmf_if *ifp, const char *name,
156
void *data, u32 len);
157
static inline
158
s32 brcmf_fil_bsscfg_int_set(struct brcmf_if *ifp, const char *name, u32 data)
159
{
160
__le32 data_le = cpu_to_le32(data);
161
162
return brcmf_fil_bsscfg_data_set(ifp, name, &data_le,
163
sizeof(data_le));
164
}
165
static inline
166
s32 brcmf_fil_bsscfg_int_get(struct brcmf_if *ifp, const char *name, u32 *data)
167
{
168
s32 err;
169
170
err = brcmf_fil_bsscfg_data_get(ifp, name, data, sizeof(*data));
171
if (err == 0)
172
*data = le32_to_cpu(*(__le32 *)data);
173
return err;
174
}
175
static inline
176
s32 brcmf_fil_bsscfg_int_query(struct brcmf_if *ifp, const char *name, u32 *data)
177
{
178
__le32 *data_le = (__le32 *)data;
179
180
*data_le = cpu_to_le32(*data);
181
return brcmf_fil_bsscfg_int_get(ifp, name, data);
182
}
183
184
s32 brcmf_fil_xtlv_data_set(struct brcmf_if *ifp, const char *name, u16 id,
185
void *data, u32 len);
186
s32 brcmf_fil_xtlv_data_get(struct brcmf_if *ifp, const char *name, u16 id,
187
void *data, u32 len);
188
static inline
189
s32 brcmf_fil_xtlv_int_set(struct brcmf_if *ifp, const char *name, u16 id,
190
u32 data)
191
{
192
__le32 data_le = cpu_to_le32(data);
193
194
return brcmf_fil_xtlv_data_set(ifp, name, id, &data_le,
195
sizeof(data_le));
196
}
197
static inline
198
s32 brcmf_fil_xtlv_int_get(struct brcmf_if *ifp, const char *name, u16 id,
199
u32 *data)
200
{
201
__le32 data_le = cpu_to_le32(*data);
202
s32 err;
203
204
err = brcmf_fil_xtlv_data_get(ifp, name, id, &data_le, sizeof(data_le));
205
if (err == 0)
206
*data = le32_to_cpu(data_le);
207
return err;
208
}
209
static inline
210
s32 brcmf_fil_xtlv_int8_get(struct brcmf_if *ifp, const char *name, u16 id,
211
u8 *data)
212
{
213
return brcmf_fil_xtlv_data_get(ifp, name, id, data, sizeof(*data));
214
}
215
static inline
216
s32 brcmf_fil_xtlv_int16_get(struct brcmf_if *ifp, const char *name, u16 id,
217
u16 *data)
218
{
219
__le16 data_le = cpu_to_le16(*data);
220
s32 err;
221
222
err = brcmf_fil_xtlv_data_get(ifp, name, id, &data_le, sizeof(data_le));
223
if (err == 0)
224
*data = le16_to_cpu(data_le);
225
return err;
226
}
227
228
#endif /* _fwil_h_ */
229
230