1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#ifndef _ASM_THREAD_INFO_H
22#define _ASM_THREAD_INFO_H
23
24#ifdef __KERNEL__
25
26#ifndef __ASSEMBLY__
27#include <asm/processor.h>
28#include <asm/registers.h>
29#include <asm/page.h>
30#endif
31
32#define THREAD_SHIFT 12
33#define THREAD_SIZE (1<<THREAD_SHIFT)
34#define THREAD_SIZE_ORDER (THREAD_SHIFT - PAGE_SHIFT)
35
36#ifndef __ASSEMBLY__
37
38typedef struct {
39 unsigned long seg;
40} mm_segment_t;
41
42
43
44
45
46
47
48struct thread_info {
49 struct task_struct *task;
50 struct exec_domain *exec_domain;
51 unsigned long flags;
52 __u32 cpu;
53 int preempt_count;
54 mm_segment_t addr_limit;
55
56
57
58
59 struct restart_block restart_block;
60
61 struct pt_regs *regs;
62
63
64
65
66
67 unsigned long sp;
68};
69
70#else
71
72#include <asm/asm-offsets.h>
73
74#endif
75
76
77
78#define PREEMPT_ACTIVE 0x10000000
79
80#ifndef __ASSEMBLY__
81
82#define INIT_THREAD_INFO(tsk) \
83{ \
84 .task = &tsk, \
85 .exec_domain = &default_exec_domain, \
86 .flags = 0, \
87 .cpu = 0, \
88 .preempt_count = 1, \
89 .addr_limit = KERNEL_DS, \
90 .restart_block = { \
91 .fn = do_no_restart_syscall, \
92 }, \
93 .sp = 0, \
94 .regs = NULL, \
95}
96
97#define init_thread_info (init_thread_union.thread_info)
98#define init_stack (init_thread_union.stack)
99
100
101#define qqstr(s) qstr(s)
102#define qstr(s) #s
103#define QUOTED_THREADINFO_REG qqstr(THREADINFO_REG)
104
105register struct thread_info *__current_thread_info asm(QUOTED_THREADINFO_REG);
106#define current_thread_info() __current_thread_info
107
108#endif
109
110
111
112
113
114
115
116
117
118#define TIF_SYSCALL_TRACE 0
119#define TIF_NOTIFY_RESUME 1
120#define TIF_SIGPENDING 2
121#define TIF_NEED_RESCHED 3
122#define TIF_SINGLESTEP 4
123#define TIF_RESTORE_SIGMASK 6
124
125#define TIF_MEMDIE 17
126
127#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
128#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
129#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
130#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
131#define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP)
132
133
134#define _TIF_WORK_MASK (0x0000FFFF & ~_TIF_SYSCALL_TRACE)
135
136
137#define _TIF_ALLWORK_MASK 0x0000FFFF
138
139#endif
140
141#endif
142