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

用yershop做网站济南网站优化公司排名

用yershop做网站,济南网站优化公司排名,ziranzhi wordpress,网站建设方案如何写接前一篇文章#xff1a;libdrm全解析十五 —— 源码全解析#xff08;12#xff09; 本文参考以下博文#xff1a; DRM 驱动程序开发#xff08;VKMS#xff09; 特此致谢#xff01; 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 21. DRM_IOCTL_ADD_BUF…接前一篇文章libdrm全解析十五 —— 源码全解析12 本文参考以下博文 DRM 驱动程序开发VKMS 特此致谢 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 21. DRM_IOCTL_ADD_BUFS 第21个宏是DRM_IOCTL_ADD_BUFS相应代码如下 #define DRM_IOCTL_ADD_BUFS DRM_IOWR(0x16, struct drm_buf_desc) 结合之前文章中的_IOWR(type,nr,size)的最终定义得到如下代码 #define DRM_IOCTL_ADD_BUFS ( ((3) 30) | ((d) 8) | ((0x16) 0) | ((sizeof(struct drm_buf_desc)) 16) ) struct drm_buf_desc在同文件include/drm/drm.h中定义代码如下 /** DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.** \sa drmAddBufs().*/ struct drm_buf_desc {int count; /** Number of buffers of this size */int size; /** Size in bytes */int low_mark; /** Low water mark */int high_mark; /** High water mark */enum {_DRM_PAGE_ALIGN 0x01, /** Align on page boundaries for DMA */_DRM_AGP_BUFFER 0x02, /** Buffer is in AGP space */_DRM_SG_BUFFER 0x04, /** Scatter/gather memory buffer */_DRM_FB_BUFFER 0x08, /** Buffer is in frame buffer */_DRM_PCI_BUFFER_RO 0x10 /** Map PCI DMA buffer read-only */} flags;unsigned long agp_start; /*** Start address of where the AGP buffers are* in the AGP aperture*/ }; drm_buf_desc结构中各成员的意义代码注释描述得很清楚了在此无需赘述。 DRM_IOCTL_ADD_BUFS对应的Userspace API为drmAddBufs()。该函数也是在xf86drm.c中代码如下 /*** Make buffers available for DMA transfers.** \param fd file descriptor.* \param count number of buffers.* \param size size of each buffer.* \param flags buffer allocation flags.* \param agp_offset offset in the AGP aperture** \return number of buffers allocated, negative on error.** \internal* This function is a wrapper around DRM_IOCTL_ADD_BUFS ioctl.** \sa drm_buf_desc.*/ drm_public int drmAddBufs(int fd, int count, int size, drmBufDescFlags flags,int agp_offset) {drm_buf_desc_t request;memclear(request);request.count count;request.size size;request.flags (int)flags;request.agp_start agp_offset;if (drmIoctl(fd, DRM_IOCTL_ADD_BUFS, request))return -errno;return request.count; } 函数的作用是使缓冲buffers适合DMA传输。此函数在后文具体讲解函数的时候进行详细解析。在此先认识一下、有个印象就好。 22. DRM_IOCTL_MARK_BUFS 第22个宏是DRM_IOCTL_MARK_BUFS相应代码如下 #define DRM_IOCTL_MARK_BUFS DRM_IOW( 0x17, struct drm_buf_desc) 结合之前文章中的_IOW(type,nr,size)的最终定义得到如下代码 #define DRM_IOCTL_MAKE_BUFS ( ((1) 30) | ((d) 8) | ((0x17) 0) | ((sizeof(struct drm_buf_desc)) 16) ) struct drm_buf_desc上边已经列出了在此不重复。 DRM_IOCTL_MARK_BUFS对应的Userspace API为drmMarkBufs()。该函数也是在xf86drm.c中代码如下 drm_public int drmMarkBufs(int fd, double low, double high) {drm_buf_info_t info;int i;memclear(info);if (drmIoctl(fd, DRM_IOCTL_INFO_BUFS, info))return -EINVAL;if (!info.count)return -EINVAL;if (!(info.list drmMalloc(info.count * sizeof(*info.list))))return -ENOMEM;if (drmIoctl(fd, DRM_IOCTL_INFO_BUFS, info)) {int retval -errno;drmFree(info.list);return retval;}for (i 0; i info.count; i) {info.list[i].low_mark low * info.list[i].count;info.list[i].high_mark high * info.list[i].count;if (drmIoctl(fd, DRM_IOCTL_MARK_BUFS, info.list[i])) {int retval -errno;drmFree(info.list);return retval;}}drmFree(info.list);return 0; } 该函数与上边DRM_IOCTL_ADD_BUFS对应的drmAddBufs函数联系较为紧密。此函数在后文具体讲解函数的时候进行详细解析。在此先认识一下、有个印象就好。 其余宏定义将在后续文章中继续解析。
http://www.zqtcl.cn/news/578219/

相关文章:

  • 福州建设银行官网招聘网站山西建设公司网站
  • 集团网站建设方案中卫网站推广制作
  • 射阳网站建设电商运营团队结构图
  • 有没有女的做任务的网站计算机网站开发专业
  • 怎么样开始做网站网站建设 营业执照 经营范围
  • 威海做网站网站建设方案书 模版
  • 泗阳做网站南昌建设
  • 做企业网站用什么软件深圳制作企业网站
  • 大连微信网站开发兰州网站建设模板
  • 建设项目安监备案网站外贸 网站 seo
  • 企慕网站建设网络推广合肥市网站制作
  • 做空比特币网站大气简约企业网站模板免费下载
  • 坪山网站建设行业现状做网站能月入10万
  • 个人网站有什么内容广西网站建设推广
  • 安徽教育云网站建设网站seo诊断的主要内容
  • 网站建设例子开发工具宏怎么使用
  • 新乡做网站公司哪个地区网站建设好
  • 网站模板怎么编辑网站定制化
  • 利于优化的网站网络科技公司怎么赚钱
  • 制作网站的步骤和方法做物流的网站有哪些功能
  • vs做网站图片明明在文件夹里却找不到中国建筑网官网找客户信息
  • WordPress仿站培训黑龙江新闻夜航
  • 如何利用开源代码做网站济南做网站互联网公司有哪些
  • 生意网app下载官网郑州做网站优化公
  • wordpress网站更换域名wordpress 小工具定制
  • 上海做机床的公司网站设计网站怎样做色卡
  • 一个网站怎么绑定很多个域名做网站后台应该谁来做
  • 跑纸活做网站加大门户网站安全制度建设
  • 多商户开源商城seo对网店的作用有哪些
  • 提供微信网站建设福州seo建站