aboutsummaryrefslogtreecommitdiffstats
path: root/grub-core/kern/mips/qemu-mips/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'grub-core/kern/mips/qemu-mips/init.c')
-rw-r--r--grub-core/kern/mips/qemu-mips/init.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/grub-core/kern/mips/qemu-mips/init.c b/grub-core/kern/mips/qemu-mips/init.c
new file mode 100644
index 0000000..f2bb652
--- /dev/null
+++ b/grub-core/kern/mips/qemu-mips/init.c
@@ -0,0 +1,58 @@
+#include <grub/kernel.h>
+#include <grub/misc.h>
+#include <grub/env.h>
+#include <grub/time.h>
+#include <grub/types.h>
+#include <grub/misc.h>
+#include <grub/mm.h>
+#include <grub/time.h>
+#include <grub/machine/kernel.h>
+#include <grub/machine/memory.h>
+#include <grub/cpu/kernel.h>
+
+#define RAMSIZE (*(grub_uint32_t *) ((16 << 20) - 264))
+
+grub_uint32_t
+grub_get_rtc (void)
+{
+ static int calln = 0;
+ return calln++;
+}
+
+void
+grub_machine_init (void)
+{
+ grub_mm_init_region ((void *) GRUB_MACHINE_MEMORY_USABLE,
+ RAMSIZE - (GRUB_MACHINE_MEMORY_USABLE & 0x7fffffff));
+ grub_install_get_time_ms (grub_rtc_get_time_ms);
+}
+
+void
+grub_machine_fini (void)
+{
+}
+
+void
+grub_exit (void)
+{
+ while (1);
+}
+
+void
+grub_halt (void)
+{
+ while (1);
+}
+
+void
+grub_reboot (void)
+{
+ while (1);
+}
+
+grub_err_t
+grub_machine_mmap_iterate (grub_memory_hook_t hook)
+{
+ hook (0, RAMSIZE, GRUB_MEMORY_AVAILABLE);
+ return GRUB_ERR_NONE;
+}