Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/csky/kernel/syscall.c
26424 views
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
45