Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 6fdca3c5ab55d6a74277efcae2db9828f567a06a 50 lines 1.6 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * include/linux/cpuhplock.h - CPU hotplug locking 4 * 5 * Locking functions for CPU hotplug. 6 */ 7#ifndef _LINUX_CPUHPLOCK_H_ 8#define _LINUX_CPUHPLOCK_H_ 9 10#include <linux/cleanup.h> 11#include <linux/errno.h> 12 13struct device; 14 15extern int lockdep_is_cpus_held(void); 16extern int lockdep_is_cpus_write_held(void); 17 18#ifdef CONFIG_HOTPLUG_CPU 19void cpus_write_lock(void); 20void cpus_write_unlock(void); 21void cpus_read_lock(void); 22void cpus_read_unlock(void); 23int cpus_read_trylock(void); 24void lockdep_assert_cpus_held(void); 25void cpu_hotplug_disable_offlining(void); 26void cpu_hotplug_disable(void); 27void cpu_hotplug_enable(void); 28void clear_tasks_mm_cpumask(int cpu); 29int remove_cpu(unsigned int cpu); 30int cpu_device_down(struct device *dev); 31void smp_shutdown_nonboot_cpus(unsigned int primary_cpu); 32 33#else /* CONFIG_HOTPLUG_CPU */ 34 35static inline void cpus_write_lock(void) { } 36static inline void cpus_write_unlock(void) { } 37static inline void cpus_read_lock(void) { } 38static inline void cpus_read_unlock(void) { } 39static inline int cpus_read_trylock(void) { return true; } 40static inline void lockdep_assert_cpus_held(void) { } 41static inline void cpu_hotplug_disable_offlining(void) { } 42static inline void cpu_hotplug_disable(void) { } 43static inline void cpu_hotplug_enable(void) { } 44static inline int remove_cpu(unsigned int cpu) { return -EPERM; } 45static inline void smp_shutdown_nonboot_cpus(unsigned int primary_cpu) { } 46#endif /* !CONFIG_HOTPLUG_CPU */ 47 48DEFINE_LOCK_GUARD_0(cpus_read_lock, cpus_read_lock(), cpus_read_unlock()) 49 50#endif /* _LINUX_CPUHPLOCK_H_ */