OSDN Git Service

Tweak things so that struct stat and struct stat64 (seem to) work on
authorManuel Novoa III <mjn3@codepoet.org>
Sat, 24 Aug 2002 21:38:44 +0000 (21:38 -0000)
committerManuel Novoa III <mjn3@codepoet.org>
Sat, 24 Aug 2002 21:38:44 +0000 (21:38 -0000)
i386.  This is for Erik to look at wrt the other archs.

libc/sysdeps/linux/common/bits/stat.h
libc/sysdeps/linux/i386/bits/kernel_stat.h

index 2a161bf..942accd 100644 (file)
  * on the subject, and different kernel revs use different names... */
 #include <bits/kernel_stat.h>
 
-#ifdef __USE_LARGEFILE64
-#  ifdef __USE_FILE_OFFSET64
-#    define stat   stat64
-#  endif
-#endif
-
-
 /* Tell code we have these members.  */
 #define        _STATBUF_ST_BLKSIZE
 #define _STATBUF_ST_RDEV
index 60901bb..9e7598f 100644 (file)
@@ -4,6 +4,8 @@
 /* This file provides whatever this particular arch's kernel thinks 
  * struct stat should look like...  It turns out each arch has a 
  * different opinion on the subject... */
+
+#ifndef __USE_FILE_OFFSET64
 struct stat {
        unsigned short st_dev;
        unsigned short __pad1;
@@ -26,6 +28,31 @@ struct stat {
        unsigned long  __unused4;
        unsigned long  __unused5;
 };
+#else
+struct stat {
+       unsigned short  st_dev;
+       unsigned char   __pad0[10];
+       unsigned long   __st_ino;
+       unsigned int    st_mode;
+       unsigned int    st_nlink;
+       unsigned long   st_uid;
+       unsigned long   st_gid;
+       unsigned short  st_rdev;
+       unsigned char   __pad3[10];
+       long long       st_size;
+       unsigned long   st_blksize;
+       unsigned long   st_blocks;      /* Number 512-byte blocks allocated. */
+       unsigned long   __pad4;         /* future possible st_blocks high bits */
+       unsigned long   st_atime;
+       unsigned long   __pad5;
+       unsigned long   st_mtime;
+       unsigned long   __pad6;
+       unsigned long   st_ctime;
+       unsigned long   __pad7;         /* will be high 32 bits of ctime someday */
+       unsigned long long      st_ino;
+};
+#endif
+
 #ifdef __USE_LARGEFILE64
 struct stat64 {
        unsigned short  st_dev;