summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/chunkio/deps/crc32/crc32.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 02:57:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 02:57:58 +0000
commitbe1c7e50e1e8809ea56f2c9d472eccd8ffd73a97 (patch)
tree9754ff1ca740f6346cf8483ec915d4054bc5da2d /fluent-bit/lib/chunkio/deps/crc32/crc32.h
parentInitial commit. (diff)
downloadnetdata-be1c7e50e1e8809ea56f2c9d472eccd8ffd73a97.tar.xz
netdata-be1c7e50e1e8809ea56f2c9d472eccd8ffd73a97.zip
Adding upstream version 1.44.3.upstream/1.44.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/chunkio/deps/crc32/crc32.h')
-rw-r--r--fluent-bit/lib/chunkio/deps/crc32/crc32.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/fluent-bit/lib/chunkio/deps/crc32/crc32.h b/fluent-bit/lib/chunkio/deps/crc32/crc32.h
new file mode 100644
index 00000000..c3ec3fa3
--- /dev/null
+++ b/fluent-bit/lib/chunkio/deps/crc32/crc32.h
@@ -0,0 +1,107 @@
+/**
+ * \file
+ * Functions and types for CRC checks.
+ *
+ * Generated on Wed Mar 18 12:41:20 2020
+ * by pycrc v0.9.2, https://pycrc.org
+ * using the configuration:
+ * - Width = 32
+ * - Poly = 0x04c11db7
+ * - XorIn = 0xffffffff
+ * - ReflectIn = True
+ * - XorOut = 0xffffffff
+ * - ReflectOut = True
+ * - Algorithm = table-driven
+ * - SliceBy = 8
+ *
+ * This file defines the functions crc_init(), crc_update() and crc_finalize().
+ *
+ * The crc_init() function returns the inital \c crc value and must be called
+ * before the first call to crc_update().
+ * Similarly, the crc_finalize() function must be called after the last call
+ * to crc_update(), before the \c crc is being used.
+ * is being used.
+ *
+ * The crc_update() function can be called any number of times (including zero
+ * times) in between the crc_init() and crc_finalize() calls.
+ *
+ * This pseudo-code shows an example usage of the API:
+ * \code{.c}
+ * crc_t crc;
+ * unsigned char data[MAX_DATA_LEN];
+ * size_t data_len;
+ *
+ * crc = crc_init();
+ * while ((data_len = read_data(data, MAX_DATA_LEN)) > 0) {
+ * crc = crc_update(crc, data, data_len);
+ * }
+ * crc = crc_finalize(crc);
+ * \endcode
+ */
+#ifndef CRC32_H
+#define CRC32_H
+
+#include <stdlib.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * The definition of the used algorithm.
+ *
+ * This is not used anywhere in the generated code, but it may be used by the
+ * application code to call algorithm-specific code, if desired.
+ */
+#define CRC_ALGO_TABLE_DRIVEN 1
+
+
+/**
+ * The type of the CRC values.
+ *
+ * This type must be big enough to contain at least 32 bits.
+ */
+typedef uint_fast32_t crc_t;
+
+
+/**
+ * Calculate the initial crc value.
+ *
+ * \return The initial crc value.
+ */
+static inline crc_t crc_init(void)
+{
+ return 0xffffffff;
+}
+
+
+/**
+ * Update the crc value with new data.
+ *
+ * \param[in] crc The current crc value.
+ * \param[in] data Pointer to a buffer of \a data_len bytes.
+ * \param[in] data_len Number of bytes in the \a data buffer.
+ * \return The updated crc value.
+ */
+crc_t crc_update(crc_t crc, const void *data, size_t data_len);
+
+
+/**
+ * Calculate the final crc value.
+ *
+ * \param[in] crc The current crc value.
+ * \return The final crc value.
+ */
+static inline crc_t crc_finalize(crc_t crc)
+{
+ return crc ^ 0xffffffff;
+}
+
+
+#ifdef __cplusplus
+} /* closing brace for extern "C" */
+#endif
+
+#endif /* CRC32_H */