• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * PowerSrv.h
3  *
4  * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  *  * Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  *  * Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in
15  *    the documentation and/or other materials provided with the
16  *    distribution.
17  *  * Neither the name Texas Instruments nor the names of its
18  *    contributors may be used to endorse or promote products derived
19  *    from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 /** \file powerSrv.h
35  *  \brief This is the Power Manager module private (internal).
36  *  \author Yaron Menashe
37  *  \date 27-Apr-2004
38  */
39 
40 /****************************************************************************
41  *                                                                          *
42  *   MODULE:  Power Manager                                                 *
43  *   PURPOSE: Power Manager Module private                                      *
44  *                                                                          *
45  ****************************************************************************/
46 
47 #ifndef _POWER_SRV_H_
48 #define _POWER_SRV_H_
49 
50 #include "TWDriverInternal.h"
51 #include "PowerSrv_API.h"
52 
53 /*#include "PowerSrvSM.h"*/
54 
55 /*****************************************************************************
56  **         Constants                                                       **
57  *****************************************************************************/
58 
59 
60 /*****************************************************************************
61  **         Enumerations                                                    **
62  *****************************************************************************/
63 
64 
65 
66 
67 
68 /*new Power*/
69 
70 
71 typedef enum
72 {
73 	DRIVER_MODE,
74 	USER_MODE
75 }powerSrvMode_e;
76 
77 typedef enum
78 {
79 	NEW_REQUEST,
80 	PENDING_REQUEST,
81 	RUNNING_REQUEST,
82 	HANDLED_REQUEST
83 }powerSrvRequestState_e;
84 
85 
86 /*****************************************************************************
87  **         Typedefs                                                        **
88  *****************************************************************************/
89 
90 
91 
92 
93 /*****************************************************************************
94  **         Structures                                                      **
95  *****************************************************************************/
96 
97 
98 
99 typedef struct
100 {
101 	powerSrvRequestState_e 		requestState;
102 	powerSrvMode_e				requestMode;
103 	E80211PsMode	            psMode;
104 	TI_BOOL 						sendNullDataOnExit;
105 	void* 						powerSaveCBObject;
106 	powerSaveCmpltCB_t    		powerSrvCompleteCB;
107 	powerSaveCmdResponseCB_t	powerSaveCmdResponseCB;
108 }	powerSrvRequest_t;
109 
110 /** \struct powerSrv_t
111  * this structure contain the data of the PowerSrv object.
112  */
113 
114 
115 typedef struct
116 {
117 	TI_HANDLE   			hPowerSrvSM;            /**<
118                                              					* Hnadle to the Power Server State Machine object.
119                                             			 		*/
120 
121 	TI_HANDLE   			hOS;                        	/**<
122                                              					* Handle to the OS object.
123                                              					*/
124 
125     TI_HANDLE   			hReport;                    	/**<
126                                             	 				* Handle to the Report module.
127                                              					*/
128 
129 	TI_HANDLE   			hEventMbox;         		/**< Handle to the power controller object via the WhalCtrl.
130 											 * Need for configure the desired power mode policy in the system.
131 											 */
132     TI_HANDLE               hCmdBld;
133 
134 	powerSrvMode_e 		currentMode; 		/**<
135 											*holds the current mode of the PSS - driver or user...
136 											*/
137 
138 	powerSrvMode_e 		userLastRequestMode;
139 											/**<
140 											*
141 											*/
142 
143 	powerSrvRequest_t 	userRequest;		/**<
144 											*user request struct.
145 											*/
146 
147 	powerSrvRequest_t 	driverRequest;		/**<
148 											*driver request struct
149 											*/
150 
151 	powerSrvRequest_t*  	pCurrentRequest;	/**<
152 											*pointer to the current request - user/driver request
153 											*/
154 
155 	TFailureEventCb		failureEventFunc;	/**<
156 											* upper layer Failure Event CB.
157 											* called when the scan command has been Timer Expiry
158 											*/
159 	TI_HANDLE			failureEventObj;		/**<
160 											* object parameter passed to the failureEventFunc
161 											* when it is called
162 											*/
163 
164 } powerSrv_t;
165 
166 
167 
168 /*****************************************************************************
169  **         External data definitions                                       **
170  *****************************************************************************/
171 
172 
173 /*****************************************************************************
174  **         External functions definitions                                  **
175  *****************************************************************************/
176 
177 
178 
179 
180 
181 /*****************************************************************************
182  **         Public Function prototypes                                      **
183  *****************************************************************************/
184 
185 /*****************************************************************************
186  **         Private Function prototypes                                     **
187  *****************************************************************************/
188 
189 /*****************************************************************************
190  **         Private Function prototypes                                     **
191  *****************************************************************************/
192 
193 #endif /*  _POWER_SRV_H_  */
194 
195