diff options
author | David S. Miller <davem@davemloft.net> | 2005-04-18 15:13:15 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-18 15:13:15 -0700 |
commit | 0ba4da03cc84f54b2574e1abcdaa18ef8456a9fb (patch) | |
tree | 6730c36a12833eaf05ddddd7b26fc4de1284ff5b /include | |
parent | 0b2cad2f30d0353f2576b1a2207c0792ba713157 (diff) | |
download | op-kernel-dev-0ba4da03cc84f54b2574e1abcdaa18ef8456a9fb.zip op-kernel-dev-0ba4da03cc84f54b2574e1abcdaa18ef8456a9fb.tar.gz |
[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.h | 6 | ||||
-rw-r--r-- | include/asm-sparc64/compat.h | 40 | ||||
-rw-r--r-- | include/asm-sparc64/stat.h | 49 | ||||
-rw-r--r-- | include/asm-sparc64/unistd.h | 6 |
4 files changed, 60 insertions, 41 deletions
diff --git a/include/asm-sparc/unistd.h b/include/asm-sparc/unistd.h index d1f63ca..8467084 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 2950279..22f5805 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 48e0661..128c27e 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 3c00065..5b8dcf5 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 */ |