我是靠谱客的博主 健康保温杯,最近开发中收集的这篇文章主要介绍linux中的文件权限drm解释,DRM内核源码分析之三,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

DRM-Core 层为各家显卡driver的编写提供了通用层。 这个好像是必然的,为了复用和代码的规范:-0 Linux内核的guys为我们提高了很多接口,直接用就行了。

对DRM,注册的最关键函数是drm_init,注册了一系列函数回调。

对应的注销函数当然是drm_exit。

drm_init --> drm_get_dev --> drm_fill_in_dev --> drm_ht_create/drm_core_has_AGP/drm_device_is_agp/drm_core_check_feature/drm_core_has_MTRR/drm_ctxbitmap_init/drm_gem_init(终于“真货”来了)

-->drm_core_check_feature-->drm_get_minor-->drm_minor_get_id/drm_proc_init/drm_sysfs_device_add/...

这里调用到的drm开头的函数都属于drm-core层。

下面一个个的分析? 算了,还是挑重要的仔细看吧:-)

直捣drm_gem_init吧。

/**

* GEM specific mm private for tracking GEM objects

*/

struct drm_gem_mm {

struct drm_mm offset_manager; /**< Offset mgmt for buffer objects */

struct drm_open_hash offset_hash; /**< User token hash table for maps */

};

注册DRM的MM重要函数是drm_mm_init.建立保存mem关系的链表。

无论是GEM还是TTM,均会调用到该函数。

drm_init里,只是作了部分工作。i915.ko被加载后,调用函数回调:i915_driver_load。其中i915_load_modeset_init为KMS作初始化。io_mapping_create_wc函数需要好好注意,说明IO可以map为WC类型,与通常的认识不太一样。通常FB才映射为WC的。

相对来说,i915_driver_open作的事情更少。初始化结构体:struct drm_i915_file_private {

struct {

uint32_t last_gem_seqno;

uint32_t last_gem_throttle_seqno;

} mm;

};

i915的fops如下:.fops = {

.owner = THIS_MODULE,

.open = drm_open,

.release = drm_release,

.ioctl = drm_ioctl,

.mmap = drm_gem_mmap,

.poll = drm_poll,

.fasync = drm_fasync,

#ifdef CONFIG_COMPAT

.compat_ioctl = i915_compat_ioctl,

#endif

},

而openchrome的TTM branch中drm代码:.fops = {

.owner = THIS_MODULE,

.open = via_open,

.release = via_release,

.unlocked_ioctl = via_unlocked_ioctl,

.mmap = via_mmap,

.poll = drm_poll,

.fasync = drm_fasync,

.read = via_ttm_read,.write = via_ttm_write},

蓝色字体部分为主要不同。目前GEM的在Kernel中,而TTM还是在main branch之外。后者没有相应的drm开头的处理函数,需要特殊的函数封装。

内核模块鸟瞰得差不多了,该到X driver层看看如何调用ioctl实现应用。直接看xf86-video-intel的源码。

DRM_I915_GEM_INIT的用户态调用是DRM_IOCTL_I915_GEM_INIT,在i830_allocator_init函数中。

最后

以上就是健康保温杯为你收集整理的linux中的文件权限drm解释,DRM内核源码分析之三的全部内容,希望文章能够帮你解决linux中的文件权限drm解释,DRM内核源码分析之三所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部