From: Wojciech Dubowik Date: Fri, 8 Mar 2019 08:36:12 +0000 (+0100) Subject: procd: trace: Define syscall registers for powerpc platform X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=d876d1ca221112674a7e9a6ba0fee65b947fdfa7;p=project%2Fprocd.git 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 --- diff --git a/jail/seccomp-bpf.h b/jail/seccomp-bpf.h index fc3ffe7..fd6b3e2 100644 --- a/jail/seccomp-bpf.h +++ b/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 diff --git a/trace/trace.c b/trace/trace.c index 665c22e..78b99dd 100644 --- a/trace/trace.c +++ b/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