Home | History | Annotate | Download | only in TrafficMonitor
      1 /****************************************************************************
      2 **+-----------------------------------------------------------------------+**
      3 **|                                                                       |**
      4 **| Copyright(c) 1998 - 2008 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 ****************************************************************************/
     35 
     36 /***************************************************************************/
     37 /*                                                                                                                                                 */
     38 /*        MODULE:       TrafficMonitor.h                                                                           */
     39 /*    PURPOSE:  TrafficMonitor module Header file                                              */
     40 /*                                                                                                                                                 */
     41 /***************************************************************************/
     42 #ifndef _TRAFFIC_MONITOR_API_H
     43 #define _TRAFFIC_MONITOR_API_H
     44 
     45 #include "DataCtrl_Api.h"
     46 
     47 /**/
     48 /* call back functions prototype.*/
     49 /**/
     50 typedef void (*TraffEevntCall_t)(TI_HANDLE Context,UINT32 Cookie);
     51 
     52 
     53 /*
     54  *      This enum list all the available traffic monitor event
     55  *  that a client can register to.
     56  */
     57 typedef enum
     58 {
     59     TX_ALL_MSDU_FRAMES =1,
     60     RX_ALL_MSDU_FRAMES,
     61     TX_RX_DIRECTED_FRAMES,
     62     TX_RX_ALL_MSDU_FRAMES,
     63     TX_RX_ALL_MSDU_IN_BYTES,
     64     TX_RX_DIRECTED_IN_BYTES,
     65     TX_RX_ALL_802_11_DATA_IN_BYTES,
     66     TX_RX_ALL_802_11_DATA_FRAMES,
     67 } TraffEvntOptNum_t;
     68 
     69 
     70 
     71 typedef enum
     72 {
     73     TRAFF_EDGE = 0,
     74     TRAFF_LEVEL
     75 }TraffTrigger_t;
     76 
     77 typedef enum
     78 {
     79     TRAFF_UP = 0,
     80     TRAFF_DOWN
     81 }TraffDirection_t;
     82 
     83 typedef struct
     84 {
     85     /*initial param*/
     86         TraffEevntCall_t    CallBack;
     87     TI_HANDLE           Context;
     88     UINT32              Cookie;
     89     TraffDirection_t    Direction;
     90     TraffTrigger_t      Trigger;
     91     int                                 Threshold;
     92     UINT32              TimeIntervalMs;
     93     TraffEvntOptNum_t   MonitorType;
     94 }TrafficAlertRegParm_t;
     95 
     96 
     97 /*********************************************************************/
     98 
     99 
    100 TI_HANDLE TrafficMonitor_create(TI_HANDLE hOs);
    101 TI_STATUS TrafficMonitor_Init(TI_HANDLE hTrafficMonitor,TI_HANDLE hRxData,TI_HANDLE hTxData);
    102 TI_STATUS TrafficMonitor_Destroy(TI_HANDLE hTrafficMonitor);
    103 TI_HANDLE TrafficMonitor_RegEvent(TI_HANDLE hTrafficMonitor, TrafficAlertRegParm_t *TrafficAlertRegParm, BOOL AutoResetCreate);
    104 TI_STATUS TrafficMonitor_SetRstCondition(TI_HANDLE hTrafficMonitor,TI_HANDLE EventHandle,TI_HANDLE ResetEventHandle,BOOL MutualRst);
    105 int TrafficMonitor_GetFrameBandwidth(TI_HANDLE hTrafficMonitor);
    106 VOID TrafficMonitor_UnregEvent(TI_HANDLE hTrafficMonitor, TI_HANDLE EventHandle);
    107 VOID TrafficMonitor_Event(TI_HANDLE hTrafficMonitor,int Count,UINT16 Mask,UINT32 MonitorModuleType);
    108 VOID TrafficMonitor_StopEventNotif(TI_HANDLE hTrafficMonitor,TI_HANDLE EventHandle);
    109 VOID TrafficMonitor_StartEventNotif(TI_HANDLE hTrafficMonitor,TI_HANDLE EventHandle);
    110 VOID TrafficMonitor_ResetEvent(TI_HANDLE hTrafficMonitor, TI_HANDLE EventHandle);
    111 TI_STATUS TrafficMonitor_Stop(TI_HANDLE hTrafficMonitor);
    112 TI_STATUS TrafficMonitor_Start(TI_HANDLE hTrafficMonitor);
    113 BOOL TrafficMonitor_IsEventOn(TI_HANDLE EventHandle);
    114 
    115 
    116 
    117 
    118 #endif
    119 
    120 
    121