From: Dave A. <ai...@us...> - 2001-09-14 11:41:44
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel In directory usw-pr-cvs1:/tmp/cvs-serv15088/kernel Modified Files: entry.S syscall.c Log Message: DA: fixup system calls .. Index: entry.S =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/entry.S,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- entry.S 2001/08/15 22:55:13 1.7 +++ entry.S 2001/09/14 11:41:41 1.8 @@ -268,19 +268,19 @@ .long sys_time .long sys_mknod .long sys_chmod /* 15 */ - .long sys_lchown + .long sys_lchown16 .long sys_ni_syscall /* old break syscall holder */ - .long sys_stat + .long sys_ni_syscall /* old stat syscall */ .long sys_lseek .long sys_getpid /* 20 */ .long sys_mount - .long sys_umount /* old umount syscall holder */ - .long sys_setuid - .long sys_getuid + .long sys_oldumount /* old umount syscall holder */ + .long sys_setuid16 + .long sys_getuid16 .long sys_stime /* 25 */ .long sys_ptrace .long sys_alarm - .long sys_fstat + .long sys_ni_syscall /* old fstat */ .long sys_pause .long sys_utime /* 30 */ .long sys_ni_syscall /* old stty syscall holder */ @@ -298,11 +298,11 @@ .long sys_times .long sys_ni_syscall /* old prof syscall holder */ .long sys_brk /* 45 */ - .long sys_setgid - .long sys_getgid + .long sys_setgid16 + .long sys_getgid16 .long sys_signal - .long sys_geteuid - .long sys_getegid /* 50 */ + .long sys_geteuid16 + .long sys_getegid16 /* 50 */ .long sys_acct .long sys_oldumount /* recycled never used phys() */ .long sys_ni_syscall /* old lock syscall holder */ @@ -322,32 +322,32 @@ .long sys_sigaction .long sys_sgetmask .long sys_ssetmask - .long sys_setreuid /* 70 */ - .long sys_setregid + .long sys_setreuid16 /* 70 */ + .long sys_setregid16 .long sys_sigsuspend .long sys_sigpending .long sys_sethostname .long sys_setrlimit /* 75 */ - .long sys_getrlimit + .long sys_old_getrlimit .long sys_getrusage .long sys_gettimeofday .long sys_settimeofday - .long sys_getgroups /* 80 */ - .long sys_setgroups - .long sys_select + .long sys_getgroups16 /* 80 */ + .long sys_setgroups16 + .long sys_ni_syscall /* old_select */ .long sys_symlink - .long sys_lstat + .long sys_ni_syscall /* was sys_lstat */ .long sys_readlink /* 85 */ .long sys_uselib .long sys_swapon .long sys_reboot .long sys_ni_syscall /* old readdir syscall holder */ - .long sys_mmap /* 90 */ + .long sys_mmap /* 90 */ .long sys_munmap .long sys_truncate .long sys_ftruncate .long sys_fchmod - .long sys_fchown /* 95 */ + .long sys_fchown16 /* 95 */ .long sys_getpriority .long sys_setpriority .long sys_ni_syscall /* old profil syscall holder */ @@ -390,8 +390,8 @@ .long sys_sysfs /* 135 */ .long sys_personality .long sys_ni_syscall /* for afs_syscall */ - .long sys_setfsuid - .long sys_setfsgid + .long sys_setfsuid16 + .long sys_setfsgid16 .long sys_llseek /* 140 */ .long sys_getdents .long sys_select @@ -416,14 +416,14 @@ .long sys_sched_rr_get_interval .long sys_nanosleep .long sys_mremap - .long sys_setresuid - .long sys_getresuid /* 165 */ + .long sys_setresuid16 + .long sys_getresuid16 /* 165 */ .long sys_ni_syscall /* 166 vm86 in i386 */ .long sys_query_module .long sys_poll .long sys_nfsservctl - .long sys_setresgid /* 170 */ - .long sys_getresgid + .long sys_setresgid16 /* 170 */ + .long sys_getresgid16 .long sys_prctl .long sys_rt_sigreturn .long sys_rt_sigaction @@ -434,7 +434,7 @@ .long sys_rt_sigsuspend .long sys_pread /* 180 */ .long sys_pwrite - .long sys_chown + .long sys_chown16 .long sys_getcwd .long sys_capget .long sys_capset /* 185 */ @@ -443,14 +443,45 @@ .long sys_ni_syscall /* streams1 */ .long sys_ni_syscall /* streams2 */ .long sys_vfork /* 190 */ - - /* + .long sys_getrlimit + .long sys_mmap2 + .long sys_truncate64 + .long sys_ftruncate64 + .long sys_stat64 /* 195 */ + .long sys_lstat64 + .long sys_fstat64 + .long sys_lchown + .long sys_getuid + .long sys_getgid /* 200 */ + .long sys_geteuid + .long sys_getegid + .long sys_setreuid + .long sys_setregid + .long sys_getgroups /* 205 */ + .long sys_setgroups + .long sys_fchown + .long sys_setresuid + .long sys_getresuid + .long sys_setresgid /* 210 */ + .long sys_getresgid + .long sys_chown + .long sys_setuid + .long sys_setgid + .long sys_setfsuid /* 215 */ + .long sys_setfsgid + .long sys_pivot_root + .long sys_mincore + .long sys_madvise + .long sys_getdents64 /* 220 */ + .long sys_fcntl64 + /* + * NOTE!! This doesn't have to be exact - we just have * to make sure we have _enough_ of the "sys_ni_syscall" * entries. Don't panic if you notice that this hasn't * been shrunk every time we add a new system call. */ - .rept NR_syscalls-190 + .rept NR_syscalls-221 .long sys_ni_syscall .endr Index: syscall.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/arch/vax/kernel/syscall.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- syscall.c 2001/09/02 20:48:39 1.7 +++ syscall.c 2001/09/14 11:41:41 1.8 @@ -244,3 +244,35 @@ return error; } +/* common code for old and new mmaps */ +static inline long do_mmap2( + unsigned long addr, unsigned long len, + unsigned long prot, unsigned long flags, + unsigned long fd, unsigned long pgoff) +{ + int error = -EBADF; + struct file * file = NULL; + + flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); + if (!(flags & MAP_ANONYMOUS)) { + file = fget(fd); + if (!file) + goto out; + } + + down(¤t->mm->mmap_sem); + error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); + up(¤t->mm->mmap_sem); + + if (file) + fput(file); +out: + return error; +} + +asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, + unsigned long prot, unsigned long flags, + unsigned long fd, unsigned long pgoff) +{ + return do_mmap2(addr, len, prot, flags, fd, pgoff); +} |