]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Move get*16 and set*16 syscalls from "generic" to "linux".
authorNicholas Nethercote <njn@valgrind.org>
Fri, 26 Aug 2005 04:27:54 +0000 (04:27 +0000)
committerNicholas Nethercote <njn@valgrind.org>
Fri, 26 Aug 2005 04:27:54 +0000 (04:27 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4521

coregrind/m_syswrap/priv_syswrap-generic.h
coregrind/m_syswrap/priv_syswrap-linux.h
coregrind/m_syswrap/syswrap-generic.c
coregrind/m_syswrap/syswrap-linux.c
coregrind/m_syswrap/syswrap-ppc32-linux.c
coregrind/m_syswrap/syswrap-x86-linux.c

index 8986a53dc92668caa627bce64643b99c5d4030ab..70dc1138db71d7169a0f1b6a050e8a734347d7ed 100644 (file)
@@ -169,16 +169,6 @@ DECL_TEMPLATE(generic, sys_utimes);       // 4.3BSD
 // These ones may be Linux specific... not sure.  They use 16-bit gid_t and
 // uid_t types.  The similarly named (minus the "16" suffix) ones below use
 // 32-bit versions of these types.
-DECL_TEMPLATE(generic, sys_setuid16);              // ## P
-DECL_TEMPLATE(generic, sys_getuid16);              // ## P
-DECL_TEMPLATE(generic, sys_setgid16);              // ## SVr4,SVID
-DECL_TEMPLATE(generic, sys_getgid16);              // ## P
-DECL_TEMPLATE(generic, sys_geteuid16);             // ## P
-DECL_TEMPLATE(generic, sys_getegid16);             // ## P
-DECL_TEMPLATE(generic, sys_setreuid16);            // ## BSD4.3
-DECL_TEMPLATE(generic, sys_setregid16);            // ## BSD4.3
-DECL_TEMPLATE(generic, sys_getgroups16);           // ## P
-DECL_TEMPLATE(generic, sys_setgroups16);           // ## SVr4, SVID, X/OPEN, 4.3BSD
 DECL_TEMPLATE(generic, sys_fchown16);              // ## SVr4,BSD4.3
 DECL_TEMPLATE(generic, sys_chown16);               // ## P
 
index 428dbf00f932fdcd8a3c39f75ebdcd015f43b8ae..e3a4f05c3edc0672ffa27e6b09dffb19b4ca04f7 100644 (file)
@@ -117,6 +117,19 @@ DECL_TEMPLATE(linux, sys_timer_delete);
 DECL_TEMPLATE(linux, sys_capget);
 DECL_TEMPLATE(linux, sys_capset);
 
+// These ones have 32-bit generic equivalents, but the 16-bit versions (they
+// use 16-bit gid_t and uid_t types) seem to be Linux-specific.
+DECL_TEMPLATE(linux, sys_getuid16);
+DECL_TEMPLATE(linux, sys_setuid16);
+DECL_TEMPLATE(linux, sys_getgid16);
+DECL_TEMPLATE(linux, sys_setgid16);
+DECL_TEMPLATE(linux, sys_geteuid16);
+DECL_TEMPLATE(linux, sys_getegid16);
+DECL_TEMPLATE(linux, sys_setreuid16);
+DECL_TEMPLATE(linux, sys_setregid16);
+DECL_TEMPLATE(linux, sys_getgroups16);
+DECL_TEMPLATE(linux, sys_setgroups16);
+
 #endif   // __PRIV_SYSWRAP_LINUX_H
 
 /*--------------------------------------------------------------------*/
index 0c22135140825305128d8e41026f4d65c8513448..cf961f2583cff4003bef1f77806de1461b58de71 100644 (file)
@@ -2106,12 +2106,6 @@ PRE(sys_getpriority)
    PRE_REG_READ2(long, "getpriority", int, which, int, who);
 }
 
-PRE(sys_setregid16)
-{
-   PRINT("sys_setregid16 ( %d, %d )", ARG1, ARG2);
-   PRE_REG_READ2(long, "setregid16", vki_old_gid_t, rgid, vki_old_gid_t, egid);
-}
-
 // The actual kernel definition of this routine takes a
 // single 64 bit offset argument. This version is for 32 bit
 // platforms only and treats the offset as two values - the
@@ -2812,14 +2806,6 @@ POST(sys_getdents64)
       POST_MEM_WRITE( ARG2, RES );
 }
 
-PRE(sys_getgroups16)
-{
-   PRINT("sys_getgroups16 ( %d, %p )", ARG1, ARG2);
-   PRE_REG_READ2(long, "getgroups16", int, size, vki_old_gid_t *, list);
-   if (ARG1 > 0)
-      PRE_MEM_WRITE( "getgroups16(list)", ARG2, ARG1 * sizeof(vki_old_gid_t) );
-}
-
 POST(sys_getgroups16)
 {
    vg_assert(SUCCESS);
@@ -2862,36 +2848,18 @@ POST(sys_getcwd)
       POST_MEM_WRITE( ARG1, RES );
 }
 
