aboutsummaryrefslogtreecommitdiff
path: root/src/hash/crc.h
blob: 233debd5b2c74648ddfc520a6fb6bec457acbd74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "../lua.h"
#include <stdint.h>

struct crc32_hash {
  uint32_t crc;
};

struct crc16_hash {
  uint16_t crc;
};

struct crc8_hash {
  uint8_t crc;
};

uint8_t crc8(uint8_t*, size_t len);
struct crc8_hash crc8_init();
void crc8_update(uint8_t*, size_t, struct crc8_hash*);
uint8_t crc8_final(struct crc8_hash*);

uint16_t crc16(uint8_t*, size_t len);
struct crc16_hash crc16_init();
void crc16_update(uint8_t*, size_t, struct crc16_hash*);
uint16_t crc16_final(struct crc16_hash*);

uint32_t crc32(uint8_t*, size_t len);
struct crc32_hash crc32_init();
void crc32_update(uint8_t*, size_t, struct crc32_hash*);
uint32_t crc32_final(struct crc32_hash*);

int l_crc8(lua_State*);
int l_crc8_init(lua_State*);
int l_crc8_update(lua_State*);
int l_crc8_final(lua_State*);

int l_crc16(lua_State*);
int l_crc16_init(lua_State*);
int l_crc16_update(lua_State*);
int l_crc16_final(lua_State*);

int l_crc32(lua_State*);
int l_crc32_init(lua_State*);
int l_crc32_update(lua_State*);
int l_crc32_final(lua_State*);