1 /*********************************************************************
2  *
3  * Filename:      crc.h
4  * Version:
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>
11  *
12  ********************************************************************/
13 
14 #ifndef IRDA_CRC_H
15 #define IRDA_CRC_H
16 
17 #include <linux/types.h>
18 
19 #define INIT_FCS  0xffff   /* Initial FCS value */
20 #define GOOD_FCS  0xf0b8   /* Good final FCS value */
21 
22 extern __u16 const irda_crc16_table[];
23 
24 /* Recompute the FCS with one more character appended. */
irda_fcs(__u16 fcs,__u8 c)25 static inline __u16 irda_fcs(__u16 fcs, __u8 c)
26 {
27 	return (((fcs) >> 8) ^ irda_crc16_table[((fcs) ^ (c)) & 0xff]);
28 }
29 
30 /* Recompute the FCS with len bytes appended. */
31 unsigned short irda_calc_crc16( __u16 fcs, __u8 const *buf, size_t len);
32 
33 #endif
34