1 /*********************************************************************
5 * Description: CRC routines
6 * Status: Experimental.
7 * Author: Dag Brattli <dagb@cs.uit.no>
8 * Created at: Mon Aug 4 20:40:53 1997
9 * Modified at: Sun May 2 20:25:23 1999
10 * Modified by: Dag Brattli <dagb@cs.uit.no>
12 ********************************************************************/
17 #include <linux/types.h>
19 #define INIT_FCS 0xffff /* Initial FCS value */
20 #define GOOD_FCS 0xf0b8 /* Good final FCS value */
22 extern __u16 const irda_crc16_table[];
24 /* Recompute the FCS with one more character appended. */
25 static inline __u16 irda_fcs(__u16 fcs, __u8 c)
27 return (((fcs) >> 8) ^ irda_crc16_table[((fcs) ^ (c)) & 0xff]);
30 /* Recompute the FCS with len bytes appended. */
31 __u16 irda_calc_crc16( __u16 fcs, __u8 const *buf, size_t len);