aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/kernel.c
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2005-02-11 11:34:22 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2005-02-11 11:34:22 +0000
commitec0f4bdc22af71da6c69ddccc3445bc909c2ca6a (patch)
tree57c7c099e7c3f6d5072f31c08b8dedf687a24de1 /extras/mini-os/kernel.c
parent4e88d35838b90820c4b7bdbf7ba2704ed9cf555f (diff)
downloadxen-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.c17
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();