BOOTLOADER
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
bootloader
middleware
ethernet
ethernetbuffer.c
Go to the documentation of this file.
1
/******************************************************
2
* Function: etherent buffer handler
3
*
4
* File: etherentbuffer.c
5
* Author: Book Chen
6
* Date: 2008.07.18
7
*******************************************************
8
*/
9
#include "
includes.h
"
10
11
ETHBUFFER_CONTROL
EthBufferCtrl
;
12
ETHBUFFER
EthBuffer
[
ETHBUFFER_NUMBER
];
13
14
void
F_EthernetBufferInit
(
void
);
15
void
F_EthernetBufferSvc
(
void
);
16
void
F_EthernetBufferReset
(
ETHBUFFER
*pBuffer);
17
ETHBUFFER
*
F_EthernetBufferAllocate
(
void
);
18
void
F_EthernetBufferRelease
(
ETHBUFFER
*pBuffer);
19
INT8U
*
F_EthernetBufferPut
(
ETHBUFFER
*pBuffer,
INT32U
Length);
20
INT8U
*
F_EthernetBufferPull
(
ETHBUFFER
*pBuffer,
INT32U
Length);
21
INT8U
*
F_EthernetBufferPush
(
ETHBUFFER
*pBuffer,
INT32U
Length);
22
void
F_EthernetBufferReserve
(
ETHBUFFER
*pBuffer,
INT32U
Length);
23
24
void
F_EthernetBufferInit
(
void
){
25
EthBufferCtrl.
BufferIndex
=0;
26
EthBufferCtrl.
Status
=0;
27
EthBufferCtrl.
State
=0;
28
}
29
void
F_EthernetBufferSvc
(
void
){}
30
void
F_EthernetBufferReset
(
ETHBUFFER
*pBuffer){
31
//memset(pBuffer,0,sizeof(ETHBUFFER));
32
memset
(pBuffer,0,5);
33
pBuffer->
Pad
[0]=0x00;
34
pBuffer->
Pad
[1]=0x00;
35
pBuffer->
TrueSize
=
ETHERNET_FRAME_LEN
;
// 1514
36
pBuffer->
pData
=(
INT8U
*)pBuffer->
Data
;
37
pBuffer->
Length
=0;
38
}
39
ETHBUFFER
*
F_EthernetBufferAllocate
(
void
){
40
ETHBUFFER
*pBuffer;
41
42
pBuffer=&EthBuffer[EthBufferCtrl.
BufferIndex
];
43
EthBufferCtrl.
BufferIndex
++;
44
if
(EthBufferCtrl.
BufferIndex
>=5) EthBufferCtrl.
BufferIndex
=0;
45
F_EthernetBufferReset
(pBuffer);
46
return
pBuffer;
47
}
48
void
F_EthernetBufferRelease
(
ETHBUFFER
*pBuffer){}
49
INT8U
*
F_EthernetBufferPut
(
ETHBUFFER
*pBuffer,
INT32U
Length){
50
pBuffer->
Length
+=Length;
51
return
pBuffer->
pData
;
52
}
53
// pull...means add data to frame...frame data pointer pull forward
54
// pull...means add data to frame...frame data length--
55
INT8U
*
F_EthernetBufferPull
(
ETHBUFFER
*pBuffer,
INT32U
Length){
56
pBuffer->
pData
+=Length;
57
pBuffer->
Length
-=Length;
58
return
pBuffer->
pData
;
59
}
60
// push...means add data to frame...frame data pointer push back
61
// push...means add data to frame...frame data length++
62
INT8U
*
F_EthernetBufferPush
(
ETHBUFFER
*pBuffer,
INT32U
Length){
63
pBuffer->
pData
-=Length;
64
pBuffer->
Length
+=Length;
65
return
pBuffer->
pData
;
66
}
67
void
F_EthernetBufferReserve
(
ETHBUFFER
*pBuffer,
INT32U
Length){
68
pBuffer->
pData
+=Length;
69
}
70
void
F_EthernetBufferDump
(
INT8U
*pData,
INT32U
Length){
71
INT32U
i=0,j=0;
72
73
i=0;
74
j=0;
75
printf
(
"\n Length=%4x "
,Length);
76
for
(i=0;i<Length;i++){
77
if
(j==0)
printf
(
"\n %4x0h "
,(i/16));
78
#if(DEBUG_ETHERNET_BUFFER==1)
79
printf
(
"%2x "
,*pData);
80
#endif
81
j++;
82
pData++;
83
if
(j==16) j=0;
84
//if(i>=0x60) break;
85
}
86
#if(DEBUG_ETHERNET_BUFFER)
87
printf
(
"\n "
);
88
#endif
89
}
Generated on Wed Jun 13 2012 00:03:09 for BOOTLOADER by
1.8.1.1