checksum.h

来自「Axis 221 camera embedded programing inte」· C头文件 代码 · 共 30 行

H
30
字号
#ifndef _ASM_CRIS_ARCH_CHECKSUM_H#define _ASM_CRIS_ARCH_CHECKSUM_H/* * Check values used in TCP/UDP headers. * * The gain of doing this in assembler instead of C, is that C doesn't * generate carry-additions for the 32-bit components of the * checksum. Which means it would be necessary to split all those into * 16-bit components and then add. */static inline __wsumcsum_tcpudp_nofold(__be32 saddr, __be32 daddr,		   unsigned short len, unsigned short proto, __wsum sum){	__wsum res;	__asm__ __volatile__ ("add.d %2, %0\n\t"			      "addc %3, %0\n\t"			      "addc %4, %0\n\t"			      "addc 0, %0\n\t"			      : "=r" (res)			      : "0" (sum), "r" (daddr), "r" (saddr), \			      "r" ((len + proto) << 8));	return res;}#endif /* _ASM_CRIS_ARCH_CHECKSUM_H */

⌨️ 快捷键说明

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