aboutsummaryrefslogtreecommitdiffstats
path: root/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel
diff options
context:
space:
mode:
authorjws@cairnwell.research <jws@cairnwell.research>2003-05-01 18:23:20 +0000
committerjws@cairnwell.research <jws@cairnwell.research>2003-05-01 18:23:20 +0000
commit4b150117e82021c58c9cda27d8c65a5b5974e076 (patch)
treeed088fda93698639aae596f81606a6248dbee5fa /xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel
parent4e45e54f52b94877c954fa96c2e878398ac1118b (diff)
downloadxen-4b150117e82021c58c9cda27d8c65a5b5974e076.tar.gz
xen-4b150117e82021c58c9cda27d8c65a5b5974e076.tar.bz2
xen-4b150117e82021c58c9cda27d8c65a5b5974e076.zip
bitkeeper revision 1.192.1.1 (3eb16618C2ePfMjC3p2SoqAYtLR0Kw)
Console support - next delta
Diffstat (limited to 'xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel')
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c
index b3fa27fb11..832a7a2087 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/setup.c
@@ -163,8 +163,16 @@ void __init setup_arch(char **cmdline_p)
ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
memset(&drive_info, 0, sizeof(drive_info));
memset(&screen_info, 0, sizeof(screen_info));
+ // this is drawn from a dump from vgacon:startup in standard linux
+ screen_info.orig_video_mode = 3;
+ screen_info.orig_video_isVGA = 1;
+ screen_info.orig_video_lines = 25;
+ screen_info.orig_video_cols = 80;
+ screen_info.orig_video_ega_bx = 3;
+ screen_info.orig_video_points = 16;
+
memset(&apm_info.bios, 0, sizeof(apm_info.bios));
- aux_device_present = 0;
+ aux_device_present = 0;
#ifdef CONFIG_BLK_DEV_RAM
rd_image_start = 0;
rd_prompt = 0;
@@ -292,6 +300,27 @@ void __init setup_arch(char **cmdline_p)
#endif
paging_init();
+
+ if(start_info.flags & SIF_PRIVILEGED) {
+ // we are privileged guest os - should be able to set IOPL
+ if(HYPERVISOR_iopl(1)) {
+ panic("Unable to obtain IOPL, despite being SIF_PRIVILEGED");
+ }
+
+ }
+
+ if(start_info.flags & SIF_CONSOLE) {
+ if(!(start_info.flags & SIF_PRIVILEGED)) {
+ panic("Xen granted us console access but not privileged status");
+ }
+#ifdef CONFIG_VT
+#if defined(CONFIG_VGA_CONSOLE)
+ conswitchp = &vga_con;
+#elif defined(CONFIG_DUMMY_CONSOLE)
+ conswitchp = &dummy_con;
+#endif
+#endif
+ }
}
static int cachesize_override __initdata = -1;