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

sys.c (1497B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * AArch64-specific system calls implementation
      4 *
      5 * Copyright (C) 2012 ARM Ltd.
      6 * Author: Catalin Marinas <catalin.marinas@arm.com>
      7 */
      8
      9#include <linux/compiler.h>
     10#include <linux/errno.h>
     11#include <linux/fs.h>
     12#include <linux/mm.h>
     13#include <linux/export.h>
     14#include <linux/sched.h>
     15#include <linux/slab.h>
     16#include <linux/syscalls.h>
     17
     18#include <asm/cpufeature.h>
     19#include <asm/syscall.h>
     20
     21SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len,
     22		unsigned long, prot, unsigned long, flags,
     23		unsigned long, fd, unsigned long, off)
     24{
     25	if (offset_in_page(off) != 0)
     26		return -EINVAL;
     27
     28	return ksys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT);
     29}
     30
     31SYSCALL_DEFINE1(arm64_personality, unsigned int, personality)
     32{
     33	if (personality(personality) == PER_LINUX32 &&
     34		!system_supports_32bit_el0())
     35		return -EINVAL;
     36	return ksys_personality(personality);
     37}
     38
     39asmlinkage long sys_ni_syscall(void);
     40
     41asmlinkage long __arm64_sys_ni_syscall(const struct pt_regs *__unused)
     42{
     43	return sys_ni_syscall();
     44}
     45
     46/*
     47 * Wrappers to pass the pt_regs argument.
     48 */
     49#define __arm64_sys_personality		__arm64_sys_arm64_personality
     50
     51#undef __SYSCALL
     52#define __SYSCALL(nr, sym)	asmlinkage long __arm64_##sym(const struct pt_regs *);
     53#include <asm/unistd.h>
     54
     55#undef __SYSCALL
     56#define __SYSCALL(nr, sym)	[nr] = __arm64_##sym,
     57
     58const syscall_fn_t sys_call_table[__NR_syscalls] = {
     59	[0 ... __NR_syscalls - 1] = __arm64_sys_ni_syscall,
     60#include <asm/unistd.h>
     61};