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);
}
相关文章
|
5月前
|
Java
Thread 类中的start() 和 run() 方法有什么区别
【8月更文挑战第9天】Thread 类中的start() 和 run() 方法有什么区别
348 0
|
8月前
|
Java 数据库连接 Spring
@Bean(name = "", initMethod = "init", destroyMethod = "close")的概念与使用
【4月更文挑战第26天】在 Spring Framework 中,@Bean 注解是用来声明一个 bean,它可以在配置类中的方法上使用,从而允许显式地定义 bean 的配置。通过 @Bean 注解,可以非常灵活地配置 Spring 容器中的 bean 行为,包括其名称、初始化方法和销毁方法
1131 2
Thread 类中的 start () 和 run () 方法的区别
Thread 类中的 start () 和 run () 方法的区别
69 0
|
消息中间件 Android开发
Handler postDelayed的实现原理
老生常谈之Handler
192 0
|
消息中间件 Android开发
Handler源码解读——handler使用时的注意事项
工作中经常会遇到从子线程发送消息给主线程,让主线程更新UI的操作,常见的有handler.sendMessage(Message),和handler.post(runnable)和handler.postDelayed(runnable, milliseconds);一直在使用这些方法,却不知道他们的原理,今天就来解释一下他们的原理。
class_create函数源码分析
class_create函数源码分析
|
安全 Java API
java基础 之 从Class.forName()跟.class的区别看类的初始化
java基础 之 从Class.forName()跟.class的区别看类的初始化
117 0
|
Java Spring
FileSystemResource和ClassPathResource有何区别?
FileSystemResource和ClassPathResource有何区别?
FileSystemResource和ClassPathResource有何区别?
|
前端开发 开发者
class-constructor 构造器中 super 函数的使用说明|学习笔记
快速学习 class-constructor 构造器中 super 函数的使用说明
123 0
|
JavaScript 前端开发 程序员
Class-总结 class 的基本用法和两个注意点|学习笔记
快速学习 Class-总结 class 的基本用法和两个注意点
203 0