xref: /haiku/headers/private/kernel/kmodule.h (revision 0875ae984f7adc968782ff98d01071f1dc799a59)
14e3c12c0SAxel Dörfler /*
2*0875ae98SAxel Dörfler  * Copyright 2005-2008, Axel Dörfler, axeld@pinc-software.de.
3ceba1053SAxel Dörfler  * Distributed under the terms of the MIT License.
44e3c12c0SAxel Dörfler  */
54e3c12c0SAxel Dörfler #ifndef _KERNEL_MODULE_H
64e3c12c0SAxel Dörfler #define _KERNEL_MODULE_H
74e3c12c0SAxel Dörfler 
8ceba1053SAxel Dörfler 
94e3c12c0SAxel Dörfler #include <drivers/module.h>
104e3c12c0SAxel Dörfler #include <kernel.h>
114e3c12c0SAxel Dörfler 
12564cba31SAxel Dörfler struct kernel_args;
13564cba31SAxel Dörfler 
14ceba1053SAxel Dörfler 
15ceba1053SAxel Dörfler #ifdef __cplusplus
16*0875ae98SAxel Dörfler // C++ only part
17*0875ae98SAxel Dörfler 
18*0875ae98SAxel Dörfler class NotificationListener;
19*0875ae98SAxel Dörfler 
20*0875ae98SAxel Dörfler extern status_t start_watching_modules(const char *prefix,
21*0875ae98SAxel Dörfler 	NotificationListener &listener);
22*0875ae98SAxel Dörfler extern status_t stop_watching_modules(const char *prefix,
23*0875ae98SAxel Dörfler 	NotificationListener &listener);
24*0875ae98SAxel Dörfler 
25*0875ae98SAxel Dörfler 
26ceba1053SAxel Dörfler extern "C" {
27ceba1053SAxel Dörfler #endif
28ceba1053SAxel Dörfler 
29ceba1053SAxel Dörfler extern status_t unload_module(const char *path);
30ceba1053SAxel Dörfler extern status_t load_module(const char *path, module_info ***_modules);
31ceba1053SAxel Dörfler 
32179fd098SAxel Dörfler extern status_t module_init(struct kernel_args *args);
33ceba1053SAxel Dörfler 
34ceba1053SAxel Dörfler #ifdef __cplusplus
35ceba1053SAxel Dörfler }
36ceba1053SAxel Dörfler #endif
374e3c12c0SAxel Dörfler 
384e3c12c0SAxel Dörfler #endif	/* _KRENEL_MODULE_H */
39