1#ifndef __ASM_H8300_SYSCALLS_32_H
2#define __ASM_H8300_SYSCALLS_32_H
3
4#ifdef __KERNEL__
5
6#include <linux/compiler.h>
7#include <linux/linkage.h>
8#include <linux/types.h>
9#include <linux/ptrace.h>
10
11static inline int
12syscall_get_nr(struct task_struct *task, struct pt_regs *regs)
13{
14	return regs->orig_er0;
15}
16
17static inline void
18syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,
19		      unsigned int i, unsigned int n, unsigned long *args)
20{
21	BUG_ON(i + n > 6);
22
23	while (n > 0) {
24		switch (i) {
25		case 0:
26			*args++ = regs->er1;
27			break;
28		case 1:
29			*args++ = regs->er2;
30			break;
31		case 2:
32			*args++ = regs->er3;
33			break;
34		case 3:
35			*args++ = regs->er4;
36			break;
37		case 4:
38			*args++ = regs->er5;
39			break;
40		case 5:
41			*args++ = regs->er6;
42			break;
43		}
44		i++;
45		n--;
46	}
47}
48
49
50
51/* Misc syscall related bits */
52asmlinkage long do_syscall_trace_enter(struct pt_regs *regs);
53asmlinkage void do_syscall_trace_leave(struct pt_regs *regs);
54
55#endif /* __KERNEL__ */
56#endif /* __ASM_H8300_SYSCALLS_32_H */
57