init_MUTEX 在 linux 内核版本 3.2 中去了哪里?
Where has init_MUTEX gone in linux kernel version 3.2?
我正在关注 Linux 设备驱动程序(第 3 版)。当我试图模仿第6章中的scull例子时,报错。它说:
error: implicit declaration of function ‘init_MUTEX’ [-Werror=implicit-function-declaration]
谁能告诉我 init_MUTEX 去哪儿了?
顺便说一句,有没有我可以检查所有内核 API 更改的列表?
init_MUTEX{_LOCKED}()
was initially implemented as a semaphore。信号量只存在于较旧的 2.6.16 内核中,现在互斥量替换为较早的信号量实现,检查下面的 api 和 linux/mutex.h
header
struct mutex { ...
};
mutex_{init,lock,trylock,unlock,lock_interruptible}()
改用mutex_init():
struct scull_pipe {
...
struct mutex mutex;
...
};
mutex_init(&(lptr->device.mutex));
我正在关注 Linux 设备驱动程序(第 3 版)。当我试图模仿第6章中的scull例子时,报错。它说:
error: implicit declaration of function ‘init_MUTEX’ [-Werror=implicit-function-declaration]
谁能告诉我 init_MUTEX 去哪儿了? 顺便说一句,有没有我可以检查所有内核 API 更改的列表?
init_MUTEX{_LOCKED}()
was initially implemented as a semaphore。信号量只存在于较旧的 2.6.16 内核中,现在互斥量替换为较早的信号量实现,检查下面的 api 和 linux/mutex.h
header
struct mutex { ...
};
mutex_{init,lock,trylock,unlock,lock_interruptible}()
改用mutex_init():
struct scull_pipe {
...
struct mutex mutex;
...
};
mutex_init(&(lptr->device.mutex));