1 // SPDX-License-Identifier: GPL-2.0 2 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd. 3 4 #include <linux/syscalls.h> 5 6 SYSCALL_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 17 SYSCALL_DEFINE6(mmap2, 18 unsigned long, addr, 19 unsigned long, len, 20 unsigned long, prot, 21 unsigned long, flags, 22 unsigned long, fd, 23 unsigned long, 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 */ 36 SYSCALL_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 } 44