--- libelwix/inc/elwix/acrc.h 2013/01/17 10:05:35 1.1 +++ libelwix/inc/elwix/acrc.h 2014/01/29 14:15:58 1.2.28.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: acrc.h,v 1.1 2013/01/17 10:05:35 misho Exp $ +* $Id: acrc.h,v 1.2.28.2 2014/01/29 14:15:58 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 +Copyright 2004 - 2014 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -66,7 +66,7 @@ typedef struct tagCRCPoly crcPoly_t; * @crcBits = Number width bits * return: -1 error, !=-1 reflecting number */ -inline unsigned int crcReflect(unsigned int crcNum, unsigned char crcBits); +unsigned int crcReflect(unsigned int crcNum, unsigned char crcBits); /* * crcCalc() - Generic CRC calculation function for many sub variants of CRC algorithms * @@ -78,7 +78,7 @@ inline unsigned int crcReflect(unsigned int crcNum, un * @xorCRC = Last xor CRC value * return: -1 error, !=-1 CRC checksum */ -inline unsigned int crcCalc(unsigned char * __restrict psBuf, unsigned int bufLen, +unsigned int crcCalc(unsigned char * __restrict psBuf, unsigned int bufLen, unsigned char crcBits, unsigned char RevOpts, unsigned int initCRC, unsigned int xorCRC); @@ -89,7 +89,7 @@ inline unsigned int crcCalc(unsigned char * __restrict * @bufLen = Length of data * return: -1 error, !=-1 Checksum */ -inline unsigned short crcIP(unsigned char * __restrict buf, int bufLen); +unsigned short crcIP(unsigned char * __restrict buf, int bufLen); /* * crcFletcher16() - Fletcher-16 Checksum computing * @@ -97,7 +97,7 @@ inline unsigned short crcIP(unsigned char * __restrict * @bufLen = Length of data * return: -1 error, !=-1 Checksum */ -inline unsigned short crcFletcher16(unsigned short * __restrict nBuf, int bufLen); +unsigned short crcFletcher16(unsigned short * __restrict nBuf, int bufLen); /* * crcFletcher() - Fletcher-32 Checksum computing * @@ -105,7 +105,7 @@ inline unsigned short crcFletcher16(unsigned short * _ * @bufLen = Length of data * return: -1 error, !=-1 Checksum */ -inline unsigned int crcFletcher(unsigned short * __restrict nBuf, int bufLen); +unsigned int crcFletcher(unsigned short * __restrict nBuf, int bufLen); /* * crcAdler() - crcAdler-32 Checksum computing * @@ -113,7 +113,7 @@ inline unsigned int crcFletcher(unsigned short * __res * @bufLen = Length of data * return: -1 error, !=-1 Checksum */ -inline unsigned int crcAdler(unsigned char * __restrict psBuf, int bufLen); +unsigned int crcAdler(unsigned char * __restrict psBuf, int bufLen); /* * crcEther() - Checksum in Ethernet communication @@ -124,6 +124,15 @@ inline unsigned int crcAdler(unsigned char * __restric */ #define crcEther(psBuf, bufLen) crcCalc((psBuf), (bufLen), 32, 3, 0xFFFFFFFF, 0xFFFFFFFF) +/* + * crc32() - CRC32 calculation from table + * + * @crc = Initial crc value + * @buf = Data for calculation + * @len = Length of data + * return: calculated CRC32 + */ +unsigned int crc32(unsigned int crc, const unsigned char * __restrict buf, unsigned int len); /* * crcPelco() - Calculate Pelco D/P CRC @@ -133,7 +142,7 @@ inline unsigned int crcAdler(unsigned char * __restric * return: crc for packet, if is 0 check and crc_GetErrno() == 1 Pelco protocol not supported */ -inline unsigned char crcPelco(unsigned char ver, unsigned char *pkt); +unsigned char crcPelco(unsigned char ver, unsigned char *pkt); /* @@ -144,7 +153,7 @@ inline unsigned char crcPelco(unsigned char ver, unsig * @nVer = Version of algorythm; 0 - original, 1 - AITNET variant * return: Hash value */ -inline unsigned int hash_varchar(const char *csStr, int nStrLen, int nVer); +unsigned int hash_varchar(const char *csStr, int nStrLen, int nVer); /* * hash_bernstein() - Compute index hash by Bernstein * @@ -153,7 +162,7 @@ inline unsigned int hash_varchar(const char *csStr, in * @nVer = Version of algorythm; 0 - Bernstein, 1 - DJBX33A variant * return: Hash value */ -inline unsigned int hash_bernstein(const char *csStr, int nStrLen, int nVer); +unsigned int hash_bernstein(const char *csStr, int nStrLen, int nVer); /* * hash_jenkins() - Compute index hash by Jenkins (one-at-a-time) * @@ -161,7 +170,7 @@ inline unsigned int hash_bernstein(const char *csStr, * @nStrLen = Length of data buffer * return: Hash value */ -inline unsigned int hash_jenkins(const char *csStr, int nStrLen); +unsigned int hash_jenkins(const char *csStr, int nStrLen); /* * hash_jenkins32() - Fast Jenkins hash function * @@ -178,7 +187,7 @@ unsigned int hash_jenkins32(const unsigned int *buf, i * @nStrLen = Length of data buffer * return: Hash value */ -inline unsigned int hash_reddragon(const char *csStr, int nStrLen); +unsigned int hash_reddragon(const char *csStr, int nStrLen); /* * hash_fnv1() - Compute index hash by FNV-1 * @@ -187,7 +196,7 @@ inline unsigned int hash_reddragon(const char *csStr, * @nVer = Version of algorythm; 0 - FNV-1, 1 - FNV-1a (best avalanche) * return: Hash value */ -inline unsigned int hash_fnv1(const char *csStr, int nStrLen, int nVer); +unsigned int hash_fnv1(const char *csStr, int nStrLen, int nVer); /* * hash_fnv() - Compute index hash by FNV-1a