diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-11-21 03:28:37 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-01-27 23:18:53 -0500 |
commit | 17bfa6397875e6901c3cafdc711437041664d94c (patch) | |
tree | ba1bac3002519578f9e528b76b02089b2c085fbc | |
parent | c8eef8800f1c693a2de6374b1948c8ea5e0ad75f (diff) |
sh: Special layout for SH-5 stat.h and user.h.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r-- | include/asm-sh/stat.h | 63 | ||||
-rw-r--r-- | include/asm-sh/user.h | 7 |
2 files changed, 69 insertions, 1 deletions
diff --git a/include/asm-sh/stat.h b/include/asm-sh/stat.h index 6d6ad26e3a2a..e1810cc6e3da 100644 --- a/include/asm-sh/stat.h +++ b/include/asm-sh/stat.h | |||
@@ -15,6 +15,66 @@ struct __old_kernel_stat { | |||
15 | unsigned long st_ctime; | 15 | unsigned long st_ctime; |
16 | }; | 16 | }; |
17 | 17 | ||
18 | #if defined(__SH5__) || defined(CONFIG_CPU_SH5) | ||
19 | struct stat { | ||
20 | unsigned short st_dev; | ||
21 | unsigned short __pad1; | ||
22 | unsigned long st_ino; | ||
23 | unsigned short st_mode; | ||
24 | unsigned short st_nlink; | ||
25 | unsigned short st_uid; | ||
26 | unsigned short st_gid; | ||
27 | unsigned short st_rdev; | ||
28 | unsigned short __pad2; | ||
29 | unsigned long st_size; | ||
30 | unsigned long st_blksize; | ||
31 | unsigned long st_blocks; | ||
32 | unsigned long st_atime; | ||
33 | unsigned long st_atime_nsec; | ||
34 | unsigned long st_mtime; | ||
35 | unsigned long st_mtime_nsec; | ||
36 | unsigned long st_ctime; | ||
37 | unsigned long st_ctime_nsec; | ||
38 | unsigned long __unused4; | ||
39 | unsigned long __unused5; | ||
40 | }; | ||
41 | |||
42 | /* This matches struct stat64 in glibc2.1, hence the absolutely | ||
43 | * insane amounts of padding around dev_t's. | ||
44 | */ | ||
45 | struct stat64 { | ||
46 | unsigned short st_dev; | ||
47 | unsigned char __pad0[10]; | ||
48 | |||
49 | unsigned long st_ino; | ||
50 | unsigned int st_mode; | ||
51 | unsigned int st_nlink; | ||
52 | |||
53 | unsigned long st_uid; | ||
54 | unsigned long st_gid; | ||
55 | |||
56 | unsigned short st_rdev; | ||
57 | unsigned char __pad3[10]; | ||
58 | |||
59 | long long st_size; | ||
60 | unsigned long st_blksize; | ||
61 | |||
62 | unsigned long st_blocks; /* Number 512-byte blocks allocated. */ | ||
63 | unsigned long __pad4; /* future possible st_blocks high bits */ | ||
64 | |||
65 | unsigned long st_atime; | ||
66 | unsigned long st_atime_nsec; | ||
67 | |||
68 | unsigned long st_mtime; | ||
69 | unsigned long st_mtime_nsec; | ||
70 | |||
71 | unsigned long st_ctime; | ||
72 | unsigned long st_ctime_nsec; /* will be high 32 bits of ctime someday */ | ||
73 | |||
74 | unsigned long __unused1; | ||
75 | unsigned long __unused2; | ||
76 | }; | ||
77 | #else | ||
18 | struct stat { | 78 | struct stat { |
19 | unsigned long st_dev; | 79 | unsigned long st_dev; |
20 | unsigned long st_ino; | 80 | unsigned long st_ino; |
@@ -67,11 +127,12 @@ struct stat64 { | |||
67 | unsigned long st_mtime_nsec; | 127 | unsigned long st_mtime_nsec; |
68 | 128 | ||
69 | unsigned long st_ctime; | 129 | unsigned long st_ctime; |
70 | unsigned long st_ctime_nsec; | 130 | unsigned long st_ctime_nsec; |
71 | 131 | ||
72 | unsigned long long st_ino; | 132 | unsigned long long st_ino; |
73 | }; | 133 | }; |
74 | 134 | ||
75 | #define STAT_HAVE_NSEC 1 | 135 | #define STAT_HAVE_NSEC 1 |
136 | #endif | ||
76 | 137 | ||
77 | #endif /* __ASM_SH_STAT_H */ | 138 | #endif /* __ASM_SH_STAT_H */ |
diff --git a/include/asm-sh/user.h b/include/asm-sh/user.h index d1b8511d9d9f..706b1c7baba9 100644 --- a/include/asm-sh/user.h +++ b/include/asm-sh/user.h | |||
@@ -27,12 +27,19 @@ | |||
27 | * to write an integer number of pages. | 27 | * to write an integer number of pages. |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #if defined(__SH5__) || defined(CONFIG_CPU_SH5) | ||
31 | struct user fpu_struct { | ||
32 | unsigned long fp_regs[32]; | ||
33 | unsigned int fpscr; | ||
34 | }; | ||
35 | #else | ||
30 | struct user_fpu_struct { | 36 | struct user_fpu_struct { |
31 | unsigned long fp_regs[16]; | 37 | unsigned long fp_regs[16]; |
32 | unsigned long xfp_regs[16]; | 38 | unsigned long xfp_regs[16]; |
33 | unsigned long fpscr; | 39 | unsigned long fpscr; |
34 | unsigned long fpul; | 40 | unsigned long fpul; |
35 | }; | 41 | }; |
42 | #endif | ||
36 | 43 | ||
37 | struct user { | 44 | struct user { |
38 | struct pt_regs regs; /* entire machine state */ | 45 | struct pt_regs regs; /* entire machine state */ |