/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __ASM_H8300_SYSCALLS_32_H #define __ASM_H8300_SYSCALLS_32_H #ifdef __KERNEL__ #include #include #include #include #include static inline int syscall_get_nr(struct task_struct *task, struct pt_regs *regs) { return regs->orig_er0; } static inline void syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, unsigned int i, unsigned int n, unsigned long *args) { BUG_ON(i + n > 6); while (n > 0) { switch (i) { case 0: *args++ = regs->er1; break; case 1: *args++ = regs->er2; break; case 2: *args++ = regs->er3; break; case 3: *args++ = regs->er4; break; case 4: *args++ = regs->er5; break; case 5: *args++ = regs->er6; break; } i++; n--; } } static inline int syscall_get_arch(struct task_struct *task) { return AUDIT_ARCH_H8300; } /* Misc syscall related bits */ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs); asmlinkage void do_syscall_trace_leave(struct pt_regs *regs); #endif /* __KERNEL__ */ #endif /* __ASM_H8300_SYSCALLS_32_H */