You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

内核API中__class_create()与class_create()的区别是什么?

关于class_create()与__class_create()的区别说明

两者的核心差异

  • __class_create() 是内核内部的底层实现函数,设计为接收3个参数:所属模块指针、类名称、sysfs属性关联的所有者key。这个接口面向内核内部的高级场景,要求调用者自行处理所有参数的合法性校验与额外资源配置。
  • class_create() 是内核为简化普通驱动开发封装的宏接口,仅需要传入2个参数:所属模块指针(常规场景填THIS_MODULE即可)、类名称。它的内部逻辑会自动填充__class_create()需要的第三个参数为默认空值,直接调用底层函数完成类创建,不需要开发者处理额外的复杂配置,是普通驱动开发的常用公共接口。

class_create()是否已废弃

该接口没有被废弃,它是专门面向普通驱动开发者的简化接口,反而__class_create()属于底层内部接口,常规驱动开发场景不推荐直接调用,仅在需要自定义类的高级属性场景下才会使用。

class_create()的官方文档位置

因为class_create()属于宏定义,没有单独的独立函数文档,它的用法说明和__class_create()同属驱动基础设施类创建模块的说明内容,你在查阅__class_create()的官方文档时通常可以看到相关的封装说明;同时在内核源码的<linux/device.h>头文件中,也有针对该宏的详细注释说明。

内容的提问来源于stack exchange,提问作者Sebastien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:09:03