1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __ASM_H8300_SYSCALLS_32_H 3*4882a593Smuzhiyun #define __ASM_H8300_SYSCALLS_32_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #ifdef __KERNEL__ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #include <linux/compiler.h> 8*4882a593Smuzhiyun #include <linux/linkage.h> 9*4882a593Smuzhiyun #include <linux/types.h> 10*4882a593Smuzhiyun #include <linux/ptrace.h> 11*4882a593Smuzhiyun #include <uapi/linux/audit.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun static inline int syscall_get_nr(struct task_struct * task,struct pt_regs * regs)14*4882a593Smuzhiyunsyscall_get_nr(struct task_struct *task, struct pt_regs *regs) 15*4882a593Smuzhiyun { 16*4882a593Smuzhiyun return regs->orig_er0; 17*4882a593Smuzhiyun } 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun static inline void syscall_get_arguments(struct task_struct * task,struct pt_regs * regs,unsigned long * args)20*4882a593Smuzhiyunsyscall_get_arguments(struct task_struct *task, struct pt_regs *regs, 21*4882a593Smuzhiyun unsigned long *args) 22*4882a593Smuzhiyun { 23*4882a593Smuzhiyun *args++ = regs->er1; 24*4882a593Smuzhiyun *args++ = regs->er2; 25*4882a593Smuzhiyun *args++ = regs->er3; 26*4882a593Smuzhiyun *args++ = regs->er4; 27*4882a593Smuzhiyun *args++ = regs->er5; 28*4882a593Smuzhiyun *args = regs->er6; 29*4882a593Smuzhiyun } 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun static inline int syscall_get_arch(struct task_struct * task)32*4882a593Smuzhiyunsyscall_get_arch(struct task_struct *task) 33*4882a593Smuzhiyun { 34*4882a593Smuzhiyun return AUDIT_ARCH_H8300; 35*4882a593Smuzhiyun } 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun /* Misc syscall related bits */ 39*4882a593Smuzhiyun asmlinkage long do_syscall_trace_enter(struct pt_regs *regs); 40*4882a593Smuzhiyun asmlinkage void do_syscall_trace_leave(struct pt_regs *regs); 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun #endif /* __KERNEL__ */ 43*4882a593Smuzhiyun #endif /* __ASM_H8300_SYSCALLS_32_H */ 44