-PRE(sys_geteuid16)
-{
-   PRINT("sys_geteuid16 ( )");
-   PRE_REG_READ0(long, "geteuid16");
-}
-
 PRE(sys_geteuid)
 {
    PRINT("sys_geteuid ( )");
    PRE_REG_READ0(long, "geteuid");
 }
 
-PRE(sys_getegid16)
-{
-   PRINT("sys_getegid16 ( )");
-   PRE_REG_READ0(long, "getegid16");
-}
-
 PRE(sys_getegid)
 {
    PRINT("sys_getegid ( )");
    PRE_REG_READ0(long, "getegid");
 }
 
-PRE(sys_getgid16)
-{
-   PRINT("sys_getgid16 ( )");
-   PRE_REG_READ0(long, "getgid16");
-}
-
 PRE(sys_getgid)
 {
    PRINT("sys_getgid ( )");
@@ -3015,12 +2983,6 @@ PRE(sys_settimeofday)
    }
 }
 
-PRE(sys_getuid16)
-{
-   PRINT("sys_getuid16 ( )");
-   PRE_REG_READ0(long, "getuid16");
-}
-
 PRE(sys_getuid)
 {
    PRINT("sys_getuid ( )");
@@ -4908,12 +4870,6 @@ PRE(sys_select)
       PRE_MEM_READ( "select(timeout)", ARG5, sizeof(struct vki_timeval) );
 }
 
-PRE(sys_setgid16)
-{
-   PRINT("sys_setgid16 ( %d )", ARG1);
-   PRE_REG_READ1(long, "setgid16", vki_old_gid_t, gid);
-}
-
 PRE(sys_setgid)
 {
    PRINT("sys_setgid ( %d )", ARG1);
@@ -4926,14 +4882,6 @@ PRE(sys_setsid)
    PRE_REG_READ0(long, "setsid");
 }
 
-PRE(sys_setgroups16)
-{
-   PRINT("sys_setgroups16 ( %llu, %p )", (ULong)ARG1, ARG2);
-   PRE_REG_READ2(long, "setgroups16", int, size, vki_old_gid_t *, list);
-   if (ARG1 > 0)
-      PRE_MEM_READ( "setgroups16(list)", ARG2, ARG1 * sizeof(vki_old_gid_t) );
-}
-
 PRE(sys_setgroups)
 {
    PRINT("setgroups ( %llu, %p )", (ULong)ARG1, ARG2);
@@ -4954,12 +4902,6 @@ PRE(sys_setregid)
    PRE_REG_READ2(long, "setregid", vki_gid_t, rgid, vki_gid_t, egid);
 }
 
-PRE(sys_setreuid16)
-{
-   PRINT("setreuid16 ( 0x%x, 0x%x )", ARG1, ARG2);
-   PRE_REG_READ2(long, "setreuid16", vki_old_uid_t, ruid, vki_old_uid_t, euid);
-}
-
 PRE(sys_setreuid)
 {
    PRINT("sys_setreuid ( 0x%x, 0x%x )", ARG1, ARG2);
@@ -5006,12 +4948,6 @@ PRE(sys_setrlimit)
    }
 }
 
-PRE(sys_setuid16)
-{
-   PRINT("sys_setuid16 ( %d )", ARG1);
-   PRE_REG_READ1(long, "setuid16", vki_old_uid_t, uid);
-}
-
 PRE(sys_setuid)
 {
    PRINT("sys_setuid ( %d )", ARG1);
index 69aa45d27c9a1ead4e54c5310a1e2af92ebce981..2a5ecf5db91e9ba440027c1161c6c587cfe2d2a0 100644 (file)
@@ -1155,6 +1155,76 @@ PRE(sys_capset)
                   ARG2, sizeof(struct __vki_user_cap_data_struct) );
 }
 
