/* FILE: crc.h */ #ifndef CRC_H_INCLUDED #define CRC_H_INCLUDED 1 /* define only one of the following... */ //#define CRC8 //#define CRC10 //#define CRC16 //#define X25 //#define XMODEM //#define MILSTD188 //#define AUTODINII /* The following typedef's should be adjusted for the particular platform. */ typedef unsigned char UINT8; typedef unsigned short UINT16; typedef unsigned long UINT32; /* * CRC-8 x^8 + x^2 + x + 1 * CRC-10 x^10 + x^9 + x^5 + x^4 + x + 1 * CRC-16 x^16 + x^15 + x^2 + 1 * X.25 x^16 + x^12 + x^5 + 1 * XMODEM x^16 + x^12 + x^5 + 1 (reflected/reversed) * MILSTD188 x^24+x^23+x^18+x^17+x^14+x^11+x^10+x^7+x^6+x^5+x^4+x^3+x+1 * AUTODINII x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1 */ #ifdef CRC8 #define POLY 0x0107 #define CRC_INIT 0x00 typedef UINT8 CRC_TYPE; #endif #ifdef CRC10 #define POLY 0x0633 #define CRC_INIT 0x0000 typedef UINT16 CRC_TYPE; #endif #ifdef CRC16 #define POLY 0xa001 #define CRC_INIT 0x0000 typedef UINT16 CRC_TYPE; #endif #ifdef X25 #define POLY 0x8408 #define CRC_INIT 0xffff typedef UINT16 CRC_TYPE; #endif #ifdef XMODEM #define POLY 0x1021 #define CRC_INIT 0x0000 typedef UINT16 CRC_TYPE; #endif #ifdef MILSTD188 #define POLY 0x00df3261L #define CRC_INIT 0x00000000L typedef UINT32 CRC_TYPE; #endif #ifdef AUTODINII #define POLY 0xedb88320L #define CRC_INIT 0xffffffffL typedef UINT32 CRC_TYPE; #endif /* prototypes */ extern CRC_TYPE crc( unsigned char *ptr, register int len ); #endif /* end of ifndef CRC_H_INCLUDED */