diff options
Diffstat (limited to 'arch/mips/kernel/linux32.c')
-rw-r--r-- | arch/mips/kernel/linux32.c | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c index 89223a9bff2c..aa2c55e3b55f 100644 --- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c | |||
@@ -133,72 +133,6 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy, | |||
133 | return sys_ftruncate(fd, merge_64(a2, a3)); | 133 | return sys_ftruncate(fd, merge_64(a2, a3)); |
134 | } | 134 | } |
135 | 135 | ||
136 | static inline long | ||
137 | get_tv32(struct timeval *o, struct compat_timeval __user *i) | ||
138 | { | ||
139 | return (!access_ok(VERIFY_READ, i, sizeof(*i)) || | ||
140 | (__get_user(o->tv_sec, &i->tv_sec) | | ||
141 | __get_user(o->tv_usec, &i->tv_usec))); | ||
142 | } | ||
143 | |||
144 | static inline long | ||
145 | put_tv32(struct compat_timeval __user *o, struct timeval *i) | ||
146 | { | ||
147 | return (!access_ok(VERIFY_WRITE, o, sizeof(*o)) || | ||
148 | (__put_user(i->tv_sec, &o->tv_sec) | | ||
149 | __put_user(i->tv_usec, &o->tv_usec))); | ||
150 | } | ||
151 | |||
152 | extern struct timezone sys_tz; | ||
153 | |||
154 | asmlinkage int | ||
155 | sys32_gettimeofday(struct compat_timeval __user *tv, struct timezone __user *tz) | ||
156 | { | ||
157 | if (tv) { | ||
158 | struct timeval ktv; | ||
159 | do_gettimeofday(&ktv); | ||
160 | if (put_tv32(tv, &ktv)) | ||
161 | return -EFAULT; | ||
162 | } | ||
163 | if (tz) { | ||
164 | if (copy_to_user(tz, &sys_tz, sizeof(sys_tz))) | ||
165 | return -EFAULT; | ||
166 | } | ||
167 | return 0; | ||
168 | } | ||
169 | |||
170 | static inline long get_ts32(struct timespec *o, struct compat_timeval __user *i) | ||
171 | { | ||
172 | long usec; | ||
173 | |||
174 | if (!access_ok(VERIFY_READ, i, sizeof(*i))) | ||
175 | return -EFAULT; | ||
176 | if (__get_user(o->tv_sec, &i->tv_sec)) | ||
177 | return -EFAULT; | ||
178 | if (__get_user(usec, &i->tv_usec)) | ||
179 | return -EFAULT; | ||
180 | o->tv_nsec = usec * 1000; | ||
181 | return 0; | ||
182 | } | ||
183 | |||
184 | asmlinkage int | ||
185 | sys32_settimeofday(struct compat_timeval __user *tv, struct timezone __user *tz) | ||
186 | { | ||
187 | struct timespec kts; | ||
188 | struct timezone ktz; | ||
189 | |||
190 | if (tv) { | ||
191 | if (get_ts32(&kts, tv)) | ||
192 | return -EFAULT; | ||
193 | } | ||
194 | if (tz) { | ||
195 | if (copy_from_user(&ktz, tz, sizeof(ktz))) | ||
196 | return -EFAULT; | ||
197 | } | ||
198 | |||
199 | return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL); | ||
200 | } | ||
201 | |||
202 | asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high, | 136 | asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high, |
203 | unsigned int offset_low, loff_t __user * result, | 137 | unsigned int offset_low, loff_t __user * result, |
204 | unsigned int origin) | 138 | unsigned int origin) |