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

📄 smplock.h

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 H
字号:
#ifndef __ASM_SH_SMPLOCK_H#define __ASM_SH_SMPLOCK_H/* * This file is subject to the terms and conditions of the GNU General Public * License.  See the file "COPYING" in the main directory of this archive * for more details. */#include <linux/config.h>#ifndef CONFIG_SMP#define lock_kernel()				do { } while(0)#define unlock_kernel()				do { } while(0)#define release_kernel_lock(task, cpu, depth)	((depth) = 1)#define reacquire_kernel_lock(task, cpu, depth)	do { } while(0)#else#error "We do not support SMP on SH yet"/* * Default SMP lock implementation */#include <linux/interrupt.h>#include <asm/spinlock.h>extern spinlock_t kernel_flag;/* * Getting the big kernel lock. * * This cannot happen asynchronously, * so we only need to worry about other * CPU's. */extern __inline__ void lock_kernel(void){	if (!++current->lock_depth)		spin_lock(&kernel_flag);}extern __inline__ void unlock_kernel(void){	if (--current->lock_depth < 0)		spin_unlock(&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)#endif /* CONFIG_SMP */#endif /* __ASM_SH_SMPLOCK_H */

⌨️ 快捷键说明

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