Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / include / linux / compat.h
index 01c0aa5..e649426 100644 (file)
@@ -146,27 +146,24 @@ struct compat_sigaction {
        compat_sigset_t                 sa_mask __packed;
 };
 
-/*
- * These functions operate strictly on struct compat_time*
- */
-extern int get_compat_timespec(struct timespec *,
-                              const struct compat_timespec __user *);
-extern int put_compat_timespec(const struct timespec *,
-                              struct compat_timespec __user *);
-extern int get_compat_timeval(struct timeval *,
-                             const struct compat_timeval __user *);
-extern int put_compat_timeval(const struct timeval *,
-                             struct compat_timeval __user *);
 /*
  * These functions operate on 32- or 64-bit specs depending on
- * COMPAT_USE_64BIT_TIME, hence the void user pointer arguments and the
- * naming as compat_get/put_ rather than get/put_compat_.
+ * COMPAT_USE_64BIT_TIME, hence the void user pointer arguments.
  */
 extern int compat_get_timespec(struct timespec *, const void __user *);
 extern int compat_put_timespec(const struct timespec *, void __user *);
 extern int compat_get_timeval(struct timeval *, const void __user *);
 extern int compat_put_timeval(const struct timeval *, void __user *);
 
+/*
+ * This function convert a timespec if necessary and returns a *user
+ * space* pointer.  If no conversion is necessary, it returns the
+ * initial pointer.  NULL is a legitimate argument and will always
+ * output NULL.
+ */
+extern int compat_convert_timespec(struct timespec __user **,
+                                  const void __user *);
+
 struct compat_iovec {
        compat_uptr_t   iov_base;
        compat_size_t   iov_len;