aboutsummaryrefslogtreecommitdiffstats
path: root/guts/__fxstat64.c
diff options
context:
space:
mode:
Diffstat (limited to 'guts/__fxstat64.c')
-rw-r--r--guts/__fxstat64.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/guts/__fxstat64.c b/guts/__fxstat64.c
new file mode 100644
index 0000000..59f8a59
--- /dev/null
+++ b/guts/__fxstat64.c
@@ -0,0 +1,28 @@
+/*
+ * int
+ * wrap___fxstat64(int ver, int fd, struct stat64 *buf) {
+ * int rc = -1;
+ */
+ pseudo_msg_t *msg;
+ int save_errno;
+
+ rc = real___fxstat64(ver, fd, buf);
+ save_errno = errno;
+ if (rc == -1) {
+ return rc;
+ }
+ if (ver != _STAT_VER) {
+ pseudo_debug(1, "version mismatch: got stat version %d, only supporting %d\n", ver, _STAT_VER);
+ errno = save_errno;
+ return rc;
+ }
+ msg = pseudo_client_op(OP_FSTAT, 0, fd, -1, 0, buf);
+ if (msg) {
+ if (msg->result == RESULT_SUCCEED)
+ pseudo_stat_msg(buf, msg);
+ }
+
+ errno = save_errno;
+/* return rc;
+ * }
+ */