PageRenderTime 35ms CodeModel.GetById 11ms RepoModel.GetById 1ms app.codeStats 0ms

/drivers/net/wireless/tiwlan1251/common/src/TNETW_Driver/Data_Srv/Tx_HW_Queue/txHwQueue.h

http://github.com/CyanogenMod/cm-kernel
C Header | 90 lines | 29 code | 18 blank | 43 comment | 0 complexity | a136f73a3d207ce88ebf6a7730cbaec4 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: txHwQueue.h
  38. *
  39. * PURPOSE: hardware Tx queues management object
  40. *
  41. ****************************************************************************/
  42. #ifndef _TX_HW_QUEUE_H
  43. #define _TX_HW_QUEUE_H
  44. #include "whalParams.h"
  45. #include "TNETW_Driver_types.h"
  46. #include "txHwQueue_api.h"
  47. #define MAX_BLKS_PER_PKT 16 /* Max number of Tx HW blocks that may be required for one packet. */
  48. #define MAX_FRAG_THRESHOLD 4096
  49. /* Per Queue HW blocks accounting data: */
  50. typedef struct
  51. {
  52. UINT8 numBlocksHighThreshold; /* The maximum HW blocks that can be allocated for this Queue. */
  53. UINT8 numBlocksLowThreshold; /* The minimum HW blocks that must be reserved for this Queue. */
  54. UINT8 numBlocksUsed; /* The number of HW blocks that are currently allocated for this Queue. */
  55. UINT8 numBlocksReserved; /* The number of HW blocks currently reserved for this Queue (to guarentee the low threshold). */
  56. UINT8 lowResourceThresh; /* Above this blocks number we need to request tx-complete from FW. */
  57. UINT8 numDescriptors; /* The number of descriptors in the FW per this Queue. */
  58. UINT8 numPackets; /* The current number of packets in the FW per this Queue. */
  59. }txHwQueueInfo_t;
  60. typedef struct
  61. {
  62. TI_HANDLE hOs;
  63. TI_HANDLE hReport;
  64. WhalParams_T *pWhalParams;
  65. UINT32 NumBlocks; /* The total number of Tx blocks */
  66. UINT32 NumFree; /* Total number of free HW blocks */
  67. UINT32 TotalBlocksReserved; /* Total number of free but reserved HW blocks */
  68. txHwQueueInfo_t TxHwQueueInfo[MAX_NUM_OF_TX_QUEUES];
  69. } TxHwQueueObj_t;
  70. /* Queue-Calc public functions: */
  71. extern void txHwQueueCalc_BlocksNum(TI_HANDLE hTxHwQueue, txCtrlBlkEntry_t *pPktCtrlBlk);
  72. #endif /* _TX_HW_QUEUE_H */