162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef _LINUX_SCHED_HOTPLUG_H
362306a36Sopenharmony_ci#define _LINUX_SCHED_HOTPLUG_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci/*
662306a36Sopenharmony_ci * Scheduler interfaces for hotplug CPU support:
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciextern int sched_cpu_starting(unsigned int cpu);
1062306a36Sopenharmony_ciextern int sched_cpu_activate(unsigned int cpu);
1162306a36Sopenharmony_ciextern int sched_cpu_deactivate(unsigned int cpu);
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#ifdef CONFIG_HOTPLUG_CPU
1462306a36Sopenharmony_ciextern int sched_cpu_wait_empty(unsigned int cpu);
1562306a36Sopenharmony_ciextern int sched_cpu_dying(unsigned int cpu);
1662306a36Sopenharmony_ci#else
1762306a36Sopenharmony_ci# define sched_cpu_wait_empty	NULL
1862306a36Sopenharmony_ci# define sched_cpu_dying	NULL
1962306a36Sopenharmony_ci#endif
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci#ifdef CONFIG_HOTPLUG_CPU
2262306a36Sopenharmony_ciextern void idle_task_exit(void);
2362306a36Sopenharmony_ci#else
2462306a36Sopenharmony_cistatic inline void idle_task_exit(void) {}
2562306a36Sopenharmony_ci#endif
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci#endif /* _LINUX_SCHED_HOTPLUG_H */
28