xref: /haiku/headers/private/kernel/kmodule.h (revision 4a55cc230cf7566cadcbb23b1928eefff8aea9a2)
1 /*
2  * Copyright 2005-2008, Axel Dörfler, axeld@pinc-software.de.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _KERNEL_MODULE_H
6 #define _KERNEL_MODULE_H
7 
8 
9 #include <drivers/module.h>
10 #include <kernel.h>
11 
12 struct kernel_args;
13 
14 
15 #ifdef __cplusplus
16 // C++ only part
17 
18 class NotificationListener;
19 
20 extern status_t start_watching_modules(const char *prefix,
21 	NotificationListener &listener);
22 extern status_t stop_watching_modules(const char *prefix,
23 	NotificationListener &listener);
24 
25 
26 extern "C" {
27 #endif
28 
29 extern status_t unload_module(const char *path);
30 extern status_t load_module(const char *path, module_info ***_modules);
31 
32 extern status_t module_init(struct kernel_args *args);
33 extern status_t module_init_post_threads(void);
34 extern status_t module_init_post_boot_device(bool bootingFromBootLoaderVolume);
35 extern status_t module_get_path(const char* moduleName, char** path);
36 
37 #ifdef __cplusplus
38 }
39 #endif
40 
41 #endif	/* _KRENEL_MODULE_H */
42