procd: trace: Define syscall registers for powerpc platform
authorWojciech Dubowik <Wojciech.Dubowik@neratec.com>
Fri, 8 Mar 2019 08:36:12 +0000 (09:36 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Mon, 11 Mar 2019 22:08:34 +0000 (23:08 +0100)
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>
jail/seccomp-bpf.h
trace/trace.c

index fc3ffe75f295da510f81bd0e51acc4c28759a823..fd6b3e257c385c4e3b03ccb9ed89fe67fec70ff4 100644 (file)
@@ -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
index 665c22ef814a5f98939816d964ba38de60116494..78b99dd053d7b91bd86ac9d7efc7a706596e0caa 100644 (file)
@@ -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