init_task.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _LINUX__INIT_TASK_H
  3. #define _LINUX__INIT_TASK_H
  4. #include <linux/rcupdate.h>
  5. #include <linux/irqflags.h>
  6. #include <linux/utsname.h>
  7. #include <linux/lockdep.h>
  8. #include <linux/ftrace.h>
  9. #include <linux/ipc.h>
  10. #include <linux/pid_namespace.h>
  11. #include <linux/user_namespace.h>
  12. #include <linux/securebits.h>
  13. #include <linux/seqlock.h>
  14. #include <linux/rbtree.h>
  15. #include <linux/sched/autogroup.h>
  16. #include <net/net_namespace.h>
  17. #include <linux/sched/rt.h>
  18. #include <linux/livepatch.h>
  19. #include <linux/mm_types.h>
  20. #include <asm/thread_info.h>
  21. extern struct files_struct init_files;
  22. extern struct fs_struct init_fs;
  23. extern struct nsproxy init_nsproxy;
  24. extern struct group_info init_groups;
  25. extern struct cred init_cred;
  26. #ifndef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
  27. #define INIT_PREV_CPUTIME(x) .prev_cputime = { \
  28. .lock = __RAW_SPIN_LOCK_UNLOCKED(x.prev_cputime.lock), \
  29. },
  30. #else
  31. #define INIT_PREV_CPUTIME(x)
  32. #endif
  33. #ifdef CONFIG_POSIX_TIMERS
  34. #define INIT_CPU_TIMERS(s) \
  35. .cpu_timers = { \
  36. LIST_HEAD_INIT(s.cpu_timers[0]), \
  37. LIST_HEAD_INIT(s.cpu_timers[1]), \
  38. LIST_HEAD_INIT(s.cpu_timers[2]), \
  39. },
  40. #else
  41. #define INIT_CPU_TIMERS(s)
  42. #endif
  43. #define INIT_TASK_COMM "swapper"
  44. /* Attach to the init_task data structure for proper alignment */
  45. #ifdef CONFIG_ARCH_TASK_STRUCT_ON_STACK
  46. #define __init_task_data __attribute__((__section__(".data..init_task")))
  47. #else
  48. #define __init_task_data /**/
  49. #endif
  50. /* Attach to the thread_info data structure for proper alignment */
  51. #define __init_thread_info __attribute__((__section__(".data..init_thread_info")))
  52. #endif