我有一个问题。我试图在内核模块中使用信号量,并希望在信号量中的可用缓冲区以及完整和空变量的数量。
尽管我知道如何使用以下代码在用户空间中实现它,但是我在内核模块中实现相同的东西很难。
在内核模块中实现全部和空的方法时是否有不同的方法?
您不这样做。<semaphore.h>
是一个用户空间API(POSIX信号量),在内核中不可用。
内核内有许多类似的锁定API-最值得注意的是struct semaphore
,但也请注意rwlock
以及锁定的替代方案。