0001
0002
0003
0004
0005
0006 #include <linux/types.h>
0007 #include <linux/module.h>
0008 #include <linux/crc7.h>
0009
0010
0011
0012
0013
0014
0015
0016
0017 const u8 crc7_be_syndrome_table[256] = {
0018 0x00, 0x12, 0x24, 0x36, 0x48, 0x5a, 0x6c, 0x7e,
0019 0x90, 0x82, 0xb4, 0xa6, 0xd8, 0xca, 0xfc, 0xee,
0020 0x32, 0x20, 0x16, 0x04, 0x7a, 0x68, 0x5e, 0x4c,
0021 0xa2, 0xb0, 0x86, 0x94, 0xea, 0xf8, 0xce, 0xdc,
0022 0x64, 0x76, 0x40, 0x52, 0x2c, 0x3e, 0x08, 0x1a,
0023 0xf4, 0xe6, 0xd0, 0xc2, 0xbc, 0xae, 0x98, 0x8a,
0024 0x56, 0x44, 0x72, 0x60, 0x1e, 0x0c, 0x3a, 0x28,
0025 0xc6, 0xd4, 0xe2, 0xf0, 0x8e, 0x9c, 0xaa, 0xb8,
0026 0xc8, 0xda, 0xec, 0xfe, 0x80, 0x92, 0xa4, 0xb6,
0027 0x58, 0x4a, 0x7c, 0x6e, 0x10, 0x02, 0x34, 0x26,
0028 0xfa, 0xe8, 0xde, 0xcc, 0xb2, 0xa0, 0x96, 0x84,
0029 0x6a, 0x78, 0x4e, 0x5c, 0x22, 0x30, 0x06, 0x14,
0030 0xac, 0xbe, 0x88, 0x9a, 0xe4, 0xf6, 0xc0, 0xd2,
0031 0x3c, 0x2e, 0x18, 0x0a, 0x74, 0x66, 0x50, 0x42,
0032 0x9e, 0x8c, 0xba, 0xa8, 0xd6, 0xc4, 0xf2, 0xe0,
0033 0x0e, 0x1c, 0x2a, 0x38, 0x46, 0x54, 0x62, 0x70,
0034 0x82, 0x90, 0xa6, 0xb4, 0xca, 0xd8, 0xee, 0xfc,
0035 0x12, 0x00, 0x36, 0x24, 0x5a, 0x48, 0x7e, 0x6c,
0036 0xb0, 0xa2, 0x94, 0x86, 0xf8, 0xea, 0xdc, 0xce,
0037 0x20, 0x32, 0x04, 0x16, 0x68, 0x7a, 0x4c, 0x5e,
0038 0xe6, 0xf4, 0xc2, 0xd0, 0xae, 0xbc, 0x8a, 0x98,
0039 0x76, 0x64, 0x52, 0x40, 0x3e, 0x2c, 0x1a, 0x08,
0040 0xd4, 0xc6, 0xf0, 0xe2, 0x9c, 0x8e, 0xb8, 0xaa,
0041 0x44, 0x56, 0x60, 0x72, 0x0c, 0x1e, 0x28, 0x3a,
0042 0x4a, 0x58, 0x6e, 0x7c, 0x02, 0x10, 0x26, 0x34,
0043 0xda, 0xc8, 0xfe, 0xec, 0x92, 0x80, 0xb6, 0xa4,
0044 0x78, 0x6a, 0x5c, 0x4e, 0x30, 0x22, 0x14, 0x06,
0045 0xe8, 0xfa, 0xcc, 0xde, 0xa0, 0xb2, 0x84, 0x96,
0046 0x2e, 0x3c, 0x0a, 0x18, 0x66, 0x74, 0x42, 0x50,
0047 0xbe, 0xac, 0x9a, 0x88, 0xf6, 0xe4, 0xd2, 0xc0,
0048 0x1c, 0x0e, 0x38, 0x2a, 0x54, 0x46, 0x70, 0x62,
0049 0x8c, 0x9e, 0xa8, 0xba, 0xc4, 0xd6, 0xe0, 0xf2
0050 };
0051 EXPORT_SYMBOL(crc7_be_syndrome_table);
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065 u8 crc7_be(u8 crc, const u8 *buffer, size_t len)
0066 {
0067 while (len--)
0068 crc = crc7_be_byte(crc, *buffer++);
0069 return crc;
0070 }
0071 EXPORT_SYMBOL(crc7_be);
0072
0073 MODULE_DESCRIPTION("CRC7 calculations");
0074 MODULE_LICENSE("GPL");