tangled
alpha
login
or
join now
tjh.dev
/
kernel
1
fork
atom
Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1
fork
atom
overview
issues
pulls
pipelines
score: add old syscall support
Chen Liqin
16 years ago
cf52c468
324f40fb
+40
-2
3 changed files
expand all
collapse all
unified
split
arch
score
include
asm
unistd.h
kernel
entry.S
sys_score.c
+5
arch/score/include/asm/unistd.h
reviewed
···
3
3
4
4
#define __ARCH_HAVE_MMU
5
5
6
6
+
#define __ARCH_WANT_SYSCALL_NO_AT
7
7
+
#define __ARCH_WANT_SYSCALL_NO_FLAGS
8
8
+
#define __ARCH_WANT_SYSCALL_OFF_T
9
9
+
#define __ARCH_WANT_SYSCALL_DEPRECATED
10
10
+
6
11
#include <asm-generic/unistd.h>
7
12
8
13
#endif /* _ASM_SCORE_UNISTD_H */
+13
arch/score/kernel/entry.S
reviewed
···
499
499
mv r4, r0
500
500
la r8, score_sigaltstack
501
501
br r8
502
502
+
503
503
+
#ifdef __ARCH_WANT_SYSCALL_DEPRECATED
504
504
+
ENTRY(sys_fork)
505
505
+
mv r4, r0
506
506
+
la r8, score_fork
507
507
+
br r8
508
508
+
509
509
+
ENTRY(sys_vfork)
510
510
+
mv r4, r0
511
511
+
la r8, score_vfork
512
512
+
br r8
513
513
+
#endif /* __ARCH_WANT_SYSCALL_DEPRECATED */
514
514
+
+22
-2
arch/score/kernel/sys_score.c
reviewed
···
25
25
26
26
#include <linux/file.h>
27
27
#include <linux/fs.h>
28
28
+
#include <linux/mm.h>
28
29
#include <linux/mman.h>
29
30
#include <linux/module.h>
30
31
#include <linux/unistd.h>
···
50
49
}
51
50
52
51
down_write(¤t->mm->mmap_sem);
53
53
-
error = do_mmap_pgoff(file, addr, len, prot, flags,
54
54
-
pgoff >> (PAGE_SHIFT - 12));
52
52
+
error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
55
53
up_write(¤t->mm->mmap_sem);
56
54
57
55
if (file)
58
56
fput(file);
59
57
60
58
return error;
59
59
+
}
60
60
+
61
61
+
asmlinkage long
62
62
+
sys_mmap(unsigned long addr, unsigned long len, unsigned long prot,
63
63
+
unsigned long flags, unsigned long fd, off_t pgoff)
64
64
+
{
65
65
+
return sys_mmap2(addr, len, prot, flags, fd, pgoff >> PAGE_SHIFT);
66
66
+
}
67
67
+
68
68
+
asmlinkage long
69
69
+
score_fork(struct pt_regs *regs)
70
70
+
{
71
71
+
return do_fork(SIGCHLD, regs->regs[0], regs, 0, NULL, NULL);
61
72
}
62
73
63
74
/*
···
92
79
93
80
return do_fork(clone_flags, newsp, regs, 0,
94
81
parent_tidptr, child_tidptr);
82
82
+
}
83
83
+
84
84
+
asmlinkage long
85
85
+
score_vfork(struct pt_regs *regs)
86
86
+
{
87
87
+
return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD,
88
88
+
regs->regs[0], regs, 0, NULL, NULL);
95
89
}
96
90
97
91
/*