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