smplock.h

来自「Linux内核源代码 为压缩文件 是<<Linux内核>&gt」· C头文件 代码 · 共 53 行

H
53
字号
/* * <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 */#define release_kernel_lock(task, cpu) \do { \	if (task->lock_depth >= 0) \		spin_unlock(&kernel_flag); \	release_irqlock(cpu); \	__sti(); \} while (0)/* * Re-acquire the kernel lock */#define reacquire_kernel_lock(task) \do { \	if (task->lock_depth >= 0) \		spin_lock(&kernel_flag); \} while (0)/* * Getting the big kernel lock. * * This cannot happen asynchronously, * so we only need to worry about other * CPU's. */#define lock_kernel() \do { \	if (!++current->lock_depth) \		spin_lock(&kernel_flag); \} while(0)#define unlock_kernel() \do { \	if (--current->lock_depth < 0) \		spin_unlock(&kernel_flag); \} while(0)

⌨️ 快捷键说明

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