📄 crc.h
字号:
/* * Cisco 7200 (Predator) simulation platform. * Copyright (c) 2006 Christophe Fillot (cf@utc.fr) * * CRC functions. */#ifndef __CRC_H__#define __CRC_H__#include <sys/types.h>#include "utils.h"extern m_uint16_t crc12_array[],crc16_array[];extern m_uint32_t crc32_array[];/* Compute a CRC-12 hash on a 32-bit integer */static forced_inline m_uint32_t crc12_hash_u32(m_uint32_t val){ register m_uint32_t crc=0; register int i; for(i=0;i<4;i++) { crc = (crc >> 8) ^ crc12_array[(crc^val) & 0xff]; val >>= 8; } return(crc);}/* Compute a CRC-16 hash on a 32-bit integer */static forced_inline m_uint32_t crc16_hash_u32(m_uint32_t val){ register m_uint32_t crc=0; register int i; for(i=0;i<4;i++) { crc = (crc >> 8) ^ crc16_array[(crc^val) & 0xff]; val >>= 8; } return(crc);}/* Compute a CRC-32 on the specified block */static forced_inline m_uint32_t crc32_compute(m_uint32_t crc_accum,m_uint8_t *ptr,int len){ unsigned long c = crc_accum; int n; for (n = 0; n < len; n++) { c = crc32_array[(c ^ ptr[n]) & 0xff] ^ (c >> 8); } return(~c);}/* Initialize CRC algorithms */void crc_init(void);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -