当前位置: 首页 > news >正文

网站优化的监测评价网站开发角色分类

网站优化的监测评价,网站开发角色分类,设计咨询服务合同,企业网站建设规范接前一篇文章#xff1a;DRM全解析 —— ADD_FB#xff08;1#xff09; 本文参考以下博文#xff1a; DRM驱动#xff08;四#xff09;之ADD_FB 特此致谢#xff01; 上一回围绕libdrm与DRM在Linux内核中的接口#xff1a; DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, d…接前一篇文章DRM全解析 —— ADD_FB1 本文参考以下博文 DRM驱动四之ADD_FB 特此致谢 上一回围绕libdrm与DRM在Linux内核中的接口 DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, drm_mode_addfb_ioctl, 0), 进行了相关宏的展开。本文开始对于drm_mode_addfb_ioctl函数进行详解。drm_mode_addfb_ioctl函数在drivers/gpu/drm/drm_framebuffer.c中代码如下 int drm_mode_addfb_ioctl(struct drm_device *dev,void *data, struct drm_file *file_priv) {return drm_mode_addfb(dev, data, file_priv); } drm_mode_addfb_ioctl函数只是一层简单封装实际的工作交给了drm_mode_addfb_ioctl函数。它就在上边代码如下 /*** drm_mode_addfb - add an FB to the graphics configuration* dev: drm device for the ioctl* or: pointer to request structure* file_priv: drm file** Add a new FB to the specified CRTC, given a user request. This is the* original addfb ioctl which only supported RGB formats.** Called by the user via ioctl, or by an in-kernel client.** Returns:* Zero on success, negative errno on failure.*/ int drm_mode_addfb(struct drm_device *dev, struct drm_mode_fb_cmd *or,struct drm_file *file_priv) {struct drm_mode_fb_cmd2 r {};int ret;if (!drm_core_check_feature(dev, DRIVER_MODESET))return -EOPNOTSUPP;r.pixel_format drm_driver_legacy_fb_format(dev, or-bpp, or-depth);if (r.pixel_format DRM_FORMAT_INVALID) {drm_dbg_kms(dev, bad {bpp:%d, depth:%d}\n, or-bpp, or-depth);return -EINVAL;}/* convert to new format and call new ioctl */r.fb_id or-fb_id;r.width or-width;r.height or-height;r.pitches[0] or-pitch;r.handles[0] or-handle;ret drm_mode_addfb2(dev, r, file_priv);if (ret)return ret;or-fb_id r.fb_id;return 0; }在讲解此函数之前先来看一下用户空间一般流程中调用此步骤ioctl系统调用的上下文 struct drm_mode_create_dumb create {};uint32_t fb_id;create.width width;create.height height;create.bpp 32;drmIoctl(fd, DRM_IOCTL_MODE_CREATE_DUMB, create); //创建显存,返回一个handledrmModeAddFB(fd, create.width, create.height, 24, 32, create.pitch,create.handle, fb_id); 在libdrm全解析系列文章以及DRM全解析 —— CREATE_DUMB系列文章中讲过在用户空间中通过 drmIoctl(fd, DRM_IOCTL_MODE_CREATE_DUMB, create) 最终在内核中在不同的显卡驱动相对应的函数中创建了一个dumb buffer对象实际上是分配了struct drm_gem_object *gobj返回的是与分配的struct drm_gem_object *gobj绑定的handle。 drm_gem_object创建之后需要与一块drm_framebuffer进行绑定使用因为最终刷图使用的是fb。因此使用下面接口创建drm_framebuffer并与之前创建的struct drm_gem_object *gobj进行绑定。 围绕DRM_IOCTL_MODE_ADDFB宏的用户态和内核态上下调用流程如下图所示 对于drm_mode_addfb函数的详细解析放到下一篇文章中。
http://www.hkea.cn/news/14416440/

相关文章:

  • 免费做网站手机软件网络营销文案实例
  • 网站开发与微信对接wordpress页面html
  • 商城网站策划seo店铺描述例子
  • godaddy 建网站网站建设技术团队有多重要
  • wordpress手写字体搜索引擎优化的流程
  • 深圳龙华大浪做网站公司德州网站建设的公司
  • 免费自助建站源码荣耀手机全部型号
  • 做网站一般使用什么算法开发安卓软件用什么工具
  • c语言除了做网站还能干什么织梦系统网站搭建教程
  • 高档网站设计公司上线了做的网站可以登陆
  • 网站静态和伪静态意思重庆网站制作特点优势
  • 在社保网站上怎么做员工的退费品牌网站设计服务
  • 商标图案参考营销网站建设优化
  • 淄博网站的优化php网站开发示例代码
  • 怎么做和美团一样的网站最轻快的wordpress主题
  • 国家电网账号注册网站帐号是什么北京中小企业建站价格
  • 网站ftp根目录新手用什么程序建网站
  • 网站建设报价模块网站全网建设 莱芜
  • 承德网站制作的流程网站建设中如何发布信息推广
  • 公司宣传视频怎么制作厦门百度快照优化排名
  • wordpress的建站教程开源商用的商城项目
  • dedecms 关闭网站linux虚机 wordpress
  • 网站制作方案费用wordpress侧栏文本代码
  • 郑州高端网站定制公司土巴兔网站开发
  • 律师网站专业设计WordPress单页添加Js
  • 广东网页空间网站百度搜索历史记录
  • 设计高端网站哪家好烟台建设工程信息网站
  • 如何设计网站的主菜单做黑彩网站能赚钱吗
  • 邯郸大名网站建设万能视频提取器网页版
  • 海外网站建设平台wordpress mylife