updated guest kernel patch for qemu-fast (Martin Koniczek)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1170 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
		
							parent
							
								
									6a78ece5c5
								
							
						
					
					
						commit
						a483b654b5
					
				| 
						 | 
				
			
			@ -1,305 +0,0 @@
 | 
			
		|||
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/Kconfig .32324-linux-2.6.0.updated/arch/i386/Kconfig
 | 
			
		||||
--- .32324-linux-2.6.0/arch/i386/Kconfig	2003-10-09 18:02:48.000000000 +1000
 | 
			
		||||
+++ .32324-linux-2.6.0.updated/arch/i386/Kconfig	2003-12-26 16:46:49.000000000 +1100
 | 
			
		||||
@@ -307,6 +307,14 @@ config X86_GENERIC
 | 
			
		||||
 	  when it has moderate overhead. This is intended for generic 
 | 
			
		||||
 	  distributions kernels.
 | 
			
		||||
 
 | 
			
		||||
+config QEMU
 | 
			
		||||
+	bool "Kernel to run under QEMU"
 | 
			
		||||
+	depends on EXPERIMENTAL
 | 
			
		||||
+	help
 | 
			
		||||
+	  Select this if you want to boot the kernel inside qemu-fast,
 | 
			
		||||
+	  the non-mmu version of the x86 emulator.  See
 | 
			
		||||
+	  <http://fabrice.bellard.free.fr/qemu/>.  Say N.
 | 
			
		||||
+
 | 
			
		||||
 #
 | 
			
		||||
 # Define implied options from the CPU selection here
 | 
			
		||||
 #
 | 
			
		||||
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/kernel/Makefile .32324-linux-2.6.0.updated/arch/i386/kernel/Makefile
 | 
			
		||||
--- .32324-linux-2.6.0/arch/i386/kernel/Makefile	2003-09-29 10:25:15.000000000 +1000
 | 
			
		||||
+++ .32324-linux-2.6.0.updated/arch/i386/kernel/Makefile	2003-12-26 16:46:49.000000000 +1100
 | 
			
		||||
@@ -46,12 +46,14 @@ quiet_cmd_syscall = SYSCALL $@
 | 
			
		||||
       cmd_syscall = $(CC) -nostdlib $(SYSCFLAGS_$(@F)) \
 | 
			
		||||
 		          -Wl,-T,$(filter-out FORCE,$^) -o $@
 | 
			
		||||
 
 | 
			
		||||
+export AFLAGS_vsyscall.lds.o += -P -C -U$(ARCH)
 | 
			
		||||
+
 | 
			
		||||
 vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1
 | 
			
		||||
 SYSCFLAGS_vsyscall-sysenter.so	= $(vsyscall-flags)
 | 
			
		||||
 SYSCFLAGS_vsyscall-int80.so	= $(vsyscall-flags)
 | 
			
		||||
 
 | 
			
		||||
 $(obj)/vsyscall-int80.so $(obj)/vsyscall-sysenter.so: \
 | 
			
		||||
-$(obj)/vsyscall-%.so: $(src)/vsyscall.lds $(obj)/vsyscall-%.o FORCE
 | 
			
		||||
+$(obj)/vsyscall-%.so: $(src)/vsyscall.lds.s $(obj)/vsyscall-%.o FORCE
 | 
			
		||||
 	$(call if_changed,syscall)
 | 
			
		||||
 
 | 
			
		||||
 # We also create a special relocatable object that should mirror the symbol
 | 
			
		||||
@@ -62,5 +64,5 @@ $(obj)/built-in.o: $(obj)/vsyscall-syms.
 | 
			
		||||
 $(obj)/built-in.o: ld_flags += -R $(obj)/vsyscall-syms.o
 | 
			
		||||
 
 | 
			
		||||
 SYSCFLAGS_vsyscall-syms.o = -r
 | 
			
		||||
-$(obj)/vsyscall-syms.o: $(src)/vsyscall.lds $(obj)/vsyscall-sysenter.o FORCE
 | 
			
		||||
+$(obj)/vsyscall-syms.o: $(src)/vsyscall.lds.s $(obj)/vsyscall-sysenter.o FORCE
 | 
			
		||||
 	$(call if_changed,syscall)
 | 
			
		||||
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/kernel/vmlinux.lds.S .32324-linux-2.6.0.updated/arch/i386/kernel/vmlinux.lds.S
 | 
			
		||||
