root/arch/hexagon/include/asm/syscall.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. syscall_get_nr
  2. syscall_get_arguments
  3. syscall_get_error
  4. syscall_get_return_value
  5. syscall_get_arch

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Syscall support for the Hexagon architecture
   4  *
   5  * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
   6  */
   7 
   8 #ifndef _ASM_HEXAGON_SYSCALL_H
   9 #define _ASM_HEXAGON_SYSCALL_H
  10 
  11 #include <uapi/linux/audit.h>
  12 #include <linux/err.h>
  13 #include <asm/ptrace.h>
  14 
  15 typedef long (*syscall_fn)(unsigned long, unsigned long,
  16         unsigned long, unsigned long,
  17         unsigned long, unsigned long);
  18 
  19 #include <asm-generic/syscalls.h>
  20 
  21 extern void *sys_call_table[];
  22 
  23 static inline long syscall_get_nr(struct task_struct *task,
  24                                   struct pt_regs *regs)
  25 {
  26         return regs->r06;
  27 }
  28 
  29 static inline void syscall_get_arguments(struct task_struct *task,
  30                                          struct pt_regs *regs,
  31                                          unsigned long *args)
  32 {
  33         memcpy(args, &(&regs->r00)[0], 6 * sizeof(args[0]));
  34 }
  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 
  53 #endif

/* [<][>][^][v][top][bottom][index][help] */