diff --git a/configs/limine.cfg b/configs/limine.cfg index 50bb845..2dbcb6c 100644 --- a/configs/limine.cfg +++ b/configs/limine.cfg @@ -18,6 +18,9 @@ BACKGROUND_PATH=boot:///boot.tga MODULE_PATH=boot:///boot.tga MODULE_CMDLINE=[BOOTIMG] + MODULE_PATH=boot:///mod/simd.ko + MODULE_CMDLINE=[MOD]simd.ko + MODULE_PATH=boot:///mod/hello.ko MODULE_CMDLINE=[MOD]hello.ko diff --git a/modlib/system.h b/modlib/system.h index 20bdf44..6881241 100644 --- a/modlib/system.h +++ b/modlib/system.h @@ -60,9 +60,11 @@ typedef struct { } env_t; extern module_info_t static_info; +static void (*fb_printf)(char *str, ...); static inline void init_env(env_t *loader_env) { loader_env->info = (module_info_t *)&static_info + loader_env->offset; + fb_printf = loader_env->fb_printf; } #endif // system.h diff --git a/modules/helloworld/main.c b/modules/helloworld/main.c index 583ce2c..ee7ceab 100644 --- a/modules/helloworld/main.c +++ b/modules/helloworld/main.c @@ -1,9 +1,11 @@ #include -const char name[] = "Привет мир!"; -const char message[] = "Привет из модуля!"; +static const char name[] = "Привет мир!"; +static const char message[] = "Привет из модуля!"; module_info_t init(env_t *env) { + init_env(env); + fb_printf("[%s]\n", message); return (module_info_t){ .name = (char *)&name, .message = (char *)&message, .err_code = 2023, diff --git a/modules/music/main.c b/modules/music/main.c index 427c239..9daa374 100644 --- a/modules/music/main.c +++ b/modules/music/main.c @@ -37,7 +37,7 @@ static void nosound( ) { module_info_t init(env_t *env) { init_env(env); - env->fb_printf("Программа инициализирована!\n"); + fb_printf("Программа инициализирована!\n"); return (module_info_t){ .name = (char *)"Мелодия", .message = (char *)"Надеюсь скоро тут будет тетрис!",