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

📄 crc.c

📁 思科路由器仿真器,用来仿7200系列得,可以在电脑上模拟路由器-Cisco router simulator, used to fake a 7200 series can be simulated
💻 C
字号:
/* * Cisco 7200 (Predator) simulation platform. * Copyright (c) 2006 Christophe Fillot (cf@utc.fr) * * CRC functions. */#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/mman.h>#include <signal.h>#include <fcntl.h>#include <assert.h>#include "utils.h"#include "crc.h"#define CRC12_POLY  0x0f01#define CRC16_POLY  0xa001#define CRC32_POLY  0xedb88320L/* CRC tables */m_uint16_t crc12_array[256],crc16_array[256];m_uint32_t crc32_array[256];/* Initialize CRC-12 algorithm */static void crc12_init(void){   m_uint16_t crc,c;   int i,j;   for(i=0;i<256;i++) {      crc = 0;      c = (m_uint16_t)i;      for(j=0;j<8;j++) {         if ((crc ^ c) & 0x0001)            crc = (crc >> 1) ^ CRC12_POLY;         else            crc =  crc >> 1;                  c = c >> 1;      }      crc12_array[i] = crc;   }}/* Initialize CRC-16 algorithm */static void crc16_init(void){   m_uint16_t crc,c;   int i,j;   for(i=0;i<256;i++) {      crc = 0;      c = (m_uint16_t)i;      for(j=0;j<8;j++) {         if ((crc ^ c) & 0x0001)            crc = (crc >> 1) ^ CRC16_POLY;         else            crc =  crc >> 1;                  c = c >> 1;      }      crc16_array[i] = crc;   }}/* Initialize CRC-32 algorithm */static void crc32_init(void){   unsigned long c;   int n, k;      for (n=0;n<256;n++) {      c = (unsigned long) n;      for (k = 0; k < 8; k++) {         if (c & 1)            c = CRC32_POLY ^ (c >> 1);         else            c = c >> 1;      }      crc32_array[n] = c;   }}/* Initialize CRC algorithms */void crc_init(void){   crc12_init();   crc16_init();   crc32_init();}

⌨️ 快捷键说明

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