ARM: tegra: add sysfs support for tegra cpuquiet driver
[linux-2.6.git] / include / linux / thread_info.h
index 81c5f82..8d03f07 100644 (file)
@@ -18,26 +18,32 @@ struct compat_timespec;
 struct restart_block {
        long (*fn)(struct restart_block *);
        union {
+               /* For futex_wait and futex_wait_requeue_pi */
                struct {
-                       unsigned long arg0, arg1, arg2, arg3;
-               };
-               /* For futex_wait */
-               struct {
-                       u32 *uaddr;
+                       u32 __user *uaddr;
                        u32 val;
                        u32 flags;
                        u32 bitset;
                        u64 time;
+                       u32 __user *uaddr2;
                } futex;
                /* For nanosleep */
                struct {
-                       clockid_t index;
+                       clockid_t clockid;
                        struct timespec __user *rmtp;
 #ifdef CONFIG_COMPAT
                        struct compat_timespec __user *compat_rmtp;
 #endif
                        u64 expires;
                } nanosleep;
+               /* For poll */
+               struct {
+                       struct pollfd __user *ufds;
+                       int nfds;
+                       int has_timeout;
+                       unsigned long tv_sec;
+                       unsigned long tv_nsec;
+               } poll;
        };
 };
 
@@ -92,7 +98,13 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
 #define set_need_resched()     set_thread_flag(TIF_NEED_RESCHED)
 #define clear_need_resched()   clear_thread_flag(TIF_NEED_RESCHED)
 
-#ifdef TIF_RESTORE_SIGMASK
+#if defined TIF_RESTORE_SIGMASK && !defined HAVE_SET_RESTORE_SIGMASK
+/*
+ * An arch can define its own version of set_restore_sigmask() to get the
+ * job done however works, with or without TIF_RESTORE_SIGMASK.
+ */
+#define HAVE_SET_RESTORE_SIGMASK       1
+
 /**
  * set_restore_sigmask() - make sure saved_sigmask processing gets done
  *
@@ -109,7 +121,7 @@ static inline void set_restore_sigmask(void)
        set_thread_flag(TIF_RESTORE_SIGMASK);
        set_thread_flag(TIF_SIGPENDING);
 }
-#endif /* TIF_RESTORE_SIGMASK */
+#endif /* TIF_RESTORE_SIGMASK && !HAVE_SET_RESTORE_SIGMASK */
 
 #endif /* __KERNEL__ */