| .. | .. |
|---|
| 21 | 21 | |
|---|
| 22 | 22 | struct task_struct; |
|---|
| 23 | 23 | |
|---|
| 24 | +#include <dovetail/thread_info.h> |
|---|
| 24 | 25 | #include <asm/types.h> |
|---|
| 25 | 26 | |
|---|
| 26 | 27 | typedef unsigned long mm_segment_t; |
|---|
| .. | .. |
|---|
| 45 | 46 | */ |
|---|
| 46 | 47 | struct thread_info { |
|---|
| 47 | 48 | unsigned long flags; /* low level flags */ |
|---|
| 49 | + __u32 local_flags; /* local (synchronous) flags */ |
|---|
| 48 | 50 | int preempt_count; /* 0 => preemptable, <0 => bug */ |
|---|
| 49 | 51 | mm_segment_t addr_limit; /* address limit */ |
|---|
| 50 | 52 | struct task_struct *task; /* main task structure */ |
|---|
| .. | .. |
|---|
| 65 | 67 | #ifdef CONFIG_ARM_THUMBEE |
|---|
| 66 | 68 | unsigned long thumbee_state; /* ThumbEE Handler Base register */ |
|---|
| 67 | 69 | #endif |
|---|
| 70 | + struct oob_thread_state oob_state; /* co-kernel thread state */ |
|---|
| 68 | 71 | }; |
|---|
| 69 | 72 | |
|---|
| 70 | 73 | #define INIT_THREAD_INFO(tsk) \ |
|---|
| 71 | 74 | { \ |
|---|
| 72 | 75 | .task = &tsk, \ |
|---|
| 73 | 76 | .flags = 0, \ |
|---|
| 77 | + .local_flags = 0, \ |
|---|
| 74 | 78 | .preempt_count = INIT_PREEMPT_COUNT, \ |
|---|
| 75 | 79 | .addr_limit = KERNEL_DS, \ |
|---|
| 76 | 80 | } |
|---|
| 81 | + |
|---|
| 82 | +#define ti_local_flags(__ti) ((__ti)->local_flags) |
|---|
| 77 | 83 | |
|---|
| 78 | 84 | /* |
|---|
| 79 | 85 | * how to get the thread information struct from C |
|---|
| .. | .. |
|---|
| 142 | 148 | #define TIF_USING_IWMMXT 17 |
|---|
| 143 | 149 | #define TIF_MEMDIE 18 /* is terminating due to OOM killer */ |
|---|
| 144 | 150 | #define TIF_RESTORE_SIGMASK 20 |
|---|
| 151 | +#define TIF_MAYDAY 21 /* emergency trap pending */ |
|---|
| 152 | +#define TIF_RETUSER 22 /* INBAND_TASK_RETUSER is pending */ |
|---|
| 145 | 153 | |
|---|
| 146 | 154 | #define _TIF_SIGPENDING (1 << TIF_SIGPENDING) |
|---|
| 147 | 155 | #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) |
|---|
| .. | .. |
|---|
| 153 | 161 | #define _TIF_SECCOMP (1 << TIF_SECCOMP) |
|---|
| 154 | 162 | #define _TIF_NOTIFY_SIGNAL (1 << TIF_NOTIFY_SIGNAL) |
|---|
| 155 | 163 | #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT) |
|---|
| 164 | +#define _TIF_MAYDAY (1 << TIF_MAYDAY) |
|---|
| 165 | +#define _TIF_RETUSER (1 << TIF_RETUSER) |
|---|
| 156 | 166 | |
|---|
| 157 | 167 | /* Checks for any syscall work in entry-common.S */ |
|---|
| 158 | 168 | #define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ |
|---|
| .. | .. |
|---|
| 163 | 173 | */ |
|---|
| 164 | 174 | #define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \ |
|---|
| 165 | 175 | _TIF_NOTIFY_RESUME | _TIF_UPROBE | \ |
|---|
| 166 | | - _TIF_NOTIFY_SIGNAL) |
|---|
| 176 | + _TIF_NOTIFY_SIGNAL | _TIF_RETUSER) |
|---|
| 177 | + |
|---|
| 178 | +/* |
|---|
| 179 | + * Local (synchronous) thread flags. |
|---|
| 180 | + */ |
|---|
| 181 | +#define _TLF_OOB 0x0001 |
|---|
| 182 | +#define _TLF_DOVETAIL 0x0002 |
|---|
| 183 | +#define _TLF_OFFSTAGE 0x0004 |
|---|
| 184 | +#define _TLF_OOBTRAP 0x0008 |
|---|
| 167 | 185 | |
|---|
| 168 | 186 | #endif /* __KERNEL__ */ |
|---|
| 169 | 187 | #endif /* __ASM_ARM_THREAD_INFO_H */ |
|---|