Set representative license: LGPL-2.1
[platform/upstream/7zip.git] / C / 7zCrc.h
1 /* 7zCrc.h -- CRC32 calculation\r
2 2009-11-21 : Igor Pavlov : Public domain */\r
3 \r
4 #ifndef __7Z_CRC_H\r
5 #define __7Z_CRC_H\r
6 \r
7 #include "Types.h"\r
8 \r
9 EXTERN_C_BEGIN\r
10 \r
11 extern UInt32 g_CrcTable[];\r
12 \r
13 /* Call CrcGenerateTable one time before other CRC functions */\r
14 void MY_FAST_CALL CrcGenerateTable(void);\r
15 \r
16 #define CRC_INIT_VAL 0xFFFFFFFF\r
17 #define CRC_GET_DIGEST(crc) ((crc) ^ CRC_INIT_VAL)\r
18 #define CRC_UPDATE_BYTE(crc, b) (g_CrcTable[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8))\r
19 \r
20 UInt32 MY_FAST_CALL CrcUpdate(UInt32 crc, const void *data, size_t size);\r
21 UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size);\r
22 \r
23 EXTERN_C_END\r
24 \r
25 #endif\r