gpt4 book ai didi

c - Linux内核如何中断应用程序?

转载 作者:行者123 更新时间:2023-12-04 10:48:53 25 4
gpt4 key购买 nike

首先,我是一名设备驱动专家。这是我第一次处理用户态程序。我曾经有一个中断服务例程来响应硬件中断。换句话说,硬件使用中断服务程序来通知驱动程序进行服务。我现在使用 ioctl 作为应用程序和设备驱动程序之间通信的 channel ,并轮询它以等待响应。当设备驱动程序完成某些任务时,还有其他方法可以通知应用程序吗?欢迎任何意见。谢谢,

最佳答案

这有几种机制。第一种方法:用户空间应用程序生成 poll()select()系统调用,等待来自内核的一些事件。第二种方法是使用 Netlink sockets .还有其他的,例如 mmap() 或信号。通过 kernel user-space IPC Google,您将看到整个列表。

至于您的情况(驱动程序开发),我会说采用下一种方法。在您的驱动程序中创建 sysfs 文件,然后执行 sysfs_notify() (也许 wait_for_completion_interruptible_timeout() 或类似的东西)。在用户空间做 select()系统调用您的驱动程序 sysfs 文件。看看如何line discipline installed from user-space例如。

关于c - Linux内核如何中断应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29673304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com