/proc/iomem和/proc/ioports对应的fops
static int __init ioresources_init(void)
{
    struct proc_dir_entry *entry;
    entry = create_proc_entry("ioports", 0, NULL);
    if (entry)
        entry->proc_fops = &proc_ioports_operations;
    entry = create_proc_entry("iomem", 0, NULL);
    if (entry)
        entry->proc_fops = &proc_iomem_operations;
    return 0;
}
__initcall(ioresources_init);
static const struct file_operations proc_iomem_operations = {
    .open        = iomem_open,
    .read        = seq_read,
    .llseek        = seq_lseek,
    .release    = seq_release,
};
static int iomem_open(struct inode *inode, struct file *file)
{
    int res = seq_open(file, &resource_op); // seq方法集resource_op
    if (!res) {
        struct seq_file *m = file->private_data;
        m->private = &iomem_resource; // 被操作数据iomem_resource
    }
    return res;
}
static const struct file_operations proc_ioports_operations = {
    .open        = ioports_open,
    .read        = seq_read,
    .llseek        = seq_lseek,
    .release    = seq_release,
};
static int ioports_open(struct inode *inode, struct file *file)
{
    int res = seq_open(file, &resource_op); // seq方法集resource_op
    if (!res) {
        struct seq_file *m = file->private_data;
        m->private = &ioport_resource; // 被操作数据ioport_resource
    }
    return res;
}
static const struct seq_operations resource_op = {
    .start    = r_start,
    .next    = r_next,
    .stop    = r_stop,
    .show    = r_show,
};

/proc/iomem和/proc/ioports对应的fops的更多相关文章

  1. cat /proc/iomem

    在proc目录下有iomem和ioports文件,其主要描述了系统的io内存和io端口资源分布. 对于外设的访问,最终都是通过读写设备上的寄存器实现的,寄存器不外乎:控制寄存器.状态寄存器和数据寄存器 ...

  2. 移动端测试===PROC系列之---/proc/pid/stat 如何准确取cpu的值【转】

         /proc/ /stat 包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻. [root@localhost ~]# cat /proc/6873/stat 68 ...

  3. PROC系列之---/proc/pid/stat

      转自: http://blog.csdn.net/zjl_1026_2001/article/details/2294067 /proc/ /stat 包含了所有CPU活跃的信息,该文件中的所有值 ...

  4. Linux内核内存管理算法Buddy和Slab: /proc/meminfo、/proc/buddyinfo、/proc/slabinfo

    slabtop cat /proc/slabinfo # name <active_objs> <num_objs> <objsize> <objpersla ...

  5. /proc/interrupts 和 /proc/stat 查看中断的情况

    在/proc文件系统下,又两个文件提供了中断的信息. /proc/interrupts 文件中列出当前系统使用的中断的情况,所以某个中断处理没有安装,是不会显示的.哪怕之前安装过,被卸载了. 从左到右 ...

  6. SAS笔记(6) PROC MEANS和PROC FREQ

    PROC MEANS和PRC FREQ在做描述性分析的时候很常用,用法也比较简单,不过这两个过程步的某些选项容易忘记,本文就梳理一下. 在进入正文前,我们先创建所需的数据集TEST_SCORES: D ...

  7. /proc/interrupts 和 /proc/stat 查看中断的情况 (转载)

    转自:http://blog.csdn.net/richardysteven/article/details/6064717 在/proc文件系统下,又两个文件提供了中断的信息. /proc/inte ...

  8. /proc/cpuinfo和/proc/meminfo来查看cpu信息与内存信息

    #一般情况下使用root或者oracle用户查都可以. # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 --查 ...

  9. 内核、中断和网络 $ sysctl -a | grep ...$ cat /proc/interrupts$ cat /proc/net/ip_conntrack /* may take some time on busy servers */$ netstat$ ss -s

    你的中断请求是否是均衡地分配给CPU处理,还是会有某个CPU的核因为大量的网络中断请求或者RAID请求而过载了? SWAP交换的设置是什么?对于工作站来说swappinness 设为 60 就很好, ...

随机推荐

  1. mysql 主主复制(双主复制)binlog-do-db

    [root@DB ~]# grep "binlog-do-db" /etc/my.cnf binlog-do-db = test [root@DB-S ~]# grep " ...

  2. angular路由介绍

    AngularJS路由功能是一个纯前端的解决方案,与我们熟悉的后台路由不太一样.后台路由,通过不同的URL会路由到不同的控制器上(controller),再渲染(render)到页面(HTML).An ...

  3. matlab保存画框图像去白边

    在matlab图像处理中,为了标识出图像的目标区域来,需要利用plot函数或者rectangle函数,这样标识目标后,就保存图像. 一般saves保存的图像存在白边,可以采用imwrite对图像进行保 ...

  4. 基于html5制作3D拳击游戏源码下载

    今天给大家分享一款基于HTML5实现的3d拳王游戏源码.这款实例适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 不支持IE8及以下浏览器. 在线预览 ...

  5. Android Studio运行程序,检测不到(夜神、Genymotion)模拟器

    用了统一给的android studio,运行程序,检测不到模拟器(夜神). 又新建了一个系统的模拟器,运行,提示ANDROID_SDK_ROOT is undefined 在环境变量中配置之后,夜神 ...

  6. Linux系统查看公网IP地址

    curl members.3322.org/dyndns/getip

  7. Android基础总结(四)网络通信

    网络图片查看器 确定图片的网址 发送http请求 URL url = new URL(address); //获取连接对象,并没有建立连接 HttpURLConnection conn = (Http ...

  8. git 使用手册

    git 作为开源项目首选版本管理软件,必然其优势不容小觑,下面总结一下初次解除用到的一些技能 1. 基本命令介绍 git help branch 查看branch帮助文档 git branch -a ...

  9. iframe超时处理。。。。

    function iframeTimeOut(url, timeOut_callback, width, height) { /// <summary> /// iframe超时处理 // ...

  10. 浅谈Spring(一)

    Spring 框架是一个分层架构,由 7 个定义良好的模块组成.Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式. watermark/2/text/aHR0cD ...