summaryrefslogtreecommitdiff
path: root/network/wlan/WDI/COMMON/Defrag.h
blob: 690fe7fe0224bbc205429bc918672036b5eab6ec (plain)
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
#ifndef __INC_DEFRAG_H
#define __INC_DEFRAG_H

#define MaxDefragLifeTime			51200	// in us


VOID
DefragInitialize(
	PADAPTER		Adapter
	);

PRT_RFD
DefragAddRFD(
	PADAPTER		Adapter,
	PRT_RFD			pRfd,
	pu1Byte			pSenderAddr,
	u1Byte			TID,
	u2Byte			SeqNum,
	u1Byte			FragNum,
	BOOLEAN			bMoreFrag,
	BOOLEAN			bEncrypted
	);

VOID
DefragReset(
	PADAPTER		Adapter
	);


/*
 *	Note:	Following functions should not be called outside Defrag.c
 *
*/
VOID
DefragInit(
	PDEFRAG_ENTRY	pDefragArray,
	u2Byte			Size
	);

PDEFRAG_ENTRY
DefragSearch(
	PDEFRAG_ENTRY	pDefragArray,
	u2Byte			Size,
	pu1Byte			pSenderAddr,
	u1Byte			TID,
	u2Byte			SeqNum,
	u1Byte			FragNum
	);

VOID
DefragRemoveOldest(
	PADAPTER	Adapter
	);

PDEFRAG_ENTRY
DefragFindFreeEntry(
	PDEFRAG_ENTRY	pDefragArray,
	u2Byte			Size
	);

VOID
DefragAge(
	PDEFRAG_ENTRY	pDefragArray,
	u2Byte			Size,
	u8Byte			usCurrentTime,
	PADAPTER		Adapter
	);

VOID
DefragEntrySetRFD(
	PDEFRAG_ENTRY	pEntry,
	PRT_RFD			pRfd,
	pu1Byte			pSenderAddr,
	u1Byte			TID,
	u2Byte			SeqNum,
	u1Byte			FragNum	
	);

VOID
DefragEntryAddRFD(
	PDEFRAG_ENTRY	pEntry,
	PRT_RFD			pRfd,
	u1Byte			FragNum	
	);

VOID
DefragEntryFree(
	PDEFRAG_ENTRY	pEntry,
	PADAPTER		Adapter	
	);

VOID
DefragRecycleRFD(
	PADAPTER		Adapter
	);

VOID
DefragFreeLRUEntry(
	PDEFRAG_ENTRY	pDefragArray,
	u2Byte			Size,
	PADAPTER		Adapter
	);

#endif // #ifndef __INC_DEFRAG_H