cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

syscall.h (1170B)


      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
     15typedef 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
     21extern void *sys_call_table[];
     22
     23static inline long syscall_get_nr(struct task_struct *task,
     24				  struct pt_regs *regs)
     25{
     26	return regs->r06;
     27}
     28
     29static 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
     36static 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
     42static inline long syscall_get_return_value(struct task_struct *task,
     43					    struct pt_regs *regs)
     44{
     45	return regs->r00;
     46}
     47
     48static inline int syscall_get_arch(struct task_struct *task)
     49{
     50	return AUDIT_ARCH_HEXAGON;
     51}
     52
     53#endif