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