diff options
Diffstat (limited to 'trunk/src/lib/lib7z/XzCrc64.h')
-rw-r--r-- | trunk/src/lib/lib7z/XzCrc64.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/trunk/src/lib/lib7z/XzCrc64.h b/trunk/src/lib/lib7z/XzCrc64.h new file mode 100644 index 00000000000..0e8efd7ea67 --- /dev/null +++ b/trunk/src/lib/lib7z/XzCrc64.h @@ -0,0 +1,26 @@ +/* XzCrc64.h -- CRC64 calculation +2010-04-16 : Igor Pavlov : Public domain */ + +#ifndef __XZ_CRC64_H +#define __XZ_CRC64_H + +#include <stddef.h> + +#include "Types.h" + +EXTERN_C_BEGIN + +extern UInt64 g_Crc64Table[]; + +void MY_FAST_CALL Crc64GenerateTable(void); + +#define CRC64_INIT_VAL UINT64_CONST(0xFFFFFFFFFFFFFFFF) +#define CRC64_GET_DIGEST(crc) ((crc) ^ CRC64_INIT_VAL) +#define CRC64_UPDATE_BYTE(crc, b) (g_Crc64Table[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8)) + +UInt64 MY_FAST_CALL Crc64Update(UInt64 crc, const void *data, size_t size); +UInt64 MY_FAST_CALL Crc64Calc(const void *data, size_t size); + +EXTERN_C_END + +#endif |