aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>2012-03-14 09:47:05 +0000
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>2012-03-14 09:47:05 +0000
commit3bb0aad8ea63256359402126dd5030f55e954128 (patch)
tree3e14c5a7e3723eb99dd8b2700306d3a7078aaeec
parent75a57b635a632d50e548be322e5f6d33e4148e2c (diff)
downloadxen-3bb0aad8ea63256359402126dd5030f55e954128.tar.gz
xen-3bb0aad8ea63256359402126dd5030f55e954128.tar.bz2
xen-3bb0aad8ea63256359402126dd5030f55e954128.zip
arm: introduce more hypercalls
Implement xen_version, event_channel_op, memory_op sysctl and physdev_op hypercalls. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
-rw-r--r--xen/arch/arm/Makefile1
-rw-r--r--xen/arch/arm/physdev.c27
-rw-r--r--xen/arch/arm/traps.c5
-rw-r--r--xen/include/asm-arm/hypercall.h1
4 files changed, 34 insertions, 0 deletions
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 946a4ae48d..d5afb6ba9e 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -15,6 +15,7 @@ obj-y += mm.o
obj-y += p2m.o
obj-y += percpu.o
obj-y += guestcopy.o
+obj-y += physdev.o
obj-y += setup.o
obj-y += time.o
obj-y += smpboot.o
diff --git a/xen/arch/arm/physdev.c b/xen/arch/arm/physdev.c
new file mode 100644
index 0000000000..bcf43370a2
--- /dev/null
+++ b/xen/arch/arm/physdev.c
@@ -0,0 +1,27 @@
+/******************************************************************************
+ * Arch-specific physdev.c
+ *
+ * Copyright (c) 2012, Citrix Systems
+ */
+
+#include <xen/config.h>
+#include <xen/types.h>
+#include <xen/lib.h>
+#include <xen/errno.h>
+#include <asm/hypercall.h>
+
+
+int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+{
+ printk("%s %d cmd=%d: not implemented yet\n", __func__, __LINE__, cmd);
+ return -ENOSYS;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index acf8f6e2fc..6304bbd23a 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -376,6 +376,11 @@ static arm_hypercall_t *arm_hypercall_table[] = {
HYPERCALL(arch_0),
HYPERCALL(sched_op),
HYPERCALL(console_io),
+ HYPERCALL(xen_version),
+ HYPERCALL(event_channel_op),
+ HYPERCALL(memory_op),
+ HYPERCALL(physdev_op),
+ HYPERCALL(sysctl),
};
static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h
index e8405078e1..454f02ef71 100644
--- a/xen/include/asm-arm/hypercall.h
+++ b/xen/include/asm-arm/hypercall.h
@@ -2,6 +2,7 @@
#define __ASM_ARM_HYPERCALL_H__
#include <public/domctl.h> /* for arch_do_domctl */
+int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg);
#endif /* __ASM_ARM_HYPERCALL_H__ */
/*