Linux kernel 如何向linux内核添加自定义信号量?

Linux kernel 如何向linux内核添加自定义信号量?,linux-kernel,Linux Kernel,基本上,我希望在linux内核中实现自己的信号量,并能够在用户程序中使用它 我在实现内核代码方面取得了一些进展,但是我不知道如何使信号量类型和我编写的函数可用于用户程序 用户程序需要访问我的信号量类型及其函数(wait、signal,…) 有没有办法让使用我的代码编译的内核的linux只需包含一个头文件就可以使用我的信号量 说到linux内核,我并不专业,所以如果我犯了任何明显的错误,请随时指出。谢谢。 我使用的内核版本是2.6.32。我建议查看用户空间库,了解如何为用户空间程序实现信号量 信号

基本上,我希望在linux内核中实现自己的信号量,并能够在用户程序中使用它

我在实现内核代码方面取得了一些进展,但是我不知道如何使信号量类型和我编写的函数可用于用户程序

用户程序需要访问我的信号量类型及其函数(wait、signal,…)

有没有办法让使用我的代码编译的内核的linux只需包含一个头文件就可以使用我的信号量

说到linux内核,我并不专业,所以如果我犯了任何明显的错误,请随时指出。谢谢。
我使用的内核版本是2.6.32。

我建议查看用户空间库,了解如何为用户空间程序实现信号量

信号量仅在旧版本的2.6.16内核中可用,因为互斥出现在该版本内核之后。只有以前的实现使用了信号量。较新的代码应该使用互斥锁,而互斥锁只在进程上下文中使用。您可能需要查看以下标题、结构和api

#include <linux/mutex.h>
struct mutex
mutex_{lock,trylock,unlock,lock_interruptable}()
#包括
结构互斥
互斥锁{lock,trylock,unlock,lock\u interruptable}()

另外,您可能还需要寻找实现。

谢谢,我使用semaphore.c作为自己信号量的指南。我试着查看posix信号量.h文件,这对我来说有点太复杂了,但我想我可以再看一遍。