added modules to neonserv.example.conf and added protected as a module setting
[NeonServV5.git] / src / modules.h
1 /* modules.h - NeonServ v5.3
2  * Copyright (C) 2011-2012  Philipp Kreil (pk910)
3  * 
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * 
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  * 
14  * You should have received a copy of the GNU General Public License 
15  * along with this program. If not, see <http://www.gnu.org/licenses/>. 
16  */
17 #ifndef _modules_h
18 #define _modules_h
19
20 #define MODINFO_STATE_STARTED   0x01
21 #define MODINFO_STATE_PROTECTED 0x02
22
23 struct ModuleInfo {
24     char *name;
25     int module_id;
26     #ifndef WIN32
27     void *module;
28     #else
29     HMODULE module;
30     #endif
31     int state;
32     void *startfunc;
33     void *loopfunc;
34     void *stopfunc;
35     struct ModuleInfo *next;
36 };
37
38 #ifndef DND_FUNCTIONS
39 void loadModules();
40 struct ModuleInfo *loadModule(char *name);
41 void start_modules();
42 void loop_modules();
43 void stop_modules();
44 int module_loaded(int module_id);
45
46 int ext_load_module(char *name);
47 int ext_unload_module(char *name);
48 int ext_reload_module(char *name);
49 struct ModuleInfo *ext_get_modules(struct ModuleInfo *last);
50 #endif
51 #endif