spinlock.h
来自「xen虚拟机源代码安装包」· C头文件 代码 · 共 56 行
H
56 行
#ifndef __ASM_SPINLOCK_H#define __ASM_SPINLOCK_H#include <mini-os/lib.h>/* * Your basic SMP spinlocks, allowing only a single CPU anywhere */typedef struct { volatile unsigned int slock;} spinlock_t;#include <mini-os/arch_spinlock.h>#define SPINLOCK_MAGIC 0xdead4ead#define SPIN_LOCK_UNLOCKED ARCH_SPIN_LOCK_UNLOCKED#define spin_lock_init(x) do { *(x) = SPIN_LOCK_UNLOCKED; } while(0)/* * Simple spin lock operations. There are two variants, one clears IRQ's * on the local processor, one does not. * * We make no fairness assumptions. They have a cost. */#define spin_is_locked(x) arch_spin_is_locked(x)#define spin_unlock_wait(x) do { barrier(); } while(spin_is_locked(x))#define _spin_trylock(lock) ({_raw_spin_trylock(lock) ? \ 1 : ({ 0;});})#define _spin_lock(lock) \do { \ _raw_spin_lock(lock); \} while(0)#define _spin_unlock(lock) \do { \ _raw_spin_unlock(lock); \} while (0)#define spin_lock(lock) _spin_lock(lock)#define spin_unlock(lock) _spin_unlock(lock)#define DEFINE_SPINLOCK(x) spinlock_t x = SPIN_LOCK_UNLOCKED#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?