]>
git.ipfire.org Git - thirdparty/kernel/stable.git/blob - arch/csky/include/asm/syscall.h
1 /* SPDX-License-Identifier: GPL-2.0 */
3 #ifndef __ASM_SYSCALL_H
4 #define __ASM_SYSCALL_H
6 #include <linux/sched.h>
8 #include <abi/regdef.h>
9 #include <uapi/linux/audit.h>
12 syscall_get_nr(struct task_struct
*task
, struct pt_regs
*regs
)
14 return regs_syscallid(regs
);
18 syscall_rollback(struct task_struct
*task
, struct pt_regs
*regs
)
20 regs
->a0
= regs
->orig_a0
;
24 syscall_get_error(struct task_struct
*task
, struct pt_regs
*regs
)
26 unsigned long error
= regs
->a0
;
28 return IS_ERR_VALUE(error
) ? error
: 0;
32 syscall_get_return_value(struct task_struct
*task
, struct pt_regs
*regs
)
38 syscall_set_return_value(struct task_struct
*task
, struct pt_regs
*regs
,
41 regs
->a0
= (long) error
?: val
;
45 syscall_get_arguments(struct task_struct
*task
, struct pt_regs
*regs
,
48 args
[0] = regs
->orig_a0
;
50 memcpy(args
, ®s
->a1
, 5 * sizeof(args
[0]));
54 syscall_set_arguments(struct task_struct
*task
, struct pt_regs
*regs
,
55 const unsigned long *args
)
57 regs
->orig_a0
= args
[0];
59 memcpy(®s
->a1
, args
, 5 * sizeof(regs
->a1
));
63 syscall_get_arch(void)
65 return AUDIT_ARCH_CSKY
;
68 #endif /* __ASM_SYSCALL_H */