Module: xenomai-3 Branch: next Commit: 0967e0a24636f24cf0c6b8cf74e8d3e4f8c6f2ee URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=0967e0a24636f24cf0c6b8cf74e8d3e4f8c6f2ee
Author: Dmitriy Cherkasov <dmit...@mperpetuo.com> Date: Thu May 7 16:41:09 2015 -0700 cobalt/arm64: thread.h & syscall.h: fix register references for arm64 --- kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h | 8 ++++++-- kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h b/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h index f0a1090..2fdd890 100644 --- a/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h +++ b/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h @@ -28,12 +28,16 @@ #include <asm/ptrace.h> #include <asm-generic/xenomai/syscall.h> +#ifndef __NR_SYSCALL_BASE +#define __NR_SYSCALL_BASE 0 +#endif + #ifndef __ARM_NR_ipipe /* Legacy pipelines do not define this. */ #define __ARM_NR_ipipe (__NR_SYSCALL_BASE + XENO_ARM_SYSCALL) #endif -#define __xn_reg_sys(__regs) ((__regs)->ARM_ORIG_r0) +#define __xn_reg_sys(__regs) ((__regs)->orig_x0) /* In OABI_COMPAT mode, handle both OABI and EABI userspace syscalls */ #ifdef CONFIG_OABI_COMPAT #define __xn_syscall_p(__regs) (((__regs)->regs[7] == __NR_OABI_SYSCALL_BASE + XENO_ARM_SYSCALL) || \ @@ -49,7 +53,7 @@ #define __xn_reg_arg3(__regs) ((__regs)->regs[3]) #define __xn_reg_arg4(__regs) ((__regs)->regs[4]) #define __xn_reg_arg5(__regs) ((__regs)->regs[5]) -#define __xn_reg_pc(__regs) ((__regs)->ip) +#define __xn_reg_pc(__regs) ((__regs)->pc) #define __xn_reg_sp(__regs) ((__regs)->sp) static inline void __xn_error_return(struct pt_regs *regs, int v) diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h b/kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h index 11439a3..958f340 100644 --- a/kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h +++ b/kernel/cobalt/arch/arm64/include/asm/xenomai/thread.h @@ -52,7 +52,7 @@ struct xnarchtcb { #define xnarch_fault_regs(d) ((d)->regs) #define xnarch_fault_trap(d) ((d)->exception) #define xnarch_fault_code(d) (0) -#define xnarch_fault_pc(d) ((d)->regs->ARM_pc - (thumb_mode((d)->regs) ? 2 : 4)) /* XXX ? */ +#define xnarch_fault_pc(d) ((d)->regs->pc - 4) /* XXX ? */ #define xnarch_fault_pf_p(d) ((d)->exception == IPIPE_TRAP_ACCESS) #define xnarch_fault_bp_p(d) ((current->ptrace & PT_PTRACED) && \ _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git