8 #ifndef _ASM_POWERPC_THREAD_INFO_H
9 #define _ASM_POWERPC_THREAD_INFO_H
15 #if defined(CONFIG_PPC64)
16 #define THREAD_SHIFT 14
17 #elif defined(CONFIG_PPC_256K_PAGES)
18 #define THREAD_SHIFT 15
20 #define THREAD_SHIFT 13
23 #define THREAD_SIZE (1 << THREAD_SHIFT)
26 #define CURRENT_THREAD_INFO(dest, sp) clrrdi dest, sp, THREAD_SHIFT
28 #define CURRENT_THREAD_INFO(dest, sp) rlwinm dest, sp, 0, 0, 31-THREAD_SHIFT
33 #include <asm/processor.h>
47 unsigned long local_flags;
56 #define INIT_THREAD_INFO(tsk) \
59 .exec_domain = &default_exec_domain, \
61 .preempt_count = INIT_PREEMPT_COUNT, \
63 .fn = do_no_restart_syscall, \
68 #define init_thread_info (init_thread_union.thread_info)
69 #define init_stack (init_thread_union.stack)
71 #define THREAD_SIZE_ORDER (THREAD_SHIFT - PAGE_SHIFT)
76 register unsigned long sp asm(
"r1");
85 #define PREEMPT_ACTIVE 0x10000000
90 #define TIF_SYSCALL_TRACE 0
91 #define TIF_SIGPENDING 1
92 #define TIF_NEED_RESCHED 2
93 #define TIF_POLLING_NRFLAG 3
96 #define TIF_PERFMON_WORK 5
97 #define TIF_PERFMON_CTXSW 6
98 #define TIF_SYSCALL_AUDIT 7
99 #define TIF_SINGLESTEP 8
101 #define TIF_SECCOMP 10
102 #define TIF_RESTOREALL 11
103 #define TIF_NOERROR 12
104 #define TIF_NOTIFY_RESUME 13
105 #define TIF_UPROBE 14
106 #define TIF_SYSCALL_TRACEPOINT 15
107 #define TIF_EMULATE_STACK_STORE 16
111 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
112 #define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
113 #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
114 #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
115 #define _TIF_32BIT (1<<TIF_32BIT)
116 #define _TIF_PERFMON_WORK (1<<TIF_PERFMON_WORK)
117 #define _TIF_PERFMON_CTXSW (1<<TIF_PERFMON_CTXSW)
118 #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
119 #define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP)
120 #define _TIF_SECCOMP (1<<TIF_SECCOMP)
121 #define _TIF_RESTOREALL (1<<TIF_RESTOREALL)
122 #define _TIF_NOERROR (1<<TIF_NOERROR)
123 #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
124 #define _TIF_UPROBE (1<<TIF_UPROBE)
125 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
126 #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
127 #define _TIF_SYSCALL_T_OR_A (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
128 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT)
130 #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
131 _TIF_NOTIFY_RESUME | _TIF_UPROBE)
132 #define _TIF_PERSYSCALL_MASK (_TIF_RESTOREALL|_TIF_NOERROR)
136 #define TLF_NAPPING 0
137 #define TLF_SLEEPING 1
138 #define TLF_RESTORE_SIGMASK 2
139 #define TLF_LAZY_MMU 3
140 #define TLF_RUNLATCH 4
142 #define _TLF_NAPPING (1 << TLF_NAPPING)
143 #define _TLF_SLEEPING (1 << TLF_SLEEPING)
144 #define _TLF_RESTORE_SIGMASK (1 << TLF_RESTORE_SIGMASK)
145 #define _TLF_LAZY_MMU (1 << TLF_LAZY_MMU)
146 #define _TLF_RUNLATCH (1 << TLF_RUNLATCH)
149 #define HAVE_SET_RESTORE_SIGMASK 1
150 static inline void set_restore_sigmask(
void)
153 ti->local_flags |= _TLF_RESTORE_SIGMASK;
156 static inline void clear_restore_sigmask(
void)
160 static inline bool test_restore_sigmask(
void)
164 static inline bool test_and_clear_restore_sigmask(
void)
167 if (!(ti->local_flags & _TLF_RESTORE_SIGMASK))
169 ti->local_flags &= ~_TLF_RESTORE_SIGMASK;
173 static inline bool test_thread_local_flags(
unsigned int flags)
176 return (ti->local_flags & flags) != 0;
180 #define is_32bit_task() (test_thread_flag(TIF_32BIT))
182 #define is_32bit_task() (1)
185 #define tsk_is_polling(t) test_tsk_thread_flag(t, TIF_POLLING_NRFLAG)