diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2005-02-11 11:34:22 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2005-02-11 11:34:22 +0000 |
commit | ec0f4bdc22af71da6c69ddccc3445bc909c2ca6a (patch) | |
tree | 57c7c099e7c3f6d5072f31c08b8dedf687a24de1 /extras/mini-os/kernel.c | |
parent | 4e88d35838b90820c4b7bdbf7ba2704ed9cf555f (diff) | |
download | xen-ec0f4bdc22af71da6c69ddccc3445bc909c2ca6a.tar.gz xen-ec0f4bdc22af71da6c69ddccc3445bc909c2ca6a.tar.bz2 xen-ec0f4bdc22af71da6c69ddccc3445bc909c2ca6a.zip |
bitkeeper revision 1.1177.1.1 (420c983eSjbjDYGF-fYWrXw_L7qkLA)
Mini-OS cleanups. Bug fixes in x86_64 assembly code.
Signed-off-by: keir.fraser@cl.cam.ac.uk
Diffstat (limited to 'extras/mini-os/kernel.c')
-rw-r--r-- | extras/mini-os/kernel.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/extras/mini-os/kernel.c b/extras/mini-os/kernel.c index a9f423c192..a794145e68 100644 --- a/extras/mini-os/kernel.c +++ b/extras/mini-os/kernel.c @@ -64,8 +64,8 @@ extern char shared_info[PAGE_SIZE]; static shared_info_t *map_shared_info(unsigned long pa) { - if ( HYPERVISOR_update_va_mapping((unsigned long)shared_info >> PAGE_SHIFT, - pa | 3, UVMF_INVLPG) ) + if ( HYPERVISOR_update_va_mapping( + (unsigned long)shared_info, pa | 3, UVMF_INVLPG) ) { printk("Failed to map shared_info!!\n"); *(int*)0=0; @@ -79,6 +79,9 @@ static shared_info_t *map_shared_info(unsigned long pa) */ void start_kernel(start_info_t *si) { + static char hello[] = "Bootstrapping...\n"; + (void)HYPERVISOR_console_io(CONSOLEIO_write, strlen(hello), hello); + /* Copy the start_info struct to a globally-accessible area. */ memcpy(&start_info, si, sizeof(*si)); @@ -86,9 +89,15 @@ void start_kernel(start_info_t *si) HYPERVISOR_shared_info = map_shared_info(start_info.shared_info); /* Set up event and failsafe callback addresses. */ +#ifdef __i386__ HYPERVISOR_set_callbacks( __KERNEL_CS, (unsigned long)hypervisor_callback, __KERNEL_CS, (unsigned long)failsafe_callback); +#else + HYPERVISOR_set_callbacks( + (unsigned long)hypervisor_callback, + (unsigned long)failsafe_callback, 0); +#endif trap_init(); @@ -117,7 +126,7 @@ void start_kernel(start_info_t *si) init_mm(); /* set up events */ - init_events(); +// init_events(); /* * These need to be replaced with event-channel/control-interface @@ -135,7 +144,7 @@ void start_kernel(start_info_t *si) #endif /* init time and timers */ - init_time(); +// init_time(); /* do nothing */ for ( ; ; ) HYPERVISOR_yield(); |