C Linux内核-获取免费信号号
我想实现从内核到用户模式的信号链接。目前,我使用一个自由选择的信号号码。但我认为另一个模块也可能使用相同的方法 因此,我正在寻找一个内核宏/函数/变通方法,以找到一个未使用的信号号 在用户模式方面,我希望使用C Linux内核-获取免费信号号,c,linux,linux-kernel,kernel-module,signal-handling,C,Linux,Linux Kernel,Kernel Module,Signal Handling,我想实现从内核到用户模式的信号链接。目前,我使用一个自由选择的信号号码。但我认为另一个模块也可能使用相同的方法 因此,我正在寻找一个内核宏/函数/变通方法,以找到一个未使用的信号号 在用户模式方面,我希望使用sigaction(一个无符号,&sig,NULL)和在内核模式端发送信号信息(免费信号、发送信号、任务) 编辑: 我明白了,我必须补充一些细节:我总共需要六个不同的信号。这需要告诉应用程序及时地从不同的映射内存读取或写入 在这一点上,一个单一的信号是不够的。如果内核模块没有提供信号号,则
sigaction(一个无符号,&sig,NULL)代码>和在内核模式端发送信号信息(免费信号、发送信号、任务)
编辑:
我明白了,我必须补充一些细节:我总共需要六个不同的信号。这需要告诉应用程序及时地从不同的映射内存读取或写入
在这一点上,一个单一的信号是不够的。如果内核模块没有提供信号号,则必须由应用程序完成。同样的问题:如何在用户陆地端获得免费?SIG_USR1如何?如果它是字符设备驱动程序,默认情况下使用SIGIO
,但实现一个ioctl,让用户空间程序设置一个不同的;与O_ASYNC
描述符的方式类似。通常,用户空间希望使用实时信号,因为这些信号与“标准”信号不同,是排队的。你说一个信号是不够的。您是否考虑过只使用一个信号,但使用该信号传递附加信息?这是我将要检查的一点。。。