aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/introspection.h
diff options
context:
space:
mode:
authorJoão Valverde <j@v6e.pt>2022-10-02 01:55:51 +0100
committerJoão Valverde <j@v6e.pt>2022-10-07 10:28:47 +0100
commit3c99478cef3ad009aa22076d172ac528ac4e2d58 (patch)
tree0d300dbdc0ff712452c8092565305ebcd336784c /wiretap/introspection.h
parent9faaf0ecff25e8d6b51da4f90eba07a176cbef60 (diff)
wiretap: Add enum generation
Diffstat (limited to 'wiretap/introspection.h')
-rw-r--r--wiretap/introspection.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/wiretap/introspection.h b/wiretap/introspection.h
new file mode 100644
index 0000000000..c12bbcf59d
--- /dev/null
+++ b/wiretap/introspection.h
@@ -0,0 +1,36 @@
+/** @file
+ * Copyright 2021, João Valverde <j@v6e.pt>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef _WTAP_INTROSPECTION_H_
+#define _WTAP_INTROSPECTION_H_
+
+#include <stddef.h>
+#include <ws_symbol_export.h>
+#include <wsutil/introspection.h>
+
+/** Returns an array of ws_enum_t elements. The array is sorted and
+ * ends with {NULL, 0}.
+ *
+ * It can be used by language bindings to the Wireshark API to obtain
+ * the value of some magic constants. The array can be binary searched,
+ * imported to a hash table, serialized, etc.
+ */
+WS_DLL_PUBLIC
+const ws_enum_t *wtap_inspect_enums(void);
+
+/** Returns size of enums array not including null terminator. */
+WS_DLL_PUBLIC
+size_t wtap_inspect_enums_count(void);
+
+/** Performs a binary search for the magic constant "needle". */
+WS_DLL_PUBLIC
+const ws_enum_t *wtap_inspect_enums_bsearch(const char *needle);
+
+#endif