Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
0003 
0004 #include <linux/syscalls.h>
0005 
0006 SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
0007 {
0008     struct thread_info *ti = task_thread_info(current);
0009     struct pt_regs *reg = current_pt_regs();
0010 
0011     reg->tls = addr;
0012     ti->tp_value = addr;
0013 
0014     return 0;
0015 }
0016 
0017 SYSCALL_DEFINE6(mmap2,
0018     unsigned long, addr,
0019     unsigned long, len,
0020     unsigned long, prot,
0021     unsigned long, flags,
0022     unsigned long, fd,
0023     off_t, offset)
0024 {
0025     if (unlikely(offset & (~PAGE_MASK >> 12)))
0026         return -EINVAL;
0027 
0028     return ksys_mmap_pgoff(addr, len, prot, flags, fd,
0029                    offset >> (PAGE_SHIFT - 12));
0030 }
0031 
0032 /*
0033  * for abiv1 the 64bits args should be even th, So we need mov the advice
0034  * forward.
0035  */
0036 SYSCALL_DEFINE4(csky_fadvise64_64,
0037     int, fd,
0038     int, advice,
0039     loff_t, offset,
0040     loff_t, len)
0041 {
0042     return ksys_fadvise64_64(fd, offset, len, advice);
0043 }