blob: 55637514ecc0165d744f113e0d007a2f9d31dab3 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42/*
43 *
44 * Airgo Networks, Inc proprietary. All rights reserved.
45 * Author: Sandesh Goel
46 * Date: 02/25/02
47 * History:-
48 * Date Modified by Modification Information
49 * --------------------------------------------------------------------
50 *
51 */
52
53#ifndef __SCH_API_H__
54#define __SCH_API_H__
55
56#include "sirCommon.h"
57#include "sirMacProtDef.h"
58
59#include "aniGlobal.h"
60
61/// Send start scan response message
62extern void schSendStartScanRsp(tpAniSirGlobal pMac);
63
64/// Set init time params
65extern void schSetInitParams(tpAniSirGlobal pMac);
66
67/// Set qos default params
68extern void schUpdateQosInfo(tpAniSirGlobal pMac);
69
70// update only the broadcast qos params
71extern void schQosUpdateBroadcast(tpAniSirGlobal pMac, tpPESession psessionEntry);
72
73// fill in the default local edca parameter into gLimEdcaParams[]
74extern void schSetDefaultEdcaParams(tpAniSirGlobal pMac, tpPESession psessionE);
75
76// update only local qos params
77extern void schQosUpdateLocal(tpAniSirGlobal pMac, tpPESession psessionEntry);
78
79// update the edca profile parameters
80extern void schEdcaProfileUpdate(tpAniSirGlobal pMac, tpPESession psessionEntry);
81
82/// Check for RR timer expiry
83extern void schCheckRRTimerExpiry(tpAniSirGlobal pMac);
84
85/// Set the fixed fields in a beacon frame
86extern tSirRetStatus schSetFixedBeaconFields(tpAniSirGlobal pMac,tpPESession psessionEntry);
87
88/// Initializations
89extern void schInitialize(tpAniSirGlobal pMac);
90
91/// Initialize globals
92extern void schInitGlobals(tpAniSirGlobal pMac);
93
94/// Initialize CF Poll template
95extern void schInitializeCfPollTemplate(tpAniSirGlobal pMac);
96
97/// Initialize CF End template
98extern void schInitializeCfEndTemplate(tpAniSirGlobal pMac);
99
100/// Process the transmit activity queue
101extern void schProcessTxActivityQueue(tpAniSirGlobal pMac);
102
103/// Add to the DPH activity queue
104extern void schAddDphActivityQueue(tpAniSirGlobal pMac, tANI_U16, tANI_U8);
105
106/// Add to the TX IN (DPH) activity queue
107extern void schAddTxInActivityQueue(tpAniSirGlobal pMac, void *ptr);
108
109/// Process the scheduler message queue
110extern void schProcessMessageQueue(tpAniSirGlobal pMac);
111
112/// Process the scheduler messages
113extern void schProcessMessage(tpAniSirGlobal pMac,tpSirMsgQ pSchMsg);
114
115/// Process the DPH activity queue
116extern void schProcessDphActivityQueue(tpAniSirGlobal pMac);
117
118/// The beacon Indication handler function
119extern void schProcessPreBeaconInd(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
120
121/// Post a message to the scheduler message queue
122extern tSirRetStatus schPostMessage(tpAniSirGlobal pMac, tpSirMsgQ pMsg);
123
124#if (WNI_POLARIS_FW_PRODUCT == AP)
125/// The scheduling interrupt handler
126extern void schSchedulingInterruptHandler(tpAniSirGlobal pMac);
127
128/// The scheduling end interrupt function
129extern void schSchedulingEndInterruptHandler(tpAniSirGlobal pMac);
130
131/// Function used by other Sirius modules to read CFPcount
132extern tANI_U8 schGetCFPCount(tpAniSirGlobal pMac);
133
134/// Function used by other Sirius modules to read CFPDuration remaining
135extern tANI_U16 schGetCFPDurRemaining(tpAniSirGlobal pMac);
136
137#endif
138
139extern void schBeaconProcess(tpAniSirGlobal pMac, tANI_U8 *pRxPacketInfo, tpPESession psessionEntry);
140extern tSirRetStatus schBeaconEdcaProcess(tpAniSirGlobal pMac, tSirMacEdcaParamSetIE *edca, tpPESession psessionEntry);
141
142
143#define SCH_RR_TIMEOUT (SCH_RR_TIMEOUT_MS / SYS_TICK_DUR_MS)
144
145void schSetBeaconInterval(tpAniSirGlobal pMac,tpPESession psessionEntry);
146
147tSirRetStatus schSendBeaconReq( tpAniSirGlobal, tANI_U8 *, tANI_U16, tpPESession psessionEntry );
148
149#ifdef WLAN_SOFTAP_FEATURE
150void limUpdateProbeRspTemplateIeBitmapBeacon1(tpAniSirGlobal,tDot11fBeacon1*,tANI_U32*,tDot11fProbeResponse*);
151void limUpdateProbeRspTemplateIeBitmapBeacon2(tpAniSirGlobal,tDot11fBeacon2*,tANI_U32*,tDot11fProbeResponse*);
152void SetProbeRspIeBitmap(tANI_U32*,tANI_U32);
153tANI_U32 limSendProbeRspTemplateToHal(tpAniSirGlobal,tpPESession,
154 tANI_U32*);
155#endif
156
157
158#endif