--- .32324-linux-2.6.0/arch/i386/kernel/vmlinux.lds.S	2003-09-22 10:27:28.000000000 +1000
 | 
			
		||||
+++ .32324-linux-2.6.0.updated/arch/i386/kernel/vmlinux.lds.S	2003-12-26 16:46:49.000000000 +1100
 | 
			
		||||
@@ -3,6 +3,7 @@
 | 
			
		||||
  */
 | 
			
		||||
 
 | 
			
		||||
 #include <asm-generic/vmlinux.lds.h>
 | 
			
		||||
+#include <asm/page.h>
 | 
			
		||||
 	
 | 
			
		||||
 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
 | 
			
		||||
 OUTPUT_ARCH(i386)
 | 
			
		||||
@@ -10,7 +11,7 @@ ENTRY(startup_32)
 | 
			
		||||
 jiffies = jiffies_64;
 | 
			
		||||
 SECTIONS
 | 
			
		||||
 {
 | 
			
		||||
-  . = 0xC0000000 + 0x100000;
 | 
			
		||||
+  . = __PAGE_OFFSET + 0x100000;
 | 
			
		||||
   /* read-only */
 | 
			
		||||
   _text = .;			/* Text and read-only data */
 | 
			
		||||
   .text : {
 | 
			
		||||
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/kernel/vsyscall.lds .32324-linux-2.6.0.updated/arch/i386/kernel/vsyscall.lds
 | 
			
		||||
--- .32324-linux-2.6.0/arch/i386/kernel/vsyscall.lds	2003-09-22 10:07:26.000000000 +1000
 | 
			
		||||
+++ .32324-linux-2.6.0.updated/arch/i386/kernel/vsyscall.lds	1970-01-01 10:00:00.000000000 +1000
 | 
			
		||||
@@ -1,67 +0,0 @@
 | 
			
		||||
-/*
 | 
			
		||||
- * Linker script for vsyscall DSO.  The vsyscall page is an ELF shared
 | 
			
		||||
- * object prelinked to its virtual address, and with only one read-only
 | 
			
		||||
- * segment (that fits in one page).  This script controls its layout.
 | 
			
		||||
- */
 | 
			
		||||
-
 | 
			
		||||
-/* This must match <asm/fixmap.h>.  */
 | 
			
		||||
-VSYSCALL_BASE = 0xffffe000;
 | 
			
		||||
-
 | 
			
		||||
-SECTIONS
 | 
			
		||||
-{
 | 
			
		||||
-  . = VSYSCALL_BASE + SIZEOF_HEADERS;
 | 
			
		||||
-
 | 
			
		||||
-  .hash           : { *(.hash) }		:text
 | 
			
		||||
-  .dynsym         : { *(.dynsym) }
 | 
			
		||||
-  .dynstr         : { *(.dynstr) }
 | 
			
		||||
-  .gnu.version    : { *(.gnu.version) }
 | 
			
		||||
-  .gnu.version_d  : { *(.gnu.version_d) }
 | 
			
		||||
-  .gnu.version_r  : { *(.gnu.version_r) }
 | 
			
		||||
-
 | 
			
		||||
-  /* This linker script is used both with -r and with -shared.
 | 
			
		||||
-     For the layouts to match, we need to skip more than enough
 | 
			
		||||
-     space for the dynamic symbol table et al.  If this amount
 | 
			
		||||
-     is insufficient, ld -shared will barf.  Just increase it here.  */
 | 
			
		||||
-  . = VSYSCALL_BASE + 0x400;
 | 
			
		||||
-
 | 
			
		||||
-  .text           : { *(.text) }		:text =0x90909090
 | 
			
		||||
-
 | 
			
		||||
-  .eh_frame_hdr   : { *(.eh_frame_hdr) }	:text :eh_frame_hdr
 | 
			
		||||
-  .eh_frame       : { KEEP (*(.eh_frame)) }	:text
 | 
			
		||||
-  .dynamic        : { *(.dynamic) }		:text :dynamic
 | 
			
		||||
-  .useless        : {
 | 
			
		||||
-  	*(.got.plt) *(.got)
 | 
			
		||||
-	*(.data .data.* .gnu.linkonce.d.*)
 | 
			
		||||
-	*(.dynbss)
 | 
			
		||||
-	*(.bss .bss.* .gnu.linkonce.b.*)
 | 
			
		||||
-  }						:text
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
-/*
 | 
			
		||||
- * We must supply the ELF program headers explicitly to get just one
 | 
			
		||||
- * PT_LOAD segment, and set the flags explicitly to make segments read-only.
 | 
			
		||||
- */
 | 
			
		||||
-PHDRS
 | 
			
		||||
-{
 | 
			
		||||
-  text PT_LOAD FILEHDR PHDRS FLAGS(5); /* PF_R|PF_X */
 | 
			
		||||
-  dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
 | 
			
		||||
-  eh_frame_hdr 0x6474e550; /* PT_GNU_EH_FRAME, but ld doesn't match the name */
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
-/*
 | 
			
		||||
- * This controls what symbols we export from the DSO.
 | 
			
		||||
- */
 | 
			
		||||
-VERSION
 | 
			
		||||
-{
 | 
			
		||||
-  LINUX_2.5 {
 | 
			
		||||
-    global:
 | 
			
		||||
-    	__kernel_vsyscall;
 | 
			
		||||
-    	__kernel_sigreturn;
 | 
			
		||||
-    	__kernel_rt_sigreturn;
 | 
			
		||||
-
 | 
			
		||||
-    local: *;
 | 
			
		||||
-  };
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
-/* The ELF entry point can be used to set the AT_SYSINFO value.  */
 | 
			
		||||
-ENTRY(__kernel_vsyscall);
 | 
			
		||||
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/kernel/vsyscall.lds.S .32324-linux-2.6.0.updated/arch/i386/kernel/vsyscall.lds.S
 | 
			
		||||
--- .32324-linux-2.6.0/arch/i386/kernel/vsyscall.lds.S	1970-01-01 10:00:00.000000000 +1000
 | 
			
		||||
+++ .32324-linux-2.6.0.updated/arch/i386/kernel/vsyscall.lds.S	2003-12-26 16:46:49.000000000 +1100
 | 
			
		||||
@@ -0,0 +1,67 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ * Linker script for vsyscall DSO.  The vsyscall page is an ELF shared
 | 
			
		||||
+ * object prelinked to its virtual address, and with only one read-only
 | 
			
		||||
+ * segment (that fits in one page).  This script controls its layout.
 | 
			
		||||
+ */
 | 
			
		||||
+#include <asm/fixmap.h>
 | 
			
		||||
+	
 | 
			
		||||
+VSYSCALL_BASE = __FIXADDR_TOP - 0x1000;
 | 
			
		||||
+
 | 
			
		||||
+SECTIONS
 | 
			
		||||
+{
 | 
			
		||||
+  . = VSYSCALL_BASE + SIZEOF_HEADERS;
 | 
			
		||||
+
 | 
			
		||||
+  .hash           : { *(.hash) }		:text
 | 
			
		||||
+  .dynsym         : { *(.dynsym) }
 | 
			
		||||
+  .dynstr         : { *(.dynstr) }
 | 
			
		||||
+  .gnu.version    : { *(.gnu.version) }
 | 
			
		||||
+  .gnu.version_d  : { *(.gnu.version_d) }
 | 
			
		||||
+  .gnu.version_r  : { *(.gnu.version_r) }
 | 
			
		||||
+
 | 
			
		||||
+  /* This linker script is used both with -r and with -shared.
 | 
			
		||||
+     For the layouts to match, we need to skip more than enough
 | 
			
		||||
+     space for the dynamic symbol table et al.  If this amount
 | 
			
		||||
+     is insufficient, ld -shared will barf.  Just increase it here.  */
 | 
			
		||||
+  . = VSYSCALL_BASE + 0x400;
 | 
			
		||||
+
 | 
			
		||||
+  .text           : { *(.text) }		:text =0x90909090
 | 
			
		||||
+
 | 
			
		||||
+  .eh_frame_hdr   : { *(.eh_frame_hdr) }	:text :eh_frame_hdr
 | 
			
		||||
+  .eh_frame       : { KEEP (*(.eh_frame)) }	:text
 | 
			
		||||
+  .dynamic        : { *(.dynamic) }		:text :dynamic
 | 
			
		||||
+  .useless        : {
 | 
			
		||||
+  	*(.got.plt) *(.got)
 | 
			
		||||
+	*(.data .data.* .gnu.linkonce.d.*)
 | 
			
		||||
+	*(.dynbss)
 | 
			
		||||
+	*(.bss .bss.* .gnu.linkonce.b.*)
 | 
			
		||||
+  }						:text
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+/*
 | 
			
		||||
+ * We must supply the ELF program headers explicitly to get just one
 | 
			
		||||
+ * PT_LOAD segment, and set the flags explicitly to make segments read-only.
 | 
			
		||||
+ */
 | 
			
		||||
+PHDRS
 | 
			
		||||
+{
 | 
			
		||||
+  text PT_LOAD FILEHDR PHDRS FLAGS(5); /* PF_R|PF_X */
 | 
			
		||||
+  dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
 | 
			
		||||
+  eh_frame_hdr 0x6474e550; /* PT_GNU_EH_FRAME, but ld doesn't match the name */
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+/*
 | 
			
		||||
+ * This controls what symbols we export from the DSO.
 | 
			
		||||
+ */
 | 
			
		||||
+VERSION
 | 
			
		||||
+{
 | 
			
		||||
+  LINUX_2.5 {
 | 
			
		||||
+    global:
 | 
			
		||||
+    	__kernel_vsyscall;
 | 
			
		||||
+    	__kernel_sigreturn;
 | 
			
		||||
+    	__kernel_rt_sigreturn;
 | 
			
		||||
+
 | 
			
		||||
+    local: *;
 | 
			
		||||
+  };
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+/* The ELF entry point can be used to set the AT_SYSINFO value.  */
 | 
			
		||||
+ENTRY(__kernel_vsyscall);
 | 
			
		||||
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/include/asm-i386/fixmap.h .32324-linux-2.6.0.updated/include/asm-i386/fixmap.h
 | 
			
		||||
--- .32324-linux-2.6.0/include/asm-i386/fixmap.h	2003-09-22 10:09:12.000000000 +1000
 | 
			
		||||
+++ .32324-linux-2.6.0.updated/include/asm-i386/fixmap.h	2003-12-26 16:46:49.000000000 +1100
 | 
			
		||||
@@ -14,6 +14,19 @@
 | 
			
		||||
 #define _ASM_FIXMAP_H
 | 
			
		||||
 
 | 
			
		||||
 #include <linux/config.h>
 | 
			
		||||
+
 | 
			
		||||
+/* used by vmalloc.c, vsyscall.lds.S.
 | 
			
		||||
+ *
 | 
			
		||||
+ * Leave one empty page between vmalloc'ed areas and
 | 
			
		||||
+ * the start of the fixmap.
 | 
			
		||||
+ */
 | 
			
		||||
+#ifdef CONFIG_QEMU
 | 
			
		||||
+#define __FIXADDR_TOP	0xa7fff000
 | 
			
		||||
+#else
 | 
			
		||||
+#define __FIXADDR_TOP	0xfffff000
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
+#ifndef __ASSEMBLY__
 | 
			
		||||
 #include <linux/kernel.h>
 | 
			
		||||
 #include <asm/acpi.h>
 | 
			
		||||
 #include <asm/apicdef.h>
 | 
			
		||||
@@ -94,13 +107,8 @@ extern void __set_fixmap (enum fixed_add
 | 
			
		||||
 #define clear_fixmap(idx) \
 | 
			
		||||
 		__set_fixmap(idx, 0, __pgprot(0))
 | 
			
		||||
 
 | 
			
		||||
-/*
 | 
			
		||||
- * used by vmalloc.c.
 | 
			
		||||
- *
 | 
			
		||||
- * Leave one empty page between vmalloc'ed areas and
 | 
			
		||||
- * the start of the fixmap.
 | 
			
		||||
- */
 | 
			
		||||
-#define FIXADDR_TOP	(0xfffff000UL)
 | 
			
		||||
+#define FIXADDR_TOP	((unsigned long)__FIXADDR_TOP)
 | 
			
		||||
+
 | 
			
		||||
 #define __FIXADDR_SIZE	(__end_of_permanent_fixed_addresses << PAGE_SHIFT)
 | 
			
		||||
 #define FIXADDR_START	(FIXADDR_TOP - __FIXADDR_SIZE)
 | 
			
		||||
 
 | 
			
		||||
@@ -145,4 +153,5 @@ static inline unsigned long virt_to_fix(
 | 
			
		||||
 	return __virt_to_fix(vaddr);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+#endif /* !__ASSEMBLY__ */
 | 
			
		||||
 #endif
 | 
			
		||||
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/include/asm-i386/page.h .32324-linux-2.6.0.updated/include/asm-i386/page.h
 | 
			
		||||
--- .32324-linux-2.6.0/include/asm-i386/page.h	2003-09-22 10:06:42.000000000 +1000
 | 
			
		||||
+++ .32324-linux-2.6.0.updated/include/asm-i386/page.h	2003-12-26 16:46:49.000000000 +1100
 | 
			
		||||
@@ -10,10 +10,10 @@
 | 
			
		||||
 #define LARGE_PAGE_SIZE (1UL << PMD_SHIFT)
 | 
			
		||||
 
 | 
			
		||||
 #ifdef __KERNEL__
 | 
			
		||||
-#ifndef __ASSEMBLY__
 | 
			
		||||
-
 | 
			
		||||
 #include <linux/config.h>
 | 
			
		||||
 
 | 
			
		||||
+#ifndef __ASSEMBLY__
 | 
			
		||||
+
 | 
			
		||||
 #ifdef CONFIG_X86_USE_3DNOW
 | 
			
		||||
 
 | 
			
		||||
 #include <asm/mmx.h>
 | 
			
		||||
@@ -115,12 +115,19 @@ static __inline__ int get_order(unsigned
 | 
			
		||||
 #endif /* __ASSEMBLY__ */
 | 
			
		||||
 
 | 
			
		||||
 #ifdef __ASSEMBLY__
 | 
			
		||||
+#ifdef CONFIG_QEMU
 | 
			
		||||
+#define __PAGE_OFFSET		(0x90000000)
 | 
			
		||||
+#else
 | 
			
		||||
 #define __PAGE_OFFSET		(0xC0000000)
 | 
			
		||||
+#endif /* QEMU */
 | 
			
		||||
+#else
 | 
			
		||||
+#ifdef CONFIG_QEMU
 | 
			
		||||
+#define __PAGE_OFFSET		(0x90000000UL)
 | 
			
		||||
 #else
 | 
			
		||||
 #define __PAGE_OFFSET		(0xC0000000UL)
 | 
			
		||||
+#endif /* QEMU */
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
-
 | 
			
		||||
 #define PAGE_OFFSET		((unsigned long)__PAGE_OFFSET)
 | 
			
		||||
 #define VMALLOC_RESERVE		((unsigned long)__VMALLOC_RESERVE)
 | 
			
		||||
 #define MAXMEM			(-__PAGE_OFFSET-__VMALLOC_RESERVE)
 | 
			
		||||
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/include/asm-i386/param.h .32324-linux-2.6.0.updated/include/asm-i386/param.h
 | 
			
		||||
--- .32324-linux-2.6.0/include/asm-i386/param.h	2003-09-21 17:26:06.000000000 +1000
 | 
			
		||||
+++ .32324-linux-2.6.0.updated/include/asm-i386/param.h	2003-12-26 16:46:49.000000000 +1100
 | 
			
		||||
@@ -2,7 +2,12 @@
 | 
			
		||||
 #define _ASMi386_PARAM_H
 | 
			
		||||
 
 | 
			
		||||
 #ifdef __KERNEL__
 | 
			
		||||
-# define HZ		1000		/* Internal kernel timer frequency */
 | 
			
		||||
+# include <linux/config.h>
 | 
			
		||||
+# ifdef CONFIG_QEMU
 | 
			
		||||
+#  define HZ		100
 | 
			
		||||
+# else
 | 
			
		||||
+#  define HZ		1000		/* Internal kernel timer frequency */
 | 
			
		||||
+# endif
 | 
			
		||||
 # define USER_HZ	100		/* .. some user interfaces are in "ticks" */
 | 
			
		||||
 # define CLOCKS_PER_SEC	(USER_HZ)	/* like times() */
 | 
			
		||||
 #endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,70 @@
 | 
			
		|||
--- linux-2.6.9/arch/i386/Kconfig	2004-10-18 23:53:22.000000000 +0200
 | 
			
		||||
+++ linux-2.6.9-qemu/arch/i386/Kconfig	2004-12-07 21:56:49.000000000 +0100
 | 
			
		||||
@@ -337,6 +337,14 @@ config X86_GENERIC
 | 
			
		||||
 
 | 
			
		||||
 endif
 | 
			
		||||
 
 | 
			
		||||
+config QEMU
 | 
			
		||||
+	bool "Kernel to run under QEMU"
 | 
			
		||||
+	depends on EXPERIMENTAL
 | 
			
		||||
+	help
 | 
			
		||||
+	  Select this if you want to boot the kernel inside qemu-fast,
 | 
			
		||||
+	  the non-mmu version of the x86 emulator.  See
 | 
			
		||||
+	  <http://fabrice.bellard.free.fr/qemu/>.  Say N.
 | 
			
		||||
+
 | 
			
		||||
 #
 | 
			
		||||
 # Define implied options from the CPU selection here
 | 
			
		||||
 #
 | 
			
		||||
--- linux-2.6.9/include/asm-i386/fixmap.h	2004-10-18 23:53:08.000000000 +0200
 | 
			
		||||
+++ linux-2.6.9-qemu/include/asm-i386/fixmap.h	2004-12-07 23:16:11.000000000 +0100
 | 
			
		||||
@@ -20,7 +20,11 @@
 | 
			
		||||
  * Leave one empty page between vmalloc'ed areas and
 | 
			
		||||
  * the start of the fixmap.
 | 
			
		||||
  */
 | 
			
		||||
+#ifdef CONFIG_QEMU
 | 
			
		||||
+#define __FIXADDR_TOP   0xa7fff000
 | 
			
		||||
+#else
 | 
			
		||||
 #define __FIXADDR_TOP	0xfffff000
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #ifndef __ASSEMBLY__
 | 
			
		||||
 #include <linux/kernel.h>
 | 
			
		||||
--- linux-2.6.9/include/asm-i386/page.h	2004-10-18 23:53:22.000000000 +0200
 | 
			
		||||
+++ linux-2.6.9-qemu/include/asm-i386/page.h	2004-12-07 21:56:49.000000000 +0100
 | 
			
		||||
@@ -121,12 +121,19 @@ extern int sysctl_legacy_va_layout;
 | 
			
		||||
 #endif /* __ASSEMBLY__ */
 | 
			
		||||
 
 | 
			
		||||
 #ifdef __ASSEMBLY__
 | 
			
		||||
+#ifdef CONFIG_QEMU
 | 
			
		||||
+#define __PAGE_OFFSET		(0x90000000)
 | 
			
		||||
+#else
 | 
			
		||||
 #define __PAGE_OFFSET		(0xC0000000)
 | 
			
		||||
+#endif /* QEMU */
 | 
			
		||||
+#else
 | 
			
		||||
+#ifdef CONFIG_QEMU
 | 
			
		||||
+#define __PAGE_OFFSET		(0x90000000UL)
 | 
			
		||||
 #else
 | 
			
		||||
 #define __PAGE_OFFSET		(0xC0000000UL)
 | 
			
		||||
+#endif /* QEMU */
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
-
 | 
			
		||||
 #define PAGE_OFFSET		((unsigned long)__PAGE_OFFSET)
 | 
			
		||||
 #define VMALLOC_RESERVE		((unsigned long)__VMALLOC_RESERVE)
 | 
			
		||||
 #define MAXMEM			(-__PAGE_OFFSET-__VMALLOC_RESERVE)
 | 
			
		||||
--- linux-2.6.9/include/asm-i386/param.h	2004-10-18 23:53:24.000000000 +0200
 | 
			
		||||
+++ linux-2.6.9-qemu/include/asm-i386/param.h	2004-12-07 21:56:49.000000000 +0100
 | 
			
		||||
@@ -2,7 +2,12 @@
 | 
			
		||||
 #define _ASMi386_PARAM_H
 | 
			
		||||
 
 | 
			
		||||
 #ifdef __KERNEL__
 | 
			
		||||
-# define HZ		1000		/* Internal kernel timer frequency */
 | 
			
		||||
+# include <linux/config.h>
 | 
			
		||||
+# ifdef CONFIG_QEMU
 | 
			
		||||
+#  define HZ		100
 | 
			
		||||
+# else
 | 
			
		||||
+#  define HZ		1000		/* Internal kernel timer frequency */
 | 
			
		||||
+# endif
 | 
			
		||||
 # define USER_HZ	100		/* .. some user interfaces are in "ticks" */
 | 
			
		||||
 # define CLOCKS_PER_SEC		(USER_HZ)	/* like times() */
 | 
			
		||||
 #endif
 | 
			
		||||
		Loading…
	
		Reference in New Issue