xref: /haiku/headers/private/kernel/kmodule.h (revision 2710b4f5d4251c5cf88c82b0114ea99b0ef46d22)
14e3c12c0SAxel Dörfler /*
20875ae98SAxel 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
160875ae98SAxel Dörfler // C++ only part
170875ae98SAxel Dörfler 
180875ae98SAxel Dörfler class NotificationListener;
190875ae98SAxel Dörfler 
200875ae98SAxel Dörfler extern status_t start_watching_modules(const char *prefix,
210875ae98SAxel Dörfler 	NotificationListener &listener);
220875ae98SAxel Dörfler extern status_t stop_watching_modules(const char *prefix,
230875ae98SAxel Dörfler 	NotificationListener &listener);
240875ae98SAxel Dörfler 
250875ae98SAxel 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);
33423fcd43SAxel Dörfler extern status_t module_init_post_threads(void);
346075e354SIngo Weinhold extern status_t module_init_post_boot_device(bool bootingFromBootLoaderVolume);
35*8e17b43dSJérôme Duval extern status_t module_get_path(const char* moduleName, char** path);
36ceba1053SAxel Dörfler 
37ceba1053SAxel Dörfler #ifdef __cplusplus
38ceba1053SAxel Dörfler }
39ceba1053SAxel Dörfler #endif
404e3c12c0SAxel Dörfler 
414e3c12c0SAxel Dörfler #endif	/* _KRENEL_MODULE_H */
42