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

📄 util.c

📁 本文件是基于三星44b0芯片arm嵌入式系统的rtl8019网口的驱动程序
💻 C
字号:
/************************************************************
 * File name	: Util.c									*
 * By 			: hugang, hgx2000@mail.china.com			*
 ************************************************************/

#include "util.h"

unsigned int getpackedlong(void *lbuf)
{
	unsigned char *p_buf;
	unsigned int r_buf;
	
	p_buf = (unsigned char *)lbuf;
    r_buf = p_buf[0] + ((unsigned int)p_buf[1]<<8) + ((unsigned int)p_buf[2]<<16) + ((unsigned int)p_buf[3]<<24);
	
	return r_buf;
}

unsigned short csum(void *dp, unsigned short count)
{
    unsigned int total=0L;
    unsigned short n, *p, carries;

    n = count / 2;
    p = (unsigned short *)dp;
    while (n--)
        total += *p++;
    if (count & 1)
        total += (*(unsigned char *)p);
    while ((carries = (unsigned short)(total >> 16)) != 0)
        total = (total & 0xffffL) + carries;
    return((unsigned short)total);
}

unsigned short swapw(unsigned short w)
{	
	unsigned short s_w;
    s_w = ((w<<8)&0xff00) | ((w>>8)&0x00ff);
    return s_w;
}


unsigned int swapl(unsigned int lw)
{
	unsigned int s_lw;
    s_lw = ((lw<<24)&0xff000000) | ((lw<<8 )&0x00ff0000) | ((lw>>8 )&0x0000ff00) | ((lw>>24)&0x000000ff);
    return s_lw;
}

⌨️ 快捷键说明

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