]> git.ipfire.org Git - people/ms/suricata.git/blame - src/detect-engine-loader.h
core: Remove unneeded consts
[people/ms/suricata.git] / src / detect-engine-loader.h
CommitLineData
979bd352
VJ
1/* Copyright (C) 2015 Open Information Security Foundation
2 *
3 * You can copy, redistribute or modify this Program under the terms of
4 * the GNU General Public License version 2 as published by the Free
5 * Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * version 2 along with this program; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
15 * 02110-1301, USA.
16 */
17
18/**
19 * \file
20 *
21 * \author Victor Julien <victor@inliniac.net>
22 *
23 * Detect loader API, for using multiple 'loader' threads
24 * that can load multiple detection engines in parallel.
25 */
26
27#ifndef __DETECT_ENGINE_LOADER_H__
28#define __DETECT_ENGINE_LOADER_H__
29
30/**
31 * \param ctx function specific data
32 * \param loader_id id of the loader that executed the task
33 */
34typedef int (*LoaderFunc)(void *ctx, int loader_id);
35
36typedef struct DetectLoaderTask_ {
37 LoaderFunc Func;
38 void *ctx;
39 TAILQ_ENTRY(DetectLoaderTask_) next;
40} DetectLoaderTask;
41
42typedef struct DetectLoaderControl_ {
43 int id;
44 int result; /* 0 for ok, error otherwise */
45 SCMutex m;
46 TAILQ_HEAD(, DetectLoaderTask_) task_list;
47} DetectLoaderControl;
48
49int DetectLoaderQueueTask(int loader_id, LoaderFunc Func, void *func_ctx);
50int DetectLoadersSync(void);
51void DetectLoadersInit(void);
52
ab1200fb
VJ
53void TmThreadContinueDetectLoaderThreads(void);
54void DetectLoaderThreadSpawn(void);
979bd352
VJ
55void TmModuleDetectLoaderRegister (void);
56
57#endif /* __DETECT_ENGINE_LOADER_H__ */