blob: 118c5b9dedacf9fdbb9ed719dffa4c430a4af2f9 [file] [log] [blame]
Bryan Wu1394f032007-05-06 14:50:22 -07001/*
Robin Getz96f10502009-09-24 14:11:24 +00002 * Copyright 2004-2009 Analog Devices Inc.
Bryan Wu1394f032007-05-06 14:50:22 -07003 *
Robin Getz96f10502009-09-24 14:11:24 +00004 * Licensed under the GPL-2 or later
Bryan Wu1394f032007-05-06 14:50:22 -07005 */
6
7#include <linux/mm.h>
8#include <linux/module.h>
9#include <linux/init_task.h>
10#include <linux/mqueue.h>
Bryan Wud31c5ab2007-08-10 13:00:42 -070011#include <linux/fs.h>
Bryan Wu1394f032007-05-06 14:50:22 -070012
Bryan Wu1394f032007-05-06 14:50:22 -070013static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
14static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
Bryan Wu1394f032007-05-06 14:50:22 -070015/*
16 * Initial task structure.
17 *
18 * All other task structs will be allocated on slabs in fork.c
19 */
20struct task_struct init_task = INIT_TASK(init_task);
21EXPORT_SYMBOL(init_task);
22
23/*
24 * Initial thread structure.
25 *
26 * We need to make sure that this is 8192-byte aligned due to the
27 * way process stacks are handled. This is done by having a special
28 * "init_task" linker map entry.
29 */
30union thread_union init_thread_union
Mike Frysingerb7627ac2008-02-02 15:53:17 +080031 __attribute__ ((__section__(".init_task.data"))) = {
Bryan Wu1394f032007-05-06 14:50:22 -070032INIT_THREAD_INFO(init_task)};