2012-05-03 09:02:48 +00:00
|
|
|
#include <linux/init_task.h>
|
|
|
|
|
#include <linux/export.h>
|
|
|
|
|
#include <linux/mqueue.h>
|
|
|
|
|
#include <linux/sched.h>
|
2013-02-07 09:46:59 -06:00
|
|
|
#include <linux/sched/sysctl.h>
|
2013-02-07 09:47:07 -06:00
|
|
|
#include <linux/sched/rt.h>
|
2012-05-03 09:02:48 +00:00
|
|
|
#include <linux/init.h>
|
|
|
|
|
#include <linux/fs.h>
|
|
|
|
|
#include <linux/mm.h>
|
|
|
|
|
|
|
|
|
|
#include <asm/pgtable.h>
|
|
|
|
|
#include <asm/uaccess.h>
|
|
|
|
|
|
2018-01-02 15:12:01 +00:00
|
|
|
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}}
|
|
|
|
|
},
|
|
|
|
|
.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)
|
2017-05-05 13:31:23 -05:00
|
|
|
.leader_pid = &init_struct_pid,
|
2018-01-02 15:12:01 +00:00
|
|
|
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),
|
|
|
|
|
};
|
2012-05-03 09:02:48 +00:00
|
|
|
|
|
|
|
|
/* Initial task structure */
|
|
|
|
|
struct task_struct init_task = INIT_TASK(init_task);
|
|
|
|
|
EXPORT_SYMBOL(init_task);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Initial thread structure. Alignment of this is handled by a special
|
|
|
|
|
* linker map entry.
|
|
|
|
|
*/
|
2016-09-13 14:29:24 -07:00
|
|
|
union thread_union init_thread_union __init_task_data = {
|
|
|
|
|
#ifndef CONFIG_THREAD_INFO_IN_TASK
|
|
|
|
|
INIT_THREAD_INFO(init_task)
|
|
|
|
|
#endif
|
|
|
|
|
};
|