Set representative license: LGPL-2.1
[platform/upstream/7zip.git] / C / XzCrc64.h
1 /* XzCrc64.h -- CRC64 calculation\r
2 2010-04-16 : Igor Pavlov : Public domain */\r
3 \r
4 #ifndef __XZ_CRC64_H\r
5 #define __XZ_CRC64_H\r
6 \r
7 #include <stddef.h>\r
8 \r
9 #include "Types.h"\r
10 \r
11 EXTERN_C_BEGIN\r
12 \r
13 extern UInt64 g_Crc64Table[];\r
14 \r
15 void MY_FAST_CALL Crc64GenerateTable(void);\r
16 \r
17 #define CRC64_INIT_VAL UINT64_CONST(0xFFFFFFFFFFFFFFFF)\r
18 #define CRC64_GET_DIGEST(crc) ((crc) ^ CRC64_INIT_VAL)\r
19 #define CRC64_UPDATE_BYTE(crc, b) (g_Crc64Table[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8))\r
20 \r
21 UInt64 MY_FAST_CALL Crc64Update(UInt64 crc, const void *data, size_t size);\r
22 UInt64 MY_FAST_CALL Crc64Calc(const void *data, size_t size);\r
23 \r
24 EXTERN_C_END\r
25 \r
26 #endif\r