]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/bootstrap/server/src/loader_mbi.cc
update
[l4.git] / l4 / pkg / bootstrap / server / src / loader_mbi.cc
index a007479f76fec802ecb1bfaf1d2e947479c49442..9c070fbce6ed33c1bfa1f3d555038370be616bf5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
+ * (c) 2008-2013 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
  *               Alexander Warg <warg@os.inf.tu-dresden.de>
  *     economic rights: Technische Universität Dresden (Germany)
  *
 
 #include "loader_mbi.h"
 
-l4util_mb_info_t loader_mbi;
+static l4util_mb_info_t my_loader_mbi;
 
-l4util_mb_info_t *init_loader_mbi(void *realmode_pointer)
+l4util_mb_info_t *loader_mbi()
 {
-  loader_mbi.flags      = L4UTIL_MB_MEMORY;
-  loader_mbi.mem_lower  = 0x9f * 4;
+  return &my_loader_mbi;
+}
+
+void loader_mbi_add_cmdline(const char *cmdline)
+{
+  my_loader_mbi.cmdline = (l4_uint32_t)(unsigned long)cmdline;
+  my_loader_mbi.flags |= L4UTIL_MB_CMDLINE;
+}
+
+l4util_mb_info_t *init_loader_mbi_x86_realmode(void *realmode_pointer)
+{
+  my_loader_mbi.flags     |= L4UTIL_MB_MEMORY;
+  my_loader_mbi.mem_lower  = 0x9f * 4;
 
   unsigned long *cmd_line_ptr;
 
-  loader_mbi.mem_upper  = *(unsigned long *)((char *)realmode_pointer + 0x1e0);
-  printf("Detected memory size: %dKB\n", loader_mbi.mem_upper);
+  my_loader_mbi.mem_upper  = *(unsigned long *)((char *)realmode_pointer + 0x1e0);
+  printf("Detected memory size: %dKB\n", my_loader_mbi.mem_upper);
 
   cmd_line_ptr = (unsigned long *)((char *)realmode_pointer + 0x228);
   if (cmd_line_ptr && *cmd_line_ptr)
     {
-      loader_mbi.flags |= L4UTIL_MB_CMDLINE;
-      loader_mbi.cmdline = *cmd_line_ptr;
+      my_loader_mbi.flags |= L4UTIL_MB_CMDLINE;
+      my_loader_mbi.cmdline = *cmd_line_ptr;
     }
-  
-  return &loader_mbi;
+
+  return &my_loader_mbi;
 }