kobj =kobject_create(); if (!kobj) return NULL; retval =kobject_add(kobj, parent, "%s", name); if (retval) { printk(KERN_WARNING "%s: kobject_add error: %d\n", __func__, retval); kobject_put(kobj); kobj = NULL; } return kobj; } /** * kobject_create - 动态创建一个k...
struct kobject kobject_create_and_add(const charname, struct kobject parent); ``` 参数说明: `name`:新创建的kobject的名字。 `parent`:新创建的kobject的父kobject。如果新创建的kobject没有父kobject,可以传递NULL。 函数返回一个指向新创建的kobject的指针,如果创建失败则返回NULL。 `kobject_create_...
kobj =kobject_create(); if (!kobj) return NULL; retval =kobject_add(kobj, parent, "%s", name); if (retval) { printk(KERN_WARNING "%s: kobject_add error: %d\n", __func__, retval); kobject_put(kobj); kobj = NULL; } return kobj; } /** * kobject_create - 动态创建一个k...
kobject_create_and_add是Linux内核中用于创建和添加kobject对象到内核中的函数。在Linux内核中,kobject是内核对象模型中的一种对象。它可以被认为是一种内核对象的抽象,可以用于组织内核中的各种对象,并将它们整合到一个层次结构中。 让我们来看一下kobject_create_and_add函数的定义和参数。在Linux内核源码中,该...
* kobject_create_and_add - 动态创建一个kobject结构并注冊到sysfs * * @name: kobject的名称 * @parent: kobject的parent kobject of this kobject, 假设有的话 * * 该方法动态创建一个kobject结构并注冊到sysfs。 当你完毕该结构 * 之后. 调用kobject_put()。这样该结构在不再使用时将会动态的释放...
kobject_create_and_add 最简单方式创建kobject。内部创建对象。参数为名字,如果parent为空,则创建在/sys/目录下。否则为parent的子目录 struct kobject *kobject_create_and_add(const char *name, struct kobject *parent) { struct kobject *kobj; ...
kobject_create_and_add(动态创建一个kobject然后注册到sys文件系统中,也就是kobject_create和kobject_add的结合体) kobject_del(从sys删除对应的kobj) void kobject_del(struct kobject *kobj) { struct kernfs_node *sd; if (!kobj) return; //如果不存在,直接返回。
staticint__initmntest_init(void){intret;#ifdefSYSFS_ATTR_CREATE/* * Create a simple kobject with the name of "mntest", * located under /sys/kernel/ **/mntest_kobj =kobject_create_and_add("mntest", kernel_kobj);if(!mntest_kobj)return-ENOMEM; ...
kobject_create_and_add()函数首先调用 kobject_create()函数,该函数使用 kzalloc()为 kobject分配内存空间。在 kobject_create()函数中,调用 kobject_init()函数对分配的内存进行初始化,并指定了默认的 ktype。接下来,kobject_create_and_add()函数调用 kobject_add()函数将 kobject添加到系统中,使其可见。
使用kobject_create_and_add 创建:封装了 kobject_create 函数,完成创建初始化后调用 kobject_add 将初始化完成的 kobject 添加到内核中。 图6kobject_create_and_add函数结构 lib/kobject.c struct kobject *kobject_create_and_add(constchar*name, struct kobject *parent) ...