aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xen/multicall.h
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-11-25 17:24:07 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-11-25 17:24:07 +0000
commita8bcd6b668d01a28f6a14e4f2a96c84861605617 (patch)
tree9f7e825b788fb848b73d044cfc4f900b7620ae2c /xen/include/xen/multicall.h
parent3d833e2c3c1fb89e00e675746e59d6591d21e0a4 (diff)
downloadxen-a8bcd6b668d01a28f6a14e4f2a96c84861605617.tar.gz
xen-a8bcd6b668d01a28f6a14e4f2a96c84861605617.tar.bz2
xen-a8bcd6b668d01a28f6a14e4f2a96c84861605617.zip
bitkeeper revision 1.1159.187.15 (41a61537tODn12flBND8W6jum0b79Q)
Fix hypercall preemption. At the same time I reimplemented most of the multi-hypercall in arch-independent C code.
Diffstat (limited to 'xen/include/xen/multicall.h')
-rw-r--r--xen/include/xen/multicall.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/xen/include/xen/multicall.h b/xen/include/xen/multicall.h
new file mode 100644
index 0000000000..5982471330
--- /dev/null
+++ b/xen/include/xen/multicall.h
@@ -0,0 +1,21 @@
+/******************************************************************************
+ * multicall.h
+ */
+
+#ifndef __XEN_MULTICALL_H__
+#define __XEN_MULTICALL_H__
+
+#include <asm/multicall.h>
+
+#define _MCSF_in_multicall 0
+#define _MCSF_call_preempted 1
+#define MCSF_in_multicall (1<<_MCSF_in_multicall)
+#define MCSF_call_preempted (1<<_MCSF_call_preempted)
+struct mc_state {
+ unsigned long flags;
+ multicall_entry_t call;
+} __cacheline_aligned;
+
+extern struct mc_state mc_state[NR_CPUS];
+
+#endif /* __XEN_MULTICALL_H__ */