這個函數比較短,這裡直接貼出來。
void lockdep_init(void)
{
int i;
if (lockdep_initialized)
return;
for (i = 0; i < CLASSHASH_SIZE; i++)
INIT_LIST_HEAD(classhash_table + i);
for (i = 0; i < CHAINHASH_SIZE; i++)
INIT_LIST_HEAD(chainhash_table + i);
lockdep_initialized = 1;
}
可以看到函數中初始化了兩個哈希連結清單,分别是classhash_table和chainhash_table,主要是用來調試核心鎖的,比如檢測加鎖的順序看是否有發生死鎖的可能,具體的作用要看後面怎麼使用這兩個哈希連結清單。