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
20extern "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 */
31XZ_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 */
38XZ_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