我有一个问题。我试图在内核模块中使用信号量,并希望初始化可用缓冲区大小的数量,以及信号量中的完整和空变量。
虽然我知道如何使用下面的代码在用户空间中实现它,但是我在内核模块中实现相同的功能时遇到了麻烦。
在内核模块中实现信号量中的full和empty时,是否有不同的方法?
答案 0 :(得分:0)
你没有。 <semaphore.h>
是用户空间API(POSIX信号量),在内核中不可用。
内核中有许多类似的锁定API - 最值得注意的是struct semaphore
,但也要注意rwlock
以及RCU之类的锁定替代方法。