下面是我爲2.x內核編寫的內核模塊的一行。什麼是SPIN_LOCK_UNLOCKED的Linux 3.16等價物?
static spinlock_t mr_lock = SPIN_LOCK_UNLOCKED;
當我嘗試爲3.16內核編譯此模塊時,出現以下構建錯誤。
error: ‘SPIN_LOCK_UNLOCKED’ undeclared here (not in a function)
當我看3.16版本的linux/spinlock_types.h
,它定義了spinlock_t
類型這個內核,的確沒有SPIN_LOCK_UNLOCKED不變了。
但是,目前還不清楚如何初始化自旋鎖以解鎖此內核。
實現相同初始化的正確方法是什麼?
內核已經改變了其內部API的次數。看看你想要達到的目前文件。 – LtWorf
@ merlin2011在這裏總猜測,也許'spin_lock_init()'?這也說'SPIN_LOCK_UNLOCKED'是有效的,所以它必須在舊方:http://www.linuxgrill.com/anonymous/fire/netfilter/kernel-hacking-HOWTO-5.html – yano
@LtWorf,原諒我的無知,但是您能否將我鏈接到正確使用內核SpinLocks的相關文檔?我找到了一般文檔[這裏](http://lxr.free-electrons.com/source/Documentation/kbuild/modules.txt?v=3.16)和[這裏](https://www.kernel.org/ doc /),但我不知道如何確定我所尋找的。 – merlin2011