cm-kernel /drivers/net/wireless/tiwlan1251/common/src/core/data_ctrl/Tx/MsduList.h

Language C/C++ Header Lines 121
MD5 Hash 12add13d3d5303fe97b1c47a7a733634 Estimated Cost $1,017 (why?)
Repository git://github.com/CyanogenMod/cm-kernel.git View Raw File View Project SPDX
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/****************************************************************************
**+-----------------------------------------------------------------------+**
**|                                                                       |**
**| Copyright(c) 1998 - 2008 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.  |**
**|                                                                       |**
**+-----------------------------------------------------------------------+**
****************************************************************************/
  
/***************************************************************************/
/*															           	   */
/*		MODULE:	MsduList.c									           	   */
/*    PURPOSE:	MSDU list implementation        				       	   */
/*															               */
/***************************************************************************/

#ifndef _MSDU_LIST_H_
#define _MSDU_LIST_H_

#include "memMngrEx.h"
#include "report.h" 


/************************************************************************/
/* MSDU link list definition.											*/
/************************************************************************/
typedef struct 
{
	TI_HANDLE	hMemMgr;		/* handle to memory manger */
	TI_HANDLE	hReport;		/* handle to Report object */
	TI_HANDLE	hOs;			/* handle to Os Abstraction object */

	TI_HANDLE	hCriticalSectionProtect;

	mem_MSDU_T *first;			/* Points to the first Msdu's in the list. */
	mem_MSDU_T *last;			/* Points to the last Msdu's is the list. */
	UINT16   maxNumOfMsdu;		/* The maximum number of Msdu's allowed to be in the queue. */
	UINT16   CurrNumOfMsdu;		/* The current number of Msdu's.         */
	qOvFlowPolicy_e  ovFlowPolicy; /* tx over flow policy */

	UINT16	numOfOverFlow ;
	UINT16	maxCurrOfMsdu ;

	/* admission ctrl params */
	UINT8	acId;	/* the AC used for this Tx queue. */
	BOOL	useAdmissionAlgo;
	INT32 	credit;
	UINT32	enableTransmissionTime ;
	UINT32	lastTimeStamp;
	UINT32	mediumTime;
	
	UINT32 totalUsedTime;

	trafficAdmState_e  admissionState;
	admissionState_e   admissionRequired;


	INT32 highMediumUsageThreshold;
	INT32 lowMediumUsageThreshold;
	UINT8 selectionHistoryCounter; /* When selected by Tx scheduler this counter is preset, and is decremented
									  every scheduler activation, so we have some indication on selections history. */

}MsduList_t;


MsduList_t* msduList_CreateNewMsduList(TI_HANDLE hOs );

TI_STATUS	msduList_ConfigMsduList( MsduList_t* this,	TI_HANDLE hMemMgr,
							 TI_HANDLE hReport, TI_HANDLE hOs,INT16 maxNumOfElements );

TI_STATUS	msduList_SetMsduListNumOfElements( MsduList_t* this, UINT16 maxNumOfElements);

TI_STATUS	msduList_SetMsduListOverFlowPolicy( MsduList_t* this, qOvFlowPolicy_e  QueueOvFlowPolicy);

TI_STATUS msduList_FreeMsduList( MsduList_t* this);

TI_STATUS msduList_EmptyMsduList( MsduList_t* this );

TI_STATUS msduList_Insert( MsduList_t* this , mem_MSDU_T  **pMsdu );

TI_STATUS msduList_WatchFirst( MsduList_t *this, mem_MSDU_T  **pMsdu );

TI_STATUS msduList_GetFirst( MsduList_t *this, mem_MSDU_T  **pMsdu );

UINT32 msduList_getCurrNumOfMsdu(MsduList_t *this);


/* Test Functions */
/*----------------*/
void printFullMsduList(MsduList_t *this);
void printMsduList(MsduList_t *this);


#endif /* _MSDU_LIST_H_ */
Back to Top