summaryrefslogtreecommitdiffstats
path: root/src/runmodes.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/runmodes.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/runmodes.h b/src/runmodes.h
new file mode 100644
index 0000000..57b31b6
--- /dev/null
+++ b/src/runmodes.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 2007-2022 Open Information Security Foundation
+ *
+ * You can copy, redistribute or modify this Program under the terms of
+ * the GNU General Public License version 2 as published by the Free
+ * Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+/** \file
+ *
+ * \author Victor Julien <victor@inliniac.net>
+ */
+
+#ifndef __RUNMODES_H__
+#define __RUNMODES_H__
+
+/* Run mode */
+enum RunModes {
+ RUNMODE_UNKNOWN = 0,
+ RUNMODE_PCAP_DEV,
+ RUNMODE_PCAP_FILE,
+ RUNMODE_PFRING,
+ RUNMODE_NFQ,
+ RUNMODE_NFLOG,
+ RUNMODE_IPFW,
+ RUNMODE_ERF_FILE,
+ RUNMODE_DAG,
+ RUNMODE_AFP_DEV,
+ RUNMODE_AFXDP_DEV,
+ RUNMODE_NETMAP,
+ RUNMODE_DPDK,
+ RUNMODE_UNITTEST,
+ RUNMODE_NAPATECH,
+ RUNMODE_UNIX_SOCKET,
+ RUNMODE_WINDIVERT,
+ RUNMODE_PLUGIN,
+ RUNMODE_USER_MAX, /* Last standard running mode */
+ RUNMODE_LIST_KEYWORDS,
+ RUNMODE_LIST_APP_LAYERS,
+ RUNMODE_LIST_RUNMODES,
+ RUNMODE_PRINT_VERSION,
+ RUNMODE_PRINT_BUILDINFO,
+ RUNMODE_PRINT_USAGE,
+ RUNMODE_DUMP_CONFIG,
+ RUNMODE_CONF_TEST,
+ RUNMODE_LIST_UNITTEST,
+ RUNMODE_ENGINE_ANALYSIS,
+#ifdef OS_WIN32
+ RUNMODE_INSTALL_SERVICE,
+ RUNMODE_REMOVE_SERVICE,
+ RUNMODE_CHANGE_SERVICE_PARAMS,
+#endif
+ RUNMODE_DUMP_FEATURES,
+ RUNMODE_MAX,
+};
+
+/* Run Mode Global Thread Names */
+extern const char *thread_name_autofp;
+extern const char *thread_name_single;
+extern const char *thread_name_workers;
+extern const char *thread_name_verdict;
+extern const char *thread_name_flow_mgr;
+extern const char *thread_name_flow_bypass;
+extern const char *thread_name_flow_rec;
+extern const char *thread_name_unix_socket;
+extern const char *thread_name_detect_loader;
+extern const char *thread_name_counter_stats;
+extern const char *thread_name_counter_wakeup;
+
+char *RunmodeGetActive(void);
+const char *RunModeGetMainMode(void);
+
+void RunModeListRunmodes(void);
+void RunModeEngineIsIPS(int capture_mode, const char *runmode, const char *capture_plugin_name);
+void RunModeDispatch(int, const char *, const char *capture_plugin_name, const char *capture_plugin_args);
+void RunModeRegisterRunModes(void);
+void RunModeRegisterNewRunMode(enum RunModes, const char *, const char *, int (*RunModeFunc)(void),
+ void (*RunModeIsIPSEnabled)(void));
+void RunModeInitializeThreadSettings(void);
+void RunModeInitializeOutputs(void);
+void RunModeShutDown(void);
+
+/* bool indicating if file logger is enabled */
+int RunModeOutputFileEnabled(void);
+/* bool indicating if filedata logger is enabled */
+int RunModeOutputFiledataEnabled(void);
+/** bool indicating if run mode is offline */
+bool IsRunModeOffline(enum RunModes run_mode_to_check);
+bool IsRunModeSystem(enum RunModes run_mode_to_check);
+
+void RunModeEnablesBypassManager(void);
+int RunModeNeedsBypassManager(void);
+
+extern int threading_set_cpu_affinity;
+extern float threading_detect_ratio;
+extern uint64_t threading_set_stack_size;
+
+extern int debuglog_enabled;
+
+#endif /* __RUNMODES_H__ */