home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / crc16.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  622 b   |  31 lines

  1. /*
  2.  *    crc16.h - CRC-16 routine
  3.  *
  4.  * Implements the standard CRC-16:
  5.  *   Width 16
  6.  *   Poly  0x8005 (x^16 + x^15 + x^2 + 1)
  7.  *   Init  0
  8.  *
  9.  * Copyright (c) 2005 Ben Gardner <bgardner@wabtec.com>
  10.  *
  11.  * This source code is licensed under the GNU General Public License,
  12.  * Version 2. See the file COPYING for more details.
  13.  */
  14.  
  15. #ifndef __CRC16_H
  16. #define __CRC16_H
  17.  
  18. #include <linux/types.h>
  19.  
  20. extern u16 const crc16_table[256];
  21.  
  22. extern u16 crc16(u16 crc, const u8 *buffer, size_t len);
  23.  
  24. static inline u16 crc16_byte(u16 crc, const u8 data)
  25. {
  26.     return (crc >> 8) ^ crc16_table[(crc ^ data) & 0xff];
  27. }
  28.  
  29. #endif /* __CRC16_H */
  30.  
  31.