+PRE(sys_getuid16)
+{
+   PRINT("sys_getuid16 ( )");
+   PRE_REG_READ0(long, "getuid16");
+}
+
+PRE(sys_setuid16)
+{
+   PRINT("sys_setuid16 ( %d )", ARG1);
+   PRE_REG_READ1(long, "setuid16", vki_old_uid_t, uid);
+}
+
+PRE(sys_getgid16)
+{
+   PRINT("sys_getgid16 ( )");
+   PRE_REG_READ0(long, "getgid16");
+}
+
+PRE(sys_setgid16)
+{
+   PRINT("sys_setgid16 ( %d )", ARG1);
+   PRE_REG_READ1(long, "setgid16", vki_old_gid_t, gid);
+}
+
+PRE(sys_geteuid16)
+{
+   PRINT("sys_geteuid16 ( )");
+   PRE_REG_READ0(long, "geteuid16");
+}
+
+PRE(sys_getegid16)
+{
+   PRINT("sys_getegid16 ( )");
+   PRE_REG_READ0(long, "getegid16");
+}
+
+PRE(sys_setreuid16)
+{
+   PRINT("setreuid16 ( 0x%x, 0x%x )", ARG1, ARG2);
+   PRE_REG_READ2(long, "setreuid16", vki_old_uid_t, ruid, vki_old_uid_t, euid);
+}
+
+PRE(sys_setregid16)
+{
+   PRINT("sys_setregid16 ( %d, %d )", ARG1, ARG2);
+   PRE_REG_READ2(long, "setregid16", vki_old_gid_t, rgid, vki_old_gid_t, egid);
+}
+
+PRE(sys_getgroups16)
+{
+   PRINT("sys_getgroups16 ( %d, %p )", ARG1, ARG2);
+   PRE_REG_READ2(long, "getgroups16", int, size, vki_old_gid_t *, list);
+   if (ARG1 > 0)
+      PRE_MEM_WRITE( "getgroups16(list)", ARG2, ARG1 * sizeof(vki_old_gid_t) );
+}
+POST(sys_getgroups16)
+{
+   vg_assert(SUCCESS);
+   if (ARG1 > 0 && RES > 0)
+      POST_MEM_WRITE( ARG2, RES * sizeof(vki_old_gid_t) );
+}
+
+PRE(sys_setgroups16)
+{
+   PRINT("sys_setgroups16 ( %llu, %p )", (ULong)ARG1, ARG2);
+   PRE_REG_READ2(long, "setgroups16", int, size, vki_old_gid_t *, list);
+   if (ARG1 > 0)
+      PRE_MEM_READ( "setgroups16(list)", ARG2, ARG1 * sizeof(vki_old_gid_t) );
+}
+
 #undef PRE
 #undef POST
 
index 53e9d4668bf16e01d1ffaaf9c670c3b9e913eac9..c8c0e52889bd2b9d1c3e9b69c7ea4c9536f72dad 100644 (file)
@@ -1985,8 +1985,8 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    GENX_(__NR_getpid,            sys_getpid),            // 20
 //..    LINX_(__NR_mount,             sys_mount),             // 21
 //..    LINX_(__NR_umount,            sys_oldumount),         // 22
-   GENX_(__NR_setuid,            sys_setuid16),          // 23 ## P
-   GENX_(__NR_getuid,            sys_getuid16),          // 24 ## P
+   LINX_(__NR_setuid,            sys_setuid16),          // 23 ## P
+   LINX_(__NR_getuid,            sys_getuid16),          // 24 ## P
 //.. 
 //..    //   (__NR_stime,             sys_stime),             // 25 * (SVr4,SVID,X/OPEN)
 //..    PLAXY(__NR_ptrace,            sys_ptrace),            // 26
@@ -2013,12 +2013,12 @@ const SyscallTableEntry ML_(syscall_table)[] = {
 //..    GENX_(__NR_prof,              sys_ni_syscall),        // 44
 //.. 
    GENX_(__NR_brk,               sys_brk),               // 45
-   GENX_(__NR_setgid,            sys_setgid16),          // 46
-   GENX_(__NR_getgid,            sys_getgid16),          // 47
+   LINX_(__NR_setgid,            sys_setgid16),          // 46
+   LINX_(__NR_getgid,            sys_getgid16),          // 47
 //..    //   (__NR_signal,            sys_signal),            // 48 */* (ANSI C)
-   GENX_(__NR_geteuid,           sys_geteuid16),         // 49
+   LINX_(__NR_geteuid,           sys_geteuid16),         // 49
 
-   GENX_(__NR_getegid,           sys_getegid16),         // 50
+   LINX_(__NR_getegid,           sys_getegid16),         // 50
 //..    GENX_(__NR_acct,              sys_acct),              // 51
 //..    LINX_(__NR_umount2,           sys_umount),            // 52
 //..    GENX_(__NR_lock,              sys_ni_syscall),        // 53
@@ -2042,8 +2042,8 @@ const SyscallTableEntry ML_(syscall_table)[] = {
 //..    //   (__NR_sgetmask,          sys_sgetmask),          // 68 */* (ANSI C)
 //..    //   (__NR_ssetmask,          sys_ssetmask),          // 69 */* (ANSI C)
 //.. 
-//..    GENX_(__NR_setreuid,          sys_setreuid16),        // 70
-//..    GENX_(__NR_setregid,          sys_setregid16),        // 71
+//..    LINX_(__NR_setreuid,          sys_setreuid16),        // 70
+//..    LINX_(__NR_setregid,          sys_setregid16),        // 71
 //..    GENX_(__NR_sigsuspend,        sys_sigsuspend),        // 72
 //..    GENXY(__NR_sigpending,        sys_sigpending),        // 73
 //..    //   (__NR_sethostname,       sys_sethostname),       // 74 */*
@@ -2054,8 +2054,8 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    GENXY(__NR_gettimeofday,      sys_gettimeofday),           // 78
 //..    GENX_(__NR_settimeofday,      sys_settimeofday),      // 79
 //.. 
-   GENXY(__NR_getgroups,         sys_getgroups16),       // 80
-//..    GENX_(__NR_setgroups,         sys_setgroups16),       // 81
+   LINXY(__NR_getgroups,         sys_getgroups16),       // 80
+//..    LINX_(__NR_setgroups,         sys_setgroups16),       // 81
 //..    PLAX_(__NR_select,            old_select),            // 82
    GENX_(__NR_symlink,           sys_symlink),           // 83
 //..    //   (__NR_oldlstat,          sys_lstat),             // 84 -- obsolete
index fc3c6c6808100f0017d698a6c1cc09256520157c..b3fc481f2e73995db1a094dcf8059b6c3c781cd4 100644 (file)
@@ -1967,8 +1967,8 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    GENX_(__NR_getpid,            sys_getpid),         // 20
    LINX_(__NR_mount,             sys_mount),          // 21
    LINX_(__NR_umount,            sys_oldumount),      // 22
-   GENX_(__NR_setuid,            sys_setuid16),       // 23 ## P
-   GENX_(__NR_getuid,            sys_getuid16),       // 24 ## P
+   LINX_(__NR_setuid,            sys_setuid16),       // 23 ## P
+   LINX_(__NR_getuid,            sys_getuid16),       // 24 ## P
 //zz 
 //zz    //   (__NR_stime,             sys_stime),          // 25 * (SVr4,SVID,X/OPEN)
    PLAXY(__NR_ptrace,            sys_ptrace),         // 26
@@ -1995,12 +1995,12 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    GENX_(__NR_prof,              sys_ni_syscall),     // 44
 //zz 
    GENX_(__NR_brk,               sys_brk),            // 45
-   GENX_(__NR_setgid,            sys_setgid16),       // 46
-   GENX_(__NR_getgid,            sys_getgid16),       // 47
+   LINX_(__NR_setgid,            sys_setgid16),       // 46
+   LINX_(__NR_getgid,            sys_getgid16),       // 47
 //zz    //   (__NR_signal,            sys_signal),         // 48 */* (ANSI C)
-   GENX_(__NR_geteuid,           sys_geteuid16),      // 49
+   LINX_(__NR_geteuid,           sys_geteuid16),      // 49
 
-   GENX_(__NR_getegid,           sys_getegid16),      // 50
+   LINX_(__NR_getegid,           sys_getegid16),      // 50
    GENX_(__NR_acct,              sys_acct),           // 51
    LINX_(__NR_umount2,           sys_umount),         // 52
    GENX_(__NR_lock,              sys_ni_syscall),     // 53
@@ -2024,8 +2024,8 @@ const SyscallTableEntry ML_(syscall_table)[] = {
 //zz    //   (__NR_sgetmask,          sys_sgetmask),       // 68 */* (ANSI C)
 //zz    //   (__NR_ssetmask,          sys_ssetmask),       // 69 */* (ANSI C)
 //zz 
-   GENX_(__NR_setreuid,          sys_setreuid16),     // 70
-   GENX_(__NR_setregid,          sys_setregid16),     // 71
+   LINX_(__NR_setreuid,          sys_setreuid16),     // 70
+   LINX_(__NR_setregid,          sys_setregid16),     // 71
 //zz    GENX_(__NR_sigsuspend,        sys_sigsuspend),     // 72
    GENXY(__NR_sigpending,        sys_sigpending),     // 73
 //zz    //   (__NR_sethostname,       sys_sethostname),    // 74 */*
@@ -2036,8 +2036,8 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    GENXY(__NR_gettimeofday,      sys_gettimeofday),   // 78
    GENX_(__NR_settimeofday,      sys_settimeofday),   // 79
 
-   GENXY(__NR_getgroups,         sys_getgroups16),    // 80
-   GENX_(__NR_setgroups,         sys_setgroups16),    // 81
+   LINXY(__NR_getgroups,         sys_getgroups16),    // 80
+   LINX_(__NR_setgroups,         sys_setgroups16),    // 81
    PLAX_(__NR_select,            old_select),         // 82
    GENX_(__NR_symlink,           sys_symlink),        // 83
 //zz    //   (__NR_oldlstat,          sys_lstat),          // 84 -- obsolete