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

网站建设网站优化wordpress垂直分页导航插件

网站建设网站优化,wordpress垂直分页导航插件,网站建设技术质量指标,建设企业网站登录901接前一篇文章#xff1a;libdrm全解析七 —— 源码全解析#xff08;4#xff09; 本文参考以下博文#xff1a; DRM 驱动程序开发#xff08;VKMS#xff09; 特此致谢#xff01; 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 7. DRM_IOCTL_GET_STATS …接前一篇文章libdrm全解析七 —— 源码全解析4 本文参考以下博文 DRM 驱动程序开发VKMS 特此致谢 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 7. DRM_IOCTL_GET_STATS 第7个宏是DRM_IOCTL_GET_STATS相应代码如下 #define DRM_IOCTL_GET_STATS DRM_IOR( 0x06, struct drm_stats) 结合之前文章中的_IOR(type,nr,size)的最终定义得到如下代码 #define DRM_IOCTL_GET_STATS ( ((2) 30) | ((d) 8) | ((0x06) 0) | ((sizeof(struct drm_stats)) 16) ) struct drm_stats在同文件include/drm/drm.h中定义代码如下 /** DRM_IOCTL_GET_STATS ioctl argument type.*/ struct drm_stats {unsigned long count;struct {unsigned long value;enum drm_stat_type type;} data[15]; }; drm_stat_type的定义就在上边代码如下 enum drm_stat_type {_DRM_STAT_LOCK,_DRM_STAT_OPENS,_DRM_STAT_CLOSES,_DRM_STAT_IOCTLS,_DRM_STAT_LOCKS,_DRM_STAT_UNLOCKS,_DRM_STAT_VALUE, /** Generic value */_DRM_STAT_BYTE, /** Generic byte counter (1024bytes/K) */个_DRM_STAT_COUNT, /** Generic non-byte counter (1000/k) */_DRM_STAT_IRQ, /** IRQ */_DRM_STAT_PRIMARY, /** Primary DMA bytes */_DRM_STAT_SECONDARY, /** Secondary DMA bytes */_DRM_STAT_DMA, /** DMA */_DRM_STAT_SPECIAL, /** Special DMA (e.g., priority or polled) */_DRM_STAT_MISSED /** Missed DMA opportunity *//* Add to the *END* of the list */ }; DRM_IOCTL_GET_STATS对应的Userspace API为drmGetStats()。该函数也是在xf86drm.c中代码如下 drm_public int drmGetStats(int fd, drmStatsT *stats) {drm_stats_t s;unsigned i;memclear(s);if (drmIoctl(fd, DRM_IOCTL_GET_STATS, s))return -errno;stats-count 0;memset(stats, 0, sizeof(*stats));if (s.count sizeof(stats-data)/sizeof(stats-data[0]))return -1;#define SET_VALUE \stats-data[i].long_format %-20.20s; \stats-data[i].rate_format %8.8s; \stats-data[i].isvalue 1; \stats-data[i].verbose 0#define SET_COUNT \stats-data[i].long_format %-20.20s; \stats-data[i].rate_format %5.5s; \stats-data[i].isvalue 0; \stats-data[i].mult_names kgm; \stats-data[i].mult 1000; \stats-data[i].verbose 0#define SET_BYTE \stats-data[i].long_format %-20.20s; \stats-data[i].rate_format %5.5s; \stats-data[i].isvalue 0; \stats-data[i].mult_names KGM; \stats-data[i].mult 1024; \stats-data[i].verbose 0stats-count s.count;for (i 0; i s.count; i) {stats-data[i].value s.data[i].value;switch (s.data[i].type) {case _DRM_STAT_LOCK:stats-data[i].long_name Lock;stats-data[i].rate_name Lock;SET_VALUE;break;case _DRM_STAT_OPENS:stats-data[i].long_name Opens;stats-data[i].rate_name O;SET_COUNT;stats-data[i].verbose 1;break;case _DRM_STAT_CLOSES:stats-data[i].long_name Closes;stats-data[i].rate_name Lock;SET_COUNT;stats-data[i].verbose 1;break;case _DRM_STAT_IOCTLS:stats-data[i].long_name Ioctls;stats-data[i].rate_name Ioc/s;SET_COUNT;break;case _DRM_STAT_LOCKS:stats-data[i].long_name Locks;stats-data[i].rate_name Lck/s;SET_COUNT;break;case _DRM_STAT_UNLOCKS:stats-data[i].long_name Unlocks;stats-data[i].rate_name Unl/s;SET_COUNT;break;case _DRM_STAT_IRQ:stats-data[i].long_name IRQs;stats-data[i].rate_name IRQ/s;SET_COUNT;break;case _DRM_STAT_PRIMARY:stats-data[i].long_name Primary Bytes;stats-data[i].rate_name PB/s;SET_BYTE;break;case _DRM_STAT_SECONDARY:stats-data[i].long_name Secondary Bytes;stats-data[i].rate_name SB/s;SET_BYTE;break;case _DRM_STAT_DMA:stats-data[i].long_name DMA;stats-data[i].rate_name DMA/s;SET_COUNT;break;case _DRM_STAT_SPECIAL:stats-data[i].long_name Special DMA;stats-data[i].rate_name dma/s;SET_COUNT;break;case _DRM_STAT_MISSED:stats-data[i].long_name Miss;stats-data[i].rate_name Ms/s;SET_COUNT;break;case _DRM_STAT_VALUE:stats-data[i].long_name Value;stats-data[i].rate_name Value;SET_VALUE;break;case _DRM_STAT_BYTE:stats-data[i].long_name Bytes;stats-data[i].rate_name B/s;SET_BYTE;break;case _DRM_STAT_COUNT:default:stats-data[i].long_name Count;stats-data[i].rate_name Cnt/s;SET_COUNT;break;}}return 0; } 函数的作用是从中获取各种状态stat的相关信息包括IRQs、DMA、Locks、Unlocks等等。此函数在后文具体讲解函数的时候进行详细解析。在此先认识一下、有个印象就好。 8. DRM_IOCTL_SET_VERSION 第8个宏是DRM_IOCTL_SET_VERSION相应代码如下 #define DRM_IOCTL_SET_VERSION DRM_IOWR(0x07, struct drm_set_version) 结合之前文章中的_IOWR(type,nr,size)的最终定义得到如下代码 #define DRM_IOCTL_SET_VERSION ( ((3) 30) | ((d) 8) | ((0x07) 0) | ((sizeof(struct drm_set_version)) 16) ) struct drm_set_version在同文件include/drm/drm.h中定义代码如下 /** DRM_IOCTL_SET_VERSION ioctl argument type.*/ struct drm_set_version {int drm_di_major;int drm_di_minor;int drm_dd_major;int drm_dd_minor; }; DRM_IOCTL_SET_VERSION对应的Userspace API为drmSetInterfaceVersion()。该函数也是在xf86drm.c中代码如下 /*** Issue a set-version ioctl.** \param fd file descriptor.* \param drmCommandIndex command index* \param data source pointer of the data to be read and written.* \param size size of the data to be read and written.** \return zero on success, or a negative value on failure.** \internal* It issues a read-write ioctl given by* \code DRM_COMMAND_BASE drmCommandIndex \endcode.*/ drm_public int drmSetInterfaceVersion(int fd, drmSetVersion *version) {int retcode 0;drm_set_version_t sv;memclear(sv);sv.drm_di_major version-drm_di_major;sv.drm_di_minor version-drm_di_minor;sv.drm_dd_major version-drm_dd_major;sv.drm_dd_minor version-drm_dd_minor;if (drmIoctl(fd, DRM_IOCTL_SET_VERSION, sv)) {retcode -errno;}version-drm_di_major sv.drm_di_major;version-drm_di_minor sv.drm_di_minor;version-drm_dd_major sv.drm_dd_major;version-drm_dd_minor sv.drm_dd_minor;return retcode; } 函数的作用是设置当前DRM接口的版本号。此函数在后文具体讲解函数的时候进行详细解析。在此先认识一下、有个印象就好。 其余宏定义将在后续文章中继续解析。
http://www.yutouwan.com/news/8469/

