diff options
author | Guy Harris <guy@alum.mit.edu> | 2004-07-30 07:43:02 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2004-07-30 07:43:02 +0000 |
commit | 2599bcad0a022e86b63b07fa6a6e9c51b0a3c46b (patch) | |
tree | fc36d5307ec3be0ef562213e973696b52d6cf02c /crc16.h | |
parent | 0ee683e0b898df467b68274bd358f108234d1191 (diff) |
From Chris Maynard:
add versions of CRC-16 and CRC-32 routines with seed arguments;
add versions of those routines with an "offset in the tvbuff"
argument;
add Doxygen comments to the CRC-16 and CRC-32 headers.
svn path=/trunk/; revision=11573
Diffstat (limited to 'crc16.h')
-rw-r--r-- | crc16.h | 53 |
1 files changed, 50 insertions, 3 deletions
@@ -27,13 +27,60 @@ */ /* Calculate the CCITT/ITU/CRC-16 16-bit CRC - + (parameters for this CRC are: Polynomial: x^16 + x^12 + x^5 + 1 (0x1021); Start value 0xFFFF; XOR result with 0xFFFF; First bit is LSB) */ -extern guint16 crc16_ccitt(const unsigned char *buf, guint len); -extern guint16 crc16_ccitt_tvb(tvbuff_t *tvb, unsigned int len); + +/** Compute CRC16 CCITT checksum of a buffer of data. + @param buf The buffer containing the data. + @param len The number of bytes to include in the computation. + @return The CRC16 CCITT checksum. */ +extern guint16 crc16_ccitt(const guint8 *buf, guint len); + +/** Compute CRC16 CCITT checksum of a buffer of data. If computing the + * checksum over multiple buffers and you want to feed the partial CRC16 + * back in, remember to take the 1's complement of the partial CRC16 first. + @param buf The buffer containing the data. + @param len The number of bytes to include in the computation. + @param seed The seed to use. + @return The CRC16 CCITT checksum (using the given seed). */ +extern guint16 crc16_ccitt_seed(const guint8 *buf, guint len, guint16 seed); + +/** Compute CRC16 CCITT checksum of a tv buffer. + @param tvb The tv buffer containing the data. + @param len The number of bytes to include in the computation. + @return The CRC16 CCITT checksum. */ +extern guint16 crc16_ccitt_tvb(tvbuff_t *tvb, guint len); + +/** Compute CRC16 CCITT checksum of a tv buffer. + @param tvb The tv buffer containing the data. + @param offset The offset into the tv buffer. + @param len The number of bytes to include in the computation. + @return The CRC16 CCITT checksum. */ +extern guint16 crc16_ccitt_tvb_offset(tvbuff_t *tvb, guint offset, guint len); + +/** Compute CRC16 CCITT checksum of a tv buffer. If computing the + * checksum over multiple tv buffers and you want to feed the partial CRC16 + * back in, remember to take the 1's complement of the partial CRC16 first. + @param tvb The tv buffer containing the data. + @param len The number of bytes to include in the computation. + @param seed The seed to use. + @return The CRC16 CCITT checksum (using the given seed). */ +extern guint16 crc16_ccitt_tvb_seed(tvbuff_t *tvb, guint len, guint16 seed); + +/** Compute CRC16 CCITT checksum of a tv buffer. If computing the + * checksum over multiple tv buffers and you want to feed the partial CRC16 + * back in, remember to take the 1's complement of the partial CRC16 first. + @param tvb The tv buffer containing the data. + @param offset The offset into the tv buffer. + @param len The number of bytes to include in the computation. + @param seed The seed to use. + @return The CRC16 CCITT checksum (using the given seed). */ +extern guint16 crc16_ccitt_tvb_offset_seed(tvbuff_t *tvb, guint offset, + guint len, guint16 seed); + |