1*f6dc9357SAndroid Build Coastguard Worker /* XzCrc64.h -- CRC64 calculation 2*f6dc9357SAndroid Build Coastguard Worker 2023-12-08 : Igor Pavlov : Public domain */ 3*f6dc9357SAndroid Build Coastguard Worker 4*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_XZ_CRC64_H 5*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_XZ_CRC64_H 6*f6dc9357SAndroid Build Coastguard Worker 7*f6dc9357SAndroid Build Coastguard Worker #include <stddef.h> 8*f6dc9357SAndroid Build Coastguard Worker 9*f6dc9357SAndroid Build Coastguard Worker #include "7zTypes.h" 10*f6dc9357SAndroid Build Coastguard Worker 11*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_BEGIN 12*f6dc9357SAndroid Build Coastguard Worker 13*f6dc9357SAndroid Build Coastguard Worker // extern UInt64 g_Crc64Table[]; 14*f6dc9357SAndroid Build Coastguard Worker 15*f6dc9357SAndroid Build Coastguard Worker void Z7_FASTCALL Crc64GenerateTable(void); 16*f6dc9357SAndroid Build Coastguard Worker 17*f6dc9357SAndroid Build Coastguard Worker #define CRC64_INIT_VAL UINT64_CONST(0xFFFFFFFFFFFFFFFF) 18*f6dc9357SAndroid Build Coastguard Worker #define CRC64_GET_DIGEST(crc) ((crc) ^ CRC64_INIT_VAL) 19*f6dc9357SAndroid Build Coastguard Worker // #define CRC64_UPDATE_BYTE(crc, b) (g_Crc64Table[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8)) 20*f6dc9357SAndroid Build Coastguard Worker 21*f6dc9357SAndroid Build Coastguard Worker UInt64 Z7_FASTCALL Crc64Update(UInt64 crc, const void *data, size_t size); 22*f6dc9357SAndroid Build Coastguard Worker // UInt64 Z7_FASTCALL Crc64Calc(const void *data, size_t size); 23*f6dc9357SAndroid Build Coastguard Worker 24*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_END 25*f6dc9357SAndroid Build Coastguard Worker 26*f6dc9357SAndroid Build Coastguard Worker #endif 27