hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/arch/hexagon/include/asm/syscall.h
....@@ -1,25 +1,16 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * Syscall support for the Hexagon architecture
34 *
45 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
5
- *
6
- * This program is free software; you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License version 2 and
8
- * only version 2 as published by the Free Software Foundation.
9
- *
10
- * This program is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU General Public License
16
- * along with this program; if not, write to the Free Software
17
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18
- * 02110-1301, USA.
196 */
207
218 #ifndef _ASM_HEXAGON_SYSCALL_H
229 #define _ASM_HEXAGON_SYSCALL_H
10
+
11
+#include <uapi/linux/audit.h>
12
+#include <linux/err.h>
13
+#include <asm/ptrace.h>
2314
2415 typedef long (*syscall_fn)(unsigned long, unsigned long,
2516 unsigned long, unsigned long,
....@@ -37,10 +28,26 @@
3728
3829 static inline void syscall_get_arguments(struct task_struct *task,
3930 struct pt_regs *regs,
40
- unsigned int i, unsigned int n,
4131 unsigned long *args)
4232 {
43
- BUG_ON(i + n > 6);
44
- memcpy(args, &(&regs->r00)[i], n * sizeof(args[0]));
33
+ memcpy(args, &(&regs->r00)[0], 6 * sizeof(args[0]));
4534 }
35
+
36
+static inline long syscall_get_error(struct task_struct *task,
37
+ struct pt_regs *regs)
38
+{
39
+ return IS_ERR_VALUE(regs->r00) ? regs->r00 : 0;
40
+}
41
+
42
+static inline long syscall_get_return_value(struct task_struct *task,
43
+ struct pt_regs *regs)
44
+{
45
+ return regs->r00;
46
+}
47
+
48
+static inline int syscall_get_arch(struct task_struct *task)
49
+{
50
+ return AUDIT_ARCH_HEXAGON;
51
+}
52
+
4653 #endif