~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/lib/crc-ccitt.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /lib/crc-ccitt.c (Version linux-6.12-rc7) and /lib/crc-ccitt.c (Version linux-2.6.32.71)


  1 // SPDX-License-Identifier: GPL-2.0-only       << 
  2 /*                                                  1 /*
  3  *      linux/lib/crc-ccitt.c                       2  *      linux/lib/crc-ccitt.c
                                                   >>   3  *
                                                   >>   4  *      This source code is licensed under the GNU General Public License,
                                                   >>   5  *      Version 2. See the file COPYING for more details.
  4  */                                                 6  */
  5                                                     7 
  6 #include <linux/types.h>                            8 #include <linux/types.h>
  7 #include <linux/module.h>                           9 #include <linux/module.h>
  8 #include <linux/crc-ccitt.h>                       10 #include <linux/crc-ccitt.h>
  9                                                    11 
 10 /*                                                 12 /*
 11  * This mysterious table is just the CRC of ea     13  * This mysterious table is just the CRC of each possible byte. It can be
 12  * computed using the standard bit-at-a-time m     14  * computed using the standard bit-at-a-time methods. The polynomial can
 13  * be seen in entry 128, 0x8408. This correspo     15  * be seen in entry 128, 0x8408. This corresponds to x^0 + x^5 + x^12.
 14  * Add the implicit x^16, and you have the sta     16  * Add the implicit x^16, and you have the standard CRC-CCITT.
 15  */                                                17  */
 16 u16 const crc_ccitt_table[256] = {                 18 u16 const crc_ccitt_table[256] = {
 17         0x0000, 0x1189, 0x2312, 0x329b, 0x4624     19         0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
 18         0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c     20         0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
 19         0x1081, 0x0108, 0x3393, 0x221a, 0x56a5     21         0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
 20         0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed     22         0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
 21         0x2102, 0x308b, 0x0210, 0x1399, 0x6726     23         0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
 22         0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e     24         0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
 23         0x3183, 0x200a, 0x1291, 0x0318, 0x77a7     25         0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
 24         0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef     26         0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
 25         0x4204, 0x538d, 0x6116, 0x709f, 0x0420     27         0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
 26         0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868     28         0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
 27         0x5285, 0x430c, 0x7197, 0x601e, 0x14a1     29         0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
 28         0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9     30         0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
 29         0x6306, 0x728f, 0x4014, 0x519d, 0x2522     31         0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
 30         0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a     32         0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
 31         0x7387, 0x620e, 0x5095, 0x411c, 0x35a3     33         0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
 32         0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb     34         0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
 33         0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c     35         0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
 34         0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64     36         0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
 35         0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad     37         0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
 36         0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5     38         0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
 37         0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e     39         0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
 38         0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66     40         0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
 39         0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af     41         0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
 40         0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7     42         0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
 41         0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028     43         0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
 42         0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60     44         0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
 43         0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9     45         0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
 44         0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1     46         0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
 45         0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a     47         0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
 46         0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62     48         0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
 47         0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab     49         0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
 48         0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3     50         0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
 49 };                                                 51 };
 50 EXPORT_SYMBOL(crc_ccitt_table);                    52 EXPORT_SYMBOL(crc_ccitt_table);
 51                                                    53 
 52 /**                                                54 /**
 53  *      crc_ccitt - recompute the CRC (CRC-CCI !!  55  *      crc_ccitt - recompute the CRC for the data buffer
 54  *      buffer                                 << 
 55  *      @crc: previous CRC value                   56  *      @crc: previous CRC value
 56  *      @buffer: data pointer                      57  *      @buffer: data pointer
 57  *      @len: number of bytes in the buffer        58  *      @len: number of bytes in the buffer
 58  */                                                59  */
 59 u16 crc_ccitt(u16 crc, u8 const *buffer, size_     60 u16 crc_ccitt(u16 crc, u8 const *buffer, size_t len)
 60 {                                                  61 {
 61         while (len--)                              62         while (len--)
 62                 crc = crc_ccitt_byte(crc, *buf     63                 crc = crc_ccitt_byte(crc, *buffer++);
 63         return crc;                                64         return crc;
 64 }                                                  65 }
 65 EXPORT_SYMBOL(crc_ccitt);                          66 EXPORT_SYMBOL(crc_ccitt);
 66                                                    67 
 67 MODULE_DESCRIPTION("CRC-CCITT calculations");      68 MODULE_DESCRIPTION("CRC-CCITT calculations");
 68 MODULE_LICENSE("GPL");                             69 MODULE_LICENSE("GPL");
 69                                                    70 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php