about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/aix/linux/statconv.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/aix/linux/statconv.c')
-rw-r--r--sysdeps/unix/sysv/aix/linux/statconv.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/aix/linux/statconv.c b/sysdeps/unix/sysv/aix/linux/statconv.c
new file mode 100644
index 0000000000..5333e23d7b
--- /dev/null
+++ b/sysdeps/unix/sysv/aix/linux/statconv.c
@@ -0,0 +1,35 @@
+void
+__stat_aix_to_linux (const struct stat *aixstat, struct stat *linuxstat)
+{
+  linuxstat->st_dev = linux_makedev (major (aixstat->st_dev),
+				     minor (aixstat->st_dev));
+  linuxstat->st_ino = aixstat->st_ino;
+  /* The following assumes that the mode values are the same on AIX
+     and Linux which is true in the moment.  */
+  linuxstat->st_mode = aixstat->st_mode;
+  linuxstat->st_nlink = aixstat->st_nlink;
+  /* There is no st_flag field in Linux.  */
+  linuxstat->st_uid = aixstat->st_uid;
+  linuxstat->st_gid = aixstat->st_gid;
+  linuxstat->st_rdev = linux_makedev (major (aixstat->st_rdev),
+				      minor (aixstat->st_rdev));
+  linuxstat->st_size = aixstat->st_size;
+  linuxstat->st_atime = aixstat->st_atime;
+  linuxstat->st_mtime = aixstat->st_mtime;
+  linuxstat->st_ctime = aixstat->st_ctime;
+  linuxstat->st_blksize = aixstat->st_blksize;
+  linuxstat->st_blocks = aixstat->st_blocks;
+  /* There is no st_vfstype in Linux.  */
+  /* There is no st_vfs in Linux.  */
+  /* There is no st_type in Linux.  */
+  /* There is no st_gen in Linux.  */
+
+  /* File in the padding values with repeatable values.  */
+  linuxstat->__pad1 = 0;
+  linuxstat->__pad2 = 0;
+  linuxstat->__unused1 = 0;
+  linuxstat->__unused2 = 0;
+  linuxstat->__unused3 = 0;
+  linuxstat->__unused4 = 0;
+  linuxstat->__unused5 = 0;
+}