相关文章:

  • 外贸有哪些网站iis网站开发教程
  • 新都有没有做网站的佛山伦教网站设计
  • 库存网站建设哪家好设计良好的网站一般需要怎么做
  • 局域网站点建设方案wordpress图片文章
  • 博物馆设计网站推荐seo页面优化技术
  • 建设银行网站模板自适应网站好建们
  • 海淀区企业网站建设广东建设执业资格中心网站
  • 网站推广的方案设计怎么写集团网站制作公司
  • 宁海建设局网站网络营销研究背景及意义
  • 北京专业网站维护公司网页设计实训报告设计图
  • 做推送的网站长沙公司网页设计
  • 做网站提成浏览器下载安装2022最新版
  • 做拼多多代运营网站怎样自己免费建设一个网站
  • 宁波seo培训谷歌seo优化是什么
  • 哪里有网站开发技术网站关键词搜不到了
  • 保定网站建设制作树洞app开发公司
  • 网站用视频做背景音乐河南定制网站建设企业
  • 网站推广服务网阿里巴巴网站费用怎么做分录
  • 余干网站建设制作安阳做网站优化
  • 如何做网站定位智慧校园网络建设方案
  • 乐度网上购物网站建设方案阿里巴巴采购网
  • 怎么关键词优化网站益阳营销型网站建设
  • 网站主机英文wordpress能放视频教程
  • 宁波网站建设与设计开发国内室内设计
  • 济宁网架公司想做个卷帘门百度优化网站
  • 建设厅官方网站下载专区tap自助建站
  • 网站积分方案权重高的网站是几
  • 企业网站页面宽哪里设置网站建设和运维单位责任
  • 网站导航做外链建设银行短信带网站
  • 网站什么时候备案指数运算法则