From dc54ee97ebc3d10ad11cd4ea1f7ee6c3134b04f5 Mon Sep 17 00:00:00 2001 From: mintsuki Date: Mon, 16 Nov 2020 23:31:03 +0100 Subject: [PATCH] config: Add initial support for config directory entries --- Makefile | 3 +- limine-pxe.bin | Bin 27773 -> 28314 bytes limine.bin | Bin 32768 -> 32768 bytes stage2.map | Bin 4095 -> 4156 bytes stage2/drivers/vbe.c | 2 +- stage2/lib/config.c | 118 +++++++++++++++++++++++++++++++++----- stage2/lib/config.h | 18 +++++- stage2/lib/print.c | 2 +- stage2/lib/trace.c | 2 +- stage2/main.c | 13 +++-- stage2/menu.c | 90 +++++++++++++++++++---------- stage2/menu.h | 2 +- stage2/protos/chainload.c | 6 +- stage2/protos/chainload.h | 2 +- stage2/protos/linux.c | 6 +- stage2/protos/linux.h | 4 +- stage2/protos/stivale.c | 10 ++-- stage2/protos/stivale.h | 2 +- stage2/protos/stivale2.c | 12 ++-- stage2/protos/stivale2.h | 2 +- test/limine.cfg | 64 ++++++++++++++++++++- 21 files changed, 276 insertions(+), 82 deletions(-) diff --git a/Makefile b/Makefile index 5f8afdd3..1ffdf5cc 100644 --- a/Makefile +++ b/Makefile @@ -49,8 +49,9 @@ echfs-test: limine-install test.img sed "s/@GUID@/`cat part_guid`/g" < test/limine.cfg > limine.cfg.tmp echfs-utils -m -p0 test.img import limine.cfg.tmp limine.cfg rm -f limine.cfg.tmp part_guid + echfs-utils -m -p0 test.img import stage2.map boot/stage2.map echfs-utils -m -p0 test.img import test/test.elf boot/test.elf - echfs-utils -m -p0 test.img import test/bg.bmp bg.bmp + echfs-utils -m -p0 test.img import test/bg.bmp boot/bg.bmp ./limine-install limine.bin test.img qemu-system-x86_64 -net none -smp 4 -enable-kvm -cpu host -hda test.img -debugcon stdio diff --git a/limine-pxe.bin b/limine-pxe.bin index ff180440e3937411029863a93dd7563ae9c95d89..396e2d4cc3becf49f9e311e3639465bcc6825b47 100644 GIT binary patch delta 26432 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
6w4RZ&J8! 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 delta 25886 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 F002|kk+}c> diff --git a/limine.bin b/limine.bin index b04497a2f87c17287b9b5d4c230d45206ca2472b..fc6c3d9452e93e02970a7f62167c13170c4a3be9 100644 GIT binary patch delta 26417 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 ChmZXL diff --git a/stage2.map b/stage2.map index 6b046cfdd240e60f6a1a27ab7e4097f5101eebf4..b5f4804aacddc60da279876c0c2a6211aef881d6 100644 GIT binary patch literal 4156 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 Bw2lA( diff --git a/stage2/drivers/vbe.c b/stage2/drivers/vbe.c index 7142e76c..b1956e8b 100644 --- a/stage2/drivers/vbe.c +++ b/stage2/drivers/vbe.c @@ -322,7 +322,7 @@ bool vbe_tty_init(int *_rows, int *_cols, uint32_t *_colours, int _margin, int _ int req_width = 0, req_height = 0, req_bpp = 0; - if (config_get_value(buf, 0, 32, "MENU_RESOLUTION")) + if (config_get_value(NULL, buf, 0, 32, "MENU_RESOLUTION")) parse_resolution(&req_width, &req_height, &req_bpp, buf); // We force bpp to 32 diff --git a/stage2/lib/config.c b/stage2/lib/config.c index 871f076c..4fc70c92 100644 --- a/stage2/lib/config.c +++ b/stage2/lib/config.c @@ -8,6 +8,8 @@ #include #include +#include + #define SEPARATOR '\n' bool config_ready = false; @@ -44,6 +46,81 @@ int init_config_pxe(void) { return init_config(cfg.file_size); } +#define NOT_CHILD (-1) +#define DIRECT_CHILD 0 +#define INDIRECT_CHILD 1 + +static int is_child(char *buf, size_t limit, + size_t current_depth, size_t index) { + if (!config_get_entry_name(buf, index, limit)) + return NOT_CHILD; + if (strlen(buf) < current_depth + 1) + return NOT_CHILD; + for (size_t j = 0; j < current_depth; j++) + if (buf[j] != ':') + return NOT_CHILD; + if (buf[current_depth] == ':') + return INDIRECT_CHILD; + return DIRECT_CHILD; +} + +static bool is_directory(char *buf, size_t limit, + size_t current_depth, size_t index) { + switch (is_child(buf, limit, current_depth + 1, index + 1)) { + default: + case NOT_CHILD: + return false; + case INDIRECT_CHILD: + panic("config: Malformed config file. Parentless child."); + case DIRECT_CHILD: + return true; + } +} + +static struct menu_entry *create_menu_tree(struct menu_entry *parent, + size_t current_depth, size_t index) { + struct menu_entry *root = NULL, *prev = NULL; + + for (size_t i = index; ; i++) { + static char name[64]; + + switch (is_child(name, 64, current_depth, i)) { + case NOT_CHILD: + return root; + case INDIRECT_CHILD: + continue; + case DIRECT_CHILD: + break; + } + + struct menu_entry *entry = conv_mem_alloc(sizeof(struct menu_entry)); + + if (root == NULL) + root = entry; + + config_get_entry_name(name, i, 64); + + strcpy(entry->name, name + current_depth); + entry->parent = parent; + + if (is_directory(name, 64, current_depth, i)) { + entry->sub = create_menu_tree(entry, current_depth + 1, i + 1); + } else { + size_t entry_size; + char *config_entry = config_get_entry(&entry_size, i); + entry->body = conv_mem_alloc(entry_size + 1); + memcpy(entry->body, config_entry, entry_size); + entry->body[entry_size] = 0; + } + + if (prev != NULL) + prev->next = entry; + prev = entry; + } +} + +struct menu_entry *menu_tree = NULL; + int init_config(size_t config_size) { // remove windows carriage returns, if any for (size_t i = 0; i < config_size; i++) { @@ -54,18 +131,20 @@ int init_config(size_t config_size) { } } + menu_tree = create_menu_tree(NULL, 1, 0); + config_ready = true; return 0; } -int config_get_entry_name(char *ret, size_t index, size_t limit) { +bool config_get_entry_name(char *ret, size_t index, size_t limit) { char *p = config_addr; for (size_t i = 0; i <= index; i++) { while (*p != ':') { if (!*p) - return -1; + return false; p++; } p++; @@ -73,6 +152,8 @@ int config_get_entry_name(char *ret, size_t index, size_t limit) { i--; } + p--; + size_t i; for (i = 0; i < (limit - 1); i++) { if (p[i] == SEPARATOR) @@ -81,16 +162,17 @@ int config_get_entry_name(char *ret, size_t index, size_t limit) { } ret[i] = 0; - return 0; + return true; } -int config_set_entry(size_t index) { +char *config_get_entry(size_t *size, size_t index) { + char *ret; char *p = config_addr; for (size_t i = 0; i <= index; i++) { while (*p != ':') { if (!*p) - return -1; + return NULL; p++; } p++; @@ -98,7 +180,11 @@ int config_set_entry(size_t index) { i--; } - config_addr = p; + do { + p++; + } while (*p != '\n'); + + ret = p; cont: while (*p != ':' && *p) @@ -109,29 +195,33 @@ cont: goto cont; } - *p = 0; + *size = p - ret; - return 0; + return ret; } -char *config_get_value(char *buf, size_t index, size_t limit, const char *key) { +char *config_get_value(const char *config, + char *buf, size_t index, size_t limit, const char *key) { if (!limit || !buf || !key) return NULL; + if (config == NULL) + config = config_addr; + size_t key_len = strlen(key); - for (size_t i = 0; config_addr[i]; i++) { - if (!strncmp(&config_addr[i], key, key_len) && config_addr[i + key_len] == '=') { - if (i && config_addr[i - 1] != SEPARATOR) + for (size_t i = 0; config[i]; i++) { + if (!strncmp(&config[i], key, key_len) && config[i + key_len] == '=') { + if (i && config[i - 1] != SEPARATOR) continue; if (index--) continue; i += key_len + 1; size_t j; - for (j = 0; config_addr[i + j] != SEPARATOR && config_addr[i + j]; j++) { + for (j = 0; config[i + j] != SEPARATOR && config[i + j]; j++) { if (j == limit - 1) break; - buf[j] = config_addr[i + j]; + buf[j] = config[i + j]; } buf[j] = 0; return buf; diff --git a/stage2/lib/config.h b/stage2/lib/config.h index 26fd561e..49eb2036 100644 --- a/stage2/lib/config.h +++ b/stage2/lib/config.h @@ -7,11 +7,23 @@ extern bool config_ready; +struct menu_entry { + char name[64]; + struct menu_entry *parent; + struct menu_entry *sub; + bool expanded; + char *body; + struct menu_entry *next; +}; + +extern struct menu_entry *menu_tree; + int init_config_disk(struct part *part); int init_config_pxe(void); int init_config(size_t config_size); -int config_get_entry_name(char *ret, size_t index, size_t limit); -int config_set_entry(size_t index); -char *config_get_value(char *buf, size_t index, size_t limit, const char *key); +bool config_get_entry_name(char *ret, size_t index, size_t limit); +char *config_get_entry(size_t *size, size_t index); +char *config_get_value(const char *config, + char *buf, size_t index, size_t limit, const char *key); #endif diff --git a/stage2/lib/print.c b/stage2/lib/print.c index e4b1a91c..0c4bf844 100644 --- a/stage2/lib/print.c +++ b/stage2/lib/print.c @@ -119,7 +119,7 @@ static char print_buf[PRINT_BUF_MAX]; void vprint(const char *fmt, va_list args) { if (config_ready && e9_output == -1) { - e9_output = config_get_value(print_buf, 0, PRINT_BUF_MAX, "E9_OUTPUT") && + e9_output = config_get_value(NULL, print_buf, 0, PRINT_BUF_MAX, "E9_OUTPUT") && !strcmp(print_buf, "yes"); } diff --git a/stage2/lib/trace.c b/stage2/lib/trace.c index 1e392678..5ecfe369 100644 --- a/stage2/lib/trace.c +++ b/stage2/lib/trace.c @@ -12,7 +12,7 @@ static char *stage2_map = NULL; void trace_init(void) { char map_filename[80]; - if (!config_get_value(map_filename, 0, 80, "STAGE2_MAP")) + if (!config_get_value(NULL, map_filename, 0, 80, "STAGE2_MAP")) return; struct file_handle stage2_map_file; diff --git a/stage2/main.c b/stage2/main.c index a2f2bb1f..c2757af2 100644 --- a/stage2/main.c +++ b/stage2/main.c @@ -70,21 +70,22 @@ void entry(uint8_t _boot_drive, int pxe_boot) { trace_init(); - char *cmdline = menu(); + char *cmdline; + char *config = menu(&cmdline); char proto[32]; - if (!config_get_value(proto, 0, 32, "PROTOCOL")) { + if (!config_get_value(config, proto, 0, 32, "PROTOCOL")) { panic("PROTOCOL not specified"); } if (!strcmp(proto, "stivale")) { - stivale_load(cmdline); + stivale_load(config, cmdline); } else if (!strcmp(proto, "stivale2")) { - stivale2_load(cmdline); + stivale2_load(config, cmdline); } else if (!strcmp(proto, "linux")) { - linux_load(cmdline); + linux_load(config, cmdline); } else if (!strcmp(proto, "chainload")) { - chainload(); + chainload(config); } else { panic("Invalid protocol specified"); } diff --git a/stage2/menu.c b/stage2/menu.c index cc31c4bb..b39520b8 100644 --- a/stage2/menu.c +++ b/stage2/menu.c @@ -16,20 +16,50 @@ static char *cmdline; #define CMDLINE_MAX 1024 -static char config_entry_name[1024]; +static int print_tree(int level, int base_index, int selected_entry, + struct menu_entry *current_entry, + struct menu_entry **selected_menu_entry) { + int max_entries = 0; + for (;;) { + if (current_entry == NULL) + break; + for (int i = 0; i < level; i++) + print(" "); + if (current_entry->sub) + print(current_entry->expanded ? "[-] " : "[+] "); + else + print(" "); + if (base_index + max_entries == selected_entry) { + *selected_menu_entry = current_entry; + print("\e[47m\e[30m"); + } + print(" %s \e[0m\n", current_entry->name); + if (current_entry->sub && current_entry->expanded) { + max_entries += print_tree(level + 1, base_index + max_entries + 1, + selected_entry, + current_entry->sub, + selected_menu_entry); + } + max_entries++; + current_entry = current_entry->next; + } + return max_entries; +} -char *menu(void) { +char *menu(char **cmdline_ret) { cmdline = conv_mem_alloc(CMDLINE_MAX); char *buf = conv_mem_alloc(256); + struct menu_entry *selected_menu_entry; + int selected_entry = 0; - if (config_get_value(buf, 0, 16, "DEFAULT_ENTRY")) { + if (config_get_value(NULL, buf, 0, 16, "DEFAULT_ENTRY")) { selected_entry = (int)strtoui(buf, NULL, 10); } int timeout = 5; - if (config_get_value(buf, 0, 16, "TIMEOUT")) { + if (config_get_value(NULL, buf, 0, 16, "TIMEOUT")) { timeout = (int)strtoui(buf, NULL, 10); } @@ -37,7 +67,7 @@ char *menu(void) { goto autoboot; // If there is GRAPHICS config key and the value is "yes", enable graphics - if (config_get_value(buf, 0, 16, "GRAPHICS") && !strcmp(buf, "yes")) { + if (config_get_value(NULL, buf, 0, 16, "GRAPHICS") && !strcmp(buf, "yes")) { // default scheme int margin = 64; int margin_gradient = 20; @@ -52,8 +82,8 @@ char *menu(void) { 0x00aaaaaa // grey }; - if (config_get_value(buf, 0, 256, "THEME_COLOURS") - || config_get_value(buf, 0, 256, "THEME_COLORS")) { + if (config_get_value(NULL, buf, 0, 256, "THEME_COLOURS") + || config_get_value(NULL, buf, 0, 256, "THEME_COLORS")) { const char *first = buf; for (int i = 0; i < 8; i++) { const char *last; @@ -67,15 +97,15 @@ char *menu(void) { } } - if (config_get_value(buf, 0, 16, "THEME_MARGIN")) { + if (config_get_value(NULL, buf, 0, 16, "THEME_MARGIN")) { margin = (int)strtoui(buf, NULL, 10); } - if (config_get_value(buf, 0, 16, "THEME_MARGIN_GRADIENT")) { + if (config_get_value(NULL, buf, 0, 16, "THEME_MARGIN_GRADIENT")) { margin_gradient = (int)strtoui(buf, NULL, 10); } - if (!config_get_value(cmdline, 0, CMDLINE_MAX, "BACKGROUND_PATH")) + if (!config_get_value(NULL, cmdline, 0, CMDLINE_MAX, "BACKGROUND_PATH")) goto nobg; struct file_handle *bg_file = conv_mem_alloc(sizeof(struct file_handle)); @@ -98,24 +128,17 @@ char *menu(void) { disable_cursor(); bool skip_timeout = false; + if (menu_tree == NULL) + panic("Config contains no entries."); + refresh: clear(true); print("\n\n \e[36m Limine " LIMINE_VERSION " \e[37m\n\n\n"); print("Select an entry:\n\n"); - int max_entries; - for (max_entries = 0; ; max_entries++) { - if (config_get_entry_name(config_entry_name, max_entries, 1024) == -1) - break; - if (max_entries == selected_entry) - print(" \e[47m\e[30m %s \e[40m\e[37m\n", config_entry_name); - else - print(" %s\n", config_entry_name); - } - - if (max_entries == 0) - panic("Config contains no entries."); + int max_entries = print_tree(0, 0, selected_entry, menu_tree, + &selected_menu_entry); print("\nArrows to choose, enter to select, 'e' to edit command line."); @@ -148,27 +171,34 @@ timeout_aborted: goto refresh; case '\r': autoboot: - config_set_entry(selected_entry); + if (selected_menu_entry->sub != NULL) { + skip_timeout = true; + selected_menu_entry->expanded = !selected_menu_entry->expanded; + goto refresh; + } enable_cursor(); - if (!config_get_value(cmdline, 0, CMDLINE_MAX, "KERNEL_CMDLINE")) { - if (!config_get_value(cmdline, 0, CMDLINE_MAX, "CMDLINE")) { + if (!config_get_value(selected_menu_entry->body, cmdline, 0, CMDLINE_MAX, "KERNEL_CMDLINE")) { + if (!config_get_value(selected_menu_entry->body, cmdline, 0, CMDLINE_MAX, "CMDLINE")) { cmdline[0] = '\0'; } } clear(true); - return cmdline; + *cmdline_ret = cmdline; + return selected_menu_entry->body; case 'e': - config_set_entry(selected_entry); + if (selected_menu_entry->sub != NULL) + goto refresh; enable_cursor(); - if (!config_get_value(cmdline, 0, CMDLINE_MAX, "KERNEL_CMDLINE")) { - if (!config_get_value(cmdline, 0, CMDLINE_MAX, "CMDLINE")) { + if (!config_get_value(selected_menu_entry->body, cmdline, 0, CMDLINE_MAX, "KERNEL_CMDLINE")) { + if (!config_get_value(selected_menu_entry->body, cmdline, 0, CMDLINE_MAX, "CMDLINE")) { cmdline[0] = '\0'; } } print("\n\n> "); readline(cmdline, cmdline, CMDLINE_MAX); clear(true); - return cmdline; + *cmdline_ret = cmdline; + return selected_menu_entry->body; } } } diff --git a/stage2/menu.h b/stage2/menu.h index 8d04432f..5c93301b 100644 --- a/stage2/menu.h +++ b/stage2/menu.h @@ -1,6 +1,6 @@ #ifndef __MENU_H__ #define __MENU_H__ -char *menu(void); +char *menu(char **cmdline_ret); #endif diff --git a/stage2/protos/chainload.c b/stage2/protos/chainload.c index 5281080f..a97a0580 100644 --- a/stage2/protos/chainload.c +++ b/stage2/protos/chainload.c @@ -46,12 +46,12 @@ static void spinup(uint8_t drive) { ); } -void chainload(void) { +void chainload(char *config) { uint64_t val; int part; { char buf[32]; - if (!config_get_value(buf, 0, 32, "PARTITION")) { + if (!config_get_value(config, buf, 0, 32, "PARTITION")) { part = -1; } else { val = strtoui(buf, NULL, 10); @@ -63,7 +63,7 @@ void chainload(void) { } int drive; { char buf[32]; - if (!config_get_value(buf, 0, 32, "DRIVE")) { + if (!config_get_value(config, buf, 0, 32, "DRIVE")) { panic("DRIVE not specified"); } val = strtoui(buf, NULL, 10); diff --git a/stage2/protos/chainload.h b/stage2/protos/chainload.h index 43621937..13e2d9e6 100644 --- a/stage2/protos/chainload.h +++ b/stage2/protos/chainload.h @@ -1,6 +1,6 @@ #ifndef __PROTOS__CHAINLOAD_H__ #define __PROTOS__CHAINLOAD_H__ -void chainload(void); +void chainload(char *config); #endif diff --git a/stage2/protos/linux.c b/stage2/protos/linux.c index dedb4777..8a7cf6fd 100644 --- a/stage2/protos/linux.c +++ b/stage2/protos/linux.c @@ -52,11 +52,11 @@ static void spinup(uint16_t real_mode_code_seg, uint16_t kernel_entry_seg) { ); } -void linux_load(char *cmdline) { +void linux_load(char *config, char *cmdline) { char buf[128]; struct file_handle *kernel = conv_mem_alloc(sizeof(struct file_handle)); - if (!config_get_value(buf, 0, 128, "KERNEL_PATH")) + if (!config_get_value(config, buf, 0, 128, "KERNEL_PATH")) panic("KERNEL_PATH not specified"); if (!uri_open(kernel, buf)) @@ -130,7 +130,7 @@ void linux_load(char *cmdline) { size_t modules_mem_base = INITRD_LOAD_ADDR; for (size_t i = 0; ; i++) { char module_path[64]; - if (!config_get_value(module_path, i, 64, "MODULE_PATH")) + if (!config_get_value(config, module_path, i, 64, "MODULE_PATH")) break; struct file_handle module; diff --git a/stage2/protos/linux.h b/stage2/protos/linux.h index 6ddec45d..395fd3b7 100644 --- a/stage2/protos/linux.h +++ b/stage2/protos/linux.h @@ -1,8 +1,6 @@ #ifndef __PROTOS__LINUX_H__ #define __PROTOS__LINUX_H__ -#include - -void linux_load(char *cmdline); +void linux_load(char *config, char *cmdline); #endif diff --git a/stage2/protos/stivale.c b/stage2/protos/stivale.c index a5f96dfc..6c390dd6 100644 --- a/stage2/protos/stivale.c +++ b/stage2/protos/stivale.c @@ -25,14 +25,14 @@ struct stivale_struct stivale_struct = {0}; -void stivale_load(char *cmdline) { +void stivale_load(char *config, char *cmdline) { char buf[128]; stivale_struct.flags |= (1 << 0); // set bit 0 since we are BIOS and not UEFI struct file_handle *kernel = conv_mem_alloc(sizeof(struct file_handle)); - if (!config_get_value(buf, 0, 128, "KERNEL_PATH")) + if (!config_get_value(config, buf, 0, 128, "KERNEL_PATH")) panic("KERNEL_PATH not specified"); if (!uri_open(kernel, buf)) @@ -117,14 +117,14 @@ void stivale_load(char *cmdline) { uint64_t *prev_mod_ptr = &stivale_struct.modules; for (int i = 0; ; i++) { char module_file[64]; - if (!config_get_value(module_file, i, 64, "MODULE_PATH")) + if (!config_get_value(config, module_file, i, 64, "MODULE_PATH")) break; stivale_struct.module_count++; struct stivale_module *m = conv_mem_alloc(sizeof(struct stivale_module)); - if (!config_get_value(m->string, i, 128, "MODULE_STRING")) { + if (!config_get_value(config, m->string, i, 128, "MODULE_STRING")) { m->string[0] = '\0'; } @@ -171,7 +171,7 @@ void stivale_load(char *cmdline) { int req_height = stivale_hdr.framebuffer_height; int req_bpp = stivale_hdr.framebuffer_bpp; - if (config_get_value(buf, 0, 128, "RESOLUTION")) + if (config_get_value(config, buf, 0, 128, "RESOLUTION")) parse_resolution(&req_width, &req_height, &req_bpp, buf); struct vbe_framebuffer_info fbinfo; diff --git a/stage2/protos/stivale.h b/stage2/protos/stivale.h index 21822011..0f73be36 100644 --- a/stage2/protos/stivale.h +++ b/stage2/protos/stivale.h @@ -6,7 +6,7 @@ #include #include -void stivale_load(char *cmdline); +void stivale_load(char *config, char *cmdline); pagemap_t stivale_build_pagemap(bool level5pg); __attribute__((noreturn)) void stivale_spinup( diff --git a/stage2/protos/stivale2.c b/stage2/protos/stivale2.c index 9addfabe..9d77aae6 100644 --- a/stage2/protos/stivale2.c +++ b/stage2/protos/stivale2.c @@ -50,12 +50,12 @@ static void append_tag(struct stivale2_struct *s, struct stivale2_tag *tag) { s->tags = (uint64_t)(size_t)tag; } -void stivale2_load(char *cmdline) { +void stivale2_load(char *config, char *cmdline) { char buf[128]; struct file_handle *kernel = conv_mem_alloc(sizeof(struct file_handle)); - if (!config_get_value(buf, 0, 128, "KERNEL_PATH")) + if (!config_get_value(config, buf, 0, 128, "KERNEL_PATH")) panic("KERNEL_PATH not specified"); if (!uri_open(kernel, buf)) @@ -158,7 +158,7 @@ void stivale2_load(char *cmdline) { size_t module_count; for (module_count = 0; ; module_count++) { char module_file[64]; - if (!config_get_value(module_file, module_count, 64, "MODULE_PATH")) + if (!config_get_value(config, module_file, module_count, 64, "MODULE_PATH")) break; } @@ -171,12 +171,12 @@ void stivale2_load(char *cmdline) { for (int i = 0; ; i++) { char module_file[64]; - if (!config_get_value(module_file, i, 64, "MODULE_PATH")) + if (!config_get_value(config, module_file, i, 64, "MODULE_PATH")) break; struct stivale2_module *m = &tag->modules[i]; - if (!config_get_value(m->string, i, 128, "MODULE_STRING")) { + if (!config_get_value(config, m->string, i, 128, "MODULE_STRING")) { m->string[0] = '\0'; } @@ -258,7 +258,7 @@ void stivale2_load(char *cmdline) { int req_height = hdrtag->framebuffer_height; int req_bpp = hdrtag->framebuffer_bpp; - if (config_get_value(buf, 0, 128, "RESOLUTION")) + if (config_get_value(config, buf, 0, 128, "RESOLUTION")) parse_resolution(&req_width, &req_height, &req_bpp, buf); struct vbe_framebuffer_info fbinfo; diff --git a/stage2/protos/stivale2.h b/stage2/protos/stivale2.h index 68f66066..bc1b519d 100644 --- a/stage2/protos/stivale2.h +++ b/stage2/protos/stivale2.h @@ -1,6 +1,6 @@ #ifndef __PROTOS__STIVALE2_H__ #define __PROTOS__STIVALE2_H__ -void stivale2_load(char *cmdline); +void stivale2_load(char *config, char *cmdline); #endif diff --git a/test/limine.cfg b/test/limine.cfg index da6cfcd1..c1cd3dd5 100644 --- a/test/limine.cfg +++ b/test/limine.cfg @@ -10,7 +10,69 @@ THEME_MARGIN=64 BACKGROUND_PATH=bios://:1/boot/bg.bmp -:Stivale Test +:Legacy + +::12345 +PROTOCOL=stivale +KERNEL_PATH=guid://@GUID@/boot/test.elf +KERNEL_CMDLINE=Hi! This is an example! + +MODULE_PATH=bios://:1/boot/test.elf +MODULE_STRING=yooooo + +::Stivale Test + +PROTOCOL=stivale +KERNEL_PATH=bios://:1/boot/test.elf +KERNEL_CMDLINE=Hi! This is an example! + +MODULE_PATH=bios://:1/boot/test.elf +MODULE_STRING=yooooo + +MODULE_PATH=bios://:1/boot/bg.bmp +MODULE_STRING=yooooo + +::123456 + +:::Stivale Test + +PROTOCOL=stivale +KERNEL_PATH=bios://:1/boot/test.elf +KERNEL_CMDLINE=Hi! This is an example! + +MODULE_PATH=bios://:1/boot/test.elf +MODULE_STRING=yooooo + +MODULE_PATH=bios://:1/boot/bg.bmp +MODULE_STRING=yooooo + +:::123123123 + +PROTOCOL=stivale +KERNEL_PATH=bios://:1/boot/test.elf +KERNEL_CMDLINE=Hi! This is an example! + +MODULE_PATH=bios://:1/boot/test.elf +MODULE_STRING=yooooo + +MODULE_PATH=bios://:1/boot/bg.bmp +MODULE_STRING=yooooo + +:::foo + +::::bar + +PROTOCOL=stivale +KERNEL_PATH=bios://:1/boot/test.elf +KERNEL_CMDLINE=Hi! This is an example! + +MODULE_PATH=bios://:1/boot/test.elf +MODULE_STRING=yooooo + +MODULE_PATH=bios://:1/boot/bg.bmp +MODULE_STRING=yooooo + +::Stivale Test PROTOCOL=stivale KERNEL_PATH=bios://:1/boot/test.elf