Browse Source

procd: trace: Define syscall registers for powerpc platform

According to manpage the syscall nr is stored in r0
and return value in r3 for powerpc. Define it so we
can use seccomp and utrace on powerpc.

Signed-off-by: Wojciech Dubowik <Wojciech.Dubowik@neratec.com>
Wojciech Dubowik 5 years ago
parent
commit
d876d1ca22
2 changed files with 6 additions and 0 deletions
  1. 3 0
      jail/seccomp-bpf.h
  2. 3 0
      trace/trace.c

+ 3 - 0
jail/seccomp-bpf.h

@@ -81,6 +81,9 @@ struct seccomp_data {
 # else
 #  define ARCH_NR	AUDIT_ARCH_ARMEB
 # endif
+#elif defined(__PPC__)
+# define REG_SYSCALL	regs.gpr[0]
+# define ARCH_NR	AUDIT_ARCH_PPC
 #else
 # warning "Platform does not support seccomp filter yet"
 # define REG_SYSCALL	0

+ 3 - 0
trace/trace.c

@@ -58,6 +58,9 @@
 # if defined(__ARM_EABI__)
 # define reg_retval_nr	_offsetof(struct user, regs.uregs[0])
 # endif
+#elif defined(__PPC__)
+#define reg_syscall_nr	_offsetof(struct user, regs.gpr[0])
+#define reg_retval_nr	_offsetof(struct user, regs.gpr[3])
 #else
 #error tracing is not supported on this architecture
 #endif