aboutsummaryrefslogtreecommitdiffstats
path: root/include
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 /include
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 'include')
-rw-r--r--include/asm-x86/lguest_hcall.h8
-rw-r--r--include/linux/lguest.h2
2 files changed, 6 insertions, 4 deletions
diff --git a/include/asm-x86/lguest_hcall.h b/include/asm-x86/lguest_hcall.h
index 7859cfe0ebb2..8f2a1edc4fe2 100644
--- a/include/asm-x86/lguest_hcall.h
+++ b/include/asm-x86/lguest_hcall.h
@@ -2,6 +2,8 @@
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
5#define LHCALL_FLUSH_ASYNC 0 7#define LHCALL_FLUSH_ASYNC 0
6#define LHCALL_LGUEST_INIT 1 8#define LHCALL_LGUEST_INIT 1
7#define LHCALL_CRASH 2 9#define LHCALL_CRASH 2
@@ -59,9 +61,9 @@ void async_hcall(unsigned long call,
59#define LGUEST_IRQS (NR_IRQS < 32 ? NR_IRQS: 32) 61#define LGUEST_IRQS (NR_IRQS < 32 ? NR_IRQS: 32)
60 62
61#define LHCALL_RING_SIZE 64 63#define LHCALL_RING_SIZE 64
62struct hcall_ring 64struct hcall_args
63{ 65{
64 u32 eax, edx, ebx, ecx; 66 /* These map directly onto eax, ebx, ecx, edx in struct lguest_regs */
67 unsigned long arg0, arg2, arg3, arg1;
65}; 68};
66
67#endif /* _I386_LGUEST_HCALL_H */ 69#endif /* _I386_LGUEST_HCALL_H */
diff --git a/include/linux/lguest.h b/include/linux/lguest.h
index 8e959deed412..ea335c8f86c3 100644
--- a/include/linux/lguest.h
+++ b/include/linux/lguest.h
@@ -36,7 +36,7 @@ struct lguest_data
36 /* 0xFF == done (set by Host), 0 == pending (set by Guest). */ 36 /* 0xFF == done (set by Host), 0 == pending (set by Guest). */
37 u8 hcall_status[LHCALL_RING_SIZE]; 37 u8 hcall_status[LHCALL_RING_SIZE];
38 /* The actual registers for the hypercalls. */ 38 /* The actual registers for the hypercalls. */
39 struct hcall_ring hcalls[LHCALL_RING_SIZE]; 39 struct hcall_args hcalls[LHCALL_RING_SIZE];
40 40
41/* Fields initialized by the Host at boot: */ 41/* Fields initialized by the Host at boot: */
42 /* Memory not to try to access */ 42 /* Memory not to try to access */