diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:19:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:20:02 +0000 |
commit | 58daab21cd043e1dc37024a7f99b396788372918 (patch) | |
tree | 96771e43bb69f7c1c2b0b4f7374cb74d7866d0cb /fluent-bit/lib/avro/src/st.h | |
parent | Releasing debian version 1.43.2-1. (diff) | |
download | netdata-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.h | 87 |
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 */ |