diff options
author | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2012-03-14 09:47:05 +0000 |
---|---|---|
committer | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2012-03-14 09:47:05 +0000 |
commit | 3bb0aad8ea63256359402126dd5030f55e954128 (patch) | |
tree | 3e14c5a7e3723eb99dd8b2700306d3a7078aaeec | |
parent | 75a57b635a632d50e548be322e5f6d33e4148e2c (diff) | |
download | xen-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/Makefile | 1 | ||||
-rw-r--r-- | xen/arch/arm/physdev.c | 27 | ||||
-rw-r--r-- | xen/arch/arm/traps.c | 5 | ||||
-rw-r--r-- | xen/include/asm-arm/hypercall.h | 1 |
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__ */ /* |