Module: xenomai-3
Branch: next
Commit: 739db155b019dc524b0da6edcbf2056604a130f3
URL:    
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=739db155b019dc524b0da6edcbf2056604a130f3

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
https://xenomai.org/mailman/listinfo/xenomai-git

Reply via email to