aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2005-04-18 15:13:15 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-18 15:13:15 -0700
commit0ba4da03cc84f54b2574e1abcdaa18ef8456a9fb (patch)
tree6730c36a12833eaf05ddddd7b26fc4de1284ff5b /include
parentMerge SCSI tree from James Bottomley. (diff)
downloadlinux-dev-0ba4da03cc84f54b2574e1abcdaa18ef8456a9fb.tar.xz
linux-dev-0ba4da03cc84f54b2574e1abcdaa18ef8456a9fb.zip
[PATCH] sparc64: Fix stat
Like Alpha, sparc64's struct stat was defined before we had the nanosecond et al. fields added. So like Alpha I have to cons up a struct stat64 to get this stuff. I'll work on the glibc bits soon. Also, we were forgetting to fill in the nanosecond fields in the sparc compat stat64 syscalls. Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-sparc/unistd.h6
-rw-r--r--include/asm-sparc64/compat.h40
-rw-r--r--include/asm-sparc64/stat.h49
-rw-r--r--include/asm-sparc64/unistd.h6
4 files changed, 60 insertions, 41 deletions
diff --git a/include/asm-sparc/unistd.h b/include/asm-sparc/unistd.h
index d1f63caaa326..846708403900 100644
--- a/include/asm-sparc/unistd.h
+++ b/include/asm-sparc/unistd.h
@@ -79,7 +79,7 @@
#define __NR_umask 60 /* Common */
#define __NR_chroot 61 /* Common */
#define __NR_fstat 62 /* Common */
-#define __NR_fstat64 63 /* Linux sparc32 Specific */
+#define __NR_fstat64 63 /* Linux Specific */
#define __NR_getpagesize 64 /* Common */
#define __NR_msync 65 /* Common in newer 1.3.x revs... */
#define __NR_vfork 66 /* Common */
@@ -148,14 +148,14 @@
#define __NR_truncate 129 /* Common */
#define __NR_ftruncate 130 /* Common */
#define __NR_flock 131 /* Common */
-#define __NR_lstat64 132 /* Linux sparc32 Specific */
+#define __NR_lstat64 132 /* Linux Specific */
#define __NR_sendto 133 /* Common */
#define __NR_shutdown 134 /* Common */
#define __NR_socketpair 135 /* Common */
#define __NR_mkdir 136 /* Common */
#define __NR_rmdir 137 /* Common */
#define __NR_utimes 138 /* SunOS Specific */
-#define __NR_stat64 139 /* Linux sparc32 Specific */
+#define __NR_stat64 139 /* Linux Specific */
#define __NR_sendfile64 140 /* adjtime under SunOS */
#define __NR_getpeername 141 /* Common */
#define __NR_futex 142 /* gethostid under SunOS */
diff --git a/include/asm-sparc64/compat.h b/include/asm-sparc64/compat.h
index 2950279dd776..22f58055b8ab 100644
--- a/include/asm-sparc64/compat.h
+++ b/include/asm-sparc64/compat.h
@@ -51,16 +51,50 @@ struct compat_stat {
compat_dev_t st_rdev;
compat_off_t st_size;
compat_time_t st_atime;
- u32 __unused1;
+ compat_ulong_t st_atime_nsec;
compat_time_t st_mtime;
- u32 __unused2;
+ compat_ulong_t st_mtime_nsec;
compat_time_t st_ctime;
- u32 __unused3;
+ compat_ulong_t st_ctime_nsec;
compat_off_t st_blksize;
compat_off_t st_blocks;
u32 __unused4[2];
};
+struct compat_stat64 {
+ unsigned long long st_dev;
+
+ unsigned long long st_ino;
+
+ unsigned int st_mode;
+ unsigned int st_nlink;
+
+ unsigned int st_uid;
+ unsigned int st_gid;
+
+ unsigned long long st_rdev;
+
+ unsigned char __pad3[8];
+
+ long long st_size;
+ unsigned int st_blksize;
+
+ unsigned char __pad4[8];
+ unsigned int st_blocks;
+
+ unsigned int st_atime;
+ unsigned int st_atime_nsec;
+
+ unsigned int st_mtime;
+ unsigned int st_mtime_nsec;
+
+ unsigned int st_ctime;
+ unsigned int st_ctime_nsec;
+
+ unsigned int __unused4;
+ unsigned int __unused5;
+};
+
struct compat_flock {
short l_type;
short l_whence;
diff --git a/include/asm-sparc64/stat.h b/include/asm-sparc64/stat.h
index 48e06618a5a4..128c27e57f0b 100644
--- a/include/asm-sparc64/stat.h
+++ b/include/asm-sparc64/stat.h
@@ -21,43 +21,28 @@ struct stat {
unsigned long __unused4[2];
};
-#ifdef __KERNEL__
-/* This is sparc32 stat64 structure. */
-
struct stat64 {
- unsigned long long st_dev;
-
- unsigned long long st_ino;
+ unsigned long st_dev;
+ unsigned long st_ino;
+ unsigned long st_nlink;
unsigned int st_mode;
- unsigned int st_nlink;
-
unsigned int st_uid;
unsigned int st_gid;
-
- unsigned long long st_rdev;
-
- unsigned char __pad3[8];
-
- long long st_size;
- unsigned int st_blksize;
-
- unsigned char __pad4[8];
- unsigned int st_blocks;
-
- unsigned int st_atime;
- unsigned int st_atime_nsec;
-
- unsigned int st_mtime;
- unsigned int st_mtime_nsec;
-
- unsigned int st_ctime;
- unsigned int st_ctime_nsec;
-
- unsigned int __unused4;
- unsigned int __unused5;
+ unsigned int __pad0;
+
+ unsigned long st_rdev;
+ long st_size;
+ long st_blksize;
+ long st_blocks;
+
+ unsigned long st_atime;
+ unsigned long st_atime_nsec;
+ unsigned long st_mtime;
+ unsigned long st_mtime_nsec;
+ unsigned long st_ctime;
+ unsigned long st_ctime_nsec;
+ long __unused[3];
};
#endif
-
-#endif
diff --git a/include/asm-sparc64/unistd.h b/include/asm-sparc64/unistd.h
index 3c00065eea80..5b8dcf5786a5 100644
--- a/include/asm-sparc64/unistd.h
+++ b/include/asm-sparc64/unistd.h
@@ -79,7 +79,7 @@
#define __NR_umask 60 /* Common */
#define __NR_chroot 61 /* Common */
#define __NR_fstat 62 /* Common */
-/* #define __NR_fstat64 63 Linux sparc32 Specific */
+#define __NR_fstat64 63 /* Linux Specific */
#define __NR_getpagesize 64 /* Common */
#define __NR_msync 65 /* Common in newer 1.3.x revs... */
#define __NR_vfork 66 /* Common */
@@ -148,14 +148,14 @@
#define __NR_truncate 129 /* Common */
#define __NR_ftruncate 130 /* Common */
#define __NR_flock 131 /* Common */
-/* #define __NR_lstat64 132 Linux sparc32 Specific */
+#define __NR_lstat64 132 /* Linux Specific */
#define __NR_sendto 133 /* Common */
#define __NR_shutdown 134 /* Common */
#define __NR_socketpair 135 /* Common */
#define __NR_mkdir 136 /* Common */
#define __NR_rmdir 137 /* Common */
#define __NR_utimes 138 /* SunOS Specific */
-/* #define __NR_stat64 139 Linux sparc32 Specific */
+#define __NR_stat64 139 /* Linux Specific */
#define __NR_sendfile64 140 /* adjtime under SunOS */
#define __NR_getpeername 141 /* Common */
#define __NR_futex 142 /* gethostid under SunOS */