class_destroy源码分析

简介: class_destroy源码分析

class_destroy源码分析


函数class_destroy()用于删除设备的逻辑类,即从Linux内核系统中删除设备的逻辑类。此函数执行的效果是删除函数__class_create()或宏class_create()在/sys/class/目录下创建的逻辑类对应的文件夹。

       class_destroy()源码如下:

/**
 * class_destroy - destroys a struct class structure
 * @cls: pointer to the struct class that is to be destroyed
 *
 * Note, the pointer to be destroyed must have been created with a call
 * to class_create().
 */
void class_destroy(struct class *cls)
{
  if ((cls == NULL) || (IS_ERR(cls)))
    return;
  class_unregister(cls);
}

cls:struct class结构体类型的变量,代表通过class_create创建的设备的逻辑类。

       通过分析源码可知,class_destroy调用了class_unregister()函数,它的具体实现如下:

void class_unregister(struct class *cls)
{
  pr_debug("device class '%s': unregistering\n", cls->name);
  class_remove_groups(cls, cls->class_groups);
  kset_unregister(&cls->p->subsys);
}
目录
打赏
0
0
0
0
245
分享
相关文章
|
8月前
|
Thread 类中的start() 和 run() 方法有什么区别
【8月更文挑战第9天】Thread 类中的start() 和 run() 方法有什么区别
460 0
@Bean(name = "", initMethod = "init", destroyMethod = "close")的概念与使用
【4月更文挑战第26天】在 Spring Framework 中,@Bean 注解是用来声明一个 bean,它可以在配置类中的方法上使用,从而允许显式地定义 bean 的配置。通过 @Bean 注解,可以非常灵活地配置 Spring 容器中的 bean 行为,包括其名称、初始化方法和销毁方法
1313 2
Thread 类中的 start () 和 run () 方法的区别
Thread 类中的 start () 和 run () 方法的区别
86 0
ArrayList源码分析之add 方法
ArrayList源码分析之add 方法
202 0
class-constructor 构造器中 super 函数的使用说明|学习笔记
快速学习 class-constructor 构造器中 super 函数的使用说明
137 0
ApplicationContext 源码分析
其实整一个 refresh 过程还是挺简单的、从大体上来看、与我们直接使用 BeanFactory 的时候相比、多了一些扩展性的东西、但是这些扩展的地方、都是原本Spring 提供给我们、我们自己也可以进行扩展的。
78 0
Spring加载流程源码分析01【super】
前面给大家介绍了Spring中的IOC和AOP。本文开始带大家解读下Spring容器加载的过程。我们使用的Spring的版本是4.3.3.RELEASE Spring加载流程源码分析03【refresh】 Spring加载流程源码分析02【setConfigLocations】
Spring加载流程源码分析01【super】