aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/lguest.h
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2007-10-21 21:03:36 -0400
committerRusty Russell <rusty@rustcorp.com.au>2007-10-23 01:49:54 -0400
commit47436aa4ad054c1c7c8231618e86ebd9305308dc (patch)
treea9ba6e0521f9116442144a86e781a3164ec86094 /include/linux/lguest.h
parentc18acd73ffc209def08003a1927473096f66c5ad (diff)
Boot with virtual == physical to get closer to native Linux.
1) This allows us to get alot closer to booting bzImages. 2) It means we don't have to know page_offset. 3) The Guest needs to modify the boot pagetables to create the PAGE_OFFSET mapping before jumping to C code. 4) guest_pa() walks the page tables rather than using page_offset. 5) We don't use page_offset to figure out whether to emulate: it was always kinda quesationable, and won't work for instructions done before remapping (bzImage unpacking in particular). 6) We still want the kernel address for tlb flushing: have the initial hypercall give us that, too. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'include/linux/lguest.h')
-rw-r--r--include/linux/lguest.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/lguest.h b/include/linux/lguest.h
index 083052236db9..8beb29134626 100644
--- a/include/linux/lguest.h
+++ b/include/linux/lguest.h
@@ -44,11 +44,14 @@ struct lguest_data
44 unsigned long reserve_mem; 44 unsigned long reserve_mem;
45 /* KHz for the TSC clock. */ 45 /* KHz for the TSC clock. */
46 u32 tsc_khz; 46 u32 tsc_khz;
47 /* Page where the top-level pagetable is */
48 unsigned long pgdir;
47 49
48/* Fields initialized by the Guest at boot: */ 50/* Fields initialized by the Guest at boot: */
49 /* Instruction range to suppress interrupts even if enabled */ 51 /* Instruction range to suppress interrupts even if enabled */
50 unsigned long noirq_start, noirq_end; 52 unsigned long noirq_start, noirq_end;
51 53 /* Address above which page tables are all identical. */
54 unsigned long kernel_address;
52 /* The vector to try to use for system calls (0x40 or 0x80). */ 55 /* The vector to try to use for system calls (0x40 or 0x80). */
53 unsigned int syscall_vec; 56 unsigned int syscall_vec;
54}; 57};