File: /usr/src/linux/include/net/irda/crc.h

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. */
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 crc_calc( __u16 fcs, __u8 const *buf, size_t len);
32     
33     #endif
34