⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chksum.h

📁 某个ARM9板子的实际bootloader 对裁剪
💻 H
字号:
/****************************************************************************
* Copyright  Storlink Corp 2005.  All rights reserved.                
*--------------------------------------------------------------------------
* Name			: chksum.h
* Description	: 
*		Handle checksum for inet
*
* History
*
*	Date		Writer		Description
*	-----------	-----------	-------------------------------------------------
*	04/26/2005	Gary Chen	Create
*
****************************************************************************/
#ifndef _CHKSUM_H
#define _CHKSUM_H

static inline u16 ip_csum(u16 *w, int len, int init_sum)
{
	int sum = init_sum;

    union {
		volatile u8 c[2];
		volatile u16 s;
	} su;

    union {
		volatile u16 s[2];
		volatile int i;
    } iu;

    while ((len -= 2) >= 0)
		sum += *w++;

    if (len == -1)
    {
		su.c[0] = *(char *)w;
		su.c[1] = 0;
		sum += su.s;
    }

    iu.i = sum;
    sum = iu.s[0] + iu.s[1];
    if (sum > 65535)
	sum -= 65535;

    su.s = ~sum;

    return (su.c[0] << 8) | su.c[1];
}

#endif // _CHKSUM_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -