break;
# endif
+# if defined(__NR_setxattr)
+ case __NR_setxattr: /* syscall 226 */
+ /* int setxattr (const char *path, const char *name,
+ const void *value, size_t size, int flags); */
+ case __NR_lsetxattr: /* syscall 227 */
+ /* int lsetxattr (const char *path, const char *name,
+ const void *value, size_t size, int flags); */
+ if (VG_(clo_trace_syscalls))
+ VG_(printf)("setxattr ( %p, %p, %p, %d, %d )\n",
+ arg1, arg2, arg3, arg4, arg5);
+ must_be_readable_asciiz( tst, "setxattr(path)", arg1 );
+ must_be_readable_asciiz( tst, "setxattr(name)", arg2 );
+ must_be_readable( tst, "setxattr(value)", arg3, arg4 );
+ KERNEL_DO_SYSCALL(tid,res);
+ break;
+# endif
+
+# if defined(__NR_fsetxattr)
+ case __NR_fsetxattr: /* syscall 228 */
+ /* int fsetxattr (int filedes, const char *name,
+ const void *value, size_t size, int flags); */
+ if (VG_(clo_trace_syscalls))
+ VG_(printf)("fsetxattr ( %d, %p, %p, %d, %d )\n",
+ arg1, arg2, arg3, arg4, arg5);
+ must_be_readable_asciiz( tst, "fsetxattr(name)", arg2 );
+ must_be_readable( tst, "fsetxattr(value)", arg3, arg4 );
+ KERNEL_DO_SYSCALL(tid,res);
+ break;
+# endif
+
# if defined(__NR_getxattr)
case __NR_getxattr: /* syscall 229 */
/* ssize_t getxattr (const char *path, const char* name,
void* value, size_t size); */
+ case __NR_lgetxattr: /* syscall 230 */
+ /* ssize_t lgetxattr (const char *path, const char *name,
+ void *value, size_t size); */
if (VG_(clo_trace_syscalls))
VG_(printf)("getxattr ( %p, %p, %p, %d )\n",
arg1,arg2,arg3, arg4);
}
break;
# endif
-
+
+# if defined(__NR_fgetxattr)
+ case __NR_fgetxattr: /* syscall 231 */
+ /* ssize_t fgetxattr (int filedes, const char *name,
+ void *value, size_t size); */
+ if (VG_(clo_trace_syscalls))
+ VG_(printf)("fgetxattr ( %d, %p, %p, %d )\n",
+ arg1, arg2, arg3, arg4);
+ must_be_readable_asciiz( tst, "fgetxattr(name)", arg2 );
+ must_be_writable( tst, "fgetxattr(value)", arg3, arg4 );
+ KERNEL_DO_SYSCALL(tid,res);
+ if (!VG_(is_kerror)(res) && res > 0 && arg3 != (Addr)NULL)
+ make_readable( arg3, res );
+ break;
+# endif
+
+# if defined(__NR_listxattr)
+ case __NR_listxattr: /* syscall 232 */
+ /* ssize_t listxattr (const char *path, char *list, size_t size); */
+ case __NR_llistxattr: /* syscall 233 */
+ /* ssize_t llistxattr (const char *path, char *list, size_t size); */
+ if (VG_(clo_trace_syscalls))
+ VG_(printf)("listxattr ( %p, %p, %d )\n", arg1, arg2, arg3);
+ must_be_readable_asciiz( tst, "listxattr(path)", arg1 );
+ must_be_writable( tst, "listxattr(list)", arg2, arg3 );
+ KERNEL_DO_SYSCALL(tid,res);
+ if (!VG_(is_kerror)(res) && res > 0 && arg2 != (Addr)NULL)
+ make_readable( arg2, res );
+ break;
+# endif
+
+# if defined(__NR_flistxattr)
+ case __NR_flistxattr: /* syscall 234 */
+ /* ssize_t flistxattr (int filedes, char *list, size_t size); */
+ if (VG_(clo_trace_syscalls))
+ VG_(printf)("flistxattr ( %d, %p, %d )\n", arg1, arg2, arg3);
+ must_be_writable( tst, "listxattr(list)", arg2, arg3 );
+ KERNEL_DO_SYSCALL(tid,res);
+ if (!VG_(is_kerror)(res) && res > 0 && arg2 != (Addr)NULL)
+ make_readable( arg2, res );
+ break;
+# endif
+
+# if defined(__NR_removexattr)
+ case __NR_removexattr: /* syscall 235 */
+ /* int removexattr (const char *path, const char *name); */
+ case __NR_lremovexattr: /* syscall 236 */
+ /* int lremovexattr (const char *path, const char *name); */
+ if (VG_(clo_trace_syscalls))
+ VG_(printf)("removexattr ( %p, %p )\n", arg1, arg2);
+ must_be_readable_asciiz( tst, "listxattr(path)", arg1 );
+ must_be_readable_asciiz( tst, "listxattr(name)", arg2 );
+ KERNEL_DO_SYSCALL(tid,res);
+ break;
+# endif
+
+# if defined(__NR_fremovexattr)
+ case __NR_fremovexattr: /* syscall 237 */
+ /* int fremovexattr (int filedes, const char *name); */
+ if (VG_(clo_trace_syscalls))
+ VG_(printf)("removexattr ( %d, %p )\n", arg1, arg2);
+ must_be_readable_asciiz( tst, "listxattr(name)", arg2 );
+ KERNEL_DO_SYSCALL(tid,res);
+ break;
+# endif
+
# if defined(__NR_quotactl)
case __NR_quotactl: /* syscall 131 */
/* int quotactl(int cmd, char *special, int uid, caddr_t addr); */
KERNEL_DO_SYSCALL(tid,res);
break;
+ case SNDCTL_DSP_POST:
+ case SNDCTL_DSP_RESET:
+ case SNDCTL_DSP_SYNC:
+ case SNDCTL_DSP_SETSYNCRO:
+ case SNDCTL_DSP_SETDUPLEX:
+ KERNEL_DO_SYSCALL(tid,res);
+ break;
+
/* Real Time Clock (/dev/rtc) ioctls */
# ifndef GLIBC_2_1
case RTC_UIE_ON: