1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _LINUX_SCHED_HOTPLUG_H 3*4882a593Smuzhiyun #define _LINUX_SCHED_HOTPLUG_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun /* 6*4882a593Smuzhiyun * Scheduler interfaces for hotplug CPU support: 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun extern int sched_cpu_starting(unsigned int cpu); 10*4882a593Smuzhiyun extern int sched_cpu_activate(unsigned int cpu); 11*4882a593Smuzhiyun extern int sched_cpus_activate(struct cpumask *cpus); 12*4882a593Smuzhiyun extern int sched_cpu_deactivate(unsigned int cpu); 13*4882a593Smuzhiyun extern int sched_cpus_deactivate_nosync(struct cpumask *cpus); 14*4882a593Smuzhiyun extern int sched_cpu_drain_rq(unsigned int cpu); 15*4882a593Smuzhiyun extern void sched_cpu_drain_rq_wait(unsigned int cpu); 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #ifdef CONFIG_HOTPLUG_CPU 18*4882a593Smuzhiyun extern int sched_cpu_dying(unsigned int cpu); 19*4882a593Smuzhiyun #else 20*4882a593Smuzhiyun # define sched_cpu_dying NULL 21*4882a593Smuzhiyun #endif 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #ifdef CONFIG_HOTPLUG_CPU 24*4882a593Smuzhiyun extern void idle_task_exit(void); 25*4882a593Smuzhiyun #else idle_task_exit(void)26*4882a593Smuzhiyunstatic inline void idle_task_exit(void) {} 27*4882a593Smuzhiyun #endif 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #endif /* _LINUX_SCHED_HOTPLUG_H */ 30