aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/init_task.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/init_task.h')
-rw-r--r--include/linux/init_task.h46
1 files changed, 14 insertions, 32 deletions
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 6d087c5f57f..d14e058aaee 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -23,17 +23,11 @@ extern struct files_struct init_files;
23extern struct fs_struct init_fs; 23extern struct fs_struct init_fs;
24 24
25#ifdef CONFIG_CGROUPS 25#ifdef CONFIG_CGROUPS
26#define INIT_GROUP_RWSEM(sig) \ 26#define INIT_THREADGROUP_FORK_LOCK(sig) \
27 .group_rwsem = __RWSEM_INITIALIZER(sig.group_rwsem), 27 .threadgroup_fork_lock = \
28 __RWSEM_INITIALIZER(sig.threadgroup_fork_lock),
28#else 29#else
29#define INIT_GROUP_RWSEM(sig) 30#define INIT_THREADGROUP_FORK_LOCK(sig)
30#endif
31
32#ifdef CONFIG_CPUSETS
33#define INIT_CPUSET_SEQ \
34 .mems_allowed_seq = SEQCNT_ZERO,
35#else
36#define INIT_CPUSET_SEQ
37#endif 31#endif
38 32
39#define INIT_SIGNALS(sig) { \ 33#define INIT_SIGNALS(sig) { \
@@ -48,11 +42,11 @@ extern struct fs_struct init_fs;
48 .cputimer = { \ 42 .cputimer = { \
49 .cputime = INIT_CPUTIME, \ 43 .cputime = INIT_CPUTIME, \
50 .running = 0, \ 44 .running = 0, \
51 .lock = __RAW_SPIN_LOCK_UNLOCKED(sig.cputimer.lock), \ 45 .lock = __SPIN_LOCK_UNLOCKED(sig.cputimer.lock), \
52 }, \ 46 }, \
53 .cred_guard_mutex = \ 47 .cred_guard_mutex = \
54 __MUTEX_INITIALIZER(sig.cred_guard_mutex), \ 48 __MUTEX_INITIALIZER(sig.cred_guard_mutex), \
55 INIT_GROUP_RWSEM(sig) \ 49 INIT_THREADGROUP_FORK_LOCK(sig) \
56} 50}
57 51
58extern struct nsproxy init_nsproxy; 52extern struct nsproxy init_nsproxy;
@@ -92,7 +86,7 @@ extern struct group_info init_groups;
92 86
93#ifdef CONFIG_AUDITSYSCALL 87#ifdef CONFIG_AUDITSYSCALL
94#define INIT_IDS \ 88#define INIT_IDS \
95 .loginuid = INVALID_UID, \ 89 .loginuid = -1, \
96 .sessionid = -1, 90 .sessionid = -1,
97#else 91#else
98#define INIT_IDS 92#define INIT_IDS
@@ -123,17 +117,8 @@ extern struct group_info init_groups;
123 117
124extern struct cred init_cred; 118extern struct cred init_cred;
125 119
126extern struct task_group root_task_group;
127
128#ifdef CONFIG_CGROUP_SCHED
129# define INIT_CGROUP_SCHED(tsk) \
130 .sched_task_group = &root_task_group,
131#else
132# define INIT_CGROUP_SCHED(tsk)
133#endif
134
135#ifdef CONFIG_PERF_EVENTS 120#ifdef CONFIG_PERF_EVENTS
136# define INIT_PERF_EVENTS(tsk) \ 121# define INIT_PERF_EVENTS(tsk) \
137 .perf_event_mutex = \ 122 .perf_event_mutex = \
138 __MUTEX_INITIALIZER(tsk.perf_event_mutex), \ 123 __MUTEX_INITIALIZER(tsk.perf_event_mutex), \
139 .perf_event_list = LIST_HEAD_INIT(tsk.perf_event_list), 124 .perf_event_list = LIST_HEAD_INIT(tsk.perf_event_list),
@@ -141,8 +126,6 @@ extern struct task_group root_task_group;
141# define INIT_PERF_EVENTS(tsk) 126# define INIT_PERF_EVENTS(tsk)
142#endif 127#endif
143 128
144#define INIT_TASK_COMM "swapper"
145
146/* 129/*
147 * INIT_TASK is used to set up the first task table, touch at 130 * INIT_TASK is used to set up the first task table, touch at
148 * your own risk!. Base=0, limit=0x1fffff (=2MB) 131 * your own risk!. Base=0, limit=0x1fffff (=2MB)
@@ -158,7 +141,6 @@ extern struct task_group root_task_group;
158 .normal_prio = MAX_PRIO-20, \ 141 .normal_prio = MAX_PRIO-20, \
159 .policy = SCHED_NORMAL, \ 142 .policy = SCHED_NORMAL, \
160 .cpus_allowed = CPU_MASK_ALL, \ 143 .cpus_allowed = CPU_MASK_ALL, \
161 .nr_cpus_allowed= NR_CPUS, \
162 .mm = NULL, \ 144 .mm = NULL, \
163 .active_mm = &init_mm, \ 145 .active_mm = &init_mm, \
164 .se = { \ 146 .se = { \
@@ -166,11 +148,11 @@ extern struct task_group root_task_group;
166 }, \ 148 }, \
167 .rt = { \ 149 .rt = { \
168 .run_list = LIST_HEAD_INIT(tsk.rt.run_list), \ 150 .run_list = LIST_HEAD_INIT(tsk.rt.run_list), \
169 .time_slice = RR_TIMESLICE, \ 151 .time_slice = HZ, \
152 .nr_cpus_allowed = NR_CPUS, \
170 }, \ 153 }, \
171 .tasks = LIST_HEAD_INIT(tsk.tasks), \ 154 .tasks = LIST_HEAD_INIT(tsk.tasks), \
172 INIT_PUSHABLE_TASKS(tsk) \ 155 INIT_PUSHABLE_TASKS(tsk) \
173 INIT_CGROUP_SCHED(tsk) \
174 .ptraced = LIST_HEAD_INIT(tsk.ptraced), \ 156 .ptraced = LIST_HEAD_INIT(tsk.ptraced), \
175 .ptrace_entry = LIST_HEAD_INIT(tsk.ptrace_entry), \ 157 .ptrace_entry = LIST_HEAD_INIT(tsk.ptrace_entry), \
176 .real_parent = &tsk, \ 158 .real_parent = &tsk, \
@@ -178,9 +160,9 @@ extern struct task_group root_task_group;
178 .children = LIST_HEAD_INIT(tsk.children), \ 160 .children = LIST_HEAD_INIT(tsk.children), \
179 .sibling = LIST_HEAD_INIT(tsk.sibling), \ 161 .sibling = LIST_HEAD_INIT(tsk.sibling), \
180 .group_leader = &tsk, \ 162 .group_leader = &tsk, \
181 RCU_POINTER_INITIALIZER(real_cred, &init_cred), \ 163 RCU_INIT_POINTER(.real_cred, &init_cred), \
182 RCU_POINTER_INITIALIZER(cred, &init_cred), \ 164 RCU_INIT_POINTER(.cred, &init_cred), \
183 .comm = INIT_TASK_COMM, \ 165 .comm = "swapper", \
184 .thread = INIT_THREAD, \ 166 .thread = INIT_THREAD, \
185 .fs = &init_fs, \ 167 .fs = &init_fs, \
186 .files = &init_files, \ 168 .files = &init_files, \
@@ -202,6 +184,7 @@ extern struct task_group root_task_group;
202 [PIDTYPE_SID] = INIT_PID_LINK(PIDTYPE_SID), \ 184 [PIDTYPE_SID] = INIT_PID_LINK(PIDTYPE_SID), \
203 }, \ 185 }, \
204 .thread_group = LIST_HEAD_INIT(tsk.thread_group), \ 186 .thread_group = LIST_HEAD_INIT(tsk.thread_group), \
187 .dirties = INIT_PROP_LOCAL_SINGLE(dirties), \
205 INIT_IDS \ 188 INIT_IDS \
206 INIT_PERF_EVENTS(tsk) \ 189 INIT_PERF_EVENTS(tsk) \
207 INIT_TRACE_IRQFLAGS \ 190 INIT_TRACE_IRQFLAGS \
@@ -209,7 +192,6 @@ extern struct task_group root_task_group;
209 INIT_FTRACE_GRAPH \ 192 INIT_FTRACE_GRAPH \
210 INIT_TRACE_RECURSION \ 193 INIT_TRACE_RECURSION \
211 INIT_TASK_RCU_PREEMPT(tsk) \ 194 INIT_TASK_RCU_PREEMPT(tsk) \
212 INIT_CPUSET_SEQ \
213} 195}
214 196
215 197