diff options
author | David S. Miller <davem@davemloft.net> | 2005-04-18 18:13:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-18 18:13:15 -0400 |
commit | 0ba4da03cc84f54b2574e1abcdaa18ef8456a9fb (patch) | |
tree | 6730c36a12833eaf05ddddd7b26fc4de1284ff5b /include | |
parent | 0b2cad2f30d0353f2576b1a2207c0792ba713157 (diff) |
[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 d1f63caaa326..846708403900 100644 --- a/include/asm-sparc/unistd.h +++ b/include/asm-sparc/unistd.h | |||
@@ -79,7 +79,7 @@ | |||
79 | #define __NR_umask 60 /* Common */ | 79 | #define __NR_umask 60 /* Common */ |
80 | #define __NR_chroot 61 /* Common */ | 80 | #define __NR_chroot 61 /* Common */ |
81 | #define __NR_fstat 62 /* Common */ | 81 | #define __NR_fstat 62 /* Common */ |
82 | #define __NR_fstat64 63 /* Linux sparc32 Specific */ | 82 | #define __NR_fstat64 63 /* Linux Specific */ |
83 | #define __NR_getpagesize 64 /* Common */ | 83 | #define __NR_getpagesize 64 /* Common */ |
84 | #define __NR_msync 65 /* Common in newer 1.3.x revs... */ | 84 | #define __NR_msync 65 /* Common in newer 1.3.x revs... */ |
85 | #define __NR_vfork 66 /* Common */ | 85 | #define __NR_vfork 66 /* Common */ |
@@ -148,14 +148,14 @@ | |||
148 | #define __NR_truncate 129 /* Common */ | 148 | #define __NR_truncate 129 /* Common */ |
149 | #define __NR_ftruncate 130 /* Common */ | 149 | #define __NR_ftruncate 130 /* Common */ |
150 | #define __NR_flock 131 /* Common */ | 150 | #define __NR_flock 131 /* Common */ |
151 | #define __NR_lstat64 132 /* Linux sparc32 Specific */ | 151 | #define __NR_lstat64 132 /* Linux Specific */ |
152 | #define __NR_sendto 133 /* Common */ | 152 | #define __NR_sendto 133 /* Common */ |
153 | #define __NR_shutdown 134 /* Common */ | 153 | #define __NR_shutdown 134 /* Common */ |
154 | #define __NR_socketpair 135 /* Common */ | 154 | #define __NR_socketpair 135 /* Common */ |
155 | #define __NR_mkdir 136 /* Common */ | 155 | #define __NR_mkdir 136 /* Common */ |
156 | #define __NR_rmdir 137 /* Common */ | 156 | #define __NR_rmdir 137 /* Common */ |
157 | #define __NR_utimes 138 /* SunOS Specific */ | 157 | #define __NR_utimes 138 /* SunOS Specific */ |
158 | #define __NR_stat64 139 /* Linux sparc32 Specific */ | 158 | #define __NR_stat64 139 /* Linux Specific */ |
159 | #define __NR_sendfile64 140 /* adjtime under SunOS */ | 159 | #define __NR_sendfile64 140 /* adjtime under SunOS */ |
160 | #define __NR_getpeername 141 /* Common */ | 160 | #define __NR_getpeername 141 /* Common */ |
161 | #define __NR_futex 142 /* gethostid under SunOS */ | 161 | #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 { | |||
51 | compat_dev_t st_rdev; | 51 | compat_dev_t st_rdev; |
52 | compat_off_t st_size; | 52 | compat_off_t st_size; |
53 | compat_time_t st_atime; | 53 | compat_time_t st_atime; |
54 | u32 __unused1; | 54 | compat_ulong_t st_atime_nsec; |
55 | compat_time_t st_mtime; | 55 | compat_time_t st_mtime; |
56 | u32 __unused2; | 56 | compat_ulong_t st_mtime_nsec; |
57 | compat_time_t st_ctime; | 57 | compat_time_t st_ctime; |
58 | u32 __unused3; | 58 | compat_ulong_t st_ctime_nsec; |
59 | compat_off_t st_blksize; | 59 | compat_off_t st_blksize; |
60 | compat_off_t st_blocks; | 60 | compat_off_t st_blocks; |
61 | u32 __unused4[2]; | 61 | u32 __unused4[2]; |
62 | }; | 62 | }; |
63 | 63 | ||
64 | struct compat_stat64 { | ||
65 | unsigned long long st_dev; | ||
66 | |||
67 | unsigned long long st_ino; | ||
68 | |||
69 | unsigned int st_mode; | ||
70 | unsigned int st_nlink; | ||
71 | |||
72 | unsigned int st_uid; | ||
73 | unsigned int st_gid; | ||
74 | |||
75 | unsigned long long st_rdev; | ||
76 | |||
77 | unsigned char __pad3[8]; | ||
78 | |||
79 | long long st_size; | ||
80 | unsigned int st_blksize; | ||
81 | |||
82 | unsigned char __pad4[8]; | ||
83 | unsigned int st_blocks; | ||
84 | |||
85 | unsigned int st_atime; | ||
86 | unsigned int st_atime_nsec; | ||
87 | |||
88 | unsigned int st_mtime; | ||
89 | unsigned int st_mtime_nsec; | ||
90 | |||
91 | unsigned int st_ctime; | ||
92 | unsigned int st_ctime_nsec; | ||
93 | |||
94 | unsigned int __unused4; | ||
95 | unsigned int __unused5; | ||
96 | }; | ||
97 | |||
64 | struct compat_flock { | 98 | struct compat_flock { |
65 | short l_type; | 99 | short l_type; |
66 | short l_whence; | 100 | 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 { | |||
21 | unsigned long __unused4[2]; | 21 | unsigned long __unused4[2]; |
22 | }; | 22 | }; |
23 | 23 | ||
24 | #ifdef __KERNEL__ | ||
25 | /* This is sparc32 stat64 structure. */ | ||
26 | |||
27 | struct stat64 { | 24 | struct stat64 { |
28 | unsigned long long st_dev; | 25 | unsigned long st_dev; |
29 | 26 | unsigned long st_ino; | |
30 | unsigned long long st_ino; | 27 | unsigned long st_nlink; |
31 | 28 | ||
32 | unsigned int st_mode; | 29 | unsigned int st_mode; |
33 | unsigned int st_nlink; | ||
34 | |||
35 | unsigned int st_uid; | 30 | unsigned int st_uid; |
36 | unsigned int st_gid; | 31 | unsigned int st_gid; |
37 | 32 | unsigned int __pad0; | |
38 | unsigned long long st_rdev; | 33 | |
39 | 34 | unsigned long st_rdev; | |
40 | unsigned char __pad3[8]; | 35 | long st_size; |
41 | 36 | long st_blksize; | |
42 | long long st_size; | 37 | long st_blocks; |
43 | unsigned int st_blksize; | 38 | |
44 | 39 | unsigned long st_atime; | |
45 | unsigned char __pad4[8]; | 40 | unsigned long st_atime_nsec; |
46 | unsigned int st_blocks; | 41 | unsigned long st_mtime; |
47 | 42 | unsigned long st_mtime_nsec; | |
48 | unsigned int st_atime; | 43 | unsigned long st_ctime; |
49 | unsigned int st_atime_nsec; | 44 | unsigned long st_ctime_nsec; |
50 | 45 | long __unused[3]; | |
51 | unsigned int st_mtime; | ||
52 | unsigned int st_mtime_nsec; | ||
53 | |||
54 | unsigned int st_ctime; | ||
55 | unsigned int st_ctime_nsec; | ||
56 | |||
57 | unsigned int __unused4; | ||
58 | unsigned int __unused5; | ||
59 | }; | 46 | }; |
60 | 47 | ||
61 | #endif | 48 | #endif |
62 | |||
63 | #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 @@ | |||
79 | #define __NR_umask 60 /* Common */ | 79 | #define __NR_umask 60 /* Common */ |
80 | #define __NR_chroot 61 /* Common */ | 80 | #define __NR_chroot 61 /* Common */ |
81 | #define __NR_fstat 62 /* Common */ | 81 | #define __NR_fstat 62 /* Common */ |
82 | /* #define __NR_fstat64 63 Linux sparc32 Specific */ | 82 | #define __NR_fstat64 63 /* Linux Specific */ |
83 | #define __NR_getpagesize 64 /* Common */ | 83 | #define __NR_getpagesize 64 /* Common */ |
84 | #define __NR_msync 65 /* Common in newer 1.3.x revs... */ | 84 | #define __NR_msync 65 /* Common in newer 1.3.x revs... */ |
85 | #define __NR_vfork 66 /* Common */ | 85 | #define __NR_vfork 66 /* Common */ |
@@ -148,14 +148,14 @@ | |||
148 | #define __NR_truncate 129 /* Common */ | 148 | #define __NR_truncate 129 /* Common */ |
149 | #define __NR_ftruncate 130 /* Common */ | 149 | #define __NR_ftruncate 130 /* Common */ |
150 | #define __NR_flock 131 /* Common */ | 150 | #define __NR_flock 131 /* Common */ |
151 | /* #define __NR_lstat64 132 Linux sparc32 Specific */ | 151 | #define __NR_lstat64 132 /* Linux Specific */ |
152 | #define __NR_sendto 133 /* Common */ | 152 | #define __NR_sendto 133 /* Common */ |
153 | #define __NR_shutdown 134 /* Common */ | 153 | #define __NR_shutdown 134 /* Common */ |
154 | #define __NR_socketpair 135 /* Common */ | 154 | #define __NR_socketpair 135 /* Common */ |
155 | #define __NR_mkdir 136 /* Common */ | 155 | #define __NR_mkdir 136 /* Common */ |
156 | #define __NR_rmdir 137 /* Common */ | 156 | #define __NR_rmdir 137 /* Common */ |
157 | #define __NR_utimes 138 /* SunOS Specific */ | 157 | #define __NR_utimes 138 /* SunOS Specific */ |
158 | /* #define __NR_stat64 139 Linux sparc32 Specific */ | 158 | #define __NR_stat64 139 /* Linux Specific */ |
159 | #define __NR_sendfile64 140 /* adjtime under SunOS */ | 159 | #define __NR_sendfile64 140 /* adjtime under SunOS */ |
160 | #define __NR_getpeername 141 /* Common */ | 160 | #define __NR_getpeername 141 /* Common */ |
161 | #define __NR_futex 142 /* gethostid under SunOS */ | 161 | #define __NR_futex 142 /* gethostid under SunOS */ |