PageRenderTime 46ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/drivers/net/wireless/tiwlan1251/common/src/Management/QOS/Inc/trafficAdmControl.h

http://github.com/CyanogenMod/cm-kernel
C Header | 143 lines | 68 code | 33 blank | 42 comment | 0 complexity | c52e66fc71e3384e26f16c1bf21a9de3 MD5 | raw file
Possible License(s): AGPL-1.0, GPL-2.0, LGPL-2.0
  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. /* MODULE: admCtrl.c */
  38. /* PURPOSE: WSM/WME admission Control */
  39. /* */
  40. /***************************************************************************/
  41. #ifndef _ADM_CTRL_SM_H
  42. #define _ADM_CTRL_SM_H
  43. #include "fsm.h"
  44. #include "qosMngr_API.h"
  45. #include "mlmeApi.h"
  46. #define INITIAL_DIALOG_TOKEN 1
  47. /* state machine states */
  48. typedef enum
  49. {
  50. TRAFFIC_ADM_CTRL_SM_STATE_IDLE = 0,
  51. TRAFFIC_ADM_CTRL_SM_STATE_WAIT = 1,
  52. } trafficAdmCtrl_smState_t;
  53. /* State machine inputs */
  54. typedef enum
  55. {
  56. TRAFFIC_ADM_CTRL_SM_EVENT_START = 0,
  57. TRAFFIC_ADM_CTRL_SM_EVENT_STOP = 1,
  58. TRAFFIC_ADM_CTRL_SM_EVENT_ACCEPT = 2,
  59. TRAFFIC_ADM_CTRL_SM_EVENT_REJECT = 3,
  60. TRAFFIC_ADM_CTRL_SM_EVENT_TIMEOUT = 4
  61. } trafficAdmCtrl_smEvents_t;
  62. typedef struct
  63. {
  64. UINT8 tsInfo[3];
  65. trafficAdmCtrl_smState_t rafficAdmCtrlSmCurrState;
  66. }tidInfo_t;
  67. typedef struct
  68. {
  69. TI_HANDLE hTxData;
  70. TI_HANDLE hReport;
  71. TI_HANDLE hOs;
  72. TI_HANDLE hQosMngr;
  73. TI_HANDLE hCtrlData;
  74. TI_HANDLE hMemMgr;
  75. TI_HANDLE hExcMgr;
  76. TI_HANDLE timer[MAX_NUM_OF_AC];
  77. UINT8 currentState[MAX_NUM_OF_AC];
  78. UINT8 dialogToken[MAX_NUM_OF_AC];
  79. UINT8 dialogTokenCounter;
  80. fsm_stateMachine_t *pTrafficAdmCtrlSm;
  81. UINT32 timeout;
  82. BOOL useFixedMsduSize;
  83. } trafficAdmCtrl_t;
  84. TI_HANDLE trafficAdmCtrl_create(TI_HANDLE pOs);
  85. TI_STATUS trafficAdmCtrl_unload(TI_HANDLE hTrafficAdmCtrl);
  86. TI_STATUS trafficAdmCtrl_config(TI_HANDLE hTrafficAdmCtrl,
  87. TI_HANDLE hTxData,
  88. TI_HANDLE hReport,
  89. TI_HANDLE hOs,
  90. TI_HANDLE hQosMngr,
  91. TI_HANDLE hCtrlData,
  92. TI_HANDLE hMemMgr,
  93. TI_HANDLE hExcMgr,
  94. trafficAdmCtrlInitParams_t *pTrafficAdmCtrlInitParams);
  95. TI_STATUS trafficAdmCtrl_setParam(TI_HANDLE hTrafficAdmCtrl, paramInfo_t *pParam);
  96. TI_STATUS trafficAdmCtrl_getParam(TI_HANDLE hTrafficAdmCtrl, paramInfo_t *pParam);
  97. TI_STATUS trafficAdmCtrl_startAdmRequest(TI_HANDLE hTrafficAdmCtrl, tspecInfo_t *pTSpecInfo);
  98. TI_STATUS trafficAdmCtrl_stopAdmRequest(TI_HANDLE hTrafficAdmCtrl, UINT8 tid);
  99. TI_STATUS trafficAdmCtrl_stop(TI_HANDLE hTrafficAdmCtrl);
  100. TI_STATUS trafficAdmCtrl_recv(TI_HANDLE hTrafficAdmCtrl, UINT8* pData, UINT8 action);
  101. TI_STATUS trafficAdmCtrl_sendDeltsFrame(TI_HANDLE hTrafficAdmCtrl, tspecInfo_t *pTSpecInfo, UINT8 reasonCode);
  102. void trafficAdmCtrl_print(trafficAdmCtrl_t *pTrafficAdmCtr);
  103. void trafficAdmCtrl_buildTSPec(trafficAdmCtrl_t *pTrafficAdmCtrl,
  104. tspecInfo_t *pTSpecInfo,
  105. UINT8 *pDataBuff,
  106. UINT32 *len);
  107. void trafficAdmCtrl_parseTspecIE(trafficAdmCtrl_t *pTrafficAdmCtrl,
  108. tspecInfo_t *tsInfo,
  109. dot11_WME_TSPEC_IE_t *dot11_WME_TSPEC_IE);
  110. #endif