Home | History | Annotate | Download | only in MacServices
      1 /*
      2  * PowerSrv_API.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_API.h
     35  *  \brief This is the Power Manager module API.
     36  *  \author Yaron Menashe
     37  */
     38 
     39 /****************************************************************************
     40  *                                                                          *
     41  *   MODULE:  Power Server                                                 *
     42  *   PURPOSE: Power Server Module API                                      *
     43  *                                                                          *
     44  ****************************************************************************/
     45 
     46 #ifndef _POWER_SRV_API_H_
     47 #define _POWER_SRV_API_H_
     48 
     49 #include "MacServices_api.h"
     50 
     51 /*****************************************************************************
     52  **         Constants                                                       **
     53  *****************************************************************************/
     54 
     55 
     56 /*****************************************************************************
     57  **         Enumerations                                                    **
     58  *****************************************************************************/
     59 
     60 
     61 
     62 /*****************************************************************************
     63  **         Typedefs                                                        **
     64  *****************************************************************************/
     65 /*typedef void (*powerSaveCmdResponseCB_t )(TI_HANDLE cmdResponseHandle,TI_UINT8 MboxStatus);*/
     66 typedef TPowerSaveResponseCb powerSaveCmdResponseCB_t;
     67 /*typedef void (*powerSaveCmpltCB_t )(TI_HANDLE powerSaveCmpltHandle,TI_UINT8 PSMode,TI_UINT8 transStatus);*/
     68 typedef TPowerSaveCompleteCb powerSaveCmpltCB_t;
     69 /*****************************************************************************
     70  **         Structures                                                      **
     71  *****************************************************************************/
     72 
     73 
     74 
     75 
     76 /*****************************************************************************
     77  **         External data definitions                                       **
     78  *****************************************************************************/
     79 
     80 
     81 /*****************************************************************************
     82  **         External functions definitions                                  **
     83  *****************************************************************************/
     84 
     85 
     86 /*****************************************************************************
     87  **         Public Function prototypes                                      **
     88  *****************************************************************************/
     89 
     90 
     91 /**
     92  * \author Assaf Azulay
     93  * \date 20-Oct-2005\n
     94  * \brief Creates the object of the power Server.
     95  *
     96  * Function Scope \e Public.\n
     97  * Parameters:\n
     98  * 1) TI_HANDLE - handle to the OS.\n
     99  * Return Value: TI_HANDLE - handle to the powerSrv object.\n
    100  */
    101 TI_HANDLE powerSrv_create(TI_HANDLE hOs);
    102 
    103 
    104 /**
    105  * \author Assaf Azulay
    106  * \date 27-Apr-2005\n
    107  * \brief Destroy the object of the power Server.
    108  *
    109  * Function Scope \e Public.\n
    110  * Parameters:\n
    111  * 1) TI_HANDLE - handle to the powerSrv object.\n
    112  * Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n
    113  */
    114 TI_STATUS powerSrv_destroy(TI_HANDLE hPowerSrv);
    115 
    116 
    117 /**
    118   * \author Assaf Azulay
    119  * \date 24-Oct-2005\n
    120  * \brief Initialization of the powerSrv module.
    121  *
    122  * Function Scope \e Public.\n
    123  * Parameters:\n
    124  * 1) TI_HANDLE - handle to the powerSrv object.\n
    125  * 3) TI_HANDLE - handle to the Report object.\n
    126  * 2) TI_HANDLE - handle to the EventMbox object.\n
    127  * 4) TI_HANDLE - handle to the CommandBuilder object.\n
    128  * 5) TI_HANDLE - handle to the Timer module object.\n
    129  * Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n
    130  */
    131 TI_STATUS powerSrv_init (TI_HANDLE hPowerSrv,
    132                          TI_HANDLE hReport,
    133                          TI_HANDLE hEventMbox,
    134                          TI_HANDLE hCmdBld,
    135                          TI_HANDLE hTimer);
    136 
    137 
    138 TI_STATUS powerSrv_config(TI_HANDLE 				hPowerSrv,
    139 				          TPowerSrvInitParams      *pPowerSrvInitParams);
    140 
    141 /**
    142   * \author Assaf Azulay
    143  * \date 24-Oct-2005\n
    144  * \brief request PS by User
    145  *
    146  * Function Scope \e Public.\n
    147  * Parameters:\n
    148  * 1) hPowerSrv 						- handle to the PowerSrv object.\n
    149  * 2) psMode							- Power save/Active request.\n
    150  * 3) sendNullDataOnExit				- \n
    151  * 4) powerSaveCompleteCBObject		- handle to the Callback functin module.\n
    152  * 5) powerSaveCompleteCB				- Calback function - for success/faild notification.\n
    153  * 6) powerSavecmdResponseCB			- Calback function - for GWSI success/faild notification.\n
    154  * Return Value: TI_STATUS - TI_OK / PENDING / TI_NOK.\n
    155  * \b Description:\n
    156  * This function is a user mode request from the Power Save Server./n
    157  * it will create a Request from typ "USER_REQUEST" and will try to perform the user request for PS/Active./n
    158  * this will be done in respect of priority to Driver request./n
    159  */
    160 TI_STATUS powerSrv_SetPsMode (TI_HANDLE 					hPowerSrv,
    161                               E80211PsMode	                psMode,
    162  							  TI_BOOL  						sendNullDataOnExit,
    163  						      void * 						powerSaveCompleteCBObject,
    164  						      powerSaveCmpltCB_t  			powerSaveCompleteCB,
    165  						      powerSaveCmdResponseCB_t	    powerSavecmdResponseCB);
    166 
    167 
    168 /**
    169   * \author Assaf Azulay
    170  * \date 24-Oct-2005\n
    171  * \brief SW configure, use to override the current PowerMode (what ever it will be) to
    172  *        active/PS combined with awake/power-down. use for temporary change the system policy.
    173  *
    174  * Function Scope \e Public.\n
    175  * Parameters:\n
    176  * 1) TI_HANDLE - handle to the powerSrv object.\n
    177  * 2) powerSrv_RequestFor_802_11_PS_e - the driver mode obliged to be in 802.11 PS or not change.\n
    178  * 3) PowerCtrl_PowerLevel_e - the desired driver power level (allowed: AWAKE or POWER DOWN).\n
    179  * 4) TI_HANDLE theObjectHandle - the handle the object that need the PS success/fail notification.\n
    180  * 5) ps802_11_NotificationCB_t - the callback function.\n
    181  * 6) char* - the clinet name that ask for driver mode.\n
    182  * Return Value: TI_STATUS - if success (already in power save) then TI_OK,\n
    183  *                           if pend (wait to ACK form AP for the null data frame) then PENDING\n
    184  *                           if PS isn't enabled then POWER_SAVE_802_11_NOT_ALLOWED\n
    185  *                           else TI_NOK.\n
    186  * \b Description:\n
    187  * enter in to configuration of the driver that in higher priority from the user.\n
    188  * the configuration is:\n
    189  *  - to enter to802.11 PS or not (if not this isn't a request to get out from 802.11 PS).\n
    190  *  - to change the HW power level to awake or power-down if not already there.
    191  *    this is a must request.\n
    192 */
    193 TI_STATUS powerSrv_ReservePS (TI_HANDLE 				hPowerSrv,
    194 							  E80211PsMode              psMode,
    195  						 	  TI_BOOL  					sendNullDataOnExit,
    196  							  void * 					powerSaveCBObject,
    197 							  powerSaveCmpltCB_t 		powerSaveCompleteCB);
    198 
    199 
    200 /**
    201  * \author Assaf Azulay
    202  * \date 24-Oct-2005\n
    203  * \brief end the temporary change of system policy, and returns to the user system policy.
    204  *
    205  * Function Scope \e Public.\n
    206  * Parameters:\n
    207  * 1) TI_HANDLE - handle to the powerSrv object.\n
    208  * 2) char* - the clinet name that ask for driver mode.\n
    209  * Return Value: TI_STATUS - TI_OK on success else TI_NOK.\n
    210  * \b Description:\n
    211  * enter in to configuration of the driver that in higher priority from the user.\n
    212  * the configuration is:\n
    213  * end the user mode configuration (driver mode priority) and returns the user configuration
    214  * (user mode priority).
    215 */
    216 TI_STATUS powerSrv_ReleasePS( 	TI_HANDLE 					hPowerSrv,
    217 									TI_BOOL  						sendNullDataOnExit,
    218  						 			void *  						powerSaveCBObject,
    219  									powerSaveCmpltCB_t  			powerSaveCompleteCB);
    220 
    221 
    222 /**
    223  * \author Assaf Azulay
    224  * \date 24-Oct-2005\n
    225  * \brief reflects the actual state of the state machine
    226  *
    227  * Function Scope \e Public.\n
    228  * Parameters:\n
    229  * 1) TI_HANDLE - handle to the powerSrv object.\n
    230  * Return Value:\n
    231  * TI_BOOL - thre is in PS false otherwise.\n
    232 */
    233 TI_BOOL powerSrv_getPsStatus(TI_HANDLE hPowerSrv);
    234 
    235 
    236 /**
    237  * \author Assaf Azulay
    238  * \date 24-Oct-2005\n
    239  * \sets the rate as got from user else sets default value.\n
    240  *
    241  * Function Scope \e Public.\n
    242  * Parameters:\n
    243  * 1) TI_HANDLE 	- handle to the powerSrv object.\n
    244  * 2) TI_UINT16		- desierd rate .\n
    245  * Return Value:\n
    246  * void.\n
    247 */
    248 void powerSrv_SetRateModulation(TI_HANDLE hPowerSrv, TI_UINT16  rate);
    249 
    250 
    251 
    252 /**
    253  * \author Assaf Azulay
    254  * \date 9-Mar-2006\n
    255  * \brief Registers a failure event callback for scan error notifications.
    256  *
    257  * Function Scope \e Public.\n
    258  * Parameters:\n
    259  * - hPowerSrv 		- handle to the PowerSrv object.
    260  * - failureEventCB 	- the failure event callback function.
    261  * - hFailureEventObj 	- handle to the object passed to the failure event callback function.
    262 */
    263 void powerSrvRegisterFailureEventCB( TI_HANDLE hPowerSrv,
    264                                      void * failureEventCB, TI_HANDLE hFailureEventObj );
    265 
    266 
    267 /**
    268  * \date 03-Jul-2006\n
    269  * \return the rate as it was seted by powerSrv_SetRateModulation.\n
    270  *
    271  * Function Scope \e Public.\n
    272  * Parameters:\n
    273  * 1) TI_HANDLE 	- handle to the powerSrv object.\n
    274  * Return Value: TI_UINT16		- desierd rate .\n
    275  * void.\n
    276 */
    277 TI_UINT32 powerSrv_GetRateModulation(TI_HANDLE hPowerSrv);
    278 
    279 TI_STATUS powerSrv_restart(	TI_HANDLE hPowerSrv);
    280 
    281 #endif /*  _POWER_SRV_API_H_  */
    282