本文主要是介绍KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(20),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(19)
上一回讲解了从drm_mode_addfb2_ioctl()和drm_mode_addfb_ioctl()一步步往前追溯的全过程:
drm_mode_addfb2_ioctl() / drm_mode_addfb_ioctl() --->
drm_ioctls[] --->
drm_ioctl()--->
i915_driver_fops以及其中的unlocked_ioctl函数指针 --->
vfs_ioctl()/compat_ptr_ioctl() --->
SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd, unsigned long, arg) / COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,compat_ulong_t, arg)
最终追溯到了源头。但是这个追溯过程是反向的,本回将结合KWin、libdrm以及DRM,从上往下、从应用向内核、正向地对此过程再作详细解析。
- KWin层
KWin层的代码仍然还是src/backends/drm/drm_buffer.cpp的那一经典段落:
std::shared_ptr<DrmFramebuffer> D
这篇关于KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(20)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!