Add LFS support and use correct types overall.
authorUlrich Drepper <drepper@redhat.com>
Wed, 6 May 1998 09:50:30 +0000 (09:50 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 6 May 1998 09:50:30 +0000 (09:50 +0000)
sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h

index c6048a9..ef93b7b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 
 #include <bits/types.h>
 
+/* Length of array allocated for file system type name.  */
+#define _ST_FSTYPSZ    16
+
+
 /* Structure describing file characteristics.  */
 struct stat
   {
-    unsigned long int st_dev;
+    __dev_t st_dev;
     long int st_filler1[3];
     __ino_t st_ino;            /* File serial number.          */
-    unsigned long int st_mode; /* File mode.  */
-    /* This is unsigned long instead of __nlink_t, since SVR4 has
-       a long nlink_t, not a short one.  */
-    unsigned long int st_nlink;        /* Link count.  */
+    __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.  */
+    __dev_t st_rdev;   /* Device number, if device.  */
     long int st_filler2[2];
 
     __off_t st_size;           /* Size of file, in bytes.  */
@@ -48,14 +50,45 @@ struct stat
     __time_t st_ctime;         /* Time of last status change.  */
     unsigned long int st_ctime_usec;
 
-    __blkcnt_t st_blksize;     /* Optimal block size for I/O.  */
+    long int st_blksize;       /* Optimal block size for I/O.  */
 #define        _STATBUF_ST_BLKSIZE     /* Tell code we have this member.  */
 
-    long int st_blocks;                /* Number of 512-byte blocks allocated.  */
-    char st_fstype[16];
+    __blkcnt_t st_blocks;      /* Number of 512-byte blocks allocated.  */
+    char st_fstype[_ST_FSTYPSZ];
     long int st_filler4[8];
   };
 
+#ifdef __USE_LARGEFILE64
+/* struct stat64 has the shape as stat */
+struct stat64
+  {
+    __dev_t st_dev;                    /* Device */
+    long int st_filler1[2];
+    __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.*/
+    __dev_t st_rdev;                   /* Device number, if device */
+    long int st_filler2;
+
+    __off64_t st_size;                 /* Size of file, in bytes. */
+
+    __time_t st_atime;                 /* Time of last access */
+    unsigned long int st_atime_usec;
+    __time_t st_mtime;                         /* Time of last modification */
+    unsigned long int st_mtime_usec;
+    __time_t st_ctime;                 /* Time of last status change */
+    unsigned long int st_ctime_usec;
+
+    long int st_blksize;
+    __blkcnt64_t st_blocks;
+    char st_fstype[_ST_FSTYPSZ];
+    long int st_filler3[8];
+};
+#endif
+
+
 /* Encoding of the file mode.  */
 
 #define        __S_IFMT        0170000 /* These bits determine file type.  */