[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] xen: arm: move arm32 specific trap handlers to xen/arch/arm/arm32
commit d2c8913c32f8a01f53692904fb5bab60020f2a63 Author: Ian Campbell <ian.campbell@xxxxxxxxxx> AuthorDate: Fri Feb 22 08:58:05 2013 +0000 Commit: Ian Campbell <ian.campbell@xxxxxxxxxx> CommitDate: Fri Feb 22 12:14:53 2013 +0000 xen: arm: move arm32 specific trap handlers to xen/arch/arm/arm32 Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Acked-by: Tim Deegan <tim@xxxxxxx> --- 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(-) 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 391cecc..f96365b 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -423,33 +423,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 f7aa9e2..63f03ac 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, -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |