summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2002-08-24 21:38:44 +0000
committerManuel Novoa III <mjn3@codepoet.org>2002-08-24 21:38:44 +0000
commitd2b22f1c5d52de7bd70d2143681baeeb74ad693e (patch)
tree63176785a6c1ae10b545d6762f19a89c439c619e
parente44c028c15f596875449eed8885824add58e6865 (diff)
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.
-rw-r--r--libc/sysdeps/linux/common/bits/stat.h7
-rw-r--r--libc/sysdeps/linux/i386/bits/kernel_stat.h27
2 files changed, 27 insertions, 7 deletions
diff --git a/libc/sysdeps/linux/common/bits/stat.h b/libc/sysdeps/linux/common/bits/stat.h
index 2a161bfd9..942accda1 100644
--- a/libc/sysdeps/linux/common/bits/stat.h
+++ b/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
diff --git a/libc/sysdeps/linux/i386/bits/kernel_stat.h b/libc/sysdeps/linux/i386/bits/kernel_stat.h
index 60901bb6a..9e7598f5e 100644
--- a/libc/sysdeps/linux/i386/bits/kernel_stat.h
+++ b/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;