gpt4 book ai didi

linux - Linux 帧缓冲区驱动程序能否获得有关其内容的所有更改的通知?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:30 35 4
gpt4 key购买 nike

假设一个假设的远程帧缓冲协议(protocol),作为 Linux 帧缓冲驱动程序实现。

当通过 mmap 映射或类似方式直接从用户空间写入帧缓冲区的内存时,这样的驱动程序能否收到通知?

https://elixir.bootlin.com/linux/v4.4/source/drivers/video/fbdev/skeletonfb.c#L653显示了模块编写者可以实现的所有函数来获取此类信息,但乍一看我看不到 xxxfb_mmap 或 xxxfb_write 的实现可能是候选对象。


更新:

我刚刚在 https://elixir.bootlin.com/linux/v4.4/source/drivers/video/fbdev/core/fbmem.c#L812 看到了 fb_write

是否仅当通过文件描述符写入帧缓冲区或通过映射写入其内存时才会调用此函数?

我正在寻找一种方法,只在内容发生变化时搜索内存中帧缓冲区的更改,而不是连续搜索它。

最佳答案

您可以使用延迟 IO,步骤描述 here :

static void hecubafb_dpy_deferred_io(struct fb_info *info,
struct list_head *pagelist)
{
}

static struct fb_deferred_io hecubafb_defio = {
.delay = HZ,
.deferred_io = hecubafb_dpy_deferred_io,
};

// init
info->fbdefio = &hecubafb_defio;
fb_deferred_io_init(info);

// cleanup
fb_deferred_io_cleanup(info);

关于linux - Linux 帧缓冲区驱动程序能否获得有关其内容的所有更改的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40038039/

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