欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 创建kset

创建kset

2025/5/15 20:25:32 来源:https://blog.csdn.net/mantouyouyou/article/details/140164111  浏览:    关键词:创建kset

1、kset介绍

在这里插入图片描述
在这里插入图片描述

2、相关结构体和api介绍

2.1 struct kset

在这里插入图片描述

2.2 kset_create_and_add

kset_create_and_addkset_createkset_registerkobject_add_internalkobject_add_internal

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2.3 kset_unregister

kset_unregisterkobject_delkobject_put

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

3、实验操作

#include<linux/module.h>
#include<linux/init.h>
#include<linux/kernel.h>
#include<linux/kobject.h>
#include<linux/slab.h>struct kobject *my_kobject01;
struct kobject *my_kobject02;
struct kset *my_kset;
struct kobj_type mytype;static int my_kobject_init(void)
{int ret;my_kset = kset_create_and_add("my_kset",NULL,NULL);my_kobject01 = kzalloc(sizeof(struct kobject),GFP_KERNEL);my_kobject01->kset = my_kset;ret = kobject_init_and_add(my_kobject01,&mytype,NULL,"%s","my_kobject01");my_kobject02 = kzalloc(sizeof(struct kobject),GFP_KERNEL);my_kobject02->kset = my_kset;ret = kobject_init_and_add(my_kobject02,&mytype,NULL,"%s","my_kobject02");return 0;
}static void my_kobject_exit(void)
{kobject_put(my_kobject01);kobject_put(my_kobject02);kset_unregister(my_kset);
}module_init(my_kobject_init);
module_exit(my_kobject_exit);
MODULE_LICENSE("GPL");
//Makefile
obj-m += kset.o
KDIR := /home/johan/share/rk3588/linux_sdk/kernel
PWD ?= $(shell pwd)
all:make -C $(KDIR) M=$(PWD) modulesclean:rm -f *.ko *.o *.mod.o *.mod.c

在这里插入图片描述

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com