linux/lib/crc7.c
<<
.10" /spapti /formti a .10" href="../linux+v3.9.7/lib/crc7.c">.10" img src="../.static/gfx/right.png" alt=">>">.1 /spapti.1 spap class="lxr_search">.10".10" input typvalhidden" namvalnavtarget" ion val">.10" input typvaltext" namvalsearch" idalsearch">.10" buttopttypvalsubmit">Search.10" Prefsi /a>.1 /spapti0" /divti0" form ac.1 input typvalhidden" namvalajax_lookup" idalajax_lookup" ion val">.0" /formti.0" div class="headingbottom">i div idalfile_contents"t
   1 /a> spap class="comment">/* /spapti   2 /a> spap class="comment"> *0"
   crc7.c /spapti   3 /a> spap class="comment"> * /spapti   4 /a> spap class="comment"> *0This source code is licensed under the GNU General Public License, /spapti   5 /a> spap class="comment"> *0Vers   6 /a> spap class="comment"> */ /spapti   7 /a>.   8 /a>#include <linux/typvs.h /a>>.   9 /a>#include <linux/module.h /a>>.  .27.a>#include <linux/crc7.h /a>>.  11 /a>.  12 /a>.  13 /a> spap class="comment">/*0Table for CRC-7 (polynomial x^7 + x^3 + 1) */ /spapti  14 /a>const  a href="+code=u8" class="sref">u8 /a>  a href="+code=crc7_syndrome_table" class="sref">crc7_syndrome_table /a>[256] = {i  15 /a>        0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f,i  16 /a>        0x48, 0x41, 0x5a, 0x53, 0x6c, 0x65, 0x7e, 0x77,i  17 /a>        0x19, 0x10, 0x0b, 0x02, 0x3d, 0x34, 0x2f, 0x26,i  18 /a>        0x51, 0x58, 0x43, 0x4a, 0x75, 0x7c, 0x67, 0x6e,i  19 /a>        0x32, 0x3b, 0x20, 0x29, 0x16, 0x1f, 0x04, 0x0d,i  20 /a>        0x7a, 0x73, 0x68, 0x61, 0x5e, 0x57, 0x4c, 0x45,i  21 /a>        0x2b, 0x22, 0x39, 0x30, 0x0f, 0x06, 0x1d, 0x14,i  22 /a>        0x63, 0x6a, 0x71, 0x78, 0x47, 0x4e, 0x55, 0x5c,i  23 /a>        0x64, 0x6d, 0x76, 0x7f, 0x40, 0x49, 0x52, 0x5b,i  24 /a>        0x2c, 0x25, 0x3e, 0x37, 0x08, 0x01, 0x1a, 0x13,i  25 /a>        0x7d, 0x74, 0x6f, 0x66, 0x59, 0x50, 0x4b, 0x42,i  26 /a>        0x35, 0x3c, 0x27, 0x2e, 0x11, 0x18, 0x03, 0x0a,i  27 /a>        0x56, 0x5f, 0x44, 0x4d, 0x72, 0x7b, 0x60, 0x69,i  28 /a>        0x1e, 0x17, 0x0c, 0x05, 0x3a, 0x33, 0x28, 0x21,i  29 /a>        0x4f, 0x46, 0x5d, 0x54, 0x6b, 0x62, 0x79, 0x70,i  30 /a>        0x07, 0x0e, 0x15, 0x1c, 0x23, 0x2a, 0x31, 0x38,i  31 /a>        0x41, 0x48, 0x53, 0x5a, 0x65, 0x6c, 0x77, 0x7e,i  32 /a>        0x09, 0x00, 0x1b, 0x12, 0x2d, 0x24, 0x3f, 0x36,i  33 /a>        0x58, 0x51, 0x4a, 0x43, 0x7c, 0x75, 0x6e, 0x67,i  34 /a>        0x10, 0x19, 0x02, 0x0b, 0x34, 0x3d, 0x26, 0x2f,i  35 /a>        0x73, 0x7a, 0x61, 0x68, 0x57, 0x5e, 0x45, 0x4c,i  36 /a>        0x3b, 0x32, 0x29, 0x20, 0x1f, 0x16, 0x0d, 0x04,i  37 /a>        0x6a, 0x63, 0x78, 0x71, 0x4e, 0x47, 0x5c, 0x55,i  38 /a>        0x22, 0x2b, 0x30, 0x39, 0x06, 0x0f, 0x14, 0x1d,i  39 /a>        0x25, 0x2c, 0x37, 0x3e, 0x01, 0x08, 0x13, 0x1a,i  40 /a>        0x6d, 0x64, 0x7f, 0x76, 0x49, 0x40, 0x5b, 0x52,i  41 /a>        0x3c, 0x35, 0x2e, 0x27, 0x18, 0x11, 0x0a, 0x03,i  42 /a>        0x74, 0x7d, 0x66, 0x6f, 0x50, 0x59, 0x42, 0x4b,i  43 /a>        0x17, 0x1e, 0x05, 0x0c, 0x33, 0x3a, 0x21, 0x28,i  44 /a>        0x5f, 0x56, 0x4d, 0x44, 0x7b, 0x72, 0x69, 0x60,i  45 /a>        0x0e, 0x07, 0x1c, 0x15, 0x2a, 0x23, 0x38, 0x31,i  46 /a>        0x46, 0x4f, 0x54, 0x5d, 0x62, 0x6b, 0x70, 0x79i  47 /a>};.  48 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=crc7_syndrome_table" class="sref">crc7_syndrome_table /a>);.  49 /a>.  50 /a> spap class="comment">/** /spapti  51 /a> spap class="comment"> * crc7 - update the CRC7 for the data buffer /spapti  52 /a> spap class="comment"> *0@crc:     previous CRC7 ion v /spapti  53 /a> spap class="comment"> * @buffer:  data pointer /spapti  54 /a> spap class="comment"> *0@len:     number of bytes in the buffer /spapti  55 /a> spap class="comment"> *0Context: any /spapti  56 /a> spap class="comment"> * /spapti  57 /a> spap class="comment"> *0Returns the updated CRC7 ion v. /spapti  58 /a> spap class="comment"> */ /spapti  59 /a> a href="+code=u8" class="sref">u8 /a>  a href="+code=crc7" class="sref">crc7 /a>( a href="+code=u8" class="sref">u8 /a>  a href="+code=crc" class="sref">crc /a>, const  a href="+code=u8" class="sref">u8 /a> * a href="+code=buffer" class="sref">buffer /a>,  a href="+code=size_t" class="sref">size_t /a>  a href="+code=len" class="sref">len /a>)i  60 /a>{i  61 /a>        while ( a href="+code=len" class="sref">len /a>--)i  62 /a>                 a href="+code=crc" class="sref">crc /a> =  a href="+code=crc7_byte" class="sref">crc7_byte /a>( a href="+code=crc" class="sref">crc /a>, * a href="+code=buffer" class="sref">buffer /a>++);.  63 /a>        return  a href="+code=crc" class="sref">crc /a>;.  64 /a>}.  65 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=crc7" class="sref">crc7 /a>);.  66 /a>.  67 /a> a href="+code=MODULE_DESCRIPTION" class="sref">MODULE_DESCRIPTION /a>( spap class="string">"CRC7 calcula  68 /a> a href="+code=MODULE_LICENSE" class="sref">MODULE_LICENSE /a>( spap class="string">"GPL" /spapt);.  69 /a> /pre>
The original LXR software by the LXR community /a>, this experimental verslxr@linux.no /a>.
 /divti div class="subfooter">
lxr.linux.no kindly hosted by Redpill Linpro AS /a>, provider of Linux consulting and opera