OSDN Git Service

Eliminate wrapping of struct stat and use the kernel version
[uclinux-h8/uClibc.git] / libc / sysdeps / linux / mips / bits / stat.h
index c0e6984..2fdeabb 100644 (file)
 #define _MKNOD_VER             _MKNOD_VER_LINUX /* The bits defined below.  */
 
 
-/* Structure describing file characteristics.  */
-struct stat
-  {
-    unsigned long int st_dev;
-    long int st_pad1[3];
-#ifndef __USE_FILE_OFFSET64
-    __ino_t st_ino;            /* File serial number.          */
-#else
-    __ino64_t st_ino;          /* File serial number.          */
-#endif
-    __mode_t st_mode;          /* File mode.  */
-    __nlink_t st_nlink;                /* Link count.  */
-    __uid_t st_uid;            /* User ID of the file's owner. */
-    __gid_t st_gid;            /* Group ID of the file's group.*/
-    unsigned long int st_rdev; /* Device number, if device.  */
-#ifndef __USE_FILE_OFFSET64
-    long int st_pad2[2];
-    __off_t st_size;           /* Size of file, in bytes.  */
-    /* SVR4 added this extra long to allow for expansion of off_t.  */
-    long int st_pad3;
-#else
-    long int st_pad2[3];
-    __off64_t st_size;         /* Size of file, in bytes.  */
-#endif
-    /*
-     * Actually this should be timestruc_t st_atime, st_mtime and
-     * st_ctime but we don't have it under Linux.
-     */
-    __time_t st_atime;         /* Time of last access.  */
-    long int __reserved0;
-    __time_t st_mtime;         /* Time of last modification.  */
-    long int __reserved1;
-    __time_t st_ctime;         /* Time of last status change.  */
-    long int __reserved2;
-    __blksize_t st_blksize;    /* Optimal block size for I/O.  */
-#ifndef __USE_FILE_OFFSET64
-    __blkcnt_t st_blocks;      /* Number of 512-byte blocks allocated.  */
-#else
-    long int st_pad4;
-    __blkcnt64_t st_blocks;    /* Number of 512-byte blocks allocated.  */
-#endif
-    long int st_pad5[14];
-  };
-
+/* Pull in whatever this particular arch's kernel thinks that struct stat 
+ * should look like.  It turns out that each arch has a different opinion 
+ * on the subject, and different kernel revs use different names... */
+#define new_stat stat
+#include <asm/stat.h>
 #ifdef __USE_LARGEFILE64
-struct stat64
-  {
-    unsigned long int st_dev;
-    long int st_pad1[3];
-    __ino64_t st_ino;          /* File serial number.          */
-    __mode_t st_mode;          /* File mode.  */
-    __nlink_t st_nlink;                /* Link count.  */
-    __uid_t st_uid;            /* User ID of the file's owner. */
-    __gid_t st_gid;            /* Group ID of the file's group.*/
-    unsigned long int st_rdev; /* Device number, if device.  */
-    long int st_pad2[3];
-    __off64_t st_size;         /* Size of file, in bytes.  */
-    /*
-     * Actually this should be timestruc_t st_atime, st_mtime and
-     * st_ctime but we don't have it under Linux.
-     */
-    __time_t st_atime;         /* Time of last access.  */
-    long int __reserved0;
-    __time_t st_mtime;         /* Time of last modification.  */
-    long int __reserved1;
-    __time_t st_ctime;         /* Time of last status change.  */
-    long int __reserved2;
-    __blksize_t st_blksize;    /* Optimal block size for I/O.  */
-    long int st_pad3;
-    __blkcnt64_t st_blocks;    /* Number of 512-byte blocks allocated.  */
-    long int st_pad4[14];
-  };
+#  ifdef __USE_FILE_OFFSET64
+#    define stat   stat64
+#  endif
 #endif
 
+
 /* Tell code we have these members.  */
 #define        _STATBUF_ST_BLKSIZE
 #define        _STATBUF_ST_RDEV