From: Julian Seward Date: Wed, 8 Jun 2005 01:47:28 +0000 (+0000) Subject: Clean up after m_syscalls changes: reinstate enough syscalls (x86) to X-Git-Tag: svn/VALGRIND_3_0_0~466 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=166c259a1c3234a2f0210f1232e77d21edf44647;p=thirdparty%2Fvalgrind.git Clean up after m_syscalls changes: reinstate enough syscalls (x86) to be able to run mozilla and OOo on LinuxThreads. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3852 --- diff --git a/coregrind/m_syscalls/syscalls-generic.c b/coregrind/m_syscalls/syscalls-generic.c index eaff122767..5a4b76111c 100644 --- a/coregrind/m_syscalls/syscalls-generic.c +++ b/coregrind/m_syscalls/syscalls-generic.c @@ -1670,11 +1670,12 @@ PRE(sys_exit) SET_STATUS_Success(0); } -//zz PRE(sys_sched_yield, SfMayBlock) -//zz { -//zz PRINT("sched_yield()"); -//zz PRE_REG_READ0(long, "sys_sched_yield"); -//zz } +PRE(sys_sched_yield) +{ + *flags |= SfMayBlock; + PRINT("sched_yield()"); + PRE_REG_READ0(long, "sys_sched_yield"); +} PRE(sys_ni_syscall) { @@ -1866,13 +1867,14 @@ POST(sys_getxattr) //zz if (ARG3 != (Addr)NULL) //zz POST_MEM_WRITE( ARG3, RES); //zz } -//zz -//zz PRE(sys_fsync, SfMayBlock) -//zz { -//zz PRINT("sys_fsync ( %d )", ARG1); -//zz PRE_REG_READ1(long, "fsync", unsigned int, fd); -//zz } -//zz + +PRE(sys_fsync) +{ + *flags |= SfMayBlock; + PRINT("sys_fsync ( %d )", ARG1); + PRE_REG_READ1(long, "fsync", unsigned int, fd); +} + //zz PRE(sys_fdatasync, SfMayBlock) //zz { //zz PRINT("sys_fdatasync ( %d )", ARG1); @@ -2018,23 +2020,23 @@ PRE(sys_mremap) //zz PRINT("sys_nice ( %d )", ARG1); //zz PRE_REG_READ1(long, "nice", int, inc); //zz } -//zz -//zz PRE(sys_sched_getscheduler, 0) -//zz { -//zz PRINT("sys_sched_getscheduler ( %d )", ARG1); -//zz PRE_REG_READ1(long, "sched_getscheduler", vki_pid_t, pid); -//zz } -//zz -//zz PRE(sys_sched_setscheduler, 0) -//zz { -//zz PRINT("sys_sched_setscheduler ( %d, %d, %p )", ARG1,ARG2,ARG3); -//zz PRE_REG_READ3(long, "sched_setscheduler", -//zz vki_pid_t, pid, int, policy, struct sched_param *, p); -//zz if (ARG3 != 0) -//zz PRE_MEM_READ( "sched_setscheduler(p)", -//zz ARG3, sizeof(struct vki_sched_param)); -//zz } -//zz + +PRE(sys_sched_getscheduler) +{ + PRINT("sys_sched_getscheduler ( %d )", ARG1); + PRE_REG_READ1(long, "sched_getscheduler", vki_pid_t, pid); +} + +PRE(sys_sched_setscheduler) +{ + PRINT("sys_sched_setscheduler ( %d, %d, %p )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "sched_setscheduler", + vki_pid_t, pid, int, policy, struct sched_param *, p); + if (ARG3 != 0) + PRE_MEM_READ( "sched_setscheduler(p)", + ARG3, sizeof(struct vki_sched_param)); +} + //zz PRE(sys_mlock, SfMayBlock) //zz { //zz PRINT("sys_mlock ( %p, %llu )", ARG1, (ULong)ARG2); @@ -2058,19 +2060,19 @@ PRE(sys_mremap) //zz PRINT("sys_munlockall ( )"); //zz PRE_REG_READ0(long, "munlockall"); //zz } -//zz -//zz PRE(sys_sched_get_priority_max, 0) -//zz { -//zz PRINT("sched_get_priority_max ( %d )", ARG1); -//zz PRE_REG_READ1(long, "sched_get_priority_max", int, policy); -//zz } -//zz -//zz PRE(sys_sched_get_priority_min, 0) -//zz { -//zz PRINT("sched_get_priority_min ( %d )", ARG1); -//zz PRE_REG_READ1(long, "sched_get_priority_min", int, policy); -//zz } -//zz + +PRE(sys_sched_get_priority_max) +{ + PRINT("sched_get_priority_max ( %d )", ARG1); + PRE_REG_READ1(long, "sched_get_priority_max", int, policy); +} + +PRE(sys_sched_get_priority_min) +{ + PRINT("sched_get_priority_min ( %d )", ARG1); + PRE_REG_READ1(long, "sched_get_priority_min", int, policy); +} + //zz PRE(sys_setpriority, 0) //zz { //zz PRINT("sys_setpriority ( %d, %d, %d )", ARG1, ARG2, ARG3); @@ -2747,25 +2749,27 @@ PRE(sys_ftruncate) //zz PRE_MEM_RASCIIZ( "truncate64(path)", ARG1 ); //zz } //zz -//zz -//zz PRE(sys_getdents, SfMayBlock) -//zz { -//zz PRINT("sys_getdents ( %d, %p, %d )", ARG1,ARG2,ARG3); -//zz PRE_REG_READ3(long, "getdents", -//zz unsigned int, fd, struct linux_dirent *, dirp, -//zz unsigned int, count); -//zz PRE_MEM_WRITE( "getdents(dirp)", ARG2, ARG3 ); -//zz } -//zz -//zz POST(sys_getdents) -//zz { -//zz if (RES > 0) -//zz POST_MEM_WRITE( ARG2, RES ); -//zz } + +PRE(sys_getdents) +{ + *flags |= SfMayBlock; + PRINT("sys_getdents ( %d, %p, %d )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "getdents", + unsigned int, fd, struct linux_dirent *, dirp, + unsigned int, count); + PRE_MEM_WRITE( "getdents(dirp)", ARG2, ARG3 ); +} + +POST(sys_getdents) +{ + vg_assert(SUCCESS); + if (RES > 0) + POST_MEM_WRITE( ARG2, RES ); +} PRE(sys_getdents64) { - *flags |= SfMayBlock; + *flags |= SfMayBlock; PRINT("sys_getdents64 ( %d, %p, %d )",ARG1,ARG2,ARG3); PRE_REG_READ3(long, "getdents64", unsigned int, fd, struct linux_dirent64 *, dirp, @@ -2793,20 +2797,21 @@ POST(sys_getdents64) //zz if (ARG1 > 0 && RES > 0) //zz POST_MEM_WRITE( ARG2, RES * sizeof(vki_old_gid_t) ); //zz } -//zz -//zz PRE(sys_getgroups, 0) -//zz { -//zz PRINT("sys_getgroups ( %d, %p )", ARG1, ARG2); -//zz PRE_REG_READ2(long, "getgroups", int, size, vki_gid_t *, list); -//zz if (ARG1 > 0) -//zz PRE_MEM_WRITE( "getgroups(list)", ARG2, ARG1 * sizeof(vki_gid_t) ); -//zz } -//zz -//zz POST(sys_getgroups) -//zz { -//zz if (ARG1 > 0 && RES > 0) -//zz POST_MEM_WRITE( ARG2, RES * sizeof(vki_gid_t) ); -//zz } + +PRE(sys_getgroups) +{ + PRINT("sys_getgroups ( %d, %p )", ARG1, ARG2); + PRE_REG_READ2(long, "getgroups", int, size, vki_gid_t *, list); + if (ARG1 > 0) + PRE_MEM_WRITE( "getgroups(list)", ARG2, ARG1 * sizeof(vki_gid_t) ); +} + +POST(sys_getgroups) +{ + vg_assert(SUCCESS); + if (ARG1 > 0 && RES > 0) + POST_MEM_WRITE( ARG2, RES * sizeof(vki_gid_t) ); +} PRE(sys_getcwd) { @@ -2841,24 +2846,24 @@ PRE(sys_geteuid) //zz PRINT("sys_getegid16 ( )"); //zz PRE_REG_READ0(long, "getegid16"); //zz } -//zz -//zz PRE(sys_getegid, 0) -//zz { -//zz PRINT("sys_getegid ( )"); -//zz PRE_REG_READ0(long, "getegid"); -//zz } -//zz + +PRE(sys_getegid) +{ + PRINT("sys_getegid ( )"); + PRE_REG_READ0(long, "getegid"); +} + //zz PRE(sys_getgid16, 0) //zz { //zz PRINT("sys_getgid16 ( )"); //zz PRE_REG_READ0(long, "getgid16"); //zz } -//zz -//zz PRE(sys_getgid, 0) -//zz { -//zz PRINT("sys_getgid ( )"); -//zz PRE_REG_READ0(long, "getgid"); -//zz } + +PRE(sys_getgid) +{ + PRINT("sys_getgid ( )"); + PRE_REG_READ0(long, "getgid"); +} PRE(sys_getpid) { @@ -2871,12 +2876,12 @@ PRE(sys_getpid) //zz PRINT("sys_getpgid ( %d )", ARG1); //zz PRE_REG_READ1(long, "getpgid", vki_pid_t, pid); //zz } -//zz -//zz PRE(sys_getpgrp, 0) -//zz { -//zz PRINT("sys_getpgrp ()"); -//zz PRE_REG_READ0(long, "getpgrp"); -//zz } + +PRE(sys_getpgrp) +{ + PRINT("sys_getpgrp ()"); + PRE_REG_READ0(long, "getpgrp"); +} PRE(sys_getppid) { @@ -4733,13 +4738,14 @@ PRE(sys_rename) PRE_MEM_RASCIIZ( "rename(newpath)", ARG2 ); } -//zz PRE(sys_rmdir, SfMayBlock) -//zz { -//zz PRINT("sys_rmdir ( %p )", ARG1); -//zz PRE_REG_READ1(long, "rmdir", const char *, pathname); -//zz PRE_MEM_RASCIIZ( "rmdir(pathname)", ARG1 ); -//zz } -//zz +PRE(sys_rmdir) +{ + *flags |= SfMayBlock; + PRINT("sys_rmdir ( %p )", ARG1); + PRE_REG_READ1(long, "rmdir", const char *, pathname); + PRE_MEM_RASCIIZ( "rmdir(pathname)", ARG1 ); +} + //zz PRE(sys_sched_setparam, 0) //zz { //zz PRINT("sched_setparam ( %d, %p )", ARG1, ARG2 ); @@ -4752,19 +4758,19 @@ PRE(sys_rename) //zz { //zz POST_MEM_WRITE( ARG2, sizeof(struct vki_sched_param) ); //zz } -//zz -//zz PRE(sys_sched_getparam, 0) -//zz { -//zz PRINT("sched_getparam ( %d, %p )", ARG1, ARG2 ); -//zz PRE_REG_READ2(long, "sched_getparam", -//zz vki_pid_t, pid, struct sched_param *, p); -//zz PRE_MEM_WRITE( "sched_getparam(p)", ARG2, sizeof(struct vki_sched_param) ); -//zz } -//zz -//zz POST(sys_sched_getparam) -//zz { -//zz POST_MEM_WRITE( ARG2, sizeof(struct vki_sched_param) ); -//zz } + +PRE(sys_sched_getparam) +{ + PRINT("sched_getparam ( %d, %p )", ARG1, ARG2 ); + PRE_REG_READ2(long, "sched_getparam", + vki_pid_t, pid, struct sched_param *, p); + PRE_MEM_WRITE( "sched_getparam(p)", ARG2, sizeof(struct vki_sched_param) ); +} + +POST(sys_sched_getparam) +{ + POST_MEM_WRITE( ARG2, sizeof(struct vki_sched_param) ); +} PRE(sys_select) { @@ -4936,14 +4942,15 @@ PRE(sys_setuid16) //zz { //zz POST_MEM_WRITE( ARG3, ARG2 ); //zz } -//zz -//zz PRE(sys_symlink, SfMayBlock) -//zz { -//zz PRINT("sys_symlink ( %p, %p )",ARG1,ARG2); -//zz PRE_REG_READ2(long, "symlink", const char *, oldpath, const char *, newpath); -//zz PRE_MEM_RASCIIZ( "symlink(oldpath)", ARG1 ); -//zz PRE_MEM_RASCIIZ( "symlink(newpath)", ARG2 ); -//zz } + +PRE(sys_symlink) +{ + *flags |= SfMayBlock; + PRINT("sys_symlink ( %p, %p )",ARG1,ARG2); + PRE_REG_READ2(long, "symlink", const char *, oldpath, const char *, newpath); + PRE_MEM_RASCIIZ( "symlink(oldpath)", ARG1 ); + PRE_MEM_RASCIIZ( "symlink(newpath)", ARG2 ); +} PRE(sys_time) { @@ -4962,25 +4969,25 @@ POST(sys_time) } } -//zz PRE(sys_times, 0) -//zz { -//zz PRINT("sys_times ( %p )", ARG1); -//zz PRE_REG_READ1(long, "times", struct tms *, buf); -//zz PRE_MEM_WRITE( "times(buf)", ARG1, sizeof(struct vki_tms) ); -//zz } -//zz -//zz POST(sys_times) -//zz { -//zz if (ARG1 != 0) { -//zz POST_MEM_WRITE( ARG1, sizeof(struct vki_tms) ); -//zz } -//zz } -//zz -//zz PRE(sys_umask, 0) -//zz { -//zz PRINT("sys_umask ( %d )", ARG1); -//zz PRE_REG_READ1(long, "umask", int, mask); -//zz } +PRE(sys_times) +{ + PRINT("sys_times ( %p )", ARG1); + PRE_REG_READ1(long, "times", struct tms *, buf); + PRE_MEM_WRITE( "times(buf)", ARG1, sizeof(struct vki_tms) ); +} + +POST(sys_times) +{ + if (ARG1 != 0) { + POST_MEM_WRITE( ARG1, sizeof(struct vki_tms) ); + } +} + +PRE(sys_umask) +{ + PRINT("sys_umask ( %d )", ARG1); + PRE_REG_READ1(long, "umask", int, mask); +} PRE(sys_unlink) { diff --git a/coregrind/m_syscalls/syscalls-linux.c b/coregrind/m_syscalls/syscalls-linux.c index 62250759ba..0b0e77fbbb 100644 --- a/coregrind/m_syscalls/syscalls-linux.c +++ b/coregrind/m_syscalls/syscalls-linux.c @@ -220,26 +220,27 @@ POST(sys_llseek) //zz POST_MEM_WRITE( ARG3, sizeof(vki_old_uid_t) ); //zz } //zz } -//zz -//zz PRE(sys_getresuid, 0) -//zz { -//zz PRINT("sys_getresuid ( %p, %p, %p )", ARG1,ARG2,ARG3); -//zz PRE_REG_READ3(long, "getresuid", -//zz vki_uid_t *, ruid, vki_uid_t *, euid, vki_uid_t *, suid); -//zz PRE_MEM_WRITE( "getresuid(ruid)", ARG1, sizeof(vki_uid_t) ); -//zz PRE_MEM_WRITE( "getresuid(euid)", ARG2, sizeof(vki_uid_t) ); -//zz PRE_MEM_WRITE( "getresuid(suid)", ARG3, sizeof(vki_uid_t) ); -//zz } -//zz -//zz POST(sys_getresuid) -//zz { -//zz if (RES == 0) { -//zz POST_MEM_WRITE( ARG1, sizeof(vki_uid_t) ); -//zz POST_MEM_WRITE( ARG2, sizeof(vki_uid_t) ); -//zz POST_MEM_WRITE( ARG3, sizeof(vki_uid_t) ); -//zz } -//zz } -//zz + +PRE(sys_getresuid) +{ + PRINT("sys_getresuid ( %p, %p, %p )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "getresuid", + vki_uid_t *, ruid, vki_uid_t *, euid, vki_uid_t *, suid); + PRE_MEM_WRITE( "getresuid(ruid)", ARG1, sizeof(vki_uid_t) ); + PRE_MEM_WRITE( "getresuid(euid)", ARG2, sizeof(vki_uid_t) ); + PRE_MEM_WRITE( "getresuid(suid)", ARG3, sizeof(vki_uid_t) ); +} + +POST(sys_getresuid) +{ + vg_assert(SUCCESS); + if (RES == 0) { + POST_MEM_WRITE( ARG1, sizeof(vki_uid_t) ); + POST_MEM_WRITE( ARG2, sizeof(vki_uid_t) ); + POST_MEM_WRITE( ARG3, sizeof(vki_uid_t) ); + } +} + //zz PRE(sys_setresgid16, 0) //zz { //zz PRINT("sys_setresgid16 ( %d, %d, %d )", ARG1, ARG2, ARG3); @@ -273,26 +274,27 @@ POST(sys_llseek) //zz POST_MEM_WRITE( ARG3, sizeof(vki_old_gid_t) ); //zz } //zz } -//zz -//zz PRE(sys_getresgid, 0) -//zz { -//zz PRINT("sys_getresgid ( %p, %p, %p )", ARG1,ARG2,ARG3); -//zz PRE_REG_READ3(long, "getresgid", -//zz vki_gid_t *, rgid, vki_gid_t *, egid, vki_gid_t *, sgid); -//zz PRE_MEM_WRITE( "getresgid(rgid)", ARG1, sizeof(vki_gid_t) ); -//zz PRE_MEM_WRITE( "getresgid(egid)", ARG2, sizeof(vki_gid_t) ); -//zz PRE_MEM_WRITE( "getresgid(sgid)", ARG3, sizeof(vki_gid_t) ); -//zz } -//zz -//zz POST(sys_getresgid) -//zz { -//zz if (RES == 0) { -//zz POST_MEM_WRITE( ARG1, sizeof(vki_gid_t) ); -//zz POST_MEM_WRITE( ARG2, sizeof(vki_gid_t) ); -//zz POST_MEM_WRITE( ARG3, sizeof(vki_gid_t) ); -//zz } -//zz } -//zz + +PRE(sys_getresgid) +{ + PRINT("sys_getresgid ( %p, %p, %p )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "getresgid", + vki_gid_t *, rgid, vki_gid_t *, egid, vki_gid_t *, sgid); + PRE_MEM_WRITE( "getresgid(rgid)", ARG1, sizeof(vki_gid_t) ); + PRE_MEM_WRITE( "getresgid(egid)", ARG2, sizeof(vki_gid_t) ); + PRE_MEM_WRITE( "getresgid(sgid)", ARG3, sizeof(vki_gid_t) ); +} + +POST(sys_getresgid) +{ + vg_assert(SUCCESS); + if (RES == 0) { + POST_MEM_WRITE( ARG1, sizeof(vki_gid_t) ); + POST_MEM_WRITE( ARG2, sizeof(vki_gid_t) ); + POST_MEM_WRITE( ARG3, sizeof(vki_gid_t) ); + } +} + //zz PRE(sys_ioperm, 0) //zz { //zz PRINT("sys_ioperm ( %d, %d, %d )", ARG1, ARG2, ARG3 ); diff --git a/coregrind/m_syscalls/syscalls-x86-linux.c b/coregrind/m_syscalls/syscalls-x86-linux.c index c808d00cbf..8b755e0180 100644 --- a/coregrind/m_syscalls/syscalls-x86-linux.c +++ b/coregrind/m_syscalls/syscalls-x86-linux.c @@ -1962,11 +1962,11 @@ const SyscallTableEntry VGP_(syscall_table)[] = { GENX_(__NR_kill, sys_kill), // 37 GENX_(__NR_rename, sys_rename), // 38 GENX_(__NR_mkdir, sys_mkdir), // 39 -//zz -//zz GENX_(__NR_rmdir, sys_rmdir), // 40 + + GENX_(__NR_rmdir, sys_rmdir), // 40 GENXY(__NR_dup, sys_dup), // 41 GENXY(__NR_pipe, sys_pipe), // 42 -//zz GENXY(__NR_times, sys_times), // 43 + GENXY(__NR_times, sys_times), // 43 GENX_(__NR_prof, sys_ni_syscall), // 44 //zz GENX_(__NR_brk, sys_brk), // 45 @@ -1987,13 +1987,13 @@ const SyscallTableEntry VGP_(syscall_table)[] = { GENX_(__NR_ulimit, sys_ni_syscall), // 58 //zz // (__NR_oldolduname, sys_olduname), // 59 Linux -- obsolete //zz -//zz GENX_(__NR_umask, sys_umask), // 60 + GENX_(__NR_umask, sys_umask), // 60 //zz GENX_(__NR_chroot, sys_chroot), // 61 //zz // (__NR_ustat, sys_ustat) // 62 SVr4 -- deprecated GENXY(__NR_dup2, sys_dup2), // 63 GENX_(__NR_getppid, sys_getppid), // 64 -//zz -//zz GENX_(__NR_getpgrp, sys_getpgrp), // 65 + + GENX_(__NR_getpgrp, sys_getpgrp), // 65 //zz GENX_(__NR_setsid, sys_setsid), // 66 //zz PLAXY(__NR_sigaction, sys_sigaction), // 67 //zz // (__NR_sgetmask, sys_sgetmask), // 68 */* (ANSI C) @@ -2014,7 +2014,7 @@ const SyscallTableEntry VGP_(syscall_table)[] = { //zz GENXY(__NR_getgroups, sys_getgroups16), // 80 //zz GENX_(__NR_setgroups, sys_setgroups16), // 81 //zz PLAX_(__NR_select, old_select), // 82 -//zz GENX_(__NR_symlink, sys_symlink), // 83 + GENX_(__NR_symlink, sys_symlink), // 83 //zz // (__NR_oldlstat, sys_lstat), // 84 -- obsolete //zz GENX_(__NR_readlink, sys_readlink), // 85 @@ -2056,7 +2056,7 @@ const SyscallTableEntry VGP_(syscall_table)[] = { //zz // (__NR_swapoff, sys_swapoff), // 115 */Linux //zz LINXY(__NR_sysinfo, sys_sysinfo), // 116 PLAXY(__NR_ipc, sys_ipc), // 117 -//zz GENX_(__NR_fsync, sys_fsync), // 118 + GENX_(__NR_fsync, sys_fsync), // 118 PLAX_(__NR_sigreturn, sys_sigreturn), // 119 ?/Linux PLAX_(__NR_clone, sys_clone), // 120 @@ -2086,7 +2086,7 @@ const SyscallTableEntry VGP_(syscall_table)[] = { //zz LINX_(__NR_setfsgid, sys_setfsgid16), // 139 //zz LINXY(__NR__llseek, sys_llseek), // 140 -//zz GENXY(__NR_getdents, sys_getdents), // 141 + GENXY(__NR_getdents, sys_getdents), // 141 GENX_(__NR__newselect, sys_select), // 142 //zz GENX_(__NR_flock, sys_flock), // 143 //zz GENX_(__NR_msync, sys_msync), // 144 @@ -2103,13 +2103,13 @@ const SyscallTableEntry VGP_(syscall_table)[] = { //zz GENX_(__NR_munlockall, sys_munlockall), // 153 //zz GENXY(__NR_sched_setparam, sys_sched_setparam), // 154 //zz -//zz GENXY(__NR_sched_getparam, sys_sched_getparam), // 155 -//zz GENX_(__NR_sched_setscheduler, sys_sched_setscheduler), // 156 -//zz GENX_(__NR_sched_getscheduler, sys_sched_getscheduler), // 157 -//zz GENX_(__NR_sched_yield, sys_sched_yield), // 158 -//zz GENX_(__NR_sched_get_priority_max, sys_sched_get_priority_max),// 159 -//zz -//zz GENX_(__NR_sched_get_priority_min, sys_sched_get_priority_min),// 160 + GENXY(__NR_sched_getparam, sys_sched_getparam), // 155 + GENX_(__NR_sched_setscheduler, sys_sched_setscheduler), // 156 + GENX_(__NR_sched_getscheduler, sys_sched_getscheduler), // 157 + GENX_(__NR_sched_yield, sys_sched_yield), // 158 + GENX_(__NR_sched_get_priority_max, sys_sched_get_priority_max),// 159 + + GENX_(__NR_sched_get_priority_min, sys_sched_get_priority_min),// 160 //zz // (__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 161 */* GENXY(__NR_nanosleep, sys_nanosleep), // 162 GENX_(__NR_mremap, sys_mremap), // 163 @@ -2157,21 +2157,21 @@ const SyscallTableEntry VGP_(syscall_table)[] = { PLAXY(__NR_fstat64, sys_fstat64), // 197 //zz GENX_(__NR_lchown32, sys_lchown), // 198 GENX_(__NR_getuid32, sys_getuid), // 199 -//zz -//zz GENX_(__NR_getgid32, sys_getgid), // 200 + + GENX_(__NR_getgid32, sys_getgid), // 200 GENX_(__NR_geteuid32, sys_geteuid), // 201 -//zz GENX_(__NR_getegid32, sys_getegid), // 202 + GENX_(__NR_getegid32, sys_getegid), // 202 //zz GENX_(__NR_setreuid32, sys_setreuid), // 203 //zz GENX_(__NR_setregid32, sys_setregid), // 204 -//zz -//zz GENXY(__NR_getgroups32, sys_getgroups), // 205 + + GENXY(__NR_getgroups32, sys_getgroups), // 205 //zz GENX_(__NR_setgroups32, sys_setgroups), // 206 //zz GENX_(__NR_fchown32, sys_fchown), // 207 //zz LINX_(__NR_setresuid32, sys_setresuid), // 208 -//zz LINXY(__NR_getresuid32, sys_getresuid), // 209 -//zz + LINXY(__NR_getresuid32, sys_getresuid), // 209 + //zz LINX_(__NR_setresgid32, sys_setresgid), // 210 -//zz LINXY(__NR_getresgid32, sys_getresgid), // 211 + LINXY(__NR_getresgid32, sys_getresgid), // 211 //zz GENX_(__NR_chown32, sys_chown), // 212 //zz GENX_(__NR_setuid32, sys_setuid), // 213 //zz GENX_(__NR_setgid32, sys_setgid), // 214