blob: 485b81cfab34fd2189203df091fe494a9d10efbd [file] [log] [blame]
Thomas Gleixner38498a62012-04-20 13:05:44 +00001#ifndef SMPBOOT_H
2#define SMPBOOT_H
3
Thomas Gleixner29d5e042012-04-20 13:05:45 +00004struct task_struct;
5
Thomas Gleixner29d5e042012-04-20 13:05:45 +00006#ifdef CONFIG_GENERIC_SMP_IDLE_THREAD
7struct task_struct *idle_thread_get(unsigned int cpu);
8void idle_thread_set_boot_cpu(void);
Suresh Siddha3bb5d2e2012-04-20 17:08:50 -07009void idle_threads_init(void);
Thomas Gleixner29d5e042012-04-20 13:05:45 +000010#else
11static inline struct task_struct *idle_thread_get(unsigned int cpu) { return NULL; }
12static inline void idle_thread_set_boot_cpu(void) { }
Thomas Gleixner43a18b12012-05-04 12:52:25 +020013static inline void idle_threads_init(void) { }
Thomas Gleixner29d5e042012-04-20 13:05:45 +000014#endif
15
Thomas Gleixnerf97f8f02012-07-16 10:42:36 +000016int smpboot_create_threads(unsigned int cpu);
Thomas Gleixner931ef162016-02-26 18:43:36 +000017int smpboot_park_threads(unsigned int cpu);
18int smpboot_unpark_threads(unsigned int cpu);
Thomas Gleixnerf97f8f02012-07-16 10:42:36 +000019
Thomas Gleixner4cb28ce2016-02-26 18:43:38 +000020void __init cpuhp_threads_init(void);
21
Thomas Gleixner38498a62012-04-20 13:05:44 +000022#endif