1ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos/* 2ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * crc16.h - CRC-16 routine 3ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * 4ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * Implements the standard CRC-16: 5ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * Width 16 6ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * Poly 0x8005 (x16 + x15 + x2 + 1) 7ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * Init 0 8ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * 9ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * Copyright (c) 2005 Ben Gardner <bgardner@wabtec.com> 10ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * 11ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * This source code is licensed under the GNU General Public License, 12ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * Version 2. See the file COPYING for more details. 13ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos */ 14ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos 15ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos#ifndef __CRC16_H 16ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos#define __CRC16_H 17ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos 18ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos/* for an unknown reason, PPC treats __u16 as signed and keeps doing sign 19ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * extension on the value. Instead, use only the low 16 bits of an 20ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos * unsigned int for holding the CRC value to avoid this. 21ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos */ 22c4dcb1c10ae5e3d523823fe0a2c84d0841ca2ea1Theodore Ts'otypedef unsigned int crc16_t; 23ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos 24c4dcb1c10ae5e3d523823fe0a2c84d0841ca2ea1Theodore Ts'oextern crc16_t ext2fs_crc16(crc16_t crc, const void *buffer, unsigned int len); 25ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos 26ca2634a46ab9da85a3a015a7772770d9dbe5848eJose R. Santos#endif /* __CRC16_H */ 27