| /* |
| * PowerSrv.h |
| * |
| * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in |
| * the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name Texas Instruments nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| /** \file powerSrv.h |
| * \brief This is the Power Manager module private (internal). |
| * \author Yaron Menashe |
| * \date 27-Apr-2004 |
| */ |
| |
| /**************************************************************************** |
| * * |
| * MODULE: Power Manager * |
| * PURPOSE: Power Manager Module private * |
| * * |
| ****************************************************************************/ |
| |
| #ifndef _POWER_SRV_H_ |
| #define _POWER_SRV_H_ |
| |
| #include "TWDriverInternal.h" |
| #include "PowerSrv_API.h" |
| |
| /*#include "PowerSrvSM.h"*/ |
| |
| /***************************************************************************** |
| ** Constants ** |
| *****************************************************************************/ |
| |
| |
| /***************************************************************************** |
| ** Enumerations ** |
| *****************************************************************************/ |
| |
| |
| |
| |
| |
| /*new Power*/ |
| |
| |
| typedef enum |
| { |
| DRIVER_MODE, |
| USER_MODE |
| }powerSrvMode_e; |
| |
| typedef enum |
| { |
| NEW_REQUEST, |
| PENDING_REQUEST, |
| RUNNING_REQUEST, |
| HANDLED_REQUEST |
| }powerSrvRequestState_e; |
| |
| |
| /***************************************************************************** |
| ** Typedefs ** |
| *****************************************************************************/ |
| |
| |
| |
| |
| /***************************************************************************** |
| ** Structures ** |
| *****************************************************************************/ |
| |
| |
| |
| typedef struct |
| { |
| powerSrvRequestState_e requestState; |
| powerSrvMode_e requestMode; |
| E80211PsMode psMode; |
| TI_BOOL sendNullDataOnExit; |
| void* powerSaveCBObject; |
| powerSaveCmpltCB_t powerSrvCompleteCB; |
| powerSaveCmdResponseCB_t powerSaveCmdResponseCB; |
| } powerSrvRequest_t; |
| |
| /** \struct powerSrv_t |
| * this structure contain the data of the PowerSrv object. |
| */ |
| |
| |
| typedef struct |
| { |
| TI_HANDLE hPowerSrvSM; /**< |
| * Hnadle to the Power Server State Machine object. |
| */ |
| |
| TI_HANDLE hOS; /**< |
| * Handle to the OS object. |
| */ |
| |
| TI_HANDLE hReport; /**< |
| * Handle to the Report module. |
| */ |
| |
| TI_HANDLE hEventMbox; /**< Handle to the power controller object via the WhalCtrl. |
| * Need for configure the desired power mode policy in the system. |
| */ |
| TI_HANDLE hCmdBld; |
| |
| powerSrvMode_e currentMode; /**< |
| *holds the current mode of the PSS - driver or user... |
| */ |
| |
| powerSrvMode_e userLastRequestMode; |
| /**< |
| * |
| */ |
| |
| powerSrvRequest_t userRequest; /**< |
| *user request struct. |
| */ |
| |
| powerSrvRequest_t driverRequest; /**< |
| *driver request struct |
| */ |
| |
| powerSrvRequest_t* pCurrentRequest; /**< |
| *pointer to the current request - user/driver request |
| */ |
| |
| TFailureEventCb failureEventFunc; /**< |
| * upper layer Failure Event CB. |
| * called when the scan command has been Timer Expiry |
| */ |
| TI_HANDLE failureEventObj; /**< |
| * object parameter passed to the failureEventFunc |
| * when it is called |
| */ |
| |
| } powerSrv_t; |
| |
| |
| |
| /***************************************************************************** |
| ** External data definitions ** |
| *****************************************************************************/ |
| |
| |
| /***************************************************************************** |
| ** External functions definitions ** |
| *****************************************************************************/ |
| |
| |
| |
| |
| |
| /***************************************************************************** |
| ** Public Function prototypes ** |
| *****************************************************************************/ |
| |
| /***************************************************************************** |
| ** Private Function prototypes ** |
| *****************************************************************************/ |
| |
| /***************************************************************************** |
| ** Private Function prototypes ** |
| *****************************************************************************/ |
| |
| #endif /* _POWER_SRV_H_ */ |
| |