From f08246e1976e3ae483c2568e4e510cb3f2b6e44d Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 2 May 2006 09:12:39 +0100 Subject: Fix x86/64 version of Mini-OS. It encompasses the following: a) 64-bit switch_to scheduler macro (by Aravindh Puthiyaparambil) b) implements 64-bit hypervisor_callback c) fixes thread creation issues (thread_starter used to perform initialisation) Signed-off-by: Grzegorz Milos --- extras/mini-os/kernel.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'extras/mini-os/kernel.c') diff --git a/extras/mini-os/kernel.c b/extras/mini-os/kernel.c index f6120f27d9..3ac572a035 100644 --- a/extras/mini-os/kernel.c +++ b/extras/mini-os/kernel.c @@ -35,6 +35,8 @@ #include #include #include +#include +#include /* * Shared page for communicating with the hypervisor. @@ -85,6 +87,26 @@ static void init_xs(void *ign) test_xenbus(); } + +u8 xen_features[XENFEAT_NR_SUBMAPS * 32]; + +void setup_xen_features(void) +{ + xen_feature_info_t fi; + int i, j; + + for (i = 0; i < XENFEAT_NR_SUBMAPS; i++) + { + fi.submap_idx = i; + if (HYPERVISOR_xen_version(XENVER_get_features, &fi) < 0) + break; + + for (j=0; j<32; j++) + xen_features[i*32+j] = !!(fi.submap & 1<flags); printk(" cmd_line: %s\n", si->cmd_line ? (const char *)si->cmd_line : "NULL"); + printk(" stack: %p-%p\n", stack, stack + 8192); + setup_xen_features(); /* Init memory management. */ init_mm(); @@ -146,7 +170,7 @@ void start_kernel(start_info_t *si) /* Init XenBus from a separate thread */ create_thread("init_xs", init_xs, NULL); - + /* Everything initialised, start idle thread */ run_idle_thread(); } -- cgit v1.2.3