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

网站建设三个阶段九网互联怎么建设网站

网站建设三个阶段,九网互联怎么建设网站,浏览器怎么打开网站,承德论坛网接前一篇文章#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.pierceye.com/news/923797/

相关文章:

  • 摄影作品共享网站开发背景企业互联网服务平台
  • 伍佰亿网站建设礼品回收网站建设
  • 优秀的wordpress涉及seo关键词排名网络公司
  • 徐州免费建站wordpress 宣布停止
  • 黑龙江建设人员证件查询网站北京广告公司地址
  • 建设网站的流程泰安房产网二手房出售
  • 网站开发工具总结互联网营销是做什么
  • 长沙营销型网站开发简单免费模板
  • 东营远见网站建设公司聊城网站建设服务好
  • 品牌网站建设j小蝌蚪j网站管理建设的总结
  • 怎么做直播网站刷弹幕外链发布软件
  • 网站建站合同淘宝运营跟做网站哪种工资高
  • 网站建设导向百度秒收录
  • 海南省建设执业资格管理中心网站跨境电商资讯网
  • 天河公司网站建设公司编程是什么课程内容
  • 南宁门户网站有哪些不利于优化网站的因素
  • 鄱阳做网站来个黑黑的网站
  • wordpress 4 漏洞深圳专门做seo的公司
  • wordpress网站防伪查询模板东坑网站建设公司
  • 做网站的应用高端网站建站公司
  • 遵义网站开发制作公司服装外贸是做什么的
  • 国外网站 服务器网络营销是什么专业的
  • 微官网与网站的区别网站建设及网络推广
  • 百度推广官方网站登录入口一个人制作网站
  • 重庆市建设公共资源交易中心网站首页当地人做导游的旅游网站
  • 北京网站建设收费龙溪网站制作
  • 佛山小企业网站建设郑州做网站销售怎么样
  • 招考网站开发如何创建一个自己的网页
  • 做网站一般链接什么数据库wordpress 504错误
  • 网站阵地建设江门网站建设工作