summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/avro/src/st.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:20:02 +0000
commit58daab21cd043e1dc37024a7f99b396788372918 (patch)
tree96771e43bb69f7c1c2b0b4f7374cb74d7866d0cb /fluent-bit/lib/avro/src/st.h
parentReleasing debian version 1.43.2-1. (diff)
downloadnetdata-58daab21cd043e1dc37024a7f99b396788372918.tar.xz
netdata-58daab21cd043e1dc37024a7f99b396788372918.zip
Merging upstream version 1.44.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/avro/src/st.h')
-rw-r--r--fluent-bit/lib/avro/src/st.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/fluent-bit/lib/avro/src/st.h b/fluent-bit/lib/avro/src/st.h
new file mode 100644
index 000000000..cf8a22491
--- /dev/null
+++ b/fluent-bit/lib/avro/src/st.h
@@ -0,0 +1,87 @@
+/*
+ * This is a public domain general purpose hash table package written by
+ * Peter Moore @ UCB.
+ */
+
+/*
+ * @(#) st.h 5.1 89/12/14
+ */
+
+#ifndef ST_INCLUDED
+#define ST_INCLUDED
+#ifdef __cplusplus
+extern "C" {
+#define CLOSE_EXTERN }
+#else
+#define CLOSE_EXTERN
+#endif
+
+#include <avro/platform.h> /* for uintptr_t */
+
+#pragma GCC visibility push(hidden)
+
+#ifndef ANYARGS
+ #ifdef __cplusplus
+ #define ANYARGS ...
+ #else
+ #define ANYARGS
+ #endif
+#endif
+
+#ifdef _WIN32
+ #define HASH_FUNCTION_CAST (int (__cdecl *)(ANYARGS))
+#else
+ #define HASH_FUNCTION_CAST
+#endif
+
+typedef uintptr_t st_data_t;
+typedef struct st_table st_table;
+
+struct st_hash_type {
+ int (*compare) (ANYARGS);
+ int (*hash) (ANYARGS);
+};
+
+struct st_table {
+ struct st_hash_type *type;
+ int num_bins;
+ int num_entries;
+ struct st_table_entry **bins;
+};
+
+#define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0)
+
+enum st_retval { ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK };
+
+#ifndef _
+# define _(args) args
+#endif
+
+st_table *st_init_table _((struct st_hash_type *));
+st_table *st_init_table_with_size _((struct st_hash_type *, int));
+st_table *st_init_numtable _((void));
+st_table *st_init_numtable_with_size _((int));
+st_table *st_init_strtable _((void));
+st_table *st_init_strtable_with_size _((int));
+int st_delete _((st_table *, st_data_t *, st_data_t *));
+int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));
+int st_insert _((st_table *, st_data_t, st_data_t));
+int st_lookup _((st_table *, st_data_t, st_data_t *));
+int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
+void st_add_direct _((st_table *, st_data_t, st_data_t));
+void st_free_table _((st_table *));
+void st_cleanup_safe _((st_table *, st_data_t));
+st_table *st_copy _((st_table *));
+
+#define ST_NUMCMP ((int (*)()) 0)
+#define ST_NUMHASH ((int (*)()) -2)
+
+#define st_numcmp ST_NUMCMP
+#define st_numhash ST_NUMHASH
+
+int st_strhash();
+
+#pragma GCC visibility pop
+
+CLOSE_EXTERN
+#endif /* ST_INCLUDED */