[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 27/45] xen: arm: move arm32 specific trap handlers to xen/arch/arm/arm32
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- xen/arch/arm/arm32/Makefile | 3 +- xen/arch/arm/arm32/traps.c | 53 +++++++++++++++++++++++++++++++++++++++ xen/arch/arm/traps.c | 22 +--------------- xen/include/asm-arm/processor.h | 2 + 4 files changed, 58 insertions(+), 22 deletions(-) create mode 100644 xen/arch/arm/arm32/traps.c diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile index 29898ae..1ad3364 100644 --- a/xen/arch/arm/arm32/Makefile +++ b/xen/arch/arm/arm32/Makefile @@ -4,4 +4,5 @@ obj-y += entry.o obj-y += mode_switch.o obj-y += proc-ca15.o -obj-y += domain.o +obj-y += traps.o +obj-y += domain.o \ No newline at end of file diff --git a/xen/arch/arm/arm32/traps.c b/xen/arch/arm/arm32/traps.c new file mode 100644 index 0000000..a93c2f7 --- /dev/null +++ b/xen/arch/arm/arm32/traps.c @@ -0,0 +1,53 @@ +/* + * xen/arch/arm/arm32/traps.c + * + * ARM AArch32 Specific Trap handlers + * + * Copyright (c) 2012 Citrix Systems. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <xen/config.h> +#include <xen/lib.h> + +#include <public/xen.h> + +#include <asm/processor.h> + +asmlinkage void do_trap_undefined_instruction(struct cpu_user_regs *regs) +{ + do_unexpected_trap("Undefined Instruction", regs); +} + +asmlinkage void do_trap_supervisor_call(struct cpu_user_regs *regs) +{ + do_unexpected_trap("Supervisor Call", regs); +} + +asmlinkage void do_trap_prefetch_abort(struct cpu_user_regs *regs) +{ + do_unexpected_trap("Prefetch Abort", regs); +} + +asmlinkage void do_trap_data_abort(struct cpu_user_regs *regs) +{ + do_unexpected_trap("Data Abort", regs); +} + +/* + * 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 b9282b0..5fb75e9 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -428,33 +428,13 @@ void vcpu_show_execution_state(struct vcpu *v) vcpu_unpause(v); } -static void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs) +void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs) { printk("Unexpected Trap: %s\n", msg); show_execution_state(regs); while(1); } -asmlinkage void do_trap_undefined_instruction(struct cpu_user_regs *regs) -{ - do_unexpected_trap("Undefined Instruction", regs); -} - -asmlinkage void do_trap_supervisor_call(struct cpu_user_regs *regs) -{ - do_unexpected_trap("Supervisor Call", regs); -} - -asmlinkage void do_trap_prefetch_abort(struct cpu_user_regs *regs) -{ - do_unexpected_trap("Prefetch Abort", regs); -} - -asmlinkage void do_trap_data_abort(struct cpu_user_regs *regs) -{ - do_unexpected_trap("Data Abort", regs); -} - unsigned long do_arch_0(unsigned int cmd, unsigned long long value) { printk("do_arch_0 cmd=%x arg=%llx\n", cmd, value); diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h index 230c901..bd473a8 100644 --- a/xen/include/asm-arm/processor.h +++ b/xen/include/asm-arm/processor.h @@ -253,6 +253,8 @@ void show_registers(struct cpu_user_regs *regs); #define cpu_to_core(_cpu) (0) #define cpu_to_socket(_cpu) (0) +void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs); + void vcpu_regs_hyp_to_user(const struct vcpu *vcpu, struct vcpu_guest_core_regs *regs); void vcpu_regs_user_to_hyp(struct vcpu *vcpu, -- 1.7.2.5 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |