506076 unimplemented fcntl command: 1028 (F_CREATED_QUERY)
506499 Unhandled syscall 592 (exterrctl - FreeBSD
506795 Better report which clone flags are problematic
+506928 Wrap (deprecated) linux specific ustat syscall
506930 valgrind allows SIGKILL being reset to SIG_DFL
506970 mmap needs an EBADF fd_allowed check
// Linux-specific (but non-arch-specific) syscalls
+DECL_TEMPLATE(linux, sys_ustat);
DECL_TEMPLATE(linux, sys_clone)
DECL_TEMPLATE(linux, sys_mount);
DECL_TEMPLATE(linux, sys_oldumount);
// (__NR_uselib, sys_uselib), // 134
LINX_(__NR_personality, sys_personality), // 135
- // (__NR_ustat, sys_ustat), // 136
+ LINXY(__NR_ustat, sys_ustat), // 136
GENXY(__NR_statfs, sys_statfs), // 137
GENXY(__NR_fstatfs, sys_fstatfs), // 138
// (__NR_sysfs, sys_sysfs), // 139
//zz
GENX_(__NR_umask, sys_umask), // 60
GENX_(__NR_chroot, sys_chroot), // 61
-//zz // (__NR_ustat, sys_ustat) // 62 SVr4 -- deprecated
+ LINXY(__NR_ustat, sys_ustat), // 62 SVr4 -- deprecated
GENXY(__NR_dup2, sys_dup2), // 63
GENX_(__NR_getppid, sys_getppid), // 64
}
}
+PRE(sys_ustat)
+{
+ FUSE_COMPATIBLE_MAY_BLOCK();
+ PRINT("sys_ustat ( %#" FMT_REGWORD "x, %#" FMT_REGWORD "x)", ARG1, ARG2);
+ PRE_REG_READ2(long, "ustat", __vki_u32, dev, struct vki_ustat *, ubuf);
+ PRE_MEM_WRITE( "ustat(ubuf)", ARG2, sizeof(struct vki_ustat) );
+}
+
+POST(sys_ustat)
+{
+ POST_MEM_WRITE( ARG2, sizeof(struct vki_ustat) );
+}
+
#undef PRE
#undef POST
//.. // (__NR_oldolduname, sys_olduname), // 59
GENX_ (__NR_umask, sys_umask), // 60
GENX_ (__NR_chroot, sys_chroot), // 61
- //.. // (__NR_ustat, sys_ustat) // 62
+ LINXY (__NR_ustat, sys_ustat), // 62
GENXY (__NR_dup2, sys_dup2), // 63
GENX_ (__NR_getppid, sys_getppid), // 64
GENX_ (__NR_getpgrp, sys_getpgrp), // 65
DECL_TEMPLATE (mips_linux, sys_set_thread_area);
DECL_TEMPLATE (mips_linux, sys_vmsplice);
-DECL_TEMPLATE (mips_linux, sys_ustat);
DECL_TEMPLATE (mips_linux, sys_sysfs);
DECL_TEMPLATE (mips_linux, sys_swapon);
DECL_TEMPLATE (mips_linux, sys_swapoff);
*flags |= SfMayBlock;
}
-PRE(sys_ustat)
-{
- PRINT("sys_ustat ( %#" FMT_REGWORD "x, %#" FMT_REGWORD "x)", ARG1, ARG2);
- PRE_REG_READ2(long, "ustat", int, flags, const void *, path);
-}
-
PRE(sys_swapon)
{
PRINT("sys_swapon ( %#" FMT_REGWORD "x, %#" FMT_REGWORD "x )", ARG1, ARG2);
LINX_ (__NR_utime, sys_utime),
GENX_ (__NR_mknod, sys_mknod),
LINX_ (__NR_personality, sys_personality),
- PLAX_ (__NR_ustat, sys_ustat),
+ LINXY (__NR_ustat, sys_ustat),
GENXY (__NR_statfs, sys_statfs),
GENXY (__NR_fstatfs, sys_fstatfs),
PLAX_ (__NR_sysfs, sys_sysfs),
GENX_(__NR_umask, sys_umask), // 60
GENX_(__NR_chroot, sys_chroot), // 61
-//.. // (__NR_ustat, sys_ustat) // 62 SVr4 -- deprecated
+ LINXY(__NR_ustat, sys_ustat), // 62 SVr4 -- deprecated
GENXY(__NR_dup2, sys_dup2), // 63
GENX_(__NR_getppid, sys_getppid), // 64
GENX_(__NR_umask, sys_umask), // 60
GENX_(__NR_chroot, sys_chroot), // 61
-// _____(__NR_ustat, sys_ustat), // 62
+ LINXY(__NR_ustat, sys_ustat), // 62
GENXY(__NR_dup2, sys_dup2), // 63
GENX_(__NR_getppid, sys_getppid), // 64
GENX_(__NR_umask, sys_umask), // 60
GENX_(__NR_chroot, sys_chroot), // 61
-// ?????(__NR_ustat, sys_ustat), /* deprecated in favor of statfs */ // 62
+ LINXY(__NR_ustat, sys_ustat), /* deprecated in favor of statfs */ // 62
GENXY(__NR_dup2, sys_dup2), // 63
GENX_(__NR_getppid, sys_getppid), // 64
//zz
GENX_(__NR_umask, sys_umask), // 60
GENX_(__NR_chroot, sys_chroot), // 61
-//zz // (__NR_ustat, sys_ustat) // 62 SVr4 -- deprecated
+ LINXY(__NR_ustat, sys_ustat), // 62 SVr4 -- deprecated
GENXY(__NR_dup2, sys_dup2), // 63
GENX_(__NR_getppid, sys_getppid), // 64
typedef int __vki_kernel_key_t;
typedef int __vki_kernel_mqd_t;
+//----------------------------------------------------------------------
+// From pre-git history /include/linux/types.h
+//----------------------------------------------------------------------
+
+struct vki_ustat {
+#if defined(VGA_mips32) || defined(VGA_mips64) || defined(VGA_nanomips)
+ long f_tfree;
+#else
+ int f_tfree;
+#endif
+#if defined(VGA_s390x)
+ unsigned int f_tinode;
+#else
+ unsigned long f_tinode;
+#endif
+ char f_fname[6];
+ char f_fpack[6];
+};
+
//----------------------------------------------------------------------
// From linux-2.6.8.1/include/linux/types.h
//----------------------------------------------------------------------