什么是Linux 3.16相当于SPIN_LOCK_UNLOCKED?

时间:2016-04-04 22:15:54

标签: c linux linux-kernel kernel-module

这是我为2.x内核编写的内核模块的一行。

let imgUrl = 'images/berlin.jpg'
let styles = {
    root: {
        backgroundImage: 'url(' + imgUrl + ')',
        backgroundImage: {
            flex: 1,
            resizeMode: 'cover', // or 'stretch'
        },
        overflow: 'hidden',
    },
    ...

当我尝试为3.16内核编译此模块时,我收到以下构建错误。

static spinlock_t mr_lock = SPIN_LOCK_UNLOCKED;

当我查看3.16版本的linux/spinlock_types.h,它定义了此内核的error: ‘SPIN_LOCK_UNLOCKED’ undeclared here (not in a function) 类型时,确实没有SPIN_LOCK_UNLOCKED常量。

但是,目前尚不清楚如何为此内核初始化一个解锁的自旋锁。

实现相同初始化的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

这取决于你如何使用它。

#define DEFINE_SPINLOCK(x)    spinlock_t x = __SPIN_LOCK_UNLOCKED(x)

to replace code like:

  spinlock_t init_lock = SPIN_LOCK_UNLOCKED;

with the improved:

  DEFINE_SPINLOCK(init_lock);

我从这个

采取了上述内容

https://www.mail-archive.com/kernelnewbies@nl.linux.org/msg02836.html