Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

score: add old syscall support

+40 -2
+5
arch/score/include/asm/unistd.h
··· 3 3 4 4 #define __ARCH_HAVE_MMU 5 5 6 + #define __ARCH_WANT_SYSCALL_NO_AT 7 + #define __ARCH_WANT_SYSCALL_NO_FLAGS 8 + #define __ARCH_WANT_SYSCALL_OFF_T 9 + #define __ARCH_WANT_SYSCALL_DEPRECATED 10 + 6 11 #include <asm-generic/unistd.h> 7 12 8 13 #endif /* _ASM_SCORE_UNISTD_H */
+13
arch/score/kernel/entry.S
··· 499 499 mv r4, r0 500 500 la r8, score_sigaltstack 501 501 br r8 502 + 503 + #ifdef __ARCH_WANT_SYSCALL_DEPRECATED 504 + ENTRY(sys_fork) 505 + mv r4, r0 506 + la r8, score_fork 507 + br r8 508 + 509 + ENTRY(sys_vfork) 510 + mv r4, r0 511 + la r8, score_vfork 512 + br r8 513 + #endif /* __ARCH_WANT_SYSCALL_DEPRECATED */ 514 +
+22 -2
arch/score/kernel/sys_score.c
··· 25 25 26 26 #include <linux/file.h> 27 27 #include <linux/fs.h> 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(&current->mm->mmap_sem); 53 - error = do_mmap_pgoff(file, addr, len, prot, flags, 54 - pgoff >> (PAGE_SHIFT - 12)); 52 + error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); 55 53 up_write(&current->mm->mmap_sem); 56 54 57 55 if (file) 58 56 fput(file); 59 57 60 58 return error; 59 + } 60 + 61 + asmlinkage long 62 + sys_mmap(unsigned long addr, unsigned long len, unsigned long prot, 63 + unsigned long flags, unsigned long fd, off_t pgoff) 64 + { 65 + return sys_mmap2(addr, len, prot, flags, fd, pgoff >> PAGE_SHIFT); 66 + } 67 + 68 + asmlinkage long 69 + score_fork(struct pt_regs *regs) 70 + { 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 + } 83 + 84 + asmlinkage long 85 + score_vfork(struct pt_regs *regs) 86 + { 87 + return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, 88 + regs->regs[0], regs, 0, NULL, NULL); 95 89 } 96 90 97 91 /*