aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJes Sorensen <jes@sgi.com>2007-10-21 21:03:31 -0400
committerRusty Russell <rusty@rustcorp.com.au>2007-10-23 01:49:52 -0400
commitb410e7b1499c49513cab18275db8a8ab549d9e09 (patch)
tree8a71fa34660f5ccc9d71677137c5ae211a38bbf2 /arch
parentcc6d4fbcef328acdc9fa7023e69f39f753f72fe1 (diff)
Make hypercalls arch-independent.
Clean up the hypercall code to make the code in hypercalls.c architecture independent. First process the common hypercalls and then call lguest_arch_do_hcall() if the call hasn't been handled. Rename struct hcall_ring to hcall_args. This patch requires the previous patch which reorganize the layout of struct lguest_regs on i386 so they match the layout of struct hcall_args. Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/lguest/boot.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index c7ebc131fe2c..1040f9b2f997 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -146,10 +146,10 @@ void async_hcall(unsigned long call,
146 /* Table full, so do normal hcall which will flush table. */ 146 /* Table full, so do normal hcall which will flush table. */
147 hcall(call, arg1, arg2, arg3); 147 hcall(call, arg1, arg2, arg3);
148 } else { 148 } else {
149 lguest_data.hcalls[next_call].eax = call; 149 lguest_data.hcalls[next_call].arg0 = call;
150 lguest_data.hcalls[next_call].edx = arg1; 150 lguest_data.hcalls[next_call].arg1 = arg1;
151 lguest_data.hcalls[next_call].ebx = arg2; 151 lguest_data.hcalls[next_call].arg2 = arg2;
152 lguest_data.hcalls[next_call].ecx = arg3; 152 lguest_data.hcalls[next_call].arg3 = arg3;
153 /* Arguments must all be written before we mark it to go */ 153 /* Arguments must all be written before we mark it to go */
154 wmb(); 154 wmb();
155 lguest_data.hcall_status[next_call] = 0; 155 lguest_data.hcall_status[next_call] = 0;