[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH 1/6] kernel2: fix Mulitboot-Info-Struktur



! multiboot.h: Pointer auf die Command-Line hat ist immer 32 Bit breit.
  Er darf also aus Kompatibilitätsgründen kein char* sein.

Signed-off-by: Andreas Freimuth <m.nemo@xxxxxxx>
---
 src/kernel2/include/multiboot.h | 2 +-
 src/kernel2/src/init.c          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/kernel2/include/multiboot.h b/src/kernel2/include/multiboot.h
index 8621d92..39f116f 100644
--- a/src/kernel2/include/multiboot.h
+++ b/src/kernel2/include/multiboot.h
@@ -103,7 +103,7 @@ struct multiboot_info {
     uint8_t     mi_boot_device_drive;
 
     /* Valid if mi_flags sets MULTIBOOT_INFO_HAS_CMDLINE. */
-    char*       mi_cmdline;
+    uint32_t    mi_cmdline;
 
     /* Valid if mi_flags sets MULTIBOOT_INFO_HAS_MODS. */
     uint32_t    mi_mods_count;
diff --git a/src/kernel2/src/init.c b/src/kernel2/src/init.c
index 732b8ca..d6332db 100644
--- a/src/kernel2/src/init.c
+++ b/src/kernel2/src/init.c
@@ -139,7 +139,7 @@ void init(int multiboot_magic, struct multiboot_info *boot_info, bool bsp)
         // Debugparameter verarbeiten, das ist aber nur moeglich, wenn eine
         // Kernelkommandozeile existiert.
         if ((multiboot_info.mi_flags & MULTIBOOT_INFO_HAS_CMDLINE) != 0) {
-            parse_cmdline(multiboot_info.mi_cmdline);
+            parse_cmdline((char*)(uintptr_t)multiboot_info.mi_cmdline);
         }
 
 #if CONFIG_ARCH == ARCH_I386
-- 
1.7.11.7