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>
This commit is contained in:
committed by
Rusty Russell
parent
cc6d4fbcef
commit
b410e7b149
@@ -146,10 +146,10 @@ void async_hcall(unsigned long call,
|
||||
/* Table full, so do normal hcall which will flush table. */
|
||||
hcall(call, arg1, arg2, arg3);
|
||||
} else {
|
||||
lguest_data.hcalls[next_call].eax = call;
|
||||
lguest_data.hcalls[next_call].edx = arg1;
|
||||
lguest_data.hcalls[next_call].ebx = arg2;
|
||||
lguest_data.hcalls[next_call].ecx = arg3;
|
||||
lguest_data.hcalls[next_call].arg0 = call;
|
||||
lguest_data.hcalls[next_call].arg1 = arg1;
|
||||
lguest_data.hcalls[next_call].arg2 = arg2;
|
||||
lguest_data.hcalls[next_call].arg3 = arg3;
|
||||
/* Arguments must all be written before we mark it to go */
|
||||
wmb();
|
||||
lguest_data.hcall_status[next_call] = 0;
|
||||
|
Reference in New Issue
Block a user