in_cksum.c

来自「ucos_ii基础上加上网络功能」· C语言 代码 · 共 33 行

C
33
字号

#include "includes.h"
#include "in_cksum.h"


/*
 *			I N _ C K S U M
 *
 * Checksum routine for Internet Protocol family headers (C Version)
 *
 */

WORD in_cksum (void *ptr, int len)
{
	register long sum = 0;
	register const WORD *wrd = (const WORD*) ptr;

	while (len > 1)
	{
		sum += *wrd++;
		len -= 2;
	}
	if (len > 0)
		sum += *(const BYTE*)wrd;

	while (sum >> 16)
		sum = (sum & 0xFFFF) + (sum >> 16);

	return (WORD)sum;

}

⌨️ 快捷键说明

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