diff options
Diffstat (limited to 'release/src/linux/linux/include/net/irda/crc.h')
-rw-r--r-- | release/src/linux/linux/include/net/irda/crc.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/release/src/linux/linux/include/net/irda/crc.h b/release/src/linux/linux/include/net/irda/crc.h new file mode 100644 index 00000000..61a5a648 --- /dev/null +++ b/release/src/linux/linux/include/net/irda/crc.h @@ -0,0 +1,33 @@ +/********************************************************************* + * + * Filename: crc.h + * Version: + * Description: CRC routines + * Status: Experimental. + * Author: Dag Brattli <dagb@cs.uit.no> + * Created at: Mon Aug 4 20:40:53 1997 + * Modified at: Sun May 2 20:25:23 1999 + * Modified by: Dag Brattli <dagb@cs.uit.no> + * + ********************************************************************/ + +#ifndef IRDA_CRC_H +#define IRDA_CRC_H + +#include <linux/types.h> + +#define INIT_FCS 0xffff /* Initial FCS value */ +#define GOOD_FCS 0xf0b8 /* Good final FCS value */ + +extern __u16 const irda_crc16_table[]; + +/* Recompute the FCS with one more character appended. */ +static inline __u16 irda_fcs(__u16 fcs, __u8 c) +{ + return (((fcs) >> 8) ^ irda_crc16_table[((fcs) ^ (c)) & 0xff]); +} + +/* Recompute the FCS with len bytes appended. */ +unsigned short crc_calc( __u16 fcs, __u8 const *buf, size_t len); + +#endif |