📄 smplock.h
字号:
/* * <asm/smplock.h> * * Default SMP lock implementation */#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. */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 + -