Diff for /libaitcrc/src/aitcrc.c between versions 1.4.2.2 and 1.4.2.3

version 1.4.2.2, 2011/09/14 14:33:56 version 1.4.2.3, 2012/07/04 14:46:33
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, 2005, 2006, 2007, 2008, 2009, 2010, 2011Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
         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 49  SUCH DAMAGE. Line 49  SUCH DAMAGE.
 static int crc_Errno;  static int crc_Errno;
 static char crc_Error[MAX_STR + 1];  static char crc_Error[MAX_STR + 1];
   
// Adler module/* Adler module */
 const u_int crc_modAdler = 0xFFF1L;  const u_int crc_modAdler = 0xFFF1L;
   
// All known library CRC types .../* All known library CRC types ... */
 const crcPoly_t crc_Poly[] = {  const crcPoly_t crc_Poly[] = {
         { 1, (u_int) 0x1, "CRC-1-Parity" },           { 1, (u_int) 0x1, "CRC-1-Parity" }, 
         { 4, (u_int) 0x3, "CRC-4-ITU" },           { 4, (u_int) 0x3, "CRC-4-ITU" }, 
Line 70  const crcPoly_t crc_Poly[] = { Line 70  const crcPoly_t crc_Poly[] = {
         { 32, (u_int) 0x04C11DB7, "CRC-32-802.3" }          { 32, (u_int) 0x04C11DB7, "CRC-32-802.3" }
 };  };
   
 // ----------------------------------------------------------  
   
///*
// Error maintenance functions ... * Error maintenance functions ...
// */
   
// crc_GetErrno() Get error code of last operation/* crc_GetErrno() Get error code of last operation */
 inline int  inline int
 crc_GetErrno()  crc_GetErrno()
 {  {
         return crc_Errno;          return crc_Errno;
 }  }
   
// crc_GetError() Get error text of last operation/* crc_GetError() Get error text of last operation */
 inline const char *  inline const char *
 crc_GetError()  crc_GetError()
 {  {
         return crc_Error;          return crc_Error;
 }  }
   
// crcSetErr() Set error to variables for internal use!!!/* crc_SetErr() Set error to variables for internal use!!! */
 inline void  inline void
crcSetErr(int eno, char *estr, ...)crc_SetErr(int eno, char *estr, ...)
 {  {
         va_list lst;          va_list lst;
   
         crc_Errno = eno;          crc_Errno = eno;
        memset(crc_Error, 0, MAX_STR + 1);        memset(crc_Error, 0, sizeof crc_Error);
         va_start(lst, estr);          va_start(lst, estr);
        vsnprintf(crc_Error, MAX_STR + 1, estr, lst);        vsnprintf(crc_Error, sizeof crc_Error, estr, lst);
         va_end(lst);          va_end(lst);
 }  }
   
 // ----------------------------------------------------------  
   
 /*  /*
 * crcReflect() Reflect all bits of number  * crcReflect() - Reflect all bits of number 
  *
  * @crcNum = Number for reflection   * @crcNum = Number for reflection
  * @crcBits = Number width bits    * @crcBits = Number width bits 
  * return: -1 error, !=-1 reflecting number   * return: -1 error, !=-1 reflecting number
Line 125  crcReflect(u_int crcNum, u_char crcBits) Line 124  crcReflect(u_int crcNum, u_char crcBits)
 }  }
   
 /*  /*
 * crcCalc() Generic CRC calculation function for many sub variants of CRC algorithms * crcCalc() - Generic CRC calculation function for many sub variants of CRC algorithms
  *
  * @psBuf = Data for calculation   * @psBuf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
  * @crcBits = CRC algorithm bits (1, 4, 5, 6, 7, 8, 10, 11, 12, 15, 16, 24, 30, 32)   * @crcBits = CRC algorithm bits (1, 4, 5, 6, 7, 8, 10, 11, 12, 15, 16, 24, 30, 32)
Line 142  crcCalc(u_char * __restrict psBuf, u_int bufLen, u_cha Line 142  crcCalc(u_char * __restrict psBuf, u_int bufLen, u_cha
         register u_int i, j, b, ch;          register u_int i, j, b, ch;
   
         if (!psBuf) {          if (!psBuf) {
                crc_Errno = 1;                crc_SetErr(EINVAL, "Invalid parameters!");
                strlcpy(crc_Error, "crcCalc(): Invalid parameters!", MAX_STR + 1); 
                 return -1;                  return -1;
         }          }
   
Line 191  crcCalc(u_char * __restrict psBuf, u_int bufLen, u_cha Line 190  crcCalc(u_char * __restrict psBuf, u_int bufLen, u_cha
                         poly = crc_Poly[13].poly_num;                          poly = crc_Poly[13].poly_num;
                         break;                          break;
                 default:                  default:
                        crc_Errno = 2;                        crc_SetErr(EINVAL, "crcCalc(): Unsupported CRC method!!!");
                        strlcpy(crc_Error, "crcCalc(): Unsupported CRC method!!!", MAX_STR + 1); 
                         return -1;                          return -1;
         }          }
         poly <<= bits;          poly <<= bits;
Line 228  crcCalc(u_char * __restrict psBuf, u_int bufLen, u_cha Line 226  crcCalc(u_char * __restrict psBuf, u_int bufLen, u_cha
         return crc;          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: -1 error, !=-1 Checksum
Line 243  crcIP(u_char * __restrict buf, int bufLen) Line 241  crcIP(u_char * __restrict buf, int bufLen)
         u_short last = 0, *nBuf = (u_short*) buf;          u_short last = 0, *nBuf = (u_short*) buf;
   
         if (!buf) {          if (!buf) {
                crc_Errno = 1;                crc_SetErr(EINVAL, "Invalid parameters!");
                strlcpy(crc_Error, "crcIP(): Invalid parameters!", MAX_STR + 1); 
                 return -1;                  return -1;
         }          }
   
Line 263  crcIP(u_char * __restrict buf, int bufLen) Line 260  crcIP(u_char * __restrict buf, int bufLen)
 }  }
   
 /*  /*
 * crcFletcher16() Fletcher-16 Checksum computing * crcFletcher16() - Fletcher-16 Checksum computing
  *
  * @nBuf = Data for calculation   * @nBuf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
  * return: -1 error, !=-1 Checksum   * return: -1 error, !=-1 Checksum
Line 275  crcFletcher16(u_short * __restrict nBuf, int bufLen) Line 273  crcFletcher16(u_short * __restrict nBuf, int bufLen)
         register u_int clen;          register u_int clen;
   
         if (!nBuf) {          if (!nBuf) {
                crc_Errno = 1;                crc_SetErr(EINVAL, "Invalid parameters!");
                strlcpy(crc_Error, "crcFletcher16(): Invalid parameters!", MAX_STR + 1); 
                 return -1;                  return -1;
         }          }
   
Line 299  crcFletcher16(u_short * __restrict nBuf, int bufLen) Line 296  crcFletcher16(u_short * __restrict nBuf, int bufLen)
 }  }
   
 /*  /*
 * crcFletcher() Fletcher-32 Checksum computing * crcFletcher() - Fletcher-32 Checksum computing
  *
  * @nBuf = Data for calculation   * @nBuf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
  * return: -1 error, !=-1 Checksum   * return: -1 error, !=-1 Checksum
Line 310  crcFletcher(u_short * __restrict nBuf, int bufLen) Line 308  crcFletcher(u_short * __restrict nBuf, int bufLen)
         register u_int s1, s2, clen;          register u_int s1, s2, clen;
   
         if (!nBuf) {          if (!nBuf) {
                crc_Errno = 1;                crc_SetErr(EINVAL, "Invalid parameters!");
                strlcpy(crc_Error, "crcFletcher(): Invalid parameters!", MAX_STR + 1); 
                 return -1;                  return -1;
         }          }
   
Line 334  crcFletcher(u_short * __restrict nBuf, int bufLen) Line 331  crcFletcher(u_short * __restrict nBuf, int bufLen)
 }  }
   
 /*  /*
 * crcAdler() crcAdler-32 Checksum computing * crcAdler() - crcAdler-32 Checksum computing
  *
  * @psBuf = Data for calculation   * @psBuf = Data for calculation
  * @bufLen = Length of data   * @bufLen = Length of data
  * return: -1 error, !=-1 Checksum   * return: -1 error, !=-1 Checksum
Line 345  crcAdler(u_char * __restrict psBuf, int bufLen) Line 343  crcAdler(u_char * __restrict psBuf, int bufLen)
         register u_int s1, s2, clen;          register u_int s1, s2, clen;
   
         if (!psBuf) {          if (!psBuf) {
                crc_Errno = 1;                crc_SetErr(EINVAL, "Invalid parameters!");
                strlcpy(crc_Error, "crcAdler(): Invalid parameters!", MAX_STR + 1); 
                 return -1;                  return -1;
         }          }
   

Removed from v.1.4.2.2  
changed lines
  Added in v.1.4.2.3


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