.. | .. |
---|
121 | 121 | } |
---|
122 | 122 | |
---|
123 | 123 | /* how to get the thread information struct from C */ |
---|
| 124 | +#ifndef BUILD_VDSO |
---|
124 | 125 | register struct thread_info *current_thread_info_reg asm("g6"); |
---|
125 | 126 | #define current_thread_info() (current_thread_info_reg) |
---|
| 127 | +#else |
---|
| 128 | +extern struct thread_info *current_thread_info(void); |
---|
| 129 | +#endif |
---|
126 | 130 | |
---|
127 | 131 | /* thread information allocation */ |
---|
128 | 132 | #if PAGE_SHIFT == 13 |
---|
.. | .. |
---|
176 | 180 | #define TIF_NOTIFY_RESUME 1 /* callback before returning to user */ |
---|
177 | 181 | #define TIF_SIGPENDING 2 /* signal pending */ |
---|
178 | 182 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ |
---|
179 | | -/* flag bit 4 is available */ |
---|
| 183 | +#define TIF_NOTIFY_SIGNAL 4 /* signal notifications exist */ |
---|
180 | 184 | #define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */ |
---|
181 | 185 | #define TIF_UPROBE 6 /* breakpointed or singlestepped */ |
---|
182 | 186 | #define TIF_32BIT 7 /* 32-bit binary */ |
---|
.. | .. |
---|
196 | 200 | #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) |
---|
197 | 201 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) |
---|
198 | 202 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) |
---|
| 203 | +#define _TIF_NOTIFY_SIGNAL (1<<TIF_NOTIFY_SIGNAL) |
---|
199 | 204 | #define _TIF_UNALIGNED (1<<TIF_UNALIGNED) |
---|
200 | 205 | #define _TIF_UPROBE (1<<TIF_UPROBE) |
---|
201 | 206 | #define _TIF_32BIT (1<<TIF_32BIT) |
---|
.. | .. |
---|
209 | 214 | _TIF_DO_NOTIFY_RESUME_MASK | \ |
---|
210 | 215 | _TIF_NEED_RESCHED) |
---|
211 | 216 | #define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | \ |
---|
212 | | - _TIF_SIGPENDING | _TIF_UPROBE) |
---|
| 217 | + _TIF_SIGPENDING | _TIF_UPROBE | \ |
---|
| 218 | + _TIF_NOTIFY_SIGNAL) |
---|
213 | 219 | |
---|
214 | 220 | #define is_32bit_task() (test_thread_flag(TIF_32BIT)) |
---|
215 | 221 | |
---|