LibJuno 0.23.0
LibJuno is a lightweight C99 library designed specifically for embedded systems.
Loading...
Searching...
No Matches
crc.h
Go to the documentation of this file.
1/*
2 MIT License
3
4 Copyright (c) 2025 Robin A. Onsay
5
6 Permission is hereby granted, free of charge, to any person obtaining
7 a copy of this software and associated documentation files
8 (the "Software"), to deal in the Software without restriction,
9 including without limitation the rights to use, copy, modify, merge,
10 publish, distribute, sublicense, and/or sell copies of the Software,
11 and to permit persons to whom the Software is furnished to do so,
12 subject to the following conditions:
13
14 The above copyright notice and this permission notice shall be
15 included in all copies or substantial portions of the Software.
16*/
17#ifndef JUNO_CRC_H
18#define JUNO_CRC_H
19#include <stdio.h>
20#ifdef __cplusplus
21extern "C"
22{
23#endif
24#include <stdint.h>
25#define M1_16 0xff
26#define M2_16 0xff00
27#define M1_32 0xffffffff
28#define M2_32 0xffffff00
29
30#define JUNO_ARC_CRC_INIT (0)
31uint16_t Juno_CrcArcUpdate(uint16_t iCrc, const void *pcData, size_t zDataSize);
32
33
34#define JUNO_BINHEX_CRC_INIT (0)
35uint16_t Juno_CrcBinhexUpdate(uint16_t iCrc, const void *pcData, size_t zDataSize);
36
37
38#define JUNO_CCITT_CRC_INIT (-1)
39uint16_t Juno_CrcCcittUpdate(uint16_t iCrc, const void *pcData, size_t zDataSize);
40
41
42#define JUNO_CCITT32_CRC_INIT (-1)
43uint32_t Juno_CrcCcitt32Update(uint32_t iCrc, const void *pcData, size_t zDataSize);
44
45
46#define JUNO_KERMIT_CRC_INIT (0)
47uint32_t Juno_CrcKermitUpdate(uint32_t iCrc, const void *pcData, size_t zDataSize);
48
49#define JUNO_ZIP_CRC_INIT (-1)
50uint32_t Juno_CrcZipUpdate(uint32_t iCrc, const void *pcData, size_t zDataSize);
51
52#ifdef __cplusplus
53}
54#endif
55#endif
uint32_t Juno_CrcZipUpdate(uint32_t iCrc, const void *pcData, size_t zDataSize)
Definition juno_zip.c:21
uint32_t Juno_CrcKermitUpdate(uint32_t iCrc, const void *pcData, size_t zDataSize)
Definition juno_kermit.c:22
uint32_t Juno_CrcCcitt32Update(uint32_t iCrc, const void *pcData, size_t zDataSize)
Definition juno_ccitt32.c:21
uint16_t Juno_CrcBinhexUpdate(uint16_t iCrc, const void *pcData, size_t zDataSize)
Definition juno_binhex.c:22
uint16_t Juno_CrcCcittUpdate(uint16_t iCrc, const void *pcData, size_t zDataSize)
Definition juno_ccitt.c:22
uint16_t Juno_CrcArcUpdate(uint16_t iCrc, const void *pcData, size_t zDataSize)
Definition juno_arc.c:22