kernel/user space 和 select 之间的共享内存
shared mem betwwen kernel/user space and select
我有一些特定的硬件,在 FreeBSD 上 运行 和 Linux。
我必须做一个用户 space 应用程序,它将使用 kernel/user space 应用程序之间的共享内存与驱动程序一起工作。
我的应用程序对来自用户 space 的共享内存进行忙轮询。
有什么想法我可以如何使用 select 这样的机制来休眠并获得共享内存更改的通知(购买驱动程序)?
我不想实现一些像netlink这样的通信,因为select的想法是睡眠,如果有什么事情就醒来,并且保持清醒并继续处理数据而不需要将更多的IPC交给内核.
然后,当它完成时,应用程序可以再次调用 select 并再次等待。
谢谢。
您正在寻找 FreeBSD 上的 kqueue(2) 接口。
在 Linux 上有 inotify/epoll.
我有一些特定的硬件,在 FreeBSD 上 运行 和 Linux。
我必须做一个用户 space 应用程序,它将使用 kernel/user space 应用程序之间的共享内存与驱动程序一起工作。 我的应用程序对来自用户 space 的共享内存进行忙轮询。 有什么想法我可以如何使用 select 这样的机制来休眠并获得共享内存更改的通知(购买驱动程序)?
我不想实现一些像netlink这样的通信,因为select的想法是睡眠,如果有什么事情就醒来,并且保持清醒并继续处理数据而不需要将更多的IPC交给内核. 然后,当它完成时,应用程序可以再次调用 select 并再次等待。
谢谢。
您正在寻找 FreeBSD 上的 kqueue(2) 接口。 在 Linux 上有 inotify/epoll.