crc.h

来自「思科路由器仿真器,用来仿7200系列得,可以在电脑上模拟路由器-Cisco ro」· C头文件 代码 · 共 64 行

H
64
字号
/* * 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 + =
减小字号Ctrl + -
显示快捷键?