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

📄 smplock.h

📁 嵌入式系统设计与实例开发实验教材二源码 多线程应用程序设计 串行端口程序设计 AD接口实验 CAN总线通信实验 GPS通信实验 Linux内核移植与编译实验 IC卡读写实验 SD驱动使
💻 H
字号:
/* * <asm/smplock.h> * * Default SMP lock implementation */#include <linux/sched.h>#include <linux/interrupt.h>#include <linux/spinlock.h>extern spinlock_t kernel_flag;#define kernel_locked()		spin_is_locked(&kernel_flag)/* * Release global kernel lock and global interrupt lock */static __inline__ void release_kernel_lock(struct task_struct *task, int cpu){	if (task->lock_depth >= 0)		spin_unlock(&kernel_flag);	release_irqlock(cpu);	__sti();}/* * Re-acquire the kernel lock */static __inline__ void reacquire_kernel_lock(struct task_struct *task){	if (task->lock_depth >= 0)		spin_lock(&kernel_flag);}/* * Getting the big kernel lock. * * This cannot happen asynchronously, * so we only need to worry about other * CPU's. */static __inline__ void lock_kernel(void){	if (!++current->lock_depth)		spin_lock(&kernel_flag);}static __inline__ void unlock_kernel(void){	if (--current->lock_depth < 0)		spin_unlock(&kernel_flag);}

⌨️ 快捷键说明

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