Diff for /libelwix/src/crc.c between versions 1.5 and 1.6

version 1.5, 2017/12/08 00:07:48 version 1.6, 2019/12/30 18:11:16
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004 - 2015Copyright 2004 - 2019
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 46  SUCH DAMAGE. Line 46  SUCH DAMAGE.
 #include "global.h"  #include "global.h"
   
   
   /* CRC16 poly */
   const u_short crc_16poly = 0x1021;
   
 /* Adler module */  /* Adler module */
 const u_int crc_modAdler = 0xFFF1L;  const u_int crc_modAdler = 0xFFF1L;
   
Line 73  const crcPoly_t crc_Poly[] = { Line 76  const crcPoly_t crc_Poly[] = {
  *   *
  * @crcNum = Number for reflection   * @crcNum = Number for reflection
  * @crcBits = Number width bits    * @crcBits = Number width bits 
 * return: -1 error, !=-1 reflecting number * return: reflecting number
  */   */
 u_int  u_int
 crcReflect(u_int crcNum, u_char crcBits)  crcReflect(u_int crcNum, u_char crcBits)
Line 95  crcReflect(u_int crcNum, u_char crcBits) Line 98  crcReflect(u_int crcNum, u_char crcBits)
  * @RevOpts = Options for computation (REVOPTS_REVERTBYTE, REVOPTS_REVERTCRC)   * @RevOpts = Options for computation (REVOPTS_REVERTBYTE, REVOPTS_REVERTCRC)
  * @initCRC = Initial CRC value   * @initCRC = Initial CRC value
  * @xorCRC = Last xor CRC value   * @xorCRC = Last xor CRC value
 * return: -1 error, !=-1 CRC checksum * return: CRC checksum
  */   */
 u_int  u_int
 crcCalc(u_char * __restrict psBuf, u_int bufLen, u_char crcBits, u_char RevOpts, u_int initCRC, u_int xorCRC)  crcCalc(u_char * __restrict psBuf, u_int bufLen, u_char crcBits, u_char RevOpts, u_int initCRC, u_int xorCRC)
Line 187  crcCalc(u_char * __restrict psBuf, u_int bufLen, u_cha Line 190  crcCalc(u_char * __restrict psBuf, u_int bufLen, u_cha
   
   
 /*  /*
    * crc16_ext() - Checksum ver.2 calculation in X/Y modem communication
    *
    * @buf = Data for calculation
    * @bufLen = Length of data
    * return: Checksum
    */
   u_short
   crc16_ext(u_char * __restrict buf, int bufLen)
   {
           u_short crc, x;
           register u_short i;
   
           assert(buf);
   
           for (crc = 0; bufLen > 0; bufLen--, buf++)
                   for (i = 0x80; i; i >>= 1) {
                           x = crc >> 15;
                           crc <<= 1;
   
                           if (*buf & i)
                                   crc++;
                           if (x)
                                   crc ^= crc_16poly;
                   }
   
           for (i = 0; i < 16; i++) {
                   x = crc >> 15;
                   crc <<= 1;
   
                   if (x)
                           crc ^= crc_16poly;
           }
   
           return crc;
   }
   
   /*
    * crc16() - Checksum calculation in X/Y modem communication
    *
    * @buf = Data for calculation
    * @bufLen = Length of data
    * return: Checksum
    */
   u_short
   crc16(u_char * __restrict buf, int bufLen)
   {
           u_short crc;
           register u_char i;
   
           for (crc = 0; bufLen > 0; bufLen--, buf++) {
                   crc ^= (u_short) *buf << 8;
                   for (i = 0x80; i; i >>= 1)
                           if (crc & 0x8000)
                                   crc = crc << 1 ^ crc_16poly;
                           else
                                   crc <<= 1;
           }
   
           return crc;
   }
   
   /*
  * crcIP() - Checksum in IP communication   * crcIP() - Checksum in IP communication
  *   *
  * @buf = Data for calculation   * @buf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
 * return: -1 error, !=-1 Checksum * return: Checksum
  */   */
 u_short  u_short
 crcIP(u_char * __restrict buf, int bufLen)  crcIP(u_char * __restrict buf, int bufLen)
Line 220  crcIP(u_char * __restrict buf, int bufLen) Line 285  crcIP(u_char * __restrict buf, int bufLen)
  * @buf = Data for calculation   * @buf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
  * @th = TCP header   * @th = TCP header
 * return: -1 error, !=-1 Checksum * return: Checksum
  */   */
 u_short  u_short
 crcTCP(struct in_addr src, struct in_addr dst, u_char * __restrict th)  crcTCP(struct in_addr src, struct in_addr dst, u_char * __restrict th)
Line 250  crcTCP(struct in_addr src, struct in_addr dst, u_char  Line 315  crcTCP(struct in_addr src, struct in_addr dst, u_char 
  * @buf = Data for calculation   * @buf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
  * @uh = UDP header   * @uh = UDP header
 * return: -1 error, !=-1 Checksum * return: Checksum
  */   */
 u_short  u_short
 crcUDP(struct in_addr src, struct in_addr dst, u_char * __restrict uh)  crcUDP(struct in_addr src, struct in_addr dst, u_char * __restrict uh)
Line 280  crcUDP(struct in_addr src, struct in_addr dst, u_char  Line 345  crcUDP(struct in_addr src, struct in_addr dst, u_char 
  *   *
  * @nBuf = Data for calculation   * @nBuf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
 * return: -1 error, !=-1 Checksum * return: Checksum
  */   */
 u_short  u_short
 crcFletcher16(u_short * __restrict nBuf, int bufLen)  crcFletcher16(u_short * __restrict nBuf, int bufLen)
Line 312  crcFletcher16(u_short * __restrict nBuf, int bufLen) Line 377  crcFletcher16(u_short * __restrict nBuf, int bufLen)
  *   *
  * @nBuf = Data for calculation   * @nBuf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
 * return: -1 error, !=-1 Checksum * return: Checksum
  */   */
 u_int  u_int
 crcFletcher(u_short * __restrict nBuf, int bufLen)  crcFletcher(u_short * __restrict nBuf, int bufLen)
Line 343  crcFletcher(u_short * __restrict nBuf, int bufLen) Line 408  crcFletcher(u_short * __restrict nBuf, int bufLen)
  *   *
  * @psBuf = Data for calculation   * @psBuf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
 * return: -1 error, !=-1 Checksum * return: Checksum
  */   */
 u_int  u_int
 crcAdler(u_char * __restrict psBuf, int bufLen)  crcAdler(u_char * __restrict psBuf, int bufLen)

Removed from v.1.5  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>