⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpu.h

📁 Axis 221 camera embedded programing interface
💻 H
字号:
/* * include/linux/cpu.h - generic cpu definition * * This is mainly for topological representation. We define the  * basic 'struct cpu' here, which can be embedded in per-arch  * definitions of processors. * * Basic handling of the devices is done in drivers/base/cpu.c * and system devices are handled in drivers/base/sys.c.  * * CPUs are exported via sysfs in the class/cpu/devices/ * directory.  * * Per-cpu interfaces can be implemented using a struct device_interface.  * See the following for how to do this:  * - drivers/base/intf.c  * - Documentation/driver-model/interface.txt */#ifndef _LINUX_CPU_H_#define _LINUX_CPU_H_#include <linux/sysdev.h>#include <linux/node.h>#include <linux/compiler.h>#include <linux/cpumask.h>#include <asm/semaphore.h>#include <linux/mutex.h>struct cpu {	int node_id;		/* The node which contains the CPU */	int hotpluggable;	/* creates sysfs control file if hotpluggable */	struct sys_device sysdev;};extern int register_cpu(struct cpu *cpu, int num);extern struct sys_device *get_cpu_sysdev(unsigned cpu);extern int cpu_add_sysdev_attr(struct sysdev_attribute *attr);extern void cpu_remove_sysdev_attr(struct sysdev_attribute *attr);extern int cpu_add_sysdev_attr_group(struct attribute_group *attrs);extern void cpu_remove_sysdev_attr_group(struct attribute_group *attrs);#ifdef CONFIG_HOTPLUG_CPUextern void unregister_cpu(struct cpu *cpu);#endifstruct notifier_block;#ifdef CONFIG_SMP/* Need to know about CPUs going up/down? */extern int register_cpu_notifier(struct notifier_block *nb);#ifdef CONFIG_HOTPLUG_CPUextern void unregister_cpu_notifier(struct notifier_block *nb);#elsestatic inline void unregister_cpu_notifier(struct notifier_block *nb){}#endifint cpu_up(unsigned int cpu);#elsestatic inline int register_cpu_notifier(struct notifier_block *nb){	return 0;}static inline void unregister_cpu_notifier(struct notifier_block *nb){}#endif /* CONFIG_SMP */extern struct sysdev_class cpu_sysdev_class;#ifdef CONFIG_HOTPLUG_CPU/* Stop CPUs going up and down. */static inline void cpuhotplug_mutex_lock(struct mutex *cpu_hp_mutex){	mutex_lock(cpu_hp_mutex);}static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex){	mutex_unlock(cpu_hp_mutex);}extern void lock_cpu_hotplug(void);extern void unlock_cpu_hotplug(void);#define hotcpu_notifier(fn, pri) {				\	static struct notifier_block fn##_nb =			\		{ .notifier_call = fn, .priority = pri };	\	register_cpu_notifier(&fn##_nb);			\}#define register_hotcpu_notifier(nb)	register_cpu_notifier(nb)#define unregister_hotcpu_notifier(nb)	unregister_cpu_notifier(nb)int cpu_down(unsigned int cpu);#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))#else		/* CONFIG_HOTPLUG_CPU */static inline void cpuhotplug_mutex_lock(struct mutex *cpu_hp_mutex){ }static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex){ }#define lock_cpu_hotplug()	do { } while (0)#define unlock_cpu_hotplug()	do { } while (0)#define lock_cpu_hotplug_interruptible() 0#define hotcpu_notifier(fn, pri)	do { (void)(fn); } while (0)#define register_hotcpu_notifier(nb)	do { (void)(nb); } while (0)#define unregister_hotcpu_notifier(nb)	do { (void)(nb); } while (0)/* CPUs don't go offline once they're online w/o CONFIG_HOTPLUG_CPU */static inline int cpu_is_offline(int cpu) { return 0; }#endif		/* CONFIG_HOTPLUG_CPU */#ifdef CONFIG_SUSPEND_SMPextern int disable_nonboot_cpus(void);extern void enable_nonboot_cpus(void);#elsestatic inline int disable_nonboot_cpus(void) { return 0; }static inline void enable_nonboot_cpus(void) {}#endif#endif /* _LINUX_CPU_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -