aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86
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/asm-x86
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/asm-x86')
-rw-r--r--include/asm-x86/lguest_hcall.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/asm-x86/lguest_hcall.h b/include/asm-x86/lguest_hcall.h
index 8f2a1edc4fe2..0c553ef36240 100644
--- a/include/asm-x86/lguest_hcall.h
+++ b/include/asm-x86/lguest_hcall.h
@@ -2,8 +2,6 @@
2#ifndef _X86_LGUEST_HCALL_H 2#ifndef _X86_LGUEST_HCALL_H
3#define _X86_LGUEST_HCALL_H 3#define _X86_LGUEST_HCALL_H
4 4
5#include <asm/hw_irq.h>
6
7#define LHCALL_FLUSH_ASYNC 0 5#define LHCALL_FLUSH_ASYNC 0
8#define LHCALL_LGUEST_INIT 1 6#define LHCALL_LGUEST_INIT 1
9#define LHCALL_CRASH 2 7#define LHCALL_CRASH 2
@@ -36,6 +34,9 @@
36 * definition of a gentleman: "someone who is only rude intentionally". */ 34 * definition of a gentleman: "someone who is only rude intentionally". */
37#define LGUEST_TRAP_ENTRY 0x1F 35#define LGUEST_TRAP_ENTRY 0x1F
38 36
37#ifndef __ASSEMBLY__
38#include <asm/hw_irq.h>
39
39static inline unsigned long 40static inline unsigned long
40hcall(unsigned long call, 41hcall(unsigned long call,
41 unsigned long arg1, unsigned long arg2, unsigned long arg3) 42 unsigned long arg1, unsigned long arg2, unsigned long arg3)
@@ -66,4 +67,6 @@ struct hcall_args
66 /* These map directly onto eax, ebx, ecx, edx in struct lguest_regs */ 67 /* These map directly onto eax, ebx, ecx, edx in struct lguest_regs */
67 unsigned long arg0, arg2, arg3, arg1; 68 unsigned long arg0, arg2, arg3, arg1;
68}; 69};
70
71#endif /* !__ASSEMBLY__ */
69#endif /* _I386_LGUEST_HCALL_H */ 72#endif /* _I386_LGUEST_HCALL_H */