Blame view
arch/hexagon/include/asm/syscall.h
1.14 KB
08dbd0f8e
|
1 |
/* SPDX-License-Identifier: GPL-2.0-only */ |
b9398a845
|
2 3 4 |
/* * Syscall support for the Hexagon architecture * |
e1858b2a2
|
5 |
* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. |
b9398a845
|
6 7 8 9 |
*/ #ifndef _ASM_HEXAGON_SYSCALL_H #define _ASM_HEXAGON_SYSCALL_H |
d09315343
|
10 |
#include <uapi/linux/audit.h> |
6c132dd6d
|
11 12 |
#include <linux/err.h> #include <asm/ptrace.h> |
d09315343
|
13 |
|
b9398a845
|
14 15 16 |
typedef long (*syscall_fn)(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); |
b9398a845
|
17 18 19 20 21 22 23 24 25 26 27 28 |
#include <asm-generic/syscalls.h> extern void *sys_call_table[]; static inline long syscall_get_nr(struct task_struct *task, struct pt_regs *regs) { return regs->r06; } static inline void syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, |
b9398a845
|
29 30 |
unsigned long *args) { |
b35f549df
|
31 |
memcpy(args, &(®s->r00)[0], 6 * sizeof(args[0])); |
b9398a845
|
32 |
} |
d09315343
|
33 |
|
6c132dd6d
|
34 35 36 37 38 39 40 41 42 43 44 |
static inline long syscall_get_error(struct task_struct *task, struct pt_regs *regs) { return IS_ERR_VALUE(regs->r00) ? regs->r00 : 0; } static inline long syscall_get_return_value(struct task_struct *task, struct pt_regs *regs) { return regs->r00; } |
16add4116
|
45 |
static inline int syscall_get_arch(struct task_struct *task) |
d09315343
|
46 47 48 |
{ return AUDIT_ARCH_HEXAGON; } |
b9398a845
|
49 |
#endif |