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.c (878B)


      1// SPDX-License-Identifier: GPL-2.0
      2// Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
      3
      4#include <linux/syscalls.h>
      5
      6SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
      7{
      8	struct thread_info *ti = task_thread_info(current);
      9	struct pt_regs *reg = current_pt_regs();
     10
     11	reg->tls = addr;
     12	ti->tp_value = addr;
     13
     14	return 0;
     15}
     16
     17SYSCALL_DEFINE6(mmap2,
     18	unsigned long, addr,
     19	unsigned long, len,
     20	unsigned long, prot,
     21	unsigned long, flags,
     22	unsigned long, fd,
     23	off_t, offset)
     24{
     25	if (unlikely(offset & (~PAGE_MASK >> 12)))
     26		return -EINVAL;
     27
     28	return ksys_mmap_pgoff(addr, len, prot, flags, fd,
     29			       offset >> (PAGE_SHIFT - 12));
     30}
     31
     32/*
     33 * for abiv1 the 64bits args should be even th, So we need mov the advice
     34 * forward.
     35 */
     36SYSCALL_DEFINE4(csky_fadvise64_64,
     37	int, fd,
     38	int, advice,
     39	loff_t, offset,
     40	loff_t, len)
     41{
     42	return ksys_fadvise64_64(fd, offset, len, advice);
     43}