本文主要是介绍spinlock_t,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
头文件:
#include <linux/spinlock.h>
定义:
typedef struct spinlock {union {struct raw_spinlock rlock;#ifdef CONFIG_DEBUG_LOCK_ALLOC
# define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map))struct {u8 __padding[LOCK_PADSIZE];struct lockdep_map dep_map;};
#endif};
} spinlock_t;
初始化:
void spin_lock_init(spinlock_t *lock)
上锁:
static inline void spin_lock(spinlock_t *lock)
{raw_spin_lock(&lock->rlock);
}
解锁:
static inline void spin_unlock(spinlock_t *lock)
{raw_spin_unlock(&lock->rlock);
}
尝试上锁:
static inline int spin_trylock(spinlock_t *lock)
{return raw_spin_trylock(&lock->rlock);
}
这篇关于spinlock_t的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!