| 1 |
/* Public domain */ |
| 2 |
|
| 3 |
#ifndef __CRC_H__ |
| 4 |
#define __CRC_H__ |
| 5 |
|
| 6 |
#if THINK_C |
| 7 |
|
| 8 |
extern const unsigned short crc16_table[]; |
| 9 |
extern const unsigned long crc32_table[]; |
| 10 |
|
| 11 |
#define UpdateCRC(b, c) (crc16_table[(((unsigned short)c >> 8) & 0xff) ^ \ |
| 12 |
(unsigned short)(b)] ^ ((unsigned short)c << 8)) |
| 13 |
#define UpdateCRC32(b, c) (crc32_table[((unsigned long)c ^ \ |
| 14 |
(unsigned short)(b)) & 0xff] ^ (unsigned long)((unsigned long)c >> 8)) |
| 15 |
|
| 16 |
#else |
| 17 |
|
| 18 |
unsigned short UpdateCRC(unsigned char b, unsigned short crc); |
| 19 |
unsigned long UpdateCRC32(unsigned char b, unsigned long crc); |
| 20 |
|
| 21 |
#endif |
| 22 |
|
| 23 |
#endif /* __CRC_H__ */ |