设备初始化缩水篇(二)

来源:互联网 发布:淘宝正版cd卖家推荐 编辑:程序博客网 时间:2024/04/25 13:53
struct kobject *kobject_create_and_add(const char *name, struct kobject *parent)

{

        retval = kobject_add(kobj, parent, "%s", name);

}


int kobject_add(struct kobject *kobj, struct kobject *parent,
const char *fmt, ...)
{

        retval = kobject_add_varg(kobj, parent, fmt, args);
}


static int kobject_add_varg(struct kobject *kobj, struct kobject *parent,
   const char *fmt, va_list vargs)
{

        return kobject_add_internal(kobj);
}


剩下的东西就是在《设备初始化缩水篇(一)》里都贴过的

参考《设备初始化缩水篇(一)》dev_kobj、firmware_kobj的parent都是NULL,所以在/sys目录下生成了dev和firmware两个目录(我虚拟机运行的Antergos,内核版本为3.14.4.1,没有hypervisor目录,不知道是啥原因)

sysfs_dev_block_kobj 和sysfs_dev_char_kobj 的parent都是dev_kobj,所以/sys/dev 目录下生成了block和char 两个文件夹

目前这里的分析总共生成了/sys下的devices、bus、class、dev和firmware五个目录,/sys/devices/system、/sys/dev/block、/sys/dev/char三个子目录,除了有关虚拟化的那个目录之外,《设备初始化缩水篇(一)》中初始化的语句都可以在实际系统中看到


不过实际系统中/sys目录下不止这五个目录,我这里还可以看到block、fs、kernel、module和power五个目录,有机会了再继续看是哪里生成的



0 0
原创粉丝点击