📄 helpers.c
字号:
#include "compiler.h"
#include "tcptask.h"
WORD swaps(WORD v)
{
WORD_VAL t;
BYTE b;
t.Val = v;
b = t.v[1];
t.v[1] = t.v[0];
t.v[0] = b;
return t.Val;
}
DWORD swapl(DWORD v)
{
BYTE b;
DWORD myV;
DWORD_VAL *myP;
myV = v;
myP = (DWORD_VAL*)&myV;
b = myP->v[3];
myP->v[3] = myP->v[0];
myP->v[0] = b;
b = myP->v[2];
myP->v[2] = myP->v[1];
myP->v[1] = b;
return myV;
}
WORD CalcIPChecksum(BYTE* buffer, WORD count)
{
WORD i;
WORD *val;
union
{
DWORD Val;
struct
{
WORD_VAL LSB;
WORD_VAL MSB;
} words;
} tempSum, sum;
sum.Val = 0;
i = count >> 1;
val = (WORD *)buffer;
while( i-- )
sum.Val += *val++;
if ( count & 1 )
sum.Val += *(BYTE *)val;
tempSum.Val = sum.Val;
while( (i = tempSum.words.MSB.Val) != 0 )
{
sum.words.MSB.Val = 0;
sum.Val = (DWORD)sum.words.LSB.Val + (DWORD)i;
tempSum.Val = sum.Val;
}
return (~sum.words.LSB.Val);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -