OpenM++ runtime library (libopenm)
xz_crc64.h
1 /*
2  * File below is a small portion from original xz.h file:
3  *
4  * XZ decompressor
5  *
6  * Authors: Lasse Collin <lasse.collin@tukaani.org>
7  * Igor Pavlov <http://7-zip.org/>
8  *
9  * This file has been put into the public domain.
10  * You can do whatever you want with this file.
11  */
12 
13 #ifndef XZ_CRC64_H
14 #define XZ_CRC64_H
15 
16 #include <stdint.h>
17 #include <stddef.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #ifndef XZ_EXTERN
24 # define XZ_EXTERN extern
25 #endif
26 
27 /*
28  * This must be called before any other xz_* function (except xz_crc32_init())
29  * to initialize the CRC64 lookup table.
30  */
31 XZ_EXTERN void xz_crc64_init(void);
32 
33 /*
34  * Update CRC64 value using the polynomial from ECMA-182. To start a new
35  * calculation, the third argument must be zero. To continue the calculation,
36  * the previously returned value is passed as the third argument.
37  */
38 XZ_EXTERN uint64_t xz_crc64(const uint8_t *buf, size_t size, uint64_t crc);
39 
40 #ifdef __cplusplus
41 }
42 #endif
43 
44 #endif // XZ_CRC64_H