GFS2: Check for glock already held in gfs2_getxattr
[deliverable/linux.git] / drivers / staging / csr / csr_wifi_router_prim.h
1 /*****************************************************************************
2
3 (c) Cambridge Silicon Radio Limited 2011
4 All rights reserved and confidential information of CSR
5
6 Refer to LICENSE.txt included with this source for details
7 on the license terms.
8
9 *****************************************************************************/
10
11 /* Note: this is an auto-generated file. */
12
13 #ifndef CSR_WIFI_ROUTER_PRIM_H__
14 #define CSR_WIFI_ROUTER_PRIM_H__
15
16 #include <linux/types.h>
17 #include "csr_prim_defs.h"
18 #include "csr_sched.h"
19 #include "csr_wifi_common.h"
20 #include "csr_result.h"
21 #include "csr_wifi_fsm_event.h"
22
23 #define CSR_WIFI_ROUTER_PRIM (0x0400)
24
25 typedef CsrPrim CsrWifiRouterPrim;
26
27 typedef void (*CsrWifiRouterFrameFreeFunction)(void *frame);
28
29 /*******************************************************************************
30
31 NAME
32 CsrWifiRouterAppType
33
34 DESCRIPTION
35
36 VALUES
37 CSR_WIFI_ROUTER_APP_TYPE_SME -
38 CSR_WIFI_ROUTER_APP_TYPE_PAL -
39 CSR_WIFI_ROUTER_APP_TYPE_NME -
40 CSR_WIFI_ROUTER_APP_TYPE_OTHER -
41
42 *******************************************************************************/
43 typedef u8 CsrWifiRouterAppType;
44 #define CSR_WIFI_ROUTER_APP_TYPE_SME ((CsrWifiRouterAppType) 0x0)
45 #define CSR_WIFI_ROUTER_APP_TYPE_PAL ((CsrWifiRouterAppType) 0x1)
46 #define CSR_WIFI_ROUTER_APP_TYPE_NME ((CsrWifiRouterAppType) 0x2)
47 #define CSR_WIFI_ROUTER_APP_TYPE_OTHER ((CsrWifiRouterAppType) 0x3)
48
49 /*******************************************************************************
50
51 NAME
52 CsrWifiRouterEncapsulation
53
54 DESCRIPTION
55 Indicates the type of encapsulation used for the subscription
56
57 VALUES
58 CSR_WIFI_ROUTER_ENCAPSULATION_ETHERNET
59 - Ethernet encapsulation
60 CSR_WIFI_ROUTER_ENCAPSULATION_LLC_SNAP
61 - LLC/SNAP encapsulation
62
63 *******************************************************************************/
64 typedef u8 CsrWifiRouterEncapsulation;
65 #define CSR_WIFI_ROUTER_ENCAPSULATION_ETHERNET ((CsrWifiRouterEncapsulation) 0x00)
66 #define CSR_WIFI_ROUTER_ENCAPSULATION_LLC_SNAP ((CsrWifiRouterEncapsulation) 0x01)
67
68 /*******************************************************************************
69
70 NAME
71 CsrWifiRouterOui
72
73 DESCRIPTION
74
75 VALUES
76 CSR_WIFI_ROUTER_OUI_RFC_1042 -
77 CSR_WIFI_ROUTER_OUI_BT -
78
79 *******************************************************************************/
80 typedef u32 CsrWifiRouterOui;
81 #define CSR_WIFI_ROUTER_OUI_RFC_1042 ((CsrWifiRouterOui) 0x000000)
82 #define CSR_WIFI_ROUTER_OUI_BT ((CsrWifiRouterOui) 0x001958)
83
84 /*******************************************************************************
85
86 NAME
87 CsrWifiRouterPriority
88
89 DESCRIPTION
90 As defined in the IEEE 802.11 standards
91
92 VALUES
93 CSR_WIFI_ROUTER_PRIORITY_QOS_UP0
94 - See IEEE 802.11 Standard
95 CSR_WIFI_ROUTER_PRIORITY_QOS_UP1
96 - See IEEE 802.11 Standard
97 CSR_WIFI_ROUTER_PRIORITY_QOS_UP2
98 - See IEEE 802.11 Standard
99 CSR_WIFI_ROUTER_PRIORITY_QOS_UP3
100 - See IEEE 802.11 Standard
101 CSR_WIFI_ROUTER_PRIORITY_QOS_UP4
102 - See IEEE 802.11 Standard
103 CSR_WIFI_ROUTER_PRIORITY_QOS_UP5
104 - See IEEE 802.11 Standard
105 CSR_WIFI_ROUTER_PRIORITY_QOS_UP6
106 - See IEEE 802.11 Standard
107 CSR_WIFI_ROUTER_PRIORITY_QOS_UP7
108 - See IEEE 802.11 Standard
109 CSR_WIFI_ROUTER_PRIORITY_CONTENTION
110 - See IEEE 802.11 Standard
111 CSR_WIFI_ROUTER_PRIORITY_MANAGEMENT
112 - See IEEE 802.11 Standard
113
114 *******************************************************************************/
115 typedef u16 CsrWifiRouterPriority;
116 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP0 ((CsrWifiRouterPriority) 0x0000)
117 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP1 ((CsrWifiRouterPriority) 0x0001)
118 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP2 ((CsrWifiRouterPriority) 0x0002)
119 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP3 ((CsrWifiRouterPriority) 0x0003)
120 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP4 ((CsrWifiRouterPriority) 0x0004)
121 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP5 ((CsrWifiRouterPriority) 0x0005)
122 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP6 ((CsrWifiRouterPriority) 0x0006)
123 #define CSR_WIFI_ROUTER_PRIORITY_QOS_UP7 ((CsrWifiRouterPriority) 0x0007)
124 #define CSR_WIFI_ROUTER_PRIORITY_CONTENTION ((CsrWifiRouterPriority) 0x8000)
125 #define CSR_WIFI_ROUTER_PRIORITY_MANAGEMENT ((CsrWifiRouterPriority) 0x8010)
126
127
128 /* Downstream */
129 #define CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST (0x0000)
130
131 #define CSR_WIFI_ROUTER_MA_PACKET_SUBSCRIBE_REQ ((CsrWifiRouterPrim) (0x0000 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
132 #define CSR_WIFI_ROUTER_MA_PACKET_UNSUBSCRIBE_REQ ((CsrWifiRouterPrim) (0x0001 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
133 #define CSR_WIFI_ROUTER_MA_PACKET_REQ ((CsrWifiRouterPrim) (0x0002 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
134 #define CSR_WIFI_ROUTER_MA_PACKET_RES ((CsrWifiRouterPrim) (0x0003 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
135 #define CSR_WIFI_ROUTER_MA_PACKET_CANCEL_REQ ((CsrWifiRouterPrim) (0x0004 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST))
136
137
138 #define CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_HIGHEST (0x0004 + CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST)
139
140 /* Upstream */
141 #define CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST (0x0000 + CSR_PRIM_UPSTREAM)
142
143 #define CSR_WIFI_ROUTER_MA_PACKET_SUBSCRIBE_CFM ((CsrWifiRouterPrim)(0x0000 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST))
144 #define CSR_WIFI_ROUTER_MA_PACKET_UNSUBSCRIBE_CFM ((CsrWifiRouterPrim)(0x0001 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST))
145 #define CSR_WIFI_ROUTER_MA_PACKET_CFM ((CsrWifiRouterPrim)(0x0002 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST))
146 #define CSR_WIFI_ROUTER_MA_PACKET_IND ((CsrWifiRouterPrim)(0x0003 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST))
147
148 #define CSR_WIFI_ROUTER_PRIM_UPSTREAM_HIGHEST (0x0003 + CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST)
149
150 #define CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_COUNT (CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_HIGHEST + 1 - CSR_WIFI_ROUTER_PRIM_DOWNSTREAM_LOWEST)
151 #define CSR_WIFI_ROUTER_PRIM_UPSTREAM_COUNT (CSR_WIFI_ROUTER_PRIM_UPSTREAM_HIGHEST + 1 - CSR_WIFI_ROUTER_PRIM_UPSTREAM_LOWEST)
152
153 /*******************************************************************************
154
155 NAME
156 CsrWifiRouterMaPacketSubscribeReq
157
158 DESCRIPTION
159 A task can use this primitive to subscribe for a particular OUI/protocol
160 and transmit and receive frames matching the subscription.
161 NOTE: Multiple subscriptions for a given protocol and OUI will result in
162 the first subscription receiving the data and not the subsequent
163 subscriptions.
164
165 MEMBERS
166 common - Common header for use with the CsrWifiFsm Module
167 interfaceTag - Interface Identifier; unique identifier of an interface
168 encapsulation - Specifies the encapsulation type, which will be used for the
169 subscription
170 protocol - Together with the OUI, specifies the protocol, which a task
171 wants to subscribe to
172 oui - Specifies the OUI for the protocol, which a task wants to
173 subscribe to
174
175 *******************************************************************************/
176 typedef struct
177 {
178 CsrWifiFsmEvent common;
179 u16 interfaceTag;
180 CsrWifiRouterEncapsulation encapsulation;
181 u16 protocol;
182 u32 oui;
183 } CsrWifiRouterMaPacketSubscribeReq;
184
185 /*******************************************************************************
186
187 NAME
188 CsrWifiRouterMaPacketUnsubscribeReq
189
190 DESCRIPTION
191 A task sends this primitive to unsubscribe a subscription
192
193 MEMBERS
194 common - Common header for use with the CsrWifiFsm Module
195 interfaceTag - Interface Identifier; unique identifier of an interface
196 subscriptionHandle - The handle of the subscription
197
198 *******************************************************************************/
199 typedef struct
200 {
201 CsrWifiFsmEvent common;
202 u16 interfaceTag;
203 u8 subscriptionHandle;
204 } CsrWifiRouterMaPacketUnsubscribeReq;
205
206 /*******************************************************************************
207
208 NAME
209 CsrWifiRouterMaPacketReq
210
211 DESCRIPTION
212 A task sends this primitive to transmit a frame.
213
214 MEMBERS
215 common - Common header for use with the CsrWifiFsm Module
216 interfaceTag - Interface Identifier; unique identifier of an interface
217 subscriptionHandle - The handle of the subscription
218 frameLength - Length of the frame to be sent in bytes
219 frame - Pointer to the frame to be sent
220 freeFunction - Pointer to function to be used to free the frame
221 priority - Priority of the frame, which should be sent
222 hostTag - An application shall set the bits b31..b28 using one of
223 the CSR_WIFI_ROUTER_APP_TYPE_* masks. Bits b0..b27 can
224 be used by the requestor without any restrictions, but
225 the hostTag shall be unique so the hostTag for
226 CSR_WIFI_ROUTER_APP _TYPE_OTHER should be constructured
227 in the following way [ CSR_WIFI_ROUTER_APP_TYPE_OTHER
228 (4 bits) | SubscriptionHandle (8 bits) | Sequence no.
229 (20 bits) ]. If the hostTag is not unique, the
230 behaviour of the system is unpredicatable with respect
231 to data/management frame transfer.
232 cfmRequested - Indicates if the requestor needs a confirm for packet
233 requests sent under this subscription. If set to TRUE,
234 the router will send a confirm, else it will not send
235 any confirm
236
237 *******************************************************************************/
238 typedef struct
239 {
240 CsrWifiFsmEvent common;
241 u16 interfaceTag;
242 u8 subscriptionHandle;
243 u16 frameLength;
244 u8 *frame;
245 CsrWifiRouterFrameFreeFunction freeFunction;
246 CsrWifiRouterPriority priority;
247 u32 hostTag;
248 u8 cfmRequested;
249 } CsrWifiRouterMaPacketReq;
250
251 /*******************************************************************************
252
253 NAME
254 CsrWifiRouterMaPacketRes
255
256 DESCRIPTION
257 A task send this primitive to confirm the reception of the received
258 frame.
259
260 MEMBERS
261 common - Common header for use with the CsrWifiFsm Module
262 interfaceTag - Interface Identifier; unique identifier of an interface
263 subscriptionHandle - The handle of the subscription
264 result - Status of the operation
265
266 *******************************************************************************/
267 typedef struct
268 {
269 CsrWifiFsmEvent common;
270 u16 interfaceTag;
271 u8 subscriptionHandle;
272 CsrResult result;
273 } CsrWifiRouterMaPacketRes;
274
275 /*******************************************************************************
276
277 NAME
278 CsrWifiRouterMaPacketCancelReq
279
280 DESCRIPTION
281 This primitive is used to request cancellation of a previously send
282 CsrWifiRouterMaPacketReq.
283 The frame may already have been transmitted so there is no guarantees
284 that the CsrWifiRouterMaPacketCancelReq actually cancels the transmission
285 of the frame in question.
286 If the cancellation fails, the Router will send, if required,
287 CsrWifiRouterMaPacketCfm.
288 If the cancellation succeeds, the Router will not send
289 CsrWifiRouterMaPacketCfm.
290
291 MEMBERS
292 common - Common header for use with the CsrWifiFsm Module
293 interfaceTag - Interface Identifier; unique identifier of an interface
294 hostTag - The hostTag for the frame, which should be cancelled.
295 priority - Priority of the frame, which should be cancelled
296 peerMacAddress - Destination MAC address of the frame, which should be
297 cancelled
298
299 *******************************************************************************/
300 typedef struct
301 {
302 CsrWifiFsmEvent common;
303 u16 interfaceTag;
304 u32 hostTag;
305 CsrWifiRouterPriority priority;
306 CsrWifiMacAddress peerMacAddress;
307 } CsrWifiRouterMaPacketCancelReq;
308
309 /*******************************************************************************
310
311 NAME
312 CsrWifiRouterMaPacketSubscribeCfm
313
314 DESCRIPTION
315 The router sends this primitive to confirm the result of the
316 subscription.
317
318 MEMBERS
319 common - Common header for use with the CsrWifiFsm Module
320 interfaceTag - Interface Identifier; unique identifier of an interface
321 subscriptionHandle - Handle to the subscription
322 This handle must be used in all subsequent requests
323 status - Status of the operation
324 allocOffset - Size of the offset for the frames of the subscription
325
326 *******************************************************************************/
327 typedef struct
328 {
329 CsrWifiFsmEvent common;
330 u16 interfaceTag;
331 u8 subscriptionHandle;
332 CsrResult status;
333 u16 allocOffset;
334 } CsrWifiRouterMaPacketSubscribeCfm;
335
336 /*******************************************************************************
337
338 NAME
339 CsrWifiRouterMaPacketUnsubscribeCfm
340
341 DESCRIPTION
342 The router sends this primitive to confirm the result of the
343 unsubscription.
344
345 MEMBERS
346 common - Common header for use with the CsrWifiFsm Module
347 interfaceTag - Interface Identifier; unique identifier of an interface
348 status - Status of the operation
349
350 *******************************************************************************/
351 typedef struct
352 {
353 CsrWifiFsmEvent common;
354 u16 interfaceTag;
355 CsrResult status;
356 } CsrWifiRouterMaPacketUnsubscribeCfm;
357
358 /*******************************************************************************
359
360 NAME
361 CsrWifiRouterMaPacketCfm
362
363 DESCRIPTION
364 The router sends the primitive to confirm the result of the transmission
365 of the packet of the corresponding CSR_WIFI_ROUTER MA_PACKET_REQ request.
366
367 MEMBERS
368 common - Common header for use with the CsrWifiFsm Module
369 interfaceTag - Interface Identifier; unique identifier of an interface
370 result - Status of the operation
371 hostTag - The hostTrag will match the hostTag sent in the request.
372 rate - Transmission/Reception rate
373
374 *******************************************************************************/
375 typedef struct
376 {
377 CsrWifiFsmEvent common;
378 u16 interfaceTag;
379 CsrResult result;
380 u32 hostTag;
381 u16 rate;
382 } CsrWifiRouterMaPacketCfm;
383
384 /*******************************************************************************
385
386 NAME
387 CsrWifiRouterMaPacketInd
388
389 DESCRIPTION
390 The router sends the primitive to a subscribed task when it receives a
391 frame matching the subscription.
392
393 MEMBERS
394 common - Common header for use with the CsrWifiFsm Module
395 interfaceTag - Interface Identifier; unique identifier of an interface
396 subscriptionHandle - The handle of the subscription
397 result - Status of the operation
398 frameLength - Length of the received frame in bytes
399 frame - Pointer to the received frame
400 freeFunction - Pointer to function to be used to free the frame
401 rssi - Received signal strength indication in dBm
402 snr - Signal to Noise Ratio
403 rate - Transmission/Reception rate
404
405 *******************************************************************************/
406 typedef struct
407 {
408 CsrWifiFsmEvent common;
409 u16 interfaceTag;
410 u8 subscriptionHandle;
411 CsrResult result;
412 u16 frameLength;
413 u8 *frame;
414 CsrWifiRouterFrameFreeFunction freeFunction;
415 s16 rssi;
416 s16 snr;
417 u16 rate;
418 } CsrWifiRouterMaPacketInd;
419
420 #endif /* CSR_WIFI_ROUTER_PRIM_H__ */
421
This page took 0.04044 seconds and 5 git commands to generate.