Blame view
init/init_task.c
5.19 KB
b24413180 License cleanup: ... |
1 |
// SPDX-License-Identifier: GPL-2.0 |
a4a2eb490 init_task: Create... |
2 3 4 5 |
#include <linux/init_task.h> #include <linux/export.h> #include <linux/mqueue.h> #include <linux/sched.h> |
cf4aebc29 sched: Move sched... |
6 |
#include <linux/sched/sysctl.h> |
8bd75c77b sched/rt: Move rt... |
7 |
#include <linux/sched/rt.h> |
9164bb4a1 sched/headers: Pr... |
8 |
#include <linux/sched/task.h> |
a4a2eb490 init_task: Create... |
9 10 11 |
#include <linux/init.h> #include <linux/fs.h> #include <linux/mm.h> |
f0b752168 audit: convert se... |
12 |
#include <linux/audit.h> |
a4a2eb490 init_task: Create... |
13 14 |
#include <asm/pgtable.h> |
7c0f6ba68 Replace <asm/uacc... |
15 |
#include <linux/uaccess.h> |
a4a2eb490 init_task: Create... |
16 |
|
3678e2fcc Expand the INIT_S... |
17 18 19 20 21 22 23 24 |
static struct signal_struct init_signals = { .nr_threads = 1, .thread_head = LIST_HEAD_INIT(init_task.thread_node), .wait_chldexit = __WAIT_QUEUE_HEAD_INITIALIZER(init_signals.wait_chldexit), .shared_pending = { .list = LIST_HEAD_INIT(init_signals.shared_pending.list), .signal = {{0}} }, |
c3ad2c3b0 signal: Don't res... |
25 |
.multiprocess = HLIST_HEAD_INIT, |
3678e2fcc Expand the INIT_S... |
26 27 28 29 30 31 32 33 34 35 36 |
.rlim = INIT_RLIMITS, .cred_guard_mutex = __MUTEX_INITIALIZER(init_signals.cred_guard_mutex), #ifdef CONFIG_POSIX_TIMERS .posix_timers = LIST_HEAD_INIT(init_signals.posix_timers), .cputimer = { .cputime_atomic = INIT_CPUTIME_ATOMIC, .running = false, .checking_timer = false, }, #endif INIT_CPU_TIMERS(init_signals) |
2c4704756 pids: Move the pg... |
37 38 |
.pids = { [PIDTYPE_PID] = &init_struct_pid, |
6883f81aa pid: Implement PI... |
39 |
[PIDTYPE_TGID] = &init_struct_pid, |
2c4704756 pids: Move the pg... |
40 41 42 |
[PIDTYPE_PGID] = &init_struct_pid, [PIDTYPE_SID] = &init_struct_pid, }, |
3678e2fcc Expand the INIT_S... |
43 44 45 46 47 48 49 50 51 |
INIT_PREV_CPUTIME(init_signals) }; static struct sighand_struct init_sighand = { .count = ATOMIC_INIT(1), .action = { { { .sa_handler = SIG_DFL, } }, }, .siglock = __SPIN_LOCK_UNLOCKED(init_sighand.siglock), .signalfd_wqh = __WAIT_QUEUE_HEAD_INITIALIZER(init_sighand.signalfd_wqh), }; |
a4a2eb490 init_task: Create... |
52 |
|
d11ed3ab3 Expand INIT_TASK(... |
53 54 55 56 |
/* * Set up the first task table, touch at your own risk!. Base=0, * limit=0x1fffff (=2MB) */ |
0500871f2 Construct init th... |
57 58 59 60 |
struct task_struct init_task #ifdef CONFIG_ARCH_TASK_STRUCT_ON_STACK __init_task_data #endif |
d11ed3ab3 Expand INIT_TASK(... |
61 |
= { |
4e7e3adbb Expand various IN... |
62 63 64 65 |
#ifdef CONFIG_THREAD_INFO_IN_TASK .thread_info = INIT_THREAD_INFO(init_task), .stack_refcount = ATOMIC_INIT(1), #endif |
d11ed3ab3 Expand INIT_TASK(... |
66 67 68 69 |
.state = 0, .stack = init_stack, .usage = ATOMIC_INIT(2), .flags = PF_KTHREAD, |
4e7e3adbb Expand various IN... |
70 71 72 |
.prio = MAX_PRIO - 20, .static_prio = MAX_PRIO - 20, .normal_prio = MAX_PRIO - 20, |
d11ed3ab3 Expand INIT_TASK(... |
73 74 75 76 77 |
.policy = SCHED_NORMAL, .cpus_allowed = CPU_MASK_ALL, .nr_cpus_allowed= NR_CPUS, .mm = NULL, .active_mm = &init_mm, |
4e7e3adbb Expand various IN... |
78 |
.restart_block = { |
d11ed3ab3 Expand INIT_TASK(... |
79 80 81 82 83 84 85 86 87 88 |
.fn = do_no_restart_syscall, }, .se = { .group_node = LIST_HEAD_INIT(init_task.se.group_node), }, .rt = { .run_list = LIST_HEAD_INIT(init_task.rt.run_list), .time_slice = RR_TIMESLICE, }, .tasks = LIST_HEAD_INIT(init_task.tasks), |
4e7e3adbb Expand various IN... |
89 90 91 92 93 94 |
#ifdef CONFIG_SMP .pushable_tasks = PLIST_NODE_INIT(init_task.pushable_tasks, MAX_PRIO), #endif #ifdef CONFIG_CGROUP_SCHED .sched_task_group = &root_task_group, #endif |
d11ed3ab3 Expand INIT_TASK(... |
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
.ptraced = LIST_HEAD_INIT(init_task.ptraced), .ptrace_entry = LIST_HEAD_INIT(init_task.ptrace_entry), .real_parent = &init_task, .parent = &init_task, .children = LIST_HEAD_INIT(init_task.children), .sibling = LIST_HEAD_INIT(init_task.sibling), .group_leader = &init_task, RCU_POINTER_INITIALIZER(real_cred, &init_cred), RCU_POINTER_INITIALIZER(cred, &init_cred), .comm = INIT_TASK_COMM, .thread = INIT_THREAD, .fs = &init_fs, .files = &init_files, .signal = &init_signals, .sighand = &init_sighand, .nsproxy = &init_nsproxy, .pending = { .list = LIST_HEAD_INIT(init_task.pending.list), .signal = {{0}} }, .blocked = {{0}}, .alloc_lock = __SPIN_LOCK_UNLOCKED(init_task.alloc_lock), .journal_info = NULL, INIT_CPU_TIMERS(init_task) .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(init_task.pi_lock), .timer_slack_ns = 50000, /* 50 usec default slack */ |
2c4704756 pids: Move the pg... |
121 |
.thread_pid = &init_struct_pid, |
d11ed3ab3 Expand INIT_TASK(... |
122 123 |
.thread_group = LIST_HEAD_INIT(init_task.thread_group), .thread_node = LIST_HEAD_INIT(init_signals.thread_head), |
4e7e3adbb Expand various IN... |
124 125 |
#ifdef CONFIG_AUDITSYSCALL .loginuid = INVALID_UID, |
f0b752168 audit: convert se... |
126 |
.sessionid = AUDIT_SID_UNSET, |
4e7e3adbb Expand various IN... |
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
#endif #ifdef CONFIG_PERF_EVENTS .perf_event_mutex = __MUTEX_INITIALIZER(init_task.perf_event_mutex), .perf_event_list = LIST_HEAD_INIT(init_task.perf_event_list), #endif #ifdef CONFIG_PREEMPT_RCU .rcu_read_lock_nesting = 0, .rcu_read_unlock_special.s = 0, .rcu_node_entry = LIST_HEAD_INIT(init_task.rcu_node_entry), .rcu_blocked_node = NULL, #endif #ifdef CONFIG_TASKS_RCU .rcu_tasks_holdout = false, .rcu_tasks_holdout_list = LIST_HEAD_INIT(init_task.rcu_tasks_holdout_list), .rcu_tasks_idle_cpu = -1, #endif #ifdef CONFIG_CPUSETS .mems_allowed_seq = SEQCNT_ZERO(init_task.mems_allowed_seq), #endif #ifdef CONFIG_RT_MUTEXES .pi_waiters = RB_ROOT_CACHED, .pi_top_task = NULL, #endif |
d11ed3ab3 Expand INIT_TASK(... |
150 |
INIT_PREV_CPUTIME(init_task) |
4e7e3adbb Expand various IN... |
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN .vtime.seqcount = SEQCNT_ZERO(init_task.vtime_seqcount), .vtime.starttime = 0, .vtime.state = VTIME_SYS, #endif #ifdef CONFIG_NUMA_BALANCING .numa_preferred_nid = -1, .numa_group = NULL, .numa_faults = NULL, #endif #ifdef CONFIG_KASAN .kasan_depth = 1, #endif #ifdef CONFIG_TRACE_IRQFLAGS .softirqs_enabled = 1, #endif #ifdef CONFIG_LOCKDEP .lockdep_recursion = 0, #endif #ifdef CONFIG_FUNCTION_GRAPH_TRACER .ret_stack = NULL, #endif #if defined(CONFIG_TRACING) && defined(CONFIG_PREEMPT) .trace_recursion = 0, #endif #ifdef CONFIG_LIVEPATCH .patch_state = KLP_UNDEFINED, #endif #ifdef CONFIG_SECURITY .security = NULL, #endif |
d11ed3ab3 Expand INIT_TASK(... |
182 |
}; |
a4a2eb490 init_task: Create... |
183 184 185 186 187 188 |
EXPORT_SYMBOL(init_task); /* * Initial thread structure. Alignment of this is handled by a special * linker map entry. */ |
c65eacbe2 sched/core: Allow... |
189 |
#ifndef CONFIG_THREAD_INFO_IN_TASK |
0500871f2 Construct init th... |
190 |
struct thread_info init_thread_info __init_thread_info = INIT_THREAD_INFO(init_task); |
c65eacbe2 sched/core: Allow... |
191 |
#endif |