1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _LINUX_CRC_CCITT_H |
3 | #define _LINUX_CRC_CCITT_H |
4 | |
5 | #include <linux/types.h> |
6 | |
7 | extern u16 const crc_ccitt_table[256]; |
8 | extern u16 const crc_ccitt_false_table[256]; |
9 | |
10 | extern u16 crc_ccitt(u16 crc, const u8 *buffer, size_t len); |
11 | extern u16 crc_ccitt_false(u16 crc, const u8 *buffer, size_t len); |
12 | |
13 | static inline u16 crc_ccitt_byte(u16 crc, const u8 c) |
14 | { |
15 | return (crc >> 8) ^ crc_ccitt_table[(crc ^ c) & 0xff]; |
16 | } |
17 | |
18 | static inline u16 crc_ccitt_false_byte(u16 crc, const u8 c) |
19 | { |
20 | return (crc << 8) ^ crc_ccitt_false_table[(crc >> 8) ^ c]; |
21 | } |
22 | |
23 | #endif /* _LINUX_CRC_CCITT_H */ |
24 | |