Selaa lähdekoodia

Tweak things so that struct stat and struct stat64 (seem to) work on
i386. This is for Erik to look at wrt the other archs.

Manuel Novoa III 22 vuotta sitten
vanhempi
commit
d2b22f1c5d

+ 0 - 7
libc/sysdeps/linux/common/bits/stat.h

@@ -40,13 +40,6 @@
  * 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

+ 27 - 0
libc/sysdeps/linux/i386/bits/kernel_stat.h

@@ -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;